From 03b4bdc2155182415fc2853cab26db2c60a7f92c Mon Sep 17 00:00:00 2001 From: Riley Liberda Date: Tue, 11 Jul 2023 14:40:13 +0200 Subject: [PATCH] Initial commit --- Imakefile | 183 + README | 43 + README.old | 94 + arrow_ic32.h | 40 + arrow_icon.h | 31 + assoc.c | 173 + assoc.h | 41 + basetype.h | 153 + bodyreg.c | 124 + bodyreg.h | 97 + bodyregP.h | 66 + buttons.h | 46 + buttonsD.h | 75 + buttonsP.h | 95 + check.c | 88 + check.h | 31 + check_grow.c | 192 + check_ic32.h | 40 + check_mod.c | 160 + check_shk.c | 129 + client.c | 309 + client.h | 87 + closed.c | 83 + closed.h | 49 + commit.h | 30 + commit_op.c | 161 + contrib/rtl.desktop | 7 + control.c | 270 + control.h | 76 + copyright.h | 31 + cscope.out | 257695 ++++++++++++++++++++++++++ current.c | 53 + current.h | 53 + custom/berman/.rtl.click | 1 + custom/berman/.rtl.layout | 43 + custom/berman/.rtl.preferences | 197 + custom/berman/.rtl.profiles | 13 + custom/berman/.rtl.prorate | 1 + custom/berman/.rtl.startup | 7 + custom/berman/.rtl.tools | 38 + custom/bitmaps/abc.xbm | 14 + custom/bitmaps/clock.xbm | 46 + custom/bitmaps/cmdtool.xbm | 38 + custom/bitmaps/console.xbm | 38 + custom/bitmaps/console1.xbm | 47 + custom/bitmaps/emacs.h | 46 + custom/bitmaps/emacs.xbm | 46 + custom/bitmaps/emacs1.xbm | 31 + custom/bitmaps/eye1.xbm | 20 + custom/bitmaps/ez.xbm | 27 + custom/bitmaps/gvmstat.xbm | 46 + custom/bitmaps/h19.pend.xbm | 46 + custom/bitmaps/h19.xbm | 46 + custom/bitmaps/huh.xbm | 20 + custom/bitmaps/iconedit.xbm | 38 + custom/bitmaps/lightgrey.xbm | 6 + custom/bitmaps/mailbox_checked.xbm | 38 + custom/bitmaps/nobozos.xbm | 38 + custom/bitmaps/perfmon.xbm | 72 + custom/bitmaps/pinhead.xbm | 32 + custom/bitmaps/pipes1.xbm | 60 + custom/bitmaps/realeye.xbm | 73 + custom/bitmaps/rtl.h | 46 + custom/bitmaps/rtl.xbm | 72 + custom/bitmaps/tex.xbm | 22 + custom/bitmaps/timex.xbm | 38 + custom/bitmaps/tm.xbm | 47 + custom/bitmaps/tombstone.xbm | 38 + custom/bitmaps/traffic.xbm | 38 + custom/bitmaps/typescript.xbm | 46 + custom/bitmaps/xterm.xbm | 38 + custom/bitmaps/xterm1.xbm | 47 + custom/bitmaps/zip.xbm | 24 + custom/ellis/.rtl.enlarge_prorate | 2 + custom/ellis/.rtl.hack | 6 + custom/ellis/.rtl.layout | 43 + custom/ellis/.rtl.nonauto | 19 + custom/ellis/.rtl.preferences | 139 + custom/ellis/.rtl.profiles | 12 + custom/ellis/.rtl.prorate | 1 + custom/ellis/.rtl.startup | 15 + custom/ellis/.rtl.tools | 34 + custom/ellis/.rtl.zoom | 2 + custom/ellis/.rtl.zoom_prorate | 4 + custom/jcc/.rtl.click | 1 + custom/jcc/.rtl.glasses | 10 + custom/jcc/.rtl.icon_area | 7 + custom/jcc/.rtl.icons | 3 + custom/jcc/.rtl.layout | 43 + custom/jcc/.rtl.no_icons | 3 + custom/jcc/.rtl.preferences | 99 + custom/jcc/.rtl.profiles | 20 + custom/jcc/.rtl.prorate | 4 + custom/jcc/.rtl.real_estate | 1 + custom/jcc/.rtl.startup | 10 + custom/jcc/.rtl.tools | 21 + custom/jcc/.rtl.zoom | 29 + dbug_pr.c | 284 + defaults.i | 485 + defaults1.i | 489 + doc/ANNOUNCEMENT | 101 + doc/plaintext/manual5.doc | 2379 + doc/plaintext/refpage5.doc | 62 + doc/plaintext/refpage_one5.doc | 49 + doc/plaintext/tutorial5.doc | 236 + doc/postscript/manual5.ps | 23424 +++ doc/postscript/refpage5.ps | 1373 + doc/postscript/refpage_one5.ps | 1199 + doc/postscript/tutorial5.ps | 3808 + doc/scribe/manual5.mss | 2767 + doc/scribe/refpage5.mss | 149 + doc/scribe/refpage_one5.mss | 114 + doc/scribe/tutorial5.mss | 304 + doc/tex/manual5.tex | 2523 + doc/tex/refpage5.tex | 203 + doc/tex/refpage_one5.tex | 182 + doc/tex/tutorial5.tex | 315 + draw.c | 321 + draw.h | 105 + drawP.h | 35 + drawicon.c | 561 + drawicon.h | 94 + drawwin.c | 757 + drawwin.h | 133 + drawwin_d.c | 715 + events.c | 36 + events.h | 38 + evsave.c | 136 + evsave.h | 39 + evsaveD.h | 13 + evsaveP.h | 41 + evsaveSH.h | 41 + evsaveX.h | 33 + evstack.c | 78 + evstack.h | 36 + evstackD.h | 37 + evstackP.h | 47 + evstackSH.h | 45 + evstackX.h | 35 + evstrings.h | 69 + exploptsP.h | 36 + explwoptsP.h | 42 + extras/rhyme.c | 51 + extras/rhymes | 56 + extras/yow-press.c | 1187 + extras/yow-transient.c | 1327 + extras/yow.c | 1186 + extras/yow2.c | 1191 + fieldP.h | 79 + frame.c | 32 + goal.c | 51 + goal.h | 31 + goalP.h | 31 + gravity.c | 333 + gravity.h | 56 + gray1_32.h | 14 + icons.c | 149 + icons/arrow_ic32.h | 40 + icons/arrow_icon.h | 31 + icons/background.h | 32 + icons/check_ic32.h | 40 + icons/gray1_32.h | 14 + icons/icon_frame.h | 46 + icons/null_icon.h | 35 + icons/rtl.xbm | 89 + icons/rtl_icon.h | 72 + init_tws.c | 102 + input.c | 782 + input.h | 44 + interf.c | 5640 + interf.h | 52 + interf_in.c | 139 + interf_in1.c | 124 + layout.c | 651 + layout.h | 59 + listsP.h | 60 + manage.c | 5343 + manage.h | 271 + manage.vim.c | 9777 + manage_op.c | 674 + manage_pro.c | 1140 + manage_st.c | 701 + mem.c | 57 + mem.h | 30 + menu.c | 1134 + menu.h | 48 + menuD.h | 167 + menuP.h | 137 + message.c | 41 + message.h | 44 + messageP.h | 34 + null_icon.h | 35 + open.c | 227 + patchlevel.h | 2 + pause.c | 101 + pcs_enum.c | 112 + pcs_merge.c | 136 + pcs_split.c | 288 + pcs_updt.c | 151 + platformP.h | 63 + pr.c | 256 + profile.c | 1306 + profile.h | 52 + property.c | 498 + redirect.c | 392 + region.c | 708 + region.h | 163 + regionP.h | 68 + rtlmenu.c | 351 + rtlmenu.h | 67 + rtlmenuD.h | 158 + rtlmenuO.h | 48 + rtlmenuP.h | 138 + rtlmenuSH.h | 100 + rtlmenuX.h | 36 + screenshots/rtl-example.png | Bin 0 -> 4839 bytes smdebug.h | 5 + state.c | 701 + state.h | 103 + stateP.h | 48 + std_defs.h | 123 + synonymsS.h | 64 + til_create.c | 179 + til_delete.c | 200 + til_enlrg.c | 93 + til_find.c | 92 + til_nbrs.c | 116 + til_panic.c | 48 + til_shrink.c | 95 + tile-listP.h | 129 + tile.h | 81 + tileD.h | 91 + tileI.h | 67 + tileP.h | 40 + tilecrsr.c | 141 + tilecrsr.h | 79 + tilecrsrP.h | 33 + tileicon.h | 75 + tileiconP.h | 36 + tilemenu.c | 268 + tilemenu.h | 102 + tilemenuP.h | 36 + tileopts.c | 34 + tileopts.h | 50 + tileoptsP.h | 51 + tileoptsS.h | 50 + tool.c | 104 + tool.h | 37 + track_menu.c | 821 + trial.h | 38 + trialP.h | 35 + try_grow.c | 197 + try_place.c | 461 + try_sat.c | 82 + try_slide.c | 187 + try_sweep.c | 342 + twin.h | 280 + twinD.h | 174 + twinI.h | 98 + twinP.h | 46 + twin_close.c | 64 + twin_creat.c | 59 + twin_desk.c | 78 + twin_dump.c | 117 + twin_init.c | 44 + twin_list.c | 68 + twin_ltst.c | 117 + twin_misc.c | 116 + twin_open.c | 355 + twin_resat.c | 54 + twin_rsz.c | 547 + twin_set.c | 142 + twin_slide.c | 312 + twin_thrd.c | 316 + twin_tmp.c | 1200 + twin_undo.c | 99 + twin_util.c | 331 + twinoptsP.h | 45 + twinoptsS.h | 46 + userglob.c | 40 + userglobD.h | 74 + useropts.c | 240 + useropts.h | 251 + useroptsP.h | 287 + useroptsS.h | 285 + uservalsP.h | 73 + uservalsS.h | 61 + uwin.c | 217 + uwin.h | 11 + uwinD.h | 234 + uwinL.h | 153 + uwinP.h | 138 + uwinXD.h | 48 + uwinoptP.h | 122 + uwinoptS.h | 122 + uwinstrP.h | 35 + uwinstrS.h | 31 + uwinvalP.h | 76 + uwinvalS.h | 72 + win.c | 187 + win.h | 37 + wsys.c | 293 + xerror.c | 67 + xio.h | 42 + 304 files changed, 359244 insertions(+) create mode 100644 Imakefile create mode 100644 README create mode 100644 README.old create mode 100644 arrow_ic32.h create mode 100644 arrow_icon.h create mode 100644 assoc.c create mode 100644 assoc.h create mode 100644 basetype.h create mode 100644 bodyreg.c create mode 100644 bodyreg.h create mode 100644 bodyregP.h create mode 100644 buttons.h create mode 100644 buttonsD.h create mode 100644 buttonsP.h create mode 100644 check.c create mode 100644 check.h create mode 100644 check_grow.c create mode 100644 check_ic32.h create mode 100644 check_mod.c create mode 100644 check_shk.c create mode 100644 client.c create mode 100644 client.h create mode 100644 closed.c create mode 100644 closed.h create mode 100644 commit.h create mode 100644 commit_op.c create mode 100644 contrib/rtl.desktop create mode 100644 control.c create mode 100644 control.h create mode 100644 copyright.h create mode 100644 cscope.out create mode 100644 current.c create mode 100644 current.h create mode 100644 custom/berman/.rtl.click create mode 100644 custom/berman/.rtl.layout create mode 100644 custom/berman/.rtl.preferences create mode 100644 custom/berman/.rtl.profiles create mode 100644 custom/berman/.rtl.prorate create mode 100644 custom/berman/.rtl.startup create mode 100644 custom/berman/.rtl.tools create mode 100644 custom/bitmaps/abc.xbm create mode 100644 custom/bitmaps/clock.xbm create mode 100644 custom/bitmaps/cmdtool.xbm create mode 100644 custom/bitmaps/console.xbm create mode 100644 custom/bitmaps/console1.xbm create mode 100644 custom/bitmaps/emacs.h create mode 100644 custom/bitmaps/emacs.xbm create mode 100644 custom/bitmaps/emacs1.xbm create mode 100644 custom/bitmaps/eye1.xbm create mode 100644 custom/bitmaps/ez.xbm create mode 100644 custom/bitmaps/gvmstat.xbm create mode 100644 custom/bitmaps/h19.pend.xbm create mode 100644 custom/bitmaps/h19.xbm create mode 100644 custom/bitmaps/huh.xbm create mode 100644 custom/bitmaps/iconedit.xbm create mode 100644 custom/bitmaps/lightgrey.xbm create mode 100644 custom/bitmaps/mailbox_checked.xbm create mode 100644 custom/bitmaps/nobozos.xbm create mode 100644 custom/bitmaps/perfmon.xbm create mode 100644 custom/bitmaps/pinhead.xbm create mode 100644 custom/bitmaps/pipes1.xbm create mode 100644 custom/bitmaps/realeye.xbm create mode 100644 custom/bitmaps/rtl.h create mode 100644 custom/bitmaps/rtl.xbm create mode 100644 custom/bitmaps/tex.xbm create mode 100644 custom/bitmaps/timex.xbm create mode 100644 custom/bitmaps/tm.xbm create mode 100644 custom/bitmaps/tombstone.xbm create mode 100644 custom/bitmaps/traffic.xbm create mode 100644 custom/bitmaps/typescript.xbm create mode 100644 custom/bitmaps/xterm.xbm create mode 100644 custom/bitmaps/xterm1.xbm create mode 100644 custom/bitmaps/zip.xbm create mode 100644 custom/ellis/.rtl.enlarge_prorate create mode 100644 custom/ellis/.rtl.hack create mode 100644 custom/ellis/.rtl.layout create mode 100644 custom/ellis/.rtl.nonauto create mode 100644 custom/ellis/.rtl.preferences create mode 100644 custom/ellis/.rtl.profiles create mode 100644 custom/ellis/.rtl.prorate create mode 100644 custom/ellis/.rtl.startup create mode 100644 custom/ellis/.rtl.tools create mode 100644 custom/ellis/.rtl.zoom create mode 100644 custom/ellis/.rtl.zoom_prorate create mode 100644 custom/jcc/.rtl.click create mode 100644 custom/jcc/.rtl.glasses create mode 100644 custom/jcc/.rtl.icon_area create mode 100644 custom/jcc/.rtl.icons create mode 100644 custom/jcc/.rtl.layout create mode 100644 custom/jcc/.rtl.no_icons create mode 100644 custom/jcc/.rtl.preferences create mode 100644 custom/jcc/.rtl.profiles create mode 100644 custom/jcc/.rtl.prorate create mode 100644 custom/jcc/.rtl.real_estate create mode 100644 custom/jcc/.rtl.startup create mode 100644 custom/jcc/.rtl.tools create mode 100644 custom/jcc/.rtl.zoom create mode 100644 dbug_pr.c create mode 100644 defaults.i create mode 100644 defaults1.i create mode 100644 doc/ANNOUNCEMENT create mode 100644 doc/plaintext/manual5.doc create mode 100644 doc/plaintext/refpage5.doc create mode 100644 doc/plaintext/refpage_one5.doc create mode 100644 doc/plaintext/tutorial5.doc create mode 100644 doc/postscript/manual5.ps create mode 100644 doc/postscript/refpage5.ps create mode 100644 doc/postscript/refpage_one5.ps create mode 100644 doc/postscript/tutorial5.ps create mode 100644 doc/scribe/manual5.mss create mode 100644 doc/scribe/refpage5.mss create mode 100644 doc/scribe/refpage_one5.mss create mode 100644 doc/scribe/tutorial5.mss create mode 100644 doc/tex/manual5.tex create mode 100644 doc/tex/refpage5.tex create mode 100644 doc/tex/refpage_one5.tex create mode 100644 doc/tex/tutorial5.tex create mode 100644 draw.c create mode 100644 draw.h create mode 100644 drawP.h create mode 100644 drawicon.c create mode 100644 drawicon.h create mode 100644 drawwin.c create mode 100644 drawwin.h create mode 100644 drawwin_d.c create mode 100644 events.c create mode 100644 events.h create mode 100644 evsave.c create mode 100644 evsave.h create mode 100644 evsaveD.h create mode 100644 evsaveP.h create mode 100644 evsaveSH.h create mode 100644 evsaveX.h create mode 100644 evstack.c create mode 100644 evstack.h create mode 100644 evstackD.h create mode 100644 evstackP.h create mode 100644 evstackSH.h create mode 100644 evstackX.h create mode 100644 evstrings.h create mode 100644 exploptsP.h create mode 100644 explwoptsP.h create mode 100644 extras/rhyme.c create mode 100644 extras/rhymes create mode 100644 extras/yow-press.c create mode 100644 extras/yow-transient.c create mode 100644 extras/yow.c create mode 100644 extras/yow2.c create mode 100644 fieldP.h create mode 100644 frame.c create mode 100644 goal.c create mode 100644 goal.h create mode 100644 goalP.h create mode 100644 gravity.c create mode 100644 gravity.h create mode 100644 gray1_32.h create mode 100644 icons.c create mode 100644 icons/arrow_ic32.h create mode 100644 icons/arrow_icon.h create mode 100644 icons/background.h create mode 100644 icons/check_ic32.h create mode 100644 icons/gray1_32.h create mode 100644 icons/icon_frame.h create mode 100644 icons/null_icon.h create mode 100644 icons/rtl.xbm create mode 100644 icons/rtl_icon.h create mode 100644 init_tws.c create mode 100644 input.c create mode 100644 input.h create mode 100644 interf.c create mode 100644 interf.h create mode 100644 interf_in.c create mode 100644 interf_in1.c create mode 100644 layout.c create mode 100644 layout.h create mode 100644 listsP.h create mode 100644 manage.c create mode 100644 manage.h create mode 100644 manage.vim.c create mode 100644 manage_op.c create mode 100644 manage_pro.c create mode 100644 manage_st.c create mode 100644 mem.c create mode 100644 mem.h create mode 100644 menu.c create mode 100644 menu.h create mode 100644 menuD.h create mode 100644 menuP.h create mode 100644 message.c create mode 100644 message.h create mode 100644 messageP.h create mode 100644 null_icon.h create mode 100644 open.c create mode 100644 patchlevel.h create mode 100644 pause.c create mode 100644 pcs_enum.c create mode 100644 pcs_merge.c create mode 100644 pcs_split.c create mode 100644 pcs_updt.c create mode 100644 platformP.h create mode 100644 pr.c create mode 100644 profile.c create mode 100644 profile.h create mode 100644 property.c create mode 100644 redirect.c create mode 100644 region.c create mode 100644 region.h create mode 100644 regionP.h create mode 100644 rtlmenu.c create mode 100644 rtlmenu.h create mode 100644 rtlmenuD.h create mode 100644 rtlmenuO.h create mode 100644 rtlmenuP.h create mode 100644 rtlmenuSH.h create mode 100644 rtlmenuX.h create mode 100644 screenshots/rtl-example.png create mode 100644 smdebug.h create mode 100644 state.c create mode 100644 state.h create mode 100644 stateP.h create mode 100644 std_defs.h create mode 100644 synonymsS.h create mode 100644 til_create.c create mode 100644 til_delete.c create mode 100644 til_enlrg.c create mode 100644 til_find.c create mode 100644 til_nbrs.c create mode 100644 til_panic.c create mode 100644 til_shrink.c create mode 100644 tile-listP.h create mode 100644 tile.h create mode 100644 tileD.h create mode 100644 tileI.h create mode 100644 tileP.h create mode 100644 tilecrsr.c create mode 100644 tilecrsr.h create mode 100644 tilecrsrP.h create mode 100644 tileicon.h create mode 100644 tileiconP.h create mode 100644 tilemenu.c create mode 100644 tilemenu.h create mode 100644 tilemenuP.h create mode 100644 tileopts.c create mode 100644 tileopts.h create mode 100644 tileoptsP.h create mode 100644 tileoptsS.h create mode 100644 tool.c create mode 100644 tool.h create mode 100644 track_menu.c create mode 100644 trial.h create mode 100644 trialP.h create mode 100644 try_grow.c create mode 100644 try_place.c create mode 100644 try_sat.c create mode 100644 try_slide.c create mode 100644 try_sweep.c create mode 100644 twin.h create mode 100644 twinD.h create mode 100644 twinI.h create mode 100644 twinP.h create mode 100644 twin_close.c create mode 100644 twin_creat.c create mode 100644 twin_desk.c create mode 100644 twin_dump.c create mode 100644 twin_init.c create mode 100644 twin_list.c create mode 100644 twin_ltst.c create mode 100644 twin_misc.c create mode 100644 twin_open.c create mode 100644 twin_resat.c create mode 100644 twin_rsz.c create mode 100644 twin_set.c create mode 100644 twin_slide.c create mode 100644 twin_thrd.c create mode 100644 twin_tmp.c create mode 100644 twin_undo.c create mode 100644 twin_util.c create mode 100644 twinoptsP.h create mode 100644 twinoptsS.h create mode 100644 userglob.c create mode 100644 userglobD.h create mode 100644 useropts.c create mode 100644 useropts.h create mode 100644 useroptsP.h create mode 100644 useroptsS.h create mode 100644 uservalsP.h create mode 100644 uservalsS.h create mode 100644 uwin.c create mode 100644 uwin.h create mode 100644 uwinD.h create mode 100644 uwinL.h create mode 100644 uwinP.h create mode 100644 uwinXD.h create mode 100644 uwinoptP.h create mode 100644 uwinoptS.h create mode 100644 uwinstrP.h create mode 100644 uwinstrS.h create mode 100644 uwinvalP.h create mode 100644 uwinvalS.h create mode 100644 win.c create mode 100644 win.h create mode 100644 wsys.c create mode 100644 xerror.c create mode 100644 xio.h diff --git a/Imakefile b/Imakefile new file mode 100644 index 0000000..cffbd34 --- /dev/null +++ b/Imakefile @@ -0,0 +1,183 @@ + DEFINES = -O +LOCAL_LIBRARIES = $(XLIB) $(OLDXLIB) + SYS_LIBRARIES = -lm -lcrypt + CC = cc + +SRCS= assoc.c \ + bodyreg.c \ + check.c \ + check_grow.c \ + check_mod.c \ + check_shk.c \ + client.c \ + closed.c \ + commit_op.c \ + control.c \ + current.c \ + draw.c \ + drawicon.c \ + drawwin.c \ + drawwin_d.c \ + events.c \ + evsave.c \ + evstack.c \ + frame.c \ + goal.c \ + gravity.c \ + icons.c \ + init_tws.c \ + input.c \ + interf.c \ + interf_in.c \ + layout.c \ + manage.c \ + manage_op.c \ + manage_pro.c \ + manage_st.c \ + mem.c \ + menu.c \ + message.c \ + open.c \ + pause.c \ + pcs_enum.c \ + pcs_merge.c \ + pcs_split.c \ + pcs_updt.c \ + pr.c \ + profile.c \ + property.c \ + redirect.c \ + region.c \ + rtlmenu.c \ + state.c \ + til_create.c \ + til_delete.c \ + til_enlrg.c \ + til_find.c \ + til_nbrs.c \ + til_panic.c \ + til_shrink.c \ + tilecrsr.c \ + tilemenu.c \ + tileopts.c \ + twin_close.c \ + twin_creat.c \ + twin_desk.c \ + twin_dump.c \ + twin_init.c \ + twin_ltst.c \ + twin_list.c \ + twin_misc.c \ + twin_open.c \ + twin_resat.c \ + twin_rsz.c \ + twin_set.c \ + twin_slide.c \ + twin_thrd.c \ + twin_tmp.c \ + twin_undo.c \ + twin_util.c \ + tool.c \ + track_menu.c \ + try_sweep.c \ + try_grow.c \ + try_place.c \ + try_sat.c \ + try_slide.c \ + userglob.c \ + useropts.c \ + uwin.c \ + win.c \ + wsys.c \ + xerror.c + +OBJS= assoc.o \ + bodyreg.o \ + check.o \ + check_grow.o \ + check_mod.o \ + check_shk.o \ + client.o \ + closed.o \ + commit_op.o \ + control.o \ + current.o \ + draw.o \ + drawicon.o \ + drawwin.o \ + drawwin_d.o \ + events.o \ + evsave.o \ + evstack.o \ + frame.o \ + goal.o \ + gravity.o \ + icons.o \ + init_tws.o \ + input.o \ + interf.o \ + interf_in.o \ + layout.o \ + manage.o \ + manage_op.o \ + manage_pro.o \ + manage_st.o \ + mem.o \ + menu.o \ + message.o \ + open.o \ + pause.o \ + pcs_enum.o \ + pcs_merge.o \ + pcs_split.o \ + pcs_updt.o \ + pr.o \ + profile.o \ + property.o \ + redirect.o \ + region.o \ + rtlmenu.o \ + state.o \ + til_create.o \ + til_delete.o \ + til_enlrg.o \ + til_find.o \ + til_nbrs.o \ + til_panic.o \ + til_shrink.o \ + tilecrsr.o \ + tilemenu.o \ + tileopts.o \ + twin_close.o \ + twin_creat.o \ + twin_desk.o \ + twin_dump.o \ + twin_init.o \ + twin_ltst.o \ + twin_list.o \ + twin_misc.o \ + twin_open.o \ + twin_resat.o \ + twin_rsz.o \ + twin_set.o \ + twin_slide.o \ + twin_thrd.o \ + twin_tmp.o \ + twin_undo.o \ + twin_util.o \ + tool.o \ + track_menu.o \ + try_sweep.o \ + try_grow.o \ + try_place.o \ + try_sat.o \ + try_slide.o \ + userglob.o \ + useropts.o \ + uwin.o \ + win.o \ + wsys.o \ + xerror.o + +ComplexProgramTargetNoMan(rtl) + diff --git a/README b/README new file mode 100644 index 0000000..fad3ea2 --- /dev/null +++ b/README @@ -0,0 +1,43 @@ +# Siemens RTL Tiled Window Manager + +## what is it? + +RTL is a tiled window manager created for the X11R2/3 engine in 1988. it uses libraries like X10 (or liboldx nowadays), and aside from that I'd recommend installing the entire X11 development kit (well, not counting acceleration libraries), including ``imake``. + +## what changes did you make, exactly? + +well, a tiny tweak to the ``input.c`` file, fixing a very specific compiler quirk that seemed to break the thing. I initialised the ``union wait`` structure with a single integer variable, as that's the size that's expected to be passed in the vague ``wait3`` call below. i tested it, and it works fine with the modern X.Org implementations, so no worries. you don't need to pass any weird compiler flags anymore. + +## how do you add things to the Tools menu? + +ah, you just follow this format in the ``~/.rtl.tools`` file: + +``` +Label + command +``` + +for each tool you just add another entry like this. personally, I have it store this: + +``` +UXTerm + uxterm +Console + xconsole +Clock + xclock +Calculator + xcalc +``` + +## is it worth it in the modern day? + +mmmmm, not really, it's just my love for the late 80's - early 90's computing aesthetics. + +## where did you even find this? + +I have two sources to cite: for one, [this page](http://www.xwinman.org/others.php) brought its existence to my attention; and for two, [this forum post](https://dev.suckless.narkive.com/ZzbkXSfA/siemens-rtl-tiled-window-manager) gave me a mostly patched source. + +## Screenshots + +![demo1](./screenshots/rtl-example.png) diff --git a/README.old b/README.old new file mode 100644 index 0000000..d5d322c --- /dev/null +++ b/README.old @@ -0,0 +1,94 @@ +This is a distribution of Release 5.1 of the +Siemens RTL Tiled Window Manager + +------------------------------------------------------------ + +There are 14 compressed tar files. +Join them by: + % cat rtl.tar.Z.* > rtl.tar.Z + +Uncompress them by: + % uncompress rtl.tar + +Extract the files by: + % tar xf rtl.tar + +There should now be 3 subdirectories: + + doc, custom, and extras + +------------------------------------------------------------ + + The top directory contains + + -- .c, .h, and i. files -- source for rtl + -- IMakefile -- a simple Makefile to make the system + +To make rtl: + -- If you got this on the Release 3 tape, it should build when you build + the contrib tree. + -- Otherwise, set TOPDIR to the top of your X sources; + make Makefile (calls Imake to build a correct + Makefile); make all (to build rtl) + +------------------------------------------------------------ + + The doc subdirectory contains + + -- ANNOUNCENT -- The announcement of Release 5.1 with a list of features + -- plaintext -- A subdirectory with plaintext versions of the documentation + -- tex -- A subdirectory with tex versions of the documentation + -- scribe -- A subdirectory with scribe versions of the documentation + -- postscript -- A subdirectory with postscript versions of the documentation + + Each of the subdirectories within doc contains (w appropriate extensions) + + -- tutorial5 -- A tutorial for first time users of rtl + -- manual5 -- A manual for release 5.1 + -- refpage5 -- A quick reference page for a 3 button mouse + -- refpage_one5 -- A quick reference page for a 1 button mouse + +------------------------------------------------------------ + + The custom subdirectory contains + + -- bitmaps -- a variety of bitmap files used as pixmap icons + -- ellis, berman, jcc -- The customization files used by each of the developers + + The customization subdirectories ( ellis, berman & jcc ) may contain + + -- .rtl.preferences -- the main preference file for rtl-related options + -- .rtl.profiles -- specifies additional preference files + -- .rtl.tools -- for setting up the Tools submenu + -- .rtl.startup -- a file optionally executed on startup + -- .rtl.layout -- holds a saved window layout + +See the tutorial and the Customization section of the manual for more information. + +------------------------------------------------------------ + + The extras subdirectory contains + + -- rhyme.c and rhymes -- edit rhyme.c to open "rhymes" on the correct + path, then compile and run it in an xterm window. + + -- yow.c, yow2.c, yow-press.c, yow-transient.c -- each of + these is a test program for window managers. + + yow-transient.c uses client icon and transient windows + +-------------------------------------------------------------- +| | +| If you install and use rtl, we would like to hear | +| about it. Please send your comments to: | +| rtl@siemens.com | +| If there is sufficient interest, we may establish | +| an rtl mailing list. Please indicate if you are | +| interested. | +| | +| This is the final major release of this software | +| scheduled. We will try to fix bugs, (limited) | +| time permitting. We would appreciate your bug | +| reports at the above address. | +| | +-------------------------------------------------------------- diff --git a/arrow_ic32.h b/arrow_ic32.h new file mode 100644 index 0000000..1007193 --- /dev/null +++ b/arrow_ic32.h @@ -0,0 +1,40 @@ +/* +static char sccs_id[] = "%W% %H%"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#define arrow_32_width 32 +#define arrow_32_height 32 +static char arrow_32_bits[] = { + 0x30, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, + 0xc0, 0x01, 0x00, 0x00, 0x9e, 0x03, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/arrow_icon.h b/arrow_icon.h new file mode 100644 index 0000000..86301f5 --- /dev/null +++ b/arrow_icon.h @@ -0,0 +1,31 @@ +/* +static char sccs_id[] = "%W% %H%"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#define arrow_width 10 +#define arrow_height 9 +static char arrow_bits[] = { + 0x30, 0x00, 0x60, 0x00, 0xff, 0x00, 0xc0, 0x01, 0x9e, 0x03, 0xc0, 0x01, + 0xff, 0x00, 0x60, 0x00, 0x30, 0x00}; diff --git a/assoc.c b/assoc.c new file mode 100644 index 0000000..101d8e3 --- /dev/null +++ b/assoc.c @@ -0,0 +1,173 @@ +#ifndef lint +static char sccs_id[] = "%W% %H%"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +/* The "Assoc" package is the front-end to the X + * association table, where X resource ==> (is mapped to) + * some Tiled-Window resource. + */ + +#include "uwinXD.h" + +#include +#include +#include +#include "xio.h" + + +#define ASSOC_TABLE_SIZE 64 /* ?? upper limit on number of dec. wins! */ + +static XAssocTable *xa_table; + +/* ------------------------------------------------------------ + * Create the Association table. + * Failure to create this table should be treated as fatal! + */ +bool +Assoc_InitTable() +{ + extern XAssocTable *XCreateAssocTable(); + + + return ( ((xa_table = XCreateAssocTable(ASSOC_TABLE_SIZE)) + == (XAssocTable *) NULL ) ? + FALSE : TRUE ); +} + +/* ------------------------------------------------------------ + * Add Tiled-Window resource to AssocTable, keyed by X resource + */ +void +Assoc_Put(twp, xid) + char *twp; + XID xid; +{ + + XMakeAssoc(dpy, xa_table, xid, twp); +} + +/* ------------------------------------------------------------ + * Get Tiled-Window resource from AssocTable, keyed by X resource + */ +char * +Assoc_Get(xid) + XID xid; +{ + extern char *XLookUpAssoc(); + + + return (XLookUpAssoc(dpy, xa_table, xid)); +} + +/* ------------------------------------------------------------ + * Remove Window resource from AssocTable, keyed by X resource + */ +int +Assoc_Remove(xid) + XID xid; +{ + XDeleteAssoc(dpy, xa_table, xid); +} + +/* ------------------------------------------------------------ + * Remove X resources -- Tiled-Window resource association pairs + */ +void +Assoc_RemoveDecorations(uwinp) + Userwin *uwinp; +{ + + XDeleteAssoc(dpy, xa_table, Userwin_XParentWin(uwinp)); + XDeleteAssoc(dpy, xa_table, Userwin_XTopBorder(uwinp)); + XDeleteAssoc(dpy, xa_table, Userwin_XLeftBorder(uwinp)); + XDeleteAssoc(dpy, xa_table, Userwin_XRightBorder(uwinp)); + XDeleteAssoc(dpy, xa_table, Userwin_XBottomBorder(uwinp)); + XDeleteAssoc(dpy, xa_table, Userwin_XTopLeftCorner(uwinp)); + XDeleteAssoc(dpy, xa_table, Userwin_XTopRightCorner(uwinp)); + XDeleteAssoc(dpy, xa_table, Userwin_XBottomLeftCorner(uwinp)); + XDeleteAssoc(dpy, xa_table, Userwin_XBottomRightCorner(uwinp)); + XDeleteAssoc(dpy, xa_table, Userwin_XHeader(uwinp)); + XDeleteAssoc(dpy, xa_table, Userwin_XZoomGadget(uwinp)); + XDeleteAssoc(dpy, xa_table, Userwin_XMoveGadget(uwinp)); + XDeleteAssoc(dpy, xa_table, Userwin_XClient(uwinp)); +} + + +/* Add a Decorated X Client-Window's resources to AssocTable + */ +void +Assoc_AddDecorations(uwinp) + Userwin *uwinp; +{ + + XMakeAssoc(dpy, xa_table, Userwin_XParentWin(uwinp), (char *) uwinp); + XMakeAssoc(dpy, xa_table, Userwin_XTopBorder(uwinp), (char *) uwinp); + XMakeAssoc(dpy, xa_table, Userwin_XLeftBorder(uwinp), (char *) uwinp); + XMakeAssoc(dpy, xa_table, Userwin_XRightBorder(uwinp), (char *) uwinp); + XMakeAssoc(dpy, xa_table, Userwin_XBottomBorder(uwinp), (char *) uwinp); + XMakeAssoc(dpy, xa_table, Userwin_XTopLeftCorner(uwinp), (char *) uwinp); + XMakeAssoc(dpy, xa_table, Userwin_XTopRightCorner(uwinp), (char *) uwinp); + XMakeAssoc(dpy, xa_table, Userwin_XBottomLeftCorner(uwinp), (char *) uwinp); + XMakeAssoc(dpy, xa_table, Userwin_XBottomRightCorner(uwinp), (char *) uwinp); + XMakeAssoc(dpy, xa_table, Userwin_XHeader(uwinp), (char *) uwinp); + XMakeAssoc(dpy, xa_table, Userwin_XZoomGadget(uwinp), (char *) uwinp); + XMakeAssoc(dpy, xa_table, Userwin_XMoveGadget(uwinp), (char *) uwinp); + XMakeAssoc(dpy, xa_table, Userwin_XClient(uwinp), (char *) uwinp); + XMakeAssoc(dpy, xa_table, Userwin_XIcon(uwinp), (char *) uwinp); +} + +static XAssocTable *xid_table; + +void +Assoc_Xid_InitTable() +{ + extern XAssocTable *XCreateAssocTable(); + + xid_table = XCreateAssocTable(ASSOC_TABLE_SIZE); +} + +XID +Assoc_Xid_Get(xid) + XID xid; +{ + return((XID) XLookUpAssoc(dpy, xid_table, xid)); +} + +void +Assoc_Xid_Remove(xid) + XID xid; +{ + XDeleteAssoc(dpy, xid_table, xid); +} + +void +Assoc_Xid_Put(ptr, xid) + XID ptr; + XID xid; +{ + XMakeAssoc(dpy, xid_table, xid, (XPointer)ptr); +} diff --git a/assoc.h b/assoc.h new file mode 100644 index 0000000..2d02046 --- /dev/null +++ b/assoc.h @@ -0,0 +1,41 @@ +/* +static char sccs_id[] = "@(#)assoc.h 5.5 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +extern bool Assoc_InitTable(); + +extern void Assoc_Put(); +extern char *Assoc_Get(); + +extern void Assoc_RemoveDecorations(); +extern void Assoc_AddDecorations(); + +extern void Assoc_Xid_InitTable(); +extern XID Assoc_Xid_Get(); +extern void Assoc_Xid_Remove(); +extern void Assoc_Xid_Put(); + diff --git a/basetype.h b/basetype.h new file mode 100644 index 0000000..a7ac588 --- /dev/null +++ b/basetype.h @@ -0,0 +1,153 @@ +/* +static char sccs_id[] = "@(#)basetype.h 5.5 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +/* Base type definitions for the Tiling Window Manager. + * + * ONLY type definitions go here - general macros go in std_defs.h! + */ + +#ifndef BASETYPE + +#define BASETYPE + +#include "std_defs.h" + + +typedef int Basetype; + +typedef struct +{ + Basetype width, + height; +} Size; + + +typedef struct +{ + Basetype left_x, /* point at Top Left corner */ + top_y, + right_x, /* point at Bottom Right */ + bottom_y; +} TWRectangle; + + +typedef enum +{ + Top, Bottom, Left, Right, + Top_Left, Top_Right, Bottom_Left, Bottom_Right, + NoSide +} Side; + + +typedef struct +{ + Basetype x, y; +} TWPoint; + + +/* Macros for basetypes + */ +#define Get_Width(_size) (_size).width +#define Get_Height(_size) (_size).height + +#define Get_LeftX(_rect) (_rect).left_x +#define Get_RightX(_rect) (_rect).right_x +#define Get_TopY(_rect) (_rect).top_y +#define Get_BottomY(_rect) (_rect).bottom_y + +#define Get_PtX(_point) (_point).x +#define Get_PtY(_point) (_point).y + + +/* setting sizes + */ +#define Set_Min_Size(siz,siz1,siz2) \ +{ \ + if ((siz1).width < (siz2).width) \ + (siz).width = (siz1).width; \ + else \ + (siz).width = (siz2).width; \ + if ((siz1).height < (siz2).height) \ + (siz).height = (siz1).height; \ + else \ + (siz).height = (siz2).height; \ +} + +#define Set_Max_Size(siz,siz1,siz2) \ +{ \ + if ((siz1).width > (siz2).width) \ + (siz).width = (siz1).width; \ + else \ + (siz).width = (siz2).width; \ + if ((siz1).height > (siz2).height) \ + (siz).height = (siz1).height; \ + else \ + (siz).height = (siz2).height; \ +} + +#define Same_Size(siz1,siz2) \ + ( ( (siz1).width == (siz2).width ) && \ + ( (siz1).height == (siz2).height ) ) + +#define Same_Rect(rect1,rect2) \ + ( ( (rect1).left_x == (rect2).left_x ) && \ + ( (rect1).right_x == (rect2).right_x ) && \ + ( (rect1).top_y == (rect2).top_y ) && \ + ( (rect1).bottom_y == (rect2).bottom_y ) ) + +#define COMPUTE_CENTER(_rect, _location) \ + { \ + Get_PtX((_location)) = 1 + (Get_LeftX((_rect)) + Get_RightX((_rect))) / 2; \ + Get_PtY((_location)) = 1 + (Get_TopY((_rect)) + Get_BottomY((_rect))) / 2; \ + } + +#define COMPUTE_SIZE(_rect, _size) \ + { \ + Get_Width(_size) = Get_RightX(_rect) - Get_LeftX(_rect) + 1; \ + Get_Height(_size) = Get_BottomY(_rect) - Get_TopY(_rect) + 1; \ + } + +#define MAKE_RECTANGLE(_location, _size, _rect) \ + { \ + Get_LeftX(_rect) = Get_PtX(_location) - (Get_Width(_size) / 2) ; \ + Get_RightX(_rect) = Get_PtX(_location) + ((Get_Width(_size) / 2) - 1); \ + Get_TopY(_rect) = Get_PtY(_location) - (Get_Height(_size) / 2) ; \ + Get_BottomY(_rect) = Get_PtY(_location) + ((Get_Height(_size) / 2) - 1); \ + if (Is_Odd_Number(Get_LeftX(_rect))) \ + if (Is_Odd_Number(Get_PtX(_location))) \ + { Get_LeftX(_rect)-- ; Get_RightX(_rect)-- ;} \ + else \ + { Get_LeftX(_rect)++ ; Get_RightX(_rect)++ ;} \ + if (Is_Odd_Number(Get_TopY(_rect))) \ + if (Is_Odd_Number(Get_PtY(_location))) \ + { Get_TopY(_rect)-- ; Get_BottomY(_rect)-- ;} \ + else \ + { Get_TopY(_rect)++ ; Get_BottomY(_rect)++ ;} \ + } + +#endif /* BASETYPE */ diff --git a/bodyreg.c b/bodyreg.c new file mode 100644 index 0000000..fc2796f --- /dev/null +++ b/bodyreg.c @@ -0,0 +1,124 @@ +#ifndef lint +static char sccs_id[] = "%W% %H%"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + + +#include "uwinD.h" +#include "tilecrsr.h" + + +/*ARGSUSED*/ +void +Bodyreg_Create_If_Not_Pres(uwinp, region_id) + Userwin *uwinp; + int region_id; +{ +} + +/*ARGSUSED*/ +void +Bodyreg_Destroy_Regions(uwinp) + Userwin *uwinp; +{ +} + + +/*ARGSUSED*/ +void +Bodyreg_Def_Rect_For_Region(uwinp, region_id, left, top, width, height) + Userwin *uwinp; + int region_id; + int left, top, width, height; +{ +} + + +/*ARGSUSED*/ +void +Bodyreg_Link_Region(uwinp, region_id1, region_id2) + Userwin *uwinp; + int region_id1, region_id2; +{ +} + + +/*ARGSUSED*/ +void +Bodyreg_Name_Region(uwinp, region_id, name) + Userwin *uwinp; + int region_id; + char *name; +{ +} + + +/*ARGSUSED*/ +BodyRegion +Bodyreg_Locate(uwinp, pt) + Userwin *uwinp; + TWPoint pt; +{ + return NULL; +} + + +/*ARGSUSED*/ +TileCursor +Bodyreg_Get_Cursor(uw, bodyregion) + Userwin *uw; + BodyRegion bodyregion; +{ + return standard_tilecursor; +} + + +/*ARGSUSED*/ +void +Bodyreg_Set_Cursor(uw, font_index, c) + Userwin *uw; + int font_index, c; +{ +} + + +/*ARGSUSED*/ +TileMenu +Bodyreg_Get_Menu(uwinp, bodyregion) + Userwin *uwinp; + BodyRegion bodyregion; +{ + return ((TileMenu) NULL); +} + + +/*ARGSUSED*/ +void +Bodyreg_Menu_Item(uwinp, string) + Userwin *uwinp; + char *string; +{ +} diff --git a/bodyreg.h b/bodyreg.h new file mode 100644 index 0000000..e2d5665 --- /dev/null +++ b/bodyreg.h @@ -0,0 +1,97 @@ +/* +static char sccs_id[] = "@(#)bodyreg.h 5.3 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +#ifndef BODYREGION +#include "bodyreg.h" +#endif + +#ifndef BASETYPE +#include "basetype.h" +#endif + +#ifndef TILEMENU +#include "tilemenu.h" +#endif + +#ifndef TILECURSOR +#include "tilecrsr.h" +#endif + +extern BodyRegion Bodyreg_Locate(); + /* Userwin *uwinp */ + /* TWPoint pt */ + +extern TileCursor Bodyreg_Get_Cursor(); + /* Userwin *uwinp */ + /* Bodyregion region */ + +extern void Bodyreg_Set_Cursor(); +/* Userwin *uw; + int font_index, c; + */ + +extern TileMenu Bodyreg_Get_Menu(); + /* Userwin *uwinp */ + /* Bodyregion region */ + +extern void Bodyreg_Name_Region(); +/* + Userwin *uwinp; + int regionid; + char *name; +*/ + +extern void Bodyreg_Create_If_Not_Pres(); +/* + Userwin *uwinp; + int regionid; +*/ + +extern void Bodyreg_Def_Rect_For_Region(); +/* + Userwin *uwinp; + int regionid; + int left, top, width, height; +*/ + +extern void Bodyreg_Destroy_Regions(); +/* + Userwin *uwinp; +*/ + +extern void Bodyreg_Link_Region(); +/* + Userwin *uwinp; + int regionid1, regionid2; +*/ + +extern void Bodyreg_Menu_Item(); +/* + Userwin *uwinp; + char *string; +*/ diff --git a/bodyregP.h b/bodyregP.h new file mode 100644 index 0000000..3107b27 --- /dev/null +++ b/bodyregP.h @@ -0,0 +1,66 @@ +/* +static char sccs_id[] = "@(#)bodyregP.h 5.2 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +#define BODYREGION + +#ifndef BASETYPE +#include "basetype.h" +#endif + +#ifndef LISTS +#include "listsP.h" +#endif + +#ifndef TILEMENU +#include "tilemenuP.h" +#endif + +#ifndef TILECURSOR +#include "tilecrsrP.h" +#endif + +typedef struct { + TileMenu menu; + TileCursor cursor; + } MenuAndCurs; + + +typedef struct bodyregion { + int regionid; + int menucursor_regionid; /* where to get menu and cursor defs + */ + struct bodyregion *menucursor_bodyregion; + TWRectangle *rect; + TileMenu menu; + TileCursor cursor; + char *regionname; + } *BodyRegion; + + + + diff --git a/buttons.h b/buttons.h new file mode 100644 index 0000000..87a1dc3 --- /dev/null +++ b/buttons.h @@ -0,0 +1,46 @@ +/* +static char sccs_id[] = "@(#)buttons.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +#define BUTTONS_EXTERN + +#ifndef BASETYPE +#include "basetype.h" +#endif + +#ifndef BUTTONS +#include "buttonsP.h" +#endif + +extern bool Buttons_Match(); +/* Buttons but */ +/* Match_Buttons matchbut */ + +extern bool Buttons_Equal(); +/* Buttons but1 */ +/* Buttons but2 */ + diff --git a/buttonsD.h b/buttonsD.h new file mode 100644 index 0000000..94e103e --- /dev/null +++ b/buttonsD.h @@ -0,0 +1,75 @@ +/* +static char sccs_id[] = "@(#)buttonsD.h 5.5 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + + +#ifndef FIELD +#include "fieldP.h" +#endif + +#ifndef BUTTONS +#include "buttonsP.h" +#endif + +#define Buttons_Index(but) \ + lowmasked( but, 2 ) + +#define Buttons_Number(but) \ + ( 1 + Buttons_Index(but) ) + +#define Buttons_Has_Ctrl_Down(but) \ + ( (but & CTRL_DOWN) != 0 ) + +#define Buttons_Has_Shift_Down(but) \ + ( (but & SHIFT_DOWN) != 0 ) + +#define Buttons_Match(but,matchbut) \ + ( is_set( matchbut, Buttons_Index(but) ) && \ + is_set( matchbut, 8 + extract( but, 8, 2 ) ) ) + +#define Buttons_Equal(but1,but2) \ + ( (but1) == (but2) ) + +#define Buttons_Down(butstate,but) \ + (butstate) |= onemask( Buttons_Index(but) ) + +#define Buttons_Up(butstate,but) \ + (butstate) &= ~ onemask( Buttons_Index(but) ) + +#define Buttons_Is_Down(butstate,but) \ + ( (butstate) & (but) ) + +#define Buttons_Is_Up(butstate,but) \ + ( ~Buttons_Is_Down(butstate,but) ) + +#define Buttons_Any_Down(butstate) \ + ( (butstate) != 0 ) + +#define Buttons_Clear(butstate) \ + (butstate) = 0 + diff --git a/buttonsP.h b/buttonsP.h new file mode 100644 index 0000000..3554292 --- /dev/null +++ b/buttonsP.h @@ -0,0 +1,95 @@ +/* +static char sccs_id[] = "@(#)buttonsP.h 5.2 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +#ifndef BUTTONS +#define BUTTONS +#endif + +#ifndef FIELD +#include "fieldP.h" +#endif + +enum ButKind { up, down, click }; + +/* ------------------------------------------------------------ */ + +typedef short Buttons; +/* bits 0 and 1 specify the button that was changed */ +/* bit 8 is whether SHIFT was down */ +/* bit 9 is whether CTRL was down */ + +#define LEFT_BUTTON_NUMBER 1 +#define MIDDLE_BUTTON_NUMBER 2 +#define RIGHT_BUTTON_NUMBER 3 + +#define CTRL_DOWN 0x200 +#define SHIFT_DOWN 0x100 + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +typedef short Match_Buttons; +/* bits 0,1, and 2 correspond to buttons 0,1, and 2 */ +/* bits 8-11 correspond to logical operators on CTRL and SHIFT */ + +#define LEFT_BUTTON 0x1 +#define MIDDLE_BUTTON 0x2 +#define RIGHT_BUTTON 0x4 + +#define NOT_LEFT_BUTTON 0x6 +#define NOT_MIDDLE_BUTTON 0x5 +#define NOT_RIGHT_BUTTON 0x3 + +#define ANY_BUTTON 0x7 + +#define NOT_BUTTONS(but) ( 7 - (but) ) + +/* ------------------------------------------------------------ */ + +#define NONE_SHIFT_CTRL 0x100 +#define JUST_SHIFT 0x200 +#define NOT_CTRL 0x300 +#define JUST_CTRL 0x400 +#define NOT_SHIFT 0x500 +#define JUST_ONE_SHIFT_CTRL 0x600 +#define NOT_BOTH_SHIFT_CTRL 0x700 + +#define BOTH_SHIFT_CTRL 0x800 +#define NOT_JUST_ONE_SHIFT_CTRL 0x900 +#define HAS_SHIFT 0xa00 +#define NOT_JUST_CTRL 0xb00 +#define HAS_CTRL 0xc00 +#define NOT_JUST_SHIFT 0xd00 +#define SOME_SHIFT_CTRL 0xe00 + +#define DONT_CARE 0xf00 + +/* ------------------------------------------------------------ */ + +typedef short Button_State; +/* bits 0,1,2 corresponds to buttons 1,2,3 being down */ + diff --git a/check.c b/check.c new file mode 100644 index 0000000..8d377a9 --- /dev/null +++ b/check.c @@ -0,0 +1,88 @@ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +Check_Select( evstr, str ) + char *evstr; + char *str; +{ +/* printf( "%s: %s\n", evstr, str ); */ +} + +Check_Select_WAIT( str ) + char *str; +{ + Check_Select( "WAIT", str ); +} + +Check_Select_UP( str ) + char *str; +{ + Check_Select( "UP", str ); +} + +Check_Select_DOWN( str ) + char *str; +{ + Check_Select( "DOWN", str ); +} + +Check_Select_KEY( str ) + char *str; +{ + Check_Select( "KEY", str ); +} + +Check_Select_MOUSE( str ) + char *str; +{ +} + +Check_Select_mouse( str ) + char *str; +{ +} + +Check_Select_button( str ) + char *str; +{ + Check_Select( "button", str ); +} + +Check_Select_leave( str ) + char *str; +{ + Check_Select( "leave", str ); +} + +Check_Select_reenter( str ) + char *str; +{ + Check_Select( "reenter", str ); +} + +Check_Event( id ) +{ +/* printf( "%d\n", id ); */ +} diff --git a/check.h b/check.h new file mode 100644 index 0000000..a5ffc0e --- /dev/null +++ b/check.h @@ -0,0 +1,31 @@ +/* +static char sccs_id[] = "@(#)check.h 5.2 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +extern bool Check_Open(); +extern bool Check_Resize(); diff --git a/check_grow.c b/check_grow.c new file mode 100644 index 0000000..871c6b7 --- /dev/null +++ b/check_grow.c @@ -0,0 +1,192 @@ + +#ifndef lint +static char sccs_id[] = "@(#)check_grow.c 5.4 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" +#include "twinD.h" +#include "twin.h" +#include "state.h" +#include "tile.h" +#include "win.h" + +extern bool Check_Can_Modify(); + +bool +Check_Grow(winp, rect, side, ptp, stamp, + better, nclosed, nexpensive, naffected) + Tilwin *winp; + TWRectangle rect; + Side side; + TWPoint *ptp; + TimeStamp stamp; + bool better; + int *nclosed; + int *nexpensive; + int *naffected; +{ + Tilwin *next_winp; + bool ret_val = TRUE; + WinpHandle handle; + Basetype most, + current_most; + int now_closed = 0; + int now_expensive = 0; + int now_affected = 0; + + /* Get a list of all Windows in the 'areap' area... + * Determine for each Tilwin on the list, if it + * can be Shrunk or Closed legally, per the Options. + * If any Tilwin must be Closed or Shrunk in order to + * Open the new Window, and cannot be, return failure. + */ + State_Potential_Clear(); + + Tiles_In_Area(Get_LeftX(rect), Get_TopY(rect), + Get_RightX(rect), Get_BottomY(rect), + Win_Add_List); + + if (side != NoSide) + current_most = ((side == Left || side == Right) ? + Get_PtX(*ptp) : Get_PtY(*ptp)); + + handle = State_Gen_Potentially_Modfd(); + + next_winp = State_Coerce(handle); + while (next_winp != WINP_NULL && ret_val == TRUE){ + + if (next_winp == winp){ + State_Remove_Potentially_Modfd(next_winp); + State_Next_Window(&handle); + next_winp = State_Coerce(handle); + continue; + } + + if (side != NoSide) + most = ((side == Left || side == Right) ? + Get_PtX(*ptp) : Get_PtY(*ptp)); + + if (Check_Can_Modify(next_winp, rect, side, &most, + Tilwin_Get_Window_Timestamp(winp), stamp) == FALSE){ + ret_val = FALSE; + } + else { + switch (side) { + case Left: + case Top: + current_most = (current_most < most ? most : current_most ); + break; + case Right: + case Bottom: + current_most = (current_most > most ? most : current_most); + break; + case NoSide: + if (Tilwin_Get_Modify_Side(next_winp) == NoSide) + { + now_closed++; + if (better == TRUE) + { + if (now_closed >= *nclosed) + ret_val = FALSE; + } + else + { + if (now_closed > *nclosed) + ret_val = FALSE; + } + } + else if (Tilwin_Get_Window_Option(next_winp, + EXPENSIVE_TO_REDRAW) + == TRUE) + { + now_expensive++; + if (better == TRUE) + { + if ((now_closed == *nclosed) && + (now_expensive >= *nexpensive)) + ret_val = FALSE; + } + else + { + if((now_closed == *nclosed) && + (now_expensive > *nexpensive)) + ret_val = FALSE; + } + } + now_affected++; + if (better == TRUE) + { + if ((now_closed == *nclosed) && + (now_expensive == *nexpensive) && + (now_affected >= *naffected)) + ret_val = FALSE; + } + else + { + if ((now_closed == *nclosed) && + (now_expensive == *nexpensive) && + (now_affected > *naffected)) + ret_val = FALSE; + } + break; + } + } + + /* if the window is to be closed, place it on the appropriate list */ + if (Tilwin_Get_Modify_Side(next_winp) == NoSide) { + State_Remove_Potentially_Modfd(next_winp); + State_Insert_Potentially_Closed(next_winp); + } + + State_Next_Window(&handle); + next_winp = State_Coerce(handle); + + /* NOTE: we can improve this algorithm by exploiting the fact that + * the new value of current_most may change rect so that a window + * which was before overlapped by rect is no longer overlapped. + * We need not call Check_Can_Modify on this window. We leave + * this improvement as an exercise to the reader. + */ + } + + if (ret_val == TRUE) + { + if (side != NoSide) + if (side == Left || side == Right) + Get_PtX(*ptp) = current_most; + else + Get_PtY(*ptp) = current_most; + else + { + *nclosed = now_closed; + *nexpensive = now_expensive; + *naffected = now_affected; + } + } + + return (ret_val); +} diff --git a/check_ic32.h b/check_ic32.h new file mode 100644 index 0000000..b5f7fa2 --- /dev/null +++ b/check_ic32.h @@ -0,0 +1,40 @@ +/* +static char sccs_id[] = "%W% %H%"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#define check_32_width 32 +#define check_32_height 32 +static char check_32_bits[] = { + 0x00, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0x60, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/check_mod.c b/check_mod.c new file mode 100644 index 0000000..82dbbbd --- /dev/null +++ b/check_mod.c @@ -0,0 +1,160 @@ + +#ifndef lint +static char sccs_id[] = "@(#)check_mod.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" +#include "twinD.h" +#include "twin.h" + +extern Side Check_Shrink(); + +/* Can we Modify the window 'winp' overlapped + * by 'area'? + * MODIFIES window 'shrink_size' and 'modify_rect'. + */ +bool +Check_Can_Modify(winp, area, growing_direction, bestp, win_stamp, close_stamp) + Tilwin *winp; + TWRectangle area; + Side growing_direction; + Basetype *bestp; + TimeStamp win_stamp, /* the timestamp of the window trying + * to affect winp */ + close_stamp; /* a timestamp for which no windows + * more recent than should be closed */ +{ + Size new_size; + TWRectangle shrink_rect; + Side shrink_side; + Basetype best; + bool ret_val; + + /* don't need this (but just in case!) best = *bestp; */ + + /* Calculate the shrink rectangle + */ + shrink_rect = Tilwin_Get_Rectangle(winp); + shrink_side = Check_Shrink(winp, &shrink_rect, area, win_stamp); + + Tilwin_Set_Modify_Rectangle(winp, shrink_rect); + Tilwin_Set_Modify_Side(winp, shrink_side); + + if (Tilwin_Get_Modify_Side(winp) == NoSide){ + /* window must be closed, check to see if it is OK to close it */ + if (((Tilwin_Get_Window_Option(winp, REQUIRE_MANUAL_CLOSE) == FALSE) && + (Tilwin_Get_Global_Option(ALLOW_AUTOMATIC_CLOSE) == TRUE) && + ((Tilwin_Get_Global_Option(ALLOW_AUTO_CLOSE_MORE_RECENT) == TRUE) || + (Tilwin_Get_Window_Timestamp(winp) <= win_stamp)) && + (Tilwin_Get_Window_Timestamp(winp) <= close_stamp))) + { + ret_val = TRUE; + } + else{ /* it is not cool to close this window */ + Tilwin_Set_Modify_Rectangle(winp, Tilwin_Get_Rectangle(winp)); + switch(growing_direction){ + case Left: + Tilwin_Set_Modify_Side(winp, Right); + if ((Tilwin_Get_Global_Option(ALLOW_AUTOMATIC_SHRINK) == TRUE) && + ((Tilwin_Get_Global_Option(ALLOW_AUTO_SHRINK_MORE_RECENT)) || + (Tilwin_Get_Window_Timestamp(winp) <= win_stamp)) && + (Tilwin_Get_Window_Option(winp, FIXED_RIGHT_EDGE) == FALSE) && + (Tilwin_Get_Window_Option(winp, FIXED_WIDTH) == FALSE) && + (Tilwin_Get_Window_Option(winp, FIXED_SIZE) == FALSE) && + (Tilwin_Get_Window_Option(winp, FIXED_COMPLETELY) == FALSE)){ + new_size = (Tilwin_Get_Global_Option(ENFORCE_MINIMUMS) ? + Tilwin_Get_Min(winp) : Tilwin_Get_Absolute_Minimums()); + Get_RightX(Tilwin_Get_Modify_Rectangle(winp)) = + Get_LeftX(Tilwin_Get_Modify_Rectangle(winp))+(Get_Width(new_size) - 1); + } + best = Get_RightX(Tilwin_Get_Modify_Rectangle(winp)) + 1; + ret_val = TRUE; + break; + case Right: + Tilwin_Set_Modify_Side(winp, Left); + if ((Tilwin_Get_Global_Option(ALLOW_AUTOMATIC_SHRINK) == TRUE) && + ((Tilwin_Get_Global_Option(ALLOW_AUTO_SHRINK_MORE_RECENT)) || + (Tilwin_Get_Window_Timestamp(winp) <= win_stamp)) && + (Tilwin_Get_Window_Option(winp, FIXED_LEFT_EDGE) == FALSE) && + (Tilwin_Get_Window_Option(winp, FIXED_WIDTH) == FALSE) && + (Tilwin_Get_Window_Option(winp, FIXED_SIZE) == FALSE) && + (Tilwin_Get_Window_Option(winp, FIXED_COMPLETELY) == FALSE)){ + new_size = (Tilwin_Get_Global_Option(ENFORCE_MINIMUMS) ? + Tilwin_Get_Min(winp) : Tilwin_Get_Absolute_Minimums()); + Get_LeftX(Tilwin_Get_Modify_Rectangle(winp)) = + Get_RightX(Tilwin_Get_Modify_Rectangle(winp))-(Get_Width(new_size) - 1); + } + best = Get_LeftX(Tilwin_Get_Modify_Rectangle(winp)) - 1; + ret_val = TRUE; + break; + case Top: + if ((Tilwin_Get_Global_Option(ALLOW_AUTOMATIC_SHRINK) == TRUE) && + ((Tilwin_Get_Global_Option(ALLOW_AUTO_SHRINK_MORE_RECENT)) || + (Tilwin_Get_Window_Timestamp(winp) <= win_stamp)) && + (Tilwin_Get_Window_Option(winp, FIXED_BOTTOM_EDGE) == FALSE) && + (Tilwin_Get_Window_Option(winp, FIXED_HEIGHT) == FALSE) && + (Tilwin_Get_Window_Option(winp, FIXED_SIZE) == FALSE) && + (Tilwin_Get_Window_Option(winp, FIXED_COMPLETELY) == FALSE)){ + new_size = (Tilwin_Get_Global_Option(ENFORCE_MINIMUMS) ? + Tilwin_Get_Min(winp) : Tilwin_Get_Absolute_Minimums()); + Get_BottomY(Tilwin_Get_Modify_Rectangle(winp)) = + Get_TopY(Tilwin_Get_Modify_Rectangle(winp))+(Get_Height(new_size) - 1); + } + best = Get_BottomY(Tilwin_Get_Modify_Rectangle(winp)) + 1; + ret_val = TRUE; + break; + case Bottom: + Tilwin_Set_Modify_Side(winp, Top); + if ((Tilwin_Get_Global_Option(ALLOW_AUTOMATIC_SHRINK) == TRUE) && + ((Tilwin_Get_Global_Option(ALLOW_AUTO_SHRINK_MORE_RECENT)) || + (Tilwin_Get_Window_Timestamp(winp) <= win_stamp)) && + (Tilwin_Get_Window_Option(winp, FIXED_BOTTOM_EDGE) == FALSE) && + (Tilwin_Get_Window_Option(winp, FIXED_HEIGHT) == FALSE) && + (Tilwin_Get_Window_Option(winp, FIXED_SIZE) == FALSE) && + (Tilwin_Get_Window_Option(winp, FIXED_COMPLETELY) == FALSE)){ + new_size = (Tilwin_Get_Global_Option(ENFORCE_MINIMUMS) ? + Tilwin_Get_Min(winp) : Tilwin_Get_Absolute_Minimums()); + Get_TopY(Tilwin_Get_Modify_Rectangle(winp)) = + Get_BottomY(Tilwin_Get_Modify_Rectangle(winp))-(Get_Height(new_size) - 1); + } + best = Get_TopY(Tilwin_Get_Modify_Rectangle(winp)) - 1; + ret_val = TRUE; + break; + case NoSide: + Tilwin_Set_Modify_Side(winp, NoSide); + ret_val = FALSE; + break; + } + } + } + else{ /* (Tilwin_Get_Modify_Side(winp) != NoSide) */ + ret_val = TRUE; + } + + *bestp = best; + return(ret_val); +} diff --git a/check_shk.c b/check_shk.c new file mode 100644 index 0000000..08ed67c --- /dev/null +++ b/check_shk.c @@ -0,0 +1,129 @@ +#ifndef lint +static char sccs_id[] = "@(#)check_shk.c 5.4 9/7/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#include "basetype.h" +#include "twinD.h" +#include "twin.h" +#include "goal.h" + +#define max(a, b) ( a > b ? a : b) +#define min(a, b) ( a < b ? a : b) + +Side +Check_Shrink(twinp, shrink_rectp, area, stamp) + Tilwin *twinp; + TWRectangle *shrink_rectp, + area; + TimeStamp stamp; +{ + Size min_size, + size; + Side best_side; + TWRectangle best_rect, + rect; + float best_goal, + current_goal; + + if (Tilwin_Get_Window_Option(twinp, FIXED_SIZE) == TRUE || + Tilwin_Get_Window_Option(twinp, FIXED_COMPLETELY) == TRUE || + Tilwin_Get_Global_Option(ALLOW_AUTOMATIC_SHRINK) == FALSE || + (Tilwin_Get_Global_Option(ALLOW_AUTO_SHRINK_MORE_RECENT) == FALSE && + Tilwin_Get_Window_Timestamp(twinp) > stamp)) + return (NoSide); + + if (Tilwin_Get_Global_Option(ENFORCE_MINIMUMS) == TRUE){ + Get_Width(min_size) = max(Get_Width(Tilwin_Get_Min(twinp)), + Get_Width(Tilwin_Get_Absolute_Minimums())); + Get_Height(min_size) = max(Get_Height(Tilwin_Get_Min(twinp)), + Get_Height(Tilwin_Get_Absolute_Minimums())); + } + else + min_size = Tilwin_Get_Absolute_Minimums(); + + best_side = NoSide; + best_goal = - (float) max(Get_Width(Tilwin_Get_Desktop_Size()), + Get_Height(Tilwin_Get_Desktop_Size())); + + rect = *shrink_rectp; + Get_LeftX(rect) = Get_RightX(area) + 1; + COMPUTE_SIZE(rect, size); + if (Tilwin_Get_Window_Option(twinp, FIXED_LEFT_EDGE) == FALSE && + Tilwin_Get_Window_Option(twinp, FIXED_WIDTH) == FALSE && + Get_Width(size) >= Get_Width(min_size)){ + current_goal = Goal(twinp, Tilwin_Get_Size(twinp), size); + if (current_goal > best_goal){ + best_goal = current_goal; + best_side = Left; + best_rect = rect; + } + } + + rect = *shrink_rectp; + Get_RightX(rect) = Get_LeftX(area) - 1; + COMPUTE_SIZE(rect, size); + if (Tilwin_Get_Window_Option(twinp, FIXED_RIGHT_EDGE) == FALSE && + Tilwin_Get_Window_Option(twinp, FIXED_WIDTH) == FALSE && + Get_Width(size) >= Get_Width(min_size)){ + current_goal = Goal(twinp, Tilwin_Get_Size(twinp), size); + if (current_goal > best_goal){ + best_goal = current_goal; + best_side = Right; + best_rect = rect; + } + } + + rect = *shrink_rectp; + Get_TopY(rect) = Get_BottomY(area) + 1; + COMPUTE_SIZE(rect, size); + if (Tilwin_Get_Window_Option(twinp, FIXED_TOP_EDGE) == FALSE && + Tilwin_Get_Window_Option(twinp, FIXED_HEIGHT) == FALSE && + Get_Height(size) >= Get_Height(min_size)){ + current_goal = Goal(twinp, Tilwin_Get_Size(twinp), size); + if (current_goal > best_goal){ + best_goal = current_goal; + best_side = Top; + best_rect = rect; + } + } + + rect = *shrink_rectp; + Get_BottomY(rect) = Get_TopY(area) - 1; + COMPUTE_SIZE(rect, size); + if (Tilwin_Get_Window_Option(twinp, FIXED_BOTTOM_EDGE) == FALSE && + Tilwin_Get_Window_Option(twinp, FIXED_HEIGHT) == FALSE && + Get_Height(size) >= Get_Height(min_size)){ + current_goal = Goal(twinp, Tilwin_Get_Size(twinp), size); + if (current_goal > best_goal){ + best_goal = current_goal; + best_side = Bottom; + best_rect = rect; + } + } + + *shrink_rectp = best_rect; + return(best_side); +} diff --git a/client.c b/client.c new file mode 100644 index 0000000..8ebd8b8 --- /dev/null +++ b/client.c @@ -0,0 +1,309 @@ +#ifndef lint +static char sccs_id[] = "%W% %H%"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + + +#include +#include + +#include "basetype.h" +#include "buttonsP.h" + +#include "uwinD.h" +#include "uwinXD.h" + +#include +#include +#include "xio.h" +#include "assoc.h" +#include "current.h" + +extern void Open_Execvp(), Open_Exec(); +extern void Property_Set_Wm_State(); + +extern XEvent *current_Xevent; + +/* ------------------------------------------------------------ */ + +/*ARGSUSED*/ +void Client_Redraw(uwinp) + Userwin *uwinp; +{ +/* XExposeEvent ev; + + + ev.type = Expose; + ev.display = dpy; + ev.window = Userwin_XClient(uwinp); + ev.x = 0; + ev.y = 0; + ev.width = 10000; / * large enough area to cover any window! * / + ev.height = 10000; + ev.count = 0; + + XSendEvent(dpy, Userwin_XClient(uwinp), False, ExposureMask, + (XEvent *) &ev); +*/ +} + +/* ------------------------------------------------------------ */ + + /* Start up an X client from the Window Manager. */ + +void Client_Window_Create(cmd) + char *cmd; +{ + int pid; + + + if ((pid = vfork()) == 0) + { +/* + int mypid, i; + + mypid = getpid(); + setpgrp(0, mypid); + + ioctl(0, TIOCSPGRP, &pid); +*/ + signal(SIGHUP, SIG_IGN); + signal(SIGINT, SIG_IGN); + signal(SIGQUIT, SIG_IGN); + + Open_Exec( cmd ); + + _exit(-127); + } + else if (pid < 0) + { + fprintf(stderr, "Client_Window_Create - vfork failed!\n"); + } + +} + +/* ------------------------------------------------------------ */ + + /* Execute Startup file */ + +void Client_Startup(filnam) + char *filnam; +{ + int pid; + + + if ((pid = vfork()) == 0) + { +/* + int mypid, i; + + mypid = getpid(); + setpgrp(0, mypid); + + ioctl(0, TIOCSPGRP, &pid); +*/ + signal(SIGHUP, SIG_IGN); + signal(SIGINT, SIG_IGN); + signal(SIGQUIT, SIG_IGN); + + Open_Execvp( filnam ); + + _exit(-127); + } + else if (pid < 0) + { + fprintf(stderr, "Client_Startup - vfork failed!\n"); + } + +} + +/* ------------------------------------------------------------ */ + +void Client_Bang(uwinp) + Userwin *uwinp; +{ +} + +/* ------------------------------------------------------------ */ + +void Client_Kill(uwinp) + Userwin *uwinp; +{ + XKillClient(dpy, Userwin_XClient(uwinp)); + XFlush(dpy); +} + +/* ------------------------------------------------------------ */ + + /* Send the current X event to the named window */ + /* WARNING: only works for key & button events -- to extend */ + /* it, add the appropriate bits to EV_MASK */ + +#define EV_MASK (KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask) + +void Client_Forge_Current_Event(w) + Window w; +{ + XEvent ev; + + ev = *current_Xevent; + ev.xany.window = w; + XSendEvent(dpy, w, False, EV_MASK, &ev); +} + +/* ------------------------------------------------------------ */ + + /* Send the redirected key event to the X focus window. */ + +/*ARGSUSED*/ +void Client_Send_Key(uwinp, ch) + Userwin *uwinp; + char ch; +{ + + if (current_Xevent->type == KeyPress) + { + if (Region_Get_Type(current_region) == body) + XAllowEvents(dpy, ReplayKeyboard, CurrentTime); + else + Client_Forge_Current_Event(Userwin_XClient(uwinp)); + } +} + +/* ------------------------------------------------------------ */ + +void Client_Ignore_Key() +{} + +/* ------------------------------------------------------------ */ + +/*ARGSUSED*/ +void Client_Menu_Button_Number( num ) + int num; +{} + +/* ------------------------------------------------------------ */ + + /* Send the grabbed Button event to the X client. */ + +/*ARGSUSED*/ +void Client_Send_Button(uwinp, kind, button, pos) + Userwin *uwinp; + enum ButKind kind; + Buttons button; + TWPoint pos; +{ + if ((current_Xevent->type == ButtonPress) || (current_Xevent->type == ButtonRelease)) + { + if (Region_Get_Type(current_region) == body) + XAllowEvents(dpy, ReplayPointer, CurrentTime); + else + Client_Forge_Current_Event(Userwin_XClient(uwinp)); + } +} + + +/* ------------------------------------------------------------ */ + +void Client_Ignore_Button() +{} + +/* ------------------------------------------------------------ */ + + /* Send the menu item chosen to the client. */ + +/*ARGSUSED*/ +void Client_Send_String(uwinp, string) + Userwin *uwinp; + char *string; +{} + +/* ------------------------------------------------------------ */ + + /* Send the mouse movement event to the client. */ + +/*ARGSUSED*/ +void Client_Send_Mouse(uwinp, butstate, pos) + Userwin *uwinp; + Button_State butstate; + TWPoint pos; +{} + +/* ------------------------------------------------------------ */ + + /* Notify client of mouse motion events inside its window. */ + +/*ARGSUSED*/ +void Client_Enter(uwinp, butstate, pt) + Userwin *uwinp; + Button_State butstate; + TWPoint pt; +{} + +/* ------------------------------------------------------------ */ + + /* Notify the X client to set focus to itself. */ + +/*ARGSUSED*/ +void Client_Take_Focus(uwinp) + Userwin *uwinp; +{ + +} + +/* ------------------------------------------------------------ */ + +void Client_Set_State( uwinp ) + Userwin *uwinp; +{ + (void)Property_Set_Wm_State(uwinp, Userwin_Wm_State(uwinp)); +} + +/* ------------------------------------------------------------ */ + +void Client_Configure_Denied( uwinp ) + Userwin *uwinp; +{} + +/* ------------------------------------------------------------ */ + +void Client_Window_Moved( uwinp ) + Userwin *uwinp; +{} + +/* ------------------------------------------------------------ */ + +void Client_Delete_Window( uwinp ) + Userwin *uwinp; +{} + +/* ------------------------------------------------------------ */ + +void Client_Icon_Notify( uwinp ) + Userwin *uwinp; +{} + + diff --git a/client.h b/client.h new file mode 100644 index 0000000..26e58ed --- /dev/null +++ b/client.h @@ -0,0 +1,87 @@ +/* +static char sccs_id[] = "@(#)client.h 5.5 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +extern void Client_Enter(); + /* uwinp, butstate, pos */ + +extern void Client_Send_Mouse(); + /* uwinp, butstate, pos */ + +extern void Client_Send_Button(); + /* uwinp, kind, button, pos */ + +extern void Client_Send_Key(); + /* uwinp, ch */ + +extern void Client_Ignore_Key(); +extern void Client_Ignore_Button(); + +extern void Client_Send_String(); + /* uwinp, str */ + +/* ------------------------------------------------------------ */ + +extern void Client_Menu_Button_Number(); + /* num */ + +/* ------------------------------------------------------------ */ + +extern void Client_Kill(); + /* uwinp */ + +extern void Client_Redraw(); + /* uwinp */ + +extern void Client_Window_Create(); + /* str */ + +extern void Client_Startup(); + /* str */ + +extern void Client_Take_Focus(); + /* uwinp */ + +extern void Client_Bang(); + /* uwinp */ + +extern void Client_Set_State(); + /* uwinp */ + +extern void Client_Configure_Denied(); + /* uwinp */ + +extern void Client_Window_Moved(); + /* uwinp */ + +extern void Client_Delete_Window(); + /* uwinp */ + +extern void Client_Icon_Notify(); + /* uwinp */ + diff --git a/closed.c b/closed.c new file mode 100644 index 0000000..aecd9b2 --- /dev/null +++ b/closed.c @@ -0,0 +1,83 @@ +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "uwinP.h" + +#include "tilemenu.h" + +static TileMenu manager_menu; +static TileMenuItem closed_menu_entry; +static TileMenu closed_menu; +static int num_closed; +static VoidFunc callproc; + +/* ------------------------------------------------------------ */ + +TileMenu Closed_Init( menu, proc ) + TileMenu menu; + VoidFunc proc; +{ + manager_menu = menu; + closed_menu = TileMenu_Create(); + TileMenu_Box( closed_menu ); + closed_menu_entry = TileMenu_Append_Submenu( + manager_menu, "Closed Windows", closed_menu ); + num_closed = 0; + TileMenu_Inactivate_Entry( manager_menu, closed_menu_entry ); + callproc = proc; + return closed_menu; +} + +/* ------------------------------------------------------------ */ + +void Closed_Retitle( uwinp ) + Userwin *uwinp; +{ + TileMenu_Replace_Data_By_String( + closed_menu, uwinp, uwinp->title ); +} + +/* ------------------------------------------------------------ */ + +void Closed_Add( uwinp ) + Userwin *uwinp; +{ + TileMenu_Append_Call( closed_menu, + uwinp->title, callproc, uwinp ); + if ( (num_closed++) == 0 ) + TileMenu_Activate_Entry( manager_menu, closed_menu_entry ); +} + +/* ------------------------------------------------------------ */ + +void Closed_Remove( uwinp ) + Userwin *uwinp; +{ + if ( TileMenu_Has_Data( closed_menu, uwinp ) ) + { + TileMenu_Delete_Data( closed_menu, uwinp ); + if ( (--num_closed) == 0 ) + TileMenu_Inactivate_Entry( manager_menu, closed_menu_entry ); + } +} diff --git a/closed.h b/closed.h new file mode 100644 index 0000000..1a71bba --- /dev/null +++ b/closed.h @@ -0,0 +1,49 @@ +/* +static char sccs_id[] = "@(#)closed.h 5.5 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +#ifndef BASETYPE +#include "basetype.h" +#endif + +#ifndef TILEMENU +#include "tilemenu.h" +#endif + +extern TileMenu Closed_Init(); + /* tilemenu, proc */ + +extern void Closed_Retitle(); + /* uwinp */ + +extern void Closed_Add(); + /* uwinp */ + +extern void Closed_Remove(); + /* uwinp */ + + diff --git a/commit.h b/commit.h new file mode 100644 index 0000000..c33a322 --- /dev/null +++ b/commit.h @@ -0,0 +1,30 @@ +/* +static char sccs_id[] = "@(#)commit.h 5.2 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +extern void Commit_Operation(); diff --git a/commit_op.c b/commit_op.c new file mode 100644 index 0000000..d020563 --- /dev/null +++ b/commit_op.c @@ -0,0 +1,161 @@ +#ifndef lint +static char sccs_id[] = "@(#)commit_op.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#include "basetype.h" +#include "twinD.h" +#include "state.h" +#include "tile.h" +#include "win.h" + +void +Commit_Operation(winp) + Tilwin *winp; +{ + Tilwin *mod_winp; + Basetype shrink_coord; + Side side; + TWRectangle rect, + current_rect, + new_rect; + WinpHandle handle; + + /* Check for no-op + */ + current_rect = Tilwin_Get_Rectangle(winp); + new_rect = Tilwin_Get_Modify_Rectangle(winp); + if (Get_LeftX(current_rect) == Get_LeftX(new_rect) && + Get_RightX(current_rect) == Get_RightX(new_rect) && + Get_TopY(current_rect) == Get_TopY(new_rect) && + Get_BottomY(current_rect)==Get_BottomY(new_rect) && + Tilwin_Is_Open(winp) == TRUE){ + /* DON'T need to mark this window as just modified + * for the interface code + */ + return; + } + + /* Close Windows needing Closing... + */ + handle = State_Gen_Potentially_Closed(); + + while ( (mod_winp = State_Coerce(handle)) != WINP_NULL ) + { + State_Auto_Close((Tilwin *) mod_winp); + Win_Close(mod_winp); + Tilwin_Was_Automatically_Closed(mod_winp) = TRUE; + State_Next_Window(&handle); + } + + /* "mark" Windows which were Modified... + */ + handle = State_Gen_Potentially_Modfd(); + + while ( (mod_winp = State_Coerce(handle)) != WINP_NULL ) + { + + State_Open((Tilwin *) mod_winp); + + if (Tilwin_Get_Modify_Side(mod_winp) == Left) + { + shrink_coord = Get_LeftX( Tilwin_Get_Modify_Rectangle(mod_winp) ); + } + else if (Tilwin_Get_Modify_Side(mod_winp) == Right) + { + shrink_coord = Get_RightX( Tilwin_Get_Modify_Rectangle(mod_winp) ); + } + else if (Tilwin_Get_Modify_Side(mod_winp) == Top) + { + shrink_coord = Get_TopY( Tilwin_Get_Modify_Rectangle(mod_winp) ); + } + else /* (Tilwin_Get_Modify_Side(mod_winp) == Bottom) */ + { + shrink_coord = Get_BottomY( Tilwin_Get_Modify_Rectangle(mod_winp) ); + } + + Win_Shrink(mod_winp, Tilwin_Get_Modify_Side(mod_winp), + shrink_coord); + + State_Next_Window(&handle); + + } + + side = Tilwin_Get_Modify_Side(winp); + new_rect = Tilwin_Get_Modify_Rectangle(winp); + rect = Tilwin_Get_Rectangle(winp); + + /* if the window is currently opened and the side is NoSide, then we are + * doing a reopen so first we should close the window + */ + if (side == NoSide && Tilwin_Is_Open(winp) == TRUE) + Win_Close(winp); + + State_Open((Tilwin *) winp); + + /* if side == NoSide we are doing a (re)open */ + if (side == NoSide) + Win_Open(winp, new_rect); + /* else we are doing a resize */ + else{ + /* shrink all sides which need to be shrunk */ + if (side == Left || side == Top_Left || side == Bottom_Left){ + if (Get_LeftX(rect) < Get_LeftX(new_rect)) + Win_Shrink(winp, Left, Get_LeftX(new_rect)); + } + else if (side == Right || side == Top_Right || side == Bottom_Right){ + if (Get_RightX(rect) > Get_RightX(new_rect)) + Win_Shrink(winp, Right, Get_RightX(new_rect)); + } + if (side == Top || side == Top_Right || side == Top_Left){ + if (Get_TopY(rect) < Get_TopY(new_rect)) + Win_Shrink(winp, Top, Get_TopY(new_rect)); + } + else if (side == Bottom || side == Bottom_Right || side == Bottom_Left){ + if (Get_BottomY(rect) > Get_BottomY(new_rect)) + Win_Shrink(winp, Bottom, Get_BottomY(new_rect)); + } + + /* enlarge all sides which need to be enlarged */ + if (side == Left || side == Top_Left || side == Bottom_Left){ + if (Get_LeftX(rect) > Get_LeftX(new_rect)) + Win_Enlarge(winp, Left, Get_LeftX(new_rect)); + } + else if (side == Right || side == Top_Right || side == Bottom_Right){ + if (Get_RightX(rect) < Get_RightX(new_rect)) + Win_Enlarge(winp, Right, Get_RightX(new_rect)); + } + + if (side == Top || side == Top_Right || side == Top_Left){ + if (Get_TopY(rect) > Get_TopY(new_rect)) + Win_Enlarge(winp, Top, Get_TopY(new_rect)); + } + else if (side == Bottom || side == Bottom_Right || side == Bottom_Left){ + if (Get_BottomY(rect) < Get_BottomY(new_rect)) + Win_Enlarge(winp, Bottom, Get_BottomY(new_rect)); + } + } + +} diff --git a/contrib/rtl.desktop b/contrib/rtl.desktop new file mode 100644 index 0000000..2f38a25 --- /dev/null +++ b/contrib/rtl.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=RTL +Comment=Siemens RTL - a late 80's tiled window manager +Exec=rtl +TryExec=/usr/bin/rtl +Type=XSession diff --git a/control.c b/control.c new file mode 100644 index 0000000..4694273 --- /dev/null +++ b/control.c @@ -0,0 +1,270 @@ +#ifndef lint +static char sccs_id[] = "%W% %H%"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" + +#include +#include +#include + +#include "uwinXD.h" +#include "assoc.h" +#include "xio.h" +#include "tilecrsr.h" +#include "evsaveX.h" + +/* ------------------------------------------------------------ */ + +bool send_mouse_events = FALSE; +bool pointer_grabbed = FALSE; +bool keyboard_grabbed = FALSE; + +static Cursor previous_cursor; +static Cursor current_cursor; + +/* ---------------------------------------------------------------------- */ + +void Control_Set_Cursor( tilecursor ) + TileCursor tilecursor; +{ + previous_cursor = current_cursor; + current_cursor = tilecursor; + + if ( pointer_grabbed && + (previous_cursor != tilecursor) && + (tilecursor != None) ) + + XChangeActivePointerGrab(dpy, + PointerMotionMask | + ButtonPressMask | ButtonReleaseMask, + (Cursor) tilecursor, CurrentTime); +} + +/* ---------------------------------------------------------------------- */ + +void Control_Restore_Cursor() +{ + current_cursor = previous_cursor; + if ( pointer_grabbed && (previous_cursor != None) ) + + XChangeActivePointerGrab(dpy, + PointerMotionMask | + ButtonPressMask | ButtonReleaseMask, + (Cursor) previous_cursor, CurrentTime); +} + +/* ------------------------------------------------------------ */ + +bool Control_Grab_User( send_mouse, tilecursor ) + bool send_mouse; + TileCursor tilecursor; +{ + unsigned int ev_mask; + + send_mouse_events = send_mouse; + + if ( send_mouse ) + ev_mask = PointerMotionMask | ButtonPressMask | ButtonReleaseMask; + else + ev_mask = ButtonPressMask | ButtonReleaseMask; + + if (XGrabPointer(dpy, root, False, ev_mask, + GrabModeAsync, GrabModeAsync, + (Window) None, (Cursor) tilecursor, + CurrentTime) == GrabSuccess) + { + pointer_grabbed = TRUE; + previous_cursor = current_cursor; + current_cursor = tilecursor; + XFlush(dpy); + return TRUE; + } + else + pointer_grabbed = FALSE; + return pointer_grabbed; +} + +/* ------------------------------------------------------------ */ + +void Control_Ungrab_User() +{ + pointer_grabbed = FALSE; + send_mouse_events = FALSE; + + /* Play back events stored while grabbed */ + RestoreEvents(dpy, &stackp); + XUngrabPointer(dpy, CurrentTime); + XFlush(dpy); +} + +/* ------------------------------------------------------------ */ + +void Control_Grab_Server() +{ + XGrabServer(dpy); + XFlush(dpy); +} + +/* ------------------------------------------------------------ */ + +void Control_Ungrab_Server() +{ + XUngrabServer(dpy); + XFlush(dpy); +} + +/* ------------------------------------------------------------ */ + +void Control_Set_Focus( uwinp ) + Userwin *uwinp; +{ + if (uwinp == (Userwin *) NULL) + { + XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime); + } + else + { /* XXXX Kludge here! XXXX */ + XWindowAttributes xwa; + + + XGetWindowAttributes(dpy, Userwin_XClient(uwinp), &xwa); + + if (xwa.map_state == IsUnmapped) + { + XSetInputFocus(dpy, Userwin_XIcon(uwinp), + RevertToPointerRoot, CurrentTime); + } + else + { + XSetInputFocus(dpy, Userwin_XClient(uwinp), + RevertToPointerRoot, CurrentTime); + } + } +} + +/* ------------------------------------------------------------ */ + +void Control_Focus_Out( uwinp ) + Userwin *uwinp; +{} + +/* ------------------------------------------------------------ */ + +void Control_Unset_Focus() +{ + XSetInputFocus(dpy, None, RevertToPointerRoot, CurrentTime); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static Window last_ungrabbed_window = None; + +/* ------------------------------------------------------------ */ + +/* Post a Passive Grab (input redirection) on input to the + * client's window. We want to know if anything is typed/moused + * in that window. + */ + +void Control_Grab_Input(w) + Window w; +{ + XGrabButton(dpy, (unsigned int) AnyButton, (unsigned int) AnyModifier, + w, + False, + (unsigned int) (ButtonPressMask | ButtonReleaseMask), + GrabModeSync, GrabModeAsync, + None, + None); + + XGrabKey(dpy, (unsigned int) AnyKey, (unsigned int) AnyModifier, + w, + False, + GrabModeAsync, GrabModeSync); +} + +/* ------------------------------------------------------------ */ + +void Control_Restore_Grab() +{ + if ( last_ungrabbed_window != None ) + { + Control_Grab_Input(last_ungrabbed_window); + last_ungrabbed_window = None; + } +} + +/* ------------------------------------------------------------ */ + /* Release passive input grabs on keyboard and mouse buttons */ + +void Control_Release_Grab(uwinp) + Userwin *uwinp; +{ + + if (last_ungrabbed_window != None) + { + Control_Restore_Grab(); + } + + XUngrabKey(dpy, (unsigned int) AnyKey, (unsigned int) AnyModifier, + Userwin_XParentWin(uwinp)); + + XUngrabButton(dpy, (unsigned int) AnyButton, (unsigned int) AnyModifier, + Userwin_XParentWin(uwinp)); + + last_ungrabbed_window = Userwin_XParentWin(uwinp); +} + +void Control_Destroy(uwinp) + Userwin *uwinp; +{ + if (last_ungrabbed_window == Userwin_XParentWin(uwinp)) + last_ungrabbed_window = None; +} + + +bool Control_Pointer_To_Window(uwinp) + Userwin *uwinp; +{ + int grab_status; + + grab_status = XGrabPointer(dpy, root, True, None, + GrabModeAsync, GrabModeAsync, + Userwin_XClient(uwinp), None, CurrentTime); + if (grab_status == GrabSuccess) + XUngrabPointer(dpy, CurrentTime); + return (grab_status == GrabSuccess); +} + +void Control_Exit() +{ + XSync(dpy, 1); +} + + + diff --git a/control.h b/control.h new file mode 100644 index 0000000..fe9ae6e --- /dev/null +++ b/control.h @@ -0,0 +1,76 @@ +/* +static char sccs_id[] = "@(#)control.h 5.6 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#ifndef STD_DEFS +#include "std_defs.h" +#endif + +extern bool send_mouse_events; +extern bool pointer_grabbed; +extern bool keyboard_grabbed; + +extern bool Control_Grab_User(); +/* bool send_mouse; */ +/* TileCursor cursor; */ +extern void Control_Ungrab_User(); + +#define Control_Pointer_Grabbed() \ + ( pointer_grabbed ) +#define Control_Mousing() \ + ( send_mouse_events ) + +extern void Control_Grab_Server(); +extern void Control_Ungrab_Server(); + +extern void Control_Set_Focus(); +/* Userwin *uwinp; */ + +extern void Control_Focus_Out(); +/* Userwin *uwinp; */ + +extern void Control_Unset_Focus(); + +extern void Control_Grab_Input(); + +extern void Control_Release_Grab(); +/* Userwin *uwinp; */ + +extern void Control_Restore_Grab(); + +extern void Control_Set_Cursor(); +/* TileCursor cursor; */ +extern void Control_Restore_Cursor(); + +extern void Control_Destroy(); +/* Userwin *uwinp */ + +extern bool Control_Pointer_To_Window(); +/* Userwin *uwinp */ + +extern void Control_Exit(); + + diff --git a/copyright.h b/copyright.h new file mode 100644 index 0000000..ad75abb --- /dev/null +++ b/copyright.h @@ -0,0 +1,31 @@ +/* +static char sccs_id[] = "@(#)copyright.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#ifndef lint +static char copyright[] = ""; +#endif + diff --git a/cscope.out b/cscope.out new file mode 100644 index 0000000..efe99d0 --- /dev/null +++ b/cscope.out @@ -0,0 +1,257695 @@ +cscope 15 $HOME/search/src/rtl 0001421695 + @arrow_ic32.h + +27  + #¬row_32_width + 32 + + ) + +28  + #¬row_32_height + 32 + + ) + +29  + g¬row_32_b™s +[] = { + + @arrow_icon.h + +27  + #¬row_width + 10 + + ) + +28  + #¬row_height + 9 + + ) + +29  + g¬row_b™s +[] = { + + @assoc.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "%W% %H%"; + +27  + ~"cÝyright.h +" + +34  + ~"uwšXD.h +" + +36  + ~ + +37  + ~ + +38  + ~ + +39  + ~"xio.h +" + +42  + #ASSOC_TABLE_SIZE + 64 + + ) + +44  +XAssocTabË + * + gxa_bË +; + +50 +boÞ + + +51 + $Assoc_In™TabË +() + +53 +XAssocTabË + * + `XC»©eAssocTabË +(); + +56  ( (( +xa_bË + = + `XC»©eAssocTabË +( +ASSOC_TABLE_SIZE +)) + +57 =ð( +XAssocTabË + *è +NULL + ) ? + +58 +FALSE + : +TRUE + ); + +59 + } +} + +65 + $Assoc_Put +( +twp +, +xid +) + +66 * +twp +; + +67 +XID + +xid +; + +70 + `XMakeAssoc +( +dpy +, +xa_bË +, +xid +, +twp +); + +71 + } +} + +77 + $Assoc_G‘ +( +xid +) + +78 +XID + +xid +; + +80 * + `XLookUpAssoc +(); + +83  ( + `XLookUpAssoc +( +dpy +, +xa_bË +, +xid +)); + +84 + } +} + +90 + $Assoc_Remove +( +xid +) + +91 +XID + +xid +; + +93 + `XD–‘eAssoc +( +dpy +, +xa_bË +, +xid +); + +94 + } +} + +100 + $Assoc_RemoveDecÜ©iÚs +( +uwšp +) + +101 +U£rwš + * +uwšp +; + +104 + `XD–‘eAssoc +( +dpy +, +xa_bË +, + `U£rwš_XP¬’tWš +( +uwšp +)); + +105 + `XD–‘eAssoc +( +dpy +, +xa_bË +, + `U£rwš_XTÝBÜd” +( +uwšp +)); + +106 + `XD–‘eAssoc +( +dpy +, +xa_bË +, + `U£rwš_XLeáBÜd” +( +uwšp +)); + +107 + `XD–‘eAssoc +( +dpy +, +xa_bË +, + `U£rwš_XRightBÜd” +( +uwšp +)); + +108 + `XD–‘eAssoc +( +dpy +, +xa_bË +, + `U£rwš_XBÙtomBÜd” +( +uwšp +)); + +109 + `XD–‘eAssoc +( +dpy +, +xa_bË +, + `U£rwš_XTÝLeáCÜÃr +( +uwšp +)); + +110 + `XD–‘eAssoc +( +dpy +, +xa_bË +, + `U£rwš_XTÝRightCÜÃr +( +uwšp +)); + +111 + `XD–‘eAssoc +( +dpy +, +xa_bË +, + `U£rwš_XBÙtomLeáCÜÃr +( +uwšp +)); + +112 + `XD–‘eAssoc +( +dpy +, +xa_bË +, + `U£rwš_XBÙtomRightCÜÃr +( +uwšp +)); + +113 + `XD–‘eAssoc +( +dpy +, +xa_bË +, + `U£rwš_XH—d” +( +uwšp +)); + +114 + `XD–‘eAssoc +( +dpy +, +xa_bË +, + `U£rwš_XZoomGadg‘ +( +uwšp +)); + +115 + `XD–‘eAssoc +( +dpy +, +xa_bË +, + `U£rwš_XMoveGadg‘ +( +uwšp +)); + +116 + `XD–‘eAssoc +( +dpy +, +xa_bË +, + `U£rwš_XCl›Á +( +uwšp +)); + +117 + } +} + +123 + $Assoc_AddDecÜ©iÚs +( +uwšp +) + +124 +U£rwš + * +uwšp +; + +127 + `XMakeAssoc +( +dpy +, +xa_bË +, + `U£rwš_XP¬’tWš +( +uwšp +), (*) uwinp); + +128 + `XMakeAssoc +( +dpy +, +xa_bË +, + `U£rwš_XTÝBÜd” +( +uwšp +), (*) uwinp); + +129 + `XMakeAssoc +( +dpy +, +xa_bË +, + `U£rwš_XLeáBÜd” +( +uwšp +), (*) uwinp); + +130 + `XMakeAssoc +( +dpy +, +xa_bË +, + `U£rwš_XRightBÜd” +( +uwšp +), (*) uwinp); + +131 + `XMakeAssoc +( +dpy +, +xa_bË +, + `U£rwš_XBÙtomBÜd” +( +uwšp +), (*) uwinp); + +132 + `XMakeAssoc +( +dpy +, +xa_bË +, + `U£rwš_XTÝLeáCÜÃr +( +uwšp +), (*) uwinp); + +133 + `XMakeAssoc +( +dpy +, +xa_bË +, + `U£rwš_XTÝRightCÜÃr +( +uwšp +), (*) uwinp); + +134 + `XMakeAssoc +( +dpy +, +xa_bË +, + `U£rwš_XBÙtomLeáCÜÃr +( +uwšp +), (*) uwinp); + +135 + `XMakeAssoc +( +dpy +, +xa_bË +, + `U£rwš_XBÙtomRightCÜÃr +( +uwšp +), (*) uwinp); + +136 + `XMakeAssoc +( +dpy +, +xa_bË +, + `U£rwš_XH—d” +( +uwšp +), (*) uwinp); + +137 + `XMakeAssoc +( +dpy +, +xa_bË +, + `U£rwš_XZoomGadg‘ +( +uwšp +), (*) uwinp); + +138 + `XMakeAssoc +( +dpy +, +xa_bË +, + `U£rwš_XMoveGadg‘ +( +uwšp +), (*) uwinp); + +139 + `XMakeAssoc +( +dpy +, +xa_bË +, + `U£rwš_XCl›Á +( +uwšp +), (*) uwinp); + +140 + `XMakeAssoc +( +dpy +, +xa_bË +, + `U£rwš_XIcÚ +( +uwšp +), (*) uwinp); + +141 + } +} + +143  +XAssocTabË + * + gxid_bË +; + +146 + $Assoc_Xid_In™TabË +() + +148 +XAssocTabË + * + `XC»©eAssocTabË +(); + +150 +xid_bË + = + `XC»©eAssocTabË +( +ASSOC_TABLE_SIZE +); + +151 + } +} + +153 +XID + + +154 + $Assoc_Xid_G‘ +( +xid +) + +155 +XID + +xid +; + +157 (( +XID +è + `XLookUpAssoc +( +dpy +, +xid_bË +, +xid +)); + +158 + } +} + +161 + $Assoc_Xid_Remove +( +xid +) + +162 +XID + +xid +; + +164 + `XD–‘eAssoc +( +dpy +, +xid_bË +, +xid +); + +165 + } +} + +168 + $Assoc_Xid_Put +( +±r +, +xid +) + +169 +XID + +±r +; + +170 +XID + +xid +; + +172 + `XMakeAssoc +( +dpy +, +xid_bË +, +xid +, ( +XPoš‹r +) +±r +); + +173 + } +} + + @assoc.h + +29 +boÞ + +Assoc_In™TabË +(); + +31  +Assoc_Put +(); + +32 * +Assoc_G‘ +(); + +34  +Assoc_RemoveDecÜ©iÚs +(); + +35  +Assoc_AddDecÜ©iÚs +(); + +37  +Assoc_Xid_In™TabË +(); + +38 +XID + +Assoc_Xid_G‘ +(); + +39  +Assoc_Xid_Remove +(); + +40  +Assoc_Xid_Put +(); + + @basetype.h + +34 #iâdeà +BASETYPE + + +36  + #BASETYPE + + + ) + +38  + ~"¡d_defs.h +" + +41  + tBa£ty³ +; + +45 +Ba£ty³ + + mwidth +, + +46 + mheight +; + +47 } + tSize +; + +52 +Ba£ty³ + + mËá_x +, + +53 + mtÝ_y +, + +54 + mright_x +, + +55 + mbÙtom_y +; + +56 } + tTWReùªgË +; + +61 + mTÝ +, + mBÙtom +, + mLeá +, + mRight +, + +62 + mTÝ_Leá +, + mTÝ_Right +, + mBÙtom_Leá +, + mBÙtom_Right +, + +63 + mNoSide + + +64 } + tSide +; + +69 +Ba£ty³ + + mx +, + my +; + +70 } + tTWPošt +; + +75  + #G‘_Width +( +_size +è(_size). +width + + + ) + +76  + #G‘_Height +( +_size +è(_size). +height + + + ) + +78  + #G‘_LeáX +( +_»ù +è(_»ù). +Ëá_x + + + ) + +79  + #G‘_RightX +( +_»ù +è(_»ù). +right_x + + + ) + +80  + #G‘_TÝY +( +_»ù +è(_»ù). +tÝ_y + + + ) + +81  + #G‘_BÙtomY +( +_»ù +è(_»ù). +bÙtom_y + + + ) + +83  + #G‘_PtX +( +_pošt +è(_pošt). +x + + + ) + +84  + #G‘_PtY +( +_pošt +è(_pošt). +y + + + ) + +89  + #S‘_Mš_Size +( +siz +, +siz1 +, +siz2 +) \ + +91 ià(( +siz1 +). +width + < ( +siz2 +).width) \ + +92 ( +siz +). +width + = ( +siz1 +).width; \ + +94 ( +siz +). +width + = ( +siz2 +).width; \ + +95 ià(( +siz1 +). +height + < ( +siz2 +).height) \ + +96 ( +siz +). +height + = ( +siz1 +).height; \ + +98 ( +siz +). +height + = ( +siz2 +).height; \ + +99 } + + ) + +101  + #S‘_Max_Size +( +siz +, +siz1 +, +siz2 +) \ + +103 ià(( +siz1 +). +width + > ( +siz2 +).width) \ + +104 ( +siz +). +width + = ( +siz1 +).width; \ + +106 ( +siz +). +width + = ( +siz2 +).width; \ + +107 ià(( +siz1 +). +height + > ( +siz2 +).height) \ + +108 ( +siz +). +height + = ( +siz1 +).height; \ + +110 ( +siz +). +height + = ( +siz2 +).height; \ + +111 } + + ) + +113  + #Same_Size +( +siz1 +, +siz2 +) \ + +114 ÐÐ( +siz1 +). +width + =ð( +siz2 +).width ) && \ + +115 Ð( +siz1 +). +height + =ð( +siz2 +).heighˆè) + + ) + +117  + #Same_Reù +( +»ù1 +, +»ù2 +) \ + +118 ÐÐ( +»ù1 +). +Ëá_x + =ð( +»ù2 +).left_x ) && \ + +119 Ð( +»ù1 +). +right_x + =ð( +»ù2 +).right_x ) && \ + +120 Ð( +»ù1 +). +tÝ_y + =ð( +»ù2 +).top_y ) && \ + +121 Ð( +»ù1 +). +bÙtom_y + =ð( +»ù2 +).bÙtom_y ) ) + + ) + +123  + #COMPUTE_CENTER +( +_»ù +, +_loÿtiÚ +) \ + +125 + `G‘_PtX +(( +_loÿtiÚ +)èð1 + ( + `G‘_LeáX +(( +_»ù +)è+ + `G‘_RightX +((_rect))) / 2; \ + +126 + `G‘_PtY +(( +_loÿtiÚ +)èð1 + ( + `G‘_TÝY +(( +_»ù +)è+ + `G‘_BÙtomY +((_rect))) / 2; \ + +127 } + + ) + +129  + #COMPUTE_SIZE +( +_»ù +, +_size +) \ + +131 + `G‘_Width +( +_size +èð + `G‘_RightX +( +_»ù +è- + `G‘_LeáX +(_rect) + 1; \ + +132 + `G‘_Height +( +_size +èð + `G‘_BÙtomY +( +_»ù +è- + `G‘_TÝY +(_rect) + 1; \ + +133 } + + ) + +135  + #MAKE_RECTANGLE +( +_loÿtiÚ +, +_size +, +_»ù +) \ + +137 + `G‘_LeáX +( +_»ù +èð + `G‘_PtX +( +_loÿtiÚ +è- ( + `G‘_Width +( +_size +) / 2) ; \ + +138 + `G‘_RightX +( +_»ù +èð + `G‘_PtX +( +_loÿtiÚ +è+ (( + `G‘_Width +( +_size +) / 2) - 1); \ + +139 + `G‘_TÝY +( +_»ù +èð + `G‘_PtY +( +_loÿtiÚ +è- ( + `G‘_Height +( +_size +) / 2) ; \ + +140 + `G‘_BÙtomY +( +_»ù +èð + `G‘_PtY +( +_loÿtiÚ +è+ (( + `G‘_Height +( +_size +) / 2) - 1); \ + +141 ià( + `Is_Odd_Numb” +( + `G‘_LeáX +( +_»ù +))) \ + +142 ià( + `Is_Odd_Numb” +( + `G‘_PtX +( +_loÿtiÚ +))) \ + +143 { + `G‘_LeáX +( +_»ù +)-- ; + `G‘_RightX +(_rect)-- ;} \ + +145 { + `G‘_LeáX +( +_»ù +)++ ; + `G‘_RightX +(_rect)++ ;} \ + +146 ià( + `Is_Odd_Numb” +( + `G‘_TÝY +( +_»ù +))) \ + +147 ià( + `Is_Odd_Numb” +( + `G‘_PtY +( +_loÿtiÚ +))) \ + +148 { + `G‘_TÝY +( +_»ù +)-- ; + `G‘_BÙtomY +(_rect)-- ;} \ + +150 { + `G‘_TÝY +( +_»ù +)++ ; + `G‘_BÙtomY +(_rect)++ ;} \ + +151 } + + ) + + @bodyreg.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "%W% %H%"; + +27  + ~"cÝyright.h +" + +30  + ~"uwšD.h +" + +31  + ~"tžeü¤.h +" + +36 + $Body»g_C»©e_If_NÙ_P»s +( +uwšp +, +»giÚ_id +) + +37 +U£rwš + * +uwšp +; + +38  +»giÚ_id +; + +40 + } +} + +44 + $Body»g_De¡roy_RegiÚs +( +uwšp +) + +45 +U£rwš + * +uwšp +; + +47 + } +} + +52 + $Body»g_Def_Reù_FÜ_RegiÚ +( +uwšp +, +»giÚ_id +, +Ëá +, +tÝ +, +width +, +height +) + +53 +U£rwš + * +uwšp +; + +54  +»giÚ_id +; + +55  +Ëá +, +tÝ +, +width +, +height +; + +57 + } +} + +62 + $Body»g_Lšk_RegiÚ +( +uwšp +, +»giÚ_id1 +, +»giÚ_id2 +) + +63 +U£rwš + * +uwšp +; + +64  +»giÚ_id1 +, +»giÚ_id2 +; + +66 + } +} + +71 + $Body»g_Name_RegiÚ +( +uwšp +, +»giÚ_id +, +Çme +) + +72 +U£rwš + * +uwšp +; + +73  +»giÚ_id +; + +74 * +Çme +; + +76 + } +} + +80 +BodyRegiÚ + + +81 + $Body»g_Loÿ‹ +( +uwšp +, +± +) + +82 +U£rwš + * +uwšp +; + +83 +TWPošt + +± +; + +85  +NULL +; + +86 + } +} + +90 +TžeCursÜ + + +91 + $Body»g_G‘_CursÜ +( +uw +, +body»giÚ +) + +92 +U£rwš + * +uw +; + +93 +BodyRegiÚ + +body»giÚ +; + +95  +¡ªd¬d_tžecursÜ +; + +96 + } +} + +101 + $Body»g_S‘_CursÜ +( +uw +, +fÚt_šdex +, +c +) + +102 +U£rwš + * +uw +; + +103  +fÚt_šdex +, +c +; + +105 + } +} + +109 +TžeM’u + + +110 + $Body»g_G‘_M’u +( +uwšp +, +body»giÚ +) + +111 +U£rwš + * +uwšp +; + +112 +BodyRegiÚ + +body»giÚ +; + +114  (( +TžeM’u +è +NULL +); + +115 + } +} + +120 + $Body»g_M’u_I‹m +( +uwšp +, +¡ršg +) + +121 +U£rwš + * +uwšp +; + +122 * +¡ršg +; + +124 + } +} + + @bodyreg.h + +29 #iâdeà +BODYREGION + + +30  + ~"body»g.h +" + +33 #iâdeà +BASETYPE + + +34  + ~"ba£ty³.h +" + +37 #iâdeà +TILEMENU + + +38  + ~"tžem’u.h +" + +41 #iâdeà +TILECURSOR + + +42  + ~"tžeü¤.h +" + +45 +BodyRegiÚ + +Body»g_Loÿ‹ +(); + +49 +TžeCursÜ + +Body»g_G‘_CursÜ +(); + +53  +Body»g_S‘_CursÜ +(); + +58 +TžeM’u + +Body»g_G‘_M’u +(); + +62  +Body»g_Name_RegiÚ +(); + +69  +Body»g_C»©e_If_NÙ_P»s +(); + +75  +Body»g_Def_Reù_FÜ_RegiÚ +(); + +82  +Body»g_De¡roy_RegiÚs +(); + +87  +Body»g_Lšk_RegiÚ +(); + +93  +Body»g_M’u_I‹m +(); + + @bodyregP.h + +29  + #BODYREGION + + + ) + +31 #iâdeà +BASETYPE + + +32  + ~"ba£ty³.h +" + +35 #iâdeà +LISTS + + +36  + ~"li¡sP.h +" + +39 #iâdeà +TILEMENU + + +40  + ~"tžem’uP.h +" + +43 #iâdeà +TILECURSOR + + +44  + ~"tžeü¤P.h +" + +48 +TžeM’u + + mm’u +; + +49 +TžeCursÜ + + mcursÜ +; + +50 } + tM’uAndCurs +; + +53  + sbody»giÚ + { + +54  + m»giÚid +; + +55  + mm’ucursÜ_»giÚid +; + +57  +body»giÚ + * + mm’ucursÜ_body»giÚ +; + +58 +TWReùªgË + * + m»ù +; + +59 +TžeM’u + + mm’u +; + +60 +TžeCursÜ + + mcursÜ +; + +61 * + m»giÚÇme +; + +62 } * + tBodyRegiÚ +; + + @buttons.h + +29  + #BUTTONS_EXTERN + + + ) + +31 #iâdeà +BASETYPE + + +32  + ~"ba£ty³.h +" + +35 #iâdeà +BUTTONS + + +36  + ~"bu‰ÚsP.h +" + +39 +boÞ + +Bu‰Ús_M©ch +(); + +43 +boÞ + +Bu‰Ús_Equ® +(); + + @buttonsD.h + +31 #iâdeà +FIELD + + +32  + ~"f›ldP.h +" + +35 #iâdeà +BUTTONS + + +36  + ~"bu‰ÚsP.h +" + +39  + #Bu‰Ús_Index +( +but +) \ + +40 + `lowmasked +Ð +but +, 2 ) + + ) + +42  + #Bu‰Ús_Numb” +( +but +) \ + +43 Ð1 + + `Bu‰Ús_Index +( +but +è) + + ) + +45  + #Bu‰Ús_Has_CŒl_Down +( +but +) \ + +46 Ð( +but + & +CTRL_DOWN +è!ð0 ) + + ) + +48  + #Bu‰Ús_Has_Shiá_Down +( +but +) \ + +49 Ð( +but + & +SHIFT_DOWN +è!ð0 ) + + ) + +51  + #Bu‰Ús_M©ch +( +but +, +m©chbut +) \ + +52 Ð + `is_£t +Ð +m©chbut +, + `Bu‰Ús_Index +( +but +) ) && \ + +53 + `is_£t +Ð +m©chbut +, 8 + + `exŒaù +Ð +but +, 8, 2 ) ) ) + + ) + +55  + #Bu‰Ús_Equ® +( +but1 +, +but2 +) \ + +56 Ð( +but1 +è=ð( +but2 +è) + + ) + +58  + #Bu‰Ús_Down +( +but¡©e +, +but +) \ + +59 ( +but¡©e +è|ð + `Úemask +Ð + `Bu‰Ús_Index +( +but +è) + + ) + +61  + #Bu‰Ús_Up +( +but¡©e +, +but +) \ + +62 ( +but¡©e +è&ð~ + `Úemask +Ð + `Bu‰Ús_Index +( +but +è) + + ) + +64  + #Bu‰Ús_Is_Down +( +but¡©e +, +but +) \ + +65 Ð( +but¡©e +è& ( +but +è) + + ) + +67  + #Bu‰Ús_Is_Up +( +but¡©e +, +but +) \ + +68 Ð~ + `Bu‰Ús_Is_Down +( +but¡©e +, +but +è) + + ) + +70  + #Bu‰Ús_Any_Down +( +but¡©e +) \ + +71 Ð( +but¡©e +è!ð0 ) + + ) + +73  + #Bu‰Ús_Cˬ +( +but¡©e +) \ + +74 ( +but¡©e +èð0 + + ) + + @buttonsP.h + +29 #iâdeà +BUTTONS + + +30  + #BUTTONS + + + ) + +33 #iâdeà +FIELD + + +34  + ~"f›ldP.h +" + +37 + eButKšd + { + mup +, + mdown +, + mþick + }; + +41  + tBu‰Ús +; + +46  + #LEFT_BUTTON_NUMBER + 1 + + ) + +47  + #MIDDLE_BUTTON_NUMBER + 2 + + ) + +48  + #RIGHT_BUTTON_NUMBER + 3 + + ) + +50  + #CTRL_DOWN + 0x200 + + ) + +51  + #SHIFT_DOWN + 0x100 + + ) + +55  + tM©ch_Bu‰Ús +; + +59  + #LEFT_BUTTON + 0x1 + + ) + +60  + #MIDDLE_BUTTON + 0x2 + + ) + +61  + #RIGHT_BUTTON + 0x4 + + ) + +63  + #NOT_LEFT_BUTTON + 0x6 + + ) + +64  + #NOT_MIDDLE_BUTTON + 0x5 + + ) + +65  + #NOT_RIGHT_BUTTON + 0x3 + + ) + +67  + #ANY_BUTTON + 0x7 + + ) + +69  + #NOT_BUTTONS +( +but +èÐ7 - (butè) + + ) + +73  + #NONE_SHIFT_CTRL + 0x100 + + ) + +74  + #JUST_SHIFT + 0x200 + + ) + +75  + #NOT_CTRL + 0x300 + + ) + +76  + #JUST_CTRL + 0x400 + + ) + +77  + #NOT_SHIFT + 0x500 + + ) + +78  + #JUST_ONE_SHIFT_CTRL + 0x600 + + ) + +79  + #NOT_BOTH_SHIFT_CTRL + 0x700 + + ) + +81  + #BOTH_SHIFT_CTRL + 0x800 + + ) + +82  + #NOT_JUST_ONE_SHIFT_CTRL + 0x900 + + ) + +83  + #HAS_SHIFT + 0xa00 + + ) + +84  + #NOT_JUST_CTRL + 0xb00 + + ) + +85  + #HAS_CTRL + 0xc00 + + ) + +86  + #NOT_JUST_SHIFT + 0xd00 + + ) + +87  + #SOME_SHIFT_CTRL + 0xe00 + + ) + +89  + #DONT_CARE + 0xf00 + + ) + +93  + tBu‰Ú_S‹ +; + + @check.c + +24  + ~"cÝyright.h +" + +26 + $Check_S–eù +Ð +ev¡r +, +¡r + ) + +27 * +ev¡r +; + +28 * +¡r +; + +31 + } +} + +33 + $Check_S–eù_WAIT +Ð +¡r + ) + +34 * +¡r +; + +36 + `Check_S–eù +Ð"WAIT", +¡r + ); + +37 + } +} + +39 + $Check_S–eù_UP +Ð +¡r + ) + +40 * +¡r +; + +42 + `Check_S–eù +Ð"UP", +¡r + ); + +43 + } +} + +45 + $Check_S–eù_DOWN +Ð +¡r + ) + +46 * +¡r +; + +48 + `Check_S–eù +Ð"DOWN", +¡r + ); + +49 + } +} + +51 + $Check_S–eù_KEY +Ð +¡r + ) + +52 * +¡r +; + +54 + `Check_S–eù +Ð"KEY", +¡r + ); + +55 + } +} + +57 + $Check_S–eù_MOUSE +Ð +¡r + ) + +58 * +¡r +; + +60 + } +} + +62 + $Check_S–eù_mou£ +Ð +¡r + ) + +63 * +¡r +; + +65 + } +} + +67 + $Check_S–eù_bu‰Ú +Ð +¡r + ) + +68 * +¡r +; + +70 + `Check_S–eù +Ð"bu‰Ú", +¡r + ); + +71 + } +} + +73 + $Check_S–eù_Ëave +Ð +¡r + ) + +74 * +¡r +; + +76 + `Check_S–eù +Ð"Ëave", +¡r + ); + +77 + } +} + +79 + $Check_S–eù_»’‹r +Ð +¡r + ) + +80 * +¡r +; + +82 + `Check_S–eù +Ð"»’‹r", +¡r + ); + +83 + } +} + +85 + $Check_Ev’t +Ð +id + ) + +88 + } +} + + @check.h + +30 +boÞ + +Check_O³n +(); + +31 +boÞ + +Check_Resize +(); + + @check_grow.c + +2 #iâdeà +lšt + + +3  + gsccs_id +[] = "@(#)check_grow.c 5.4 9/1/88"; + +28  + ~"cÝyright.h +" + +30  + ~"ba£ty³.h +" + +31  + ~"twšD.h +" + +32  + ~"twš.h +" + +33  + ~"¡©e.h +" + +34  + ~"tže.h +" + +35  + ~"wš.h +" + +37 +boÞ + +Check_Cª_Modify +(); + +39 +boÞ + + +40 + $Check_Grow +( +wšp +, +»ù +, +side +, +±p +, +¡amp +, + +41 +b‘‹r +, +nþo£d +, +Ãx³nsive +, +Çfãùed +) + +42 +Tžwš + * +wšp +; + +43 +TWReùªgË + +»ù +; + +44 +Side + +side +; + +45 +TWPošt + * +±p +; + +46 +TimeSmp + +¡amp +; + +47 +boÞ + +b‘‹r +; + +48 * +nþo£d +; + +49 * +Ãx³nsive +; + +50 * +Çfãùed +; + +52 +Tžwš + * +Ãxt_wšp +; + +53 +boÞ + +»t_v® + = +TRUE +; + +54 +WšpHªdË + +hªdË +; + +55 +Ba£ty³ + +mo¡ +, + +56 +cu¼’t_mo¡ +; + +57  +now_þo£d + = 0; + +58  +now_ex³nsive + = 0; + +59  +now_afãùed + = 0; + +67 + `S‹_PÙ’tŸl_Cˬ +(); + +69 + `Tžes_In_A»a +( + `G‘_LeáX +( +»ù +), + `G‘_TÝY +(rect), + +70 + `G‘_RightX +( +»ù +), + `G‘_BÙtomY +(rect), + +71 +Wš_Add_Li¡ +); + +73 ià( +side + !ð +NoSide +) + +74 +cu¼’t_mo¡ + = (( +side + =ð +Leá + || sid=ð +Right +) ? + +75 + `G‘_PtX +(* +±p +è: + `G‘_PtY +(*ptp)); + +77 +hªdË + = + `S‹_G’_PÙ’tŸÎy_Modfd +(); + +79 +Ãxt_wšp + = + `S‹_CÛrû +( +hªdË +); + +80  +Ãxt_wšp + !ð +WINP_NULL + && +»t_v® + =ð +TRUE +){ + +82 ià( +Ãxt_wšp + =ð +wšp +){ + +83 + `S‹_Remove_PÙ’tŸÎy_Modfd +( +Ãxt_wšp +); + +84 + `S‹_Next_Wšdow +(& +hªdË +); + +85 +Ãxt_wšp + = + `S‹_CÛrû +( +hªdË +); + +89 ià( +side + !ð +NoSide +) + +90 +mo¡ + = (( +side + =ð +Leá + || sid=ð +Right +) ? + +91 + `G‘_PtX +(* +±p +è: + `G‘_PtY +(*ptp)); + +93 ià( + `Check_Cª_Modify +( +Ãxt_wšp +, +»ù +, +side +, & +mo¡ +, + +94 + `Tžwš_G‘_Wšdow_Time¡amp +( +wšp +), +¡amp +è=ð +FALSE +){ + +95 +»t_v® + = +FALSE +; + +98  +side +) { + +99  +Leá +: + +100  +TÝ +: + +101 +cu¼’t_mo¡ + = (cu¼’t_mo¡ < +mo¡ + ? most : current_most ); + +103  +Right +: + +104  +BÙtom +: + +105 +cu¼’t_mo¡ + = (cu¼’t_mo¡ > +mo¡ + ? most : current_most); + +107  +NoSide +: + +108 ià( + `Tžwš_G‘_Modify_Side +( +Ãxt_wšp +è=ð +NoSide +) + +110 +now_þo£d +++; + +111 ià( +b‘‹r + =ð +TRUE +) + +113 ià( +now_þo£d + >ð* +nþo£d +) + +114 +»t_v® + = +FALSE +; + +118 ià( +now_þo£d + > * +nþo£d +) + +119 +»t_v® + = +FALSE +; + +122 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +Ãxt_wšp +, + +123 +EXPENSIVE_TO_REDRAW +) + +124 =ð +TRUE +) + +126 +now_ex³nsive +++; + +127 ià( +b‘‹r + =ð +TRUE +) + +129 ià(( +now_þo£d + =ð* +nþo£d +) && + +130 ( +now_ex³nsive + >ð* +Ãx³nsive +)) + +131 +»t_v® + = +FALSE +; + +135 if(( +now_þo£d + =ð* +nþo£d +) && + +136 ( +now_ex³nsive + > * +Ãx³nsive +)) + +137 +»t_v® + = +FALSE +; + +140 +now_afãùed +++; + +141 ià( +b‘‹r + =ð +TRUE +) + +143 ià(( +now_þo£d + =ð* +nþo£d +) && + +144 ( +now_ex³nsive + =ð* +Ãx³nsive +) && + +145 ( +now_afãùed + >ð* +Çfãùed +)) + +146 +»t_v® + = +FALSE +; + +150 ià(( +now_þo£d + =ð* +nþo£d +) && + +151 ( +now_ex³nsive + =ð* +Ãx³nsive +) && + +152 ( +now_afãùed + > * +Çfãùed +)) + +153 +»t_v® + = +FALSE +; + +160 ià( + `Tžwš_G‘_Modify_Side +( +Ãxt_wšp +è=ð +NoSide +) { + +161 + `S‹_Remove_PÙ’tŸÎy_Modfd +( +Ãxt_wšp +); + +162 + `S‹_In£¹_PÙ’tŸÎy_Clo£d +( +Ãxt_wšp +); + +165 + `S‹_Next_Wšdow +(& +hªdË +); + +166 +Ãxt_wšp + = + `S‹_CÛrû +( +hªdË +); + +176 ià( +»t_v® + =ð +TRUE +) + +178 ià( +side + !ð +NoSide +) + +179 ià( +side + =ð +Leá + || sid=ð +Right +) + +180 + `G‘_PtX +(* +±p +èð +cu¼’t_mo¡ +; + +182 + `G‘_PtY +(* +±p +èð +cu¼’t_mo¡ +; + +185 * +nþo£d + = +now_þo£d +; + +186 * +Ãx³nsive + = +now_ex³nsive +; + +187 * +Çfãùed + = +now_afãùed +; + +191  ( +»t_v® +); + +192 + } +} + + @check_ic32.h + +27  + #check_32_width + 32 + + ) + +28  + #check_32_height + 32 + + ) + +29  + gcheck_32_b™s +[] = { + + @check_mod.c + +2 #iâdeà +lšt + + +3  + gsccs_id +[] = "@(#)check_mod.c 5.3 9/1/88"; + +28  + ~"cÝyright.h +" + +30  + ~"ba£ty³.h +" + +31  + ~"twšD.h +" + +32  + ~"twš.h +" + +34 +Side + +Check_Shršk +(); + +40 +boÞ + + +41 + $Check_Cª_Modify +( +wšp +, +¬— +, +growšg_dœeùiÚ +, +be¡p +, +wš_¡amp +, +þo£_¡amp +) + +42 +Tžwš + * +wšp +; + +43 +TWReùªgË + +¬— +; + +44 +Side + +growšg_dœeùiÚ +; + +45 +Ba£ty³ + * +be¡p +; + +46 +TimeSmp + +wš_¡amp +, + +48 +þo£_¡amp +; + +51 +Size + +Ãw_size +; + +52 +TWReùªgË + +shršk_»ù +; + +53 +Side + +shršk_side +; + +54 +Ba£ty³ + +be¡ +; + +55 +boÞ + +»t_v® +; + +61 +shršk_»ù + = + `Tžwš_G‘_ReùªgË +( +wšp +); + +62 +shršk_side + = + `Check_Shršk +( +wšp +, & +shršk_»ù +, +¬— +, +wš_¡amp +); + +64 + `Tžwš_S‘_Modify_ReùªgË +( +wšp +, +shršk_»ù +); + +65 + `Tžwš_S‘_Modify_Side +( +wšp +, +shršk_side +); + +67 ià( + `Tžwš_G‘_Modify_Side +( +wšp +è=ð +NoSide +){ + +69 ià((( + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +REQUIRE_MANUAL_CLOSE +è=ð +FALSE +) && + +70 ( + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTOMATIC_CLOSE +è=ð +TRUE +) && + +71 (( + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTO_CLOSE_MORE_RECENT +è=ð +TRUE +) || + +72 ( + `Tžwš_G‘_Wšdow_Time¡amp +( +wšp +è<ð +wš_¡amp +)) && + +73 ( + `Tžwš_G‘_Wšdow_Time¡amp +( +wšp +è<ð +þo£_¡amp +))) + +75 +»t_v® + = +TRUE +; + +78 + `Tžwš_S‘_Modify_ReùªgË +( +wšp +, + `Tžwš_G‘_ReùªgË +(winp)); + +79  +growšg_dœeùiÚ +){ + +80  +Leá +: + +81 + `Tžwš_S‘_Modify_Side +( +wšp +, +Right +); + +82 ià(( + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTOMATIC_SHRINK +è=ð +TRUE +) && + +83 (( + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTO_SHRINK_MORE_RECENT +)) || + +84 ( + `Tžwš_G‘_Wšdow_Time¡amp +( +wšp +è<ð +wš_¡amp +)) && + +85 ( + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_RIGHT_EDGE +è=ð +FALSE +) && + +86 ( + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_WIDTH +è=ð +FALSE +) && + +87 ( + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_SIZE +è=ð +FALSE +) && + +88 ( + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_COMPLETELY +è=ð +FALSE +)){ + +89 +Ãw_size + = ( + `Tžwš_G‘_Glob®_O±iÚ +( +ENFORCE_MINIMUMS +) ? + +90 + `Tžwš_G‘_Mš +( +wšp +è: + `Tžwš_G‘_AbsÞu‹_Mšimums +()); + +91 + `G‘_RightX +( + `Tžwš_G‘_Modify_ReùªgË +( +wšp +)) = + +92 + `G‘_LeáX +( + `Tžwš_G‘_Modify_ReùªgË +( +wšp +))+( + `G‘_Width +( +Ãw_size +) - 1); + +94 +be¡ + = + `G‘_RightX +( + `Tžwš_G‘_Modify_ReùªgË +( +wšp +)) + 1; + +95 +»t_v® + = +TRUE +; + +97  +Right +: + +98 + `Tžwš_S‘_Modify_Side +( +wšp +, +Leá +); + +99 ià(( + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTOMATIC_SHRINK +è=ð +TRUE +) && + +100 (( + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTO_SHRINK_MORE_RECENT +)) || + +101 ( + `Tžwš_G‘_Wšdow_Time¡amp +( +wšp +è<ð +wš_¡amp +)) && + +102 ( + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_LEFT_EDGE +è=ð +FALSE +) && + +103 ( + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_WIDTH +è=ð +FALSE +) && + +104 ( + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_SIZE +è=ð +FALSE +) && + +105 ( + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_COMPLETELY +è=ð +FALSE +)){ + +106 +Ãw_size + = ( + `Tžwš_G‘_Glob®_O±iÚ +( +ENFORCE_MINIMUMS +) ? + +107 + `Tžwš_G‘_Mš +( +wšp +è: + `Tžwš_G‘_AbsÞu‹_Mšimums +()); + +108 + `G‘_LeáX +( + `Tžwš_G‘_Modify_ReùªgË +( +wšp +)) = + +109 + `G‘_RightX +( + `Tžwš_G‘_Modify_ReùªgË +( +wšp +))-( + `G‘_Width +( +Ãw_size +) - 1); + +111 +be¡ + = + `G‘_LeáX +( + `Tžwš_G‘_Modify_ReùªgË +( +wšp +)) - 1; + +112 +»t_v® + = +TRUE +; + +114  +TÝ +: + +115 ià(( + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTOMATIC_SHRINK +è=ð +TRUE +) && + +116 (( + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTO_SHRINK_MORE_RECENT +)) || + +117 ( + `Tžwš_G‘_Wšdow_Time¡amp +( +wšp +è<ð +wš_¡amp +)) && + +118 ( + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_BOTTOM_EDGE +è=ð +FALSE +) && + +119 ( + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_HEIGHT +è=ð +FALSE +) && + +120 ( + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_SIZE +è=ð +FALSE +) && + +121 ( + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_COMPLETELY +è=ð +FALSE +)){ + +122 +Ãw_size + = ( + `Tžwš_G‘_Glob®_O±iÚ +( +ENFORCE_MINIMUMS +) ? + +123 + `Tžwš_G‘_Mš +( +wšp +è: + `Tžwš_G‘_AbsÞu‹_Mšimums +()); + +124 + `G‘_BÙtomY +( + `Tžwš_G‘_Modify_ReùªgË +( +wšp +)) = + +125 + `G‘_TÝY +( + `Tžwš_G‘_Modify_ReùªgË +( +wšp +))+( + `G‘_Height +( +Ãw_size +) - 1); + +127 +be¡ + = + `G‘_BÙtomY +( + `Tžwš_G‘_Modify_ReùªgË +( +wšp +)) + 1; + +128 +»t_v® + = +TRUE +; + +130  +BÙtom +: + +131 + `Tžwš_S‘_Modify_Side +( +wšp +, +TÝ +); + +132 ià(( + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTOMATIC_SHRINK +è=ð +TRUE +) && + +133 (( + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTO_SHRINK_MORE_RECENT +)) || + +134 ( + `Tžwš_G‘_Wšdow_Time¡amp +( +wšp +è<ð +wš_¡amp +)) && + +135 ( + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_BOTTOM_EDGE +è=ð +FALSE +) && + +136 ( + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_HEIGHT +è=ð +FALSE +) && + +137 ( + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_SIZE +è=ð +FALSE +) && + +138 ( + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_COMPLETELY +è=ð +FALSE +)){ + +139 +Ãw_size + = ( + `Tžwš_G‘_Glob®_O±iÚ +( +ENFORCE_MINIMUMS +) ? + +140 + `Tžwš_G‘_Mš +( +wšp +è: + `Tžwš_G‘_AbsÞu‹_Mšimums +()); + +141 + `G‘_TÝY +( + `Tžwš_G‘_Modify_ReùªgË +( +wšp +)) = + +142 + `G‘_BÙtomY +( + `Tžwš_G‘_Modify_ReùªgË +( +wšp +))-( + `G‘_Height +( +Ãw_size +) - 1); + +144 +be¡ + = + `G‘_TÝY +( + `Tžwš_G‘_Modify_ReùªgË +( +wšp +)) - 1; + +145 +»t_v® + = +TRUE +; + +147  +NoSide +: + +148 + `Tžwš_S‘_Modify_Side +( +wšp +, +NoSide +); + +149 +»t_v® + = +FALSE +; + +155 +»t_v® + = +TRUE +; + +158 * +be¡p + = +be¡ +; + +159 ( +»t_v® +); + +160 + } +} + + @check_shk.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)check_shk.c 5.4 9/7/88"; + +28  + ~"ba£ty³.h +" + +29  + ~"twšD.h +" + +30  + ~"twš.h +" + +31  + ~"gßl.h +" + +33  + #max +( +a +, +b +èШ> b ?‡ : b) + + ) + +34  + #mš +( +a +, +b +èШ< b ?‡ : b) + + ) + +36 +Side + + +37 + $Check_Shršk +( +twšp +, +shršk_»ùp +, +¬— +, +¡amp +) + +38 +Tžwš + * +twšp +; + +39 +TWReùªgË + * +shršk_»ùp +, + +40 +¬— +; + +41 +TimeSmp + +¡amp +; + +43 +Size + +mš_size +, + +44 +size +; + +45 +Side + +be¡_side +; + +46 +TWReùªgË + +be¡_»ù +, + +47 +»ù +; + +48  +be¡_gßl +, + +49 +cu¼’t_gßl +; + +51 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_SIZE +è=ð +TRUE + || + +52 + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_COMPLETELY +è=ð +TRUE + || + +53 + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTOMATIC_SHRINK +è=ð +FALSE + || + +54 ( + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTO_SHRINK_MORE_RECENT +è=ð +FALSE + && + +55 + `Tžwš_G‘_Wšdow_Time¡amp +( +twšp +è> +¡amp +)) + +56  ( +NoSide +); + +58 ià( + `Tžwš_G‘_Glob®_O±iÚ +( +ENFORCE_MINIMUMS +è=ð +TRUE +){ + +59 + `G‘_Width +( +mš_size +èð + `max +(G‘_Width( + `Tžwš_G‘_Mš +( +twšp +)), + +60 + `G‘_Width +( + `Tžwš_G‘_AbsÞu‹_Mšimums +())); + +61 + `G‘_Height +( +mš_size +èð + `max +(G‘_Height( + `Tžwš_G‘_Mš +( +twšp +)), + +62 + `G‘_Height +( + `Tžwš_G‘_AbsÞu‹_Mšimums +())); + +65 +mš_size + = + `Tžwš_G‘_AbsÞu‹_Mšimums +(); + +67 +be¡_side + = +NoSide +; + +68 +be¡_gßl + = - (è + `max +( + `G‘_Width +( + `Tžwš_G‘_DesktÝ_Size +()), + +69 + `G‘_Height +( + `Tžwš_G‘_DesktÝ_Size +())); + +71 +»ù + = * +shršk_»ùp +; + +72 + `G‘_LeáX +( +»ù +èð + `G‘_RightX +( +¬— +) + 1; + +73 + `COMPUTE_SIZE +( +»ù +, +size +); + +74 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_LEFT_EDGE +è=ð +FALSE + && + +75 + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_WIDTH +è=ð +FALSE + && + +76 + `G‘_Width +( +size +è>ðG‘_Width( +mš_size +)){ + +77 +cu¼’t_gßl + = + `Gßl +( +twšp +, + `Tžwš_G‘_Size +Ñwšp), +size +); + +78 ià( +cu¼’t_gßl + > +be¡_gßl +){ + +79 +be¡_gßl + = +cu¼’t_gßl +; + +80 +be¡_side + = +Leá +; + +81 +be¡_»ù + = +»ù +; + +85 +»ù + = * +shršk_»ùp +; + +86 + `G‘_RightX +( +»ù +èð + `G‘_LeáX +( +¬— +) - 1; + +87 + `COMPUTE_SIZE +( +»ù +, +size +); + +88 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_RIGHT_EDGE +è=ð +FALSE + && + +89 + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_WIDTH +è=ð +FALSE + && + +90 + `G‘_Width +( +size +è>ðG‘_Width( +mš_size +)){ + +91 +cu¼’t_gßl + = + `Gßl +( +twšp +, + `Tžwš_G‘_Size +Ñwšp), +size +); + +92 ià( +cu¼’t_gßl + > +be¡_gßl +){ + +93 +be¡_gßl + = +cu¼’t_gßl +; + +94 +be¡_side + = +Right +; + +95 +be¡_»ù + = +»ù +; + +99 +»ù + = * +shršk_»ùp +; + +100 + `G‘_TÝY +( +»ù +èð + `G‘_BÙtomY +( +¬— +) + 1; + +101 + `COMPUTE_SIZE +( +»ù +, +size +); + +102 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_TOP_EDGE +è=ð +FALSE + && + +103 + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_HEIGHT +è=ð +FALSE + && + +104 + `G‘_Height +( +size +è>ðG‘_Height( +mš_size +)){ + +105 +cu¼’t_gßl + = + `Gßl +( +twšp +, + `Tžwš_G‘_Size +Ñwšp), +size +); + +106 ià( +cu¼’t_gßl + > +be¡_gßl +){ + +107 +be¡_gßl + = +cu¼’t_gßl +; + +108 +be¡_side + = +TÝ +; + +109 +be¡_»ù + = +»ù +; + +113 +»ù + = * +shršk_»ùp +; + +114 + `G‘_BÙtomY +( +»ù +èð + `G‘_TÝY +( +¬— +) - 1; + +115 + `COMPUTE_SIZE +( +»ù +, +size +); + +116 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_BOTTOM_EDGE +è=ð +FALSE + && + +117 + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_HEIGHT +è=ð +FALSE + && + +118 + `G‘_Height +( +size +è>ðG‘_Height( +mš_size +)){ + +119 +cu¼’t_gßl + = + `Gßl +( +twšp +, + `Tžwš_G‘_Size +Ñwšp), +size +); + +120 ià( +cu¼’t_gßl + > +be¡_gßl +){ + +121 +be¡_gßl + = +cu¼’t_gßl +; + +122 +be¡_side + = +BÙtom +; + +123 +be¡_»ù + = +»ù +; + +127 * +shršk_»ùp + = +be¡_»ù +; + +128 ( +be¡_side +); + +129 + } +} + + @client.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "%W% %H%"; + +27  + ~"cÝyright.h +" + +30  + ~<¡dio.h +> + +31  + ~ + +33  + ~"ba£ty³.h +" + +34  + ~"bu‰ÚsP.h +" + +36  + ~"uwšD.h +" + +37  + ~"uwšXD.h +" + +39  + ~ + +40  + ~ + +41  + ~"xio.h +" + +42  + ~"assoc.h +" + +43  + ~"cu¼’t.h +" + +45  +O³n_Execvp +(), +O³n_Exec +(); + +46  +PrÝ”ty_S‘_Wm_S‹ +(); + +48 +XEv’t + * +cu¼’t_Xev’t +; + +53  + $Cl›Á_Red¿w +( +uwšp +) + +54 +U£rwš + * +uwšp +; + +71 + } +} + +77  + $Cl›Á_Wšdow_C»©e +( +cmd +) + +78 * +cmd +; + +80  +pid +; + +83 ià(( +pid + = + `vfÜk +()) == 0) + +93 + `sigÇl +( +SIGHUP +, +SIG_IGN +); + +94 + `sigÇl +( +SIGINT +, +SIG_IGN +); + +95 + `sigÇl +( +SIGQUIT +, +SIG_IGN +); + +97 + `O³n_Exec +Ð +cmd + ); + +99 + `_ex™ +(-127); + +101 ià( +pid + < 0) + +103 + `årštf +( +¡d”r +, "Client_Window_Create - vfork failed!\n"); + +106 + } +} + +112  + $Cl›Á_S¹up +( +fžÇm +) + +113 * +fžÇm +; + +115  +pid +; + +118 ià(( +pid + = + `vfÜk +()) == 0) + +128 + `sigÇl +( +SIGHUP +, +SIG_IGN +); + +129 + `sigÇl +( +SIGINT +, +SIG_IGN +); + +130 + `sigÇl +( +SIGQUIT +, +SIG_IGN +); + +132 + `O³n_Execvp +Ð +fžÇm + ); + +134 + `_ex™ +(-127); + +136 ià( +pid + < 0) + +138 + `årštf +( +¡d”r +, "Client_Startup - vfork failed!\n"); + +141 + } +} + +145  + $Cl›Á_Bªg +( +uwšp +) + +146 +U£rwš + * +uwšp +; + +148 + } +} + +152  + $Cl›Á_Kžl +( +uwšp +) + +153 +U£rwš + * +uwšp +; + +155 + `XKžlCl›Á +( +dpy +, + `U£rwš_XCl›Á +( +uwšp +)); + +156 + `XFlush +( +dpy +); + +157 + } +} + +165  + #EV_MASK + ( +KeyP»ssMask + | +KeyR–—£Mask + | +Bu‰ÚP»ssMask + | +Bu‰ÚR–—£Mask +) + + ) + +167  + $Cl›Á_FÜge_Cu¼’t_Ev’t +( +w +) + +168 +Wšdow + +w +; + +170 +XEv’t + +ev +; + +172 +ev + = * +cu¼’t_Xev’t +; + +173 +ev +. +xªy +. +wšdow + = +w +; + +174 + `XS’dEv’t +( +dpy +, +w +, +F®£ +, +EV_MASK +, & +ev +); + +175 + } +} + +182  + $Cl›Á_S’d_Key +( +uwšp +, +ch +) + +183 +U£rwš + * +uwšp +; + +184  +ch +; + +187 ià( +cu¼’t_Xev’t +-> +ty³ + =ð +KeyP»ss +) + +189 ià( + `RegiÚ_G‘_Ty³ +( +cu¼’t_»giÚ +è=ð +body +) + +190 + `XAÎowEv’ts +( +dpy +, +R•ÏyKeybßrd +, +Cu¼’tTime +); + +192 + `Cl›Á_FÜge_Cu¼’t_Ev’t +( + `U£rwš_XCl›Á +( +uwšp +)); + +194 + } +} + +198  + $Cl›Á_IgnÜe_Key +() + +199 { + } +} + +204  + $Cl›Á_M’u_Bu‰Ú_Numb” +Ð +num + ) + +205  +num +; + +206 { + } +} + +213  + $Cl›Á_S’d_Bu‰Ú +( +uwšp +, +kšd +, +bu‰Ú +, +pos +) + +214 +U£rwš + * +uwšp +; + +215 +ButKšd + +kšd +; + +216 +Bu‰Ús + +bu‰Ú +; + +217 +TWPošt + +pos +; + +219 ià(( +cu¼’t_Xev’t +-> +ty³ + =ð +Bu‰ÚP»ss +è|| (cu¼’t_Xev’t->ty³ =ð +Bu‰ÚR–—£ +)) + +221 ià( + `RegiÚ_G‘_Ty³ +( +cu¼’t_»giÚ +è=ð +body +) + +222 + `XAÎowEv’ts +( +dpy +, +R•ÏyPoš‹r +, +Cu¼’tTime +); + +224 + `Cl›Á_FÜge_Cu¼’t_Ev’t +( + `U£rwš_XCl›Á +( +uwšp +)); + +226 + } +} + +231  + $Cl›Á_IgnÜe_Bu‰Ú +() + +232 { + } +} + +239  + $Cl›Á_S’d_SŒšg +( +uwšp +, +¡ršg +) + +240 +U£rwš + * +uwšp +; + +241 * +¡ršg +; + +242 { + } +} + +249  + $Cl›Á_S’d_Mou£ +( +uwšp +, +but¡©e +, +pos +) + +250 +U£rwš + * +uwšp +; + +251 +Bu‰Ú_S‹ + +but¡©e +; + +252 +TWPošt + +pos +; + +253 { + } +} + +260  + $Cl›Á_EÁ” +( +uwšp +, +but¡©e +, +± +) + +261 +U£rwš + * +uwšp +; + +262 +Bu‰Ú_S‹ + +but¡©e +; + +263 +TWPošt + +± +; + +264 { + } +} + +271  + $Cl›Á_Take_Focus +( +uwšp +) + +272 +U£rwš + * +uwšp +; + +275 + } +} + +279  + $Cl›Á_S‘_S‹ +Ð +uwšp + ) + +280 +U£rwš + * +uwšp +; + +282 () + `PrÝ”ty_S‘_Wm_S‹ +( +uwšp +, + `U£rwš_Wm_S‹ +(uwinp)); + +283 + } +} + +287  + $Cl›Á_CÚfigu»_D’›d +Ð +uwšp + ) + +288 +U£rwš + * +uwšp +; + +289 { + } +} + +293  + $Cl›Á_Wšdow_Moved +Ð +uwšp + ) + +294 +U£rwš + * +uwšp +; + +295 { + } +} + +299  + $Cl›Á_D–‘e_Wšdow +Ð +uwšp + ) + +300 +U£rwš + * +uwšp +; + +301 { + } +} + +305  + $Cl›Á_IcÚ_NÙify +Ð +uwšp + ) + +306 +U£rwš + * +uwšp +; + +307 { + } +} + + @client.h + +30  +Cl›Á_EÁ” +(); + +33  +Cl›Á_S’d_Mou£ +(); + +36  +Cl›Á_S’d_Bu‰Ú +(); + +39  +Cl›Á_S’d_Key +(); + +42  +Cl›Á_IgnÜe_Key +(); + +43  +Cl›Á_IgnÜe_Bu‰Ú +(); + +45  +Cl›Á_S’d_SŒšg +(); + +50  +Cl›Á_M’u_Bu‰Ú_Numb” +(); + +55  +Cl›Á_Kžl +(); + +58  +Cl›Á_Red¿w +(); + +61  +Cl›Á_Wšdow_C»©e +(); + +64  +Cl›Á_S¹up +(); + +67  +Cl›Á_Take_Focus +(); + +70  +Cl›Á_Bªg +(); + +73  +Cl›Á_S‘_S‹ +(); + +76  +Cl›Á_CÚfigu»_D’›d +(); + +79  +Cl›Á_Wšdow_Moved +(); + +82  +Cl›Á_D–‘e_Wšdow +(); + +85  +Cl›Á_IcÚ_NÙify +(); + + @closed.c + +23  + ~"cÝyright.h +" + +25  + ~"uwšP.h +" + +27  + ~"tžem’u.h +" + +29  +TžeM’u + + gmªag”_m’u +; + +30  +TžeM’uI‹m + + gþo£d_m’u_’Œy +; + +31  +TžeM’u + + gþo£d_m’u +; + +32  + gnum_þo£d +; + +33  +VoidFunc + + gÿδoc +; + +37 +TžeM’u + + $Clo£d_In™ +Ð +m’u +, +´oc + ) + +38 +TžeM’u + +m’u +; + +39 +VoidFunc + +´oc +; + +41 +mªag”_m’u + = +m’u +; + +42 +þo£d_m’u + = + `TžeM’u_C»©e +(); + +43 + `TžeM’u_Box +Ð +þo£d_m’u + ); + +44 +þo£d_m’u_’Œy + = + `TžeM’u_Aµ’d_Subm’u +( + +45 +mªag”_m’u +, "Clo£d Wšdows", +þo£d_m’u + ); + +46 +num_þo£d + = 0; + +47 + `TžeM’u_IÇùiv©e_EÁry +Ð +mªag”_m’u +, +þo£d_m’u_’Œy + ); + +48 +ÿδoc + = +´oc +; + +49  +þo£d_m’u +; + +50 + } +} + +54  + $Clo£d_R‘™Ë +Ð +uwšp + ) + +55 +U£rwš + * +uwšp +; + +57 + `TžeM’u_R•Ïû_D©a_By_SŒšg +( + +58 +þo£d_m’u +, +uwšp +, uwšp-> +t™Ë + ); + +59 + } +} + +63  + $Clo£d_Add +Ð +uwšp + ) + +64 +U£rwš + * +uwšp +; + +66 + `TžeM’u_Aµ’d_C®l +Ð +þo£d_m’u +, + +67 +uwšp +-> +t™Ë +, +ÿδoc +, uwinp ); + +68 iàÐ( +num_þo£d +++) == 0 ) + +69 + `TžeM’u_Aùiv©e_EÁry +Ð +mªag”_m’u +, +þo£d_m’u_’Œy + ); + +70 + } +} + +74  + $Clo£d_Remove +Ð +uwšp + ) + +75 +U£rwš + * +uwšp +; + +77 iàÐ + `TžeM’u_Has_D©a +Ð +þo£d_m’u +, +uwšp + ) ) + +79 + `TžeM’u_D–‘e_D©a +Ð +þo£d_m’u +, +uwšp + ); + +80 iàÐ(-- +num_þo£d +) == 0 ) + +81 + `TžeM’u_IÇùiv©e_EÁry +Ð +mªag”_m’u +, +þo£d_m’u_’Œy + ); + +83 + } +} + + @closed.h + +29 #iâdeà +BASETYPE + + +30  + ~"ba£ty³.h +" + +33 #iâdeà +TILEMENU + + +34  + ~"tžem’u.h +" + +37 +TžeM’u + +Clo£d_In™ +(); + +40  +Clo£d_R‘™Ë +(); + +43  +Clo£d_Add +(); + +46  +Clo£d_Remove +(); + + @commit.h + +30  +Comm™_O³¿tiÚ +(); + + @commit_op.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)commit_op.c 5.3 9/1/88"; + +28  + ~"ba£ty³.h +" + +29  + ~"twšD.h +" + +30  + ~"¡©e.h +" + +31  + ~"tže.h +" + +32  + ~"wš.h +" + +35 + $Comm™_O³¿tiÚ +( +wšp +) + +36 +Tžwš + * +wšp +; + +38 +Tžwš + * +mod_wšp +; + +39 +Ba£ty³ + +shršk_coÜd +; + +40 +Side + +side +; + +41 +TWReùªgË + +»ù +, + +42 +cu¼’t_»ù +, + +43 +Ãw_»ù +; + +44 +WšpHªdË + +hªdË +; + +48 +cu¼’t_»ù + = + `Tžwš_G‘_ReùªgË +( +wšp +); + +49 +Ãw_»ù + = + `Tžwš_G‘_Modify_ReùªgË +( +wšp +); + +50 ià( + `G‘_LeáX +( +cu¼’t_»ù +è=ðG‘_LeáX( +Ãw_»ù +) && + +51 + `G‘_RightX +( +cu¼’t_»ù +è=ðG‘_RightX( +Ãw_»ù +) && + +52 + `G‘_TÝY +( +cu¼’t_»ù +è=ðG‘_TÝY( +Ãw_»ù +) && + +53 + `G‘_BÙtomY +( +cu¼’t_»ù +)==G‘_BÙtomY( +Ãw_»ù +) && + +54 + `Tžwš_Is_O³n +( +wšp +è=ð +TRUE +){ + +63 +hªdË + = + `S‹_G’_PÙ’tŸÎy_Clo£d +(); + +65  ( +mod_wšp + = + `S‹_CÛrû +( +hªdË +)è!ð +WINP_NULL + ) + +67 + `S‹_Auto_Clo£ +(( +Tžwš + *è +mod_wšp +); + +68 + `Wš_Clo£ +( +mod_wšp +); + +69 + `Tžwš_Was_Autom©iÿÎy_Clo£d +( +mod_wšp +èð +TRUE +; + +70 + `S‹_Next_Wšdow +(& +hªdË +); + +75 +hªdË + = + `S‹_G’_PÙ’tŸÎy_Modfd +(); + +77  ( +mod_wšp + = + `S‹_CÛrû +( +hªdË +)è!ð +WINP_NULL + ) + +80 + `S‹_O³n +(( +Tžwš + *è +mod_wšp +); + +82 ià( + `Tžwš_G‘_Modify_Side +( +mod_wšp +è=ð +Leá +) + +84 +shršk_coÜd + = + `G‘_LeáX +Ð + `Tžwš_G‘_Modify_ReùªgË +( +mod_wšp +) ); + +86 ià( + `Tžwš_G‘_Modify_Side +( +mod_wšp +è=ð +Right +) + +88 +shršk_coÜd + = + `G‘_RightX +Ð + `Tžwš_G‘_Modify_ReùªgË +( +mod_wšp +) ); + +90 ià( + `Tžwš_G‘_Modify_Side +( +mod_wšp +è=ð +TÝ +) + +92 +shršk_coÜd + = + `G‘_TÝY +Ð + `Tžwš_G‘_Modify_ReùªgË +( +mod_wšp +) ); + +96 +shršk_coÜd + = + `G‘_BÙtomY +Ð + `Tžwš_G‘_Modify_ReùªgË +( +mod_wšp +) ); + +99 + `Wš_Shršk +( +mod_wšp +, + `Tžwš_G‘_Modify_Side +(mod_winp), + +100 +shršk_coÜd +); + +102 + `S‹_Next_Wšdow +(& +hªdË +); + +106 +side + = + `Tžwš_G‘_Modify_Side +( +wšp +); + +107 +Ãw_»ù + = + `Tžwš_G‘_Modify_ReùªgË +( +wšp +); + +108 +»ù + = + `Tžwš_G‘_ReùªgË +( +wšp +); + +113 ià( +side + =ð +NoSide + && + `Tžwš_Is_O³n +( +wšp +è=ð +TRUE +) + +114 + `Wš_Clo£ +( +wšp +); + +116 + `S‹_O³n +(( +Tžwš + *è +wšp +); + +119 ià( +side + =ð +NoSide +) + +120 + `Wš_O³n +( +wšp +, +Ãw_»ù +); + +124 ià( +side + =ð +Leá + || sid=ð +TÝ_Leá + || sid=ð +BÙtom_Leá +){ + +125 ià( + `G‘_LeáX +( +»ù +è< G‘_LeáX( +Ãw_»ù +)) + +126 + `Wš_Shršk +( +wšp +, +Leá +, + `G‘_LeáX +( +Ãw_»ù +)); + +128 ià( +side + =ð +Right + || sid=ð +TÝ_Right + || sid=ð +BÙtom_Right +){ + +129 ià( + `G‘_RightX +( +»ù +è> G‘_RightX( +Ãw_»ù +)) + +130 + `Wš_Shršk +( +wšp +, +Right +, + `G‘_RightX +( +Ãw_»ù +)); + +132 ià( +side + =ð +TÝ + || sid=ð +TÝ_Right + || sid=ð +TÝ_Leá +){ + +133 ià( + `G‘_TÝY +( +»ù +è< G‘_TÝY( +Ãw_»ù +)) + +134 + `Wš_Shršk +( +wšp +, +TÝ +, + `G‘_TÝY +( +Ãw_»ù +)); + +136 ià( +side + =ð +BÙtom + || sid=ð +BÙtom_Right + || sid=ð +BÙtom_Leá +){ + +137 ià( + `G‘_BÙtomY +( +»ù +è> G‘_BÙtomY( +Ãw_»ù +)) + +138 + `Wš_Shršk +( +wšp +, +BÙtom +, + `G‘_BÙtomY +( +Ãw_»ù +)); + +142 ià( +side + =ð +Leá + || sid=ð +TÝ_Leá + || sid=ð +BÙtom_Leá +){ + +143 ià( + `G‘_LeáX +( +»ù +è> G‘_LeáX( +Ãw_»ù +)) + +144 + `Wš_EƬge +( +wšp +, +Leá +, + `G‘_LeáX +( +Ãw_»ù +)); + +146 ià( +side + =ð +Right + || sid=ð +TÝ_Right + || sid=ð +BÙtom_Right +){ + +147 ià( + `G‘_RightX +( +»ù +è< G‘_RightX( +Ãw_»ù +)) + +148 + `Wš_EƬge +( +wšp +, +Right +, + `G‘_RightX +( +Ãw_»ù +)); + +151 ià( +side + =ð +TÝ + || sid=ð +TÝ_Right + || sid=ð +TÝ_Leá +){ + +152 ià( + `G‘_TÝY +( +»ù +è> G‘_TÝY( +Ãw_»ù +)) + +153 + `Wš_EƬge +( +wšp +, +TÝ +, + `G‘_TÝY +( +Ãw_»ù +)); + +155 ià( +side + =ð +BÙtom + || sid=ð +BÙtom_Right + || sid=ð +BÙtom_Leá +){ + +156 ià( + `G‘_BÙtomY +( +»ù +è< G‘_BÙtomY( +Ãw_»ù +)) + +157 + `Wš_EƬge +( +wšp +, +BÙtom +, + `G‘_BÙtomY +( +Ãw_»ù +)); + +161 + } +} + + @control.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "%W% %H%"; + +27  + ~"cÝyright.h +" + +29  + ~"ba£ty³.h +" + +31  + ~ + +32  + ~ + +33  + ~ + +35  + ~"uwšXD.h +" + +36  + ~"assoc.h +" + +37  + ~"xio.h +" + +38  + ~"tžeü¤.h +" + +39  + ~"ev§veX.h +" + +43 +boÞ + + g£nd_mou£_ev’ts + = +FALSE +; + +44 +boÞ + + gpoš‹r_g¿bbed + = +FALSE +; + +45 +boÞ + + gkeybßrd_g¿bbed + = +FALSE +; + +47  +CursÜ + + g´evious_cursÜ +; + +48  +CursÜ + + gcu¼’t_cursÜ +; + +52  + $CÚŒÞ_S‘_CursÜ +Ð +tžecursÜ + ) + +53 +TžeCursÜ + +tžecursÜ +; + +55 +´evious_cursÜ + = +cu¼’t_cursÜ +; + +56 +cu¼’t_cursÜ + = +tžecursÜ +; + +58 iàÐ +poš‹r_g¿bbed + && + +59 ( +´evious_cursÜ + !ð +tžecursÜ +) && + +60 ( +tžecursÜ + !ð +NÚe +) ) + +62 + `XChªgeAùivePoš‹rG¿b +( +dpy +, + +63 +Poš‹rMÙiÚMask + | + +64 +Bu‰ÚP»ssMask + | +Bu‰ÚR–—£Mask +, + +65 ( +CursÜ +è +tžecursÜ +, +Cu¼’tTime +); + +66 + } +} + +70  + $CÚŒÞ_Re¡Üe_CursÜ +() + +72 +cu¼’t_cursÜ + = +´evious_cursÜ +; + +73 iàÐ +poš‹r_g¿bbed + && ( +´evious_cursÜ + !ð +NÚe +) ) + +75 + `XChªgeAùivePoš‹rG¿b +( +dpy +, + +76 +Poš‹rMÙiÚMask + | + +77 +Bu‰ÚP»ssMask + | +Bu‰ÚR–—£Mask +, + +78 ( +CursÜ +è +´evious_cursÜ +, +Cu¼’tTime +); + +79 + } +} + +83 +boÞ + + $CÚŒÞ_G¿b_U£r +Ð +£nd_mou£ +, +tžecursÜ + ) + +84 +boÞ + +£nd_mou£ +; + +85 +TžeCursÜ + +tžecursÜ +; + +87  +ev_mask +; + +89 +£nd_mou£_ev’ts + = +£nd_mou£ +; + +91 iàÐ +£nd_mou£ + ) + +92 +ev_mask + = +Poš‹rMÙiÚMask + | +Bu‰ÚP»ssMask + | +Bu‰ÚR–—£Mask +; + +94 +ev_mask + = +Bu‰ÚP»ssMask + | +Bu‰ÚR–—£Mask +; + +96 ià( + `XG¿bPoš‹r +( +dpy +, +roÙ +, +F®£ +, +ev_mask +, + +97 +G¿bModeAsync +, GrabModeAsync, + +98 ( +Wšdow +è +NÚe +, ( +CursÜ +è +tžecursÜ +, + +99 +Cu¼’tTime +è=ð +G¿bSucûss +) + +101 +poš‹r_g¿bbed + = +TRUE +; + +102 +´evious_cursÜ + = +cu¼’t_cursÜ +; + +103 +cu¼’t_cursÜ + = +tžecursÜ +; + +104 + `XFlush +( +dpy +); + +105  +TRUE +; + +108 +poš‹r_g¿bbed + = +FALSE +; + +109  +poš‹r_g¿bbed +; + +110 + } +} + +114  + $CÚŒÞ_Ung¿b_U£r +() + +116 +poš‹r_g¿bbed + = +FALSE +; + +117 +£nd_mou£_ev’ts + = +FALSE +; + +120 + `Re¡ÜeEv’ts +( +dpy +, & +¡ackp +); + +121 + `XUng¿bPoš‹r +( +dpy +, +Cu¼’tTime +); + +122 + `XFlush +( +dpy +); + +123 + } +} + +127  + $CÚŒÞ_G¿b_S”v” +() + +129 + `XG¿bS”v” +( +dpy +); + +130 + `XFlush +( +dpy +); + +131 + } +} + +135  + $CÚŒÞ_Ung¿b_S”v” +() + +137 + `XUng¿bS”v” +( +dpy +); + +138 + `XFlush +( +dpy +); + +139 + } +} + +143  + $CÚŒÞ_S‘_Focus +Ð +uwšp + ) + +144 +U£rwš + * +uwšp +; + +146 ià( +uwšp + =ð( +U£rwš + *è +NULL +) + +148 + `XS‘IÅutFocus +( +dpy +, +Poš‹rRoÙ +, +Rev”tToPoš‹rRoÙ +, +Cu¼’tTime +); + +152 +XWšdowA‰ribu‹s + +xwa +; + +155 + `XG‘WšdowA‰ribu‹s +( +dpy +, + `U£rwš_XCl›Á +( +uwšp +), & +xwa +); + +157 ià( +xwa +. +m­_¡©e + =ð +IsUnm­³d +) + +159 + `XS‘IÅutFocus +( +dpy +, + `U£rwš_XIcÚ +( +uwšp +), + +160 +Rev”tToPoš‹rRoÙ +, +Cu¼’tTime +); + +164 + `XS‘IÅutFocus +( +dpy +, + `U£rwš_XCl›Á +( +uwšp +), + +165 +Rev”tToPoš‹rRoÙ +, +Cu¼’tTime +); + +168 + } +} + +172  + $CÚŒÞ_Focus_Out +Ð +uwšp + ) + +173 +U£rwš + * +uwšp +; + +174 { + } +} + +178  + $CÚŒÞ_Un£t_Focus +() + +180 + `XS‘IÅutFocus +( +dpy +, +NÚe +, +Rev”tToPoš‹rRoÙ +, +Cu¼’tTime +); + +181 + } +} + +185  +Wšdow + + gÏ¡_ung¿bbed_wšdow + = +NÚe +; + +194  + $CÚŒÞ_G¿b_IÅut +( +w +) + +195 +Wšdow + +w +; + +197 + `XG¿bBu‰Ú +( +dpy +, (è +AnyBu‰Ú +, (è +AnyModif›r +, + +198 +w +, + +199 +F®£ +, + +200 (è( +Bu‰ÚP»ssMask + | +Bu‰ÚR–—£Mask +), + +201 +G¿bModeSync +, +G¿bModeAsync +, + +202 +NÚe +, + +203 +NÚe +); + +205 + `XG¿bKey +( +dpy +, (è +AnyKey +, (è +AnyModif›r +, + +206 +w +, + +207 +F®£ +, + +208 +G¿bModeAsync +, +G¿bModeSync +); + +209 + } +} + +213  + $CÚŒÞ_Re¡Üe_G¿b +() + +215 iàÐ +Ï¡_ung¿bbed_wšdow + !ð +NÚe + ) + +217 + `CÚŒÞ_G¿b_IÅut +( +Ï¡_ung¿bbed_wšdow +); + +218 +Ï¡_ung¿bbed_wšdow + = +NÚe +; + +220 + } +} + +225  + $CÚŒÞ_R–—£_G¿b +( +uwšp +) + +226 +U£rwš + * +uwšp +; + +229 ià( +Ï¡_ung¿bbed_wšdow + !ð +NÚe +) + +231 + `CÚŒÞ_Re¡Üe_G¿b +(); + +234 + `XUng¿bKey +( +dpy +, (è +AnyKey +, (è +AnyModif›r +, + +235 + `U£rwš_XP¬’tWš +( +uwšp +)); + +237 + `XUng¿bBu‰Ú +( +dpy +, (è +AnyBu‰Ú +, (è +AnyModif›r +, + +238 + `U£rwš_XP¬’tWš +( +uwšp +)); + +240 +Ï¡_ung¿bbed_wšdow + = + `U£rwš_XP¬’tWš +( +uwšp +); + +241 + } +} + +243  + $CÚŒÞ_De¡roy +( +uwšp +) + +244 +U£rwš + * +uwšp +; + +246 ià( +Ï¡_ung¿bbed_wšdow + =ð + `U£rwš_XP¬’tWš +( +uwšp +)) + +247 +Ï¡_ung¿bbed_wšdow + = +NÚe +; + +248 + } +} + +251 +boÞ + + $CÚŒÞ_Poš‹r_To_Wšdow +( +uwšp +) + +252 +U£rwš + * +uwšp +; + +254  +g¿b_¡©us +; + +256 +g¿b_¡©us + = + `XG¿bPoš‹r +( +dpy +, +roÙ +, +True +, +NÚe +, + +257 +G¿bModeAsync +, GrabModeAsync, + +258 + `U£rwš_XCl›Á +( +uwšp +), +NÚe +, +Cu¼’tTime +); + +259 ià( +g¿b_¡©us + =ð +G¿bSucûss +) + +260 + `XUng¿bPoš‹r +( +dpy +, +Cu¼’tTime +); + +261  ( +g¿b_¡©us + =ð +G¿bSucûss +); + +262 + } +} + +265  + $CÚŒÞ_Locksü“n +() + +267 + `locksü“n +( +dpy +); + +268 + } +} + +270  + $CÚŒÞ_Ex™ +() + +272 + `XSync +( +dpy +, 1); + +273 + } +} + + @control.h + +28 #iâdeà +STD_DEFS + + +29  + ~"¡d_defs.h +" + +32 +boÞ + +£nd_mou£_ev’ts +; + +33 +boÞ + +poš‹r_g¿bbed +; + +34 +boÞ + +keybßrd_g¿bbed +; + +36 +boÞ + +CÚŒÞ_G¿b_U£r +(); + +39  +CÚŒÞ_Ung¿b_U£r +(); + +41  + #CÚŒÞ_Poš‹r_G¿bbed +() \ + +42 Ð +poš‹r_g¿bbed + ) + + ) + +43  + #CÚŒÞ_Mousšg +() \ + +44 Ð +£nd_mou£_ev’ts + ) + + ) + +46  +CÚŒÞ_G¿b_S”v” +(); + +47  +CÚŒÞ_Ung¿b_S”v” +(); + +49  +CÚŒÞ_S‘_Focus +(); + +52  +CÚŒÞ_Focus_Out +(); + +55  +CÚŒÞ_Un£t_Focus +(); + +57  +CÚŒÞ_G¿b_IÅut +(); + +59  +CÚŒÞ_R–—£_G¿b +(); + +62  +CÚŒÞ_Re¡Üe_G¿b +(); + +64  +CÚŒÞ_S‘_CursÜ +(); + +66  +CÚŒÞ_Re¡Üe_CursÜ +(); + +68  +CÚŒÞ_De¡roy +(); + +71  +CÚŒÞ_Locksü“n +(); + +73 +boÞ + +CÚŒÞ_Poš‹r_To_Wšdow +(); + +76  +CÚŒÞ_Ex™ +(); + + @copyright.h + +28 #iâdeà +lšt + + +29  + gcÝyright +[] = ""; + + @current.c + +23  + ~"cÝyright.h +" + +25  + ~"ba£ty³.h +" + +27 #iâdeà +BUTTONS + + +28  + ~"bu‰ÚsP.h +" + +31 #iâdeà +REGION + + +32  + ~"»giÚP.h +" + +35 #iâdeà +USERWIN + + +36  + ~"uwšP.h +" + +39 +TWPošt + + gcu¼’t_pos +; + +40 +Bu‰Ús + + gcu¼’t_but +; + +41  + gcu¼’t_ch +; + +42 +ButKšd + + gcu¼’t_kšd +; + +43  + gcu¼’t_time +; + +45 +U£rwš + * + gcu¼’t_uwšp +; + +46 +TWRegiÚ + + gcu¼’t_»giÚ +; + +48 +Bu‰Ú_S‹ + + gcu¼’t_but¡©e +; + +51 + $cu¼’t_nž +() + +53 + } +} + + @current.h + +28 #iâdeà +BASETYPE + + +29  + ~"ba£ty³.h +" + +32 #iâdeà +BUTTONS + + +33  + ~"bu‰ÚsP.h +" + +36 #iâdeà +REGION + + +37  + ~"»giÚP.h +" + +40 #iâdeà +USERWIN + + +41  + ~"uwšP.h +" + +44 +TWPošt + +cu¼’t_pos +; + +45 +Bu‰Ús + +cu¼’t_but +; + +46  +cu¼’t_ch +; + +47 +ButKšd + +cu¼’t_kšd +; + +48  +cu¼’t_time +; + +50 +Bu‰Ú_S‹ + +cu¼’t_but¡©e +; + +52 +U£rwš + * +cu¼’t_uwšp +; + +53 +TWRegiÚ + +cu¼’t_»giÚ +; + + @dbug_pr.c + +5 #iâdeà +lšt + + +6  + gsccs_id +[] = "@(#)pr.c 1.1 12/16/87 Copyright (c) 1987, Siemens Corporate Research‡nd Support, Inc."; + +9  + ~<¡dio.h +> + +11  + ~"¡d_defs.h +" + +12  + ~"ba£ty³.h +" + +13  + ~"twšD.h +" + +14  + ~"¡©eP.h +" + +15  + ~"uwšD.h +" + +19  + $´t™Ë +Ð +uwšp + ) + +20 +U£rwš + * +uwšp +; + +22 * +uþass +, * +ut™Ë +; + +25 +uþass + = +uwšp +-> +wšdow_þass +; + +26 +ut™Ë + = +uwšp +-> +t™Ë +; + +28 iàÐ( +uþass + =ð +NULL +è&& ( +ut™Ë + == NULL) ) + +30 + `´štf +( "\n#0 RTL "); + +34 iàÐ +uþass + =ð +NULL + ) + +35 +uþass + = ""; + +37 iàÐ +ut™Ë + =ð +NULL + ) + +38 +ut™Ë + = ""; + +40 + `´štf +( "#%d (%d)", + +41 +uwšp +-> +wšnum +, ()uwinp); + +43 + `´štf +( "%s: %s", + +44 +uþass +, +ut™Ë + ); + +49 + } +} + +53  + $´icÚ +Ð +uwšp + ) + +54 +U£rwš + * +uwšp +; + +56 +Tžwš + * +wšp +; + +60 +wšp + = ( +Tžwš + *)( +uwšp +-> +icÚp +); + +62 iàÐ + `Tžwš_Is_O³n +( +wšp +) ) + +64 + `´štf +( "[ ICON ]opleft (%d,%d)", + +65 +wšp +-> +»ù +. +Ëá_x +, + +66 +wšp +-> +»ù +. +tÝ_y +); + +68 + `´štf +( "bottom„ight (%d,%d)", + +69 +wšp +-> +»ù +. +right_x +, + +70 +wšp +-> +»ù +. +bÙtom_y +); + +72 + `´štf +( "center @ (%d,%d)", + +73 +wšp +-> +ûÁ” +. +x +, + +74 +wšp +-> +ûÁ” +. +y +); + +79 + } +} + +83  + $´wš +Ð +uwšp + ) + +84 +U£rwš + * +uwšp +; + +86 +Tžwš + * +wšp +; + +90 +wšp + = ( +Tžwš + *)( +uwšp +->winp); + +92 + `´štf +( "[ %s ] %s", + +93 ( + `Tžwš_Is_O³n +( +wšp +) ? "OPEN" : "CLOSED"), + +94 ( +uwšp +-> +zoomed + ? " *ZOOMED* " : "" )); + +96 + `´štf +( "top†eft (%d,%d)", + +97 +wšp +-> +»ù +. +Ëá_x +, + +98 +wšp +-> +»ù +. +tÝ_y +); + +100 + `´štf +( "bottom„ight (%d,%d)", + +101 +wšp +-> +»ù +. +right_x +, + +102 +wšp +-> +»ù +. +bÙtom_y +); + +104 + `´štf +( "center @ (%d,%d)", + +105 +wšp +-> +ûÁ” +. +x +, + +106 +wšp +-> +ûÁ” +. +y +); + +110 + } +} + +114  + $´šfo +Ð +uwšp + ) + +115 +U£rwš + * +uwšp +; + +117 +Tžwš + * +wšp +; + +121 +wšp + = ( +Tžwš + *)( +uwšp +->winp); + +123 + `´štf +( " size: [%d,%d]", + +124 +wšp +-> +size +. +width +, + +125 +wšp +-> +size +. +height +); + +127 + `´štf +( " max: [%d,%d]", + +128 +wšp +-> +max_size +. +width +, + +129 +wšp +-> +max_size +. +height +); + +132 + `´štf +( " min: [%d,%d]", + +133 +wšp +-> +mš_size +. +width +, + +134 +wšp +-> +mš_size +. +height +); + +136 + `´štf +( " desire: [%d,%d]", + +137 +wšp +-> +desœed_size +. +width +, + +138 +wšp +-> +desœed_size +. +height +); + +141 iàÐ +uwšp +-> +zoomed +) + +143 + `´štf +( "„egular_min: [%d,%d]", + +144 +uwšp +-> +»guÏr_mš +. +width +, + +145 +uwšp +-> +»guÏr_mš +. +height +); + +147 + `´štf +( " desire: [%d,%d]", + +148 +uwšp +-> +»guÏr_size +. +width +, + +149 +uwšp +-> +»guÏr_size +. +height +); + +153 + `´štf +( " Zoom min: [%d,%d]", + +154 +uwšp +-> +zoom_mš +. +width +, + +155 +uwšp +-> +zoom_mš +. +height +); + +157 + `´štf +( " desire: [%d,%d]", + +158 +uwšp +-> +zoom_size +. +width +, + +159 +uwšp +-> +zoom_size +. +height +); + +163 + } +} + +167  + $´u +Ð +uwšp + ) + +168 +U£rwš + * +uwšp +; + +170 + `´t™Ë +Ð +uwšp + ); + +171 iàÐ +uwšp +-> +wšp + =ð +WIN_NULL + ) + +172 + `´icÚ +Ð +uwšp + ); + +173 iàÐ + `Tžwš_Is_O³n +Ð +uwšp +-> +wšp + ) ) + +175 + `´wš +Ð +uwšp + ); + +176 + `´šfo +Ð +uwšp + ); + +177 + `´icÚ +Ð +uwšp + ); + +181 + `´icÚ +Ð +uwšp + ); + +182 + `´wš +Ð +uwšp + ); + +183 + `´šfo +Ð +uwšp + ); + +186 + } +} + +190  + $´w +Ð +wšp + ) + +191 +Tžwšp + +wšp +; + +193  + `´u +Ð + `U£rwš_G‘ +( +wšp +) ); + +194 + } +} + +198  + $´n +Ð +num + ) + +200 +Tžwšp + +wšp +; + +201 +WšpHªdË + +hªdË +; + +205 +hªdË + = + `S‹_G’”©e_Clo£d_Wšdows +(); + +206  ( +wšp + = ( +Tžwšp +) + `S‹_CÛrû +( +hªdË +)è!ð +WIN_NULL + ) + +208 iàÐ + `U£rwš_G‘ +( +wšp +)-> +wšnum + =ð +num + ) + +210 + `´w +( +wšp +); + +213 + `S‹_Next_Wšdow +(& +hªdË +); + +216 + `´štf +( "No such‚umber..." ); + +220 + } +} + +224  + $´o +() + +226 +Tžwšp + +wšp +; + +227 +WšpHªdË + +hªdË +; + +228 +U£rwš + * +uwšp +; + +229 +hªdË + = + `S‹_G’”©e_O³n_Wšdows +(); + +230  ( +wšp + = ( +Tžwšp +) + `S‹_CÛrû +( +hªdË +)è!ð +WIN_NULL + ) + +232 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +233 iàÐ +uwšp +-> +wšp + == winp ) + +235 + `´t™Ë +Ð +uwšp + ); + +236 + `´wš +Ð +uwšp + ); + +237 + `´šfo +Ð +uwšp + ); + +239 + `S‹_Next_Wšdow +(& +hªdË +); + +242 + } +} + +246  + $´i +() + +248 +Tžwšp + +wšp +; + +249 +WšpHªdË + +hªdË +; + +250 +U£rwš + * +uwšp +; + +251 +hªdË + = + `S‹_G’”©e_O³n_Wšdows +(); + +252  ( +wšp + = ( +Tžwšp +) + `S‹_CÛrû +( +hªdË +)è!ð +WIN_NULL + ) + +254 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +255 iàÐ +uwšp +-> +icÚp + =ð +wšp + ) + +257 + `´t™Ë +Ð +uwšp + ); + +258 + `´icÚ +Ð +uwšp + ); + +260 + `S‹_Next_Wšdow +(& +hªdË +); + +263 + } +} + +267  + $´c +() + +269 +Tžwšp + +wšp +; + +270 +WšpHªdË + +hªdË +; + +271 +U£rwš + * +uwšp +; + +272 +hªdË + = + `S‹_G’”©e_Clo£d_Wšdows +(); + +273  ( +wšp + = ( +Tžwšp +) + `S‹_CÛrû +( +hªdË +)è!ð +WIN_NULL + ) + +275 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +276 iàÐ +uwšp +-> +wšp + == winp ) + +278 + `´t™Ë +Ð +uwšp + ); + +279 + `´icÚ +Ð +uwšp + ); + +281 + `S‹_Next_Wšdow +(& +hªdË +); + +284 + } +} + + @draw.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "%W% %H%"; + +27  + ~"cÝyright.h +" + +29  + ~<¡dio.h +> + +31  + ~"ba£ty³.h +" + +32  + ~"u£rglobD.h +" + +33  + ~"uwšXD.h +" + +35  + ~ + +36  + ~ + +37  + ~"xio.h +" + +38  + ~"tžeü¤.h +" + +39  + ~"icÚs/background.h +" + +41  + #XBORDERWIDTH + 0 + + ) + +46 + $D¿w_In™ +() + +48 + } +} + +54  +Wšdow + + +55 + $D¿w_C»©e_DecÜ©iÚ +( +·»Á +) + +56 +Wšdow + +·»Á +; + +58 +XS‘WšdowA‰ribu‹s + +©Œs +; + +63 +©Œs +. +ev’t_mask + = +Bu‰ÚP»ssMask + | +Bu‰ÚR–—£Mask + | + +64 +KeyP»ssMask + | +EÁ”WšdowMask +; + +69  + `XC»©eWšdow +( +dpy +, +·»Á +, + +73 0, +IÅutOÆy +, + +74 + `DeçuÉVisu® +( +dpy +, +sün +), +CWEv’tMask +, + +75 & +©Œs +); + +76 + } +} + +87 + $D¿w_C»©e +( +uwšp +) + +88 +U£rwš + * +uwšp +; + +90 +Wšdow + +·»Á +; + +91  +vmask +; + +92 +XS‘WšdowA‰ribu‹s + +©Œs +; + +97 +vmask + = +CWBackPix– + | +CWDÚtPrÝag©e +; + +99 +©Œs +. +background_pix– + = + `Wh™ePix– +( +dpy +, +sün +); + +100 +©Œs +. +do_nÙ_´Ýag©e_mask + = +Sub¡ruùu»RedœeùMask + | + +101 +Sub¡ruùu»NÙifyMask +; + +103 +·»Á + = + `U£rwš_XP¬’tWš +( +uwšp +) = + +104 + `XC»©eWšdow +( +dpy +, +roÙ +, + +107 +XBORDERWIDTH +, + +108 + `DeçuÉD•th +( +dpy +, +sün +), (è +CÝyFromP¬’t +, + +109 + `DeçuÉVisu® +( +dpy +, +sün +), +vmask +, & +©Œs +); + +112 + `XLow”Wšdow +( +dpy +, + `U£rwš_XP¬’tWš +( +uwšp +)); + +116 + `U£rwš_XTÝBÜd” +( +uwšp +èð + `D¿w_C»©e_DecÜ©iÚ +( +·»Á +); + +117 + `XDefšeCursÜ +( +dpy +, + `U£rwš_XTÝBÜd” +( +uwšp +), ( +CursÜ +è +tÝ_tžecursÜ +); + +119 + `U£rwš_XLeáBÜd” +( +uwšp +èð + `D¿w_C»©e_DecÜ©iÚ +( +·»Á +); + +120 + `XDefšeCursÜ +( +dpy +, + `U£rwš_XLeáBÜd” +( +uwšp +), ( +CursÜ +) + +121 +Ëá_tžecursÜ +); + +123 + `U£rwš_XRightBÜd” +( +uwšp +èð + `D¿w_C»©e_DecÜ©iÚ +( +·»Á +); + +124 + `XDefšeCursÜ +( +dpy +, + `U£rwš_XRightBÜd” +( +uwšp +), ( +CursÜ +è +right_tžecursÜ +); + +126 + `U£rwš_XBÙtomBÜd” +( +uwšp +èð + `D¿w_C»©e_DecÜ©iÚ +( +·»Á +); + +127 + `XDefšeCursÜ +( +dpy +, + `U£rwš_XBÙtomBÜd” +( +uwšp +), ( +CursÜ +è +bÙtom_tžecursÜ +); + +129 + `U£rwš_XTÝLeáCÜÃr +( +uwšp +èð + `D¿w_C»©e_DecÜ©iÚ +( +·»Á +); + +130 + `XDefšeCursÜ +( +dpy +, + `U£rwš_XTÝLeáCÜÃr +( +uwšp +), + +131 ( +CursÜ +è +tÝ_Ëá_tžecursÜ +); + +133 + `U£rwš_XTÝRightCÜÃr +( +uwšp +èð + `D¿w_C»©e_DecÜ©iÚ +( +·»Á +); + +134 + `XDefšeCursÜ +( +dpy +, + `U£rwš_XTÝRightCÜÃr +( +uwšp +), + +135 ( +CursÜ +è +tÝ_right_tžecursÜ +); + +137 + `U£rwš_XBÙtomLeáCÜÃr +( +uwšp +èð + `D¿w_C»©e_DecÜ©iÚ +( +·»Á +); + +138 + `XDefšeCursÜ +( +dpy +, + `U£rwš_XBÙtomLeáCÜÃr +( +uwšp +), + +139 ( +CursÜ +è +bÙtom_Ëá_tžecursÜ +); + +141 + `U£rwš_XBÙtomRightCÜÃr +( +uwšp +èð + `D¿w_C»©e_DecÜ©iÚ +( +·»Á +); + +142 + `XDefšeCursÜ +( +dpy +, + `U£rwš_XBÙtomRightCÜÃr +( +uwšp +), + +143 ( +CursÜ +è +bÙtom_right_tžecursÜ +); + +145 + `U£rwš_XH—d” +( +uwšp +èð + `D¿w_C»©e_DecÜ©iÚ +( +·»Á +); + +146 + `XDefšeCursÜ +( +dpy +, + `U£rwš_XH—d” +( +uwšp +), ( +CursÜ +è +h—d”_tžecursÜ +); + +148 + `U£rwš_XZoomGadg‘ +( +uwšp +èð + `D¿w_C»©e_DecÜ©iÚ +( +·»Á +); + +149 + `XDefšeCursÜ +( +dpy +, + `U£rwš_XZoomGadg‘ +( +uwšp +), + +150 ( +CursÜ +è +zoom_gadg‘_tžecursÜ +); + +152 + `U£rwš_XMoveGadg‘ +( +uwšp +èð + `D¿w_C»©e_DecÜ©iÚ +( +·»Á +); + +153 + `XDefšeCursÜ +( +dpy +, + `U£rwš_XMoveGadg‘ +( +uwšp +), + +154 ( +CursÜ +è +move_gadg‘_tžecursÜ +); + +156 + } +} + +163 + $D¿w_CÚfigWš +( +wš +, +Ëá_x +, +tÝ_y +, +width +, +height +) + +164 +Wšdow + +wš +; + +165  +Ëá_x +, +tÝ_y +; + +166  +width +, +height +; + +168 +XWšdowChªges + +wc +; + +169  +wcmask +; + +172 +wc +. +x + = +Ëá_x +; + +173 +wc +. +y + = +tÝ_y +; + +174 +wc +. +width + = width; + +175 +wc +. +height + = height; + +176 +wcmask + = +CWX + | +CWY + | +CWWidth + | +CWHeight +; + +178 + `XCÚfigu»Wšdow +( +dpy +, +wš +, +wcmask +, & +wc +); + +180 + `XM­Wšdow +( +dpy +, +wš +); + +181 + } +} + +190 + $D¿w_FÏsh +() + +192 + `XB–l +( +dpy +,0); + +193 + } +} + +199 + $D¿w_FÚt_Height +( +id +) + +200  +id +; + +204 + } +} + +214 + $D¿w_Num_D¿wabËs +( +s +, +fÚ +, +width +, +max_ch¬s +) + +215 * +s +; + +216 +XFÚtSŒuù + * +fÚ +; + +217  +width +; + +218  +max_ch¬s +; + +220  +ndc +, + +221 +nc +; + +224  +nc + = 0; * +s +; s++,‚c++) + +232 +ndc + = +width + / +fÚ +-> +max_bounds +.width; + +234 ià( +nc + < +ndc +) + +236 +ndc + = +nc +; + +246  ( ( +max_ch¬s + < +ndc +) ? max_chars :‚dc ); + +247 + } +} + +252  + $D¿w_G‘_F¿me_Width +() + +255 + } +} + +260  + $D¿w_G‘_F¿me_Height +() + +263 + } +} + +273 + $D¿w_Background_ReùªgË +Ð +x0 +, +y0 +, +x1 +, +y1 + ) + +274  +x0 +, +y0 +, +x1 +, +y1 +; + +276 +XS‘WšdowA‰ribu‹s + +xswa +; + +277 +Visu® + +visu® +; + +278 +Wšdow + +wš +; + +281 +xswa +. +background_pix– + = + `Wh™ePix– +( +dpy +, +sün +); + +282 +xswa +. +ov”ride_»dœeù + = +True +; + +283 +visu® +. +visu®id + = +CÝyFromP¬’t +; + +285 +wš + = + `XC»©eWšdow +( +dpy +, + `DeçuÉRoÙWšdow +(dpy), + +286 +x0 +, +y0 +, + +287 (è( +x1 + - +x0 + + 1), + +288 (è( +y1 + - +y0 + + 1), + +289 0, + `DeçuÉD•th +( +dpy +, +sün +), + +290 +IÅutOuut +, & +visu® +, + +291 +CWBackPix– + | +CWOv”rideRedœeù +, & +xswa +); + +293 + `XM­Wšdow +( +dpy +, +wš +); + +294 + `XDe¡royWšdow +( +dpy +, +wš +); + +297 + } +} + +303 + $D¿w_S‘_Background +() + +305 + } +} + +311 + $D¿w_Re£t_Background +() + +313 + } +} + +320 + $D¿w_S‘_Mou£_CÚŒÞ +( +acûl +, +th»s +) + +323 + } +} + + @draw.h + +29 #iâdeà +DRAW + + +30  + ~"d¿wP.h +" + +33  +D¿w_In™ +(); + +35  +D¿w_C»©e +(); + +39  +D¿w_CÚfigWš +(); + +45  +D¿w_S¹ +(); + +48  +D¿w_Fšish +(); + +50  +D¿w_FÏsh +(); + +52  +D¿w_Lše +(); + +55  +D¿w_HÜizÚl +(); + +58  +D¿w_V”tiÿl +(); + +61  +D¿w_XÜ_Lše +(); + +64  +D¿w_XÜ_HÜizÚl +(); + +67  +D¿w_XÜ_V”tiÿl +(); + +70  +D¿w_Cˬ_ReùªgË +(); + +72  +D¿w_Background_ReùªgË +(); + +74  +D¿w_Fžl_ReùªgË +(); + +76  +D¿w_Fžl_XÜ_ReùªgË +(); + +79  +D¿w_ReùªgË +(); + +82  +D¿w_XÜ_ReùªgË +(); + +85  +D¿w_Pix»ù +(); + +88  +D¿w_O³n +(); + +91  +D¿w_FÚt_Height +(); + +94  +D¿w_Num_D¿wabËs +(); + +97  +D¿w_C’‹»d_SŒšg +(); + +100  +D¿w_V”t_C’‹»d_SŒšg +(); + +103  +D¿w_G‘_F¿me_Width +(); + +105  +D¿w_G‘_F¿me_Height +(); + + @drawP.h + +31 #iâdeà +DRAW + + +32  + #DRAW + + + ) + +35  +poš‹r + + tD¿wRegiÚ +; + + @drawicon.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "%W% %H%"; + +27  + ~"cÝyright.h +" + +29  + ~<¡dio.h +> + +30  + ~<¡dlib.h +> + +31  + ~"ba£ty³.h +" + +32  + ~"u£rglobD.h +" + +33  + ~"uwšD.h +" + +34  + ~"uwšXD.h +" + +36  + ~ + +37  + ~ + +38  + ~"xio.h +" + +39  + ~"tžeü¤.h +" + +40  + ~"assoc.h +" + +42  + #ICONFONT + "6x12" + + ) + +45  +XFÚtSŒuù + * + gifÚ +; + +47 +GC + + +48 +fžlGC +, +þ—rGC +, +xÜGC +, +šv”t_body_GC +; + +49 +Pixm­ + + +50 +icÚäame +; + +56 + $D¿wIcÚ_In™ +() + +59 + `IcÚs_Lßd +(); + +61 iàÐ( +ifÚ + = + `XLßdQu”yFÚt +( +dpy +, +ICONFONT +)è=ð( +XFÚtSŒuù + *è +NULL + ) + +63 + `årštf +( +¡d”r +, "DrawIcon_Init: cannot†oad font <%s>!\n", + +64 +ICONFONT +); + +67 + } +} + +76 + $D¿wIcÚ_C»©e +Ð +uwšp + ) + +77 +U£rwš + * +uwšp +; + +79  +vmask +; + +80 +XS‘WšdowA‰ribu‹s + +©Œs +; + +81 +TWReùªgË + +»ù +; + +82  +width +, +height +; + +85 +»ù + = + `Tžwš_G‘_ReùªgË +Ð +uwšp +-> +icÚp + ); + +86 +width + = +»ù +. +right_x + -„eù. +Ëá_x + + 1; + +87 +height + = +»ù +. +bÙtom_y + -„eù. +tÝ_y + + 1; + +90 +vmask + = +CWEv’tMask + | +CWBackPix– +; + +92 +©Œs +. +ev’t_mask + = +Bu‰ÚP»ssMask + | +Bu‰ÚR–—£Mask + | + +93 +KeyP»ssMask + | +L—veWšdowMask + | +EÁ”WšdowMask + | +Exposu»Mask +; + +95 +©Œs +. +background_pix– + = + `Wh™ePix– +( +dpy +, +sün +); + +97 + `U£rwš_XIcÚ +( +uwšp +) = + +98 + `XC»©eWšdow +( +dpy +, +roÙ +, + +100 (è +width +, (è +height +, + +102 + `DeçuÉD•th +( +dpy +, +sün +), (è +CÝyFromP¬’t +, + +103 + `DeçuÉVisu® +( +dpy +, +sün +), +vmask +, & +©Œs +); + +105 + `XDefšeCursÜ +( +dpy +, + `U£rwš_XIcÚ +( +uwšp +), +icÚ_tžecursÜ +); + +108 + `XLow”Wšdow +( +dpy +, + `U£rwš_XIcÚ +( +uwšp +)); + +109 + } +} + +115  + $D¿wIcÚ_De¡roy +Ð +uwšp + ) + +116 +U£rwš + * +uwšp +; + +118 + `Assoc_Remove +( + `U£rwš_XIcÚ +( +uwšp +)); + +120 + `XDe¡royWšdow +( +dpy +, + `U£rwš_XIcÚ +( +uwšp +)); + +121 + } +} + +126  + $D¿wIcÚ_In™_RŽ +Ð +uwšp + ) + +127 +U£rwš + * +uwšp +; + +130 + `D¿wIcÚ_C»©e +( +uwšp +); + +132 + `U£rwš_XP¬’tWš +( +uwšp +èð +NÚe +; + +133 + `U£rwš_XCl›Á +( +uwšp +èð +NÚe +; + +135 + `Assoc_Put +((*è +uwšp +, + `U£rwš_XIcÚ +(uwinp)); + +137 + `IcÚs_S‘_RŽ_IcÚ +( +uwšp +); + +139 +uwšp +-> +ouut_£Á + = +FALSE +; + +141 + `U£rwš_S‘_Wšdow_O±iÚ +Ð +uwšp +, +CLIENT_DRAWS_ICON +, +FALSE + ); + +142 + `U£rwš_S‘_Wšdow_O±iÚ +Ð +uwšp +, + +143 +INCLUDE_TITLE_IN_PIXMAP_ICON +, +FALSE + ); + +144 + } +} + +154 + $D¿wIcÚ_D¿w_SŒšg +( +icÚ +, +»ù +, +off£t +, +s +) + +155 +Wšdow + +icÚ +; + +156 +TWReùªgË + +»ù +; + +157 +TWReùªgË + +off£t +; + +158 * +s +; + +160  +x0 +, +y0 +, +x1 +, +y1 +; + +161  +¡rs +[16][16]; + +162  +žš +, +Æš +, +ich¬ +, +nch¬ +; + +163  +height +; + +166 ià( +ifÚ + =ð( +XFÚtSŒuù + *è +NULL +) + +169 +x0 + = +ifÚ +-> +max_bounds +. +width +; + +170 +y0 + = +height + = +ifÚ +-> +max_bounds +. +asûÁ + + ifÚ->max_bounds. +desûÁ +; + +172 +x1 + = +x0 + + +off£t +. +right_x +; + +173 +x0 + +ð +off£t +. +Ëá_x +; + +174 +y1 + = +y0 + + +off£t +. +bÙtom_y +; + +175 +y0 + +ð +off£t +. +tÝ_y +; + +177 +Æš + = ( +y1 + - +y0 + + 1 ) / (1 + +height +); + +179 iàÐ +Æš + > 0 ) + +180 +Æš +--; + +181 +žš + = 0; + +183  +žš + <ð +Æš + ) + +185  * +s + == ' ' ) + +186 +s +++; + +187 iàÐ* +s + == 0 ) ; + +189 +ich¬ + = +nch¬ + = + `D¿w_Num_D¿wabËs +( +s +, +ifÚ +, +x1 + - +x0 + + 1, 1000); + +190 iàÐ +nch¬ + == 0 ) ; + +192 iàÐ( +s +[ +nch¬ +] !ð0è&& ( +žš + < +Æš + ) ) + +193  ( +ich¬ + >ð0è&& ( +s +[ichar] != ' ') && (s[ichar] != '/') ) + +194 +ich¬ +--; + +195 +ich¬ +--; + +196 iàÐ +ich¬ + < 0 ) + +197 +ich¬ + = +nch¬ + - 1; + +199  +s +[ +ich¬ +] == ' ' ) + +200 +ich¬ +--; + +202 (è + `¡ºýy +Ð +¡rs +[ +žš +], +s +, +ich¬ + + 1 ); + +203 +¡rs +[ +žš +][ +ich¬ ++1] = 0; + +204 +žš +++; + +206 +s + = &s[ +ich¬ ++1]; + +209 +Æš + = +žš +; + +211  +žš + = 0; ilš < +Æš +; ilin++ ) + +213 + `XD¿wSŒšg +( +dpy +, +icÚ +, +fžlGC +, + +214 +x0 +, +y0 + + ( ( +žš + * ( +y1 + - y0 + 1èè/ +Æš + ), + +215 +¡rs +[ +žš +], + +216 + `¡¾’ +( +¡rs +[ +žš +])); + +218 + } +} + +224 + $D¿wIcÚ_D¿w_Info +Ð +uwšp + ) + +225 +U£rwš + * +uwšp +; + +227 * +¡r +; + +228  +¡rsiz + = 1; + +229 +boÞ + +has_þass +, +has_Çme +; + +231 +has_þass + = ( +uwšp +-> +»s_þass + !ð +NULL +) && + +232 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, + +233 +INCLUDE_RES_CLASS_IN_ICON_TITLE + ); + +235 +has_Çme + = ( +uwšp +-> +»s_Çme + !ð +NULL +) && + +236 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, + +237 +INCLUDE_RES_NAME_IN_ICON_TITLE + ); + +239 iàÐ +has_þass + || +has_Çme + ) + +241 iàÐ +has_þass + ) + +242 +¡rsiz + +ð + `¡¾’ +( +uwšp +-> +»s_þass +); + +244 iàÐ +has_þass + && +has_Çme + ) + +245 +¡rsiz + +=1; + +247 iàÐ +has_Çme + ) + +248 +¡rsiz + +ð + `¡¾’ +( +uwšp +-> +»s_Çme +); + +250 +¡r + = + `®loÿ‹ +Ð, +¡rsiz + ); + +251 +¡r +[0] = '\0'; + +253 iàÐ +has_þass + ) + +254 () + `¡rÿt +Ð +¡r +, +uwšp +-> +»s_þass + ); + +256 iàÐ +has_þass + && +has_Çme + ) + +257 () + `¡rÿt +Ð +¡r +, ":" ); + +259 iàÐ +has_Çme + ) + +260 () + `¡rÿt +Ð +¡r +, +uwšp +-> +»s_Çme + ); + +262 + `D¿wIcÚ_D¿w_SŒšg +( + `U£rwš_XIcÚ +( +uwšp +), + +263 + `Tžwš_G‘_ReùªgË +Ð +uwšp +-> +icÚp + ), + +264 +uwšp +-> +icÚ_»s_»ù +, + +265 +¡r +); + +266 + `ä“ +Ð +¡r + ); + +270 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, + +271 +INCLUDE_HOST_IN_ICON_TITLE + ) && + +272 ( +uwšp +-> +ho¡Çme + !ð +NULL +) ) + +273 + `D¿wIcÚ_D¿w_SŒšg +( + `U£rwš_XIcÚ +( +uwšp +), + +274 + `Tžwš_G‘_ReùªgË +Ð +uwšp +-> +icÚp + ), + +275 +uwšp +-> +icÚ_ho¡_»ù +, + +276 +uwšp +-> +ho¡Çme +); + +278 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, + +279 +INCLUDE_NAME_IN_ICON_TITLE + ) ) + +281 ià( +uwšp +-> +icÚÇme + !ð +NULL +) + +282 + `D¿wIcÚ_D¿w_SŒšg +( + `U£rwš_XIcÚ +( +uwšp +), + +283 + `Tžwš_G‘_ReùªgË +Ð +uwšp +-> +icÚp + ), + +284 +uwšp +-> +icÚ_Çme_»ù +, + +285 +uwšp +-> +icÚÇme +); + +287 ià( +uwšp +-> +wmÇme + !ð +NULL +) + +288 + `D¿wIcÚ_D¿w_SŒšg +( + `U£rwš_XIcÚ +( +uwšp +), + +289 + `Tžwš_G‘_ReùªgË +Ð +uwšp +-> +icÚp + ), + +290 +uwšp +-> +icÚ_Çme_»ù +, + +291 +uwšp +-> +wmÇme +); + +293 + } +} + +299 + $D¿wIcÚ_Di¥Ïy +Ð +uwšp + ) + +300 +U£rwš + * +uwšp +; + +302 +TWReùªgË + +»ù +; + +303  +width +, +height +; + +304 +GC + +gc +; + +306 +»ù + = + `Tžwš_G‘_ReùªgË +Ð +uwšp +-> +icÚp + ); + +307 +width + = +»ù +. +right_x + -„eù. +Ëá_x + + 1; + +308 +height + = +»ù +. +bÙtom_y + -„eù. +tÝ_y + + 1; + +310 + `XCˬWšdow +( +dpy +, +uwšp +-> +xäame +. +icÚ +); + +312 +gc + = + `DeçuÉGC +( +dpy +, +sün +); + +316 + `XFžlReùªgË +( +dpy +, +uwšp +-> +xäame +. +icÚ +, +šv”t_body_GC +, + +317 0, 0, +width +, +height +); + +318 + `XFlush +( +dpy +); + +319 + `XFžlReùªgË +( +dpy +, +uwšp +-> +xäame +. +icÚ +, +šv”t_body_GC +, + +320 1, 1, +width +-2, +height +-2); + +323 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +CLIENT_DRAWS_ICON + ) ) + +325 iàÐ +uwšp +-> +icÚpix + !ð +NÚe + ) + +326 + `XCÝyPÏà +( +dpy +, +uwšp +-> +icÚpix +, + +327 +uwšp +-> +xäame +. +icÚ +, + +328 +gc +, 1, 1, +width +-2, +height +-2, 1, 1, + +331 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, + +332 +INCLUDE_TITLE_IN_CLIENT_ICON + ) ) + +333 + `D¿wIcÚ_D¿w_Info +Ð +uwšp + ); + +335 iàÐ( +uwšp +-> +ouut_£Á +è&& (uwšp-> +icÚpix_³ndšg + !ð +NÚe +) ) + +337 + `XCÝyPÏà +( +dpy +, +uwšp +-> +icÚpix_³ndšg +, + +338 +uwšp +-> +xäame +. +icÚ +, + +339 +gc +, 0, 0, +width +, +height +, 0, 0, + +342 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, + +343 +INCLUDE_TITLE_IN_PIXMAP_ICON + ) ) + +344 + `D¿wIcÚ_D¿w_Info +Ð +uwšp + ); + +348 iàÐ +uwšp +-> +icÚpix + !ð +NÚe + ) + +349 + `XCÝyPÏà +( +dpy +, +uwšp +-> +icÚpix +, + +350 +uwšp +-> +xäame +. +icÚ +, + +351 +gc +, 1, 1, +width +-2, +height +-2, 1, 1, + +354 iàÐ +uwšp +-> +ouut_£Á + && + +355 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +INVERT_ICON_WHEN_PENDING + ) ) + +356 + `XFžlReùªgË +( +dpy +, +uwšp +-> +xäame +. +icÚ +, +šv”t_body_GC +, + +357 0, 0, +width +, +height +); + +359 iàÐÐ +uwšp +-> +icÚpix + =ð +NÚe + ) || + +360 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, + +361 +INCLUDE_TITLE_IN_PIXMAP_ICON + ) ) + +362 + `D¿wIcÚ_D¿w_Info +Ð +uwšp + ); + +364 + } +} + +369  + $D¿wIcÚ_Move_Clo£ +Ð +uwšp + ) + +370 +U£rwš + * +uwšp +; + +374 + } +} + +378  + $D¿wIcÚ_Clo£ +Ð +uwšp + ) + +379 +U£rwš + * +uwšp +; + +382 + `XUnm­Wšdow +( +dpy +, + `U£rwš_XIcÚ +( +uwšp +)); + +384 + } +} + +389  + $D¿wIcÚ_Move_O³n +Ð +uwšp + ) + +390 +U£rwš + * +uwšp +; + +392 +TWReùªgË + +»ù +; + +393 +Size + +icÚ_size +; + +394 +XWšdowChªges + +ch +; + +396 +»ù + = + `Tžwš_G‘_ReùªgË +( +uwšp +-> +icÚp +); + +397 +ch +. +x + = + `G‘_LeáX +( +»ù +); + +398 +ch +. +y + = + `G‘_TÝY +( +»ù +); + +400 +icÚ_size + = + `Tžwš_G‘_Size +( +uwšp +-> +icÚp +); + +401 +ch +. +width + = + `G‘_Width +( +icÚ_size +); + +402 +ch +. +height + = + `G‘_Height +( +icÚ_size +); + +404 + `XCÚfigu»Wšdow +( +dpy +, + `U£rwš_XIcÚ +( +uwšp +), + +405 ()( +CWX + | +CWY + | +CWWidth + | +CWHeight +), + +406 & +ch +); + +408 + `XM­Wšdow +( +dpy +, + `U£rwš_XIcÚ +( +uwšp +)); + +409 + } +} + +414  + $D¿wIcÚ_O³n +( +uwšp +) + +415 +U£rwš + * +uwšp +; + +417 + `D¿wIcÚ_Move_O³n +( +uwšp +); + +418 + } +} + +424  + $D¿wIcÚ_D¿w +Ð +uwšp + ) + +425 +U£rwš + * +uwšp +; + +428 + } +} + +433  + $D¿wIcÚ_Red¿w +Ð +uwšp + ) + +434 +U£rwš + * +uwšp +; + +437 + `D¿wIcÚ_Di¥Ïy +Ð +uwšp + ); + +438 + } +} + +444 + $D¿wIcÚ_R‘™Ë +Ð +uwšp + ) + +445 +U£rwš + * +uwšp +; + +448 + `D¿wIcÚ_Di¥Ïy +Ð +uwšp + ); + +449 + } +} + +455  + $D¿wIcÚ_NÙe_Ouut +Ð +uwšp + ) + +456 +U£rwš + * +uwšp +; + +459 + `D¿wIcÚ_Di¥Ïy +Ð +uwšp + ); + +460 + } +} + +465  + $D¿wIcÚ_Show_Movšg +Ð +uwšp + ) + +466 +U£rwš + * +uwšp +; + +468 +TWReùªgË + +»ù +; + +469  +width +, +height +; + +472 +»ù + = + `Tžwš_G‘_ReùªgË +Ð +uwšp +-> +icÚp + ); + +473 +width + = +»ù +. +right_x + -„eù. +Ëá_x + + 1; + +474 +height + = +»ù +. +bÙtom_y + -„eù. +tÝ_y + + 1; + +476 + `XFžlReùªgË +( +dpy +, +uwšp +-> +xäame +. +icÚ +, +šv”t_body_GC +, + +477 0, 0, +width +, +height +); + +478 + } +} + +484  + $D¿wIcÚ_Unshow_Movšg +Ð +uwšp + ) + +485 +U£rwš + * +uwšp +; + +487 + `D¿wIcÚ_Show_Movšg +Ð +uwšp + ); + +488 + } +} + +492  + $D¿wIcÚ_Show_O³nšg +Ð +uwšp + ) + +493 +U£rwš + * +uwšp +; + +495 + `D¿wIcÚ_Show_Movšg +Ð +uwšp + ); + +496 + } +} + +500  + $D¿wIcÚ_Unshow_O³nšg +Ð +uwšp + ) + +501 +U£rwš + * +uwšp +; + +503 + `D¿wIcÚ_Unshow_Movšg +Ð +uwšp + ); + +504 + } +} + +508  + gÞd_x0 +, + gÞd_y0 +, + gÞd_x1 +, + gÞd_y1 +; + +511  + $D¿wIcÚ_C®c_Move_Reù +Ð +uwšp +, +pos +, +siz + ) + +512 +U£rwš + * +uwšp +; + +513 +TWPošt + +pos +; + +514 +Size + +siz +; + +516  +xdif +, +ydif +; + +519 +xdif + = +siz +. +width +/2; + +520 +ydif + = +siz +. +height +/2; + +522 +Þd_x0 + = +pos +. +x + - +xdif + + 1; + +523 +Þd_y0 + = +pos +. +y + - +ydif + + 1; + +524 +Þd_x1 + = +pos +. +x + + +xdif +; + +525 +Þd_y1 + = +pos +. +y + + +ydif +; + +526 + } +} + +531  + $D¿wIcÚ_Good_Move_Box +Ð +uwšp +, +pos +, +siz + ) + +532 +U£rwš + * +uwšp +; + +533 +TWPošt + +pos +; + +534 +Size + +siz +; + +537 + `D¿wIcÚ_C®c_Move_Reù +( +uwšp +, +pos +, +siz +); + +539 + `D¿wwš_D¿w_Box +Ð +Þd_x0 +, +Þd_y0 +, +Þd_x1 +, +Þd_y1 +, + +540 + `U£rGlob®s_G‘_O±iÚ +( +DRAW_X_ON_MOVE +) ); + +541 + } +} + +545  + $D¿wIcÚ_Bad_Move_Box +Ð +uwšp +, +pos +, +siz + ) + +546 +U£rwš + * +uwšp +; + +547 +TWPošt + +pos +; + +548 +Size + +siz +; + +551 + `D¿wIcÚ_Good_Move_Box +( +uwšp +, +pos +, +siz +); + +552 + } +} + +556  + $D¿wIcÚ_Undo_Move_Box +() + +559 + `D¿wwš_D¿w_Box +Ð +Þd_x0 +, +Þd_y0 +, +Þd_x1 +, +Þd_y1 +, + +560 + `U£rGlob®s_G‘_O±iÚ +( +DRAW_X_ON_MOVE +) ); + +561 + } +} + + @drawicon.h + +30 #iâdeà +BASETYPE + + +31  + ~"ba£ty³.h +" + +34  +D¿wIcÚ_In™ +(); + +36  +D¿wIcÚ_FÏsh +(); + +38  +D¿wIcÚ_In™_RŽ +(); + +41  +D¿wIcÚ_In™Ÿl_Size +(); + +44  +D¿wIcÚ_C»©e +(); + +47  +D¿wIcÚ_De¡roy +(); + +50  +D¿wIcÚ_Clo£ +(); + +53  +D¿wIcÚ_O³n +(); + +56  +D¿wIcÚ_Move_O³n +(); + +59  +D¿wIcÚ_Move_Clo£ +(); + +62  +D¿wIcÚ_Red¿w +(); + +65  +D¿wIcÚ_D¿w +(); + +68  +D¿wIcÚ_R‘™Ë +(); + +71  +D¿wIcÚ_NÙe_Ouut +(); + +74  +D¿wIcÚ_Good_Move_Box +(); + +77  +D¿wIcÚ_Bad_Move_Box +(); + +80  +D¿wIcÚ_Undo_Move_Box +(); + +82  +D¿wIcÚ_Show_Movšg +(); + +85  +D¿wIcÚ_Unshow_Movšg +(); + +88  +D¿wIcÚ_Show_O³nšg +(); + +91  +D¿wIcÚ_Unshow_O³nšg +(); + + @drawwin.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "%W% %H%"; + +27  + ~"cÝyright.h +" + +31  + ~"ba£ty³.h +" + +32  + ~"u£rglobD.h +" + +33  + ~"uwšD.h +" + +34  + ~"uwšXD.h +" + +35  + ~"assoc.h +" + +36  + ~"d¿w.h +" + +37  + ~"cÚŒÞ.h +" + +39  + ~ + +40  + ~ + +41  + ~"xio.h +" + +45 +D¿wwš_CÚfig_BÜd”s +(), +D¿wwš_D¿w_BÜd”s +(), +D¿wwš_Remove_BÜd”s +(), + +46 +D¿wwš_CÚfig_H—d” +(), +D¿wwš_D¿w_H—d” +(), +D¿wwš_Remove_H—d” +(), + +47 +D¿wwš_CÚfig_Gadg‘s +(), +D¿wwš_D¿w_Gadg‘s +(), +D¿wwš_Remove_Gadg‘s +(); + +49 +GC + + +50 +fžlGC +, +þ—rGC +, +xÜGC +, +šv”t_body_GC +; + +55  + $D¿wwš_FÏsh +() + +57 + `D¿w_FÏsh +(); + +58 + } +} + +66 + $D¿wwš_De¡roy +( +uwšp +) + +67 +U£rwš + * +uwšp +; + +70 + `Assoc_RemoveDecÜ©iÚs +( +uwšp +); + +71 + `CÚŒÞ_De¡roy +( +uwšp +); + +72 + `XDe¡roySubwšdows +( +dpy +, + `U£rwš_XP¬’tWš +( +uwšp +)); + +73 + `XDe¡royWšdow +( +dpy +, + `U£rwš_XP¬’tWš +( +uwšp +)); + +74 + } +} + +79 + $D¿wwš_D¿w_Background +Ð +»ù + ) + +80 +TWReùªgË + +»ù +; + +83 + } +} + +87 +boÞ + + +88 + $D¿wwš_Red¿w_AÎ +Ð +»ù + ) + +89 +TWReùªgË + +»ù +; + +92 + `D¿w_Background_ReùªgË +( +»ù +. +Ëá_x +,„eù. +tÝ_y +, + +93 +»ù +. +right_x +,„eù. +bÙtom_y +); + +95  +TRUE +; + +96 + } +} + +103 + $D¿wwš_C»©e +( +uwšp +) + +104 +U£rwš + * +uwšp +; + +106 + `D¿w_C»©e +( +uwšp +); + +107 + } +} + +114 + $D¿wwš_S¹ +() + +116 + } +} + +123 + $D¿wwš_Fšish +() + +125 + `XFlush +( +dpy +); + +126 + } +} + +131 + $D¿wwš_Di¥Ïy_Focus +Ð +uwšp + ) + +132 +U£rwš + * +uwšp +; + +134  +width +, +height +; + +135 +TWReùªgË + +»ù +; + +138 +»ù + = + `U£rwš_G‘_ReùªgË +( +uwšp +); + +140 +width + = +»ù +. +right_x + -„eù. +Ëá_x + + 1; + +141 +height + = +»ù +. +bÙtom_y + -„eù. +tÝ_y + + 1; + +143 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +SHOW_FOCUS_IN_BORDERS +) ) + +145 ià( + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_BORDERS + ) ) + +146 + `D¿wwš_D¿w_BÜd”s +( +uwšp +, +width +, +height +); + +149 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +SHOW_FOCUS_IN_HEADER +) ) + +151 ià( + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_HEADER + ) ) + +152 + `D¿wwš_D¿w_H—d” +( +uwšp +, +width +, +height +); + +154 + } +} + +159 + $D¿wwš_R‘™Ë +( +uwšp +) + +160 +U£rwš + * +uwšp +; + +162 +TWReùªgË + +»ù +; + +165 +»ù + = + `U£rwš_G‘_ReùªgË +( +uwšp +); + +167 + `D¿wwš_D¿w_H—d” +( +uwšp +, + +168 +»ù +. +right_x + -„eù. +Ëá_x + + 1, + +169 +»ù +. +bÙtom_y + -„eù. +tÝ_y + + 1); + +170 + } +} + +178 + $D¿wwš_Di¥Ïy_W¿µšg +( +uwšp +) + +179 +U£rwš + * +uwšp +; + +181  +width +, +height +; + +182 +TWReùªgË + +tw_»ù +; + +185 +tw_»ù + = + `U£rwš_G‘_ReùªgË +( +uwšp +); + +187 +width + = +tw_»ù +. +right_x + -w_»ù. +Ëá_x + + 1; + +188 +height + = +tw_»ù +. +bÙtom_y + -w_»ù. +tÝ_y + + 1; + +191 ià( + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_BORDERS + )) + +193 + `D¿wwš_D¿w_BÜd”s +( +uwšp +, +width +, +height +); + +196 ià( + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_HEADER + )) + +198 + `D¿wwš_D¿w_H—d” +( +uwšp +, +width +, +height +); + +200 ià( + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_GADGETS + )) + +202 + `D¿wwš_D¿w_Gadg‘s +( +uwšp +, +width +, +height +); + +205 + } +} + +211 + $D¿wwš_CÚfig_W¿µšg +( +uwšp +) + +212 +U£rwš + * +uwšp +; + +214  +Ëá_x +, +tÝ_y +; + +215  +width +, +height +, + +216 +cwidth +, +cheight +; + +217 +TWReùªgË + +tw_»ù +; + +220 +tw_»ù + = + `U£rwš_G‘_ReùªgË +( +uwšp +); + +222 +Ëá_x + = +tÝ_y + = 0; + +223 +cwidth + = +width + = +tw_»ù +. +right_x + -w_»ù. +Ëá_x + + 1; + +224 +cheight + = +height + = +tw_»ù +. +bÙtom_y + -w_»ù. +tÝ_y + + 1; + +227 ià( + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_BORDERS + )) + +229 + `D¿wwš_CÚfig_BÜd”s +( +uwšp +, +width +, +height +); + +231 +Ëá_x + +ð +BORDER_SIZE_VAL +; + +232 +tÝ_y + +ð +BORDER_SIZE_VAL +; + +233 +cwidth + -ð(2 * +BORDER_SIZE_VAL +); + +234 +cheight + -ð(2 * +BORDER_SIZE_VAL +); + +238 + `D¿wwš_Remove_BÜd”s +( +uwšp +); + +242 ià( + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_HEADER + )) + +244 + `D¿wwš_CÚfig_H—d” +( +uwšp +, +width +, +height +); + +246 +tÝ_y + +ð( +uwšp +-> +h—d”_height + + +INNER_BORDER_LINEWIDTH_VAL +); + +247 +cheight + -ð( +uwšp +-> +h—d”_height + + +INNER_BORDER_LINEWIDTH_VAL +); + +250 ià( + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_GADGETS + )) + +252 + `D¿wwš_CÚfig_Gadg‘s +( +uwšp +, +width +, +height +); + +256 + `D¿wwš_Remove_Gadg‘s +( +uwšp +); + +261 + `D¿wwš_Remove_Gadg‘s +( +uwšp +); + +262 + `D¿wwš_Remove_H—d” +( +uwšp +); + +266 + `D¿w_CÚfigWš +( + `U£rwš_XCl›Á +( +uwšp +), + +267 +Ëá_x +, +tÝ_y +, + +268 +cwidth +, +cheight +); + +270 + `D¿w_CÚfigWš +( + `U£rwš_XP¬’tWš +( +uwšp +), + +271 +tw_»ù +. +Ëá_x +,w_»ù. +tÝ_y +, + +272 +width +, +height +); + +273 + } +} + +283 + $D¿wwš_Cl›Á_Pos™iÚ +( +uwšp +, +px +, +py +, +pwd +, +pht +) + +284 +U£rwš + * +uwšp +; + +285 * +px +, * +py +; + +286 * +pwd +, * +pht +; + +288 +TWReùªgË + +»ù +; + +291 +»ù + = + `U£rwš_G‘_ReùªgË +( +uwšp +); + +293 * +pwd + = +»ù +. +right_x + -„eù. +Ëá_x + + 1; + +294 * +pht + = +»ù +. +bÙtom_y + -„eù. +tÝ_y + + 1; + +296 * +px + = * +py + = 0; + +298 ià( + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_BORDERS + )) + +300 * +px + +ð +BORDER_SIZE_VAL +; + +301 * +py + +ð +BORDER_SIZE_VAL +; + +304 ià( + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_HEADER + )) + +306 * +py + +ð( +uwšp +-> +h—d”_height + + +INNER_BORDER_LINEWIDTH_VAL +); + +309 + } +} + +318  + $D¿wwš_Move_Clo£ +Ð +uwšp +, +þ—r + ) + +319 +U£rwš + * +uwšp +; + +320 +boÞ + +þ—r +; + +326 + } +} + +330  + $D¿wwš_Li¡’”_Move_Clo£ +Ð +uwšp +, +þ—r + ) + +331 +U£rwš + * +uwšp +; + +332 +boÞ + +þ—r +; + +334  +g¿b_»suÉ +; + +335  +ev_mask + = +Poš‹rMÙiÚMask + | +Bu‰ÚP»ssMask + | +Bu‰ÚR–—£Mask +; + +337 +g¿b_»suÉ + = + `XG¿bPoš‹r +( +dpy +, +roÙ +, +F®£ +, +ev_mask +, + +338 +G¿bModeAsync +, GrabModeAsync, + +339 + `U£rwš_XCl›Á +( +uwšp +), ( +CursÜ +è +NÚe +, + +340 +Cu¼’tTime +); + +341 + `D¿wwš_Move_Clo£ +Ð +uwšp +, +þ—r + ); + +342 + } +} + +350  + $D¿wwš_Move_O³n +Ð +uwšp + ) + +351 +U£rwš + * +uwšp +; + +353 +TWReùªgË + +wšdow_»ù +; + +354  +Ãw_x +, +Ãw_y +; + +358 +wšdow_»ù + = + `U£rwš_G‘_ReùªgË +( +uwšp +); + +359 +Ãw_x + = + `G‘_LeáX +( +wšdow_»ù +); + +360 +Ãw_y + = + `G‘_TÝY +( +wšdow_»ù +); + +362 iàÐ + `U£rwš_Size_Chªged +( +uwšp +è=ð +FALSE + ) + +365 + `XMoveWšdow +( +dpy +, + `U£rwš_XP¬’tWš +( +uwšp +), +Ãw_x +, +Ãw_y +); + +369 + `D¿wwš_CÚfig_W¿µšg +( +uwšp +); + +377 + } +} + +381  + $D¿wwš_Li¡’”_Move_O³n +Ð +uwšp + ) + +382 +U£rwš + * +uwšp +; + +384 + `D¿wwš_Move_O³n +Ð +uwšp + ); + +385 + `XUng¿bPoš‹r +( +dpy +, +Cu¼’tTime +); + +386 + } +} + +392  + $D¿wwš_Unm­ +( +uwšp +) + +393 +U£rwš + * +uwšp +; + +395 + `XUnm­Subwšdows +( +dpy +, + `U£rwš_XP¬’tWš +( +uwšp +)); + +396 + `XUnm­Wšdow +( +dpy +, + `U£rwš_XP¬’tWš +( +uwšp +)); + +397 + } +} + +408 + $D¿wwš_Clo£ +( +uwšp +, +þ—r +) + +409 +U£rwš + * +uwšp +; + +410 +boÞ + +þ—r +; + +412 + `XLow”Wšdow +( +dpy +, + `U£rwš_XP¬’tWš +( +uwšp +)); + +413 + } +} + +417  + $D¿wwš_O³n +Ð +uwšp + ) + +418 +U£rwš + * +uwšp +; + +420 + `D¿wwš_CÚfig_W¿µšg +( +uwšp +); + +421 + } +} + +426  + $D¿wwš_D¿w +Ð +uwšp + ) + +427 +U£rwš + * +uwšp +; + +429 + } +} + +435  + $D¿wwš_Red¿w +Ð +uwšp + ) + +436 +U£rwš + * +uwšp +; + +438 +TWReùªgË + +»ù +; + +441 +»ù + = + `U£rwš_G‘_ReùªgË +( +uwšp +); + +443 + `D¿w_Background_ReùªgË +( +»ù +. +Ëá_x +,„eù. +tÝ_y +, + +444 +»ù +. +right_x +,„eù. +bÙtom_y +); + +445 + } +} + +451  + $D¿wwš_Show_Movšg +Ð +uwšp + ) + +452 +U£rwš + * +uwšp +; + +454 +Size + +wšdow_size +; + +456 +wšdow_size + = + `U£rwš_G‘_Size +( +uwšp +); + +457 + `XFžlReùªgË +( +dpy +, ( +D¿wabË +è + `U£rwš_XP¬’tWš +( +uwšp +), +šv”t_body_GC +, + +458 0, 0, +wšdow_size +. +width +, wšdow_size. +height +); + +459 + } +} + +466  + $D¿wwš_Unshow_Movšg +Ð +uwšp + ) + +467 +U£rwš + * +uwšp +; + +470 + `D¿wwš_Show_Movšg +Ð +uwšp + ); + +471 + } +} + +475  + gÞd_x0 +, + gÞd_y0 +, + gÞd_x1 +, + gÞd_y1 +; + +478 + $D¿wwš_D¿w_Box +( +x0 +, +y0 +, +x1 +, +y1 +, +d¿w_x +) + +479  +x0 +, +y0 +, +x1 +, +y1 +; + +480 +boÞ + +d¿w_x +; + +482 +XPošt + +pošts +[8]; + +483 +XPošt + * +± + = +pošts +; + +486 +± + -> +x + = +x0 +; + +487 +± +++ -> +y + = +y0 +; + +489 +± + -> +x + = +x1 +; + +490 +± +++ -> +y + = +y0 +; + +492 +± + -> +x + = +x1 +; + +493 +± +++ -> +y + = +y1 +; + +495 +± + -> +x + = +x0 +; + +496 +± +++ -> +y + = +y1 +; + +498 +± + -> +x + = +x0 +; + +499 +± +++ -> +y + = +y0 +; + +502 ià( +d¿w_x + =ð +TRUE +) + +504 +± + -> +x + = +x1 +; + +505 +± +++ -> +y + = +y1 +; + +507 +± + -> +x + = +x0 +; + +508 +± +++ -> +y + = +y1 +; + +510 +± + -> +x + = +x1 +; + +511 +± +++ -> +y + = +y0 +; + +514 + `XD¿wLšes +( +dpy +, +roÙ +, +xÜGC +, +pošts +, +± + -…ošts, +CoÜdModeOrigš +); + +517 +± + = +pošts +; + +519 +± + -> +x + = +x0 + + 1; + +520 +± +++ -> +y + = +y0 + + 1; + +522 +± + -> +x + = +x1 + - 1; + +523 +± +++ -> +y + = +y0 + + 1; + +525 +± + -> +x + = +x1 + - 1; + +526 +± +++ -> +y + = +y1 + - 1; + +528 +± + -> +x + = +x0 + + 1; + +529 +± +++ -> +y + = +y1 + - 1; + +531 +± + -> +x + = +x0 + + 1; + +532 +± +++ -> +y + = +y0 + + 1; + +534 + `XD¿wLšes +( +dpy +, +roÙ +, +xÜGC +, +pošts +, +± + -…ošts, +CoÜdModeOrigš +); + +535 + } +} + +538  + $D¿wwš_Good_O³n_Box +Ð +¡¬t_pos +, +pos + ) + +539 +TWPošt + +¡¬t_pos +; + +540 +TWPošt + +pos +; + +543 +Þd_x0 + = +¡¬t_pos +. +x +; + +544 +Þd_y0 + = +¡¬t_pos +. +y +; + +545 +Þd_x1 + = +pos +. +x +; + +546 +Þd_y1 + = +pos +. +y +; + +548 + `D¿wwš_D¿w_Box +Ð +Þd_x0 +, +Þd_y0 +, +Þd_x1 +, +Þd_y1 +, + +549 + `U£rGlob®s_G‘_O±iÚ +( +DRAW_X_ON_OPEN +) ); + +550 + } +} + +554  + $D¿wwš_Bad_O³n_Box +Ð +¡¬t_pos +, +pos + ) + +555 +TWPošt + +¡¬t_pos +; + +556 +TWPošt + +pos +; + +559 + `D¿wwš_Good_O³n_Box +( +¡¬t_pos +, +pos +); + +560 + } +} + +564  + $D¿wwš_Undo_O³n_Box +() + +567 + `D¿wwš_D¿w_Box +Ð +Þd_x0 +, +Þd_y0 +, +Þd_x1 +, +Þd_y1 +, + +568 + `U£rGlob®s_G‘_O±iÚ +( +DRAW_X_ON_OPEN +) ); + +569 + } +} + +573  + $D¿wwš_C®c_Move_Reù +Ð +pos +, +siz + ) + +574 +TWPošt + +pos +; + +575 +Size + +siz +; + +577  +xdif +, +ydif +; + +580 +xdif + = +siz +. +width +/2; + +581 +ydif + = +siz +. +height +/2; + +583 +Þd_x0 + = +pos +. +x + - +xdif + + 1; + +584 +Þd_y0 + = +pos +. +y + - +ydif + + 1; + +585 +Þd_x1 + = +pos +. +x + + +xdif +; + +586 +Þd_y1 + = +pos +. +y + + +ydif +; + +587 + } +} + +592  + $D¿wwš_Good_Move_Box +Ð +uwšp +, +pos +, +siz + ) + +593 +U£rwš + * +uwšp +; + +594 +TWPošt + +pos +; + +595 +Size + +siz +; + +598 + `D¿wwš_C®c_Move_Reù +( +pos +, +siz +); + +600 + `D¿wwš_D¿w_Box +Ð +Þd_x0 +, +Þd_y0 +, +Þd_x1 +, +Þd_y1 +, + +601 + `U£rGlob®s_G‘_O±iÚ +( +DRAW_X_ON_MOVE +) ); + +602 + } +} + +606  + $D¿wwš_Bad_Move_Box +Ð +uwšp +, +pos +, +siz + ) + +607 +U£rwš + * +uwšp +; + +608 +TWPošt + +pos +; + +609 +Size + +siz +; + +612 + `D¿wwš_Good_Move_Box +( +uwšp +, +pos +, +siz +); + +613 + } +} + +617  + $D¿wwš_Undo_Move_Box +() + +620 + `D¿wwš_D¿w_Box +Ð +Þd_x0 +, +Þd_y0 +, +Þd_x1 +, +Þd_y1 +, + +621 + `U£rGlob®s_G‘_O±iÚ +( +DRAW_X_ON_MOVE +) ); + +622 + } +} + +626  + $D¿wwš_C®c_Edge_Resize +Ð +uwšp +, +side +, +pos + ) + +627 +U£rwš + * +uwšp +; + +628 +Side + +side +; + +629 +TWPošt + +pos +; + +632 +Þd_x0 + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +Ëá_x +; + +633 +Þd_y0 + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +tÝ_y +; + +634 +Þd_x1 + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +right_x +; + +635 +Þd_y1 + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +bÙtom_y +; + +637  +side +) + +639  +Leá +: + +640 +Þd_x0 + = +pos +. +x +; + +642  +TÝ +: + +643 +Þd_y0 + = +pos +. +y +; + +645  +Right +: + +646 +Þd_x1 + = +pos +. +x +; + +648  +BÙtom +: + +649 +Þd_y1 + = +pos +. +y +; + +653 + } +} + +658  + $D¿wwš_Edge_Resize +Ð +uwšp +, +side +, +pos + ) + +659 +U£rwš + * +uwšp +; + +660 +Side + +side +; + +661 +TWPošt + +pos +; + +664 + `D¿wwš_C®c_Edge_Resize +Ð +uwšp +, +side +, +pos + ); + +666 + `D¿wwš_D¿w_Box +Ð +Þd_x0 +, +Þd_y0 +, +Þd_x1 +, +Þd_y1 +, + +667 + `U£rGlob®s_G‘_O±iÚ +( +DRAW_X_ON_RESIZE +) ); + +668 + } +} + +672  + $D¿wwš_Undo_Edge_Resize +() + +675 + `D¿wwš_D¿w_Box +Ð +Þd_x0 +, +Þd_y0 +, +Þd_x1 +, +Þd_y1 +, + +676 + `U£rGlob®s_G‘_O±iÚ +( +DRAW_X_ON_RESIZE +) ); + +677 + } +} + +681  + $D¿wwš_C®c_CÜÃr_Resize +Ð +uwšp +, +side +, +pos + ) + +682 +U£rwš + * +uwšp +; + +683 +Side + +side +; + +684 +TWPošt + +pos +; + +687 +Þd_x0 + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +Ëá_x +; + +688 +Þd_y0 + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +tÝ_y +; + +689 +Þd_x1 + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +right_x +; + +690 +Þd_y1 + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +bÙtom_y +; + +692  +side +) + +694  +TÝ_Leá +: + +695 +Þd_x0 + = +pos +. +x +; + +696 +Þd_y0 + = +pos +. +y +; + +698  +BÙtom_Leá +: + +699 +Þd_x0 + = +pos +. +x +; + +700 +Þd_y1 + = +pos +. +y +; + +702  +TÝ_Right +: + +703 +Þd_x1 + = +pos +. +x +; + +704 +Þd_y0 + = +pos +. +y +; + +706  +BÙtom_Right +: + +707 +Þd_x1 + = +pos +. +x +; + +708 +Þd_y1 + = +pos +. +y +; + +712 + } +} + +717  + $D¿wwš_CÜÃr_Resize +Ð +uwšp +, +side +, +pos + ) + +718 +U£rwš + * +uwšp +; + +719 +Side + +side +; + +720 +TWPošt + +pos +; + +723 + `D¿wwš_C®c_CÜÃr_Resize +( +uwšp +, +side +, +pos +); + +725 + `D¿wwš_D¿w_Box +Ð +Þd_x0 +, +Þd_y0 +, +Þd_x1 +, +Þd_y1 +, + +726 + `U£rGlob®s_G‘_O±iÚ +( +DRAW_X_ON_RESIZE +) ); + +727 + } +} + +731  + $D¿wwš_Undo_CÜÃr_Resize +() + +734 + `D¿wwš_D¿w_Box +Ð +Þd_x0 +, +Þd_y0 +, +Þd_x1 +, +Þd_y1 +, + +735 + `U£rGlob®s_G‘_O±iÚ +( +DRAW_X_ON_RESIZE +) ); + +736 + } +} + +738  + $D¿wwš_In£¹ +( +uwšp +) + +739 +U£rwš + * +uwšp +; + +741 + `XChªgeSaveS‘ +( +dpy +, + `U£rwš_XCl›Á +( +uwšp +), +S‘ModeIn£¹ +); + +742 + `XR•¬’tWšdow +( +dpy +, + `U£rwš_XCl›Á +( +uwšp +), + +743 + `U£rwš_XP¬’tWš +( +uwšp +), 0, 0); + +744 + } +} + +746  + $D¿wwš_W™hd¿w +( +uwšp +) + +747 +U£rwš + * +uwšp +; + +749 + `XChªgeSaveS‘ +( +dpy +, + `U£rwš_XCl›Á +( +uwšp +), +S‘ModeD–‘e +); + +750 + `XR•¬’tWšdow +( +dpy +, + `U£rwš_XCl›Á +( +uwšp +), + +751 + `RoÙWšdow +( +dpy +, +sün +), 0, 0); + +752 + } +} + +754  + $D¿wwš_P»·» +( +uwšp +) + +755 +U£rwš + * +uwšp +; + +757 + } +} + + @drawwin.h + +30 #iâdeà +BASETYPE + + +31  + ~"ba£ty³.h +" + +34  +D¿wwš_In™ +(); + +36  +D¿wwš_FÏsh +(); + +38  +D¿wwš_In™Ÿl_Size +(); + +42  +D¿wwš_S¹ +(); + +44  +D¿wwš_Fšish +(); + +46  +D¿wwš_C»©e +(); + +49  +D¿wwš_P»·» +(); + +52  +D¿wwš_In£¹ +(); + +55  +D¿wwš_W™hd¿w +(); + +58  +D¿wwš_De¡roy +(); + +61  +D¿wwš_D¿w_Background +(); + +64 +boÞ + +D¿wwš_Red¿w_AÎ +(); + +67  +D¿wwš_Unm­ +(); + +70  +D¿wwš_Clo£ +(); + +73  +D¿wwš_O³n +(); + +76  +D¿wwš_Move_O³n +(); + +79  +D¿wwš_Move_Clo£ +(); + +82  +D¿wwš_Li¡’”_Move_O³n +(); + +85  +D¿wwš_Li¡’”_Move_Clo£ +(); + +88  +D¿wwš_Red¿w +(); + +91  +D¿wwš_D¿w +(); + +94  +D¿wwš_Di¥Ïy_Focus +(); + +97  +D¿wwš_Di¥Ïy_W¿µšg +(); + +100  +D¿wwš_R‘™Ë +(); + +103  +D¿wwš_Show_Movšg +(); + +106  +D¿wwš_Unshow_Movšg +(); + +109  +D¿wwš_Good_O³n_Box +(); + +112  +D¿wwš_Bad_O³n_Box +(); + +115  +D¿wwš_Undo_O³n_Box +(); + +117  +D¿wwš_Edge_Resize +(); + +120  +D¿wwš_Undo_Edge_Resize +(); + +122  +D¿wwš_CÜÃr_Resize +(); + +125  +D¿wwš_Undo_CÜÃr_Resize +(); + +127  +D¿wwš_Good_Move_Box +(); + +130  +D¿wwš_Bad_Move_Box +(); + +133  +D¿wwš_Undo_Move_Box +(); + + @drawwin_d.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "%W% %H%"; + +27  + ~"cÝyright.h +" + +32  + ~<¡dio.h +> + +33  + ~ + +34  + ~<¡dlib.h +> + +36  + ~"ba£ty³.h +" + +37  + ~"u£rglobD.h +" + +38  + ~"uwšD.h +" + +39  + ~"uwšXD.h +" + +40  + ~"d¿w.h +" + +42  + ~ + +43  + ~ + +44  + ~"xio.h +" + +46  + #HEADER_FONT + "6x12" + + ) + +49 +GC + + gfžlGC +, + gþ—rGC +, + gxÜGC +, + gšv”t_body_GC +; + +50 +XFÚtSŒuù + * + gfÚ +; + +53  +D¿wwš_CÚfig_CÜÃrs +( +U£rwš + * +uwšp +,  +width +,  +height +); + +54  +D¿wwš_D¿w_CÜÃr_Lšes +( +Wšdow + +·»Á +, +GC + +gc +,  +width +,  +height +); + +55  +D¿wwš_D¿w_CÜÃrs +( +Wšdow + +·»Á +, +GC + +gc +,  +width +,  +height +); + +63 + $D¿wwš_In™ +() + +65 +XGCV®ues + +gcv +; + +66  +vmask +; + +69 iàÐ( +fÚ + = + `XLßdQu”yFÚt +( +dpy +, +HEADER_FONT +)è=ð +NULL + ) + +71 + `årštf +( +¡d”r +, "XLoadFont failed\n"); + +72 + `ex™ +(1); + +76 +vmask + = +GCFÜeground + | +GCFÚt +; + +77 +gcv +. +fÜeground + = + `BÏckPix– +( +dpy +, +sün +); + +78 +gcv +. +fÚt + = +fÚ +-> +fid +; + +79 +fžlGC + = + `XC»©eGC +( +dpy +, +roÙ +, +vmask +, & +gcv +); + +81 +gcv +. +fÜeground + = + `Wh™ePix– +( +dpy +, +sün +); + +82 +þ—rGC + = + `XC»©eGC +( +dpy +, +roÙ +, +vmask +, & +gcv +); + +85 +gcv +. +fÜeground + = 0xfd; + +86 +gcv +. +lše_width + = 0; + +87 +gcv +. +funùiÚ + = +GXxÜ +; + +88 +gcv +. +subwšdow_mode + = +InþudeInãriÜs +; + +89 +xÜGC + = + `XC»©eGC +( +dpy +, +roÙ +, + +90 +GCFÜeground + | +GCLšeWidth + | + +91 +GCFunùiÚ + | +GCSubwšdowMode +, + +92 & +gcv +); + +94 +gcv +. +funùiÚ + = +GXxÜ +; + +95 +gcv +. +fÜeground + = + `BÏckPix– +( +dpy +, +sün +è^ + `Wh™ePix– +(dpy,scrn); + +96 +šv”t_body_GC + = + `XC»©eGC +( +dpy +, +roÙ +, + +97 +GCFÜeground + | +GCFunùiÚ + | +GCSubwšdowMode +, & +gcv +); + +98 + } +} + +103 + $D¿wwš_CÚfig_BÜd”s +( +uwšp +, +width +, +height +) + +104 +U£rwš + * +uwšp +; + +105  +width +, +height +; + +108 + `D¿w_CÚfigWš +( + `U£rwš_XTÝBÜd” +( +uwšp +), + +111 +width +, + +112 +BORDER_SIZE_VAL +); + +114 + `D¿w_CÚfigWš +( + `U£rwš_XLeáBÜd” +( +uwšp +), + +116 +BORDER_SIZE_VAL +, + +117 +BORDER_SIZE_VAL +, + +118 +height + - (2 * +BORDER_SIZE_VAL +)); + +121 + `D¿w_CÚfigWš +( + `U£rwš_XRightBÜd” +( +uwšp +), + +122 +width + - +BORDER_SIZE_VAL +, + +123 +BORDER_SIZE_VAL +, + +124 +BORDER_SIZE_VAL +, + +125 +height + - (2 * +BORDER_SIZE_VAL +)); + +128 + `D¿w_CÚfigWš +( + `U£rwš_XBÙtomBÜd” +( +uwšp +), + +130 +height + - +BORDER_SIZE_VAL +, + +131 +width +, + +132 +BORDER_SIZE_VAL +); + +135 ià( + `U£rGlob®s_G‘_O±iÚ +( +USE_CORNER_BORDERS +è=ð +TRUE +) + +137 + `D¿wwš_CÚfig_CÜÃrs +( +uwšp +, +width +, +height +); + +139 + } +} + +146 + $D¿wwš_D¿w_BÜd”s +( +uwšp +, +width +, +height +) + +147 +U£rwš + * +uwšp +; + +148  +width +, +height +; + +150 +XReùªgË + +»ùs +[4]; + +151 +XReùªgË + * +´ + = +»ùs +; + +152 +Wšdow + +·»Á + = + `U£rwš_XP¬’tWš +( +uwšp +); + +158 +´ + -> +x + = 0; + +159 +´ + -> +y + = 0; + +160 +´ + -> +width + = width; + +161 +´ +++ -> +height + = +BORDER_SIZE_VAL +; + +163 +´ + -> +x + = 0; + +164 +´ + -> +y + = +BORDER_SIZE_VAL +; + +165 +´ + -> +width + = +BORDER_SIZE_VAL +; + +166 +´ +++ -> +height + = height; + +168 +´ + -> +x + = +width + - +BORDER_SIZE_VAL +; + +169 +´ + -> +y + = 0; + +170 +´ + -> +width + = +BORDER_SIZE_VAL +; + +171 +´ +++ -> +height + = height; + +173 +´ + -> +x + = 0; + +174 +´ + -> +y + = +height + - +BORDER_SIZE_VAL +; + +175 +´ + -> +width + = width; + +176 +´ +++ -> +height + = +BORDER_SIZE_VAL +; + +178 + `XFžlReùªgËs +( +dpy +, +·»Á +, +fžlGC +, +»ùs +, +´ + -„ects); + +181 ià(( + `U£rGlob®s_G‘_O±iÚ +( +SHOW_FOCUS_IN_BORDERS +è&& +uwšp +-> +focus +) || + +182 ( + `U£rGlob®s_G‘_O±iÚ +( +SHOW_LISTENER_IN_BORDERS +è&& +uwšp +-> +li¡’” +)) + +184 ià( + `U£rGlob®s_G‘_O±iÚ +( +DISTINGUISH_CORNER_BORDERS +è=ð +TRUE + && + +185 + `U£rGlob®s_G‘_O±iÚ +( +USE_CORNER_BORDERS +è=ð +TRUE +) + +187 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +DISTNGSH_CORNER_BORDERS_BY_INV +)) + +189 + `D¿wwš_D¿w_CÜÃrs +( +·»Á +, +þ—rGC +, +width +, +height +); + +193 + `D¿wwš_D¿w_CÜÃr_Lšes +( +·»Á +, +þ—rGC +, +width +, +height +); + +199 +´ + = +»ùs +; + +201 +´ + -> +x + = +OUTER_BORDER_LINEWIDTH_VAL +; + +202 +´ + -> +y + = +OUTER_BORDER_LINEWIDTH_VAL +; + +203 +´ + -> +width + = width - (2 * +OUTER_BORDER_LINEWIDTH_VAL +); + +204 +´ +++ -> +height + = +BORDER_SIZE_VAL + - + +205 ( +OUTER_BORDER_LINEWIDTH_VAL + + +INNER_BORDER_LINEWIDTH_VAL +); + +207 +´ + -> +x + = +OUTER_BORDER_LINEWIDTH_VAL +; + +208 +´ + -> +y + = +OUTER_BORDER_LINEWIDTH_VAL +; + +209 +´ + -> +width + = +BORDER_SIZE_VAL + - + +210 ( +OUTER_BORDER_LINEWIDTH_VAL + + +INNER_BORDER_LINEWIDTH_VAL +); + +211 +´ +++ -> +height + = heighˆ- (2 * +OUTER_BORDER_LINEWIDTH_VAL +); + +213 +´ + -> +x + = +width + - +BORDER_SIZE_VAL + + +INNER_BORDER_LINEWIDTH_VAL +; + +214 +´ + -> +y + = +OUTER_BORDER_LINEWIDTH_VAL +; + +215 +´ + -> +width + = +BORDER_SIZE_VAL + - + +216 ( +OUTER_BORDER_LINEWIDTH_VAL + + +INNER_BORDER_LINEWIDTH_VAL +); + +217 +´ +++ -> +height + = heighˆ- (2 * +OUTER_BORDER_LINEWIDTH_VAL +); + +219 +´ + -> +x + = +OUTER_BORDER_LINEWIDTH_VAL +; + +220 +´ + -> +y + = +height + - +BORDER_SIZE_VAL + + +INNER_BORDER_LINEWIDTH_VAL +; + +221 +´ + -> +width + = width - (2 * +OUTER_BORDER_LINEWIDTH_VAL +); + +222 +´ +++ -> +height + = +BORDER_SIZE_VAL + - + +223 ( +OUTER_BORDER_LINEWIDTH_VAL + + +INNER_BORDER_LINEWIDTH_VAL +); + +225 + `XFžlReùªgËs +( +dpy +, +·»Á +, +þ—rGC +, +»ùs +, +´ + -„ects); + +228 ià( + `U£rGlob®s_G‘_O±iÚ +( +DISTINGUISH_CORNER_BORDERS +è=ð +TRUE + && + +229 + `U£rGlob®s_G‘_O±iÚ +( +USE_CORNER_BORDERS +è=ð +TRUE +) + +231 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +DISTNGSH_CORNER_BORDERS_BY_INV +)) + +233 + `D¿wwš_D¿w_CÜÃrs +( +·»Á +, +fžlGC +, +width +, +height +); + +237 + `D¿wwš_D¿w_CÜÃr_Lšes +( +·»Á +, +fžlGC +, +width +, +height +); + +241 + } +} + +248 + $D¿wwš_Remove_BÜd”s +( +uwšp +) + +249 +U£rwš + * +uwšp +; + +251 + `XUnm­Wšdow +( +dpy +, + `U£rwš_XTÝBÜd” +( +uwšp +)); + +252 + `XUnm­Wšdow +( +dpy +, + `U£rwš_XLeáBÜd” +( +uwšp +)); + +253 + `XUnm­Wšdow +( +dpy +, + `U£rwš_XRightBÜd” +( +uwšp +)); + +254 + `XUnm­Wšdow +( +dpy +, + `U£rwš_XBÙtomBÜd” +( +uwšp +)); + +255 + } +} + +263 + $D¿wwš_CÚfig_CÜÃrs +( +uwšp +, +width +, +height +) + +264 +U£rwš + * +uwšp +; + +265  +width +, +height +; + +268 + `D¿w_CÚfigWš +( + `U£rwš_XTÝLeáCÜÃr +( +uwšp +), + +271 2 * +BORDER_SIZE_VAL +, + +272 2 * +BORDER_SIZE_VAL +); + +274 + `D¿w_CÚfigWš +( + `U£rwš_XTÝRightCÜÃr +( +uwšp +), + +275 +width + - (2 * +BORDER_SIZE_VAL +), + +277 2 * +BORDER_SIZE_VAL +, + +278 2 * +BORDER_SIZE_VAL +); + +280 + `D¿w_CÚfigWš +( + `U£rwš_XBÙtomLeáCÜÃr +( +uwšp +), + +282 +height + - (2 * +BORDER_SIZE_VAL +), + +283 2 * +BORDER_SIZE_VAL +, + +284 2 * +BORDER_SIZE_VAL +); + +286 + `D¿w_CÚfigWš +( + `U£rwš_XBÙtomRightCÜÃr +( +uwšp +), + +287 +width + - (2 * +BORDER_SIZE_VAL +), + +288 +height + - (2 * +BORDER_SIZE_VAL +), + +289 2 * +BORDER_SIZE_VAL +, + +290 2 * +BORDER_SIZE_VAL +); + +291 + } +} + +295 + $D¿wwš_D¿w_CÜÃrs +( +·»Á +, +gc +, +width +, +height +) + +296 +Wšdow + +·»Á +; + +297 +GC + +gc +; + +298  +width +, +height +; + +300 +XReùªgË + +»ùs +[8]; + +301 +XReùªgË + * +´ + = +»ùs +; + +304 +´ + -> +x + = +OUTER_BORDER_LINEWIDTH_VAL +; + +305 +´ + -> +y + = +OUTER_BORDER_LINEWIDTH_VAL +; + +306 +´ + -> +width + = +BORDER_SIZE_VAL + - + +307 ( +OUTER_BORDER_LINEWIDTH_VAL + + +INNER_BORDER_LINEWIDTH_VAL +); + +308 +´ +++ -> +height + = 2 * +BORDER_SIZE_VAL + - + +309 ( +OUTER_BORDER_LINEWIDTH_VAL + + +INNER_BORDER_LINEWIDTH_VAL +); + +311 +´ + -> +x + = +OUTER_BORDER_LINEWIDTH_VAL +; + +312 +´ + -> +y + = +OUTER_BORDER_LINEWIDTH_VAL +; + +313 +´ + -> +width + = 2 * +BORDER_SIZE_VAL + - + +314 ( +OUTER_BORDER_LINEWIDTH_VAL + + +INNER_BORDER_LINEWIDTH_VAL +); + +315 +´ +++ -> +height + = +BORDER_SIZE_VAL + - + +316 ( +OUTER_BORDER_LINEWIDTH_VAL + + +INNER_BORDER_LINEWIDTH_VAL +); + +319 +´ + -> +x + = +width + - +BORDER_SIZE_VAL + + +INNER_BORDER_LINEWIDTH_VAL +; + +320 +´ + -> +y + = +OUTER_BORDER_LINEWIDTH_VAL +; + +321 +´ + -> +width + = +BORDER_SIZE_VAL + - + +322 ( +OUTER_BORDER_LINEWIDTH_VAL + + +INNER_BORDER_LINEWIDTH_VAL +); + +323 +´ +++ -> +height + = 2 * +BORDER_SIZE_VAL + - + +324 ( +OUTER_BORDER_LINEWIDTH_VAL + + +INNER_BORDER_LINEWIDTH_VAL +); + +326 +´ + -> +x + = +width + - (2 * +BORDER_SIZE_VAL +è+ +INNER_BORDER_LINEWIDTH_VAL +; + +327 +´ + -> +y + = +OUTER_BORDER_LINEWIDTH_VAL +; + +328 +´ + -> +width + = 2 * +BORDER_SIZE_VAL + - + +329 ( +OUTER_BORDER_LINEWIDTH_VAL + + +INNER_BORDER_LINEWIDTH_VAL +); + +330 +´ +++ -> +height + = +BORDER_SIZE_VAL + - + +331 ( +OUTER_BORDER_LINEWIDTH_VAL + + +INNER_BORDER_LINEWIDTH_VAL +); + +334 +´ + -> +x + = +OUTER_BORDER_LINEWIDTH_VAL +; + +335 +´ + -> +y + = +height + - (2 * +BORDER_SIZE_VAL +è+ +INNER_BORDER_LINEWIDTH_VAL +; + +336 +´ + -> +width + = +BORDER_SIZE_VAL + - + +337 ( +OUTER_BORDER_LINEWIDTH_VAL + + +INNER_BORDER_LINEWIDTH_VAL +); + +338 +´ +++ -> +height + = (2 * +BORDER_SIZE_VAL +) - + +339 ( +OUTER_BORDER_LINEWIDTH_VAL + + +INNER_BORDER_LINEWIDTH_VAL +); + +341 +´ + -> +x + = +OUTER_BORDER_LINEWIDTH_VAL +; + +342 +´ + -> +y + = +height + - +BORDER_SIZE_VAL + + +INNER_BORDER_LINEWIDTH_VAL +; + +343 +´ + -> +width + = 2 * +BORDER_SIZE_VAL + - + +344 ( +OUTER_BORDER_LINEWIDTH_VAL + + +INNER_BORDER_LINEWIDTH_VAL +); + +345 +´ +++ -> +height + = +BORDER_SIZE_VAL + - + +346 ( +OUTER_BORDER_LINEWIDTH_VAL + + +INNER_BORDER_LINEWIDTH_VAL +); + +349 +´ + -> +x + = +width + - +BORDER_SIZE_VAL + + +INNER_BORDER_LINEWIDTH_VAL +; + +350 +´ + -> +y + = +height + - (2 * +BORDER_SIZE_VAL +è+ +INNER_BORDER_LINEWIDTH_VAL +; + +351 +´ + -> +width + = +BORDER_SIZE_VAL + - + +352 ( +OUTER_BORDER_LINEWIDTH_VAL + + +INNER_BORDER_LINEWIDTH_VAL +); + +353 +´ +++ -> +height + = (2 * +BORDER_SIZE_VAL +) - + +354 ( +OUTER_BORDER_LINEWIDTH_VAL + + +INNER_BORDER_LINEWIDTH_VAL +); + +356 +´ + -> +x + = +width + - (2 * +BORDER_SIZE_VAL +è+ +INNER_BORDER_LINEWIDTH_VAL +; + +357 +´ + -> +y + = +height + - +BORDER_SIZE_VAL + + +INNER_BORDER_LINEWIDTH_VAL +; + +358 +´ + -> +width + = 2 * +BORDER_SIZE_VAL + - + +359 ( +OUTER_BORDER_LINEWIDTH_VAL + + +INNER_BORDER_LINEWIDTH_VAL +); + +360 +´ +++ -> +height + = +BORDER_SIZE_VAL + - + +361 ( +OUTER_BORDER_LINEWIDTH_VAL + + +INNER_BORDER_LINEWIDTH_VAL +); + +364 + `XFžlReùªgËs +( +dpy +, +·»Á +, +gc +, +»ùs +, +´ + -„ects); + +365 + } +} + +371 + $D¿wwš_D¿w_CÜÃr_Lšes +( +·»Á +, +gc +, +width +, +height +) + +372 +Wšdow + +·»Á +; + +373 +GC + +gc +; + +374  +width +, +height +; + +376 +XGCV®ues + +gcv +; + +377  +vmask +; + +378 +XSegm’t + +£gm’ts +[8]; + +379 +XSegm’t + * +psg + = +£gm’ts +; + +382 +vmask + = +GCLšeWidth +; + +383 +gcv +. +lše_width + = +INNER_BORDER_LINEWIDTH_VAL +; + +385 + `XChªgeGC +( +dpy +, +gc +, +vmask +, & +gcv +); + +389 +psg + -> +x1 + = 0; + +390 +psg + -> +y1 + = 2 * +BORDER_SIZE_VAL + - +INNER_BORDER_LINEWIDTH_VAL +; + +391 +psg + -> +x2 + = +BORDER_SIZE_VAL + - 1; + +392 +psg +++ -> +y2 + = 2 * +BORDER_SIZE_VAL + - +INNER_BORDER_LINEWIDTH_VAL +; + +394 +psg + -> +x1 + = 2 * +BORDER_SIZE_VAL + - +INNER_BORDER_LINEWIDTH_VAL +; + +395 +psg + -> +y1 + = 0; + +396 +psg + -> +x2 + = 2 * +BORDER_SIZE_VAL + - +INNER_BORDER_LINEWIDTH_VAL +; + +397 +psg +++ -> +y2 + = +BORDER_SIZE_VAL + - 1; + +400 +psg + -> +x1 + = +width + - +BORDER_SIZE_VAL +; + +401 +psg + -> +y1 + = 2 * +BORDER_SIZE_VAL + - +INNER_BORDER_LINEWIDTH_VAL +; + +402 +psg + -> +x2 + = +width + - 1; + +403 +psg +++ -> +y2 + = 2 * +BORDER_SIZE_VAL + - +INNER_BORDER_LINEWIDTH_VAL +; + +405 +psg + -> +x1 + = +width + - 2 * +BORDER_SIZE_VAL + + +INNER_BORDER_LINEWIDTH_VAL +; + +406 +psg + -> +y1 + = 0; + +407 +psg + -> +x2 + = +width + - (2 * +BORDER_SIZE_VAL +è+ +INNER_BORDER_LINEWIDTH_VAL +; + +408 +psg +++ -> +y2 + = +BORDER_SIZE_VAL + - 1; + +411 +psg + -> +x1 + = 0; + +412 +psg + -> +y1 + = +height + - (2 * +BORDER_SIZE_VAL +è+ +INNER_BORDER_LINEWIDTH_VAL +; + +413 +psg + -> +x2 + = +BORDER_SIZE_VAL + - 1; + +414 +psg +++ -> +y2 + = +height + - (2 * +BORDER_SIZE_VAL +è+ +INNER_BORDER_LINEWIDTH_VAL +; + +416 +psg + -> +x1 + = (2 * +BORDER_SIZE_VAL +è- +INNER_BORDER_LINEWIDTH_VAL +; + +417 +psg + -> +y1 + = +height + - +BORDER_SIZE_VAL +; + +418 +psg + -> +x2 + = (2 * +BORDER_SIZE_VAL +è- +INNER_BORDER_LINEWIDTH_VAL +; + +419 +psg +++ -> +y2 + = +height + - 1; + +422 +psg + -> +x1 + = +width + - +BORDER_SIZE_VAL +; + +423 +psg + -> +y1 + = +height + - (2 * +BORDER_SIZE_VAL +è+ +INNER_BORDER_LINEWIDTH_VAL +; + +424 +psg + -> +x2 + = +width + - 1; + +425 +psg +++ -> +y2 + = +height + - (2 * +BORDER_SIZE_VAL +è+ +INNER_BORDER_LINEWIDTH_VAL +; + +427 +psg + -> +x1 + = +width + - (2 * +BORDER_SIZE_VAL +è+ +INNER_BORDER_LINEWIDTH_VAL +; + +428 +psg + -> +y1 + = +height + - +BORDER_SIZE_VAL +; + +429 +psg + -> +x2 + = +width + - (2 * +BORDER_SIZE_VAL +è+ +INNER_BORDER_LINEWIDTH_VAL +; + +430 +psg +++ -> +y2 + = +height + - 1; + +433 + `XD¿wSegm’ts +( +dpy +, +·»Á +, +gc +, +£gm’ts +, +psg + - segments); + +434 + } +} + +443 + $D¿wwš_CÚfig_H—d” +( +uwšp +, +width +, +height +) + +444 +U£rwš + * +uwšp +; + +445  +width +, +height +; + +447  +Ëá_x +, +tÝ_y +; + +450 +Ëá_x + = 0; + +451 +tÝ_y + = 0; + +452 +height + = +uwšp +-> +h—d”_height + + +INNER_BORDER_LINEWIDTH_VAL +; + +455 ià( + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_BORDERS + )) + +457 +Ëá_x + +ð +BORDER_SIZE_VAL +;; + +458 +tÝ_y + +ð +BORDER_SIZE_VAL +; + +459 +width + -ð(2 * +BORDER_SIZE_VAL +); + +462 + `D¿w_CÚfigWš +( + `U£rwš_XH—d” +( +uwšp +), + +463 +Ëá_x +, +tÝ_y +, + +464 +width +, +height +); + +465 + } +} + +471 + $D¿wwš_D¿w_H—d” +( +uwšp +, +width +, +height +) + +472 +U£rwš + * +uwšp +; + +473  +width +, +height +; + +475  +Ëá_x +, +tÝ_y +; + +476 +Wšdow + +·»Á + = + `U£rwš_XP¬’tWš +( +uwšp +); + +477 +GC + +t™ËGC +; + +480 +Ëá_x + = 0; + +481 +tÝ_y + = 0; + +482 +height + = +uwšp +-> +h—d”_height + + +INNER_BORDER_LINEWIDTH_VAL +; + +484 ià( + `U£rwš_G‘_Wšdow_O±iÚ +( +uwšp +, +USE_BORDERS +)) + +486 +Ëá_x + +ð +BORDER_SIZE_VAL +; + +487 +tÝ_y + +ð +BORDER_SIZE_VAL +; + +488 +width + -ð(2 * +BORDER_SIZE_VAL +); + +491 ià( + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_GADGETS + )) + +493 +Ëá_x + +ð( +GADGET_WIDTH_VAL + + +INNER_BORDER_LINEWIDTH_VAL +); + +494 +width + -ð( +GADGET_WIDTH_VAL + + +INNER_BORDER_LINEWIDTH_VAL +); + +496 ià( + `U£rwš_G‘_Wšdow_O±iÚ +( +uwšp +, +USE_MOVE_GADGET +)) + +498 +width + -ð( +GADGET_WIDTH_VAL + + +INNER_BORDER_LINEWIDTH_VAL +); + +503 ià(( + `U£rGlob®s_G‘_O±iÚ +( +SHOW_FOCUS_IN_HEADER +è&& +uwšp +-> +focus +) || + +504 ( + `U£rGlob®s_G‘_O±iÚ +( +SHOW_LISTENER_IN_HEADER +è&& +uwšp +-> +li¡’” +)) + +506 + `XFžlReùªgË +( +dpy +, +·»Á +, +fžlGC +, +Ëá_x +, +tÝ_y +, + +507 (è +width +, (è +height +); + +509 +t™ËGC + = +þ—rGC +; + +515 + `XFžlReùªgË +( +dpy +, +·»Á +, +þ—rGC +, +Ëá_x +, +tÝ_y +, + +516 (è +width +, + +517 (è +height + - +INNER_BORDER_LINEWIDTH_VAL +); + +519 + `XFžlReùªgË +( +dpy +, +·»Á +, +fžlGC +, + +520 +Ëá_x +, + +521 +tÝ_y + + +height + - +INNER_BORDER_LINEWIDTH_VAL +, + +522 (è +width +, + +523 (è +INNER_BORDER_LINEWIDTH_VAL +); + +525 +t™ËGC + = +fžlGC +; + +529  + #TITLE_NCHARS + 100 + + ) + +531 iàÐ( +uwšp +-> +t™Ë + !ð(*è +NULL +) && + +532 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +INCLUDE_TITLE_IN_HEADER + ) ) + +534  +s +[ +TITLE_NCHARS +]; + +535  +nc +; + +538 +nc + = + `D¿w_Num_D¿wabËs +( +uwšp +-> +t™Ë +, + +539 +fÚ +, + +540 +width + - +fÚ +-> +max_bounds +.width, + +541 +TITLE_NCHARS +); + +543 + `¡ºýy +( +s +, +uwšp +-> +t™Ë +, +nc +); + +544 +s +[ +nc +] = '\0'; + +551 + `XD¿wSŒšg +( +dpy +, +·»Á +, +t™ËGC +, + +552 +Ëá_x + + +fÚ +-> +max_bounds +. +width +, + +553 +tÝ_y + + +fÚ +-> +max_bounds +. +asûÁ +, + +554 +s +, +nc +); + +557 + } +} + +563 + $D¿wwš_Remove_H—d” +( +uwšp +) + +564 +U£rwš + * +uwšp +; + +566 + `XUnm­Wšdow +( +dpy +, + `U£rwš_XH—d” +( +uwšp +)); + +567 + } +} + +575 + $D¿wwš_CÚfig_Gadg‘s +( +uwšp +, +width +, +height +) + +576 +U£rwš + * +uwšp +; + +577  +width +, +height +; + +579  +Ëá_x +, +tÝ_y +; + +580  +g_width +, +g_height +; + +583 +g_width + = +GADGET_WIDTH_VAL + + +INNER_BORDER_LINEWIDTH_VAL +; + +584 +g_height + = +uwšp +-> +h—d”_height + + +INNER_BORDER_LINEWIDTH_VAL +; + +586 ià( + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_BORDERS + )) + +588 +Ëá_x + = +tÝ_y + = +BORDER_SIZE_VAL +; + +592 +Ëá_x + = +tÝ_y + = 0; + +595 + `D¿w_CÚfigWš +( + `U£rwš_XZoomGadg‘ +( +uwšp +), + +596 +Ëá_x +, +tÝ_y +, + +597 +g_width +, +g_height +); + +600 ià( + `U£rwš_G‘_Wšdow_O±iÚ +( +uwšp +, +USE_MOVE_GADGET +)) + +602 +Ëá_x + = ( + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_BORDERS + )) ? + +603 +width + - +BORDER_SIZE_VAL + - +g_width + + 1 : + +604 +width + - +g_width +; + +606 + `D¿w_CÚfigWš +( + `U£rwš_XMoveGadg‘ +( +uwšp +), + +607 +Ëá_x +, +tÝ_y +, + +608 +g_width +, +g_height +); + +612 + `XUnm­Wšdow +( +dpy +, + `U£rwš_XMoveGadg‘ +( +uwšp +)); + +614 + } +} + +621 + $D¿wwš_D¿w_Gadg‘s +( +uwšp +, +width +, +height +) + +622 +U£rwš + * +uwšp +; + +623  +width +, +height +; + +625  +bÜd”_width +, +šÃr_bÜd”_width +; + +626 +Wšdow + +·»Á + = + `U£rwš_XP¬’tWš +( +uwšp +); + +630 +bÜd”_width + = ( + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_BORDERS + )) ? + +631 +BORDER_SIZE_VAL + : 0; + +633 +šÃr_bÜd”_width + = ( + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_BORDERS + )) ? + +634 +INNER_BORDER_LINEWIDTH_VAL + : 0; + +637 + `XFžlReùªgË +( +dpy +, +·»Á +, +fžlGC +, + +638 0 + +bÜd”_width +, + +639 0 + +bÜd”_width +, + +640 (è( +GADGET_WIDTH_VAL + + +šÃr_bÜd”_width +), + +641 (è( +uwšp +-> +h—d”_height + + +šÃr_bÜd”_width +)); + +643 + `XFžlReùªgË +( +dpy +, +·»Á +, +þ—rGC +, + +644 0 + +bÜd”_width +, + +645 0 + +bÜd”_width +, + +646 (è( +GADGET_WIDTH_VAL +), + +647 (è( +uwšp +-> +h—d”_height +)); + +649 ià( +uwšp +-> +zoomed +) + +651 + `XD¿wReùªgË +( +dpy +, +·»Á +, +fžlGC +, + +652 0 + +bÜd”_width + + 2, + +653 0 + +bÜd”_width + + 2, + +654 (è( +GADGET_WIDTH_VAL + - 5), + +655 (è( +uwšp +-> +h—d”_height + - 5)); + +659 + `XFžlReùªgË +( +dpy +, +·»Á +, +fžlGC +, + +660 0 + +bÜd”_width + + ( +GADGET_WIDTH_VAL + / 2) - 2, + +661 0 + +bÜd”_width + + ( +uwšp +-> +h—d”_height + / 2) - 2, + +666 ià( + `U£rwš_G‘_Wšdow_O±iÚ +( +uwšp +, +LISTENER_TIED_TO_ZOOM +è=ð +TRUE +) + +668 + `XD¿wLše +( +dpy +, +·»Á +, +fžlGC +, + +669 0 + +bÜd”_width +, + +670 0 + +bÜd”_width + + ( +uwšp +-> +h—d”_height + / 2), + +671 0 + +bÜd”_width + + +GADGET_WIDTH_VAL + - 1, + +672 0 + +bÜd”_width + + ( +uwšp +-> +h—d”_height + / 2)); + +676 ià( + `U£rwš_G‘_Wšdow_O±iÚ +( +uwšp +, +USE_MOVE_GADGET +è=ð +TRUE +) + +681 + `XFžlReùªgË +( +dpy +, +·»Á +, +þ—rGC +, + +682 +width + - +GADGET_WIDTH_VAL + - +bÜd”_width + - +šÃr_bÜd”_width +, + +683 0 + +bÜd”_width +, + +684 (è( +GADGET_WIDTH_VAL + + +šÃr_bÜd”_width +), + +685 (è( +uwšp +-> +h—d”_height + + +šÃr_bÜd”_width +)); + +689 + `XFžlReùªgË +( +dpy +, +·»Á +, +fžlGC +, + +690 +width + - +GADGET_WIDTH_VAL + - +bÜd”_width + - +šÃr_bÜd”_width +, + +691 0 + +bÜd”_width +, + +692 +šÃr_bÜd”_width +, + +693 (è( +uwšp +-> +h—d”_height + + +šÃr_bÜd”_width +)); + +697 + `XFžlReùªgË +( +dpy +, +·»Á +, +fžlGC +, + +698 +width + - +GADGET_WIDTH_VAL + - +bÜd”_width + - +šÃr_bÜd”_width +, + +699 0 + +bÜd”_width + + +uwšp +-> +h—d”_height +, + +700 (è +GADGET_WIDTH_VAL +, + +701 +šÃr_bÜd”_width +); + +703 + } +} + +709 + $D¿wwš_Remove_Gadg‘s +( +uwšp +) + +710 +U£rwš + * +uwšp +; + +712 + `XUnm­Wšdow +( +dpy +, + `U£rwš_XZoomGadg‘ +( +uwšp +)); + +714 + `XUnm­Wšdow +( +dpy +, + `U£rwš_XMoveGadg‘ +( +uwšp +)); + +715 + } +} + + @events.c + +23  + ~"cÝyright.h +" + +26 (* + gWAIT +)(); + +28 (* + gUP +)(); + +29 (* + gDOWN +)(); + +31 (* + gMOUSE +)(); + +32 (* + gKEY +)(); + +34 (* + gLEAVE +)(); + +35 (* + gENTER +)(); + + @events.h + +30 (* +WAIT +)(); + +32 (* +UP +)(); + +33 (* +DOWN +)(); + +34 (* +MOUSE +)(); + +35 (* +KEY +)(); + +36 (* +LEAVE +)(); + +37 (* +ENTER +)(); + + @evsave.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "%W% %H%"; + +27  + ~"cÝyright.h +" + +36  + ~<¡dio.h +> + +38  + ~"ev¡ackX.h +" + +39  + ~"ev§veP.h +" + +41  + $SaveEv’ts +( +di¥Ïy +, +Sck +, +mask +) + +42 +Di¥Ïy + * +di¥Ïy +; + +43 +Ev’tStÜe + * +Sck +; + +44  +mask +; + +47 +XEv’t + +ev +; + +48 +boÞ + +M©ch + = +TRUE +; + +51 * +Sck + = ( +Ev’tStÜe +) + `Em±yEv’tSck +(); + +53  + `XP’dšg +( +di¥Ïy +è&& +M©ch +) + +55 ià( + `XCheckMaskEv’t +( +di¥Ïy +, +mask +, & +ev +)) + +57 + `PushEv’t +(& +ev +, ( +Ev’tSck + *) +Sck +); + +60 +M©ch + = +FALSE +; + +64 + } +} + +66  + $Re¡ÜeEv’ts +( +di¥Ïy +, +Sck +) + +67 +Di¥Ïy + * +di¥Ïy +; + +68 +Ev’tStÜe + * +Sck +; + +70 +XEv’t + +ev +; + +73 ! + `Ev’tSckIsEm±y +(( +Ev’tSck +)* +Sck +)) + +75 +ev + = + `PÝEv’t +(( +Ev’tSck + *) +Sck +); + +76 + `XPutBackEv’t +( +di¥Ïy +, & +ev +); + +78 + `XFlush +( +di¥Ïy +); + +81 + } +} + +83  + $Di¥o£Ev’ts +( +di¥Ïy +, +mask +) + +84 +Di¥Ïy + * +di¥Ïy +; + +85  +mask +; + +87 +boÞ + +M©ch + = +TRUE +; + +88 +XEv’t + +ev +; + +91  + `XP’dšg +( +di¥Ïy +è&& +M©ch +) + +93 ià( + `XCheckMaskEv’t +( +di¥Ïy +, +mask +, & +ev +)) + +97 +M©ch + = +FALSE +; + +101 + } +} + +103  + $DisÿrdEv’tStÜe +( +Sck +) + +104 +Ev’tStÜe + * +Sck +; + +107 ! + `Ev’tSckIsEm±y +(( +Ev’tSck +)* +Sck +)) + +109 (è + `PÝEv’t +(( +Ev’tSck + *) +Sck +); + +111 + } +} + +113  + $AddEv’tToStÜe +( +Sck +, +ev +) + +114 +Ev’tStÜe + * +Sck +; + +115 +XEv’t + +ev +; + +117 + `PushEv’t +(& +ev +, ( +Ev’tSck + *) +Sck +); + +118 + } +} + +120  + $RemoveEv’tFromStÜe +( +Sck +, +ev +) + +121 +Ev’tStÜe + * +Sck +; + +122 +XEv’t + * +ev +; + +124 * +ev + = + `PÝEv’t +(( +Ev’tSck + *) +Sck +); + +125 + } +} + +127 +Ev’tStÜe + + $G‘Ev’tStÜe +() + +129  ( +Ev’tStÜe +) + `Em±yEv’tSck +(); + +130 + } +} + +132 +boÞ + + $Ev’tStÜeIsEm±y +( +Sck +) + +133 +Ev’tStÜe + * +Sck +; + +135  + `Ev’tSckIsEm±y +(( +Ev’tSck +)* +Sck +); + +136 + } +} + + @evsave.h + +32  +SaveEv’ts +( ); + +33  +Re¡ÜeEv’ts +( ); + +34  +Di¥o£Ev’ts +( ); + +35  +DisÿrdEv’tStÜe +( ); + +36  +AddEv’tToStÜe +( ); + +37  +RemoveEv’tFromStÜe +( ); + +38 +Ev’tStÜe + +G‘Ev’tStÜe +( ); + +39 +boÞ + +Ev’tStÜeIsEm±y +( ); + + @evsaveD.h + + @evsaveP.h + +33  + ~"ev§veSH.h +" + + @evsaveSH.h + +33 #iâdeà +_XLIB_H_ + + +34  + ~ + +37 #iâdeà +STD_DEFS + + +38  + ~"¡d_defs.h +" + +41  +poš‹r + + tEv’tStÜe +; + + @evsaveX.h + +32  + ~"ev§veSH.h +" + +33  + ~"ev§ve.h +" + + @evstack.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "%W% %H%"; + +27  + ~"cÝyright.h +" + +36  + ~<¡dio.h +> + +37  + ~<¡dlib.h +> + +38  + ~ + +40  + ~"ev¡ackP.h +" + +42 +boÞ + + $Ev’tSckIsEm±y +( +Ev’tStk +) + +43 +Ev’tSck + +Ev’tStk +; + +45  ( +Ev’tStk + =ð +NuÎSck +); + +46 + } +} + +49  + $PushEv’t +( +ev’t +, +Ev’tStk +) + +50 +XEv’t + * +ev’t +; + +51 +Ev’tSck + * +Ev’tStk +; + +53 +Ev’tNode + * +Ãw_node +; + +55 +Ãw_node + = ( +_Ev’tSck +) + `m®loc +(( +Ev’tNode +)); + +56 +Ãw_node +-> +Ãxt + = *( +_Ev’tSck + *) +Ev’tStk +; + +57 +Ãw_node +-> +ev’t + = *event; + +58 * +Ev’tStk + = ( +Ev’tSck +) +Ãw_node +; + +59 + } +} + +61 +Ev’tSck + + $Em±yEv’tSck +() + +63  +NuÎSck +; + +64 + } +} + +67 +XEv’t + + $PÝEv’t +( +Ev’tStk +) + +68 +Ev’tSck + * +Ev’tStk +; + +70 +Ev’tNode + * +Þd_node +; + +71 +XEv’t + +pÝ_ev’t +; + +73 +Þd_node + = *( +_Ev’tSck + *) +Ev’tStk +; + +74 * +Ev’tStk + = ( +Ev’tSck +) +Þd_node +-> +Ãxt +; + +75 +pÝ_ev’t + = +Þd_node +-> +ev’t +; + +76 + `ä“ +(( +poš‹r +) +Þd_node +); + +77  +pÝ_ev’t +; + +78 + } +} + + @evstack.h + +32 +boÞ + +Ev’tSckIsEm±y +( ); + +33  +PushEv’t +( ); + +34 +Ev’tSck + +Em±yEv’tSck +( ); + +35 +XEv’t + +PÝEv’t +( ); + + @evstackD.h + +33  + #NuÎNode + ( +Ev’tNode + *è +NULL + + + ) + +34  + #NuÎSck + ( +Ev’tSck +) +NuÎNode + + + ) + + @evstackP.h + +33  + ~"ev¡ackSH.h +" + +34  + ~"ev¡ackD.h +" + +36  +_ev’tNode + + tEv’tNode +; + +37  +Ev’tNode + * + t_Ev’tSck +; + +39  + s_ev’tNode + + +41 +XEv’t + + mev’t +; + +42 +Ev’tNode + * + mÃxt +; + + @evstackSH.h + +33 #iâdeà +_XLIB_H_ + + +34  + ~ + +37 #iâdeà +STD_DEFS + + +38  + ~"¡d_defs.h +" + +41  +poš‹r + + tEv’tSck +; + + @evstackX.h + +32  + ~"ev¡ackSH.h +" + +33  + ~"ev¡ack.h +" + + @evstrings.h + +32 * + gev¡ršgs +[] = + + @exploptsP.h + +31 + mEXPLICIT_AUTO_PRORATE +, + +32 + mEXPLICIT_ALLOW_AUTOMATIC_CLOSE +, + +34 + mLENGTH_EXPLICIT_GLOBAL_OPTIONS + + +35 } + tEx¶ic™_Glob®_O±iÚs +; + + @explwoptsP.h + +33 + mEXPLICIT_LISTENER_TIED_TO_ZOOM +, + +34 + mEXPLICIT_FIXED_COMPLETELY +, + +35 + mEXPLICIT_FIXED_HEIGHT +, + +36 + mEXPLICIT_FIXED_WIDTH +, + +37 + mEXPLICIT_REQUIRE_MANUAL_CLOSE +, + +38 + mEXPLICIT_ZOOM_TIED_TO_DESIRE +, + +40 + mLENGTH_EXPLICIT_WINDOW_OPTIONS + + +41 } + tEx¶ic™_Wšdow_O±iÚs +; + + @fieldP.h + +29 #iâdeà +FIELD + + +30  + #FIELD + + + ) + +33  + #unshiáed +( +i +, +æd +èÐ(iè>> (ædè) + + ) + +36  + #shiáed +( +i +, +æd +èÐ(iè<< (ædè) + + ) + +41  + #lowmask +( +wid +èÐ(1 << widè- 1 ) + + ) + +44  + #mask +( +æd +, +wid +è + `shiáed +Ð + `lowmask +(wid), fld ) + + ) + +47  + #Úemask +( +æd +è + `shiáed +Ð1, fld ) + + ) + +52  + #lowmasked +( +i +, +wid +èИ& + `lowmask +(widè) + + ) + +55  + #masked +( +i +, +æd +, +wid +èИ& + `mask +(æd,widè) + + ) + +58  + #Úemasked +( +i +, +æd +èИ& + `Úemask +(ædè) + + ) + +63  + #exŒaù +( +i +, +æd +, +wid +èÐ + `unshiáed +(i,ædè& + `lowmask +(widè) + + ) + +66  + #šŒaù +( +i +, +æd +, +wid +è + `shiáed +Ð + `lowmasked +(i,wid), fld ) + + ) + +71  + #is_£t +( +i +, +æd +è + `Úemasked +(i,æd) + + ) + +74  + #ªy_£t +( +i +, +æd +, +wid +è + `masked +(i,æd,wid) + + ) + +77  + #®l_£t +( +i +, +æd +, +wid +èÐ + `masked +(i,æd,widè=ð + `mask +(æd,widè) + + ) + + @frame.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "%W% %H%"; + +27  + ~"cÝyright.h +" + +30 + $äame_nž +() + +32 + } +} + + @goal.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)goal.c 5.3 9/1/88"; + +27  + ~"cÝyright.h +" + +29  + ~"ba£ty³.h +" + +30  + ~"twšD.h +" + +33 + $Gßl + ( +wšp +, +cu¼’t_size +, +Ãw_size +) + +34 +Tžwš + * +wšp +; + +35 +Size + +cu¼’t_size +, + +36 +Ãw_size +; + +38  +v®ue + = 0.0; + +40 #ifdeà +lšt + + +41 +wšp + = winp; + +44 ià( + `G‘_Width +( +cu¼’t_size +è!ðG‘_Width( +Ãw_size +)) + +45 +v®ue + = (è( + `G‘_Width +( +Ãw_size +è- G‘_Width( +cu¼’t_size +)) / () Get_Width(current_size); + +47 +v®ue + = ()( + `G‘_Height +( +Ãw_size +è- G‘_Height( +cu¼’t_size +)) / ()Get_Height(current_size); + +49 ( +v®ue +); + +50 + } +} + + @goal.h + +29  +Gßl +(); + + @goalP.h + +29  +Gßl +(); + + @gravity.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)gravity.c 5.3 9/1/88"; + +28  + ~<¡dlib.h +> + +29  + ~"cÝyright.h +" + +34  + ~"ba£ty³.h +" + +35  + ~"twšD.h +" + +36  + ~"twš.h +" + +38  +ª_edge + + tEdge +; + +39  + sª_edge + + +41 +Ba£ty³ + + medge_coÜd +; + +42  + m»f_couÁ +; + +43 +Edge + * + mÃxt_edge +; + +46  + #mš +( +a +, +b +èÐ(×è< (b)è? (aè: (bè) + + ) + +48  +Edge + + gx_edge_li¡ +, + +49 + gy_edge_li¡ +; + +55 + $G¿v™y_In™ +() + +57 +x_edge_li¡ +. +Ãxt_edge + = ( +Edge + *è +NULL +; + +58 +y_edge_li¡ +. +Ãxt_edge + = ( +Edge + *è +NULL +; + +59 + } +} + +68 + $G¿v™y_In£¹_Edge +( +edge_coÜd +, +side +) + +69 +Ba£ty³ + +edge_coÜd +; + +70 +Side + +side +; + +72 +Edge + * +´ev_edge +, * +p_edge +, * +tmp_edge +; + +74  +side +) + +76  +TÝ +: + +77  +BÙtom +: + +78 +´ev_edge + = & +y_edge_li¡ +; + +79 +p_edge + = +´ev_edge + -> +Ãxt_edge +; + +82  +Leá +: + +83  +Right +: + +84 +´ev_edge + = & +x_edge_li¡ +; + +85 +p_edge + = +´ev_edge + -> +Ãxt_edge +; + +89 ià( +p_edge + =ð( +Edge + *è +NULL +) + +91 +tmp_edge + = + `®loÿ‹ +( +Edge +, 1); + +92 +tmp_edge + -> +edge_coÜd + =ƒdge_coord; + +93 +tmp_edge + -> +»f_couÁ + = 1; + +94 +tmp_edge + -> +Ãxt_edge + = ( +Edge + *è +NULL +; + +95 +´ev_edge + -> +Ãxt_edge + = +tmp_edge +; + +100 ià( +edge_coÜd + =ð +p_edge + ->ƒdge_coord) + +103 +p_edge + -> +»f_couÁ + += 1; + +106 ià( +edge_coÜd + < +p_edge + ->ƒdge_coord) + +108 +tmp_edge + = + `®loÿ‹ +( +Edge +, 1); + +109 +tmp_edge + -> +edge_coÜd + =ƒdge_coord; + +110 +tmp_edge + -> +»f_couÁ + = 1; + +111 +tmp_edge + -> +Ãxt_edge + = +p_edge +; + +112 +´ev_edge + -> +Ãxt_edge + = +tmp_edge +; + +117 ià( +p_edge + -> +Ãxt_edge + =ð( +Edge + *è +NULL +) + +122 +tmp_edge + = + `®loÿ‹ +( +Edge +, 1); + +123 +tmp_edge + -> +edge_coÜd + =ƒdge_coord; + +124 +tmp_edge + -> +»f_couÁ + = 1; + +125 +tmp_edge + -> +Ãxt_edge + = ( +Edge + *è +NULL +; + +126 +p_edge + -> +Ãxt_edge + = +tmp_edge +; + +130 +´ev_edge + = +p_edge +; + +132  ( +p_edge + =…_edg-> +Ãxt_edge +è!ð( +Edge + *è +NULL + ); + +133 + } +} + +142 + $G¿v™y_D–‘e_Edge +( +coÜd +, +side +) + +143 +Ba£ty³ + +coÜd +; + +144 +Side + +side +; + +146 +Edge + * +p_edge +, * +´ev_edge +; + +148  +side +) + +150  +TÝ +: + +151  +BÙtom +: + +152 +´ev_edge + = & +y_edge_li¡ +; + +153 +p_edge + = +´ev_edge + -> +Ãxt_edge +; + +156  +Leá +: + +157  +Right +: + +158 +´ev_edge + = & +x_edge_li¡ +; + +159 +p_edge + = +´ev_edge + -> +Ãxt_edge +; + +163  +p_edge + !ð( +Edge + *è +NULL +) + +165 ià( +p_edge + -> +edge_coÜd + =ð +coÜd +) + +167 +p_edge + -> +»f_couÁ + -= 1; + +169 ià( +p_edge + -> +»f_couÁ + == 0) + +171 +´ev_edge + -> +Ãxt_edge + = +p_edge + ->‚ext_edge; + +172 + `ä“ +((*) +p_edge +); + +176 +´ev_edge + = +p_edge +; + +177 +p_edge + =…_edg-> +Ãxt_edge +; + +179 + } +} + +186  +Ba£ty³ + + +187 + $G¿v™y_Clo£¡_Edge +( +edge_coÜd +, +edge_li¡ +) + +188 +Ba£ty³ + +edge_coÜd +; + +189 +Edge + +edge_li¡ +; + +191 +Ba£ty³ + +æoÜ_coÜd + = (Basetype) 0; + +192 +Ba£ty³ + +æoÜ_di¡ +, +ûž_di¡ +; + +193 +Edge + * +p_edge + = +edge_li¡ +. +Ãxt_edge +; + +195 ià( +p_edge + =ð( +Edge + *è +NULL +) + +198  +p_edge + !ð( +Edge + *è +NULL +) + +200 ià( +edge_coÜd + < +p_edge + ->ƒdge_coord) + +202 +ûž_di¡ + = +p_edge + -> +edge_coÜd + -ƒdge_coord; + +204 ià( +p_edge + =ð +edge_li¡ +. +Ãxt_edge +) + +205 ( +ûž_di¡ +); + +207 iàÐ + `abs +( +æoÜ_di¡ + = +æoÜ_coÜd + - +edge_coÜd +) + +208 <ð +ûž_di¡ + ) + +209 ( +æoÜ_di¡ +); + +211  ( +ûž_di¡ +); + +213 ià( +edge_coÜd + =ð +p_edge + ->ƒdge_coord) + +218 +æoÜ_coÜd + = +p_edge + -> +edge_coÜd +; + +219 +p_edge + =…_edg-> +Ãxt_edge +; + +223 ( +æoÜ_coÜd + - +edge_coÜd +); + +224 + } +} + +229 +Ba£ty³ + + +230 + $G¿v™y_Adju¡_Edge +( +coÜd +, +side +) + +231 +Ba£ty³ + +coÜd +; + +232 +Side + +side +; + +234 +Ba£ty³ + +veùÜ +; + +236 ià( + `Tžwš_G‘_Glob®_O±iÚ +( +ENABLE_GRAVITY +è=ð +TRUE +) + +238  +side +) + +240  +Leá +: + +241  +Right +: + +242 +veùÜ + = + `G¿v™y_Clo£¡_Edge +( +coÜd +, +x_edge_li¡ +); + +245  +TÝ +: + +246  +BÙtom +: + +247 +veùÜ + = + `G¿v™y_Clo£¡_Edge +( +coÜd +, +y_edge_li¡ +); + +253 ià( + `Tžwš_G‘_G¿v™y +(è< + `abs +( +veùÜ +)) + +254 +veùÜ + = 0; + +256 +coÜd + +ð +veùÜ +; + +259  +side +) + +261  +Leá +: + +262  +TÝ +: + +263 ià( + `Is_Odd_Numb” +( +coÜd +)) + +264 +coÜd +++; + +267  +Right +: + +268  +BÙtom +: + +269 ià( + `Is_Ev’_Numb” +( +coÜd +)) + +270 +coÜd +--; + +274 ( +coÜd +); + +275 + } +} + +281 + $G¿v™y_Adju¡ +( +»ùp +) + +282 +TWReùªgË + * +»ùp +; + +284 +»ùp + -> +Ëá_x + = + `G¿v™y_Adju¡_Edge +Ôeù°->†eá_x, +Leá +); + +285 +»ùp + -> +right_x + = + `G¿v™y_Adju¡_Edge +Ôeù°->„ight_x, +Right +); + +286 +»ùp + -> +tÝ_y + = + `G¿v™y_Adju¡_Edge +Ôeù°->Ý_y, +TÝ +); + +287 +»ùp + -> +bÙtom_y + = + `G¿v™y_Adju¡_Edge +Ôeù°-> bÙtom_y, +BÙtom +); + +288 + } +} + +290 +Ba£ty³ + + +291 + $G¿v™y_Difã»nû +( +coÜd +, +side +) + +292 +Ba£ty³ + +coÜd +; + +293 +Side + +side +; + +295 +Ba£ty³ + +diff +; + +297  +side +) { + +298  +Leá +: + +299  +Right +: + +300 +diff + = + `G¿v™y_Clo£¡_Edge +( +coÜd +, +x_edge_li¡ +); + +302  +TÝ +: + +303  +BÙtom +: + +304 +diff + = + `G¿v™y_Clo£¡_Edge +( +coÜd +, +y_edge_li¡ +); + +308 ( + `abs +( +diff +)); + +309 + } +} + +310 #ifdeà +WM_DEBUG + + +311  + ~<¡dio.h +> + +314 + $G¿v™y_Pršt_Li¡s +() + +316 +Edge + * +x_edge + = +x_edge_li¡ +. +Ãxt_edge +; + +317 +Edge + * +y_edge + = +y_edge_li¡ +. +Ãxt_edge +; + +319 + `´štf +("X Edge List\n"); + +320  +x_edge + !ð( +Edge + *è +NULL +) { + +321 + `´štf +("%d ", +x_edge +-> +edge_coÜd +); + +322 +x_edge + = x_edge-> +Ãxt_edge +; + +325 + `´štf +("\nY Edge List\n"); + +326  +y_edge + !ð( +Edge + *è +NULL +) { + +327 + `´štf +("%d ", +y_edge +-> +edge_coÜd +); + +328 +y_edge + = y_edge-> +Ãxt_edge +; + +331 + `´štf +("\n"); + +332 + } +} + + @gravity.h + +28 #iâdeà +BASETYPE + + +29  + ~"ba£ty³.h +" + +32  + #GRAVITY + + + ) + +35  +G¿v™y_In£¹_Edge +(); + +40  +G¿v™y_D–‘e_Edge +(); + +45  +G¿v™y_Adju¡ +(); + +49 +Ba£ty³ + +G¿v™y_Adju¡_Edge +(); + +54  +G¿v™y_In™ +(); + +56 +Ba£ty³ + +G¿v™y_Difã»nû +(); + + @gray1_32.h + +1  + #g¿y1_32_width + 32 + + ) + +2  + #g¿y1_32_height + 32 + + ) + +3  + gg¿y1_32_b™s +[] = { + + @icons.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "%W% %H%"; + +27  + ~"cÝyright.h +" + +29  + ~"ba£ty³.h +" + +30  + ~"uwšD.h +" + +31  + ~"assoc.h +" + +32  + ~"d¿w.h +" + +34  + ~ + +35  + ~ + +36  + ~"xio.h +" + +38  + ~"icÚs/¹l_icÚ.h +" + +40  +Pixm­ + + +41 + g¹l_icÚ +; + +48 + $IcÚs_Lßd +() + +51 +¹l_icÚ + = ( +Pixm­ +è + `XC»©eB™m­FromD©a +( +dpy +, +roÙ +, + +52 +¹l_icÚ_b™s +, + +53 +¹l_icÚ_width +, + +54 +¹l_icÚ_height +); + +55 + } +} + +62 + $IcÚs_De¡roy +() + +65 + `XF»ePixm­ +( +dpy +, +¹l_icÚ +); + +66 + } +} + +71  +Size + + $IcÚs_Pixm­_Size +Ð +pix + ) + +72 +Pixm­ + +pix +; + +74 +Wšdow + +w +; + +75  +x +, +y +; + +76  +width +, +height +; + +77  +bÜd”_width +; + +78  +d•th +; + +79 +Size + +siz +; + +81 + `XG‘Geom‘ry +Ð +dpy +, +pix +, & +w +, & +x +, & +y +, + +82 & +width +, & +height +, + +83 & +bÜd”_width +, & +d•th + ); + +85 +siz +. +width + = width; + +86 +siz +. +height + = height; + +88  +siz +; + +89 + } +} + +93  +Pixm­ + + gicÚ_pixm­ +; + +95  +boÞ + + $IcÚs_R—d_B™m­_Fže +Ð +fžÇm + ) + +96 * +fžÇm +; + +98  +width +, +height +; + +99  +x_hÙ +, +y_hÙ +; + +100  +¡©us +; + +102 +¡©us + = + `XR—dB™m­Fže +( +dpy +, +roÙ +, +fžÇm +, + +103 & +width +, & +height +, + +104 & +icÚ_pixm­ +, & +x_hÙ +, & +y_hÙ +); + +110  ( +¡©us + =ð +B™m­Sucûss +); + +111 + } +} + +117 +Size + + $IcÚs_S‘ +Ð +uwšp +, +siz +, +fžÇm + ) + +118 +U£rwš + * +uwšp +; + +119 +Size + +siz +; + +120 * +fžÇm +; + +122 +boÞ + + `O³n_R—d_W™h +(); + +124 +uwšp +-> +icÚpix_³ndšg + = +NÚe +; + +126 iàÐ +fžÇm + !ð +NULL + ) + +128 iàÐ + `O³n_R—d_W™h +Ð +fžÇm +, +IcÚs_R—d_B™m­_Fže + ) ) + +129 +uwšp +-> +icÚpix + = +icÚ_pixm­ +; + +132 iàÐ +uwšp +-> +icÚpix + =ð +NÚe + ) + +133  +siz +; + +135  + `IcÚs_Pixm­_Size +Ð +uwšp +-> +icÚpix + ); + +137 + } +} + +144 + $IcÚs_S‘_RŽ_IcÚ +( +uwšp +) + +145 +U£rwš + * +uwšp +; + +148 +uwšp +-> +icÚpix + = +¹l_icÚ +; + +149 + } +} + + @init_tws.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)init_tws.c 5.3 9/7/88"; + +27  + ~"cÝyright.h +" + +31  + #NULL_DEFN + + + ) + +33  + ~"tžeD.h +" + +34  + ~"tže-li¡P.h +" + +37 +Tže + * + gTže_©_CP +; + +39 +Tže + * + gNuÎ_Tže +; + +42  + gtže_Çme + = 0; + +44 +Tže_EËm’t + * + g‹_ä“li¡ + = +TENULL +; + +49  +boÞ + + gtžes_š™Ÿlized + = +FALSE +; + +61 + $Tže_In™_Tws +( +Ëá_x +, +right_x +, +bÙtom_y +, +tÝ_y +) + +62 +Ba£ty³ + +Ëá_x +, +right_x +, +bÙtom_y +, +tÝ_y +; + +64 +Tže + * +tž• +; + +66 ià( +tžes_š™Ÿlized + =ð +FALSE +){ + +67 +NuÎ_Tže + = + `®loÿ‹ +( +Tže +, 1); + +68 + `Tže_S‘_Wš +( +NuÎ_Tže +, ( +poš‹r +è +NULL +); + +70 + `Œ_¡™ch +( +NuÎ_Tže +) = + +71 + `¹_¡™ch +( +NuÎ_Tže +) = + +72 + `bl_¡™ch +( +NuÎ_Tže +) = + +73 + `lb_¡™ch +( +NuÎ_Tže +èð +NULL_TILE +; + +74 + `Tže_S‘_Name +( +NuÎ_Tže +, +tže_Çme +++); + +78 +tž• + = + `®loÿ‹ +( +Tže +, 1); + +79 + `Tže_S‘_Name +( +tž• +, +tže_Çme +++); + +80 + `Tže_S‘_Ty³ +( +tž• +, +S·û +); + +81 + `Tže_S‘_Wš +( +tž• +, ( +poš‹r +è +NULL +); + +83 + `Œ_¡™ch +( +tž• +) = + +84 + `¹_¡™ch +( +tž• +) = + +85 + `bl_¡™ch +( +tž• +) = + +86 + `lb_¡™ch +( +tž• +èð +NULL_TILE +; + +88 +Tže_©_CP + = +tž• +; + +90 +tžes_š™Ÿlized + = +TRUE +; + +94 + `Leá_X +( +Tže_©_CP +èð +Ëá_x +; + +95 + `Right_X +( +Tže_©_CP +èð +right_x +; + +96 + `BÙtom_Y +( +Tže_©_CP +èð +bÙtom_y +; + +97 + `TÝ_Y +( +Tže_©_CP +èð +tÝ_y +; + +99 + } +} + + @input.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "%W% %H%"; + +28  + ~"cÝyright.h +" + +30  + ~<¡dio.h +> + +31  + ~<¡dlib.h +> + +33  + ~"ba£ty³.h +" + +34  + ~"bu‰ÚsD.h +" + +35  + ~"u£rglobD.h +" + +36  + ~"uwšXD.h +" + +38  + ~"cÚŒÞ.h +" + +39  + ~"cu¼’t.h +" + +40  + ~"ev’ts.h +" + +41  + ~"mªage.h +" + +42  + ~"þ›Á.h +" + +43  + ~"assoc.h +" + +44  + ~"tžeü¤.h +" + +45  + ~"d¿w.h +" + +46  + ~"d¿wwš.h +" + +47  + ~"»giÚ.h +" + +48  + ~"š‹rf.h +" + +49  + ~"ev§veX.h +" + +50  + ~"Ïyout.h +" + +52  + ~ + +53  + ~ + +54  + ~ + +56  + ~"ev¡ršgs.h +" + +58  + ~ + +59  + ~ + +60  + ~ + +62  + #RTL_VERSION + "5.1" + + ) + +63  + ~"·tchËv–.h +" + +65 #iâdeà +RTLDISPLAY + + +66  + #RTLDISPLAY + +NULL + + + ) + +69  + ~"smdebug.h +" + +72 +Wšdow + + groÙ +; + +73 +Di¥Ïy + * + gdpy +; + +74  + gsün +; + +75 +poš‹r + + g¡ackp +; + +76 +Wšdow + + gŒªs›Á_¶ªe +; + +78 +XEv’t + * + gcu¼’t_Xev’t +; + +80  +Time + + gÏ¡_bu‰Ú_time +, + gtimeout_time +; + +82  +boÞ + + gtim”_£t + = +FALSE +; + +86  +boÞ + + glimbo +; + +88  +IÅut_Upd©e_Cu¼’t_Pos™iÚ +(); + +89  +ToÞ_In™Ÿ‹ +(); + +90  +IÁ”f_R“Á”_RegiÚ +(); + +92 * + gdi¥Ïy +; + +96  + $IÅut_R“Á” +() + +98 + `IÅut_Upd©e_Cu¼’t_Pos™iÚ +(); + +100 +cu¼’t_uwšp + = + `Mªage_Loÿ‹ +Ð +cu¼’t_pos + ); + +101 +cu¼’t_»giÚ + = + `RegiÚ_Loÿ‹ +Ð +cu¼’t_uwšp +, +cu¼’t_pos + ); + +102 + } +} + +106  + $IÅut_D‘”mše_Bu‰Ús +() + +108 + } +} + +112  + $IÅut_Upd©e_Bu‰Ú_S‹ +Ð +¡©e + ) + +113  +¡©e +; + +115 ià( +¡©e + & +Bu‰Ú1Mask +) + +116 + `Bu‰Ús_Down +Ð +cu¼’t_but¡©e +, 0 ); + +118 + `Bu‰Ús_Up +Ð +cu¼’t_but¡©e +, 0 ); + +119 ià( +¡©e + & +Bu‰Ú2Mask +) + +120 + `Bu‰Ús_Down +Ð +cu¼’t_but¡©e +, 1 ); + +122 + `Bu‰Ús_Up +Ð +cu¼’t_but¡©e +, 1 ); + +123 ià( +¡©e + & +Bu‰Ú3Mask +) + +124 + `Bu‰Ús_Down +Ð +cu¼’t_but¡©e +, 2 ); + +126 + `Bu‰Ús_Up +Ð +cu¼’t_but¡©e +, 2 ); + +127 + } +} + +131  + $IÅut_Upd©e_Cu¼’t_Pos™iÚ +() + +133 +Wšdow + +wroÙ +, +chžd +; + +134  +wš_x +, +wš_y +; + +135  +bmask +; + +137 (è + `XQu”yPoš‹r +( +dpy +, +roÙ +, & +wroÙ +, & +chžd +, + +138 & +cu¼’t_pos +. +x +, &cu¼’t_pos. +y +, + +139 & +wš_x +, & +wš_y +, & +bmask +); + +140 + } +} + +145  +TWRegiÚ + + $IÅut_G‘_RegiÚ +Ð +w +, +uwšp + ) + +146 +Wšdow + +w +; + +147 +U£rwš + * +uwšp +; + +149 +TWRegiÚ + +»giÚ +; + +151 ià( +uwšp + =ð +UWIN_NULL +) + +152 +»giÚ + = +back_»giÚ +; + +153 ià( +uwšp +-> +cu¼’t_ty³ + =ð +¹l +) + +154 +»giÚ + = +¹l_»giÚ +; + +157 ià( +w + =ð + `U£rwš_XCl›Á +( +uwšp +)) + +158 +»giÚ + = +body_»giÚ +; + +160 ià( +w + =ð + `U£rwš_XH—d” +( +uwšp +)) + +161 +»giÚ + = +h—d”_»giÚ +; + +163 ià( +w + =ð + `U£rwš_XIcÚ +( +uwšp +)) + +164 +»giÚ + = +icÚ_»giÚ +; + +166 ià( +w + =ð + `U£rwš_XTÝBÜd” +( +uwšp +)) + +167 +»giÚ + = +tÝ_»giÚ +; + +168 ià( +w + =ð + `U£rwš_XLeáBÜd” +( +uwšp +)) + +169 +»giÚ + = +Ëá_»giÚ +; + +170 ià( +w + =ð + `U£rwš_XRightBÜd” +( +uwšp +)) + +171 +»giÚ + = +right_»giÚ +; + +172 ià( +w + =ð + `U£rwš_XBÙtomBÜd” +( +uwšp +)) + +173 +»giÚ + = +bÙtom_»giÚ +; + +175 ià( +w + =ð + `U£rwš_XTÝLeáCÜÃr +( +uwšp +)) + +176 +»giÚ + = +tÝ_Ëá_»giÚ +; + +177 ià( +w + =ð + `U£rwš_XTÝRightCÜÃr +( +uwšp +)) + +178 +»giÚ + = +tÝ_right_»giÚ +; + +179 ià( +w + =ð + `U£rwš_XBÙtomLeáCÜÃr +( +uwšp +)) + +180 +»giÚ + = +bÙtom_Ëá_»giÚ +; + +181 ià( +w + =ð + `U£rwš_XBÙtomRightCÜÃr +( +uwšp +)) + +182 +»giÚ + = +bÙtom_right_»giÚ +; + +184 ià( +w + =ð + `U£rwš_XZoomGadg‘ +( +uwšp +)) + +185 +»giÚ + = +zoom_gadg‘_»giÚ +; + +187 ià( +w + =ð + `U£rwš_XMoveGadg‘ +( +uwšp +)) + +188 +»giÚ + = +move_gadg‘_»giÚ +; + +190  +»giÚ +; + +191 + } +} + +195  +XCompo£Stus + + gcompo£_¡©us + = { +NULL +, 0}; + +197  + $IÅut_HªdË_KeyP»ss +Ð +ev + ) + +198 +XEv’t + * +ev +; + +200  +bufãr +[10]; + +201  +n + = 10; + +202  +Ën +; + +204 ià( +limbo + =ð +FALSE +) + +206 +cu¼’t_time + = +ev +-> +xkey +. +time +; + +207 +Ën + = + `XLookupSŒšg +(( +XKeyEv’t + *) +ev +, + +208 +bufãr +, +n +, + +209 ( +KeySym + *è +NULL +, + +210 & +compo£_¡©us +); + +212 ià( +Ën + > 0) + +213 +cu¼’t_ch + = +bufãr +[0]; + +215 +cu¼’t_ch + = '\0'; + +217 +cu¼’t_pos +. +x + = +ev +-> +xkey +. +x_roÙ +; + +218 +cu¼’t_pos +. +y + = +ev +-> +xkey +. +y_roÙ +; + +221 + `SMTRANS +( +KEY +); + +224 + `XAÎowEv’ts +( +dpy +, +AsyncKeybßrd +, +Cu¼’tTime +); + +225 + } +} + +229  + #X_TO_SUN_MSBUTTON +( +but +èÐ(butè- 1 ) + + ) + +231  + $IÅut_HªdË_Bu‰ÚP»ss +Ð +ev + ) + +232 +XEv’t + * +ev +; + +234 ià( +limbo + =ð +FALSE +) + +236 +cu¼’t_time + = +ev +-> +xbu‰Ú +. +time +; + +238 +cu¼’t_but + = + +239 Ð + `X_TO_SUN_MSBUTTON +( +ev +-> +xbu‰Ú +. +bu‰Ú +) + +240 | ( +ev +-> +xbu‰Ú +. +¡©e + & +ShiáMask + ? +SHIFT_DOWN + : 0 ) + +241 | ( +ev +-> +xbu‰Ú +. +¡©e + & +CÚŒÞMask + ? +CTRL_DOWN + : 0 ) + +244 +cu¼’t_pos +. +x + = +ev +-> +xbu‰Ú +. +x_roÙ +; + +245 +cu¼’t_pos +. +y + = +ev +-> +xbu‰Ú +. +y_roÙ +; + +247 +Ï¡_bu‰Ú_time + = +ev +-> +xbu‰Ú +. +time +; + +249 + `IÅut_Upd©e_Bu‰Ú_S‹ +Ð +ev +-> +xbu‰Ú +. +¡©e + ); + +250 + `Bu‰Ús_Down +Ð +cu¼’t_but¡©e +, +cu¼’t_but + ); + +251 + `SMTRANS +( +DOWN +); + +253 + `XAÎowEv’ts +( +dpy +, +AsyncPoš‹r +, +Cu¼’tTime +); + +254 + } +} + +258  + $IÅut_HªdË_Bu‰ÚR–—£ +Ð +ev + ) + +259 +XEv’t + * +ev +; + +261 ià( +limbo + =ð +FALSE +) + +263 +cu¼’t_time + = +ev +-> +xbu‰Ú +. +time +; + +265 +cu¼’t_but + = + +266 Ð + `X_TO_SUN_MSBUTTON +( +ev +-> +xbu‰Ú +. +bu‰Ú +) + +267 | ( +ev +-> +xbu‰Ú +. +¡©e + & +ShiáMask + ? +SHIFT_DOWN + : 0 ) + +268 | ( +ev +-> +xbu‰Ú +. +¡©e + & +CÚŒÞMask + ? +CTRL_DOWN + : 0 ) + +271 +cu¼’t_pos +. +x + = +ev +-> +xbu‰Ú +. +x_roÙ +; + +272 +cu¼’t_pos +. +y + = +ev +-> +xbu‰Ú +. +y_roÙ +; + +274 + `IÅut_Upd©e_Bu‰Ú_S‹ +Ð +ev +-> +xbu‰Ú +. +¡©e + ); + +275 + `Bu‰Ús_Up +Ð +cu¼’t_but¡©e +, +cu¼’t_but + ); + +276 + `SMTRANS +( +UP +); + +278 + `XAÎowEv’ts +( +dpy +, +AsyncPoš‹r +, +Cu¼’tTime +); + +279 + } +} + +283  + $IÅut_HªdË_MÙiÚ +Ð +ev + ) + +284 +XEv’t + * +ev +; + +289  + `XCheckTy³dEv’t +( +dpy +, +MÙiÚNÙify +, +ev +)) + +292 + `IÅut_Upd©e_Cu¼’t_Pos™iÚ +(); + +294 +cu¼’t_time + = +ev +-> +xmÙiÚ +. +time +; + +296 + `SMTRANS +( +MOUSE +); + +297 + } +} + +301  + $IÅut_HªdË_EÁ” +Ð +ev + ) + +302 +XEv’t + * +ev +; + +304 +Wšdow + +w +; + +306 ià(! + `CÚŒÞ_Poš‹r_G¿bbed +() ) + +311  + `XCheckTy³dEv’t +( +dpy +, +EÁ”NÙify +, +ev +)) + +314 +limbo + = +FALSE +; + +315 +cu¼’t_time + = +ev +-> +xüossšg +. +time +; + +316 ià( +ev +-> +xüossšg +. +mode + !ð +NÙifyG¿b +) + +318 +w + = +ev +-> +xüossšg +. +wšdow +; + +319 +cu¼’t_uwšp + = ( +U£rwš + *è + `Assoc_G‘ +Ð +w + ); + +320 +cu¼’t_»giÚ + = + `IÅut_G‘_RegiÚ +Ð +w +, +cu¼’t_uwšp + ); + +321 + `SMTRANS +( +ENTER +); + +324 + } +} + +328  + $IÅut_HªdË_L—ve +Ð +ev + ) + +329 +XEv’t + * +ev +; + +331 +U£rwš + * +uwšp +; + +332 +Wšdow + +w +; + +334 ià(! + `CÚŒÞ_Poš‹r_G¿bbed +() ) + +339  + `XCheckTy³dEv’t +( +dpy +, +L—veNÙify +, +ev +)) + +342 ià( +ev +-> +xüossšg +. +mode + =ð +NÙifyNÜm® +) + +343 +limbo + = +TRUE +; + +346 +w + = +ev +-> +xüossšg +. +wšdow +; + +347 +uwšp + = ( +U£rwš + *è + `Assoc_G‘ +Ð +w + ); + +348 +cu¼’t_time + = +ev +-> +xüossšg +. +time +; + +350 iàÐ +ev +-> +xüossšg +. +mode + =ð +NÙifyNÜm® + && + +351 +uwšp + !ð +UWIN_NULL + && + +352 ( +ev +-> +xüossšg +. +wšdow + =ð + `U£rwš_XP¬’tWš +( +uwšp +) || + +353 +ev +-> +xüossšg +. +wšdow + =ð + `U£rwš_XIcÚ +( +uwšp +)) && + +354 +uwšp + =ð +cu¼’t_uwšp +) + +356 + `SMTRANS +( +LEAVE +); + +360 + } +} + +364  + $IÅut_HªdË_FocusIn +Ð +ev + ) + +365 +XEv’t + * +ev +; + +367 +U£rwš + * +uwšp +; + +368 +Wšdow + +w +; + +370 iàÐ +ev +-> +xfocus +. +mode + =ð +NÙifyNÜm® + ) + +372 +w + = +ev +-> +xfocus +. +wšdow +; + +373 +uwšp + = ( +U£rwš + *è + `Assoc_G‘ +Ð +w + ); + +374 ià(( +uwšp + !ð( +U£rwš + *) +NULL +) && + +375 ( + `U£rwš_XT¿ns›Á_FÜ +( +uwšp +è=ð +NÚe +)) + +376 + `IÁ”f_HªdË_FocusIn +( +uwšp +); + +379 + } +} + +383  + $IÅut_HªdË_Expo£ +Ð +ev + ) + +384 +XEv’t + * +ev +; + +386 +U£rwš + * +uwšp +; + +387 +Wšdow + +w +; + +389 +w + = +ev +-> +xexpo£ +. +wšdow +; + +390 +uwšp + = ( +U£rwš + *è + `Assoc_G‘ +Ð +w + ); + +392 ià( +uwšp + !ð( +U£rwš + *è +NULL +) + +394 ià( +ev +-> +xexpo£ +. +couÁ + == 0) + +396 ià( +w + =ð + `U£rwš_XP¬’tWš +( +uwšp +)) + +398 + `D¿wwš_Di¥Ïy_W¿µšg +( +uwšp +); + +400 ià( +w + =ð + `U£rwš_XIcÚ +( +uwšp +)) + +402 + `D¿wIcÚ_Di¥Ïy +( +uwšp +); + +406 + } +} + +410  + $IÅut_HªdË_Ev’t +( +ev +) + +411 +XEv’t + * +ev +; + +413  +ev +-> +ty³ +) + +416  +KeyP»ss +: + +417 + `IÅut_HªdË_KeyP»ss +Ð +ev + ); + +420  +Bu‰ÚP»ss +: + +421 + `IÅut_HªdË_Bu‰ÚP»ss +Ð +ev + ); + +424  +Bu‰ÚR–—£ +: + +425 + `IÅut_HªdË_Bu‰ÚR–—£ +Ð +ev + ); + +428  +MÙiÚNÙify +: + +429 + `IÅut_HªdË_MÙiÚ +Ð +ev + ); + +432  +EÁ”NÙify +: + +433 + `IÅut_HªdË_EÁ” +Ð +ev + ); + +436  +L—veNÙify +: + +437 + `IÅut_HªdË_L—ve +Ð +ev + ); + +440  +FocusIn +: + +441 + `IÅut_HªdË_FocusIn +Ð +ev + ); + +444  +Expo£ +: + +445 + `IÅut_HªdË_Expo£ +Ð +ev + ); + +452 + } +} + +462 + $IÅut_HªdË_Tim” +() + +465 + `IÅut_Upd©e_Cu¼’t_Pos™iÚ +(); + +467 + `SMTRANS +( +WAIT +); + +469 +tim”_£t + = +FALSE +; + +470 + } +} + +476 + $IÅut_Cªûl_Wa™ +() + +478 +tim”_£t + = +FALSE +; + +479 + } +} + +484  + $IÅut_Wa™ +( +timeout +) + +485  +timeout +; + +487 ià( +tim”_£t + =ð +FALSE +) + +490 +timeout_time + = +Ï¡_bu‰Ú_time + + +timeout +; + +491 +tim”_£t + = +TRUE +; + +493 + } +} + +503  + $IÅut_Chªge_Pos +Ð +± + ) + +504 +TWPošt + +± +; + +508 + `XW¬pPoš‹r +( +dpy +, +NÚe +, None, + +510 +± +. +x +,…t. +y +); + +512 + `IÅut_Upd©e_Cu¼’t_Pos™iÚ +(); + +514 + } +} + +520 + $IÅut_S‘_Pos +Ð +± + ) + +521 +TWPošt + +± +; + +524 + `XW¬pPoš‹r +( +dpy +, +NÚe +, +roÙ +, + +526 +± +. +x +,…t. +y +); + +528 +cu¼’t_pos + = +± +; + +530 + `XFlush +( +dpy +); + +531 + } +} + +533  + $IÅut_HªdË_Chžd +( +sig +, +code +, +sý +) + +534  +sig +, +code +; + +535  +sigcÚ‹xt + * +sý +; + +537  +wa™ + +¡©us +; + +538  +ru§ge + +ru +; + +540 (è + `wa™3 +(& +¡©us +, +WNOHANG +, & +ru +); + +542 + } +} + +549  + $IÅut_S‘up +() + +551  + `E¼Ü_HªdËr +(); + +552  + `Ex™ +(); + +553 +XS‘WšdowA‰ribu‹s + +©Œ +; + +555 + `´štf +( "\nStartinghe Siemens RTL Tiled Window Manager, " ); + +556 + `´štf +("V”siÚ %s, R–—£ %d\n", +RTL_VERSION +, +PATCHLEVEL +); + +557 + `fæush +( +¡dout +); + +559 iàÐ( +dpy + = + `XO³nDi¥Ïy +( +di¥Ïy +)è=ð( +Di¥Ïy + *è +NULL + ) + +561 + `årštf +( +¡d”r +, "RTL: Could‚ot open display device,ƒxiting!\n"); + +562 + `ex™ +(1); + +565 (è + `sigÇl +( +SIGHUP +, +SIG_IGN +); + +566 (è + `sigÇl +( +SIGINT +, +Ex™ +); + +567 (è + `sigÇl +( +SIGTERM +, +Ex™ +); + +568 (è + `sigÇl +( +SIGPIPE +, +Ex™ +); + +569 (è + `sigÇl +( +SIGCHLD +, +IÅut_HªdË_Chžd +); + +571 + `XS‘E¼ÜHªdËr +( +E¼Ü_HªdËr +); + +573 +sün + = + `DeçuÉSü“n +( +dpy +); + +574 +roÙ + = + `RoÙWšdow +( +dpy +, +sün +); + +578 +©Œ +. +ov”ride_»dœeù + = +True +; + +579 +Œªs›Á_¶ªe + = + `XC»©eWšdow +Ð +dpy +, +roÙ +, 0, 0, + +582 +IÅutOÆy +, +CÝyFromP¬’t +, + +583 (è( +CWOv”rideRedœeù +), + +584 & +©Œ + ); + +585 + } +} + +589  + $IÅut_In™ +() + +591  +”rÜStus +; + +592  + `Pau£_RTL +(); + +594 +”rÜStus + = +F®£ +; + +596 + `XS–eùIÅut +( +dpy +, +roÙ +, +Sub¡ruùu»RedœeùMask + | +Sub¡ruùu»NÙifyMask + | + +597 +Bu‰ÚP»ssMask + | +Bu‰ÚR–—£Mask + | +KeyP»ssMask + | + +598 +EÁ”WšdowMask + | +L—veWšdowMask + ); + +600 + `XSync +( +dpy +, +F®£ +); + +602 ià( +”rÜStus + =ð +True +) + +604 + `´štf +("\nYou must be„unning‡nother window manager, bye!\n"); + +605 + `Pau£_RTL +(); + +608 ià( + `Assoc_In™TabË +(è=ð +FALSE +) + +610 + `årštf +( +¡d”r +, "Could‚ot set up X„esource-associationable!\n"); + +611 + `Pau£_RTL +(); + +617 ià(( +”rÜStus + = + `fúŽ +( + `CÚÃùiÚNumb” +( +dpy +), +F_SETFD +, 1)) == -1) + +619 + `årštf +( +¡d”r +, "RTL: Child…rocesses have TCP fd,ƒxiting!\n"); + +620 + `Pau£_RTL +(); + +623 + `XDefšeCursÜ +( +dpy +, +roÙ +, ( +XID +è +background_tžecursÜ +); + +624 + `Bu‰Ús_Cˬ +Ð +cu¼’t_but¡©e + ); + +626 + } +} + +630  + $IÅut_S‘_DesktÝ_Size +() + +632 +Size + +desksiz +; + +633 +Wšdow + +»ŒoÙ +; + +634  +roÙ_x +, +roÙ_y +; + +635  +roÙ_width +, +roÙ_height +; + +636  +bw +, +d•th +; + +638 (è + `XG‘Geom‘ry +( +dpy +, ( +D¿wabË +è +roÙ +, & +»ŒoÙ +, + +639 & +roÙ_x +, & +roÙ_y +, + +640 & +roÙ_width +, & +roÙ_height +, + +641 & +bw +, & +d•th +); + +643 + `U£rGlob®s_S‘_V®ue +Ð +FULL_WIDTH +, +roÙ_width + ); + +644 + `U£rGlob®s_S‘_V®ue +Ð +FULL_HEIGHT +, +roÙ_height + ); + +646 +desksiz +. +width + = +roÙ_width +; + +647 +desksiz +. +height + = +roÙ_height +; + +649 + `Mªage_S‘_DesktÝ_Size +Ð +desksiz + ); + +650 + } +} + +654  + $IÅut_S‘_IcÚ_Sizes +() + +656 +XIcÚSize + +icÚ_size +; + +658 +icÚ_size +. +mš_width + = 64; + +659 +icÚ_size +. +mš_height + = 64; + +660 +icÚ_size +. +max_width + = 64; + +661 +icÚ_size +. +max_height + = 64; + +662 +icÚ_size +. +width_šc + = 0; + +663 +icÚ_size +. +height_šc + = 0; + +665 + `XS‘IcÚSizes +( +dpy +, +roÙ +, & +icÚ_size +, 1); + +666 + } +} + +670  + $IÅut_Proûss_Ev’t +() + +672 +XEv’t + +ev +; + +674 ià( +tim”_£t + =ð +TRUE + && ( +cu¼’t_time + >ð +timeout_time +)) + +675 + `IÅut_HªdË_Tim” +(); + +677 ià( + `QL’gth +( +dpy +) == 0) + +678 + `XFlush +( +dpy +); + +679 + `XNextEv’t +( +dpy +, & +ev +); + +681 ià( +ev +. +xªy +. +£nd_ev’t + =ð +True +) + +687 ià( +ev +. +ty³ + =ð +MÙiÚNÙify + && (! + `CÚŒÞ_Poš‹r_G¿bbed +() ) ) + +690 iàÐ + `CÚŒÞ_Poš‹r_G¿bbed +() && + +691 !( +ev +. +ty³ + =ð +MÙiÚNÙify + || + +692 +ev +. +ty³ + =ð +Bu‰ÚP»ss + || + +693 +ev +. +ty³ + =ð +Bu‰ÚR–—£ +)) + +695 + `AddEv’tToStÜe +(& +¡ackp +, +ev +); + +699 +cu¼’t_Xev’t + = & +ev +; + +701 ià( +ev +. +ty³ + < +C»©eNÙify +) + +703 + `IÅut_HªdË_Ev’t +(& +ev +); + +707 + `Redœeù_HªdË_Ev’t +(& +ev +); + +709 + } +} + +713 + $maš +( +¬gc +, +¬gv +) + +714  +¬gc +; + +715 ** +¬gv +; + +717  +u£_¡¬tup_fže + = 0; + +718  +fšish_Ïyout + = 0; + +719  +ignÜe_Ïyout_fže + = 0; + +720  +c +; + +721  + `Wsys_S¹up +(); + +723 +¬gc +--; +¬gv +++; + +724  +¬gc +) + +726 ià( + `¡rcmp +(* +¬gv +, "-display") == 0) + +728 +¬gc +--; +¬gv +++; + +729 ià( +¬gc + > 0) + +730 +di¥Ïy + = * +¬gv +; + +732 ià( + `¡rcmp +(* +¬gv +, "-s") == 0) + +734 +u£_¡¬tup_fže +++; + +736 ià( + `¡rcmp +(* +¬gv +, "-f") == 0) + +738 +fšish_Ïyout +++; + +740 ià( + `¡rcmp +(* +¬gv +, "-i") == 0) + +742 +ignÜe_Ïyout_fže +++; + +744 +¬gc +--; +¬gv +++; + +747 + `IÅut_S‘up +(); + +749 + `XG¿bS”v” +( +dpy +); + +751 + `IÅut_S‘_DesktÝ_Size +(); + +752 + `IÅut_In™ +(); + +753 + `IÁ”f_In™ +(); + +754 + `Mªage_In™ +(); + +755 + `IÁ”f_Re£t +(); + +757 + `IÅut_S‘_IcÚ_Sizes +(); + +759 ià( +ignÜe_Ïyout_fže +) + +760 + `Layout_Fšish +(); + +762 + `Wsys_S¹up +(); + +763 + `XUng¿bS”v” +( +dpy +); + +765 ià( +fšish_Ïyout +) + +766 + `Layout_Fšish +(); + +767 ià( +u£_¡¬tup_fže +) + +768 + `ToÞ_In™Ÿ‹ +(); + +770 + `IÁ”f_R“Á”_RegiÚ +(); + +772 +limbo + = +FALSE +; + +774 +FOREVER + + +775 + `IÅut_Proûss_Ev’t +(); + +776 + } +} + + @input.h + +28 #iâdeà +STD_DEFS + + +29  + ~"¡d_defs.h +" + +32  +IÅut_R“Á” +(); + +34  +IÅut_D‘”mše_Bu‰Ús +(); + +36  +IÅut_S‘_Pos +(); + +39  +IÅut_Chªge_Pos +(); + +41  +IÅut_Wa™ +(); + +44  +IÅut_Cªûl_Wa™ +(); + + @interf.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "%W% %H%"; + +27  + ~<¡dlib.h +> + +28  + ~"cÝyright.h +" + +30  + ~"ba£ty³.h +" + +32  + ~"þ›Á.h +" + +33  + ~"þo£d.h +" + +34  + ~"cÚŒÞ.h +" + +35  + ~"cu¼’t.h +" + +36  + ~"d¿wicÚ.h +" + +37  + ~"d¿wwš.h +" + +38  + ~"ev’ts.h +" + +39  + ~"šput.h +" + +40  + ~"Ïyout.h +" + +41  + ~"mªage.h +" + +42  + ~"mes§ge.h +" + +43  + ~"´ofže.h +" + +44  + ~"»giÚ.h +" + +45  + ~"tžeü¤.h +" + +46  + ~"tžem’u.h +" + +47  + ~"twš.h +" + +48  + ~"toÞ.h +" + +50  + ~"u£rglobD.h +" + +51  + ~"bu‰ÚsD.h +" + +52  + ~"uwšD.h +" + +53  + ~"uwšL.h +" + +55  + #SMDEBUG + + + ) + +56  + ~"smdebug.h +" + +58  + #CLICK_TIME + 290 + + ) + +61 +Bu‰Ús + + gTOOL_BUTTONS +; + +62 +Bu‰Ús + + gDISCONNECT_BUTTONS +; + +63 +Bu‰Ús + + gEXIT_BUTTONS +; + +64 +Bu‰Ús + + gBODY_MANAGER_MENU_BUTTONS +; + +65 +Bu‰Ús + + gBODY_USER_MENU_BUTTONS +; + +66 +Bu‰Ús + + gHEADER_MANAGER_MENU_BUTTONS +; + +67 +Bu‰Ús + + gHEADER_USER_MENU_BUTTONS +; + +68 +Bu‰Ús + + gICON_OPEN_BUTTONS +; + +69 +Bu‰Ús + + gICON_MOVE_BUTTONS +; + +70 +Bu‰Ús + + gCLOSE_BUTTONS +; + +71 +Bu‰Ús + + gREDRAW_BUTTONS +; + +72 +Bu‰Ús + + gZOOM_BUTTONS +; + +73 +Bu‰Ús + + gZOOM_LOCK_BUTTONS +; + +74 +Bu‰Ús + + gDESIRE_BUTTONS +; + +75 +Bu‰Ús + + gENLARGE_BUTTONS +; + +76 +Bu‰Ús + + gMOVE_BUTTONS +; + +77 +Bu‰Ús + + gRELOCATE_BUTTONS +; + +78 +Bu‰Ús + + gEXCHANGE_BUTTONS +; + +79 +Bu‰Ús + + gRESIZE_BUTTONS +; + +80 +Bu‰Ús + + gTOGGLE_GRAVITY_BUTTONS +; + +81 +Bu‰Ús + + gCANCEL_BUTTONS +; + +82 +Bu‰Ús + + gUNDESIRE_BUTTONS +; + +83 +Bu‰Ús + + gFORCE_RESET_MIN_MAX_BUTTONS +; + +84 +Bu‰Ús + + gFORCE_LISTENER_BUTTONS +; + +85 +Bu‰Ús + + gFORCE_ZOOM_BUTTONS +; + +87  +TžeM’u + + gmªag”_t™Ë_m’u +; + +88  +TžeM’u + + gmªag”_toÞ_m’u +; + +89  +TžeM’u + + gmªag”_size_m’u +; + +90  +TžeM’u + + gmªag”_»pÝ_m’u +; + +91  +TžeM’u + + gmªag”_background_m’u +; + +92  +TžeM’u + + gmªag”_icÚ_m’u +; + +93  +TžeM’u + + gmªag”_wšdow_m’u +; + +94  +TžeM’u + + gmªag”_wšdow_ÝtiÚ_m’u +; + +96  +Mes§ge + + gex™msg +; + +97  +Mes§ge + + g·u£msg +; + +98  +Mes§ge + + g§vemsg +; + +99  +Mes§ge + + gsoámsg +; + +100  +Mes§ge + + gh¬dmsg +; + +101  +Mes§ge + + gnÙifymsg +; + +102  +Mes§ge + + ggroupmsg +; + +104  + #u£r_wšdow_još_excursiÚ +( +uwš +, +Ýt +, +v® +, +code +) \ + +106 +boÞ + +‹mp_v® +; \ + +107 +‹mp_v® + = + `U£rwš_G‘_Wšdow_O±iÚ +( +uwš +, +Ýt +); \ + +108 + `U£rwš_S‘_Wšdow_O±iÚ +Ð +uwš +, +Ýt +, ( +‹mp_v® + || +v® +) ); \ + +109 +code +; \ + +110 + `U£rwš_S‘_Wšdow_O±iÚ +( +uwš +, +Ýt +, +‹mp_v® +); \ + +111 } + + ) + +114  +IÁ”f_P»ss +(); + +115  +IÁ”f_Click +(); + +116  +IÁ”f_S“n_Down +(); + +117  +IÁ”f_P»ss_UP +(); + +118  +IÁ”f_Have_L¢r_swInMod +(); + +119  +IÁ”f_G¿bbed_L¢r_swInMod +(); + +120  +IÁ”f_Have_L¢r +(); + +121  +IÁ”f_G¿bbed_L¢r +(); + +122  +IÁ”f_Am_L¢r +(); + +123  +IÁ”f_Gbd_Sbl¢r +(); + +124  +IÁ”f_Am_Sbl¢r +(); + +125  +IÁ”f_Am_Clk_L¢r +(); + +126  +IÁ”f_Gbd_Clk_Sbl¢r +(); + +127  +IÁ”f_Click_Sbl¢r +(); + +128  +IÁ”f_Wa™_Cm¶t_Cªûl +(); + +129  +IÁ”f_Cªûl_H”e +(); + +130  +IÁ”f_Wa™_Com¶‘e +(); + +131  +IÁ”f_Check_Com¶‘e +(); + +132  +IÁ”f_Wa™_FÜ_CÚf +(); + +133  +IÁ”f_Trk_CÚt_CŒ_O²g +(); + +134  +IÁ”f_Trk_CÚt_Cºr_O²g +(); + +135  +IÁ”f_S¹_CÚtšue_O³nšg +(); + +136  +IÁ”f_T¿ck_O³nšg +(); + +137  +IÁ”f_T¿ck_IcÚ_O³nšg +(); + +138  +IÁ”f_S¹_O³nšg +(); + +139  +IÁ”f_S¹_IcÚ_O³nšg +(); + +140  +IÁ”f_O³n_In_IcÚ +(); + +141  +IÁ”f_T¿ck_Edge_Rszng +(); + +142  +IÁ”f_T¿ck_Cºr_Rszng +(); + +143  +IÁ”f_T¿ck_Basšg_Rsz +(); + +144  +IÁ”f_T¿ck_Movšg +(); + +145  +IÁ”f_T¿ck_V”t_Movšg +(); + +146  +IÁ”f_T¿ck_HÜiz_Movšg +(); + +147  +IÁ”f_T¿ck_IcÚ_Movšg +(); + +148  +IÁ”f_T¿ck_Exchªgšg +(); + +149  +IÁ”f_Inside_Background +(); + +150  +IÁ”f_Inside_RŽ +(); + +151  +IÁ”f_Inside_Body +(); + +152  +IÁ”f_Inside_H—d” +(); + +153  +IÁ”f_Inside_IcÚ +(); + +154  +IÁ”f_Inside_Zoom_Gadg‘ +(); + +155  +IÁ”f_Inside_Move_Gadg‘ +(); + +156  +IÁ”f_Inside_Side_BÜd” +(); + +157  +IÁ”f_Ins_Cºr_BÜd” +(); + +160 (* + gbu‰Ú +)(); + +162  + $IÁ”f_SigÇl_Bu‰Ú +( +sigkšd +) + +163 +ButKšd + +sigkšd +; + +165 +cu¼’t_kšd + = +sigkšd +; + +166 (* +bu‰Ú +)(); + +167 + } +} + +169  +Bu‰Ús + + gdown_but +; + +170  +TWPošt + + gdown_pos +; + +172  +Bu‰Ús + + gup_but +; + +173  +TWPošt + + gup_pos +; + +176  +boÞ + + gŒackšg + = +FALSE +; + +177  +boÞ + + gwa™_fÜ_þick + = +TRUE +; + +178  +boÞ + + gcom¶‘e_down + = +FALSE +; + +179  +boÞ + + gšside_þ›Á + = +FALSE +; + +181  + $IÁ”f_Click_DOWN +() + +183  + `IÁ”f_Click +(); + +186  + `IÁ”f_S“n_Down +(); + +187  + `IÁ”f_P»ss +(); + +188 +down_but + = +cu¼’t_but +; + +189 +down_pos + = +cu¼’t_pos +; + +190 iàÐ +wa™_fÜ_þick + ) + +192 ià( +Œackšg +) + +193 (* +MOUSE +)(); + +194 { + `IÁ”f_S“n_Down +(); ; } + +198 +wa™_fÜ_þick + = ! +šside_þ›Á +; + +199 + `IÁ”f_SigÇl_Bu‰Ú +( +down +); + +200 { + `IÁ”f_P»ss +(); ; } + +204 + } +} + +206  + $IÁ”f_Click_UP +() + +208  + `IÁ”f_Click +(); + +211 + `IÁ”f_SigÇl_Bu‰Ú +( +up +); + +212 { + `IÁ”f_Click +(); ; } + +215 + } +} + +217  + $IÁ”f_Click +() + +219 +DOWN + = +IÁ”f_Click_DOWN +; + +220 +UP + = +IÁ”f_Click_UP +; + +221 + } +} + +224  + $IÁ”f_S“n_Down_WAIT +() + +226  + `IÁ”f_S“n_Down +(); + +229 + `IÁ”f_SigÇl_Bu‰Ú +( +down +); + +230 { + `IÁ”f_Click +(); ; } + +233 + } +} + +235  + $IÁ”f_S“n_Down_DOWN +() + +237  + `IÁ”f_S“n_Down +(); + +239 + `IÅut_Cªûl_Wa™ +(); + +241 + `IÁ”f_SigÇl_Bu‰Ú +( +down +); + +242 +down_but + = +cu¼’t_but +; + +243 +down_pos + = +cu¼’t_pos +; + +244 { + `IÁ”f_S“n_Down +(); ; } + +247 + } +} + +249  + $IÁ”f_S“n_Down_UP +() + +251  + `IÁ”f_S“n_Down +(); + +253 + `IÅut_Cªûl_Wa™ +(); + +255 iàÐ + `Bu‰Ús_Equ® +Ð +cu¼’t_but +, +down_but + ) ) + +257 + `IÁ”f_SigÇl_Bu‰Ú +( +þick +); + +261 +up_pos + = +cu¼’t_pos +; + +262 +up_but + = +cu¼’t_but +; + +264 +cu¼’t_pos + = +down_pos +; + +265 +cu¼’t_but + = +down_but +; + +267 + `IÁ”f_SigÇl_Bu‰Ú +( +down +); + +269 +cu¼’t_pos + = +up_pos +; + +270 +cu¼’t_but + = +up_but +; + +272 + `IÁ”f_SigÇl_Bu‰Ú +( +up +); + +274 { + `IÁ”f_Click +(); ; } + +277 + } +} + +279  + $IÁ”f_S“n_Down +() + +281 +WAIT + = +IÁ”f_S“n_Down_WAIT +; + +282 +DOWN + = +IÁ”f_S“n_Down_DOWN +; + +283 +UP + = +IÁ”f_S“n_Down_UP +; + +284 + `IÅut_Wa™ +( +CLICK_TIME +); + +285 + } +} + +288  + $IÁ”f_P»ss_WAIT +() + +290  + `IÁ”f_P»ss +(); + +293 { + `IÁ”f_Click +(); ; } + +296 + } +} + +298  + $IÁ”f_P»ss_DOWN +() + +300  + `IÁ”f_P»ss +(); + +302 + `IÅut_Cªûl_Wa™ +(); + +304 +down_but + = +cu¼’t_but +; + +305 +down_pos + = +cu¼’t_pos +; + +306 iàÐ +wa™_fÜ_þick + ) + +308 ià( +Œackšg +) + +309 (* +MOUSE +)(); + +310 { + `IÁ”f_S“n_Down +(); ; } + +314 + `IÁ”f_SigÇl_Bu‰Ú +( +down +); + +315 { + `IÁ”f_P»ss +(); ; } + +319 + } +} + +321  + $IÁ”f_P»ss_UP +() + +323  + `IÁ”f_P»ss +(); + +325 + `IÅut_Cªûl_Wa™ +(); + +327 iàÐ +com¶‘e_down + || +šside_þ›Á + || + +328 (! + `Bu‰Ús_Equ® +Ð +cu¼’t_but +, +down_but + ) ) ) + +329 + `IÁ”f_SigÇl_Bu‰Ú +( +up +); + +330 { + `IÁ”f_Click +(); ; } + +333 + } +} + +335  + $IÁ”f_P»ss +() + +337 +WAIT + = +IÁ”f_P»ss_WAIT +; + +338 +DOWN + = +IÁ”f_P»ss_DOWN +; + +339 +UP + = +IÁ”f_P»ss_UP +; + +340 + `IÅut_Wa™ +( +CLICK_TIME +); + +341 + } +} + +345  +Side + + gcu¼’t_side +; + +346  +TWPošt + + gba£_pos +; + +347  +TWPošt + + gÿnûl_pos +; + +349  +boÞ + + gm’u_©_wÜk + = +FALSE +; + +350  +boÞ + + gm’u_pos™iÚed + = +FALSE +; + +353  + $IÁ”f_S‘_Pos +Ð +pos + ) + +354 +TWPošt + +pos +; + +356 +m’u_pos™iÚed + = +FALSE +; + +357 + `IÅut_S‘_Pos +Ð +pos + ); + +358 + } +} + +361  +TWPošt + + $IÁ”f_T¿ckšg_Off£t +Ð +pos + ) + +362 +TWPošt + +pos +; + +364 +pos +. +x + -ð +ba£_pos +.x; + +365 +pos +. +y + -ð +ba£_pos +.y; + +366  +pos +; + +367 + } +} + +370  + $IÁ”f_T¿ck_Pos +Ð +pos + ) + +371 +TWPošt + +pos +; + +373 + `IÅut_Chªge_Pos +Ð + `IÁ”f_T¿ckšg_Off£t +Ð +pos + ) ); + +374 + } +} + +377  + $IÁ”f_T¿ck_Edge_Pos +() + +379 + `IÁ”f_T¿ck_Pos +Ð + `RegiÚ_G‘_Edge_Pos +( + +380 +cu¼’t_uwšp +, +cu¼’t_side +, +ba£_pos + ) ); + +381 + } +} + +384  + $IÁ”f_T¿ck_CÜÃr_Pos +() + +386 + `IÁ”f_T¿ck_Pos +Ð + `RegiÚ_G‘_CÜÃr_Pos +( + +387 +cu¼’t_uwšp +, +cu¼’t_side + ) ); + +388 + } +} + +391  +TWPošt + + $IÁ”f_T¿ck_C’‹r_Pos +() + +393 +TWPošt + +off£t +; + +394 + `IÁ”f_T¿ck_Pos +Ð + `U£rwš_G‘_C’‹r +( +cu¼’t_uwšp +) ); + +395 +off£t +. +x + = 0; + +396 +off£t +. +y + = 0; + +397  +off£t +; + +398 + } +} + +401  +TWPošt + + $IÁ”f_C’‹r_Off£t +() + +403  + `IÁ”f_T¿ckšg_Off£t +( + +404 + `U£rwš_G‘_C’‹r +( +cu¼’t_uwšp +) ); + +405 + } +} + +408  +TWPošt + + $IÁ”f_T¿ck_IcÚ_C’‹r_Pos +() + +410 +TWPošt + +off£t +; + +411 + `IÁ”f_T¿ck_Pos +Ð + `U£rwš_G‘_IcÚ_C’‹r +( +cu¼’t_uwšp +) ); + +412 +off£t +. +x + = 0; + +413 +off£t +. +y + = 0; + +414  +off£t +; + +415 + } +} + +418  +TWPošt + + $IÁ”f_IcÚ_C’‹r_Off£t +() + +420  + `IÁ”f_T¿ckšg_Off£t +( + +421 + `U£rwš_G‘_IcÚ_C’‹r +( +cu¼’t_uwšp +) ); + +422 + } +} + +425  +boÞ + + $IÁ”f_S¹_W©chšg +() + +427 iàÐ +Œackšg + ) + +429 + `CÚŒÞ_S‘_CursÜ +Ð +w©ch_tžecursÜ + ); + +430  +TRUE +; + +433  + `CÚŒÞ_G¿b_U£r +Ð +FALSE +, +w©ch_tžecursÜ + ); + +434 + } +} + +437  + $IÁ”f_StÝ_W©chšg +() + +439 + `CÚŒÞ_Re¡Üe_CursÜ +(); + +440 iàÐ(! +Œackšg +è&& + `CÚŒÞ_Poš‹r_G¿bbed +() ) + +441 + `CÚŒÞ_Ung¿b_U£r +(); + +442 + } +} + +445  + #IÁ”f_W©ch +( +code +) \ + +447 + `IÁ”f_S¹_W©chšg +(); \ + +448 +code +; \ + +449 + `IÁ”f_StÝ_W©chšg +(); \ + +450 } + + ) + +453  +boÞ + + gþ›Á_w©chšg +; + +455  +boÞ + + $IÁ”f_Cl›Á_S¹_W©chšg +() + +457 +þ›Á_w©chšg + = ! ( +Œackšg + || + `CÚŒÞ_Poš‹r_G¿bbed +() ); + +458 iàÐ +þ›Á_w©chšg + ) + +459  + `CÚŒÞ_G¿b_U£r +Ð +FALSE +, +w©ch_tžecursÜ + ); + +461  +FALSE +; + +462 + } +} + +465  + $IÁ”f_Cl›Á_StÝ_W©chšg +() + +467  + `IÁ”f_R“Á”_RegiÚ +(); + +469 iàÐ +þ›Á_w©chšg + ) + +471 +þ›Á_w©chšg + = +FALSE +; + +472 + `IÁ”f_R“Á”_RegiÚ +(); + +474 + } +} + +477  + #IÁ”f_Cl›Á_W©ch +( +code +) \ + +479 + `IÁ”f_Cl›Á_S¹_W©chšg +(); \ + +480 +code +; \ + +481 + `IÁ”f_Cl›Á_StÝ_W©chšg +(); \ + +482 } + + ) + +485  + $IÁ”f_M’u_G¿b +() + +487 iàÐ +m’u_pos™iÚed + ) + +489 +ÿnûl_pos + = + `TžeM’u_EÁry_Pos +(); + +490 +ba£_pos + = +cu¼’t_pos +; + +494 +ÿnûl_pos + = +down_pos +; + +495 +ba£_pos + = +down_pos +; + +498 iàÐ +m’u_©_wÜk + ) + +500 +m’u_©_wÜk + = +FALSE +; + +501 + `IÅut_D‘”mše_Bu‰Ús +(); + +503 + } +} + +506  + $IÁ”f_Re£t_M’u_Pos +() + +508 +ÿnûl_pos + = + `TžeM’u_EÁry_Pos +(); + +509 + `IÅut_S‘_Pos +Ð +ÿnûl_pos + ); + +510 +ba£_pos + = +cu¼’t_pos +; + +511 +m’u_pos™iÚed + = +FALSE +; + +512 + } +} + +515  +boÞ + + $IÁ”f_S¹_G¿bbšg +Ð +cursÜ + ) + +516 +TžeCursÜ + +cursÜ +; + +518 + `IÁ”f_M’u_G¿b +(); + +519  + `CÚŒÞ_G¿b_U£r +Ð +FALSE +, +cursÜ + ); + +520 + } +} + +523  +boÞ + + $IÁ”f_S¹_T¿ckšg +Ð +cursÜ + ) + +524 +TžeCursÜ + +cursÜ +; + +526 + `IÁ”f_M’u_G¿b +(); + +528 ià(! +Œackšg +) + +530 ià(! + `CÚŒÞ_G¿b_U£r +Ð +TRUE +, +cursÜ + )) + +531  +FALSE +; + +532 + `CÚŒÞ_G¿b_S”v” +(); + +533 +Œackšg + = +TRUE +; + +535  +TRUE +; + +536 + } +} + +539  +boÞ + + $IÁ”f_Cl›Á_S¹_T¿ckšg +Ð +cursÜ + ) + +540 +TžeCursÜ + +cursÜ +; + +542 ià( +Œackšg +) + +543  +FALSE +; + +545 ià(! + `CÚŒÞ_G¿b_U£r +Ð +TRUE +, +cursÜ + )) + +546  +FALSE +; + +548 + `CÚŒÞ_G¿b_S”v” +(); + +549 +Œackšg + = +TRUE +; + +551  +TRUE +; + +552 + } +} + +555  +TWPošt + + $IÁ”f_CÚtšue_T¿ckšg +() + +557 iàÐ +cu¼’t_kšd + !ð +up + ) + +559 +ba£_pos + = +down_pos +; + +560  +ba£_pos +; + +563  +cu¼’t_pos +; + +564 + } +} + +567  +boÞ + + gchªge_¡©e + = +FALSE +; + +570  + $IÁ”f_P»·»_R“Á” +() + +572 iàÐ +m’u_pos™iÚed + ) + +574 +m’u_pos™iÚed + = +FALSE +; + +575 iàÐ + `U£rGlob®s_G‘_O±iÚ +( + +576 +PLACE_CSR_BACK_AFTER_MENU_OP +) ) + +578 iàÐ(! +chªge_¡©e +) && + +579 Ð + `RegiÚ_G‘_Ty³ +( +cu¼’t_»giÚ +è=ð +h—d” + ) ) + +580 + `IÅut_S‘_Pos +Ð + `RegiÚ_G‘_H—d”_Pos +( + +581 +cu¼’t_uwšp +, + `TžeM’u_EÁry_Pos +() ) ); + +583 + `IÅut_S‘_Pos +Ð + `TžeM’u_EÁry_Pos +() ); + +587 +chªge_¡©e + = +FALSE +; + +589 iàÐ +m’u_©_wÜk + ) + +591 +m’u_©_wÜk + = +FALSE +; + +592 + `IÅut_D‘”mše_Bu‰Ús +(); + +595 iàÐ +Œackšg + ) + +597 +Œackšg + = +FALSE +; + +598 + `CÚŒÞ_Ung¿b_S”v” +(); + +599 + `CÚŒÞ_Ung¿b_U£r +(); + +601 iàÐ + `CÚŒÞ_Poš‹r_G¿bbed +() ) + +602 + `CÚŒÞ_Ung¿b_U£r +(); + +603 + } +} + +606  + $IÁ”f_M’u_EÁ” +Ð +m’u +, +buŠum +, +kšd + ) + +607 +TžeM’u + +m’u +; + +608  +buŠum +; + +609 +ButKšd + +kšd +; + +611  + `IÁ”f_R“Á”_RegiÚ +(); + +613 + `IÅut_D‘”mše_Bu‰Ús +(); + +614 +m’u_©_wÜk + = +TRUE +; + +615 +m’u_pos™iÚed + = +TRUE +; + +617 + `TžeM’u_EÁ” +Ð +m’u +, +buŠum +, +kšd +, +cu¼’t_time + ); + +619 iàÐ +m’u_pos™iÚed + ) + +621 +m’u_pos™iÚed + = +FALSE +; + +622 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +PLACE_CSR_BACK_ON_CANCEL +) ) + +623 + `IÅut_S‘_Pos +Ð + `TžeM’u_EÁry_Pos +() ); + +626 iàÐ +m’u_©_wÜk + ) + +628 +m’u_©_wÜk + = +FALSE +; + +629 + `IÅut_D‘”mše_Bu‰Ús +(); + +630 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +632 + } +} + +636  +U£rwš + * + gcu¼’t_li¡’” + = +UWIN_NULL +; + +638  +boÞ + + gacû±_key +; + +639  +boÞ + + gacû±_nÚ_li¡’” +; + +640  +boÞ + + gacû±_bu‰Ú +; + +642  +boÞ + + gkey_makes_li¡’” +; + +643  +boÞ + + gbu‰Ú_makes_li¡’” +; + +645  +boÞ + + gbu‰Ú_£ts_li¡’” +; + +646  +boÞ + + gbu‰Ú_£ts_subli¡’” +; + +649 +IÁ”f_Have_L¢r +(), +IÁ”f_G¿bbed_L¢r +(), + +650 +IÁ”f_Am_L¢r +(), +IÁ”f_Gbd_Sbl¢r +(), + +651 +IÁ”f_Am_Sbl¢r +(), +IÁ”f_Am_Clk_L¢r +(), + +652 +IÁ”f_Click_Sbl¢r +(), +IÁ”f_Gbd_Clk_Sbl¢r +(); + +654 (* + gšsideL¢r +)(); + +655 (* + gbecomeL¢r +)(); + +656 (* + gbecomeSbl¢r +)(); + +657 (* + gfocusIn +)(); + +658 (* + glo£L¢r +)(); + +659 (* + gswInMod +)(); + +660 (* + gmvToUng¿b +)(); + +661 (* + gmoveToG¿b +)(); + +662 (* + gmoveOut +)(); + +665  + $IÁ”f_Bu‰Ú_S‘s +() + +667 +bu‰Ú_£ts_li¡’” + = +bu‰Ú_makes_li¡’” +; + +668 +bu‰Ú_£ts_subli¡’” + = +FALSE +; + +670 iàÐ(! + `U£rwš_Is_IcÚic +( +cu¼’t_uwšp +) ) && + +671 + `U£rwš_IÅut_EÇbËd +( +cu¼’t_uwšp +) ) + +673 iàÐ +cu¼’t_uwšp + !ð +cu¼’t_li¡’” + ) + +675 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +FOCUS_FOLLOWS_CURSOR +) ) + +677 +bu‰Ú_£ts_li¡’” + = +bu‰Ú_makes_li¡’” +; + +678 +bu‰Ú_£ts_subli¡’” + = (! +bu‰Ú_makes_li¡’” +) && + +679 +acû±_key + && +acû±_nÚ_li¡’” + && + +680 (! +key_makes_li¡’” +); + +684 +bu‰Ú_£ts_li¡’” + = +bu‰Ú_makes_li¡’” + && + +685 +key_makes_li¡’” +; + +686 +bu‰Ú_£ts_subli¡’” + = + +687 +acû±_key + && +acû±_nÚ_li¡’” + && + +688 (! +key_makes_li¡’” +); + +692 + } +} + +695  + $IÁ”f_Mªage_Focus +() + +697 +boÞ + +§me_li¡’” +; + +698 +boÞ + +sw™ch_focus +; + +700 +§me_li¡’” + = ( +cu¼’t_li¡’” + =ð +cu¼’t_uwšp +) || + +701 Ð + `Mªage_G‘_Subli¡’” +(è=ð +cu¼’t_uwšp + ); + +703 iàÐ + `U£rwš_Is_IcÚic +( +cu¼’t_uwšp +) ) + +704 +sw™ch_focus + = +FALSE +; + +705 iàÐ + `U£rwš_IÅut_EÇbËd +( +cu¼’t_uwšp +) ) + +706 +sw™ch_focus + = ( +acû±_key + && + +707 ( +§me_li¡’” + || +acû±_nÚ_li¡’” +) ); + +709 +sw™ch_focus + = ( +§me_li¡’” + && +acû±_key + && + +710 + `U£rwš_Takes_Focus +Ð +cu¼’t_uwšp + ) ); + +712 iàÐ +sw™ch_focus + ) + +713 + `Mªage_Sw™ch_Focus +( +cu¼’t_uwšp +); + +715 + `Mªage_Sw™ch_Focus +( +UWIN_NULL +); + +716 + } +} + +719  + $IÁ”f_Have_L¢r_šsideL¢r +() + +721  + `IÁ”f_Have_L¢r +(); + +729 iàÐ + `U£rwš_Takes_Focus +Ð +cu¼’t_uwšp + ) ) + +730 + `Cl›Á_Take_Focus +( +cu¼’t_uwšp +); + +732 { + `IÁ”f_G¿bbed_L¢r +(); ; } + +736 + } +} + +738  + $IÁ”f_Have_L¢r_becomeL¢r +() + +740  + `IÁ”f_Have_L¢r +(); + +745 + `IÁ”f_Mªage_Focus +(); + +747 iàÐ +acû±_key + && +acû±_bu‰Ú + ) + +749 + `CÚŒÞ_R–—£_G¿b +( +cu¼’t_uwšp +); + +750 { + `IÁ”f_Am_L¢r +(); ; } + +755 { + `IÁ”f_G¿bbed_L¢r +(); ; } + +760 + } +} + +762  + $IÁ”f_Have_L¢r_becomeSbl¢r +() + +764  + `IÁ”f_Have_L¢r +(); + +768 + `Mªage_Sw™ch_Subli¡’” +( +cu¼’t_uwšp +); + +770 ià(! + `U£rwš_Is_IcÚic +( +cu¼’t_uwšp +) ) + +772 + `IÁ”f_Mªage_Focus +(); + +774 iàÐ +key_makes_li¡’” + || +bu‰Ú_£ts_li¡’” + || + +775 ! +acû±_key + || ! +acû±_bu‰Ú + ) + +777 { + `IÁ”f_Gbd_Sbl¢r +(); ; } + +781 + `CÚŒÞ_R–—£_G¿b +( +cu¼’t_uwšp +); + +783 { + `IÁ”f_Am_Sbl¢r +(); ; } + +788 + } +} + +790  + $IÁ”f_Have_L¢r_focusIn +() + +792  + `IÁ”f_Have_L¢r +(); + +796 { + `IÁ”f_G¿bbed_L¢r +(); ; } + +800 + } +} + +802  + $IÁ”f_Have_L¢r_lo£L¢r +() + +804  + `IÁ”f_Have_L¢r +(); + +808 { + `IÁ”f_Have_L¢r +(); ; } + +812 + } +} + +814  + $IÁ”f_Have_L¢r_moveOut +() + +816  + `IÁ”f_Have_L¢r +(); + +820 { + `IÁ”f_Have_L¢r +(); ; } + +824 + } +} + +826  + $IÁ”f_Have_L¢r_swInMod +() + +828  + `IÁ”f_Have_L¢r +(); + +832 iàÐ +cu¼’t_li¡’” + !ð +UWIN_NULL + ) + +834 + `CÚŒÞ_S‘_Focus +( +cu¼’t_li¡’” +); + +835 + `Mªage_Sw™ch_Focus +( +cu¼’t_li¡’” +); + +836 + `CÚŒÞ_R–—£_G¿b +( +cu¼’t_li¡’” +); + +839 + `CÚŒÞ_Un£t_Focus +(); + +840 { + `IÁ”f_Am_Clk_L¢r +(); ; } + +844 + } +} + +846  + $IÁ”f_Have_L¢r +() + +848 +šsideL¢r + = +IÁ”f_Have_L¢r_šsideL¢r +; + +849 +becomeL¢r + = +IÁ”f_Have_L¢r_becomeL¢r +; + +850 +becomeSbl¢r + = +IÁ”f_Have_L¢r_becomeSbl¢r +; + +851 +focusIn + = +IÁ”f_Have_L¢r_focusIn +; + +852 +lo£L¢r + = +IÁ”f_Have_L¢r_lo£L¢r +; + +853 +moveOut + = +IÁ”f_Have_L¢r_moveOut +; + +854 +swInMod + = +IÁ”f_Have_L¢r_swInMod +; + +855 + } +} + +859  + $IÁ”f_G¿bbed_L¢r_mvToUng¿b +() + +861  + `IÁ”f_G¿bbed_L¢r +(); + +865 + `CÚŒÞ_R–—£_G¿b +( +cu¼’t_uwšp +); + +866 { + `IÁ”f_Am_L¢r +(); ; } + +870 + } +} + +872  + $IÁ”f_G¿bbed_L¢r_moveToG¿b +() + +874  + `IÁ”f_G¿bbed_L¢r +(); + +878 { + `IÁ”f_G¿bbed_L¢r +(); ; } + +882 + } +} + +884  + $IÁ”f_G¿bbed_L¢r_moveOut +() + +886  + `IÁ”f_G¿bbed_L¢r +(); + +890 + `CÚŒÞ_Focus_Out +Ð +cu¼’t_uwšp + ); + +891 { + `IÁ”f_Have_L¢r +(); ; } + +895 + } +} + +897  + $IÁ”f_G¿bbed_L¢r_focusIn +() + +899  + `IÁ”f_G¿bbed_L¢r +(); + +903 { + `IÁ”f_G¿bbed_L¢r +(); ; } + +907 + } +} + +909  + $IÁ”f_G¿bbed_L¢r_šsideL¢r +() + +911  + `IÁ”f_G¿bbed_L¢r +(); + +915 { + `IÁ”f_G¿bbed_L¢r +(); ; } + +919 + } +} + +921  + $IÁ”f_G¿bbed_L¢r_swInMod +() + +923  + `IÁ”f_G¿bbed_L¢r +(); + +927 + `CÚŒÞ_R–—£_G¿b +( +cu¼’t_uwšp +); + +929 { + `IÁ”f_Am_Clk_L¢r +(); ; } + +932 + } +} + +934  + $IÁ”f_G¿bbed_L¢r +() + +936 +mvToUng¿b + = +IÁ”f_G¿bbed_L¢r_mvToUng¿b +; + +937 +moveToG¿b + = +IÁ”f_G¿bbed_L¢r_moveToG¿b +; + +938 +moveOut + = +IÁ”f_G¿bbed_L¢r_moveOut +; + +939 +focusIn + = +IÁ”f_G¿bbed_L¢r_focusIn +; + +940 +šsideL¢r + = +IÁ”f_G¿bbed_L¢r_šsideL¢r +; + +941 +swInMod + = +IÁ”f_G¿bbed_L¢r_swInMod +; + +942 + } +} + +946  + $IÁ”f_Am_L¢r_focusIn +() + +948  + `IÁ”f_Am_L¢r +(); + +952 + `CÚŒÞ_Re¡Üe_G¿b +(); + +953 { + `IÁ”f_G¿bbed_L¢r +(); ; } + +957 + } +} + +959  + $IÁ”f_Am_L¢r_mvToUng¿b +() + +961  + `IÁ”f_Am_L¢r +(); + +965 { + `IÁ”f_Am_L¢r +(); ; } + +969 + } +} + +971  + $IÁ”f_Am_L¢r_moveToG¿b +() + +973  + `IÁ”f_Am_L¢r +(); + +978 + `CÚŒÞ_Re¡Üe_G¿b +(); + +980 { + `IÁ”f_G¿bbed_L¢r +(); ; } + +984 + } +} + +986  + $IÁ”f_Am_L¢r_moveOut +() + +988  + `IÁ”f_Am_L¢r +(); + +993 + `CÚŒÞ_Re¡Üe_G¿b +(); + +996 { + `IÁ”f_Have_L¢r +(); ; } + +1000 + } +} + +1002  + $IÁ”f_Am_L¢r_šsideL¢r +() + +1004  + `IÁ”f_Am_L¢r +(); + +1008 { + `IÁ”f_Am_L¢r +(); ; } + +1012 + } +} + +1014  + $IÁ”f_Am_L¢r_swInMod +() + +1016  + `IÁ”f_Am_L¢r +(); + +1020 { + `IÁ”f_Am_Clk_L¢r +(); ; } + +1023 + } +} + +1025  + $IÁ”f_Am_L¢r +() + +1027 +focusIn + = +IÁ”f_Am_L¢r_focusIn +; + +1028 +mvToUng¿b + = +IÁ”f_Am_L¢r_mvToUng¿b +; + +1029 +moveToG¿b + = +IÁ”f_Am_L¢r_moveToG¿b +; + +1030 +moveOut + = +IÁ”f_Am_L¢r_moveOut +; + +1031 +šsideL¢r + = +IÁ”f_Am_L¢r_šsideL¢r +; + +1032 +swInMod + = +IÁ”f_Am_L¢r_swInMod +; + +1033 + } +} + +1037  + $IÁ”f_Gbd_Sbl¢r_mvToUng¿b +() + +1039  + `IÁ”f_Gbd_Sbl¢r +(); + +1045 + `CÚŒÞ_R–—£_G¿b +( +cu¼’t_uwšp +); + +1046 { + `IÁ”f_Am_Sbl¢r +(); ; } + +1050 + } +} + +1052  + $IÁ”f_Gbd_Sbl¢r_moveToG¿b +() + +1054  + `IÁ”f_Gbd_Sbl¢r +(); + +1058 { + `IÁ”f_Gbd_Sbl¢r +(); ; } + +1062 + } +} + +1064  + $IÁ”f_Gbd_Sbl¢r_moveOut +() + +1066  + `IÁ”f_Gbd_Sbl¢r +(); + +1070 + `Mªage_Sw™ch_Subli¡’” +Ð +UWIN_NULL + ); + +1073 { + `IÁ”f_Have_L¢r +(); ; } + +1077 + } +} + +1079  + $IÁ”f_Gbd_Sbl¢r_šsideL¢r +() + +1081  + `IÁ”f_Gbd_Sbl¢r +(); + +1085 + `Mªage_Sw™ch_Subli¡’” +Ð +UWIN_NULL + ); + +1091 iàÐ + `U£rwš_Takes_Focus +Ð +cu¼’t_uwšp + ) ) + +1092 + `Cl›Á_Take_Focus +( +cu¼’t_uwšp +); + +1094 { + `IÁ”f_G¿bbed_L¢r +(); ; } + +1098 + } +} + +1100  + $IÁ”f_Gbd_Sbl¢r_focusIn +() + +1102  + `IÁ”f_Gbd_Sbl¢r +(); + +1106 + `Mªage_Sw™ch_Subli¡’” +Ð +UWIN_NULL + ); + +1107 { + `IÁ”f_G¿bbed_L¢r +(); ; } + +1111 + } +} + +1113  + $IÁ”f_Gbd_Sbl¢r_becomeL¢r +() + +1115  + `IÁ”f_Gbd_Sbl¢r +(); + +1119 + `Mªage_Sw™ch_Subli¡’” +Ð +UWIN_NULL + ); + +1121 iàÐ +acû±_key + && +acû±_bu‰Ú + ) + +1123 + `CÚŒÞ_R–—£_G¿b +( +cu¼’t_uwšp +); + +1124 { + `IÁ”f_Am_L¢r +(); ; } + +1129 { + `IÁ”f_G¿bbed_L¢r +(); ; } + +1134 + } +} + +1136  + $IÁ”f_Gbd_Sbl¢r_swInMod +() + +1138  + `IÁ”f_Gbd_Sbl¢r +(); + +1142 iàÐ +key_makes_li¡’” + || +bu‰Ú_£ts_li¡’” + || + +1143 ! +acû±_key + || ! +acû±_bu‰Ú + ) + +1145 { + `IÁ”f_Gbd_Clk_Sbl¢r +(); ; } + +1149 + `CÚŒÞ_R–—£_G¿b +( +cu¼’t_uwšp +); + +1150 { + `IÁ”f_Click_Sbl¢r +(); ; } + +1154 + } +} + +1156  + $IÁ”f_Gbd_Sbl¢r +() + +1158 +mvToUng¿b + = +IÁ”f_Gbd_Sbl¢r_mvToUng¿b +; + +1159 +moveToG¿b + = +IÁ”f_Gbd_Sbl¢r_moveToG¿b +; + +1160 +moveOut + = +IÁ”f_Gbd_Sbl¢r_moveOut +; + +1161 +šsideL¢r + = +IÁ”f_Gbd_Sbl¢r_šsideL¢r +; + +1162 +focusIn + = +IÁ”f_Gbd_Sbl¢r_focusIn +; + +1163 +becomeL¢r + = +IÁ”f_Gbd_Sbl¢r_becomeL¢r +; + +1164 +swInMod + = +IÁ”f_Gbd_Sbl¢r_swInMod +; + +1165 + } +} + +1169  + $IÁ”f_Am_Sbl¢r_focusIn +() + +1171  + `IÁ”f_Am_Sbl¢r +(); + +1175 + `Mªage_Sw™ch_Subli¡’” +Ð +UWIN_NULL + ); + +1176 + `CÚŒÞ_Re¡Üe_G¿b +(); + +1177 { + `IÁ”f_G¿bbed_L¢r +(); ; } + +1181 + } +} + +1183  + $IÁ”f_Am_Sbl¢r_moveOut +() + +1185  + `IÁ”f_Am_Sbl¢r +(); + +1189 + `Mªage_Sw™ch_Subli¡’” +Ð +UWIN_NULL + ); + +1192 + `CÚŒÞ_Re¡Üe_G¿b +(); + +1195 { + `IÁ”f_Have_L¢r +(); ; } + +1199 + } +} + +1201  + $IÁ”f_Am_Sbl¢r_šsideL¢r +() + +1203  + `IÁ”f_Am_Sbl¢r +(); + +1207 + `Mªage_Sw™ch_Subli¡’” +Ð +UWIN_NULL + ); + +1210 + `CÚŒÞ_Re¡Üe_G¿b +(); + +1216 iàÐ + `U£rwš_Takes_Focus +Ð +cu¼’t_uwšp + ) ) + +1217 + `Cl›Á_Take_Focus +( +cu¼’t_uwšp +); + +1219 { + `IÁ”f_G¿bbed_L¢r +(); ; } + +1223 + } +} + +1225  + $IÁ”f_Am_Sbl¢r_mvToUng¿b +() + +1227  + `IÁ”f_Am_Sbl¢r +(); + +1231 { + `IÁ”f_Am_Sbl¢r +(); ; } + +1235 + } +} + +1237  + $IÁ”f_Am_Sbl¢r_moveToG¿b +() + +1239  + `IÁ”f_Am_Sbl¢r +(); + +1247 + `CÚŒÞ_Re¡Üe_G¿b +(); + +1249 { + `IÁ”f_Gbd_Sbl¢r +(); ; } + +1253 + } +} + +1255  + $IÁ”f_Am_Sbl¢r_swInMod +() + +1257  + `IÁ”f_Am_Sbl¢r +(); + +1261 iàÐ +key_makes_li¡’” + || +bu‰Ú_£ts_li¡’” + || + +1262 ! +acû±_key + || ! +acû±_bu‰Ú + ) + +1264 { + `IÁ”f_Gbd_Clk_Sbl¢r +(); ; } + +1268 + `CÚŒÞ_R–—£_G¿b +( +cu¼’t_uwšp +); + +1269 { + `IÁ”f_Click_Sbl¢r +(); ; } + +1273 + } +} + +1275  + $IÁ”f_Am_Sbl¢r +() + +1277 +focusIn + = +IÁ”f_Am_Sbl¢r_focusIn +; + +1278 +moveOut + = +IÁ”f_Am_Sbl¢r_moveOut +; + +1279 +šsideL¢r + = +IÁ”f_Am_Sbl¢r_šsideL¢r +; + +1280 +mvToUng¿b + = +IÁ”f_Am_Sbl¢r_mvToUng¿b +; + +1281 +moveToG¿b + = +IÁ”f_Am_Sbl¢r_moveToG¿b +; + +1282 +swInMod + = +IÁ”f_Am_Sbl¢r_swInMod +; + +1283 + } +} + +1287  + $IÁ”f_Am_Clk_L¢r_becomeL¢r +() + +1289  + `IÁ”f_Am_Clk_L¢r +(); + +1293 + `CÚŒÞ_S‘_Focus +( +cu¼’t_uwšp +); + +1294 + `Mªage_Sw™ch_Focus +( +cu¼’t_uwšp +); + +1296 + `CÚŒÞ_R–—£_G¿b +( +cu¼’t_uwšp +); + +1298 { + `IÁ”f_Am_Clk_L¢r +(); ; } + +1302 + } +} + +1304  + $IÁ”f_Am_Clk_L¢r_becomeSbl¢r +() + +1306  + `IÁ”f_Am_Clk_L¢r +(); + +1310 + `Mªage_Sw™ch_Subli¡’” +( +cu¼’t_uwšp +); + +1311 ià(! + `U£rwš_Is_IcÚic +( +cu¼’t_uwšp +) ) + +1312 + `CÚŒÞ_S‘_Focus +( +cu¼’t_uwšp +); + +1314 + `Mªage_Sw™ch_Focus +( +cu¼’t_uwšp +); + +1316 + `CÚŒÞ_R–—£_G¿b +( +cu¼’t_uwšp +); + +1318 { + `IÁ”f_Click_Sbl¢r +(); ; } + +1322 + } +} + +1324  + $IÁ”f_Am_Clk_L¢r_šsideL¢r +() + +1326  + `IÁ”f_Am_Clk_L¢r +(); + +1330 + `CÚŒÞ_R–—£_G¿b +( +cu¼’t_uwšp +); + +1331 { + `IÁ”f_Am_Clk_L¢r +(); ; } + +1335 + } +} + +1337  + $IÁ”f_Am_Clk_L¢r_lo£L¢r +() + +1339  + `IÁ”f_Am_Clk_L¢r +(); + +1344 + `CÚŒÞ_Re¡Üe_G¿b +(); + +1346 + `CÚŒÞ_Un£t_Focus +(); + +1347 + `Mªage_Sw™ch_Focus +Ð +UWIN_NULL + ); + +1349 { + `IÁ”f_Am_Clk_L¢r +(); ; } + +1353 + } +} + +1355  + $IÁ”f_Am_Clk_L¢r_focusIn +() + +1357  + `IÁ”f_Am_Clk_L¢r +(); + +1361 + `CÚŒÞ_R–—£_G¿b +( +cu¼’t_uwšp +); + +1362 { + `IÁ”f_Am_Clk_L¢r +(); ; } + +1366 + } +} + +1368  + $IÁ”f_Am_Clk_L¢r_mvToUng¿b +() + +1370  + `IÁ”f_Am_Clk_L¢r +(); + +1374 { + `IÁ”f_Am_Clk_L¢r +(); ; } + +1378 + } +} + +1380  + $IÁ”f_Am_Clk_L¢r_moveToG¿b +() + +1382  + `IÁ”f_Am_Clk_L¢r +(); + +1386 { + `IÁ”f_Am_Clk_L¢r +(); ; } + +1390 + } +} + +1392  + $IÁ”f_Am_Clk_L¢r_moveOut +() + +1394  + `IÁ”f_Am_Clk_L¢r +(); + +1398 { + `IÁ”f_Am_Clk_L¢r +(); ; } + +1402 + } +} + +1404  + $IÁ”f_Am_Clk_L¢r_swInMod +() + +1406  + `IÁ”f_Am_Clk_L¢r +(); + +1410 ià( +cu¼’t_li¡’” + !ð +cu¼’t_uwšp +) + +1412 + `CÚŒÞ_S‘_Focus +Ð +UWIN_NULL + ); + +1413 + `Mªage_Sw™ch_Focus +Ð +UWIN_NULL + ); + +1415 + `CÚŒÞ_Re¡Üe_G¿b +(); + +1416 { + `IÁ”f_Have_L¢r +(); ; } + +1420 iàÐ +acû±_key + && +acû±_bu‰Ú + ) + +1422 { + `IÁ”f_Am_L¢r +(); ; } + +1426 + `CÚŒÞ_Re¡Üe_G¿b +(); + +1427 { + `IÁ”f_G¿bbed_L¢r +(); ; } + +1432 + } +} + +1434  + $IÁ”f_Am_Clk_L¢r +() + +1436 +becomeL¢r + = +IÁ”f_Am_Clk_L¢r_becomeL¢r +; + +1437 +becomeSbl¢r + = +IÁ”f_Am_Clk_L¢r_becomeSbl¢r +; + +1438 +šsideL¢r + = +IÁ”f_Am_Clk_L¢r_šsideL¢r +; + +1439 +lo£L¢r + = +IÁ”f_Am_Clk_L¢r_lo£L¢r +; + +1440 +focusIn + = +IÁ”f_Am_Clk_L¢r_focusIn +; + +1441 +mvToUng¿b + = +IÁ”f_Am_Clk_L¢r_mvToUng¿b +; + +1442 +moveToG¿b + = +IÁ”f_Am_Clk_L¢r_moveToG¿b +; + +1443 +moveOut + = +IÁ”f_Am_Clk_L¢r_moveOut +; + +1444 +swInMod + = +IÁ”f_Am_Clk_L¢r_swInMod +; + +1445 + } +} + +1449  + $IÁ”f_Gbd_Clk_Sbl¢r_becomeL¢r +() + +1451  + `IÁ”f_Gbd_Clk_Sbl¢r +(); + +1455 + `Mªage_Sw™ch_Subli¡’” +Ð +UWIN_NULL + ); + +1457 + `CÚŒÞ_R–—£_G¿b +( +cu¼’t_uwšp +); + +1458 { + `IÁ”f_Am_Clk_L¢r +(); ; } + +1462 + } +} + +1464  + $IÁ”f_Gbd_Clk_Sbl¢r_mvToUng¿b +() + +1466  + `IÁ”f_Gbd_Clk_Sbl¢r +(); + +1470 + `CÚŒÞ_R–—£_G¿b +( +cu¼’t_uwšp +); + +1471 { + `IÁ”f_Click_Sbl¢r +(); ; } + +1475 + } +} + +1477  + $IÁ”f_Gbd_Clk_Sbl¢r_moveToG¿b +() + +1479  + `IÁ”f_Gbd_Clk_Sbl¢r +(); + +1483 { + `IÁ”f_Gbd_Clk_Sbl¢r +(); ; } + +1487 + } +} + +1489  + $IÁ”f_Gbd_Clk_Sbl¢r_moveOut +() + +1491  + `IÁ”f_Gbd_Clk_Sbl¢r +(); + +1495 + `Mªage_Sw™ch_Subli¡’” +Ð +UWIN_NULL + ); + +1498 iàÐ +cu¼’t_li¡’” + =ð +UWIN_NULL + ) + +1499 + `CÚŒÞ_Un£t_Focus +(); + +1501 + `CÚŒÞ_S‘_Focus +Ð +cu¼’t_li¡’” + ); + +1503 + `Mªage_Sw™ch_Focus +Ð +cu¼’t_li¡’” + ); + +1506 { + `IÁ”f_Am_Clk_L¢r +(); ; } + +1510 + } +} + +1512  + $IÁ”f_Gbd_Clk_Sbl¢r_focusIn +() + +1514  + `IÁ”f_Gbd_Clk_Sbl¢r +(); + +1518 + `Mªage_Sw™ch_Subli¡’” +Ð +UWIN_NULL + ); + +1520 { + `IÁ”f_Am_Clk_L¢r +(); ; } + +1524 + } +} + +1526  + $IÁ”f_Gbd_Clk_Sbl¢r_swInMod +() + +1528  + `IÁ”f_Gbd_Clk_Sbl¢r +(); + +1532 iàÐ +key_makes_li¡’” + || +bu‰Ú_£ts_li¡’” + || + +1533 ! +acû±_key + || ! +acû±_bu‰Ú + ) + +1535 { + `IÁ”f_Gbd_Sbl¢r +(); ; } + +1539 + `CÚŒÞ_R–—£_G¿b +( +cu¼’t_uwšp +); + +1540 { + `IÁ”f_Am_Sbl¢r +(); ; } + +1544 + } +} + +1546  + $IÁ”f_Gbd_Clk_Sbl¢r +() + +1548 +becomeL¢r + = +IÁ”f_Gbd_Clk_Sbl¢r_becomeL¢r +; + +1549 +mvToUng¿b + = +IÁ”f_Gbd_Clk_Sbl¢r_mvToUng¿b +; + +1550 +moveToG¿b + = +IÁ”f_Gbd_Clk_Sbl¢r_moveToG¿b +; + +1551 +moveOut + = +IÁ”f_Gbd_Clk_Sbl¢r_moveOut +; + +1552 +focusIn + = +IÁ”f_Gbd_Clk_Sbl¢r_focusIn +; + +1553 +swInMod + = +IÁ”f_Gbd_Clk_Sbl¢r_swInMod +; + +1554 + } +} + +1558  + $IÁ”f_Click_Sbl¢r_mvToUng¿b +() + +1560  + `IÁ”f_Click_Sbl¢r +(); + +1564 { + `IÁ”f_Click_Sbl¢r +(); ; } + +1568 + } +} + +1570  + $IÁ”f_Click_Sbl¢r_moveToG¿b +() + +1572  + `IÁ”f_Click_Sbl¢r +(); + +1576 + `CÚŒÞ_Re¡Üe_G¿b +(); + +1577 { + `IÁ”f_Gbd_Clk_Sbl¢r +(); ; } + +1581 + } +} + +1583  + $IÁ”f_Click_Sbl¢r_moveOut +() + +1585  + `IÁ”f_Click_Sbl¢r +(); + +1589 + `Mªage_Sw™ch_Subli¡’” +Ð +UWIN_NULL + ); + +1591 + `CÚŒÞ_Re¡Üe_G¿b +(); + +1594 iàÐ +cu¼’t_li¡’” + =ð +UWIN_NULL + ) + +1595 + `CÚŒÞ_Un£t_Focus +(); + +1597 + `CÚŒÞ_S‘_Focus +Ð +cu¼’t_li¡’” + ); + +1599 + `Mªage_Sw™ch_Focus +Ð +cu¼’t_li¡’” + ); + +1602 { + `IÁ”f_Am_Clk_L¢r +(); ; } + +1606 + } +} + +1608  + $IÁ”f_Click_Sbl¢r_focusIn +() + +1610  + `IÁ”f_Click_Sbl¢r +(); + +1614 + `Mªage_Sw™ch_Subli¡’” +Ð +UWIN_NULL + ); + +1616 + `CÚŒÞ_Re¡Üe_G¿b +(); + +1618 { + `IÁ”f_Am_Clk_L¢r +(); ; } + +1622 + } +} + +1624  + $IÁ”f_Click_Sbl¢r_swInMod +() + +1626  + `IÁ”f_Click_Sbl¢r +(); + +1630 iàÐ +key_makes_li¡’” + || +bu‰Ú_£ts_li¡’” + || + +1631 ! +acû±_key + || ! +acû±_bu‰Ú + ) + +1633 + `CÚŒÞ_Re¡Üe_G¿b +(); + +1634 { + `IÁ”f_Gbd_Sbl¢r +(); ; } + +1638 { + `IÁ”f_Am_Sbl¢r +(); ; } + +1642 + } +} + +1644  + $IÁ”f_Click_Sbl¢r +() + +1646 +mvToUng¿b + = +IÁ”f_Click_Sbl¢r_mvToUng¿b +; + +1647 +moveToG¿b + = +IÁ”f_Click_Sbl¢r_moveToG¿b +; + +1648 +moveOut + = +IÁ”f_Click_Sbl¢r_moveOut +; + +1649 +focusIn + = +IÁ”f_Click_Sbl¢r_focusIn +; + +1650 +swInMod + = +IÁ”f_Click_Sbl¢r_swInMod +; + +1651 + } +} + +1655  + $IÁ”f_S’d_Bu‰Ú +( +uwšp +, +kšd +, +bu‰Ú +, +pos +) + +1656 +U£rwš + * +uwšp +; + +1657 +ButKšd + +kšd +; + +1658 +Bu‰Ús + +bu‰Ú +; + +1659 +TWPošt + +pos +; + +1661 + `Mªage_NÙe_IÅut +Ð +uwšp + ); + +1662 + `Cl›Á_S’d_Bu‰Ú +( +uwšp +, +kšd +, +bu‰Ú +, +pos +); + +1663 + } +} + +1666  + $IÁ”f_HªdË_Bu‰Ú +() + +1668 +boÞ + +£nd_bu‰Ú +; + +1669 +U£rwš + * +cu¼’t_subli¡’” +; + +1671 +cu¼’t_subli¡’” + = + `Mªage_G‘_Subli¡’” +(); + +1673 iàÐ + `U£rwš_IÅut_EÇbËd +( +cu¼’t_uwšp +) ) + +1675 iàÐ( +cu¼’t_uwšp + !ð +cu¼’t_li¡’” +) && + +1676 ( +cu¼’t_uwšp + !ð +cu¼’t_subli¡’” +) && + +1677 (! +bu‰Ú_£ts_li¡’” + ) && + +1678 (! +bu‰Ú_£ts_subli¡’” + ) ) + +1679 +£nd_bu‰Ú + = +FALSE +; + +1681 +£nd_bu‰Ú + = +acû±_bu‰Ú +; + +1683 iàÐ +£nd_bu‰Ú + ) + +1684 + `IÁ”f_S’d_Bu‰Ú +Ð +cu¼’t_uwšp +, + +1685 +cu¼’t_kšd +, +cu¼’t_but +, +cu¼’t_pos + ); + +1687 + `Cl›Á_IgnÜe_Bu‰Ú +(); + +1689 iàÐ +cu¼’t_uwšp + !ð +cu¼’t_li¡’” + ) + +1691 iàÐ +bu‰Ú_£ts_li¡’” + ) + +1693 +cu¼’t_li¡’” + = +cu¼’t_uwšp +; + +1694 + `IÁ”f_W©ch +( + +1695 + `Mªage_Sw™ch_Li¡’” +Ð +cu¼’t_li¡’” + ) ) + +1696 (* +becomeL¢r +)(); + +1699 iàÐ +cu¼’t_uwšp + !ð +cu¼’t_subli¡’” + ) + +1701 iàÐ +bu‰Ú_£ts_subli¡’” + ) + +1702 (* +becomeSbl¢r +)(); + +1703 iàÐ +cu¼’t_uwšp + =ð +UWIN_NULL + ) + +1705 +cu¼’t_li¡’” + = +UWIN_NULL +; + +1706 + `IÁ”f_W©ch +( + +1707 + `Mªage_Sw™ch_Li¡’” +Ð +UWIN_NULL + ) ) + +1708 (* +lo£L¢r +)(); + +1714 iàÐ +cu¼’t_uwšp + !ð +cu¼’t_li¡’” + ) + +1716 iàÐÐ +cu¼’t_uwšp + =ð +UWIN_NULL + ) || + +1717 Ð + `RegiÚ_G‘_Ty³ +( +cu¼’t_»giÚ +è=ð +¹l + ) ) + +1719 +cu¼’t_li¡’” + = +UWIN_NULL +; + +1720 + `IÁ”f_W©ch +( + +1721 + `Mªage_Sw™ch_Li¡’” +Ð +UWIN_NULL + ) ) + +1722 (* +lo£L¢r +)(); + +1723 + `Cl›Á_IgnÜe_Bu‰Ú +(); + +1725 iàÐ +acû±_bu‰Ú + ) + +1726 + `IÁ”f_S’d_Bu‰Ú +Ð +cu¼’t_uwšp +, + +1727 +cu¼’t_kšd +, +cu¼’t_but +, +cu¼’t_pos + ); + +1728 iàÐ + `U£rwš_Takes_Focus +Ð +cu¼’t_uwšp + ) ) + +1730 + `Cl›Á_Take_Focus +Ð +cu¼’t_uwšp + ); + +1731 + `Cl›Á_IgnÜe_Bu‰Ú +(); + +1732 + `Mªage_NÙe_IÅut +Ð +cu¼’t_uwšp + ); + +1735 + `Cl›Á_IgnÜe_Bu‰Ú +(); + +1738 iàÐ +acû±_bu‰Ú + ) + +1739 + `IÁ”f_S’d_Bu‰Ú +Ð +cu¼’t_uwšp +, + +1740 +cu¼’t_kšd +, +cu¼’t_but +, +cu¼’t_pos + ); + +1742 + `Cl›Á_IgnÜe_Bu‰Ú +(); + +1743 + } +} + +1746  + $IÁ”f_IgnÜe_Key +() + +1748 + `D¿wwš_FÏsh +(); + +1749 + `Cl›Á_IgnÜe_Key +(); + +1750 + } +} + +1752  + $IÁ”f_S’d_Key +Ð +uwšp +, +ch + ) + +1753 +U£rwš + * +uwšp +; + +1754  +ch +; + +1756 + `Mªage_NÙe_IÅut +Ð +uwšp + ); + +1757 + `Cl›Á_S’d_Key +Ð +uwšp +, +ch + ); + +1758 + } +} + +1761  + $IÁ”f_HªdË_Key +() + +1763 +boÞ + +key_makes_subli¡’” +; + +1764 +boÞ + +£nd_key +; + +1765 +U£rwš + * +cu¼’t_subli¡’” +; + +1767 +cu¼’t_subli¡’” + = + `Mªage_G‘_Subli¡’” +(); + +1769 iàÐ(! +šside_þ›Á +è&& ( +cu¼’t_ch + == 0) ) + +1770 + `Cl›Á_IgnÜe_Key +(); + +1772 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +FOCUS_FOLLOWS_CURSOR +) ) + +1774 iàÐ +cu¼’t_uwšp + =ð +UWIN_NULL + ) + +1775 + `IÁ”f_IgnÜe_Key +(); + +1777 iàÐ + `U£rwš_IÅut_EÇbËd +( +cu¼’t_uwšp +) ) + +1779 +£nd_key + = +acû±_key +; + +1781 iàÐ +cu¼’t_uwšp + !ð +cu¼’t_li¡’” + ) + +1783 +key_makes_subli¡’” + = (! +key_makes_li¡’” +) && + +1784 +acû±_key + && +acû±_nÚ_li¡’” +; + +1786 iàÐ +key_makes_li¡’” + ) + +1788 +cu¼’t_li¡’” + = +cu¼’t_uwšp +; + +1789 + `IÁ”f_W©ch +( + +1790 + `Mªage_Sw™ch_Li¡’” +Ð +cu¼’t_li¡’” + ) ) + +1791 (* +becomeL¢r +)(); + +1794 ià( +cu¼’t_uwšp + !ð +cu¼’t_subli¡’” +) + +1796 iàÐ +key_makes_subli¡’” + ) + +1797 (* +becomeSbl¢r +)(); + +1799 +£nd_key + = +FALSE +; + +1802 iàÐ +£nd_key + ) + +1803 + `IÁ”f_S’d_Key +Ð +cu¼’t_uwšp +, +cu¼’t_ch + ); + +1805 + `IÁ”f_IgnÜe_Key +(); + +1809 iàÐ +£nd_key + ) + +1810 + `IÁ”f_S’d_Key +Ð +cu¼’t_uwšp +, +cu¼’t_ch + ); + +1812 + `IÁ”f_IgnÜe_Key +(); + +1816 iàÐ +cu¼’t_uwšp + !ð +cu¼’t_li¡’” + ) + +1818 iàÐ +key_makes_li¡’” + ) + +1820 iàÐ +acû±_key + && +acû±_nÚ_li¡’” + ) + +1821 + `IÁ”f_S’d_Key +Ð +cu¼’t_uwšp +, +cu¼’t_ch + ); + +1823 + `IÁ”f_IgnÜe_Key +(); + +1826 + `IÁ”f_IgnÜe_Key +(); + +1832 iàÐ + `Mªage_G‘_Focus +(è=ð +UWIN_NULL + ) + +1833 + `IÁ”f_IgnÜe_Key +(); + +1835 + `IÁ”f_S’d_Key +Ð + `Mªage_G‘_Focus +(), +cu¼’t_ch +); + +1837 + } +} + +1840  + $IÁ”f_HªdË_FocusIn +Ð +uwšp + ) + +1841 +U£rwš + * +uwšp +; + +1856 + } +} + +1859  + $IÁ”f_HªdË_L—ve +() + +1861 +U£rwš + * +cu¼’t_subli¡’” +; + +1863 +cu¼’t_subli¡’” + = + `Mªage_G‘_Subli¡’” +(); + +1865 ià( +cu¼’t_uwšp + =ð +cu¼’t_li¡’” + || + +1866 +cu¼’t_uwšp + =ð +cu¼’t_subli¡’” +) + +1868 (* +moveOut +)(); + +1871 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +FOCUS_FOLLOWS_CURSOR +) ) + +1872 + `Mªage_Sw™ch_Focus +( +UWIN_NULL +); + +1873 + } +} + +1876  + $IÁ”f_HªdË_EÁ” +() + +1878 +U£rwš + * +cu¼’t_subli¡’” +; + +1880 +cu¼’t_subli¡’” + = + `Mªage_G‘_Subli¡’” +(); + +1882 iàÐ +cu¼’t_li¡’” + !ð + `Mªage_G‘_Li¡’” +() ) + +1884 iàÐ +cu¼’t_li¡’” + !ð +UWIN_NULL + ) + +1885 (* +moveOut +)(); + +1886 +cu¼’t_li¡’” + = + `Mªage_G‘_Li¡’” +(); + +1889 + `IÁ”f_Bu‰Ú_S‘s +(); + +1891 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +FOCUS_FOLLOWS_CURSOR +) ) + +1892 + `IÁ”f_Mªage_Focus +(); + +1894 ià( +cu¼’t_li¡’” + =ð +cu¼’t_uwšp +) + +1896 (* +šsideL¢r +)(); + +1898 iàÐ +acû±_key + && +acû±_bu‰Ú + ) + +1899 (* +mvToUng¿b +)(); + +1901 (* +moveToG¿b +)(); + +1903 iàÐ +cu¼’t_subli¡’” + =ð +cu¼’t_uwšp + ) + +1905 iàÐ +key_makes_li¡’” + || +bu‰Ú_£ts_li¡’” + || + +1906 ! +acû±_key + || ! +acû±_bu‰Ú + ) + +1907 (* +moveToG¿b +)(); + +1909 (* +mvToUng¿b +)(); + +1912 (* +moveOut +)(); + +1913 + } +} + +1916  + $IÁ”f_EÁ”_RegiÚ +() + +1918  + `IÁ”f_Inside_Background +(); + +1919  + `IÁ”f_Inside_Body +(); + +1920  + `IÁ”f_Inside_H—d” +(); + +1921  + `IÁ”f_Inside_Zoom_Gadg‘ +(); + +1922  + `IÁ”f_Inside_Move_Gadg‘ +(); + +1923  + `IÁ”f_Inside_Side_BÜd” +(); + +1924  + `IÁ”f_Ins_Cºr_BÜd” +(); + +1925  + `IÁ”f_Inside_IcÚ +(); + +1926  + `IÁ”f_Inside_RŽ +(); + +1928 +wa™_fÜ_þick + = +FALSE +; + +1929 +šside_þ›Á + = +FALSE +; + +1930 + `CÚŒÞ_S‘_CursÜ +( + `RegiÚ_G‘_CursÜ +( +cu¼’t_uwšp +, +cu¼’t_»giÚ +)); + +1931  + `RegiÚ_G‘_Ty³ +( +cu¼’t_»giÚ +) ) + +1933  +background +: + +1934 +acû±_key + = +FALSE +; + +1935 +acû±_bu‰Ú + = +FALSE +; + +1936 +acû±_nÚ_li¡’” + = +FALSE +; + +1937 +key_makes_li¡’” + = +FALSE +; + +1938 +bu‰Ú_makes_li¡’” + = +FALSE +; + +1939 { + `IÁ”f_Inside_Background +(); ; } + +1940  +body +: + +1941 +šside_þ›Á + = +TRUE +; + +1942 + `Cl›Á_EÁ” +Ð +cu¼’t_uwšp +, + +1943 +cu¼’t_but¡©e +, +cu¼’t_pos + ); + +1944 +acû±_key + = + `U£rwš_G‘_Wšdow_O±iÚ +( + +1945 +cu¼’t_uwšp +, +ACCEPT_KEY_IN_BODY + ); + +1946 +acû±_bu‰Ú + = + `U£rwš_G‘_Wšdow_O±iÚ +( + +1947 +cu¼’t_uwšp +, +ACCEPT_BUTTON_IN_BODY + ); + +1948 +acû±_nÚ_li¡’” + = + +1949 + `U£rGlob®s_G‘_O±iÚ +( +ACCEPT_NON_LISTENER_IN_BODY +); + +1950 +key_makes_li¡’” + = + +1951 + `U£rGlob®s_G‘_O±iÚ +( +KEY_MAKES_LISTENER_IN_BODY +); + +1952 +bu‰Ú_makes_li¡’” + = + +1953 + `U£rGlob®s_G‘_O±iÚ +( +BUTTON_MAKES_LISTENER_IN_BODY +); + +1954 + `IÁ”f_HªdË_EÁ” +(); + +1955 { + `IÁ”f_Inside_Body +(); ; } + +1956  +h—d” +: + +1957 +acû±_key + = + `U£rwš_G‘_Wšdow_O±iÚ +( + +1958 +cu¼’t_uwšp +, +ACCEPT_KEY_IN_HEADER + ); + +1959 +acû±_bu‰Ú + = + `U£rwš_G‘_Wšdow_O±iÚ +( + +1960 +cu¼’t_uwšp +, +ACCEPT_BUTTON_IN_HEADER + ); + +1961 +acû±_nÚ_li¡’” + = + +1962 + `U£rGlob®s_G‘_O±iÚ +( +ACCEPT_NON_LISTENER_IN_HEADER +); + +1963 +key_makes_li¡’” + = + +1964 + `U£rGlob®s_G‘_O±iÚ +( +KEY_MAKES_LISTENER_IN_HEADER +); + +1965 +bu‰Ú_makes_li¡’” + = + +1966 + `U£rGlob®s_G‘_O±iÚ +( +BUTTON_MAKES_LISTENER_IN_HEADER +); + +1967 + `IÁ”f_HªdË_EÁ” +(); + +1968 { + `IÁ”f_Inside_H—d” +(); ; } + +1969  +zoom_gadg‘ +: + +1970 +acû±_key + = + `U£rwš_G‘_Wšdow_O±iÚ +( + +1971 +cu¼’t_uwšp +, +ACCEPT_KEY_IN_GADGET + ); + +1972 +acû±_bu‰Ú + = +FALSE +; + +1973 +acû±_nÚ_li¡’” + = + +1974 + `U£rGlob®s_G‘_O±iÚ +( +ACCEPT_NON_LISTENER_IN_GADGET +); + +1975 +key_makes_li¡’” + = + +1976 + `U£rGlob®s_G‘_O±iÚ +( +KEY_MAKES_LISTENER_IN_GADGET +); + +1977 +bu‰Ú_makes_li¡’” + = +FALSE +; + +1978 + `IÁ”f_HªdË_EÁ” +(); + +1979 { + `IÁ”f_Inside_Zoom_Gadg‘ +(); ; } + +1980  +move_gadg‘ +: + +1981 +acû±_key + = + `U£rwš_G‘_Wšdow_O±iÚ +( + +1982 +cu¼’t_uwšp +, +ACCEPT_KEY_IN_GADGET + ); + +1983 +acû±_bu‰Ú + = +FALSE +; + +1984 +acû±_nÚ_li¡’” + = + +1985 + `U£rGlob®s_G‘_O±iÚ +( +ACCEPT_NON_LISTENER_IN_GADGET +); + +1986 +key_makes_li¡’” + = + +1987 + `U£rGlob®s_G‘_O±iÚ +( +KEY_MAKES_LISTENER_IN_GADGET +); + +1988 +bu‰Ú_makes_li¡’” + = +FALSE +; + +1989 + `IÁ”f_HªdË_EÁ” +(); + +1990 { + `IÁ”f_Inside_Move_Gadg‘ +(); ; } + +1991  +edge +: + +1992 +acû±_key + = + `U£rwš_G‘_Wšdow_O±iÚ +( + +1993 +cu¼’t_uwšp +, +ACCEPT_KEY_IN_BORDER + ); + +1994 +acû±_bu‰Ú + = +FALSE +; + +1995 +acû±_nÚ_li¡’” + = + +1996 + `U£rGlob®s_G‘_O±iÚ +( +ACCEPT_NON_LISTENER_IN_BORDER +); + +1997 +key_makes_li¡’” + = + +1998 + `U£rGlob®s_G‘_O±iÚ +( +KEY_MAKES_LISTENER_IN_BORDER +); + +1999 +bu‰Ú_makes_li¡’” + = +FALSE +; + +2000 + `IÁ”f_HªdË_EÁ” +(); + +2001 { + `IÁ”f_Inside_Side_BÜd” +(); ; } + +2002  +cÜÃr +: + +2003 +acû±_key + = + `U£rwš_G‘_Wšdow_O±iÚ +( + +2004 +cu¼’t_uwšp +, +ACCEPT_KEY_IN_BORDER + ); + +2005 +acû±_bu‰Ú + = +FALSE +; + +2006 +acû±_nÚ_li¡’” + = + +2007 + `U£rGlob®s_G‘_O±iÚ +( +ACCEPT_NON_LISTENER_IN_BORDER +); + +2008 +key_makes_li¡’” + = + +2009 + `U£rGlob®s_G‘_O±iÚ +( +KEY_MAKES_LISTENER_IN_BORDER +); + +2010 +bu‰Ú_makes_li¡’” + = +FALSE +; + +2011 + `IÁ”f_HªdË_EÁ” +(); + +2012 { + `IÁ”f_Ins_Cºr_BÜd” +(); ; } + +2013  +icÚ +: + +2014 +acû±_key + = + `U£rwš_G‘_Wšdow_O±iÚ +( + +2015 +cu¼’t_uwšp +, +ACCEPT_KEY_IN_ICON + ); + +2016 +acû±_bu‰Ú + = + `U£rwš_G‘_Wšdow_O±iÚ +( + +2017 +cu¼’t_uwšp +, +ACCEPT_BUTTON_IN_ICON + ); + +2018 +acû±_nÚ_li¡’” + = +TRUE +; + +2019 +key_makes_li¡’” + = +FALSE +; + +2020 +bu‰Ú_makes_li¡’” + = +FALSE +; + +2021 + `IÁ”f_HªdË_EÁ” +(); + +2022 { + `IÁ”f_Inside_IcÚ +(); ; } + +2023  +¹l +: + +2024 +acû±_key + = +FALSE +; + +2025 +acû±_bu‰Ú + = +FALSE +; + +2026 +acû±_nÚ_li¡’” + = +FALSE +; + +2027 +key_makes_li¡’” + = +FALSE +; + +2028 +bu‰Ú_makes_li¡’” + = +FALSE +; + +2029 + `IÁ”f_HªdË_EÁ” +(); + +2030 { + `IÁ”f_Inside_RŽ +(); ; } + +2032 + } +} + +2035  + $IÁ”f_R“Á”_RegiÚ +() + +2037 + `IÁ”f_P»·»_R“Á” +(); + +2038 + `IÅut_R“Á” +(); + +2039 { + `IÁ”f_EÁ”_RegiÚ +(); ; } + +2040 + } +} + +2043  + $IÁ”f_EÇbË_IÅut +( +uwšp +) + +2044 +U£rwš + * +uwšp +; + +2046 + `U£rwš_EÇbË_IÅut +( +uwšp +); + +2047 ià( +cu¼’t_uwšp + =ð +uwšp +) + +2048 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +2049 + } +} + +2052  + $IÁ”f_Di§bË_IÅut +Ð +uwšp + ) + +2053 +U£rwš + * +uwšp +; + +2055 + `U£rwš_Di§bË_IÅut +( +uwšp +); + +2056 ià( +cu¼’t_uwšp + =ð +uwšp +) + +2057 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +2058 + } +} + +2061  + $IÁ”f_Wa™_Cm¶t_Cªûl_KEY +() + +2063  + `IÁ”f_Wa™_Cm¶t_Cªûl +(); + +2066 + `D¿wwš_FÏsh +(); + +2067 { + `IÁ”f_Wa™_Cm¶t_Cªûl +(); ; } + +2070 + } +} + +2072  + $IÁ”f_Wa™_Cm¶t_Cªûl_MOUSE +() + +2074  + `IÁ”f_Wa™_Cm¶t_Cªûl +(); + +2077 { + `IÁ”f_Wa™_Cm¶t_Cªûl +(); ; } + +2080 + } +} + +2082  + $IÁ”f_Wa™_Cm¶t_Cªûl_bu‰Ú +() + +2084  + `IÁ”f_Wa™_Cm¶t_Cªûl +(); + +2087  + `IÁ”f_Cªûl_H”e +(); + +2088 { + `IÁ”f_Cªûl_H”e +(); ; } + +2091 + } +} + +2093  + $IÁ”f_Wa™_Cm¶t_Cªûl +() + +2095 +KEY + = +IÁ”f_Wa™_Cm¶t_Cªûl_KEY +; + +2096 +MOUSE + = +IÁ”f_Wa™_Cm¶t_Cªûl_MOUSE +; + +2097 +bu‰Ú + = +IÁ”f_Wa™_Cm¶t_Cªûl_bu‰Ú +; + +2098 + } +} + +2102  + $IÁ”f_Cªûl_H”e +() + +2104 +com¶‘e_down + = + `Bu‰Ús_Any_Down +( +cu¼’t_but¡©e +); + +2105 iàÐ +com¶‘e_down + ) + +2106 { + `IÁ”f_Wa™_Cm¶t_Cªûl +(); ; } + +2108 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +2109 + } +} + +2112  + $IÁ”f_Cªûl +() + +2114 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +PLACE_CSR_BACK_ON_CANCEL +) ) + +2115 + `IÁ”f_S‘_Pos +Ð +ÿnûl_pos + ); + +2117 { + `IÁ”f_Cªûl_H”e +(); ; } + +2118 + } +} + +2121  + $IÁ”f_FÏsh_Cªûl +() + +2123 + `D¿wwš_FÏsh +(); + +2124 { + `IÁ”f_Cªûl +(); ; } + +2125 + } +} + +2128  + $IÁ”f_CÚfœmed_NÙify_AÎ +() + +2130 + `Mªage_NÙify_AÎ +(); + +2131 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +2132 + } +} + +2135  + $IÁ”f_CÚfœmed_Soá_Kžl_AÎ +() + +2137 + `Mªage_Soá_Kžl_AÎ +(); + +2138 +chªge_¡©e + = +TRUE +; + +2139 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +2140 + } +} + +2143  + $IÁ”f_CÚfœmed_Ex™ +() + +2145 + `Mªage_Ex™ +(); + +2146 + `CÚŒÞ_Ex™ +(); + +2147 + `ex™ +(0); + +2148 + } +} + +2151  + $IÁ”f_CÚfœmed_Pau£ +() + +2153  + `Pau£_RTL +(); + +2154 + `Pau£_RTL +(); + +2155 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +2156 + } +} + +2159  + $IÁ”f_CÚfœmed_IcÚ_NÙify +() + +2161 + `Cl›Á_IcÚ_NÙify +( +cu¼’t_uwšp +); + +2162 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +2163 + } +} + +2166  + $IÁ”f_CÚfœmed_Group_Clo£ +() + +2168 + `Mªage_Group_Clo£ +( +cu¼’t_uwšp +); + +2169 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +2170 + } +} + +2173  + $IÁ”f_CÚfœmed_Group_O³n +() + +2175 + `Mªage_Group_O³n +( +cu¼’t_uwšp +); + +2176 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +2177 + } +} + +2180  + $IÁ”f_CÚfœmed_NÙify +() + +2182 + `Mªage_NÙify +( +cu¼’t_uwšp +); + +2183 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +2184 + } +} + +2187  + $IÁ”f_CÚfœmed_D–‘e_Wšdow +() + +2189 + `IÁ”f_W©ch +( + +2190 + `Mªage_D–‘e_Wšdow +( +cu¼’t_uwšp +) ) + +2191 +chªge_¡©e + = +TRUE +; + +2192 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +2193 + } +} + +2196  + $IÁ”f_CÚfœmed_Soá_Kžl +() + +2198 + `IÁ”f_W©ch +( + +2199 + `Mªage_Soá_Kžl +( +cu¼’t_uwšp +) ) + +2200 +chªge_¡©e + = +TRUE +; + +2201 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +2202 + } +} + +2205  + $IÁ”f_CÚfœmed_H¬d_Kžl +() + +2207 + `IÁ”f_W©ch +( + +2208 + `Mªage_H¬d_Kžl +( +cu¼’t_uwšp +) ) + +2209 +chªge_¡©e + = +TRUE +; + +2210 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +2211 + } +} + +2214  +VoidFunc + + gaù_func +; + +2215  +VoidFunc + + gÿnûl_func +; + +2217  + $IÁ”f_Wa™_Com¶‘e_KEY +() + +2219  + `IÁ”f_Wa™_Com¶‘e +(); + +2222 + `D¿wwš_FÏsh +(); + +2223 { + `IÁ”f_Wa™_Com¶‘e +(); ; } + +2226 + } +} + +2228  + $IÁ”f_Wa™_Com¶‘e_MOUSE +() + +2230  + `IÁ”f_Wa™_Com¶‘e +(); + +2233 { + `IÁ”f_Wa™_Com¶‘e +(); ; } + +2236 + } +} + +2238  + $IÁ”f_Wa™_Com¶‘e_bu‰Ú +() + +2240  + `IÁ”f_Wa™_Com¶‘e +(); + +2243  + `IÁ”f_Check_Com¶‘e +(); + +2245 iàÐ( +cu¼’t_kšd + !ð +up +) && + +2246 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +CANCEL_BUTTONS +) ) + +2247 { (* +ÿnûl_func +)(); ; } + +2249 { + `IÁ”f_Check_Com¶‘e +(); ; } + +2252 + } +} + +2254  + $IÁ”f_Wa™_Com¶‘e +() + +2256 +KEY + = +IÁ”f_Wa™_Com¶‘e_KEY +; + +2257 +MOUSE + = +IÁ”f_Wa™_Com¶‘e_MOUSE +; + +2258 +bu‰Ú + = +IÁ”f_Wa™_Com¶‘e_bu‰Ú +; + +2259 + } +} + +2263  + $IÁ”f_Check_Com¶‘e +() + +2265 +com¶‘e_down + = + `Bu‰Ús_Any_Down +( +cu¼’t_but¡©e +); + +2267 iàÐ +com¶‘e_down + ) + +2268 { + `IÁ”f_Wa™_Com¶‘e +(); ; } + +2270 { (* +aù_func +)(); ; } + +2271 + } +} + +2274  + $IÁ”f_A¼ªge +Ð +aùfunc +, +ÿnûlfunc + ) + +2275 +VoidFunc + +aùfunc +; + +2276 +VoidFunc + +ÿnûlfunc +; + +2278 +aù_func + = +aùfunc +; + +2279 +ÿnûl_func + = +ÿnûlfunc +; + +2281 { + `IÁ”f_Check_Com¶‘e +(); ; } + +2282 + } +} + +2285  + $IÁ”f_Aù +Ð +aùfunc + ) + +2286 +VoidFunc + +aùfunc +; + +2288 +aù_func + = +aùfunc +; + +2289 +ÿnûl_func + = +IÁ”f_Cªûl +; + +2291 +com¶‘e_down + = + `Bu‰Ús_Any_Down +( +cu¼’t_but¡©e +); + +2293 ià(! +com¶‘e_down + ) + +2294 { (* +aù_func +)(); ; } + +2295 iàÐ + `CÚŒÞ_G¿b_U£r +Ð +FALSE +, +w©ch_tžecursÜ + ) ) + +2296 { + `IÁ”f_Wa™_Com¶‘e +(); ; } + +2298 { (* +aù_func +)(); ; } + +2299 + } +} + +2302  +VoidFunc + + gwa™_´cs +; + +2305  + $IÁ”f_CÚfœm_Cªûl +() + +2307 + `Mes§ge_Put_Down +(); + +2308 { + `IÁ”f_Cªûl +(); ; } + +2309 + } +} + +2312  + $IÁ”f_Wa™_FÜ_CÚf_KEY +() + +2314  + `IÁ”f_Wa™_FÜ_CÚf +(); + +2317 + `D¿wwš_FÏsh +(); + +2318 { + `IÁ”f_Wa™_FÜ_CÚf +(); ; } + +2321 + } +} + +2323  + $IÁ”f_Wa™_FÜ_CÚf_MOUSE +() + +2325  + `IÁ”f_Wa™_FÜ_CÚf +(); + +2328 { + `IÁ”f_Wa™_FÜ_CÚf +(); ; } + +2331 + } +} + +2333  + $IÁ”f_Wa™_FÜ_CÚf_bu‰Ú +() + +2335  + `IÁ”f_Wa™_FÜ_CÚf +(); + +2338 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +CANCEL_BUTTONS +) ) + +2339 { + `IÁ”f_CÚfœm_Cªûl +(); ; } + +2340 iàÐ +cu¼’t_kšd + =ð +up + ) + +2341 { + `IÁ”f_Wa™_FÜ_CÚf +(); ; } + +2344 + `Mes§ge_Put_Down +(); + +2345 { + `IÁ”f_A¼ªge +Ð +wa™_´cs +, +IÁ”f_CÚfœm_Cªûl + ); ; } + +2349 + } +} + +2351  + $IÁ”f_Wa™_FÜ_CÚf +() + +2353 +KEY + = +IÁ”f_Wa™_FÜ_CÚf_KEY +; + +2354 +MOUSE + = +IÁ”f_Wa™_FÜ_CÚf_MOUSE +; + +2355 +bu‰Ú + = +IÁ”f_Wa™_FÜ_CÚf_bu‰Ú +; + +2356 + } +} + +2360  + $IÁ”f_S¹_Wa™_FÜ_CÚfœm +( +msg +, +´cs +) + +2361 +Mes§ge + +msg +; + +2362 +VoidFunc + +´cs +; + +2364 ià(! + `IÁ”f_S¹_G¿bbšg +Ð +cÚfœm©iÚ_tžecursÜ + ) ) + +2365 { + `IÁ”f_FÏsh_Cªûl +(); ; } + +2366 + `Mes§ge_PÝ_Up +( +cu¼’t_pos +, +msg +); + +2367 +wa™_´cs + = +´cs +; + +2368 { + `IÁ”f_Wa™_FÜ_CÚf +(); ; } + +2369 + } +} + +2373  +TWPošt + + g¡¬t_pos +; + +2374  +boÞ + + gûÁ”_Ý’šg +; + +2375  +boÞ + + ggood_Ý’ +; + +2376 +TWPošt + + gÏ¡_pos +; + +2378  + $IÁ”f_Cªûl_O³nšg +() + +2380 iàÐ + `U£rwš_Is_O³n +( +cu¼’t_uwšp +) ) + +2381 + `D¿wwš_Unshow_Movšg +( +cu¼’t_uwšp +); + +2382 iàÐ + `U£rwš_Is_IcÚic +( +cu¼’t_uwšp +) ) + +2383 + `D¿wIcÚ_Unshow_O³nšg +( +cu¼’t_uwšp +); + +2384 ià(! + `U£rwš_Ev”_O³Ãd +( +cu¼’t_uwšp +) ) + +2385 + `IÁ”f_W©ch +( + +2386 + `Mªage_Cl›Á_O³n_IcÚ +( +cu¼’t_uwšp +) ) + +2387 { + `IÁ”f_Cªûl +(); ; } + +2388 + } +} + +2390  + $IÁ”f_Fšish_O³nšg +() + +2392 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +PLACE_CSR_IN_GADGET_AFT_MAN_OPEN +) ) + +2393 + `IÁ”f_S‘_Pos +Ð + `RegiÚ_Gadg‘_C’‹r +Ð +cu¼’t_uwšp + ) ); + +2394 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +2395 + } +} + +2397  + $IÁ”f_Aù_C’‹r_O³nšg +() + +2399  + `IÁ”f_S¹_IcÚ_O³nšg +(); + +2400  + `IÁ”f_S¹_O³nšg +(); + +2401 +boÞ + +»suÉ +; + +2403 iàÐ + `U£rwš_Is_O³n +( +cu¼’t_uwšp +) ) + +2404 + `D¿wwš_Unshow_Movšg +( +cu¼’t_uwšp +); + +2405 iàÐ + `U£rwš_Is_IcÚic +( +cu¼’t_uwšp +) ) + +2406 + `D¿wIcÚ_Unshow_O³nšg +( +cu¼’t_uwšp +); + +2408 + `IÁ”f_W©ch +( + +2410 +»suÉ + = + `Mªage_C’‹r_O³n +( +cu¼’t_uwšp +, +cu¼’t_pos +); + +2412 iàÐ +»suÉ + ) + +2413 { + `IÁ”f_Fšish_O³nšg +(); ; } + +2415 iàÐ(! + `U£rwš_Is_O³n +( +cu¼’t_uwšp +)) && + +2416 + `U£rwš_Is_IcÚic +( +cu¼’t_uwšp +) ) + +2417 { + `IÁ”f_S¹_IcÚ_O³nšg +(); ; } + +2419 { + `IÁ”f_S¹_O³nšg +(); ; } + +2420 + } +} + +2422  + $IÁ”f_Trk_CÚt_CŒ_O²g_KEY +() + +2424  + `IÁ”f_Trk_CÚt_CŒ_O²g +(); + +2427 + `D¿wwš_FÏsh +(); + +2428 { + `IÁ”f_Trk_CÚt_CŒ_O²g +(); ; } + +2431 + } +} + +2433  + $IÁ”f_Trk_CÚt_CŒ_O²g_MOUSE +() + +2435  + `IÁ”f_Trk_CÚt_CŒ_O²g +(); + +2438  + `IÁ”f_S¹_CÚtšue_O³nšg +(); + +2439 { + `IÁ”f_S¹_CÚtšue_O³nšg +(); ; } + +2442 + } +} + +2444  + $IÁ”f_Trk_CÚt_CŒ_O²g_bu‰Ú +() + +2446  + `IÁ”f_Trk_CÚt_CŒ_O²g +(); + +2449 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +CANCEL_BUTTONS +) ) + +2450 { + `IÁ”f_Cªûl_O³nšg +(); ; } + +2451 iàÐ +cu¼’t_kšd + !ð +down + ) + +2453 ià(! ( + `U£rwš_Sized +Ð +cu¼’t_uwšp + ) || + +2454 + `U£rGlob®s_G‘_O±iÚ +( +AUTO_PLACE_ON_UNSIZED_OPEN +) ) ) + +2455 + `D¿wwš_FÏsh +(); + +2457 { + `IÁ”f_A¼ªge +Ð +IÁ”f_Aù_C’‹r_O³nšg +, +IÁ”f_Cªûl_O³nšg + ); ; } + +2459 { + `IÁ”f_Trk_CÚt_CŒ_O²g +(); ; } + +2462 + } +} + +2464  + $IÁ”f_Trk_CÚt_CŒ_O²g +() + +2466 +KEY + = +IÁ”f_Trk_CÚt_CŒ_O²g_KEY +; + +2467 +MOUSE + = +IÁ”f_Trk_CÚt_CŒ_O²g_MOUSE +; + +2468 +bu‰Ú + = +IÁ”f_Trk_CÚt_CŒ_O²g_bu‰Ú +; + +2469 + } +} + +2472  + $IÁ”f_Cªûl_CÜÃr_O³nšg +() + +2474 + `D¿wwš_Undo_O³n_Box +(); + +2475 { + `IÁ”f_Cªûl_O³nšg +(); ; } + +2476 + } +} + +2478  + $IÁ”f_S‘up_CÜÃr_O³n +() + +2480 + `CÚŒÞ_S‘_CursÜ +( +cÜÃr_Ý’_tžecursÜ +); + +2481 +good_Ý’ + = + `U£rwš_Check_CÜÃr_O³n +Ð +cu¼’t_uwšp +, & +¡¬t_pos +, + +2482 & +cu¼’t_pos +, +TÝ_Leá + ); + +2483 +Ï¡_pos + = +cu¼’t_pos +; + +2484 iàÐ +good_Ý’ + ) + +2485 + `D¿wwš_Good_O³n_Box +( +¡¬t_pos +, +cu¼’t_pos +); + +2487 + `D¿wwš_Bad_O³n_Box +( +¡¬t_pos +, +cu¼’t_pos +); + +2488 + } +} + +2490  + $IÁ”f_Aù_CÜÃr_O³nšg +() + +2492  + `IÁ”f_S¹_CÚtšue_O³nšg +(); + +2493 +boÞ + +»suÉ +; + +2495 + `D¿wwš_Undo_O³n_Box +(); + +2497 iàÐ + `U£rwš_Is_O³n +( +cu¼’t_uwšp +) ) + +2498 + `D¿wwš_Unshow_Movšg +( +cu¼’t_uwšp +); + +2499 iàÐ + `U£rwš_Is_IcÚic +( +cu¼’t_uwšp +) ) + +2500 + `D¿wIcÚ_Unshow_O³nšg +( +cu¼’t_uwšp +); + +2502 + `IÁ”f_W©ch +( + +2504 +»suÉ + = + +2505 + `Mªage_CÜÃr_O³n +( +cu¼’t_uwšp +, +¡¬t_pos +, +Ï¡_pos +, + +2506 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +FORCE_RESET_MIN_MAX_BUTTONS +), + +2507 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +UNDESIRE_BUTTONS +) ); + +2509 iàÐ +»suÉ + ) + +2510 { + `IÁ”f_Fšish_O³nšg +(); ; } + +2512 iàÐ + `U£rwš_Is_O³n +( +cu¼’t_uwšp +) ) + +2513 + `D¿wwš_Show_Movšg +( +cu¼’t_uwšp +); + +2514 iàÐ + `U£rwš_Is_IcÚic +( +cu¼’t_uwšp +) ) + +2515 + `D¿wIcÚ_Show_O³nšg +( +cu¼’t_uwšp +); + +2517 { + `IÁ”f_S¹_CÚtšue_O³nšg +(); ; } + +2518 + } +} + +2520  + $IÁ”f_Trk_CÚt_Cºr_O²g_KEY +() + +2522  + `IÁ”f_Trk_CÚt_Cºr_O²g +(); + +2525 + `D¿wwš_FÏsh +(); + +2526 { + `IÁ”f_Trk_CÚt_Cºr_O²g +(); ; } + +2529 + } +} + +2531  + $IÁ”f_Trk_CÚt_Cºr_O²g_MOUSE +() + +2533  + `IÁ”f_Trk_CÚt_Cºr_O²g +(); + +2536  + `IÁ”f_S¹_CÚtšue_O³nšg +(); + +2537 iàÐ( +Ï¡_pos +. +x + =ð +cu¼’t_pos +.xè&& (Ï¡_pos. +y + == current_pos.y) ) + +2538 { + `IÁ”f_Trk_CÚt_Cºr_O²g +(); ; } + +2539 + `D¿wwš_Undo_O³n_Box +(); + +2540 { + `IÁ”f_S¹_CÚtšue_O³nšg +(); ; } + +2543 + } +} + +2545  + $IÁ”f_Trk_CÚt_Cºr_O²g_bu‰Ú +() + +2547  + `IÁ”f_Trk_CÚt_Cºr_O²g +(); + +2550 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +CANCEL_BUTTONS +) ) + +2551 { + `IÁ”f_Cªûl_CÜÃr_O³nšg +(); ; } + +2552 iàÐ +good_Ý’ + && ( +cu¼’t_kšd + !ð +down +) ) + +2553 { + `IÁ”f_A¼ªge +Ð +IÁ”f_Aù_CÜÃr_O³nšg +, +IÁ”f_Cªûl_CÜÃr_O³nšg + ) ; ; } + +2554 { + `IÁ”f_Trk_CÚt_Cºr_O²g +(); ; } + +2557 + } +} + +2559  + $IÁ”f_Trk_CÚt_Cºr_O²g +() + +2561 +KEY + = +IÁ”f_Trk_CÚt_Cºr_O²g_KEY +; + +2562 +MOUSE + = +IÁ”f_Trk_CÚt_Cºr_O²g_MOUSE +; + +2563 +bu‰Ú + = +IÁ”f_Trk_CÚt_Cºr_O²g_bu‰Ú +; + +2564 + } +} + +2567  + $IÁ”f_S¹_CÚtšue_O³nšg +() + +2569 +ûÁ”_Ý’šg + = + `RegiÚ_N—rby +( +¡¬t_pos +, +cu¼’t_pos +); + +2570 iàÐ +ûÁ”_Ý’šg + ) + +2572 + `CÚŒÞ_S‘_CursÜ +( +ûÁ”_Ý’_tžecursÜ +); + +2573 { + `IÁ”f_Trk_CÚt_CŒ_O²g +(); ; } + +2577 + `IÁ”f_S‘up_CÜÃr_O³n +(); + +2578 { + `IÁ”f_Trk_CÚt_Cºr_O²g +(); ; } + +2580 + } +} + +2582  + $IÁ”f_T¿ck_O³nšg_KEY +() + +2584  + `IÁ”f_T¿ck_O³nšg +(); + +2587 + `D¿wwš_FÏsh +(); + +2588 { + `IÁ”f_T¿ck_O³nšg +(); ; } + +2591 + } +} + +2593  + $IÁ”f_T¿ck_O³nšg_MOUSE +() + +2595  + `IÁ”f_T¿ck_O³nšg +(); + +2598 { + `IÁ”f_T¿ck_O³nšg +(); ; } + +2601 + } +} + +2603  + $IÁ”f_T¿ck_O³nšg_bu‰Ú +() + +2605  + `IÁ”f_T¿ck_O³nšg +(); + +2608 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +CANCEL_BUTTONS +) ) + +2609 { + `IÁ”f_Cªûl_O³nšg +(); ; } + +2612 + `CÚŒÞ_S‘_CursÜ +( +ûÁ”_Ý’_tžecursÜ +); + +2613 +¡¬t_pos + = + `IÁ”f_CÚtšue_T¿ckšg +(); + +2614 { + `IÁ”f_Trk_CÚt_CŒ_O²g +(); ; } + +2618 + } +} + +2620  + $IÁ”f_T¿ck_O³nšg +() + +2622 +KEY + = +IÁ”f_T¿ck_O³nšg_KEY +; + +2623 +MOUSE + = +IÁ”f_T¿ck_O³nšg_MOUSE +; + +2624 +bu‰Ú + = +IÁ”f_T¿ck_O³nšg_bu‰Ú +; + +2625 + } +} + +2628  + $IÁ”f_S¹_O³nšg +() + +2630 + `CÚŒÞ_S‘_CursÜ +( +Œack_Ý’_tžecursÜ +); + +2631 iàÐ + `U£rwš_Is_O³n +( +cu¼’t_uwšp +) ) + +2632 + `D¿wwš_Show_Movšg +( +cu¼’t_uwšp +); + +2633 { + `IÁ”f_T¿ck_O³nšg +(); ; } + +2634 + } +} + +2638  + $IÁ”f_Cªûl_O³n_In_IcÚ +() + +2640 + `D¿wIcÚ_Unshow_O³nšg +Ð +cu¼’t_uwšp + ); + +2641 { + `IÁ”f_Cªûl +(); ; } + +2642 + } +} + +2644  + $IÁ”f_T¿ck_IcÚ_O³nšg_KEY +() + +2646  + `IÁ”f_T¿ck_IcÚ_O³nšg +(); + +2649 + `D¿wwš_FÏsh +(); + +2650 { + `IÁ”f_T¿ck_IcÚ_O³nšg +(); ; } + +2653 + } +} + +2655  + $IÁ”f_T¿ck_IcÚ_O³nšg_MOUSE +() + +2657  + `IÁ”f_T¿ck_IcÚ_O³nšg +(); + +2660  + `IÁ”f_O³n_In_IcÚ +(); + +2661 iàÐ + `Mªage_Loÿ‹ +Ð +cu¼’t_pos + ) =ð +cu¼’t_uwšp + ) + +2663 + `CÚŒÞ_S‘_CursÜ +( +Ý’_š_icÚ_tžecursÜ +); + +2664 { + `IÁ”f_O³n_In_IcÚ +(); ; } + +2666 +¡¬t_pos + = +cu¼’t_pos +; + +2667 { + `IÁ”f_T¿ck_IcÚ_O³nšg +(); ; } + +2670 + } +} + +2672  + $IÁ”f_T¿ck_IcÚ_O³nšg_bu‰Ú +() + +2674  + `IÁ”f_T¿ck_IcÚ_O³nšg +(); + +2677 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +CANCEL_BUTTONS +) ) + +2678 { + `IÁ”f_Cªûl_O³n_In_IcÚ +(); ; } + +2681 + `CÚŒÞ_S‘_CursÜ +( +ûÁ”_Ý’_tžecursÜ +); + +2682 +¡¬t_pos + = + `IÁ”f_CÚtšue_T¿ckšg +(); + +2683 { + `IÁ”f_Trk_CÚt_CŒ_O²g +(); ; } + +2687 + } +} + +2689  + $IÁ”f_T¿ck_IcÚ_O³nšg +() + +2691 +KEY + = +IÁ”f_T¿ck_IcÚ_O³nšg_KEY +; + +2692 +MOUSE + = +IÁ”f_T¿ck_IcÚ_O³nšg_MOUSE +; + +2693 +bu‰Ú + = +IÁ”f_T¿ck_IcÚ_O³nšg_bu‰Ú +; + +2694 + } +} + +2697  + $IÁ”f_CÚtšue_IcÚ_O³nšg +() + +2699 + `CÚŒÞ_S‘_CursÜ +( +Œack_Ý’_tžecursÜ +); + +2700 { + `IÁ”f_T¿ck_IcÚ_O³nšg +(); ; } + +2701 + } +} + +2703  + $IÁ”f_S¹_IcÚ_O³nšg +() + +2705 iàÐ + `U£rwš_Is_IcÚic +( +cu¼’t_uwšp +) ) + +2706 + `D¿wIcÚ_Show_O³nšg +( +cu¼’t_uwšp +); + +2707 { + `IÁ”f_CÚtšue_IcÚ_O³nšg +(); ; } + +2708 + } +} + +2710  + $IÁ”f_Aù_O³n_In_IcÚ +() + +2712 +boÞ + +»suÉ +; + +2714 + `IÁ”f_W©ch +( + +2716 +»suÉ + = + `Mªage_U£r_O³n_Autom©iÿÎy +Ð +cu¼’t_uwšp +, + +2718 +FALSE +, + +2719 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +FORCE_ZOOM_BUTTONS +) ); + +2721 iàÐ +»suÉ + ) + +2723 iàÐ + `U£rGlob®s_G‘_O±iÚ +( + +2724 +PLACE_CSR_GDGT_AFT_US_AUTO_OPEN +) ) + +2725 + `IÁ”f_S‘_Pos +Ð + `RegiÚ_Gadg‘_C’‹r +Ð +cu¼’t_uwšp + ) ); + +2726 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +FORCE_LISTENER_BUTTONS +) ) + +2730 + `D¿wIcÚ_Unshow_O³nšg +Ð +cu¼’t_uwšp + ); + +2731 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +2732 + } +} + +2734  + $IÁ”f_O³n_In_IcÚ_KEY +() + +2736  + `IÁ”f_O³n_In_IcÚ +(); + +2739 + `D¿wwš_FÏsh +(); + +2740 { + `IÁ”f_O³n_In_IcÚ +(); ; } + +2743 + } +} + +2745  + $IÁ”f_O³n_In_IcÚ_MOUSE +() + +2747  + `IÁ”f_O³n_In_IcÚ +(); + +2750 iàÐ + `Mªage_Loÿ‹ +Ð +cu¼’t_pos + ) =ð +cu¼’t_uwšp + ) + +2751 { + `IÁ”f_O³n_In_IcÚ +(); ; } + +2753 { + `IÁ”f_CÚtšue_IcÚ_O³nšg +(); ; } + +2756 + } +} + +2758  + $IÁ”f_O³n_In_IcÚ_bu‰Ú +() + +2760  + `IÁ”f_O³n_In_IcÚ +(); + +2763 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +CANCEL_BUTTONS +) ) + +2764 { + `IÁ”f_Cªûl_O³n_In_IcÚ +(); ; } + +2765 iàÐ +cu¼’t_kšd + !ð +up + ) + +2766 { + `IÁ”f_A¼ªge +Ð +IÁ”f_Aù_O³n_In_IcÚ +, +IÁ”f_Cªûl_O³n_In_IcÚ + ); ; } + +2767 { + `IÁ”f_O³n_In_IcÚ +(); ; } + +2770 + } +} + +2772  + $IÁ”f_O³n_In_IcÚ +() + +2774 +KEY + = +IÁ”f_O³n_In_IcÚ_KEY +; + +2775 +MOUSE + = +IÁ”f_O³n_In_IcÚ_MOUSE +; + +2776 +bu‰Ú + = +IÁ”f_O³n_In_IcÚ_bu‰Ú +; + +2777 + } +} + +2780  + $IÁ”f_S¹_O³n_In_IcÚ +() + +2782 ià(! + `IÁ”f_S¹_T¿ckšg +( +Ý’_š_icÚ_tžecursÜ +)) + +2783 { + `IÁ”f_FÏsh_Cªûl +(); ; } + +2784 + `D¿wIcÚ_Show_O³nšg +Ð +cu¼’t_uwšp + ); + +2785 { + `IÁ”f_O³n_In_IcÚ +(); ; } + +2786 + } +} + +2789  +boÞ + + gÞd_g¿v™y +; + +2791  +boÞ + (* + tBoÞFunc +)(); + +2792  +BoÞFunc + + g»size_´oc +; + +2795  + $IÁ”f_S‘up_Edge_Resizšg +() + +2797  + `IÁ”f_T¿ck_Edge_Rszng +(); + +2798 + `U£rwš_Check_Edge_Resize +Ð +cu¼’t_uwšp +, & +cu¼’t_pos +, +cu¼’t_side + ); + +2799 +Ï¡_pos + = +cu¼’t_pos +; + +2800 + `D¿wwš_Edge_Resize +( +cu¼’t_uwšp +, +cu¼’t_side +, +cu¼’t_pos +); + +2801 { + `IÁ”f_T¿ck_Edge_Rszng +(); ; } + +2802 + } +} + +2804  + $IÁ”f_Cªûl_Edge_Resizšg +() + +2806 + `D¿wwš_Undo_Edge_Resize +(); + +2807 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY +, +Þd_g¿v™y + ); + +2808 { + `IÁ”f_Cªûl +(); ; } + +2809 + } +} + +2811  + $IÁ”f_Aù_Edge_Resizšg +() + +2813 +boÞ + +»suÉ +; + +2815 + `D¿wwš_Undo_Edge_Resize +(); + +2816 + `IÁ”f_W©ch +( + +2818 +»suÉ + = (* +»size_´oc +)( +cu¼’t_uwšp +, +Ï¡_pos +, +cu¼’t_side +, + +2819 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +FORCE_RESET_MIN_MAX_BUTTONS +), + +2820 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +UNDESIRE_BUTTONS +) ); + +2822 iàÐ +»suÉ + ) + +2824 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +PLACE_CSR_IN_BORDER_AFTER_RESIZE +) ) + +2825 + `IÁ”f_S‘_Pos +Ð + `RegiÚ_G‘_Edge_Pos +( + +2826 +cu¼’t_uwšp +, +cu¼’t_side +, +cu¼’t_pos + ) ); + +2827 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY +, +Þd_g¿v™y + ); + +2828 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +2831 { + `IÁ”f_S‘up_Edge_Resizšg +(); ; } + +2832 + } +} + +2834  + $IÁ”f_T¿ck_Edge_Rszng_KEY +() + +2836  + `IÁ”f_T¿ck_Edge_Rszng +(); + +2839 + `D¿wwš_FÏsh +(); + +2840 { + `IÁ”f_T¿ck_Edge_Rszng +(); ; } + +2843 + } +} + +2845  + $IÁ”f_T¿ck_Edge_Rszng_MOUSE +() + +2847  + `IÁ”f_T¿ck_Edge_Rszng +(); + +2850 iàÐ( +Ï¡_pos +. +x + =ð +cu¼’t_pos +.xè&& (Ï¡_pos. +y + == current_pos.y) ) + +2851 { + `IÁ”f_T¿ck_Edge_Rszng +(); ; } + +2852 + `D¿wwš_Undo_Edge_Resize +(); + +2853 { + `IÁ”f_S‘up_Edge_Resizšg +(); ; } + +2856 + } +} + +2858  + $IÁ”f_T¿ck_Edge_Rszng_bu‰Ú +() + +2860  + `IÁ”f_T¿ck_Edge_Rszng +(); + +2863 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +CANCEL_BUTTONS +) ) + +2864 { + `IÁ”f_Cªûl_Edge_Resizšg +(); ; } + +2865 iàÐ +cu¼’t_kšd + !ð +down + ) + +2866 { + `IÁ”f_A¼ªge +Ð +IÁ”f_Aù_Edge_Resizšg +, +IÁ”f_Cªûl_Edge_Resizšg + ); ; } + +2867 { + `IÁ”f_T¿ck_Edge_Rszng +(); ; } + +2870 + } +} + +2872  + $IÁ”f_T¿ck_Edge_Rszng +() + +2874 +KEY + = +IÁ”f_T¿ck_Edge_Rszng_KEY +; + +2875 +MOUSE + = +IÁ”f_T¿ck_Edge_Rszng_MOUSE +; + +2876 +bu‰Ú + = +IÁ”f_T¿ck_Edge_Rszng_bu‰Ú +; + +2877 + } +} + +2880  + $IÁ”f_S¹_Edge_Resizšg +() + +2882 ià(! + `IÁ”f_S¹_T¿ckšg +( + +2883 + `RegiÚ_G‘_CursÜ +( +cu¼’t_uwšp +, +cu¼’t_»giÚ +) ) ) + +2884 { + `IÁ”f_FÏsh_Cªûl +(); ; } + +2885 +»size_´oc + = +Mªage_Resize +; + +2886 +Þd_g¿v™y + = + `Tžwš_G‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY + ); + +2887 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +TOGGLE_GRAVITY_BUTTONS +) ) + +2888 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY +, ! +Þd_g¿v™y + ); + +2889 + `IÁ”f_T¿ck_Edge_Pos +(); + +2890 { + `IÁ”f_S‘up_Edge_Resizšg +(); ; } + +2891 + } +} + +2894  + $IÁ”f_S‘up_Cºr_Rszng +() + +2896  + `IÁ”f_T¿ck_Cºr_Rszng +(); + +2897 + `U£rwš_Check_CÜÃr_Resize +Ð +cu¼’t_uwšp +, & +cu¼’t_pos +, +cu¼’t_side + ); + +2898 +Ï¡_pos + = +cu¼’t_pos +; + +2899 + `D¿wwš_CÜÃr_Resize +( +cu¼’t_uwšp +, +cu¼’t_side +, +cu¼’t_pos +); + +2900 { + `IÁ”f_T¿ck_Cºr_Rszng +(); ; } + +2901 + } +} + +2903  + $IÁ”f_Cªûl_Cºr_Rszng +() + +2905 + `D¿wwš_Undo_CÜÃr_Resize +(); + +2906 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY +, +Þd_g¿v™y + ); + +2907 { + `IÁ”f_Cªûl +(); ; } + +2908 + } +} + +2910  + $IÁ”f_Aù_Cºr_Rszng +() + +2912 +boÞ + +»suÉ +; + +2914 + `D¿wwš_Undo_CÜÃr_Resize +(); + +2915 + `IÁ”f_W©ch +( + +2917 +»suÉ + = (* +»size_´oc +)( +cu¼’t_uwšp +, +Ï¡_pos +, +cu¼’t_side +, + +2918 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +FORCE_RESET_MIN_MAX_BUTTONS +), + +2919 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +UNDESIRE_BUTTONS +) ); + +2921 iàÐ +»suÉ + ) + +2923 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +PLACE_CSR_IN_BORDER_AFTER_RESIZE +) ) + +2924 + `IÁ”f_S‘_Pos +Ð + `RegiÚ_G‘_CÜÃr_Pos +( + +2925 +cu¼’t_uwšp +, +cu¼’t_side + ) ); + +2926 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY +, +Þd_g¿v™y + ); + +2927 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +2930 { + `IÁ”f_S‘up_Cºr_Rszng +(); ; } + +2931 + } +} + +2933  + $IÁ”f_T¿ck_Cºr_Rszng_KEY +() + +2935  + `IÁ”f_T¿ck_Cºr_Rszng +(); + +2938 + `D¿wwš_FÏsh +(); + +2939 { + `IÁ”f_T¿ck_Cºr_Rszng +(); ; } + +2942 + } +} + +2944  + $IÁ”f_T¿ck_Cºr_Rszng_MOUSE +() + +2946  + `IÁ”f_T¿ck_Cºr_Rszng +(); + +2949 iàÐ( +Ï¡_pos +. +x + =ð +cu¼’t_pos +.xè&& (Ï¡_pos. +y + == current_pos.y) ) + +2950 { + `IÁ”f_T¿ck_Cºr_Rszng +(); ; } + +2951 + `D¿wwš_Undo_CÜÃr_Resize +(); + +2952 { + `IÁ”f_S‘up_Cºr_Rszng +(); ; } + +2955 + } +} + +2957  + $IÁ”f_T¿ck_Cºr_Rszng_bu‰Ú +() + +2959  + `IÁ”f_T¿ck_Cºr_Rszng +(); + +2962 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +CANCEL_BUTTONS +) ) + +2963 { + `IÁ”f_Cªûl_Cºr_Rszng +(); ; } + +2964 iàÐ +cu¼’t_kšd + !ð +down + ) + +2965 { + `IÁ”f_A¼ªge +Ð +IÁ”f_Aù_Cºr_Rszng +, +IÁ”f_Cªûl_Cºr_Rszng + ); ; } + +2966 { + `IÁ”f_T¿ck_Cºr_Rszng +(); ; } + +2969 + } +} + +2971  + $IÁ”f_T¿ck_Cºr_Rszng +() + +2973 +KEY + = +IÁ”f_T¿ck_Cºr_Rszng_KEY +; + +2974 +MOUSE + = +IÁ”f_T¿ck_Cºr_Rszng_MOUSE +; + +2975 +bu‰Ú + = +IÁ”f_T¿ck_Cºr_Rszng_bu‰Ú +; + +2976 + } +} + +2979  + $IÁ”f_S¹_Cºr_Rszng +() + +2981 ià(! + `IÁ”f_S¹_T¿ckšg +( + +2982 + `RegiÚ_G‘_CursÜ +( +cu¼’t_uwšp +, +cu¼’t_»giÚ +) ) ) + +2983 { + `IÁ”f_FÏsh_Cªûl +(); ; } + +2984 +»size_´oc + = +Mªage_Resize +; + +2985 +Þd_g¿v™y + = + `Tžwš_G‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY + ); + +2986 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +TOGGLE_GRAVITY_BUTTONS +) ) + +2987 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY +, ! +Þd_g¿v™y + ); + +2988 + `IÁ”f_T¿ck_CÜÃr_Pos +(); + +2989 { + `IÁ”f_S‘up_Cºr_Rszng +(); ; } + +2990 + } +} + +2994  + $IÁ”f_S‘up_Basšg_Rsz +() + +2996 +cu¼’t_»giÚ + = + `RegiÚ_N—»¡_BÜd” +Ð +cu¼’t_uwšp +, +cu¼’t_pos + ); + +2997 + `CÚŒÞ_S‘_CursÜ +Ð + `RegiÚ_G‘_CursÜ +Ð +cu¼’t_uwšp +, +cu¼’t_»giÚ + ) ); + +2998 +cu¼’t_side + = + `RegiÚ_G‘_BÜd” +( +cu¼’t_»giÚ +); + +2999 + } +} + +3001  + $IÁ”f_S¹_Resizšg +() + +3003 + `IÁ”f_S‘up_Basšg_Rsz +(); + +3004 +Þd_g¿v™y + = + `Tžwš_G‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY + ); + +3005 iàÐ +»size_´oc + =ð +Mªage_Resize + ) + +3007 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +TOGGLE_GRAVITY_BUTTONS +) ) + +3008 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY +, ! +Þd_g¿v™y + ); + +3012 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +TOGGLE_GRAVITY_BUTTONS +) ) + +3014 ià(! +Þd_g¿v™y +) + +3015 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY +, +TRUE + ); + +3019 ià( +Þd_g¿v™y +) + +3020 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY +, +FALSE + ); + +3023 + `IÁ”f_CÚtšue_T¿ckšg +(); + +3024  + `RegiÚ_G‘_Ty³ +( +cu¼’t_»giÚ +) ) + +3026  +edge +: + +3027 + `IÁ”f_T¿ck_Edge_Pos +(); + +3028 { + `IÁ”f_S‘up_Edge_Resizšg +(); ; } + +3029  +cÜÃr +: + +3030 + `IÁ”f_T¿ck_CÜÃr_Pos +(); + +3031 { + `IÁ”f_S‘up_Cºr_Rszng +(); ; } + +3033 + } +} + +3035  + $IÁ”f_T¿ck_Basšg_Rsz_KEY +() + +3037  + `IÁ”f_T¿ck_Basšg_Rsz +(); + +3040 + `D¿wwš_FÏsh +(); + +3041 { + `IÁ”f_T¿ck_Basšg_Rsz +(); ; } + +3044 + } +} + +3046  + $IÁ”f_T¿ck_Basšg_Rsz_MOUSE +() + +3048  + `IÁ”f_T¿ck_Basšg_Rsz +(); + +3051 + `IÁ”f_S‘up_Basšg_Rsz +(); + +3052 { + `IÁ”f_T¿ck_Basšg_Rsz +(); ; } + +3055 + } +} + +3057  + $IÁ”f_T¿ck_Basšg_Rsz_bu‰Ú +() + +3059  + `IÁ”f_T¿ck_Basšg_Rsz +(); + +3062 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +CANCEL_BUTTONS +) ) + +3063 { + `IÁ”f_Cªûl +(); ; } + +3065 { + `IÁ”f_S¹_Resizšg +(); ; } + +3068 + } +} + +3070  + $IÁ”f_T¿ck_Basšg_Rsz +() + +3072 +KEY + = +IÁ”f_T¿ck_Basšg_Rsz_KEY +; + +3073 +MOUSE + = +IÁ”f_T¿ck_Basšg_Rsz_MOUSE +; + +3074 +bu‰Ú + = +IÁ”f_T¿ck_Basšg_Rsz_bu‰Ú +; + +3075 + } +} + +3078  + $IÁ”f_S¹_Basšg_S‘_Size +() + +3080 ià(! + `IÁ”f_S¹_T¿ckšg +( + +3081 + `RegiÚ_G‘_CursÜ +Ð +cu¼’t_uwšp +, +cu¼’t_»giÚ + ) ) ) + +3082 { + `IÁ”f_FÏsh_Cªûl +(); ; } + +3083 + `IÁ”f_S‘_Pos +Ð +ÿnûl_pos + ); + +3084 + `IÁ”f_S‘up_Basšg_Rsz +(); + +3085 { + `IÁ”f_T¿ck_Basšg_Rsz +(); ; } + +3086 + } +} + +3088  + $IÁ”f_S¹_Basšg_Rsz +() + +3090 +»size_´oc + = +Mªage_Resize +; + +3091 { + `IÁ”f_S¹_Basšg_S‘_Size +(); ; } + +3092 + } +} + +3096 +boÞ + + ggood_move +; + +3097 +TWPošt + + gmove_off£t +; + +3098 +TWPošt + + gmove_pos +; + +3100  + $IÁ”f_S‘up_Movšg +() + +3102  + `IÁ”f_T¿ck_Movšg +(); + +3103 +Size + +move_siz +; + +3104 +Ï¡_pos + = +cu¼’t_pos +; + +3105 +move_pos +. +x + = +cu¼’t_pos +.x + +move_off£t +.x; + +3106 +move_pos +. +y + = +cu¼’t_pos +.y + +move_off£t +.y; + +3107 +good_move + = + `U£rwš_Check_Move +Ð +cu¼’t_uwšp +, & +move_pos +, & +move_siz + ); + +3108 iàÐ +good_move + ) + +3109 + `D¿wwš_Good_Move_Box +Ð +cu¼’t_uwšp +, +move_pos +, +move_siz + ); + +3111 + `D¿wwš_Bad_Move_Box +Ð +cu¼’t_uwšp +, +move_pos +, +move_siz + ); + +3112 { + `IÁ”f_T¿ck_Movšg +(); ; } + +3113 + } +} + +3115  + $IÁ”f_Cªûl_Movšg +() + +3117 + `D¿wwš_Undo_Move_Box +(); + +3118 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY +, +Þd_g¿v™y + ); + +3119 iàÐ + `U£rwš_Is_O³n +( +cu¼’t_uwšp +) ) + +3120 + `D¿wwš_Unshow_Movšg +( +cu¼’t_uwšp +); + +3121 ià(! + `U£rwš_Ev”_O³Ãd +( +cu¼’t_uwšp +) ) + +3122 + `IÁ”f_W©ch +( + +3123 + `Mªage_Cl›Á_O³n_IcÚ +( +cu¼’t_uwšp +) ) + +3124 { + `IÁ”f_Cªûl +(); ; } + +3125 + } +} + +3127  + $IÁ”f_Aù_Movšg +() + +3129 +boÞ + +»suÉ +; + +3131 + `D¿wwš_Undo_Move_Box +(); + +3132 iàÐ + `U£rwš_Is_O³n +( +cu¼’t_uwšp +) ) + +3133 + `D¿wwš_Unshow_Movšg +( +cu¼’t_uwšp +); + +3134 + `IÁ”f_W©ch +( + +3136 +»suÉ + = + `Mªage_Move +Ð +cu¼’t_uwšp +, +move_pos + ); + +3138 iàÐ +»suÉ + ) + +3140 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +PLACE_CSR_IN_GADGET_AFT_MOVE +) ) + +3141 + `IÁ”f_S‘_Pos +Ð + `RegiÚ_Gadg‘_C’‹r +Ð +cu¼’t_uwšp + ) ); + +3142 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY +, +Þd_g¿v™y + ); + +3143 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +3145 iàÐ + `U£rwš_Is_O³n +( +cu¼’t_uwšp +) ) + +3146 + `D¿wwš_Show_Movšg +( +cu¼’t_uwšp +); + +3147 { + `IÁ”f_S‘up_Movšg +(); ; } + +3148 + } +} + +3150  + $IÁ”f_T¿ck_Movšg_KEY +() + +3152  + `IÁ”f_T¿ck_Movšg +(); + +3155 + `D¿wwš_FÏsh +(); + +3156 { + `IÁ”f_T¿ck_Movšg +(); ; } + +3159 + } +} + +3161  + $IÁ”f_T¿ck_Movšg_MOUSE +() + +3163  + `IÁ”f_T¿ck_Movšg +(); + +3166 iàÐ( +Ï¡_pos +. +x + =ð +cu¼’t_pos +.xè&& (Ï¡_pos. +y + == current_pos.y) ) + +3167 { + `IÁ”f_T¿ck_Movšg +(); ; } + +3168 + `D¿wwš_Undo_Move_Box +(); + +3169 { + `IÁ”f_S‘up_Movšg +(); ; } + +3172 + } +} + +3174  + $IÁ”f_T¿ck_Movšg_bu‰Ú +() + +3176  + `IÁ”f_T¿ck_Movšg +(); + +3179 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +CANCEL_BUTTONS +) ) + +3180 { + `IÁ”f_Cªûl_Movšg +(); ; } + +3181 iàÐ +good_move + && ( +cu¼’t_kšd + !ð +down +) ) + +3182 { + `IÁ”f_A¼ªge +Ð +IÁ”f_Aù_Movšg +, +IÁ”f_Cªûl_Movšg + ); ; } + +3183 { + `IÁ”f_T¿ck_Movšg +(); ; } + +3186 + } +} + +3188  + $IÁ”f_T¿ck_Movšg +() + +3190 +KEY + = +IÁ”f_T¿ck_Movšg_KEY +; + +3191 +MOUSE + = +IÁ”f_T¿ck_Movšg_MOUSE +; + +3192 +bu‰Ú + = +IÁ”f_T¿ck_Movšg_bu‰Ú +; + +3193 + } +} + +3196  + $IÁ”f_P»·»_Movšg +() + +3198 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +CENTER_CURSOR_ON_MOVE +) ) + +3199 +move_off£t + = + `IÁ”f_T¿ck_C’‹r_Pos +(); + +3201 +move_off£t + = + `IÁ”f_C’‹r_Off£t +(); + +3202 iàÐ + `U£rwš_Is_O³n +( +cu¼’t_uwšp +) ) + +3203 + `D¿wwš_Show_Movšg +( +cu¼’t_uwšp +); + +3204 { + `IÁ”f_S‘up_Movšg +(); ; } + +3205 + } +} + +3207  + $IÁ”f_S¹_Movšg +() + +3209 ià(! + `IÁ”f_S¹_T¿ckšg +Ð +move_tžecursÜ + )) + +3210 { + `IÁ”f_FÏsh_Cªûl +(); ; } + +3211 +Þd_g¿v™y + = + `Tžwš_G‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY + ); + +3212 { + `IÁ”f_P»·»_Movšg +(); ; } + +3213 + } +} + +3215  + $IÁ”f_S¹_G¿v™y_Movšg +() + +3217 ià(! + `IÁ”f_S¹_T¿ckšg +Ð +move_tžecursÜ + )) + +3218 { + `IÁ”f_FÏsh_Cªûl +(); ; } + +3219 +Þd_g¿v™y + = + `Tžwš_G‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY + ); + +3220 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +TOGGLE_GRAVITY_BUTTONS +) ) + +3221 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY +, ! +Þd_g¿v™y + ); + +3222 { + `IÁ”f_P»·»_Movšg +(); ; } + +3223 + } +} + +3227  + $IÁ”f_S‘up_V”t_Movšg +() + +3229  + `IÁ”f_T¿ck_V”t_Movšg +(); + +3230 +Size + +move_siz +; + +3231 +move_pos +. +x + = + `U£rwš_G‘_C’‹r +( +cu¼’t_uwšp +).x; + +3232 +move_pos +. +y + = +cu¼’t_pos +.y + +move_off£t +.y; + +3233 +good_move + = + `U£rwš_Check_Move +Ð +cu¼’t_uwšp +, & +move_pos +, & +move_siz + ); + +3234 iàÐ +good_move + ) + +3235 + `D¿wwš_Good_Move_Box +Ð +cu¼’t_uwšp +, +move_pos +, +move_siz + ); + +3237 + `D¿wwš_Bad_Move_Box +Ð +cu¼’t_uwšp +, +move_pos +, +move_siz + ); + +3238 { + `IÁ”f_T¿ck_V”t_Movšg +(); ; } + +3239 + } +} + +3241  + $IÁ”f_Cªûl_V”t_Movšg +() + +3243 + `D¿wwš_Undo_Move_Box +(); + +3244 + `D¿wwš_Unshow_Movšg +( +cu¼’t_uwšp +); + +3245 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY +, +Þd_g¿v™y + ); + +3246 { + `IÁ”f_Cªûl +(); ; } + +3247 + } +} + +3249  + $IÁ”f_Aù_V”t_Movšg +() + +3251 +boÞ + +»suÉ +; + +3253 + `D¿wwš_Undo_Move_Box +(); + +3254 + `D¿wwš_Unshow_Movšg +( +cu¼’t_uwšp +); + +3255 + `IÁ”f_W©ch +( + +3257 +»suÉ + = + `Mªage_Move +Ð +cu¼’t_uwšp +, +move_pos + ); + +3259 iàÐ +»suÉ + ) + +3261 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +PLACE_CSR_IN_GADGET_AFT_MOVE +) ) + +3262 + `IÁ”f_S‘_Pos +Ð + `RegiÚ_Gadg‘_C’‹r +Ð +cu¼’t_uwšp + ) ); + +3263 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY +, +Þd_g¿v™y + ); + +3264 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +3266 + `D¿wwš_Show_Movšg +( +cu¼’t_uwšp +); + +3267 { + `IÁ”f_S‘up_V”t_Movšg +(); ; } + +3268 + } +} + +3270  + $IÁ”f_T¿ck_V”t_Movšg_KEY +() + +3272  + `IÁ”f_T¿ck_V”t_Movšg +(); + +3275 + `D¿wwš_FÏsh +(); + +3276 { + `IÁ”f_T¿ck_V”t_Movšg +(); ; } + +3279 + } +} + +3281  + $IÁ”f_T¿ck_V”t_Movšg_MOUSE +() + +3283  + `IÁ”f_T¿ck_V”t_Movšg +(); + +3286 + `D¿wwš_Undo_Move_Box +(); + +3287 { + `IÁ”f_S‘up_V”t_Movšg +(); ; } + +3290 + } +} + +3292  + $IÁ”f_T¿ck_V”t_Movšg_bu‰Ú +() + +3294  + `IÁ”f_T¿ck_V”t_Movšg +(); + +3297 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +CANCEL_BUTTONS +) ) + +3298 { + `IÁ”f_Cªûl_V”t_Movšg +(); ; } + +3299 iàÐ +good_move + && ( +cu¼’t_kšd + !ð +down +) ) + +3300 { + `IÁ”f_A¼ªge +Ð +IÁ”f_Aù_V”t_Movšg +, +IÁ”f_Cªûl_V”t_Movšg + ); ; } + +3301 { + `IÁ”f_T¿ck_V”t_Movšg +(); ; } + +3304 + } +} + +3306  + $IÁ”f_T¿ck_V”t_Movšg +() + +3308 +KEY + = +IÁ”f_T¿ck_V”t_Movšg_KEY +; + +3309 +MOUSE + = +IÁ”f_T¿ck_V”t_Movšg_MOUSE +; + +3310 +bu‰Ú + = +IÁ”f_T¿ck_V”t_Movšg_bu‰Ú +; + +3311 + } +} + +3314  + $IÁ”f_S¹_V”t_Movšg +() + +3316 ià(! + `IÁ”f_S¹_T¿ckšg +Ð +move_tžecursÜ + )) + +3317 { + `IÁ”f_FÏsh_Cªûl +(); ; } + +3318 +Þd_g¿v™y + = + `Tžwš_G‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY + ); + +3319 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +TOGGLE_GRAVITY_BUTTONS +) ) + +3320 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY +, ! +Þd_g¿v™y + ); + +3321 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +CENTER_CURSOR_ON_MOVE +) ) + +3322 +move_off£t + = + `IÁ”f_T¿ck_C’‹r_Pos +(); + +3324 +move_off£t + = + `IÁ”f_C’‹r_Off£t +(); + +3325 + `D¿wwš_Show_Movšg +( +cu¼’t_uwšp +); + +3326 + `CÚŒÞ_S‘_CursÜ +Ð +move_tžecursÜ + ); + +3327 { + `IÁ”f_S‘up_V”t_Movšg +(); ; } + +3328 + } +} + +3332  + $IÁ”f_S‘up_HÜiz_Movšg +() + +3334  + `IÁ”f_T¿ck_HÜiz_Movšg +(); + +3335 +Size + +move_siz +; + +3336 +move_pos +. +x + = +cu¼’t_pos +.x + +move_off£t +.x; + +3337 +move_pos +. +y + = + `U£rwš_G‘_C’‹r +( +cu¼’t_uwšp +).y; + +3338 +good_move + = + `U£rwš_Check_Move +Ð +cu¼’t_uwšp +, & +move_pos +, & +move_siz + ); + +3339 iàÐ +good_move + ) + +3340 + `D¿wwš_Good_Move_Box +Ð +cu¼’t_uwšp +, +move_pos +, +move_siz + ); + +3342 + `D¿wwš_Bad_Move_Box +Ð +cu¼’t_uwšp +, +move_pos +, +move_siz + ); + +3343 { + `IÁ”f_T¿ck_HÜiz_Movšg +(); ; } + +3344 + } +} + +3346  + $IÁ”f_Cªûl_HÜiz_Movšg +() + +3348 + `D¿wwš_Undo_Move_Box +(); + +3349 + `D¿wwš_Unshow_Movšg +( +cu¼’t_uwšp +); + +3350 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY +, +Þd_g¿v™y + ); + +3351 { + `IÁ”f_Cªûl +(); ; } + +3352 + } +} + +3354  + $IÁ”f_Aù_HÜiz_Movšg +() + +3356 +boÞ + +»suÉ +; + +3358 + `D¿wwš_Undo_Move_Box +(); + +3359 + `D¿wwš_Unshow_Movšg +( +cu¼’t_uwšp +); + +3360 + `IÁ”f_W©ch +( + +3362 +»suÉ + = + `Mªage_Move +Ð +cu¼’t_uwšp +, +move_pos + ); + +3364 iàÐ +»suÉ + ) + +3366 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +PLACE_CSR_IN_GADGET_AFT_MOVE +) ) + +3367 + `IÁ”f_S‘_Pos +Ð + `RegiÚ_Gadg‘_C’‹r +Ð +cu¼’t_uwšp + ) ); + +3368 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY +, +Þd_g¿v™y + ); + +3369 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +3371 + `D¿wwš_Show_Movšg +( +cu¼’t_uwšp +); + +3372 { + `IÁ”f_S‘up_HÜiz_Movšg +(); ; } + +3373 + } +} + +3375  + $IÁ”f_T¿ck_HÜiz_Movšg_KEY +() + +3377  + `IÁ”f_T¿ck_HÜiz_Movšg +(); + +3380 + `D¿wwš_FÏsh +(); + +3381 { + `IÁ”f_T¿ck_HÜiz_Movšg +(); ; } + +3384 + } +} + +3386  + $IÁ”f_T¿ck_HÜiz_Movšg_MOUSE +() + +3388  + `IÁ”f_T¿ck_HÜiz_Movšg +(); + +3391 + `D¿wwš_Undo_Move_Box +(); + +3392 { + `IÁ”f_S‘up_HÜiz_Movšg +(); ; } + +3395 + } +} + +3397  + $IÁ”f_T¿ck_HÜiz_Movšg_bu‰Ú +() + +3399  + `IÁ”f_T¿ck_HÜiz_Movšg +(); + +3402 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +CANCEL_BUTTONS +) ) + +3403 { + `IÁ”f_Cªûl_HÜiz_Movšg +(); ; } + +3404 iàÐ +good_move + && ( +cu¼’t_kšd + !ð +down +) ) + +3405 { + `IÁ”f_A¼ªge +Ð +IÁ”f_Aù_HÜiz_Movšg +, +IÁ”f_Cªûl_HÜiz_Movšg + ); ; } + +3406 { + `IÁ”f_T¿ck_HÜiz_Movšg +(); ; } + +3409 + } +} + +3411  + $IÁ”f_T¿ck_HÜiz_Movšg +() + +3413 +KEY + = +IÁ”f_T¿ck_HÜiz_Movšg_KEY +; + +3414 +MOUSE + = +IÁ”f_T¿ck_HÜiz_Movšg_MOUSE +; + +3415 +bu‰Ú + = +IÁ”f_T¿ck_HÜiz_Movšg_bu‰Ú +; + +3416 + } +} + +3419  + $IÁ”f_S¹_HÜiz_Movšg +() + +3421 ià(! + `IÁ”f_S¹_T¿ckšg +Ð +move_tžecursÜ + )) + +3422 { + `IÁ”f_FÏsh_Cªûl +(); ; } + +3423 +Þd_g¿v™y + = + `Tžwš_G‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY + ); + +3424 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +TOGGLE_GRAVITY_BUTTONS +) ) + +3425 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY +, ! +Þd_g¿v™y + ); + +3426 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +CENTER_CURSOR_ON_MOVE +) ) + +3427 +move_off£t + = + `IÁ”f_T¿ck_C’‹r_Pos +(); + +3429 +move_off£t + = + `IÁ”f_C’‹r_Off£t +(); + +3430 + `D¿wwš_Show_Movšg +( +cu¼’t_uwšp +); + +3431 + `CÚŒÞ_S‘_CursÜ +Ð +move_tžecursÜ + ); + +3432 { + `IÁ”f_S‘up_HÜiz_Movšg +(); ; } + +3433 + } +} + +3437  + $IÁ”f_S‘up_IcÚ_Movšg +() + +3439  + `IÁ”f_T¿ck_IcÚ_Movšg +(); + +3440 +Size + +move_siz +; + +3441 +move_pos +. +x + = +cu¼’t_pos +.x + +move_off£t +.x; + +3442 +move_pos +. +y + = +cu¼’t_pos +.y + +move_off£t +.y; + +3443 +good_move + = + `U£rwš_Check_IcÚ_Move +Ð +cu¼’t_uwšp +, & +move_pos +, & +move_siz + ); + +3444 iàÐ +good_move + ) + +3445 + `D¿wIcÚ_Good_Move_Box +Ð +cu¼’t_uwšp +, +move_pos +, +move_siz + ); + +3447 + `D¿wIcÚ_Bad_Move_Box +Ð +cu¼’t_uwšp +, +move_pos +, +move_siz + ); + +3448 { + `IÁ”f_T¿ck_IcÚ_Movšg +(); ; } + +3449 + } +} + +3451  + $IÁ”f_Cªûl_IcÚ_Movšg +() + +3453 + `D¿wIcÚ_Undo_Move_Box +(); + +3454 + `D¿wIcÚ_Unshow_Movšg +( +cu¼’t_uwšp +); + +3455 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY +, +Þd_g¿v™y + ); + +3456 { + `IÁ”f_Cªûl +(); ; } + +3457 + } +} + +3459  + $IÁ”f_Aù_IcÚ_Movšg +() + +3461 +boÞ + +»suÉ +; + +3463 + `D¿wIcÚ_Undo_Move_Box +(); + +3464 + `D¿wIcÚ_Unshow_Movšg +( +cu¼’t_uwšp +); + +3465 + `IÁ”f_W©ch +( + +3467 +»suÉ + = + `Mªage_IcÚ_Move +Ð +cu¼’t_uwšp +, +move_pos + ); + +3469 iàÐ +»suÉ + ) + +3471 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY +, +Þd_g¿v™y + ); + +3472 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +3474 + `D¿wIcÚ_Show_Movšg +( +cu¼’t_uwšp +); + +3475 { + `IÁ”f_S‘up_IcÚ_Movšg +(); ; } + +3476 + } +} + +3478  + $IÁ”f_T¿ck_IcÚ_Movšg_KEY +() + +3480  + `IÁ”f_T¿ck_IcÚ_Movšg +(); + +3483 + `D¿wwš_FÏsh +(); + +3484 { + `IÁ”f_T¿ck_IcÚ_Movšg +(); ; } + +3487 + } +} + +3489  + $IÁ”f_T¿ck_IcÚ_Movšg_MOUSE +() + +3491  + `IÁ”f_T¿ck_IcÚ_Movšg +(); + +3494 + `D¿wIcÚ_Undo_Move_Box +(); + +3495 { + `IÁ”f_S‘up_IcÚ_Movšg +(); ; } + +3498 + } +} + +3500  + $IÁ”f_T¿ck_IcÚ_Movšg_bu‰Ú +() + +3502  + `IÁ”f_T¿ck_IcÚ_Movšg +(); + +3505 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +CANCEL_BUTTONS +) ) + +3506 { + `IÁ”f_Cªûl_IcÚ_Movšg +(); ; } + +3507 iàÐ +good_move + && ( +cu¼’t_kšd + !ð +down +) ) + +3508 { + `IÁ”f_A¼ªge +Ð +IÁ”f_Aù_IcÚ_Movšg +, +IÁ”f_Cªûl_IcÚ_Movšg + ); ; } + +3509 { + `IÁ”f_T¿ck_IcÚ_Movšg +(); ; } + +3512 + } +} + +3514  + $IÁ”f_T¿ck_IcÚ_Movšg +() + +3516 +KEY + = +IÁ”f_T¿ck_IcÚ_Movšg_KEY +; + +3517 +MOUSE + = +IÁ”f_T¿ck_IcÚ_Movšg_MOUSE +; + +3518 +bu‰Ú + = +IÁ”f_T¿ck_IcÚ_Movšg_bu‰Ú +; + +3519 + } +} + +3522  + $IÁ”f_S¹_IcÚ_Movšg +() + +3524 ià(! + `IÁ”f_S¹_T¿ckšg +Ð +move_tžecursÜ + )) + +3525 { + `IÁ”f_FÏsh_Cªûl +(); ; } + +3526 +Þd_g¿v™y + = + `Tžwš_G‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY + ); + +3527 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +CENTER_CURSOR_ON_MOVE +) ) + +3528 +move_off£t + = + `IÁ”f_T¿ck_IcÚ_C’‹r_Pos +(); + +3530 +move_off£t + = + `IÁ”f_IcÚ_C’‹r_Off£t +(); + +3531 + `D¿wIcÚ_Show_Movšg +( +cu¼’t_uwšp +); + +3532 + `CÚŒÞ_S‘_CursÜ +Ð +move_tžecursÜ + ); + +3533 { + `IÁ”f_S‘up_IcÚ_Movšg +(); ; } + +3534 + } +} + +3536  + $IÁ”f_S¹_G¿v™y_IcÚ_Movšg +() + +3538 ià(! + `IÁ”f_S¹_T¿ckšg +Ð +move_tžecursÜ + )) + +3539 { + `IÁ”f_FÏsh_Cªûl +(); ; } + +3540 +Þd_g¿v™y + = + `Tžwš_G‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY + ); + +3541 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +TOGGLE_GRAVITY_BUTTONS +) ) + +3542 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY +, ! +Þd_g¿v™y + ); + +3543 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +CENTER_CURSOR_ON_MOVE +) ) + +3544 +move_off£t + = + `IÁ”f_T¿ck_IcÚ_C’‹r_Pos +(); + +3546 +move_off£t + = + `IÁ”f_IcÚ_C’‹r_Off£t +(); + +3547 + `D¿wIcÚ_Show_Movšg +( +cu¼’t_uwšp +); + +3548 + `CÚŒÞ_S‘_CursÜ +Ð +move_tžecursÜ + ); + +3549 { + `IÁ”f_S‘up_IcÚ_Movšg +(); ; } + +3550 + } +} + +3554 +U£rwš + * + gexchªge_uwšp +; + +3555 +boÞ + + ggood_exchªge +; + +3557  + $IÁ”f_Show_Exchªgšg +() + +3559 iàÐ + `U£rwš_Is_IcÚic +Ð +cu¼’t_uwšp + ) ) + +3560 + `D¿wIcÚ_Show_Movšg +Ð +cu¼’t_uwšp + ); + +3562 + `D¿wwš_Show_Movšg +Ð +cu¼’t_uwšp + ); + +3563 + } +} + +3565  + $IÁ”f_Unshow_Exchªgšg +() + +3567 iàÐ + `U£rwš_Is_IcÚic +Ð +cu¼’t_uwšp + ) ) + +3568 + `D¿wIcÚ_Unshow_Movšg +Ð +cu¼’t_uwšp + ); + +3570 + `D¿wwš_Unshow_Movšg +Ð +cu¼’t_uwšp + ); + +3571 + } +} + +3573  + $IÁ”f_S‘up_Exchªgšg +() + +3575  + `IÁ”f_T¿ck_Exchªgšg +(); + +3576 +exchªge_uwšp + = + `Mªage_Loÿ‹ +Ð +cu¼’t_pos + ); + +3577 +good_exchªge + = + +3578 ÐÐ +exchªge_uwšp + !ð +cu¼’t_uwšp + ) + +3579 && ( +exchªge_uwšp + !ð +UWIN_NULL + ) ); + +3580 iàÐ +good_exchªge + ) + +3581 + `CÚŒÞ_S‘_CursÜ +( +good_exchªge_tžecursÜ +); + +3583 + `CÚŒÞ_S‘_CursÜ +( +bad_exchªge_tžecursÜ +); + +3584 { + `IÁ”f_T¿ck_Exchªgšg +(); ; } + +3585 + } +} + +3587  + $IÁ”f_Cªûl_Exchªgšg +() + +3589 + `IÁ”f_Unshow_Exchªgšg +(); + +3590 { + `IÁ”f_Cªûl +(); ; } + +3591 + } +} + +3593  + $IÁ”f_Aù_Exchªgšg +() + +3595 +boÞ + +»suÉ +; + +3597 + `IÁ”f_Unshow_Exchªgšg +(); + +3598 + `IÁ”f_W©ch +( + +3600 +»suÉ + = + `Mªage_Exchªge +Ð +cu¼’t_uwšp +, +exchªge_uwšp + ); + +3602 iàÐ +»suÉ + ) + +3604 iàÐ + `U£rGlob®s_G‘_O±iÚ +( + +3605 +PLACE_CSR_IN_GADGET_AFT_EXCHANGE +) && + +3606 (! + `U£rwš_Is_IcÚic +Ð +cu¼’t_uwšp + ) ) ) + +3607 + `IÁ”f_S‘_Pos +Ð + `RegiÚ_Gadg‘_C’‹r +Ð +cu¼’t_uwšp + ) ); + +3608 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +3610 + `IÁ”f_Show_Exchªgšg +(); + +3611 { + `IÁ”f_S‘up_Exchªgšg +(); ; } + +3612 + } +} + +3614  + $IÁ”f_T¿ck_Exchªgšg_KEY +() + +3616  + `IÁ”f_T¿ck_Exchªgšg +(); + +3619 + `D¿wwš_FÏsh +(); + +3620 { + `IÁ”f_T¿ck_Exchªgšg +(); ; } + +3623 + } +} + +3625  + $IÁ”f_T¿ck_Exchªgšg_MOUSE +() + +3627  + `IÁ”f_T¿ck_Exchªgšg +(); + +3630 { + `IÁ”f_S‘up_Exchªgšg +(); ; } + +3633 + } +} + +3635  + $IÁ”f_T¿ck_Exchªgšg_bu‰Ú +() + +3637  + `IÁ”f_T¿ck_Exchªgšg +(); + +3640 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +CANCEL_BUTTONS +) ) + +3641 { + `IÁ”f_Cªûl_Exchªgšg +(); ; } + +3642 iàÐ +good_exchªge + && ( +cu¼’t_kšd + !ð +down + ) ) + +3643 { + `IÁ”f_A¼ªge +Ð +IÁ”f_Aù_Exchªgšg +, +IÁ”f_Cªûl_Exchªgšg + ); ; } + +3645 + `D¿wwš_FÏsh +(); + +3646 { + `IÁ”f_S‘up_Exchªgšg +(); ; } + +3649 + } +} + +3651  + $IÁ”f_T¿ck_Exchªgšg +() + +3653 +KEY + = +IÁ”f_T¿ck_Exchªgšg_KEY +; + +3654 +MOUSE + = +IÁ”f_T¿ck_Exchªgšg_MOUSE +; + +3655 +bu‰Ú + = +IÁ”f_T¿ck_Exchªgšg_bu‰Ú +; + +3656 + } +} + +3659  + $IÁ”f_S¹_Exchªgšg +() + +3661 ià(! + `IÁ”f_S¹_T¿ckšg +Ð +bad_exchªge_tžecursÜ + ) ) + +3662 { + `IÁ”f_FÏsh_Cªûl +(); ; } + +3663 + `IÁ”f_Show_Exchªgšg +(); + +3664 { + `IÁ”f_S‘up_Exchªgšg +(); ; } + +3665 + } +} + +3669  + $IÁ”f_S¹_R–oÿtšg +() + +3671 ià(! + `IÁ”f_S¹_T¿ckšg +( +Œack_Ý’_tžecursÜ +)) + +3672 { + `IÁ”f_FÏsh_Cªûl +(); ; } + +3673 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +CENTER_CURSOR_ON_RELOCATE +) ) + +3674 + `IÁ”f_T¿ck_C’‹r_Pos +(); + +3675 { + `IÁ”f_S¹_O³nšg +(); ; } + +3676 + } +} + +3679  + $IÁ”f_Clo£ +() + +3681 + `IÁ”f_W©ch +( + +3682 + `Mªage_Clo£ +( +cu¼’t_uwšp +) ) + +3683 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +PLACE_CSR_IN_ICON_AFTER_CLOSE +) && + +3684 + `U£rwš_Is_IcÚic +( +cu¼’t_uwšp +) ) + +3685 + `IÁ”f_S‘_Pos +Ð + `U£rwš_G‘_IcÚ_C’‹r +( +cu¼’t_uwšp +) ); + +3686 +chªge_¡©e + = +TRUE +; + +3687 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +3688 + } +} + +3691  + $IÁ”f_Invoke +() + +3693 + `ToÞ_Invoke +(0); + +3694 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +3695 + } +} + +3697  + $IÁ”f_Red¿w_AÎ +() + +3699 + `Mªage_Red¿w_AÎ +(); + +3700 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +3701 + } +} + +3703  + $IÁ”f_Red¿w +() + +3705 + `Mªage_Red¿w +Ð +cu¼’t_uwšp + ); + +3706 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +3707 + } +} + +3709  + $IÁ”f_EƬge +() + +3711 + `IÁ”f_W©ch +( + +3712 + `Mªage_EƬge +( +cu¼’t_uwšp +) ) + +3713 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +3714 + } +} + +3716  + $IÁ”f_Desœe +() + +3718 + `IÁ”f_W©ch +( + +3719 + `Mªage_Desœe +( +cu¼’t_uwšp +) ) + +3720 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +3721 + } +} + +3723  + $IÁ”f_ToggË_Zoom +() + +3725 + `IÁ”f_W©ch +( + +3726 + `Mªage_ToggË_Zoom +( +cu¼’t_uwšp +) ) + +3727 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +3728 + } +} + +3730  + $IÁ”f_ToggË_Zoom_Lock +() + +3732 + `IÁ”f_W©ch +( + +3733 + `Mªage_ToggË_Zoom_Lock +( +cu¼’t_uwšp +) ) + +3734 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +3735 + } +} + +3737  + $IÁ”f_O³n +() + +3739 +boÞ + +»suÉ +; + +3741 + `IÁ”f_W©ch +( + +3743 +»suÉ + = + `Mªage_U£r_O³n_Autom©iÿÎy +( + +3744 +cu¼’t_uwšp +, +FALSE +, FALSE ); + +3746 iàÐ +»suÉ + && + +3747 + `U£rGlob®s_G‘_O±iÚ +( + +3748 +PLACE_CSR_GDGT_AFT_US_AUTO_OPEN +) ) + +3749 + `IÁ”f_S‘_Pos +Ð + `RegiÚ_Gadg‘_C’‹r +( +cu¼’t_uwšp +) ); + +3750 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +3751 + } +} + +3755  + $IÁ”f_Inside_Background_ENTER +() + +3757  + `IÁ”f_Inside_Background +(); + +3760 { + `IÁ”f_EÁ”_RegiÚ +(); ; } + +3763 + } +} + +3765  + $IÁ”f_Inside_Background_KEY +() + +3767  + `IÁ”f_Inside_Background +(); + +3770 + `IÁ”f_HªdË_Key +(); + +3771 { + `IÁ”f_Inside_Background +(); ; } + +3774 + } +} + +3776  + $IÁ”f_Inside_Background_bu‰Ú +() + +3778  + `IÁ”f_Inside_Background +(); + +3781 iàÐ + `Bu‰Ús_M©ch +Ð +cu¼’t_but +, +TOOL_BUTTONS + ) ) + +3783 ià( +cu¼’t_kšd + !ð +up +) + +3784 { + `IÁ”f_Aù +Ð +IÁ”f_Invoke + ); ; } + +3786 iàÐ + `Bu‰Ús_M©ch +Ð +cu¼’t_but +, +REDRAW_BUTTONS + ) ) + +3788 ià( +cu¼’t_kšd + !ð +up +) + +3789 { + `IÁ”f_Aù +Ð +IÁ”f_Red¿w_AÎ + ); ; } + +3791 iàÐ + `Bu‰Ús_M©ch +Ð +cu¼’t_but +, +HEADER_MANAGER_MENU_BUTTONS + ) ) + +3793 ià( +cu¼’t_kšd + !ð +up +) + +3795 { + `IÁ”f_M’u_EÁ” +Ð +mªag”_background_m’u +, + `Bu‰Ús_Numb” +( +cu¼’t_but + ), +cu¼’t_kšd + ); ; } + +3800 + `IÁ”f_HªdË_Bu‰Ú +(); + +3801 { + `IÁ”f_Inside_Background +(); ; } + +3805 + } +} + +3807  + $IÁ”f_Inside_Background +() + +3809 +ENTER + = +IÁ”f_Inside_Background_ENTER +; + +3810 +KEY + = +IÁ”f_Inside_Background_KEY +; + +3811 +bu‰Ú + = +IÁ”f_Inside_Background_bu‰Ú +; + +3812 + } +} + +3816  + $IÁ”f_L—ve +() + +3818 + `IÁ”f_HªdË_L—ve +(); + +3819 +cu¼’t_uwšp + = +UWIN_NULL +; + +3820 +cu¼’t_»giÚ + = + `RegiÚ_Loÿ‹ +Ð +cu¼’t_uwšp +, +cu¼’t_pos + ); + +3821 { + `IÁ”f_EÁ”_RegiÚ +(); ; } + +3822 + } +} + +3825  + $IÁ”f_Inside_RŽ_LEAVE +() + +3827  + `IÁ”f_Inside_RŽ +(); + +3830 { + `IÁ”f_L—ve +(); ; } + +3833 + } +} + +3835  + $IÁ”f_Inside_RŽ_ENTER +() + +3837  + `IÁ”f_Inside_RŽ +(); + +3840 { + `IÁ”f_EÁ”_RegiÚ +(); ; } + +3843 + } +} + +3845  + $IÁ”f_Inside_RŽ_KEY +() + +3847  + `IÁ”f_Inside_RŽ +(); + +3850 + `D¿wwš_FÏsh +(); + +3851 { + `IÁ”f_Inside_RŽ +(); ; } + +3854 + } +} + +3856  + $IÁ”f_Inside_RŽ_bu‰Ú +() + +3858  + `IÁ”f_Inside_RŽ +(); + +3861 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +REDRAW_IN_ICON +) && + +3862 + `Bu‰Ús_M©ch +Ð +cu¼’t_but +, +REDRAW_BUTTONS + ) ) + +3864 ià( +cu¼’t_kšd + !ð +up +) + +3865 { + `IÁ”f_Aù +Ð +IÁ”f_Red¿w_AÎ + ); ; } + +3867 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +EXCHANGE_IN_ICON +) && + +3868 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +EXCHANGE_BUTTONS +) ) + +3870 ià( +cu¼’t_kšd + !ð +up +) + +3871 { + `IÁ”f_S¹_Exchªgšg +(); ; } + +3873 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +MOVE_IN_ICON +) && + +3874 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +ICON_MOVE_BUTTONS +) ) + +3876 ià( +cu¼’t_kšd + !ð +up +) + +3877 { + `IÁ”f_S¹_G¿v™y_IcÚ_Movšg +(); ; } + +3879 iàÐ + `Bu‰Ús_M©ch +Ð +cu¼’t_but +, +EXIT_BUTTONS + ) ) + +3881 ià( +cu¼’t_kšd + !ð +up +) + +3882 { + `IÁ”f_S¹_Wa™_FÜ_CÚfœm +( +ex™msg +, +IÁ”f_CÚfœmed_Ex™ +); ; } + +3884 iàÐ + `Bu‰Ús_M©ch +Ð +cu¼’t_but +, +HEADER_MANAGER_MENU_BUTTONS + ) ) + +3886 iàÐ +cu¼’t_kšd + !ð +up + ) + +3887 { + `IÁ”f_M’u_EÁ” +Ð +mªag”_background_m’u +, + `Bu‰Ús_Numb” +( +cu¼’t_but + ), +cu¼’t_kšd + ); ; } + +3891 + `IÁ”f_HªdË_Bu‰Ú +(); + +3892 { + `IÁ”f_Inside_RŽ +(); ; } + +3894 { + `IÁ”f_Inside_RŽ +(); ; } + +3897 + } +} + +3899  + $IÁ”f_Inside_RŽ +() + +3901 +LEAVE + = +IÁ”f_Inside_RŽ_LEAVE +; + +3902 +ENTER + = +IÁ”f_Inside_RŽ_ENTER +; + +3903 +KEY + = +IÁ”f_Inside_RŽ_KEY +; + +3904 +bu‰Ú + = +IÁ”f_Inside_RŽ_bu‰Ú +; + +3905 + } +} + +3909  + $IÁ”f_Inside_Body_LEAVE +() + +3911  + `IÁ”f_Inside_Body +(); + +3914 { + `IÁ”f_L—ve +(); ; } + +3917 + } +} + +3919  + $IÁ”f_Inside_Body_ENTER +() + +3921  + `IÁ”f_Inside_Body +(); + +3924 { + `IÁ”f_EÁ”_RegiÚ +(); ; } + +3927 + } +} + +3929  + $IÁ”f_Inside_Body_MOUSE +() + +3931  + `IÁ”f_Inside_Body +(); + +3934 + `Cl›Á_S’d_Mou£ +( +cu¼’t_uwšp +, + +3935 +cu¼’t_but¡©e +, +cu¼’t_pos +); + +3936 { + `IÁ”f_Inside_Body +(); ; } + +3939 + } +} + +3941  + $IÁ”f_Inside_Body_KEY +() + +3943  + `IÁ”f_Inside_Body +(); + +3946 + `IÁ”f_HªdË_Key +(); + +3947 { + `IÁ”f_Inside_Body +(); ; } + +3950 + } +} + +3952  + $IÁ”f_Inside_Body_bu‰Ú +() + +3954  + `IÁ”f_Inside_Body +(); + +3957 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +MANAGER_MENU_IN_BODY +) && + +3958 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +BODY_MANAGER_MENU_BUTTONS +) ) + +3960 iàÐ +cu¼’t_kšd + !ð +up + ) + +3961 { + `IÁ”f_M’u_EÁ” +Ð +mªag”_wšdow_m’u +, + `Bu‰Ús_Numb” +( +cu¼’t_but +), +cu¼’t_kšd + ); ; } + +3963 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +USER_MENU_IN_BODY +) + +3964 && + `Bu‰Ús_M©ch +( +cu¼’t_but +, +BODY_USER_MENU_BUTTONS +) ) + +3966 iàÐ +cu¼’t_kšd + !ð +up + ) + +3967 { + `IÁ”f_M’u_EÁ” +Ð + `RegiÚ_G‘_M’u +( +cu¼’t_uwšp +, +cu¼’t_»giÚ +), + `Bu‰Ús_Numb” +( +cu¼’t_but +), +cu¼’t_kšd + ); ; } + +3970 + `IÁ”f_HªdË_Bu‰Ú +(); + +3971 { + `IÁ”f_Inside_Body +(); ; } + +3974 + } +} + +3976  + $IÁ”f_Inside_Body +() + +3978 +LEAVE + = +IÁ”f_Inside_Body_LEAVE +; + +3979 +ENTER + = +IÁ”f_Inside_Body_ENTER +; + +3980 +MOUSE + = +IÁ”f_Inside_Body_MOUSE +; + +3981 +KEY + = +IÁ”f_Inside_Body_KEY +; + +3982 +bu‰Ú + = +IÁ”f_Inside_Body_bu‰Ú +; + +3983 + } +} + +3987  + $IÁ”f_Inside_H—d”_LEAVE +() + +3989  + `IÁ”f_Inside_H—d” +(); + +3992 { + `IÁ”f_L—ve +(); ; } + +3995 + } +} + +3997  + $IÁ”f_Inside_H—d”_ENTER +() + +3999  + `IÁ”f_Inside_H—d” +(); + +4002 { + `IÁ”f_EÁ”_RegiÚ +(); ; } + +4005 + } +} + +4007  + $IÁ”f_Inside_H—d”_KEY +() + +4009  + `IÁ”f_Inside_H—d” +(); + +4012 + `IÁ”f_HªdË_Key +(); + +4013 { + `IÁ”f_Inside_H—d” +(); ; } + +4016 + } +} + +4018  + $IÁ”f_Inside_H—d”_bu‰Ú +() + +4020  + `IÁ”f_Inside_H—d” +(); + +4023 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +REDRAW_IN_HEADER +) && + +4024 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +REDRAW_BUTTONS +) ) + +4026 ià( +cu¼’t_kšd + !ð +up +) + +4027 { + `IÁ”f_Aù +Ð +IÁ”f_Red¿w + ); ; } + +4029 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +CLOSE_IN_HEADER +) && + +4030 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +CLOSE_BUTTONS +) ) + +4032 ià( +cu¼’t_kšd + !ð +up +) + +4033 { + `IÁ”f_Aù +Ð +IÁ”f_Clo£ + ); ; } + +4035 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +ZOOM_IN_HEADER +) && + +4036 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +ZOOM_BUTTONS +) ) + +4038 ià( +cu¼’t_kšd + !ð +up +) + +4039 { + `IÁ”f_Aù +Ð +IÁ”f_ToggË_Zoom + ); ; } + +4041 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +DESIRE_IN_HEADER +) && + +4042 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +DESIRE_BUTTONS +) ) + +4044 iàÐ +cu¼’t_kšd + !ð +up + ) + +4045 { + `IÁ”f_Aù +Ð +IÁ”f_Desœe + ); ; } + +4047 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +ENLARGE_IN_HEADER +) && + +4048 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +ENLARGE_BUTTONS +) ) + +4050 iàÐ +cu¼’t_kšd + !ð +up + ) + +4051 { + `IÁ”f_Aù +Ð +IÁ”f_EƬge + ); ; } + +4053 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +RESIZE_IN_HEADER +) && + +4054 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +RESIZE_BUTTONS +) ) + +4056 ià( +cu¼’t_kšd + !ð +up +) + +4057 { + `IÁ”f_S¹_Basšg_Rsz +(); ; } + +4059 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +RELOCATE_IN_HEADER +) && + +4060 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +RELOCATE_BUTTONS +) ) + +4062 ià( +cu¼’t_kšd + !ð +up +) + +4063 { + `IÁ”f_S¹_R–oÿtšg +(); ; } + +4065 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +EXCHANGE_IN_HEADER +) && + +4066 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +EXCHANGE_BUTTONS +) ) + +4068 ià( +cu¼’t_kšd + !ð +up +) + +4069 { + `IÁ”f_S¹_Exchªgšg +(); ; } + +4071 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +MOVE_IN_HEADER +) && + +4072 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +MOVE_BUTTONS +) ) + +4074 ià( +cu¼’t_kšd + !ð +up +) + +4075 { + `IÁ”f_S¹_G¿v™y_Movšg +(); ; } + +4077 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +USER_MENU_IN_HEADER +) && + +4078 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +HEADER_USER_MENU_BUTTONS +) ) + +4080 ià( +cu¼’t_kšd + !ð +up +) + +4081 { + `IÁ”f_M’u_EÁ” +Ð + `RegiÚ_G‘_M’u +( +cu¼’t_uwšp +, +cu¼’t_»giÚ +), + `Bu‰Ús_Numb” +( +cu¼’t_but +), +cu¼’t_kšd + ); ; } + +4083 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +MANAGER_MENU_IN_HEADER +) && + +4084 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +HEADER_MANAGER_MENU_BUTTONS +) ) + +4086 ià( +cu¼’t_kšd + !ð +up +) + +4087 { + `IÁ”f_M’u_EÁ” +Ð +mªag”_wšdow_m’u +, + `Bu‰Ús_Numb” +( +cu¼’t_but +), +cu¼’t_kšd + ); ; } + +4090 + `IÁ”f_HªdË_Bu‰Ú +(); + +4091 { + `IÁ”f_Inside_H—d” +(); ; } + +4094 + } +} + +4096  + $IÁ”f_Inside_H—d” +() + +4098 +LEAVE + = +IÁ”f_Inside_H—d”_LEAVE +; + +4099 +ENTER + = +IÁ”f_Inside_H—d”_ENTER +; + +4100 +KEY + = +IÁ”f_Inside_H—d”_KEY +; + +4101 +bu‰Ú + = +IÁ”f_Inside_H—d”_bu‰Ú +; + +4102 + } +} + +4106  + $IÁ”f_Inside_IcÚ_LEAVE +() + +4108  + `IÁ”f_Inside_IcÚ +(); + +4111 { + `IÁ”f_L—ve +(); ; } + +4114 + } +} + +4116  + $IÁ”f_Inside_IcÚ_ENTER +() + +4118  + `IÁ”f_Inside_IcÚ +(); + +4121 { + `IÁ”f_EÁ”_RegiÚ +(); ; } + +4124 + } +} + +4126  + $IÁ”f_Inside_IcÚ_KEY +() + +4128  + `IÁ”f_Inside_IcÚ +(); + +4131 + `IÁ”f_HªdË_Key +(); + +4132 { + `IÁ”f_Inside_IcÚ +(); ; } + +4135 + } +} + +4137  + $IÁ”f_Inside_IcÚ_bu‰Ú +() + +4139  + `IÁ”f_Inside_IcÚ +(); + +4142 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +ICON_OPEN_BUTTONS +) ) + +4144 iàÐ + `U£rwš_Group_Clo£d +Ð +cu¼’t_uwšp + ) ) + +4146 ià( +cu¼’t_kšd + !ð +up +) + +4147 { + `IÁ”f_S¹_Wa™_FÜ_CÚfœm +( +groupmsg +, +IÁ”f_CÚfœmed_Group_O³n +); ; } + +4149 iàÐ + `U£rwš_NÙif›s_IcÚ +Ð +cu¼’t_uwšp + ) ) + +4151 ià( +cu¼’t_kšd + !ð +up +) + +4152 { + `IÁ”f_S¹_Wa™_FÜ_CÚfœm +( +nÙifymsg +, +IÁ”f_CÚfœmed_IcÚ_NÙify +); ; } + +4156 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +AUTO_PLACE_ON_ICON_OPEN +) ) + +4158 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +AUTO_PLACE_ON_UNSIZED_OPEN +) || + +4159 + `U£rwš_Sized +Ð +cu¼’t_uwšp + ) ) + +4161 iàÐ +cu¼’t_kšd + !ð +up + ) + +4162 { + `IÁ”f_Aù +Ð +IÁ”f_O³n + ); ; } + +4164 iàÐ +cu¼’t_kšd + !ð +up + ) + +4166 ià(! + `IÁ”f_S¹_T¿ckšg +( +Œack_Ý’_tžecursÜ +)) + +4167 { + `IÁ”f_FÏsh_Cªûl +(); ; } + +4168 { + `IÁ”f_S¹_O³nšg +(); ; } + +4171 iàÐ +cu¼’t_kšd + !ð +up + ) + +4173 iàÐ + `Mªage_G‘_Focus +(è=ð +cu¼’t_uwšp + ) + +4174 + `Mªage_Sw™ch_Focus +Ð +UWIN_NULL + ); + +4175 { + `IÁ”f_S¹_O³n_In_IcÚ +(); ; } + +4179 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +REDRAW_IN_ICON +) && + +4180 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +REDRAW_BUTTONS +) ) + +4182 ià( +cu¼’t_kšd + !ð +up +) + +4183 { + `IÁ”f_Aù +Ð +IÁ”f_Red¿w + ); ; } + +4185 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +EXCHANGE_IN_ICON +) && + +4186 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +EXCHANGE_BUTTONS +) ) + +4188 ià( +cu¼’t_kšd + !ð +up +) + +4189 { + `IÁ”f_S¹_Exchªgšg +(); ; } + +4191 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +MOVE_IN_ICON +) && + +4192 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +ICON_MOVE_BUTTONS +) ) + +4194 iàÐ +cu¼’t_kšd + !ð +up + ) + +4195 { + `IÁ”f_S¹_G¿v™y_IcÚ_Movšg +(); ; } + +4197 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +USER_MENU_IN_ICON +) && + +4198 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +HEADER_USER_MENU_BUTTONS +) ) + +4200 iàÐ +cu¼’t_kšd + !ð +up + ) + +4201 { + `IÁ”f_M’u_EÁ” +Ð + `RegiÚ_G‘_M’u +( +cu¼’t_uwšp +, +cu¼’t_»giÚ +), + `Bu‰Ús_Numb” +( +cu¼’t_but +), +cu¼’t_kšd + ); ; } + +4203 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +MANAGER_MENU_IN_ICON +) && + +4204 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +HEADER_MANAGER_MENU_BUTTONS +) ) + +4206 iàÐ +cu¼’t_kšd + !ð +up + ) + +4207 { + `IÁ”f_M’u_EÁ” +Ð +mªag”_icÚ_m’u +, + `Bu‰Ús_Numb” +( +cu¼’t_but +), +cu¼’t_kšd + ); ; } + +4209 iàÐ + `Bu‰Ús_M©ch +( +cu¼’t_but +, +DISCONNECT_BUTTONS +) ) + +4211 ià( +cu¼’t_kšd + !ð +up +) + +4212 { + `IÁ”f_S¹_Wa™_FÜ_CÚfœm +( +h¬dmsg +, +IÁ”f_CÚfœmed_H¬d_Kžl +); ; } + +4215 + `IÁ”f_HªdË_Bu‰Ú +(); + +4216 { + `IÁ”f_Inside_IcÚ +(); ; } + +4219 + } +} + +4221  + $IÁ”f_Inside_IcÚ +() + +4223 +LEAVE + = +IÁ”f_Inside_IcÚ_LEAVE +; + +4224 +ENTER + = +IÁ”f_Inside_IcÚ_ENTER +; + +4225 +KEY + = +IÁ”f_Inside_IcÚ_KEY +; + +4226 +bu‰Ú + = +IÁ”f_Inside_IcÚ_bu‰Ú +; + +4227 + } +} + +4231  + $IÁ”f_Inside_Zoom_Gadg‘_LEAVE +() + +4233  + `IÁ”f_Inside_Zoom_Gadg‘ +(); + +4236 { + `IÁ”f_L—ve +(); ; } + +4239 + } +} + +4241  + $IÁ”f_Inside_Zoom_Gadg‘_ENTER +() + +4243  + `IÁ”f_Inside_Zoom_Gadg‘ +(); + +4246 { + `IÁ”f_EÁ”_RegiÚ +(); ; } + +4249 + } +} + +4251  + $IÁ”f_Inside_Zoom_Gadg‘_KEY +() + +4253  + `IÁ”f_Inside_Zoom_Gadg‘ +(); + +4256 + `IÁ”f_HªdË_Key +(); + +4257 { + `IÁ”f_Inside_Zoom_Gadg‘ +(); ; } + +4260 + } +} + +4262  + $IÁ”f_Inside_Zoom_Gadg‘_bu‰Ú +() + +4264  + `IÁ”f_Inside_Zoom_Gadg‘ +(); + +4267 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +REDRAW_IN_ZOOM_GADGET +) && + +4268 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +REDRAW_BUTTONS +) ) + +4270 iàÐ +cu¼’t_kšd + !ð +up + ) + +4271 { + `IÁ”f_Aù +Ð +IÁ”f_Red¿w + ); ; } + +4273 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +CLOSE_IN_ZOOM_GADGET +) && + +4274 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +CLOSE_BUTTONS +) ) + +4276 iàÐ +cu¼’t_kšd + !ð +up + ) + +4277 { + `IÁ”f_Aù +Ð +IÁ”f_Clo£ + ); ; } + +4279 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +ZOOM_IN_ZOOM_GADGET +) && + +4280 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +ZOOM_BUTTONS +) ) + +4282 iàÐ +cu¼’t_kšd + !ð +up + ) + +4283 { + `IÁ”f_Aù +Ð +IÁ”f_ToggË_Zoom + ); ; } + +4285 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +DESIRE_IN_ZOOM_GADGET +) && + +4286 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +DESIRE_BUTTONS +) ) + +4288 iàÐ +cu¼’t_kšd + !ð +up + ) + +4289 { + `IÁ”f_Aù +Ð +IÁ”f_Desœe + ); ; } + +4291 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +ENLARGE_IN_ZOOM_GADGET +) && + +4292 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +ENLARGE_BUTTONS +) ) + +4294 iàÐ +cu¼’t_kšd + !ð +up + ) + +4295 { + `IÁ”f_Aù +Ð +IÁ”f_EƬge + ); ; } + +4297 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +RESIZE_IN_ZOOM_GADGET +) && + +4298 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +RESIZE_BUTTONS +) ) + +4300 iàÐ +cu¼’t_kšd + !ð +up + ) + +4302 +cu¼’t_side + = +TÝ_Leá +; + +4303 +cu¼’t_»giÚ + = + `RegiÚ_Make_CÜÃr +Ð +TÝ_Leá + ); + +4304 { + `IÁ”f_S¹_Cºr_Rszng +(); ; } + +4307 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +RELOCATE_IN_ZOOM_GADGET +) && + +4308 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +RELOCATE_BUTTONS +) ) + +4310 iàÐ +cu¼’t_kšd + !ð +up + ) + +4311 { + `IÁ”f_S¹_R–oÿtšg +(); ; } + +4313 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +EXCHANGE_IN_ZOOM_GADGET +) && + +4314 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +EXCHANGE_BUTTONS +) ) + +4316 iàÐ +cu¼’t_kšd + !ð +up + ) + +4317 { + `IÁ”f_S¹_Exchªgšg +(); ; } + +4319 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +MOVE_IN_ZOOM_GADGET +) && + +4320 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +MOVE_BUTTONS +) ) + +4322 iàÐ +cu¼’t_kšd + !ð +up + ) + +4323 { + `IÁ”f_S¹_Movšg +(); ; } + +4325 { + `IÁ”f_Inside_Zoom_Gadg‘ +(); ; } + +4328 + } +} + +4330  + $IÁ”f_Inside_Zoom_Gadg‘ +() + +4332 +LEAVE + = +IÁ”f_Inside_Zoom_Gadg‘_LEAVE +; + +4333 +ENTER + = +IÁ”f_Inside_Zoom_Gadg‘_ENTER +; + +4334 +KEY + = +IÁ”f_Inside_Zoom_Gadg‘_KEY +; + +4335 +bu‰Ú + = +IÁ”f_Inside_Zoom_Gadg‘_bu‰Ú +; + +4336 + } +} + +4340  + $IÁ”f_Inside_Move_Gadg‘_LEAVE +() + +4342  + `IÁ”f_Inside_Move_Gadg‘ +(); + +4345 { + `IÁ”f_L—ve +(); ; } + +4348 + } +} + +4350  + $IÁ”f_Inside_Move_Gadg‘_ENTER +() + +4352  + `IÁ”f_Inside_Move_Gadg‘ +(); + +4355 { + `IÁ”f_EÁ”_RegiÚ +(); ; } + +4358 + } +} + +4360  + $IÁ”f_Inside_Move_Gadg‘_KEY +() + +4362  + `IÁ”f_Inside_Move_Gadg‘ +(); + +4365 + `IÁ”f_HªdË_Key +(); + +4366 { + `IÁ”f_Inside_Move_Gadg‘ +(); ; } + +4369 + } +} + +4371  + $IÁ”f_Inside_Move_Gadg‘_bu‰Ú +() + +4373  + `IÁ”f_Inside_Move_Gadg‘ +(); + +4376 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +REDRAW_IN_MOVE_GADGET +) && + +4377 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +REDRAW_BUTTONS +) ) + +4379 iàÐ +cu¼’t_kšd + !ð +up + ) + +4380 { + `IÁ”f_Aù +Ð +IÁ”f_Red¿w + ); ; } + +4382 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +CLOSE_IN_MOVE_GADGET +) && + +4383 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +CLOSE_BUTTONS +) ) + +4385 iàÐ +cu¼’t_kšd + !ð +up + ) + +4386 { + `IÁ”f_Aù +Ð +IÁ”f_Clo£ + ); ; } + +4388 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +RESIZE_IN_MOVE_GADGET +) && + +4389 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +RESIZE_BUTTONS +) ) + +4391 iàÐ +cu¼’t_kšd + !ð +up + ) + +4393 +cu¼’t_side + = +TÝ_Right +; + +4394 +cu¼’t_»giÚ + = + `RegiÚ_Make_CÜÃr +Ð +TÝ_Right + ); + +4395 { + `IÁ”f_S¹_Cºr_Rszng +(); ; } + +4398 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +RELOCATE_IN_MOVE_GADGET +) && + +4399 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +RELOCATE_BUTTONS +) ) + +4401 iàÐ +cu¼’t_kšd + !ð +up + ) + +4402 { + `IÁ”f_S¹_R–oÿtšg +(); ; } + +4404 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +EXCHANGE_IN_MOVE_GADGET +) && + +4405 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +EXCHANGE_BUTTONS +) ) + +4407 iàÐ +cu¼’t_kšd + !ð +up + ) + +4408 { + `IÁ”f_S¹_Exchªgšg +(); ; } + +4410 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +MOVE_IN_MOVE_GADGET +) && + +4411 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +MOVE_BUTTONS +) ) + +4413 iàÐ +cu¼’t_kšd + !ð +up + ) + +4414 { + `IÁ”f_S¹_Movšg +(); ; } + +4416 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +ZOOM_IN_MOVE_GADGET +) && + +4417 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +ZOOM_BUTTONS +) ) + +4419 iàÐ +cu¼’t_kšd + !ð +up + ) + +4420 { + `IÁ”f_Aù +Ð +IÁ”f_ToggË_Zoom + ); ; } + +4422 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +DESIRE_IN_MOVE_GADGET +) && + +4423 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +DESIRE_BUTTONS +) ) + +4425 iàÐ +cu¼’t_kšd + !ð +up + ) + +4426 { + `IÁ”f_Aù +Ð +IÁ”f_Desœe + ); ; } + +4428 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +ENLARGE_IN_MOVE_GADGET +) && + +4429 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +ENLARGE_BUTTONS +) ) + +4431 iàÐ +cu¼’t_kšd + !ð +up + ) + +4432 { + `IÁ”f_Aù +Ð +IÁ”f_EƬge + ); ; } + +4434 { + `IÁ”f_Inside_Move_Gadg‘ +(); ; } + +4437 + } +} + +4439  + $IÁ”f_Inside_Move_Gadg‘ +() + +4441 +LEAVE + = +IÁ”f_Inside_Move_Gadg‘_LEAVE +; + +4442 +ENTER + = +IÁ”f_Inside_Move_Gadg‘_ENTER +; + +4443 +KEY + = +IÁ”f_Inside_Move_Gadg‘_KEY +; + +4444 +bu‰Ú + = +IÁ”f_Inside_Move_Gadg‘_bu‰Ú +; + +4445 + } +} + +4449  + $IÁ”f_Inside_Side_BÜd”_LEAVE +() + +4451  + `IÁ”f_Inside_Side_BÜd” +(); + +4454 { + `IÁ”f_L—ve +(); ; } + +4457 + } +} + +4459  + $IÁ”f_Inside_Side_BÜd”_ENTER +() + +4461  + `IÁ”f_Inside_Side_BÜd” +(); + +4464 { + `IÁ”f_EÁ”_RegiÚ +(); ; } + +4467 + } +} + +4469  + $IÁ”f_Inside_Side_BÜd”_KEY +() + +4471  + `IÁ”f_Inside_Side_BÜd” +(); + +4474 + `IÁ”f_HªdË_Key +(); + +4475 { + `IÁ”f_Inside_Side_BÜd” +(); ; } + +4478 + } +} + +4480  + $IÁ”f_Inside_Side_BÜd”_bu‰Ú +() + +4482  + `IÁ”f_Inside_Side_BÜd” +(); + +4485 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +ZOOM_IN_SIDE_BORDER +) && + +4486 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +ZOOM_BUTTONS +) ) + +4488 iàÐ +cu¼’t_kšd + !ð +up + ) + +4489 { + `IÁ”f_Aù +Ð +IÁ”f_ToggË_Zoom + ); ; } + +4491 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +DESIRE_IN_SIDE_BORDER +) && + +4492 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +DESIRE_BUTTONS +) ) + +4494 iàÐ +cu¼’t_kšd + !ð +up + ) + +4495 { + `IÁ”f_Aù +Ð +IÁ”f_Desœe + ); ; } + +4497 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +ENLARGE_IN_SIDE_BORDER +) && + +4498 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +ENLARGE_BUTTONS +) ) + +4500 iàÐ +cu¼’t_kšd + !ð +up + ) + +4501 { + `IÁ”f_Aù +Ð +IÁ”f_EƬge + ); ; } + +4503 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +REDRAW_IN_SIDE_BORDER +) && + +4504 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +REDRAW_BUTTONS +) ) + +4506 iàÐ +cu¼’t_kšd + !ð +up + ) + +4507 { + `IÁ”f_Aù +Ð +IÁ”f_Red¿w + ); ; } + +4509 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +CLOSE_IN_SIDE_BORDER +) && + +4510 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +CLOSE_BUTTONS +) ) + +4512 iàÐ +cu¼’t_kšd + !ð +up + ) + +4513 { + `IÁ”f_Aù +Ð +IÁ”f_Clo£ + ); ; } + +4515 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +RESIZE_IN_SIDE_BORDER +) && + +4516 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +RESIZE_BUTTONS +) ) + +4518 iàÐ +cu¼’t_kšd + !ð +up + ) + +4520 +cu¼’t_side + = + `RegiÚ_G‘_BÜd” +( +cu¼’t_»giÚ +); + +4521 { + `IÁ”f_S¹_Edge_Resizšg +(); ; } + +4524 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +RELOCATE_IN_SIDE_BORDER +) && + +4525 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +RELOCATE_BUTTONS +) ) + +4527 iàÐ +cu¼’t_kšd + !ð +up + ) + +4528 { + `IÁ”f_S¹_R–oÿtšg +(); ; } + +4530 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +EXCHANGE_IN_SIDE_BORDER +) && + +4531 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +EXCHANGE_BUTTONS +) ) + +4533 iàÐ +cu¼’t_kšd + !ð +up + ) + +4534 { + `IÁ”f_S¹_Exchªgšg +(); ; } + +4536 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +MOVE_IN_SIDE_BORDER +) && + +4537 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +MOVE_BUTTONS +) ) + +4539 iàÐ +cu¼’t_kšd + !ð +up + ) + +4541  + `RegiÚ_G‘_BÜd” +( +cu¼’t_»giÚ +) ) + +4543  +TÝ +: + +4544  +BÙtom +: + +4545 { + `IÁ”f_S¹_V”t_Movšg +(); ; } + +4546  +Leá +: + +4547  +Right +: + +4548 { + `IÁ”f_S¹_HÜiz_Movšg +(); ; } + +4552 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +USER_MENU_IN_SIDE_BORDER +) && + +4553 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +HEADER_USER_MENU_BUTTONS +) ) + +4555 iàÐ +cu¼’t_kšd + !ð +up + ) + +4556 { + `IÁ”f_M’u_EÁ” +Ð + `RegiÚ_G‘_M’u +( +cu¼’t_uwšp +, +cu¼’t_»giÚ +), + `Bu‰Ús_Numb” +( +cu¼’t_but +), +cu¼’t_kšd + ); ; } + +4558 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +MANAGER_MENU_IN_SIDE_BORDER +) && + +4559 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +HEADER_MANAGER_MENU_BUTTONS +) ) + +4561 iàÐ +cu¼’t_kšd + !ð +up + ) + +4562 { + `IÁ”f_M’u_EÁ” +Ð +mªag”_wšdow_m’u +, + `Bu‰Ús_Numb” +( +cu¼’t_but +), +cu¼’t_kšd + ); ; } + +4564 { + `IÁ”f_Inside_Side_BÜd” +(); ; } + +4567 + } +} + +4569  + $IÁ”f_Inside_Side_BÜd” +() + +4571 +LEAVE + = +IÁ”f_Inside_Side_BÜd”_LEAVE +; + +4572 +ENTER + = +IÁ”f_Inside_Side_BÜd”_ENTER +; + +4573 +KEY + = +IÁ”f_Inside_Side_BÜd”_KEY +; + +4574 +bu‰Ú + = +IÁ”f_Inside_Side_BÜd”_bu‰Ú +; + +4575 + } +} + +4579  + $IÁ”f_Ins_Cºr_BÜd”_LEAVE +() + +4581  + `IÁ”f_Ins_Cºr_BÜd” +(); + +4584 { + `IÁ”f_L—ve +(); ; } + +4587 + } +} + +4589  + $IÁ”f_Ins_Cºr_BÜd”_ENTER +() + +4591  + `IÁ”f_Ins_Cºr_BÜd” +(); + +4594 { + `IÁ”f_EÁ”_RegiÚ +(); ; } + +4597 + } +} + +4599  + $IÁ”f_Ins_Cºr_BÜd”_KEY +() + +4601  + `IÁ”f_Ins_Cºr_BÜd” +(); + +4604 + `IÁ”f_HªdË_Key +(); + +4605 { + `IÁ”f_Ins_Cºr_BÜd” +(); ; } + +4608 + } +} + +4610  + $IÁ”f_Ins_Cºr_BÜd”_bu‰Ú +() + +4612  + `IÁ”f_Ins_Cºr_BÜd” +(); + +4615 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +ZOOM_IN_CORNER_BORDER +) && + +4616 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +ZOOM_BUTTONS +) ) + +4618 iàÐ +cu¼’t_kšd + !ð +up + ) + +4619 { + `IÁ”f_Aù +Ð +IÁ”f_ToggË_Zoom + ); ; } + +4621 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +DESIRE_IN_CORNER_BORDER +) && + +4622 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +DESIRE_BUTTONS +) ) + +4624 iàÐ +cu¼’t_kšd + !ð +up + ) + +4625 { + `IÁ”f_Aù +Ð +IÁ”f_Desœe + ); ; } + +4627 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +ENLARGE_IN_CORNER_BORDER +) && + +4628 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +ENLARGE_BUTTONS +) ) + +4630 iàÐ +cu¼’t_kšd + !ð +up + ) + +4631 { + `IÁ”f_Aù +Ð +IÁ”f_EƬge + ); ; } + +4633 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +REDRAW_IN_CORNER_BORDER +) && + +4634 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +REDRAW_BUTTONS +) ) + +4636 iàÐ +cu¼’t_kšd + !ð +up + ) + +4637 { + `IÁ”f_Aù +Ð +IÁ”f_Red¿w + ); ; } + +4639 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +CLOSE_IN_CORNER_BORDER +) && + +4640 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +CLOSE_BUTTONS +) ) + +4642 iàÐ +cu¼’t_kšd + !ð +up + ) + +4643 { + `IÁ”f_Aù +Ð +IÁ”f_Clo£ + ); ; } + +4645 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +RESIZE_IN_CORNER_BORDER +) && + +4646 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +RESIZE_BUTTONS +) ) + +4648 iàÐ +cu¼’t_kšd + !ð +up + ) + +4650 +cu¼’t_side + = + `RegiÚ_G‘_BÜd” +( +cu¼’t_»giÚ +); + +4651 { + `IÁ”f_S¹_Cºr_Rszng +(); ; } + +4654 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +RELOCATE_IN_CORNER_BORDER +) && + +4655 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +RELOCATE_BUTTONS +) ) + +4657 iàÐ +cu¼’t_kšd + !ð +up + ) + +4658 { + `IÁ”f_S¹_R–oÿtšg +(); ; } + +4660 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +EXCHANGE_IN_CORNER_BORDER +) && + +4661 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +EXCHANGE_BUTTONS +) ) + +4663 iàÐ +cu¼’t_kšd + !ð +up + ) + +4664 { + `IÁ”f_S¹_Exchªgšg +(); ; } + +4666 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +MOVE_IN_CORNER_BORDER +) && + +4667 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +MOVE_BUTTONS +) ) + +4669 iàÐ +cu¼’t_kšd + !ð +up + ) + +4670 { + `IÁ”f_S¹_G¿v™y_Movšg +(); ; } + +4672 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +USER_MENU_IN_CORNER_BORDER +) && + +4673 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +HEADER_USER_MENU_BUTTONS +) ) + +4675 iàÐ +cu¼’t_kšd + !ð +up + ) + +4676 { + `IÁ”f_M’u_EÁ” +Ð + `RegiÚ_G‘_M’u +( +cu¼’t_uwšp +, +cu¼’t_»giÚ +), + `Bu‰Ús_Numb” +( +cu¼’t_but +), +cu¼’t_kšd + ); ; } + +4678 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +MANAGER_MENU_IN_CORNER_BORDER +) && + +4679 + `Bu‰Ús_M©ch +( +cu¼’t_but +, +HEADER_MANAGER_MENU_BUTTONS +) ) + +4681 iàÐ +cu¼’t_kšd + !ð +up + ) + +4682 { + `IÁ”f_M’u_EÁ” +Ð +mªag”_wšdow_m’u +, + `Bu‰Ús_Numb” +( +cu¼’t_but +), +cu¼’t_kšd + ); ; } + +4684 { + `IÁ”f_Ins_Cºr_BÜd” +(); ; } + +4687 + } +} + +4689  + $IÁ”f_Ins_Cºr_BÜd” +() + +4691 +LEAVE + = +IÁ”f_Ins_Cºr_BÜd”_LEAVE +; + +4692 +ENTER + = +IÁ”f_Ins_Cºr_BÜd”_ENTER +; + +4693 +KEY + = +IÁ”f_Ins_Cºr_BÜd”_KEY +; + +4694 +bu‰Ú + = +IÁ”f_Ins_Cºr_BÜd”_bu‰Ú +; + +4695 + } +} + +4699  + $IÁ”f_Mªage_IcÚ_O³n +Ð +uwšp + ) + +4700 +U£rwš + * +uwšp +; + +4702 iàÐ + `U£rwš_Group_Clo£d +Ð +uwšp + ) ) + +4703 + `Mªage_Wªt_S‹ +Ð +uwšp +, +IcÚicS‹ + ); + +4705 + `IÁ”f_Cl›Á_W©ch +( + +4706 + `Mªage_Cl›Á_O³n_IcÚ +Ð +uwšp + ) ) + +4707 + } +} + +4711  + $IÁ”f_Mªage_O³n +Ð +uwšp + ) + +4712 +U£rwš + * +uwšp +; + +4714 +boÞ + +»suÉ +; + +4715 +cu¼’t_uwšp + = +uwšp +; + +4717 iàÐ + `U£rwš_Group_Clo£d +Ð +uwšp + ) ) + +4718 + `Mªage_Wªt_S‹ +Ð +uwšp +, +NÜm®S‹ + ); + +4720 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +AUTO_PLACE_ON_CLIENT_OPEN + ) + +4721 && ( + `U£rGlob®s_G‘_O±iÚ +( +AUTO_PLACE_ON_UNSIZED_OPEN +) || + +4722 + `U£rwš_Sized +Ð +uwšp + ) ) ) + +4724 + `IÁ”f_Cl›Á_W©ch +( + +4726 +»suÉ + = + `Mªage_Cl›Á_O³n_Autom©iÿÎy +Ð +uwšp + ); + +4727 iàÐ +»suÉ + && + +4728 + `U£rGlob®s_G‘_O±iÚ +( + +4729 +PLACE_CSR_GDGT_AFT_CL_AUTO_OPEN +) ) + +4730 + `IÁ”f_S‘_Pos +Ð + `RegiÚ_Gadg‘_C’‹r +Ð +uwšp + ) ); + +4733 iàÐ + `U£rwš_Ev”_O³Ãd +( +uwšp +) ) + +4735 ià(! + `IÁ”f_Cl›Á_S¹_T¿ckšg +( +Œack_Ý’_tžecursÜ +)) + +4736 + `D¿wwš_FÏsh +(); + +4738 { + `IÁ”f_S¹_O³nšg +(); ; } + +4742 ià(! + `IÁ”f_Cl›Á_S¹_T¿ckšg +( +Œack_Ý’_tžecursÜ +)) + +4744 + `D¿wwš_FÏsh +(); + +4745 + `IÁ”f_Cl›Á_W©ch +( + +4746 + `Mªage_Cl›Á_O³n_IcÚ +( +uwšp +) ) + +4749 { + `IÁ”f_S¹_O³nšg +(); ; } + +4751 + } +} + +4755  + $IÁ”f_Cl›Á_O³n +Ð +uwšp + ) + +4756 +U£rwš + * +uwšp +; + +4758  +¡©e +; + +4760 +¡©e + = + `U£rwš_S‹ +( +uwšp +); + +4762 iàÐ! + `U£rwš_Ev”_O³Ãd +Ð +uwšp + ) ) + +4764 + `Mªage_P»·»_O³n +Ð +uwšp + ); + +4766 iàÐ( +¡©e + =ð +NÜm®S‹ +) || + +4767 ( +¡©e + =ð +Cl›ÁIcÚS‹ +) || + +4768 ÐÐ + `U£rwš_Laid_Out +( +uwšp +) || + +4769 ( +¡©e + =ð +NoS‹ +è|| (¡©=ð +DÚtC¬eS‹ +) ) && + +4770 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +AUTO_OPEN_ON_CREATE + ) ) ) + +4772 + `u£r_wšdow_još_excursiÚ +Ð +uwšp +, +AUTO_PLACE_ON_CLIENT_OPEN +, + +4773 Ð + `U£rwš_Sized +( +uwšp +è&& + `U£rwš_Pos™iÚed +(uwinp) ), + +4774 + `IÁ”f_Mªage_O³n +Ð +uwšp + ) ) + +4777 + `IÁ”f_Mªage_IcÚ_O³n +Ð +uwšp + ); + +4779 iàÐ(! + `U£rwš_Is_O³n +Ð +uwšp + )) && + +4780 Ð( +¡©e + =ð +NoS‹ +) || + +4781 ( +¡©e + =ð +DÚtC¬eS‹ +) || + +4782 ( +¡©e + =ð +NÜm®S‹ +) ) ) + +4783 + `IÁ”f_Mªage_O³n +Ð +uwšp + ); + +4784 + } +} + +4787  + $IÁ”f_Cl›Á_NÙe_Ouut +Ð +uwšp + ) + +4788 +U£rwš + * +uwšp +; + +4790  +¡©e +; + +4792 +¡©e + = + `U£rwš_S‹ +( +uwšp +); + +4793 + `Mªage_NÙe_Ouut +Ð +uwšp + ); + +4795 iàÐ! + `U£rwš_Ev”_O³Ãd +Ð +uwšp + ) ) + +4797 + `Mªage_P»·»_O³n +Ð +uwšp + ); + +4799 iàÐ( +¡©e + =ð +NÜm®S‹ +) || + +4800 ( +¡©e + =ð +Cl›ÁIcÚS‹ +) || + +4801 ÐÐ + `U£rwš_Laid_Out +( +uwšp +) || + +4802 ( +¡©e + =ð +NoS‹ +è|| (¡©=ð +DÚtC¬eS‹ +) ) && + +4803 Ð + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +AUTO_OPEN_ON_CREATE + ) || + +4804 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +AUTO_OPEN_ON_WRITE + ) ) ) ) + +4806 + `u£r_wšdow_još_excursiÚ +Ð +uwšp +, +AUTO_PLACE_ON_CLIENT_OPEN +, + +4807 Ð + `U£rwš_Sized +( +uwšp +è&& + `U£rwš_Pos™iÚed +(uwinp) ), + +4808 + `IÁ”f_Mªage_O³n +Ð +uwšp + ) ) + +4811 + `IÁ”f_Mªage_IcÚ_O³n +Ð +uwšp + ); + +4813 iàÐ(! + `U£rwš_Is_O³n +Ð +uwšp + )) && + +4814 Ð( +¡©e + =ð +NoS‹ +) || + +4815 ( +¡©e + =ð +DÚtC¬eS‹ +) || + +4816 ( +¡©e + =ð +NÜm®S‹ +) ) && + +4817 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +AUTO_OPEN_ON_WRITE + ) ) + +4818 + `IÁ”f_Mªage_O³n +Ð +uwšp + ); + +4819 + } +} + +4822  + $IÁ”f_Cl›Á_IcÚ_O³n +Ð +uwšp + ) + +4823 +U£rwš + * +uwšp +; + +4825  +¡©e +; + +4827 +¡©e + = + `U£rwš_S‹ +( +uwšp +); + +4829 iàÐ! + `U£rwš_Ev”_O³Ãd +Ð +uwšp + ) ) + +4831 + `Mªage_P»·»_O³n +Ð +uwšp + ); + +4833 iàÐÐ +¡©e + =ð +Cl›ÁIcÚS‹ + ) || + +4834 Ð + `U£rwš_Laid_Out +( +uwšp +) && + +4835 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +AUTO_OPEN_ON_CREATE + ) ) ) + +4837 + `u£r_wšdow_još_excursiÚ +Ð +uwšp +, +AUTO_PLACE_ON_CLIENT_OPEN +, + +4838 Ð + `U£rwš_Sized +( +uwšp +è&& + `U£rwš_Pos™iÚed +(uwinp) ), + +4839 + `IÁ”f_Mªage_O³n +Ð +uwšp + ) ) + +4842 + `IÁ”f_Mªage_IcÚ_O³n +Ð +uwšp + ); + +4844 iàÐ + `U£rwš_Is_O³n +Ð +uwšp + ) && + +4845 Ð( +¡©e + =ð +NoS‹ +) || + +4846 ( +¡©e + =ð +DÚtC¬eS‹ +) || + +4847 ( +¡©e + =ð +NÜm®S‹ +) ) ) + +4848 + `IÁ”f_Mªage_IcÚ_O³n +Ð +uwšp + ); + +4849 + } +} + +4852  + $IÁ”f_Cl›Á_Clo£ +Ð +uwšp + ) + +4853 +U£rwš + * +uwšp +; + +4855  +¡©e +; + +4857 +¡©e + = + `U£rwš_S‹ +( +uwšp +); + +4859 iàÐ! + `U£rwš_Ev”_O³Ãd +Ð +uwšp + ) ) + +4861 + `Mªage_P»·»_O³n +Ð +uwšp + ); + +4863 iàÐÐ +¡©e + =ð +Cl›ÁIcÚS‹ + ) || + +4864 Ð + `U£rwš_Laid_Out +( +uwšp +) && + +4865 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +AUTO_OPEN_ON_CREATE + ) ) ) + +4867 + `u£r_wšdow_još_excursiÚ +Ð +uwšp +, +AUTO_PLACE_ON_CLIENT_OPEN +, + +4868 Ð + `U£rwš_Sized +( +uwšp +è&& + `U£rwš_Pos™iÚed +(uwinp) ), + +4869 + `IÁ”f_Mªage_O³n +Ð +uwšp + ) ) + +4872 + `IÁ”f_Mªage_IcÚ_O³n +Ð +uwšp + ); + +4874 ià(! + `U£rwš_Group_Clo£d +Ð +uwšp + ) ) + +4876 iàÐ +¡©e + =ð +Cl›ÁIcÚS‹ + ) + +4877 + `D¿wwš_O³n +Ð +uwšp + ); + +4879 + `IÁ”f_Cl›Á_W©ch +( + +4880 + `Mªage_Cl›Á_Clo£ +Ð +uwšp + ) ) + +4882 + } +} + +4885  + $IÁ”f_Cl›Á_IcÚ_Clo£ +Ð +uwšp + ) + +4886 +U£rwš + * +uwšp +; + +4888 iàÐ + `U£rwš_Ev”_O³Ãd +Ð +uwšp + ) ) + +4889 + `IÁ”f_Cl›Á_W©ch +( + +4890 + `Mªage_Cl›Á_Clo£_IcÚ +Ð +uwšp + ) ) + +4891 + } +} + +4894  + $IÁ”f_Cl›Á_S‘_S‹ +Ð +uwšp +, +¡©e + ) + +4895 +U£rwš + * +uwšp +; + +4896  +¡©e +; + +4898 iàÐ! + `U£rwš_Ev”_O³Ãd +Ð +uwšp + ) ) + +4899 + `Mªage_Cl›Á_S‘_S‹ +Ð +uwšp +, +¡©e + ); + +4901 + `IÁ”f_Cl›Á_W©ch +( + +4902 + `Mªage_Cl›Á_Chªge_S‹ +Ð +uwšp +, +¡©e + ) ) + +4903 + } +} + +4906  + $IÁ”f_Cl›Á_S‘_Group +Ð +uwšp +, +group + ) + +4907 +U£rwš + * +uwšp +; + +4908 +U£rwš + * +group +; + +4910 iàÐ! + `U£rwš_Ev”_O³Ãd +Ð +uwšp + ) ) + +4911 + `Mªage_Cl›Á_S‘_Group +Ð +uwšp +, +group + ); + +4913 + `IÁ”f_Cl›Á_W©ch +( + +4914 + `Mªage_Cl›Á_S‘_Group +Ð +uwšp +, +group + ) ) + +4915 + } +} + +4918  + $IÁ”f_Cl›Á_S‘_IcÚ_Size +Ð +uwšp +, +siz + ) + +4919 +U£rwš + * +uwšp +; + +4920 +Size + +siz +; + +4922 ià(! + `U£rwš_Is_IcÚic +Ð +uwšp + ) ) + +4923 + `Mªage_Cl›Á_S‘_IcÚ_Size +Ð +uwšp +, +siz + ); + +4925 + `IÁ”f_Cl›Á_W©ch +( + +4926 + `Mªage_Cl›Á_S‘_IcÚ_Size +Ð +uwšp +, +siz + ) ) + +4927 + } +} + +4930  + $IÁ”f_Cl›Á_S‘_IcÚ_Pos™iÚ +Ð +uwšp +, +± + ) + +4931 +U£rwš + * +uwšp +; + +4932 +TWPošt + +± +; + +4934 ià(! + `U£rwš_Is_IcÚic +Ð +uwšp + ) ) + +4935 + `Mªage_Cl›Á_S‘_IcÚ_Pos™iÚ +Ð +uwšp +, +± + ); + +4937 + `IÁ”f_Cl›Á_W©ch +( + +4938 + `Mªage_Cl›Á_S‘_IcÚ_Pos™iÚ +Ð +uwšp +, +± + ) ) + +4939 + } +} + +4943  + $IÁ”f_Cl›Á_S¹up +() + +4945 + `IÁ”f_Cl›Á_W©ch +( + +4946 + `Mªage_S¹up_Fšish +() ) + +4947 + } +} + +4950  + $IÁ”f_Cl›Á_S‘_Commªd +Ð +uwšp +, +¡r + ) + +4951 +U£rwš + * +uwšp +; + +4952 * +¡r +; + +4954 iàÐ + `U£rwš_Commªd_Efãù +Ð +uwšp + ) ) + +4955 + `IÁ”f_Cl›Á_W©ch +( + +4956 + `Mªage_S‘_Commªd +Ð +uwšp +, +¡r + ) ) + +4958 + `Mªage_S‘_Commªd +Ð +uwšp +, +¡r + ); + +4959 + } +} + +4962  + $IÁ”f_Cl›Á_CÚfigu» +Ð +uwšp +, +æags +, +tÝ_Ëá +, +bodsiz +, +d‘až + ) + +4963 +U£rwš + * +uwšp +; + +4964  +æags +; + +4965 +TWPošt + +tÝ_Ëá +; + +4966 +Size + +bodsiz +; + +4967  +d‘až +; + +4969 iàÐ + `U£rwš_Is_O³n +Ð +uwšp + ) ) + +4970 + `IÁ”f_Cl›Á_W©ch +( + +4971 + `Mªage_Cl›Á_CÚfigu» +Ð +uwšp +, +æags +, +tÝ_Ëá +, +bodsiz +, +d‘až + ) + +4974 + `Mªage_Cl›Á_CÚfigu» +Ð +uwšp +, +æags +, +tÝ_Ëá +, +bodsiz +, +d‘až + ); + +4975 + } +} + +4978  + $IÁ”f_Cl›Á_De¡roy +Ð +uwšp + ) + +4979 +U£rwš + * +uwšp +; + +4981 iàÐ + `U£rwš_Is_O³n +Ð +uwšp + ) || + `U£rwš_Is_IcÚic +( uwinp ) ) + +4982 + `IÁ”f_Cl›Á_W©ch +( + +4983 + `Mªage_Cl›Á_De¡roy +Ð +uwšp + ) ) + +4985 + `Mªage_Cl›Á_De¡roy +Ð +uwšp + ); + +4986 + } +} + +4989  + $IÁ”f_Cl›Á_Re£t_Mš_Max +Ð +uwšp +, +mšsiz +, +maxsiz + ) + +4990 +U£rwš + * +uwšp +; + +4991 +Size + +mšsiz +, +maxsiz +; + +4993 iàÐ + `U£rwš_Is_O³n +Ð +uwšp + ) ) + +4994 + `IÁ”f_Cl›Á_W©ch +( + +4995 + `Mªage_Cl›Á_Re£t_Mš_Max +Ð +uwšp +, +mšsiz +, +maxsiz + ) ) + +4997 + `Mªage_Cl›Á_Re£t_Mš_Max +Ð +uwšp +, +mšsiz +, +maxsiz + ); + +4998 + } +} + +5001  + $IÁ”f_Cl›Á_S‘_NÜm®_Hšts +Ð +uwšp +, +æags +, + +5002 +mš_size +, +max_size +, +šü_size +, + +5003 +mš_a¥eù +, +max_a¥eù +, +ba£_size + ) + +5004 +U£rwš + * +uwšp +; + +5005  +æags +; + +5006 +Size + +mš_size +, +max_size +, +šü_size +, +ba£_size +; + +5007 +TWPošt + +mš_a¥eù +, +max_a¥eù +; + +5009 iàÐ + `U£rwš_Is_O³n +Ð +uwšp + ) ) + +5010 + `IÁ”f_Cl›Á_W©ch +( + +5011 + `Mªage_Cl›Á_S‘_NÜm®_Hšts +Ð +uwšp +, +æags +, + +5012 +mš_size +, +max_size +, +šü_size +, + +5013 +mš_a¥eù +, +max_a¥eù +, +ba£_size + ) ) + +5015 + `Mªage_Cl›Á_S‘_NÜm®_Hšts +Ð +uwšp +, +æags +, + +5016 +mš_size +, +max_size +, +šü_size +, + +5017 +mš_a¥eù +, +max_a¥eù +, +ba£_size + ); + +5018 + } +} + +5021  + $IÁ”f_Cl›Á_S‘_Geom‘ry_Hšts +Ð +uwšp +, +æags +, + +5022 +tÝ_Ëá +, +size + ) + +5023 +U£rwš + * +uwšp +; + +5024  +æags +; + +5025 +TWPošt + +tÝ_Ëá +; + +5026 +Size + +size +; + +5028 iàÐ + `U£rwš_Is_O³n +Ð +uwšp + ) ) + +5029 + `IÁ”f_Cl›Á_W©ch +( + +5030 + `Mªage_Cl›Á_S‘_Geom‘ry_Hšts +Ð +uwšp +, +æags +, + +5031 +tÝ_Ëá +, +size + ) ) + +5033 + `Mªage_Cl›Á_S‘_Geom‘ry_Hšts +Ð +uwšp +, +æags +, + +5034 +tÝ_Ëá +, +size + ); + +5035 + } +} + +5039  + $IÁ”f_M’u_Red¿w_AÎ +() + +5041 + `Mªage_Red¿w_AÎ +(); + +5042 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5043 + } +} + +5045  + $IÁ”f_M’u_Locksü“n +() + +5047 + `CÚŒÞ_Locksü“n +(); + +5048 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5049 + } +} + +5052  + $IÁ”f_U£r_O³n +() + +5054 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +AUTO_PLACE_ON_MENU_OPEN +) && + +5055 Ð + `U£rGlob®s_G‘_O±iÚ +( +AUTO_PLACE_ON_UNSIZED_OPEN +) || + +5056 + `U£rwš_Sized +Ð +cu¼’t_uwšp + ) ) ) + +5058 { + `IÁ”f_O³n +(); ; } + +5062 ià(! + `IÁ”f_S¹_T¿ckšg +( +Œack_Ý’_tžecursÜ +)) + +5063 { + `IÁ”f_FÏsh_Cªûl +(); ; } + +5064 iàÐ + `U£rwš_Is_IcÚic +( +cu¼’t_uwšp +) ) + +5065 { + `IÁ”f_S¹_IcÚ_O³nšg +(); ; } + +5067 { + `IÁ”f_S¹_O³nšg +(); ; } + +5069 + } +} + +5071  + $IÁ”f_M’u_O³n +Ð +m’u +, +™em + ) + +5072 +TžeM’u + +m’u +; + +5073 +TžeM’uI‹m + +™em +; + +5075 +cu¼’t_uwšp + = ( +U£rwš + *) + `TžeM’u_D©a +( +m’u +, +™em +); + +5076 iàÐ + `U£rwš_Group_Clo£d +Ð +cu¼’t_uwšp + ) ) + +5077 { + `IÁ”f_S¹_Wa™_FÜ_CÚfœm +( +groupmsg +, +IÁ”f_CÚfœmed_Group_O³n +); ; } + +5079 { + `IÁ”f_U£r_O³n +(); ; } + +5080 + } +} + +5083  + $IÁ”f_Profže +Ð +m’u +, +™em + ) + +5084 +TžeM’u + +m’u +; + +5085 +TžeM’uI‹m + +™em +; + +5087 +boÞ + +fÞlows +; + +5088 +fÞlows + = + `U£rGlob®s_G‘_O±iÚ +( +FOCUS_FOLLOWS_CURSOR +); + +5089 + `IÁ”f_W©ch +( + +5090 + `Mªage_Profže +Ð + `TžeM’u_D©a +( +m’u +, +™em +) ) ) + +5091 iàÐ +fÞlows + !ð + `U£rGlob®s_G‘_O±iÚ +( +FOCUS_FOLLOWS_CURSOR +) ) + +5092 (* +swInMod +)(); + +5093 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5094 + } +} + +5097  + $IÁ”f_M’u_Invoke +Ð +m’u +, +™em + ) + +5098 +TžeM’u + +m’u +; + +5099 +TžeM’uI‹m + +™em +; + +5101 + `ToÞ_Invoke +Ð() + `TžeM’u_D©a +( +m’u +, +™em +) ); + +5102 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5103 + } +} + +5106  + $IÁ”f_M’u_PrÜ©e +() + +5108 + `IÁ”f_W©ch +( + +5109 + `Mªage_PrÜ©e +() ) + +5110 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5111 + } +} + +5113  + $IÁ”f_M’u_Fžl +() + +5115 + `IÁ”f_W©ch +( + +5116 + `Mªage_Fžl +() ) + +5117 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5118 + } +} + +5120  + $IÁ”f_M’u_Undo +() + +5122 + `IÁ”f_W©ch +( + +5123 + `Mªage_Undo +() ) + +5124 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5125 + } +} + +5128  + $IÁ”f_M’u_R•ÝuÏ‹_Auto +() + +5130 + `IÁ”f_W©ch +( + +5131 + `Mªage_R•ÝuÏ‹_AÎ +Ð +FALSE +, +TRUE + ) ) + +5132 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5133 + } +} + +5135  + $IÁ”f_M’u_R•ÝuÏ‹_AÎ +() + +5137 + `IÁ”f_W©ch +( + +5138 + `Mªage_R•ÝuÏ‹_AÎ +Ð +FALSE +, FALSE ) ) + +5139 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5140 + } +} + +5142  + $IÁ”f_M’u_R•ÝuÏ‹_La¡ +() + +5144 + `IÁ”f_W©ch +( + +5145 + `Mªage_R•ÝuÏ‹_La¡ +() ) + +5146 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5147 + } +} + +5150  + $IÁ”f_CÚfœmed_Save_Layout +() + +5152 ià(! + `Layout_Save +() ) + +5153 + `D¿wwš_FÏsh +(); + +5154 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5155 + } +} + +5157  + $IÁ”f_M’u_Save_Layout +() + +5159 { + `IÁ”f_S¹_Wa™_FÜ_CÚfœm +Ð +§vemsg +, +IÁ”f_CÚfœmed_Save_Layout + ); ; } + +5160 + } +} + +5162  + $IÁ”f_CÚfœmed_Fšish_Layout +() + +5164 + `IÁ”f_W©ch +( + +5165 + `Mªage_Fšish_Layout +() ); + +5166 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5167 + } +} + +5169  + $IÁ”f_M’u_Fšish_Layout +() + +5171 { + `IÁ”f_S¹_Wa™_FÜ_CÚfœm +Ð +§vemsg +, +IÁ”f_CÚfœmed_Fšish_Layout + ); ; } + +5172 + } +} + +5174  + $IÁ”f_M’u_G’”©e_Layout +Ð +¡½ +, +´oý + ) + +5175 ** +¡½ +; + +5176 +VoidFunc + * +´oý +; + +5178 iàÐ + `Layout_DÚe +() ) + +5180 * +¡½ + = "Save Layout"; + +5181 * +´oý + = +IÁ”f_M’u_Save_Layout +; + +5185 * +¡½ + = "Finish Layout"; + +5186 * +´oý + = +IÁ”f_M’u_Fšish_Layout +; + +5188 + } +} + +5191  + $IÁ”f_M’u_NÙify_AÎ +() + +5193 { + `IÁ”f_S¹_Wa™_FÜ_CÚfœm +Ð +nÙifymsg +, +IÁ”f_CÚfœmed_NÙify_AÎ + ); ; } + } +} + +5195  + $IÁ”f_M’u_Soá_Kžl_AÎ +() + +5197 { + `IÁ”f_S¹_Wa™_FÜ_CÚfœm +Ð +ex™msg +, +IÁ”f_CÚfœmed_Soá_Kžl_AÎ + ); ; } + } +} + +5199  + $IÁ”f_M’u_Ex™ +() + +5201 { + `IÁ”f_S¹_Wa™_FÜ_CÚfœm +Ð +ex™msg +, +IÁ”f_CÚfœmed_Ex™ + ); ; } + +5202 + } +} + +5204  + $IÁ”f_M’u_Pau£ +() + +5206 { + `IÁ”f_S¹_Wa™_FÜ_CÚfœm +Ð +ex™msg +, +IÁ”f_CÚfœmed_Pau£ + ); ; } + +5207 + } +} + +5211  + $IÁ”f_M’u_Red¿w +() + +5213 + `Mªage_Red¿w +( +cu¼’t_uwšp +); + +5214 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5215 + } +} + +5217  + $IÁ”f_M’u_Clo£ +() + +5219 { + `IÁ”f_Clo£ +(); ; } + +5220 + } +} + +5222  + $IÁ”f_M’u_Resize +() + +5224 { + `IÁ”f_S¹_Basšg_Rsz +(); ; } + +5225 + } +} + +5227  + $IÁ”f_M’u_S‘_Size +Ð +m’u +, +™em + ) + +5228 +TžeM’u + +m’u +; + +5229 +TžeM’uI‹m + +™em +; + +5231 +»size_´oc + = ( +BoÞFunc +) + `TžeM’u_D©a +( +m’u +, +™em +); + +5232 { + `IÁ”f_S¹_Basšg_S‘_Size +(); ; } + +5233 + } +} + +5235  + $IÁ”f_M’u_Move +() + +5237 + `IÁ”f_Re£t_M’u_Pos +(); + +5238 { + `IÁ”f_S¹_Movšg +(); ; } + +5239 + } +} + +5241  + $IÁ”f_M’u_R–oÿ‹ +() + +5243 { + `IÁ”f_S¹_R–oÿtšg +(); ; } + +5244 + } +} + +5246  + $IÁ”f_M’u_Exchªge +() + +5248 { + `IÁ”f_S¹_Exchªgšg +(); ; } + +5249 + } +} + +5251  + $IÁ”f_M’u_EƬge +() + +5253 + `IÁ”f_W©ch +( + +5254 + `Mªage_EƬge +( +cu¼’t_uwšp +) ) + +5255 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5256 + } +} + +5258  + $IÁ”f_M’u_Ex·nd +() + +5260 + `IÁ”f_W©ch +( + +5261 + `Mªage_Ex·nd +( +cu¼’t_uwšp +) ) + +5262 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5263 + } +} + +5265  + $IÁ”f_M’u_Desœe +() + +5267 + `IÁ”f_W©ch +( + +5268 + `Mªage_Desœe +( +cu¼’t_uwšp +) ) + +5269 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5270 + } +} + +5272  + $IÁ”f_M’u_Shršk +() + +5274 + `IÁ”f_W©ch +( + +5275 + `Mªage_Shršk +( +cu¼’t_uwšp +) ) + +5276 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5277 + } +} + +5280  + $IÁ”f_M’u_Zoom +() + +5282 + `IÁ”f_W©ch +( + +5283 + `Mªage_Zoom +( +cu¼’t_uwšp +) ) + +5284 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5285 + } +} + +5287  + $IÁ”f_M’u_Unzoom +() + +5289 + `IÁ”f_W©ch +( + +5290 + `Mªage_Unzoom +( +cu¼’t_uwšp +) ) + +5291 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5292 + } +} + +5294  + $IÁ”f_M’u_G’”©e_Zoom +Ð +¡½ +, +´oý + ) + +5295 ** +¡½ +; + +5296 +VoidFunc + * +´oý +; + +5298 iàÐ + `U£rwš_Is_Zoomed +Ð +cu¼’t_uwšp + ) ) + +5300 * +¡½ + = "Unzoom"; + +5301 * +´oý + = +IÁ”f_M’u_Unzoom +; + +5305 * +¡½ + = "Zoom"; + +5306 * +´oý + = +IÁ”f_M’u_Zoom +; + +5308 + } +} + +5311  + $IÁ”f_M’u_G’”©e_T™Ë +Ð +¡½ +, +´oý + ) + +5312 ** +¡½ +; + +5313 +VoidFunc + * +´oý +; + +5315 * +¡½ + = + `U£rwš_T™Ë +Ð +cu¼’t_uwšp + ); + +5316 * +´oý + = +IÁ”f_R“Á”_RegiÚ +; + +5317 + } +} + +5320  +boÞ + + $IÁ”f_M’u_Check_Locked_O³n +() + +5322  ! + `U£rwš_AÎows_Clo£ +Ð +cu¼’t_uwšp + ); + +5323 + } +} + +5325  + $IÁ”f_M’u_ToggË_Locked_O³n +() + +5327 iàÐ + `U£rwš_AÎows_Clo£ +Ð +cu¼’t_uwšp + ) ) + +5328 + `U£rwš_DÚt_Clo£ +( +cu¼’t_uwšp +) + +5330 + `U£rwš_AÎow_Clo£ +( +cu¼’t_uwšp +); + +5331 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5332 + } +} + +5335  +boÞ + + $IÁ”f_M’u_Check_Fixed_Width +() + +5337  ! + `U£rwš_AÎows_Chªge_Width +Ð +cu¼’t_uwšp + ); + +5338 + } +} + +5340  + $IÁ”f_M’u_ToggË_Fixed_Width +() + +5342 iàÐ + `U£rwš_AÎows_Chªge_Width +Ð +cu¼’t_uwšp + ) ) + +5343 + `U£rwš_DÚt_Chªge_Width +( +cu¼’t_uwšp +) + +5345 + `U£rwš_AÎow_Chªge_Width +( +cu¼’t_uwšp +); + +5346 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5347 + } +} + +5350  +boÞ + + $IÁ”f_M’u_Check_Fixed_Height +() + +5352  ! + `U£rwš_AÎows_Chªge_Height +Ð +cu¼’t_uwšp + ); + +5353 + } +} + +5355  + $IÁ”f_M’u_ToggË_Fixed_Height +() + +5357 iàÐ + `U£rwš_AÎows_Chªge_Height +Ð +cu¼’t_uwšp + ) ) + +5358 + `U£rwš_DÚt_Chªge_Height +( +cu¼’t_uwšp +) + +5360 + `U£rwš_AÎow_Chªge_Height +( +cu¼’t_uwšp +); + +5361 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5362 + } +} + +5365  +boÞ + + $IÁ”f_M’u_Check_Fixed_Edges +() + +5367  ! + `U£rwš_AÎows_Chªge +Ð +cu¼’t_uwšp + ); + +5368 + } +} + +5370  + $IÁ”f_M’u_ToggË_Fixed_Edges +() + +5372 iàÐ + `U£rwš_AÎows_Chªge +Ð +cu¼’t_uwšp + ) ) + +5373 + `U£rwš_DÚt_Chªge +( +cu¼’t_uwšp +) + +5375 + `U£rwš_AÎow_Chªge +( +cu¼’t_uwšp +); + +5376 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5377 + } +} + +5380  +boÞ + + $IÁ”f_M’u_Check_T›d_Li¡’” +() + +5382  + `U£rwš_T›d_Li¡’” +Ð +cu¼’t_uwšp + ); + +5383 + } +} + +5385  + $IÁ”f_M’u_ToggË_T›d_Li¡’” +() + +5387 + `IÁ”f_W©ch +( + +5388 + `Mªage_ToggË_Zoom_Lock +( +cu¼’t_uwšp +) ) + +5389 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5390 + } +} + +5393  +boÞ + + $IÁ”f_M’u_Check_T›d_Desœe +() + +5395  + `U£rwš_T›d_Desœe +Ð +cu¼’t_uwšp + ); + +5396 + } +} + +5398  + $IÁ”f_M’u_ToggË_T›d_Desœe +() + +5400 iàÐ + `U£rwš_T›d_Desœe +Ð +cu¼’t_uwšp + ) ) + +5401 + `U£rwš_DÚt_T›_Desœe +( +cu¼’t_uwšp +) + +5403 + `U£rwš_AÎow_T›_Desœe +( +cu¼’t_uwšp +); + +5404 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5405 + } +} + +5409  + $IÁ”f_M’u_Group_Clo£ +() + +5411 iàÐ + `U£rwš_Group_Clo£d +Ð +cu¼’t_uwšp + ) ) + +5413 + `D¿wwš_FÏsh +(); + +5414 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5417 { + `IÁ”f_S¹_Wa™_FÜ_CÚfœm +Ð +groupmsg +, +IÁ”f_CÚfœmed_Group_Clo£ + ); ; } + +5418 + } +} + +5420  + $IÁ”f_M’u_NÙify +() + +5422 { + `IÁ”f_S¹_Wa™_FÜ_CÚfœm +Ð +nÙifymsg +, +IÁ”f_CÚfœmed_NÙify + ); ; } + +5423 + } +} + +5425  + $IÁ”f_M’u_Soá_Kžl +() + +5427 { + `IÁ”f_S¹_Wa™_FÜ_CÚfœm +Ð +soámsg +, +IÁ”f_CÚfœmed_Soá_Kžl + ); ; } + +5428 + } +} + +5430  + $IÁ”f_M’u_D–‘e_Wšdow +() + +5432 { + `IÁ”f_S¹_Wa™_FÜ_CÚfœm +Ð +soámsg +, +IÁ”f_CÚfœmed_D–‘e_Wšdow + ); ; } + +5433 + } +} + +5435  + $IÁ”f_M’u_H¬d_Kžl +() + +5437 { + `IÁ”f_S¹_Wa™_FÜ_CÚfœm +Ð +h¬dmsg +, +IÁ”f_CÚfœmed_H¬d_Kžl + ); ; } + +5438 + } +} + +5442  + $IÁ”f_M’u_IcÚ_Red¿w +() + +5444 + `Mªage_Red¿w +( +cu¼’t_uwšp +); + +5445 { + `IÁ”f_R“Á”_RegiÚ +(); ; } + +5446 + } +} + +5448  + $IÁ”f_M’u_IcÚ_Move +() + +5450 { + `IÁ”f_S¹_IcÚ_Movšg +(); ; } + +5451 + } +} + +5453  + $IÁ”f_M’u_IcÚ_O³n +() + +5455 iàÐ + `U£rwš_Group_Clo£d +Ð +cu¼’t_uwšp + ) ) + +5456 { + `IÁ”f_S¹_Wa™_FÜ_CÚfœm +( +groupmsg +, +IÁ”f_CÚfœmed_Group_O³n +); ; } + +5458 { + `IÁ”f_S¹_O³n_In_IcÚ +(); ; } + +5459 + } +} + +5462  + $IÁ”f_M’u_G’_IcÚ_O³n +Ð +¡½ +, +´oý + ) + +5463 ** +¡½ +; + +5464 +VoidFunc + * +´oý +; + +5466 * +´oý + = +IÁ”f_M’u_IcÚ_O³n +; + +5467 iàÐ + `U£rwš_Group_Clo£d +Ð +cu¼’t_uwšp + ) ) + +5468 * +¡½ + = "Group Open"; + +5470 * +¡½ + = "Open"; + +5471 + } +} + +5474 + $IÁ”f_In™_M’us +() + +5476 +TžeM’uI‹m + +toÞ_™em +; + +5478 +mªag”_toÞ_m’u + = + `TžeM’u_C»©e +(); + +5480 +mªag”_»pÝ_m’u + = + `TžeM’u_C»©e +(); + +5482 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_»pÝ_m’u +, + +5483 "R•ÝuÏ‹ Auto", +IÁ”f_M’u_R•ÝuÏ‹_Auto +, +NULL + ); + +5484 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_»pÝ_m’u +, + +5485 "R•ÝuÏ‹ AÎ", +IÁ”f_M’u_R•ÝuÏ‹_AÎ +, +NULL + ); + +5486 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_»pÝ_m’u +, + +5487 "R•ÝuÏ‹ La¡", +IÁ”f_M’u_R•ÝuÏ‹_La¡ +, +NULL + ); + +5489 +mªag”_background_m’u + = + `TžeM’u_C»©e +(); + +5490 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_background_m’u +, + +5491 "Red¿w AÎ", +IÁ”f_M’u_Red¿w_AÎ +, +NULL + ); + +5492 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_background_m’u +, + +5493 "Lock Sü“n", +IÁ”f_M’u_Locksü“n +, +NULL + ); + +5494 + `Clo£d_In™ +Ð +mªag”_background_m’u +, +IÁ”f_M’u_O³n + ); + +5495 +toÞ_™em + = + `TžeM’u_Aµ’d_Subm’u +Ð +mªag”_background_m’u +, + +5496 "ToÞs", +mªag”_toÞ_m’u + ); + +5497 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_background_m’u +, + +5498 "PrÜ©e", +IÁ”f_M’u_PrÜ©e +, +NULL + ); + +5499 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_background_m’u +, + +5500 "Fžl", +IÁ”f_M’u_Fžl +, +NULL + ); + +5501 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_background_m’u +, + +5502 "Undo", +IÁ”f_M’u_Undo +, +NULL + ); + +5503 + `TžeM’u_Aµ’d_Subm’u +Ð +mªag”_background_m’u +, + +5504 "R•ÝuÏ‹", +mªag”_»pÝ_m’u + ); + +5505 + `Profže_In™ +Ð +mªag”_background_m’u +, +IÁ”f_Profže + ); + +5506 + `TžeM’u_Aµ’d_C®lback +Ð +mªag”_background_m’u +, + +5507 +IÁ”f_M’u_G’”©e_Layout + ); + +5508 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_background_m’u +, + +5509 "NÙify AÎ", +IÁ”f_M’u_NÙify_AÎ +, +NULL + ); + +5510 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_background_m’u +, + +5511 "Soá KžÈAÎ", +IÁ”f_M’u_Soá_Kžl_AÎ +, +NULL + ); + +5512 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_background_m’u +, + +5513 "H¬d Ex™", +IÁ”f_M’u_Ex™ +, +NULL + ); + +5514 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_background_m’u +, + +5515 "D‘ach Mªag”", +IÁ”f_M’u_Pau£ +, +NULL + ); + +5517 ià(! + `ToÞ_In™ +Ð +mªag”_toÞ_m’u +, +IÁ”f_M’u_Invoke + ) ) + +5518 + `TžeM’u_IÇùiv©e_EÁry +Ð +mªag”_background_m’u +, +toÞ_™em + ); + +5520 +mªag”_size_m’u + = + `TžeM’u_C»©e +(); + +5521 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_size_m’u +, + +5522 "NÜm® Mš", +IÁ”f_M’u_S‘_Size +, + +5523 ( +poš‹r +) +Mªage_S‘_ReguÏr_Mš_Size + ); + +5524 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_size_m’u +, + +5525 "NÜm® Desœed", +IÁ”f_M’u_S‘_Size +, + +5526 ( +poš‹r +) +Mªage_S‘_ReguÏr_Desœed_Size + ); + +5527 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_size_m’u +, + +5528 "Zoom Mš", +IÁ”f_M’u_S‘_Size +, + +5529 ( +poš‹r +) +Mªage_S‘_Zoom_Mš_Size + ); + +5530 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_size_m’u +, + +5531 "Zoom Desœed", +IÁ”f_M’u_S‘_Size +, + +5532 ( +poš‹r +) +Mªage_S‘_Zoom_Desœed_Size + ); + +5533 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_size_m’u +, + +5534 "Max", +IÁ”f_M’u_S‘_Size +, + +5535 ( +poš‹r +) +Mªage_S‘_Max_Size + ); + +5537 +mªag”_wšdow_ÝtiÚ_m’u + = + `TžeM’u_C»©e +(); + +5538 + `TžeM’u_Aµ’d_Checkback +Ð +mªag”_wšdow_ÝtiÚ_m’u +, + +5539 "Locked O³n", +IÁ”f_M’u_Check_Locked_O³n +, + +5540 +IÁ”f_M’u_ToggË_Locked_O³n + ); + +5541 + `TžeM’u_Aµ’d_Checkback +Ð +mªag”_wšdow_ÝtiÚ_m’u +, + +5542 "Fixed Width", +IÁ”f_M’u_Check_Fixed_Width +, + +5543 +IÁ”f_M’u_ToggË_Fixed_Width + ); + +5544 + `TžeM’u_Aµ’d_Checkback +Ð +mªag”_wšdow_ÝtiÚ_m’u +, + +5545 "Fixed Height", +IÁ”f_M’u_Check_Fixed_Height +, + +5546 +IÁ”f_M’u_ToggË_Fixed_Height + ); + +5547 + `TžeM’u_Aµ’d_Checkback +Ð +mªag”_wšdow_ÝtiÚ_m’u +, + +5548 "Fixed Edges", +IÁ”f_M’u_Check_Fixed_Edges +, + +5549 +IÁ”f_M’u_ToggË_Fixed_Edges + ); + +5550 + `TžeM’u_Aµ’d_Checkback +Ð +mªag”_wšdow_ÝtiÚ_m’u +, + +5551 "Li¡’” T›d TØZoom", +IÁ”f_M’u_Check_T›d_Li¡’” +, + +5552 +IÁ”f_M’u_ToggË_T›d_Li¡’” + ); + +5553 + `TžeM’u_Aµ’d_Checkback +Ð +mªag”_wšdow_ÝtiÚ_m’u +, + +5554 "Zoom T›d TØDesœe", +IÁ”f_M’u_Check_T›d_Desœe +, + +5555 +IÁ”f_M’u_ToggË_T›d_Desœe + ); + +5557 +mªag”_t™Ë_m’u + = + `TžeM’u_C»©e +(); + +5558 + `TžeM’u_Aµ’d_C®lback +Ð +mªag”_t™Ë_m’u +, + +5559 +IÁ”f_M’u_G’”©e_T™Ë + ); + +5561 +mªag”_wšdow_m’u + = + `TžeM’u_C»©e +(); + +5562 + `TžeM’u_Aµ’d_Subm’u +Ð +mªag”_wšdow_m’u +, + +5563 "T™Ë", +mªag”_t™Ë_m’u + ); + +5564 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_wšdow_m’u +, + +5565 "Red¿w", +IÁ”f_M’u_Red¿w +, +NULL + ); + +5566 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +INCL_BGRND_MENU_IN_WINDOW_MENU +) ) + +5567 + `TžeM’u_Aµ’d_Subm’u +Ð +mªag”_wšdow_m’u +, + +5568 "Mªag”", +mªag”_background_m’u + ); + +5569 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_wšdow_m’u +, + +5570 "Clo£", +IÁ”f_M’u_Clo£ +, +NULL + ); + +5571 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_wšdow_m’u +, + +5572 "Grou°Clo£", +IÁ”f_M’u_Group_Clo£ +, +NULL + ); + +5573 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_wšdow_m’u +, + +5574 "Resize", +IÁ”f_M’u_Resize +, +NULL + ); + +5575 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_wšdow_m’u +, + +5576 "R–oÿ‹", +IÁ”f_M’u_R–oÿ‹ +, +NULL + ); + +5577 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_wšdow_m’u +, + +5578 "Move", +IÁ”f_M’u_Move +, +NULL + ); + +5579 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_wšdow_m’u +, + +5580 "Exchªge", +IÁ”f_M’u_Exchªge +, +NULL + ); + +5581 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_wšdow_m’u +, + +5582 "Ex·nd", +IÁ”f_M’u_Ex·nd +, +NULL + ); + +5583 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_wšdow_m’u +, + +5584 "Desœe", +IÁ”f_M’u_Desœe +, +NULL + ); + +5585 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_wšdow_m’u +, + +5586 "Shršk", +IÁ”f_M’u_Shršk +, +NULL + ); + +5587 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_wšdow_m’u +, + +5588 "EƬge", +IÁ”f_M’u_EƬge +, +NULL + ); + +5589 + `TžeM’u_Aµ’d_C®lback +Ð +mªag”_wšdow_m’u +, + +5590 +IÁ”f_M’u_G’”©e_Zoom + ); + +5591 + `TžeM’u_Aµ’d_Subm’u +Ð +mªag”_wšdow_m’u +, + +5592 "S‘ Size", +mªag”_size_m’u + ); + +5593 + `TžeM’u_Aµ’d_Subm’u +Ð +mªag”_wšdow_m’u +, + +5594 "O±iÚs", +mªag”_wšdow_ÝtiÚ_m’u + ); + +5595 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_wšdow_m’u +, + +5596 "NÙify", +IÁ”f_M’u_NÙify +, +NULL + ); + +5597 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_wšdow_m’u +, + +5598 "Soá Kžl", +IÁ”f_M’u_Soá_Kžl +, +NULL + ); + +5599 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_wšdow_m’u +, + +5600 "H¬d Kžl", +IÁ”f_M’u_H¬d_Kžl +, +NULL + ); + +5602 +mªag”_icÚ_m’u + = + `TžeM’u_C»©e +(); + +5603 + `TžeM’u_Aµ’d_Subm’u +Ð +mªag”_icÚ_m’u +, + +5604 "T™Ë", +mªag”_t™Ë_m’u + ); + +5605 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_icÚ_m’u +, + +5606 "Red¿w", +IÁ”f_M’u_IcÚ_Red¿w +, +NULL + ); + +5607 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +INCL_BGRND_MENU_IN_WINDOW_MENU +) ) + +5608 + `TžeM’u_Aµ’d_Subm’u +Ð +mªag”_icÚ_m’u +, + +5609 "Mªag”", +mªag”_background_m’u + ); + +5610 + `TžeM’u_Aµ’d_C®lback +Ð +mªag”_icÚ_m’u +, + +5611 +IÁ”f_M’u_G’_IcÚ_O³n + ); + +5612 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_icÚ_m’u +, + +5613 "Grou°Clo£", +IÁ”f_M’u_Group_Clo£ +, +NULL + ); + +5614 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_icÚ_m’u +, + +5615 "Move", +IÁ”f_M’u_IcÚ_Move +, +NULL + ); + +5616 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_icÚ_m’u +, + +5617 "Exchªge", +IÁ”f_M’u_Exchªge +, +NULL + ); + +5618 + `TžeM’u_Aµ’d_Subm’u +Ð +mªag”_icÚ_m’u +, + +5619 "O±iÚs", +mªag”_wšdow_ÝtiÚ_m’u + ); + +5620 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_icÚ_m’u +, + +5621 "NÙify", +IÁ”f_M’u_NÙify +, +NULL + ); + +5622 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_icÚ_m’u +, + +5623 "Soá Kžl", +IÁ”f_M’u_Soá_Kžl +, +NULL + ); + +5624 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_icÚ_m’u +, + +5625 "H¬d Kžl", +IÁ”f_M’u_H¬d_Kžl +, +NULL + ); + +5626 + } +} + +5629  + $IÁ”f_In™ +() + +5631  + `IÁ”f_In™_Bu‰Ús +(); + +5632  + `O³n_In™ +(); + +5634 + `O³n_In™ +(); + +5635 + `TžeCursÜ_In™ +(); + +5636 + `IÁ”f_In™_Bu‰Ús +(); + +5637 + `IÁ”f_In™_M’us +(); + +5638 + `IÁ”f_Click +(); + +5639 + } +} + +5642  + $IÁ”f_Re£t +() + +5644 + `IÁ”f_EÁ”_RegiÚ +(); + +5645 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +FOCUS_FOLLOWS_CURSOR +) ) + +5646 + `IÁ”f_Have_L¢r +(); + +5648 + `IÁ”f_Am_Clk_L¢r +(); + +5649 + } +} + + @interf.h + +28  +IÁ”f_In™ +(); + +29  +IÁ”f_Re£t +(); + +31  +IÁ”f_EÇbË_IÅut +(); + +32  +IÁ”f_Di§bË_IÅut +(); + +34  +IÁ”f_Cl›Á_O³n +(); + +35  +IÁ”f_Cl›Á_IcÚ_O³n +(); + +36  +IÁ”f_Cl›Á_Clo£ +(); + +37  +IÁ”f_Cl›Á_IcÚ_Clo£ +(); + +38  +IÁ”f_Cl›Á_NÙe_Ouut +(); + +39  +IÁ”f_Cl›Á_S‘_S‹ +(); + +40  +IÁ”f_Cl›Á_S‘_Group +(); + +41  +IÁ”f_Cl›Á_S‘_IcÚ_Size +(); + +42  +IÁ”f_Cl›Á_S‘_IcÚ_Pos™iÚ +(); + +44  +IÁ”f_Cl›Á_S¹up +(); + +45  +IÁ”f_Cl›Á_S‘_Commªd +(); + +46  +IÁ”f_Cl›Á_De¡roy +(); + +47  +IÁ”f_Cl›Á_CÚfigu» +(); + +48  +IÁ”f_Cl›Á_Re£t_Mš_Max +(); + +49  +IÁ”f_Cl›Á_S‘_NÜm®_Hšts +(); + +50  +IÁ”f_Cl›Á_S‘_Geom‘ry_Hšts +(); + +52  +IÁ”f_HªdË_FocusIn +(); + + @interf_in.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)interf_in.c 5.2 9/1/88"; + +31  + #LEFT_BUTTON + 0x1 + + ) + +32  + #MIDDLE_BUTTON + 0x2 + + ) + +33  + #RIGHT_BUTTON + 0x4 + + ) + +35  + #NOT_LEFT_BUTTON + 0x6 + + ) + +36  + #NOT_MIDDLE_BUTTON + 0x5 + + ) + +37  + #NOT_RIGHT_BUTTON + 0x3 + + ) + +39  + #ANY_BUTTON + 0x7 + + ) + +41  + #NOT_BUTTONS +( +but +èÐ7 - (butè) + + ) + +45  + #DISALLOWED + 0x000 + + ) + +47  + #NONE_SHIFT_CTRL + 0x100 + + ) + +48  + #JUST_SHIFT + 0x200 + + ) + +49  + #NOT_CTRL + 0x300 + + ) + +50  + #JUST_CTRL + 0x400 + + ) + +51  + #NOT_SHIFT + 0x500 + + ) + +52  + #JUST_ONE_SHIFT_CTRL + 0x600 + + ) + +53  + #NOT_BOTH_SHIFT_CTRL + 0x700 + + ) + +55  + #BOTH_SHIFT_CTRL + 0x800 + + ) + +56  + #NOT_JUST_ONE_SHIFT_CTRL + 0x900 + + ) + +57  + #HAS_SHIFT + 0xa00 + + ) + +58  + #NOT_JUST_CTRL + 0xb00 + + ) + +59  + #HAS_CTRL + 0xc00 + + ) + +60  + #NOT_JUST_SHIFT + 0xd00 + + ) + +61  + #SOME_SHIFT_CTRL + 0xe00 + + ) + +63  + #DONT_CARE + 0xf00 + + ) + +67  +TOOL_BUTTONS +; + +68  +DISCONNECT_BUTTONS +; + +69  +EXIT_BUTTONS +; + +70  +BODY_MANAGER_MENU_BUTTONS +; + +71  +BODY_USER_MENU_BUTTONS +; + +72  +HEADER_MANAGER_MENU_BUTTONS +; + +73  +HEADER_USER_MENU_BUTTONS +; + +74  +ICON_OPEN_BUTTONS +; + +75  +ICON_MOVE_BUTTONS +; + +76  +CLOSE_BUTTONS +; + +77  +REDRAW_BUTTONS +; + +78  +ZOOM_BUTTONS +; + +79  +DESIRE_BUTTONS +; + +80  +ENLARGE_BUTTONS +; + +81  +MOVE_BUTTONS +; + +82  +RELOCATE_BUTTONS +; + +83  +EXCHANGE_BUTTONS +; + +84  +RESIZE_BUTTONS +; + +85  +TOGGLE_GRAVITY_BUTTONS +; + +86  +CANCEL_BUTTONS +; + +87  +UNDESIRE_BUTTONS +; + +88  +FORCE_RESET_MIN_MAX_BUTTONS +; + +89  +FORCE_LISTENER_BUTTONS +; + +90  +FORCE_ZOOM_BUTTONS +; + +92  + $IÁ”f_In™_Bu‰Ús +() + +94  +m’u_bu‰Ú +, +move_bu‰Ú +, +size_bu‰Ú +; + +96 +m’u_bu‰Ú + = +RIGHT_BUTTON +; + +97 +move_bu‰Ú + = +MIDDLE_BUTTON +; + +98 +size_bu‰Ú + = +LEFT_BUTTON +; + +101 +DESIRE_BUTTONS + = +size_bu‰Ú + | +NONE_SHIFT_CTRL +; + +102 +ZOOM_BUTTONS + = +size_bu‰Ú + | +JUST_SHIFT +; + +103 +ENLARGE_BUTTONS + = +size_bu‰Ú + | +JUST_CTRL +; + +105 +ICON_OPEN_BUTTONS + = +size_bu‰Ú + | +NONE_SHIFT_CTRL +; + +107 +RESIZE_BUTTONS + = +size_bu‰Ú + | +NOT_CTRL +; + +109 +TOGGLE_GRAVITY_BUTTONS + = +ANY_BUTTON + | +JUST_SHIFT +; + +110 +FORCE_RESET_MIN_MAX_BUTTONS + = +ANY_BUTTON + | +JUST_SHIFT +; + +111 +UNDESIRE_BUTTONS + = +ANY_BUTTON + | +JUST_CTRL +; + +112 +FORCE_LISTENER_BUTTONS + = +ANY_BUTTON + | +HAS_SHIFT +; + +113 +FORCE_ZOOM_BUTTONS + = +ANY_BUTTON + | +HAS_CTRL +; + +114 +TOOL_BUTTONS + = +ANY_BUTTON + | +DISALLOWED +; + +117 +RELOCATE_BUTTONS + = +move_bu‰Ú + | +NONE_SHIFT_CTRL +; + +118 +EXCHANGE_BUTTONS + = +move_bu‰Ú + | +JUST_CTRL +; + +119 +MOVE_BUTTONS + = +move_bu‰Ú + | +NOT_CTRL +; + +120 +ICON_MOVE_BUTTONS + = +move_bu‰Ú + | +NOT_CTRL +; + +123 +CANCEL_BUTTONS + = +m’u_bu‰Ú + | +DONT_CARE +; + +124 +CLOSE_BUTTONS + = +m’u_bu‰Ú + | +BOTH_SHIFT_CTRL +; + +125 +EXIT_BUTTONS + = +m’u_bu‰Ú + | +DISALLOWED +; + +126 +DISCONNECT_BUTTONS + = +m’u_bu‰Ú + | +BOTH_SHIFT_CTRL +; + +129 +REDRAW_BUTTONS + = + `NOT_BUTTONS +Ð +m’u_bu‰Ú + ) | +BOTH_SHIFT_CTRL +; + +132 +HEADER_MANAGER_MENU_BUTTONS + = +m’u_bu‰Ú + | +NONE_SHIFT_CTRL +; + +136 +HEADER_USER_MENU_BUTTONS + = +m’u_bu‰Ú + | +JUST_ONE_SHIFT_CTRL +; + +137 +BODY_USER_MENU_BUTTONS + = +m’u_bu‰Ú + | +NONE_SHIFT_CTRL +; + +138 +BODY_MANAGER_MENU_BUTTONS + = +m’u_bu‰Ú + | +JUST_ONE_SHIFT_CTRL +; + +139 + } +} + + @interf_in1.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)interf_in1.c 5.3 9/1/88"; + +31  + #LEFT_BUTTON + 0x1 + + ) + +32  + #MIDDLE_BUTTON + 0x2 + + ) + +33  + #RIGHT_BUTTON + 0x4 + + ) + +35  + #NOT_LEFT_BUTTON + 0x6 + + ) + +36  + #NOT_MIDDLE_BUTTON + 0x5 + + ) + +37  + #NOT_RIGHT_BUTTON + 0x3 + + ) + +39  + #ANY_BUTTON + 0x7 + + ) + +41  + #NOT_BUTTONS +( +but +èÐ7 - (butè) + + ) + +45  + #DISALLOWED + 0x000; + + ) + +47  + #NONE_SHIFT_CTRL + 0x100 + + ) + +48  + #JUST_SHIFT + 0x200 + + ) + +49  + #NOT_CTRL + 0x300 + + ) + +50  + #JUST_CTRL + 0x400 + + ) + +51  + #NOT_SHIFT + 0x500 + + ) + +52  + #JUST_ONE_SHIFT_CTRL + 0x600 + + ) + +53  + #NOT_BOTH_SHIFT_CTRL + 0x700 + + ) + +55  + #BOTH_SHIFT_CTRL + 0x800 + + ) + +56  + #NOT_JUST_ONE_SHIFT_CTRL + 0x900 + + ) + +57  + #HAS_SHIFT + 0xa00 + + ) + +58  + #NOT_JUST_CTRL + 0xb00 + + ) + +59  + #HAS_CTRL + 0xc00 + + ) + +60  + #NOT_JUST_SHIFT + 0xd00 + + ) + +61  + #SOME_SHIFT_CTRL + 0xe00 + + ) + +63  + #DONT_CARE + 0xf00 + + ) + +67  +TOOL_BUTTONS +; + +68  +DISCONNECT_BUTTONS +; + +69  +EXIT_BUTTONS +; + +70  +BODY_MANAGER_MENU_BUTTONS +; + +71  +BODY_USER_MENU_BUTTONS +; + +72  +HEADER_MANAGER_MENU_BUTTONS +; + +73  +HEADER_USER_MENU_BUTTONS +; + +74  +ICON_OPEN_BUTTONS +; + +75  +ICON_MOVE_BUTTONS +; + +76  +CLOSE_BUTTONS +; + +77  +REDRAW_BUTTONS +; + +78  +ZOOM_BUTTONS +; + +79  +ZOOM_LOCK_BUTTONS +; + +80  +DESIRE_BUTTONS +; + +81  +ENLARGE_BUTTONS +; + +82  +MOVE_BUTTONS +; + +83  +RELOCATE_BUTTONS +; + +84  +EXCHANGE_BUTTONS +; + +85  +RESIZE_BUTTONS +; + +86  +TOGGLE_GRAVITY_BUTTONS +; + +87  +CANCEL_BUTTONS +; + +88  +UNDESIRE_BUTTONS +; + +89  +FORCE_RESET_MIN_MAX_BUTTONS +; + +90  +FORCE_LISTENER_BUTTONS +; + +91  +FORCE_ZOOM_BUTTONS +; + +93  + $IÁ”f_In™_Bu‰Ús +() + +96 +DESIRE_BUTTONS + = +ANY_BUTTON + | +NONE_SHIFT_CTRL +; + +97 +ZOOM_BUTTONS + = +ANY_BUTTON + | +JUST_SHIFT +; + +98 +ENLARGE_BUTTONS + = +ANY_BUTTON + | +JUST_CTRL +; + +100 +ICON_OPEN_BUTTONS + = +ANY_BUTTON + | +NONE_SHIFT_CTRL +; + +102 +RESIZE_BUTTONS + = +ANY_BUTTON + | +NOT_SHIFT +; + +104 +TOGGLE_GRAVITY_BUTTONS + = +ANY_BUTTON + | +JUST_CTRL +; + +105 +FORCE_RESET_MIN_MAX_BUTTONS + = +ANY_BUTTON + | +JUST_SHIFT +; + +106 +UNDESIRE_BUTTONS + = +ANY_BUTTON + | +JUST_CTRL +; + +107 +FORCE_LISTENER_BUTTONS + = +ANY_BUTTON + | +HAS_SHIFT +; + +108 +FORCE_ZOOM_BUTTONS + = +ANY_BUTTON + | +HAS_CTRL +; + +109 +TOOL_BUTTONS + = +ANY_BUTTON + | +DISALLOWED +; + +111 +RELOCATE_BUTTONS + = +ANY_BUTTON + | +NONE_SHIFT_CTRL +; + +112 +EXCHANGE_BUTTONS + = +ANY_BUTTON + | +JUST_CTRL +; + +113 +MOVE_BUTTONS + = +ANY_BUTTON + | +JUST_SHIFT +; + +114 +ICON_MOVE_BUTTONS + = +ANY_BUTTON + | +JUST_SHIFT +; + +116 +CANCEL_BUTTONS + = +ANY_BUTTON + | +BOTH_SHIFT_CTRL +; + +117 +CLOSE_BUTTONS + = +ANY_BUTTON + | +BOTH_SHIFT_CTRL +; + +118 +EXIT_BUTTONS + = +ANY_BUTTON + | +DISALLOWED +; + +119 +DISCONNECT_BUTTONS + = +ANY_BUTTON + | +BOTH_SHIFT_CTRL +; + +121 +REDRAW_BUTTONS + = +ANY_BUTTON + | +BOTH_SHIFT_CTRL +; + +123 +HEADER_MANAGER_MENU_BUTTONS + = +ANY_BUTTON + | +NOT_JUST_ONE_SHIFT_CTRL +; + +124 + } +} + + @layout.c + +23  + ~"cÝyright.h +" + +25  + ~<¡dio.h +> + +27  + ~"ba£ty³.h +" + +29  + ~"d¿w.h +" + +31  + ~"twšD.h +" + +32  + ~"twš.h +" + +33  + ~"uwšD.h +" + +35 +FILE +* +O³n_R—d +(); + +36 +FILE +* +O³n_Wr™e +(); + +38  +poš‹r + + tLayou +; + +39  + #LAYOUT_NULL + ( +Layout + *) +NULL + + + ) + +43  + #¡ºuÎýy +Ð +¡r1 +, +¡r2 + ) \ + +45 +¡r2 +[ + `¡¾’ +(¡r2)-1] = +NULL +; \ + +46 + `¡rýy +Ð +¡r1 +, +¡r2 + ); \ + +47 } + + ) + +51  + gunm©ched_Ïyouts + = 0; + +53  + gho¡¡r +[128]; + +54  + g´eã»nû_¡r +[128]; + +55 * + g´eã»nû_fže +; + +56  +FILE + * + gÏyout_¡»am +; + +60  +Ïyout + + tLayout +; + +62  + sÏyout + + +64 +Layout + * + mÃxt +; + +65 +boÞ + + mfound +; + +67  + m»s_þass +[128]; + +68  + m»s_Çme +[128]; + +69  + mho¡Çme +[128]; + +70  + mid’t™y +[128]; + +71  + mcommªd +[128]; + +73 +boÞ + + mÝ’ +; + +74 +Size + + msiz +; + +75 +TWPošt + + mûÁ” +; + +76 +TWPošt + + micÚ_ûÁ” +; + +78 +boÞ + + mzoomed +; + +79 +Size + + m»guÏr_size +; + +80 +Size + + m»guÏr_mš +; + +81 +Size + + mzoom_size +; + +82 +Size + + mzoom_mš +; + +83 +Size + + mmax_size +; + +85 +TWReùªgË + + m»zoom_»ù +; + +87 +boÞ + + mpos™iÚed +; + +89 +boÞ + + mex¶ic™_fixed_com¶‘–y +; + +90 +boÞ + + mex¶ic™_fixed_height +; + +91 +boÞ + + mex¶ic™_fixed_width +; + +92 +boÞ + + mex¶ic™_»quœe_mªu®_þo£ +; + +93 +boÞ + + mex¶ic™_li¡’”_t›d_to_zoom +; + +94 +boÞ + + mex¶ic™_zoom_t›d_to_desœe +; + +96 +boÞ + + mfixed_com¶‘–y +; + +97 +boÞ + + mfixed_height +; + +98 +boÞ + + mfixed_width +; + +99 +boÞ + + m»quœe_mªu®_þo£ +; + +100 +boÞ + + mli¡’”_t›d_to_zoom +; + +101 +boÞ + + mzoom_t›d_to_desœe +; + +104  +Layout + * + gÏyout_h—d +, * + gÏyout_ž +; + +108  + $Layout_Sÿn_V®ues +Ð +Ïyou +, +¡r + ) + +109 * +¡r +; + +110 +Layout + * +Ïyou +; + +112 + `ssÿnf +Ð +¡r +, + +114 &( +Ïyou +-> +Ý’ +), + +115 &( +Ïyou +-> +siz +. +width +), + +116 &( +Ïyou +-> +siz +. +height +), + +117 &( +Ïyou +-> +ûÁ” +. +x +), + +118 &( +Ïyou +-> +ûÁ” +. +y +), + +119 &( +Ïyou +-> +icÚ_ûÁ” +. +x +), + +120 &( +Ïyou +-> +icÚ_ûÁ” +. +y +), + +121 &( +Ïyou +-> +zoomed +), + +122 &( +Ïyou +-> +»guÏr_size +. +width +), + +123 &( +Ïyou +-> +»guÏr_size +. +height +), + +124 &( +Ïyou +-> +»guÏr_mš +. +width +), + +125 &( +Ïyou +-> +»guÏr_mš +. +height +), + +126 &( +Ïyou +-> +zoom_size +. +width +), + +127 &( +Ïyou +-> +zoom_size +. +height +), + +128 &( +Ïyou +-> +zoom_mš +. +width +), + +129 &( +Ïyou +-> +zoom_mš +. +height +), + +130 &( +Ïyou +-> +max_size +. +width +), + +131 &( +Ïyou +-> +max_size +. +height +), + +132 &( +Ïyou +-> +»zoom_»ù +. +Ëá_x +), + +133 &( +Ïyou +-> +»zoom_»ù +. +right_x +), + +134 &( +Ïyou +-> +»zoom_»ù +. +tÝ_y +), + +135 &( +Ïyou +-> +»zoom_»ù +. +bÙtom_y +), + +136 &( +Ïyou +-> +pos™iÚed +) ); + +137 + } +} + +141  + $Layout_Sÿn_O±iÚs +Ð +Ïyou +, +¡r + ) + +142 * +¡r +; + +143 +Layout + * +Ïyou +; + +145  +sÿÂed +; + +147 +sÿÂed + = + `ssÿnf +Ð +¡r +, + +149 &( +Ïyou +-> +ex¶ic™_»quœe_mªu®_þo£ +), + +150 &( +Ïyou +-> +»quœe_mªu®_þo£ +), + +151 &( +Ïyou +-> +ex¶ic™_fixed_width +), + +152 &( +Ïyou +-> +fixed_width +), + +153 &( +Ïyou +-> +ex¶ic™_fixed_height +), + +154 &( +Ïyou +-> +fixed_height +), + +155 &( +Ïyou +-> +ex¶ic™_fixed_com¶‘–y +), + +156 &( +Ïyou +-> +fixed_com¶‘–y +), + +157 &( +Ïyou +-> +ex¶ic™_li¡’”_t›d_to_zoom +), + +158 &( +Ïyou +-> +li¡’”_t›d_to_zoom +), + +159 &( +Ïyou +-> +ex¶ic™_zoom_t›d_to_desœe +), + +160 &( +Ïyou +-> +zoom_t›d_to_desœe +) ); + +162 iàÐ +sÿÂed + < 12 ) + +164 +Ïyou +-> +ex¶ic™_zoom_t›d_to_desœe + = +FALSE +; + +165 + `ssÿnf +Ð +¡r +, + +167 &( +Ïyou +-> +ex¶ic™_li¡’”_t›d_to_zoom +), + +168 &( +Ïyou +-> +ex¶ic™_fixed_com¶‘–y +), + +169 &( +Ïyou +-> +ex¶ic™_fixed_height +), + +170 &( +Ïyou +-> +ex¶ic™_fixed_width +), + +171 &( +Ïyou +-> +ex¶ic™_»quœe_mªu®_þo£ +), + +172 &( +Ïyou +-> +li¡’”_t›d_to_zoom +), + +173 &( +Ïyou +-> +fixed_com¶‘–y +), + +174 &( +Ïyou +-> +fixed_height +), + +175 &( +Ïyou +-> +fixed_width +), + +176 &( +Ïyou +-> +»quœe_mªu®_þo£ +) ); + +178 + } +} + +182  + $Layout_Upd©e +Ð +fžÇm + ) + +183 * +fžÇm +; + +185 iàÐ +fžÇm + =ð +NULL + ) + +186 +´eã»nû_fže + = +NULL +; + +189 (è + `¡rýy +Ð +´eã»nû_¡r +, +fžÇm + ); + +190 +´eã»nû_fže + = +´eã»nû_¡r +; + +192 + } +} + +196 * + $Layout_In™ +() + +198  +¡r +[256]; + +200 + `g‘ho¡Çme +Ð +ho¡¡r +, 128 ); + +202 +´eã»nû_fže + = +NULL +; + +204 +Ïyout_ž + = +Ïyout_h—d + = +LAYOUT_NULL +; + +206 +Ïyout_¡»am + = + `O³n_R—d +( ".rtl.layout" ); + +207 iàÐ +Ïyout_¡»am + =ð +NULL + ) + +208  +NULL +; + +210 + `fg‘s +Ð +¡r +, 128, +Ïyout_¡»am + ); + +212 + `fg‘s +Ð +¡r +, 128, +Ïyout_¡»am + ); + +213 + `ssÿnf +Ð +¡r +, "%s", +´eã»nû_¡r + ); + +214 iàÐ + `¡¾’ +( +´eã»nû_¡r +) != 0 ) + +215 +´eã»nû_fže + = +´eã»nû_¡r +; + +217  +´eã»nû_fže +; + +218 + } +} + +222  + $Layout_R—d +() + +224  +¡r +[256]; + +225 +Layout + * +Ïyou +; + +226  +wid +, +ht +; + +228 iàÐ +Ïyout_¡»am + =ð +NULL + ) + +231 + `fg‘s +Ð +¡r +, 128, +Ïyout_¡»am + ); + +232 iàÐ + `ssÿnf +Ð +¡r +, "%d %d", & +wid +, & +ht + ) == 2 ) + +234 + `U£rGlob®s_S‘_V®ue +Ð +RTL_WIDTH +, +wid + ); + +235 + `U£rGlob®s_S‘_V®ue +Ð +RTL_HEIGHT +, +ht + ); + +238  + `fg‘s +Ð +¡r +, 256, +Ïyout_¡»am + ) !ð +NULL + ) + +240 +unm©ched_Ïyouts +++; + +241 +Ïyou + = + `®loÿ‹ +Ð +Layout +, 1 ); + +242 +Ïyou +-> +found + = +FALSE +; + +244 + `fg‘s +Ð +¡r +, 256, +Ïyout_¡»am + ); + +245 + `¡ºuÎýy +Ð +Ïyou +-> +»s_þass +, +¡r + ); + +247 + `fg‘s +Ð +¡r +, 256, +Ïyout_¡»am + ); + +248 + `¡ºuÎýy +Ð +Ïyou +-> +»s_Çme +, +¡r + ); + +250 + `fg‘s +Ð +¡r +, 256, +Ïyout_¡»am + ); + +251 + `¡ºuÎýy +Ð +Ïyou +-> +ho¡Çme +, +¡r + ); + +253 + `fg‘s +Ð +¡r +, 256, +Ïyout_¡»am + ); + +254 + `¡ºuÎýy +Ð +Ïyou +-> +id’t™y +, +¡r + ); + +256 + `fg‘s +Ð +¡r +, 256, +Ïyout_¡»am + ); + +257 + `¡ºuÎýy +Ð +Ïyou +-> +commªd +, +¡r + ); + +259 + `fg‘s +Ð +¡r +, 256, +Ïyout_¡»am + ); + +260 + `Layout_Sÿn_V®ues +Ð +Ïyou +, +¡r + ); + +261 + `fg‘s +Ð +¡r +, 256, +Ïyout_¡»am + ); + +262 + `Layout_Sÿn_O±iÚs +Ð +Ïyou +, +¡r + ); + +264 iàÐ +Ïyout_ž + =ð +LAYOUT_NULL + ) + +265 +Ïyout_h—d + = +Ïyou +; + +267 +Ïyout_ž +-> +Ãxt + = +Ïyou +; + +268 +Ïyout_ž + = +Ïyou +; + +269 +Ïyou +-> +Ãxt + = +LAYOUT_NULL +; + +271 + `fþo£ + ( +Ïyout_¡»am + ); + +272 + } +} + +276 +Layou + + $Layout_Fšd +Ð +uwšp + ) + +277 +U£rwš + * +uwšp +; + +279 +Layout + * +Ïyou +; + +280 +boÞ + +§me +; + +282 iàÐ +unm©ched_Ïyouts + <= 0 ) + +283  ( +Layou +) +LAYOUT_NULL +; + +285 iàÐ( +uwšp +-> +»s_þass + =ð +NULL +è&& (uwšp-> +»s_Çme + == NULL) ) + +286  ( +Layou +) +LAYOUT_NULL +; + +290  +Ïyou + = +Ïyout_h—d +;†ayou !ð +LAYOUT_NULL +; + +291 +Ïyou + =†ayou-> +Ãxt + ) + +294 +§me + = + `¡»ql +Ð +uwšp +-> +ho¡Çme +, +Ïyou +->hostname ) && + +295 + `¡»ql +Ð +uwšp +-> +»s_þass +, +Ïyou +->res_class ) && + +296 + `¡»ql +Ð +uwšp +-> +»s_Çme +, +Ïyou +->res_name ); + +297 +§me + = sam&& + `¡»ql +Ð +uwšp +-> +id’t™y +, +Ïyou +->identity ) && + +298 + `¡»ql +Ð +uwšp +-> +commªd +, +Ïyou +->command ); + +300 iàÐ(! +Ïyou +-> +found +è&& +§me +) + +302 +Ïyou +-> +found + = +TRUE +; + +303 +unm©ched_Ïyouts +--; + +304  ( +Layou +) +Ïyou +; + +308  +Ïyou + = +Ïyout_h—d +;†ayou !ð +LAYOUT_NULL +; + +309 +Ïyou + =†ayou-> +Ãxt + ) + +312 +§me + = + `¡»ql +Ð"*", +Ïyou +-> +ho¡Çme + ) && + +313 + `¡»ql +Ð +uwšp +-> +»s_þass +, +Ïyou +->res_class ) && + +314 + `¡»ql +Ð +uwšp +-> +»s_Çme +, +Ïyou +->res_name ); + +315 +§me + = sam&& + `¡»ql +Ð +uwšp +-> +id’t™y +, +Ïyou +->identity ) && + +316 + `¡»ql +Ð +uwšp +-> +commªd +, +Ïyou +->command ); + +318 iàÐ(! +Ïyou +-> +found +è&& +§me +) + +320 +Ïyou +-> +found + = +TRUE +; + +321 +unm©ched_Ïyouts +--; + +322  ( +Layou +) +Ïyou +; + +328 iàÐ( +uwšp +-> +»s_þass + =ð +NULL +è&& (uwšp-> +»s_Çme + == NULL) ) + +329  ( +Layou +) +LAYOUT_NULL +; + +331  +Ïyou + = +Ïyout_h—d +;†ayou !ð +LAYOUT_NULL +; + +332 +Ïyou + =†ayou-> +Ãxt + ) + +335 +§me + = + `¡»ql +Ð +uwšp +-> +ho¡Çme +, +Ïyou +->hostname ) && + +336 + `¡»ql +Ð +uwšp +-> +»s_þass +, +Ïyou +->res_class ); + +337 +§me + = sam&& + `¡»ql +Ð +uwšp +-> +»s_Çme +, +Ïyou +->res_name ) && + +338 + `¡»ql +Ð +uwšp +-> +id’t™y +, +Ïyou +->identity ); + +340 iàÐ(! +Ïyou +-> +found +è&& +§me +) + +342 +Ïyou +-> +found + = +TRUE +; + +343 +unm©ched_Ïyouts +--; + +344  ( +Layou +) +Ïyou +; + +348  +Ïyou + = +Ïyout_h—d +;†ayou !ð +LAYOUT_NULL +; + +349 +Ïyou + =†ayou-> +Ãxt + ) + +353 +§me + = + `¡»ql +Ð"*", +Ïyou +-> +ho¡Çme + ) && + +354 + `¡»ql +Ð +uwšp +-> +»s_þass +, +Ïyou +->res_class ); + +355 +§me + = sam&& + `¡»ql +Ð +uwšp +-> +»s_Çme +, +Ïyou +->res_name ) && + +356 + `¡»ql +Ð +uwšp +-> +id’t™y +, +Ïyou +->identity ); + +358 iàÐ(! +Ïyou +-> +found +è&& +§me +) + +360 +Ïyou +-> +found + = +TRUE +; + +361 +unm©ched_Ïyouts +--; + +362  ( +Layou +) +Ïyou +; + +368 iàÐ( +uwšp +-> +»s_þass + =ð +NULL +è&& (uwšp-> +»s_Çme + == NULL) ) + +369  ( +Layou +) +LAYOUT_NULL +; + +371  +Ïyou + = +Ïyout_h—d +;†ayou !ð +LAYOUT_NULL +; + +372 +Ïyou + =†ayou-> +Ãxt + ) + +375 +§me + = + `¡»ql +Ð +uwšp +-> +ho¡Çme +, +Ïyou +->hostname ) && + +376 + `¡»ql +Ð +uwšp +-> +»s_þass +, +Ïyou +->res_class ); + +377 +§me + = sam&& + `¡»ql +Ð +uwšp +-> +»s_Çme +, +Ïyou +->res_name ) && + +378 + `¡»ql +Ð +uwšp +-> +commªd +, +Ïyou +->command ); + +380 iàÐ(! +Ïyou +-> +found +è&& +§me +) + +382 +Ïyou +-> +found + = +TRUE +; + +383 +unm©ched_Ïyouts +--; + +384  ( +Layou +) +Ïyou +; + +388  +Ïyou + = +Ïyout_h—d +;†ayou !ð +LAYOUT_NULL +; + +389 +Ïyou + =†ayou-> +Ãxt + ) + +392 +§me + = + `¡»ql +Ð"*", +Ïyou +-> +ho¡Çme + ) && + +393 + `¡»ql +Ð +uwšp +-> +»s_þass +, +Ïyou +->res_class ); + +394 +§me + = sam&& + `¡»ql +Ð +uwšp +-> +»s_Çme +, +Ïyou +->res_name ) && + +395 + `¡»ql +Ð +uwšp +-> +commªd +, +Ïyou +->command ); + +397 iàÐ(! +Ïyou +-> +found +è&& +§me +) + +399 +Ïyou +-> +found + = +TRUE +; + +400 +unm©ched_Ïyouts +--; + +401  ( +Layou +) +Ïyou +; + +407  +Ïyou + = +Ïyout_h—d +;†ayou !ð +LAYOUT_NULL +; + +408 +Ïyou + =†ayou-> +Ãxt + ) + +410 iàÐ(! +Ïyou +-> +found +) && + +411 + `¡»ql +Ð +uwšp +-> +ho¡Çme +, +Ïyou +->hostname ) && + +412 + `¡»ql +Ð +uwšp +-> +»s_þass +, +Ïyou +->res_class ) && + +413 + `¡»ql +Ð +uwšp +-> +»s_Çme +, +Ïyou +->res_name ) ) + +415 +Ïyou +-> +found + = +TRUE +; + +416 +unm©ched_Ïyouts +--; + +417  ( +Layou +) +Ïyou +; + +421  +Ïyou + = +Ïyout_h—d +;†ayou !ð +LAYOUT_NULL +; + +422 +Ïyou + =†ayou-> +Ãxt + ) + +424 iàÐ(! +Ïyou +-> +found +) && + +425 + `¡»ql +Ð"*", +Ïyou +-> +ho¡Çme + ) && + +426 + `¡»ql +Ð +uwšp +-> +»s_þass +, +Ïyou +->res_class ) && + +427 + `¡»ql +Ð +uwšp +-> +»s_Çme +, +Ïyou +->res_name ) ) + +429 +Ïyou +-> +found + = +TRUE +; + +430 +unm©ched_Ïyouts +--; + +431  ( +Layou +) +Ïyou +; + +435  ( +Layou +) +LAYOUT_NULL +; + +436 + } +} + +440  + $Layout_S‘_V®ues +Ð +Ïyou +, +uwšp + ) + +441 +U£rwš + * +uwšp +; + +442 +Layou + +Ïyou +; + +444 +Size + +siz +; + +445 +Layout + * +Ïyp + = (Layouˆ*) +Ïyou +; + +447 iàÐ +Ïyp + =ð +LAYOUT_NULL + ) ; + +448 +uwšp +-> +sized + = +TRUE +; + +449 +uwšp +-> +pos™iÚed + = +Ïyp +-> +Ý’ + ||†ayp->positioned; + +450 +uwšp +-> +icÚ_pos™iÚed + = (! +Ïyp +-> +Ý’ + ) ||†ayp-> +pos™iÚed +; + +451 +siz + = + `Tžwš_G‘_Size +Ð +uwšp +-> +icÚp + ); + +452 + `Tžwš_S‘_Mš +Ð +uwšp +-> +icÚp +, +siz + ); + +453 + `Tžwš_S‘_Max +Ð +uwšp +-> +icÚp +, +siz + ); + +454 + `Tžwš_S‘ +Ð +uwšp +-> +icÚp +, +Ïyp +-> +icÚ_ûÁ” +, +siz + ); + +455 +uwšp +-> +zoomed + = +Ïyp +->zoomed; + +456 +uwšp +-> +»guÏr_size + = +Ïyp +->regular_size; + +457 +uwšp +-> +»guÏr_mš + = +Ïyp +->regular_min; + +458 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, uwšp-> +»guÏr_mš + ); + +459 +uwšp +-> +zoom_size + = +Ïyp +->zoom_size; + +460 +uwšp +-> +zoom_mš + = +Ïyp +->zoom_min; + +461 +uwšp +-> +»zoom_»ù + = +Ïyp +->rezoom_rect; + +462 + `Tžwš_S‘_Max +Ð +uwšp +-> +wšp +, +Ïyp +-> +max_size + ); + +463 + `Tžwš_S‘ +Ð +uwšp +-> +wšp +, +Ïyp +-> +ûÁ” +,†ayp-> +siz + ); + +464 + } +} + +468  + $Layout_S‘_O±iÚs +Ð +Ïyou +, +uwšp + ) + +469 +U£rwš + * +uwšp +; + +470 +Layou + +Ïyou +; + +472 +Layout + * +Ïyp + = (Layouˆ*) +Ïyou +; + +474 iàÐ +Ïyp + =ð +LAYOUT_NULL + ) ; + +476 + `U£rwš_S‘_Wšdow_O±iÚ +Ð +uwšp +, + +477 +AUTO_OPEN_ON_CREATE +, +Ïyp +-> +Ý’ + ); + +479 iàÐ +Ïyp +-> +ex¶ic™_fixed_com¶‘–y + ) + +481 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_COMPLETELY +, + +482 +Ïyp +-> +fixed_com¶‘–y + ); + +483 + `Ex¶ic™_Wšdow_S‘ +Ð +uwšp +, +EXPLICIT_FIXED_COMPLETELY + ); + +485 iàÐ +Ïyp +-> +ex¶ic™_fixed_height + ) + +487 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_HEIGHT +, + +488 +Ïyp +-> +fixed_height + ); + +489 + `Ex¶ic™_Wšdow_S‘ +Ð +uwšp +, +EXPLICIT_FIXED_HEIGHT + ); + +491 iàÐ +Ïyp +-> +ex¶ic™_fixed_width + ) + +493 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_WIDTH +, + +494 +Ïyp +-> +fixed_width + ); + +495 + `Ex¶ic™_Wšdow_S‘ +Ð +uwšp +, +EXPLICIT_FIXED_WIDTH + ); + +497 iàÐ +Ïyp +-> +ex¶ic™_»quœe_mªu®_þo£ + ) + +499 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +REQUIRE_MANUAL_CLOSE +, + +500 +Ïyp +-> +»quœe_mªu®_þo£ + ); + +501 + `Ex¶ic™_Wšdow_S‘ +Ð +uwšp +, +EXPLICIT_REQUIRE_MANUAL_CLOSE + ); + +503 iàÐ +Ïyp +-> +ex¶ic™_li¡’”_t›d_to_zoom + ) + +505 + `U£rwš_S‘_Wšdow_O±iÚ +Ð +uwšp +, +LISTENER_TIED_TO_ZOOM +, + +506 +Ïyp +-> +li¡’”_t›d_to_zoom + ); + +507 + `Ex¶ic™_Wšdow_S‘ +Ð +uwšp +, +EXPLICIT_LISTENER_TIED_TO_ZOOM + ); + +509 iàÐ +Ïyp +-> +ex¶ic™_zoom_t›d_to_desœe + ) + +511 + `U£rwš_S‘_Wšdow_O±iÚ +Ð +uwšp +, +ZOOM_TIED_TO_DESIRE +, + +512 +Ïyp +-> +zoom_t›d_to_desœe + ); + +513 + `Ex¶ic™_Wšdow_S‘ +Ð +uwšp +, +EXPLICIT_ZOOM_TIED_TO_DESIRE + ); + +515 + } +} + +519  + $Layout_Wr™e_Wšdow +Ð +Ïyout_¡»am +, +uwšp + ) + +520 +FILE + * +Ïyout_¡»am +; + +521 +U£rwš + * +uwšp +; + +523 iàÐÐÐ +uwšp +-> +»s_þass + =ð +NULL + ) && + +524 Ð +uwšp +-> +»s_Çme + =ð +NULL + ) ) || + +525 (! + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +SAVE_IN_LAYOUT + ) ) ) + +528 iàÐ +uwšp +-> +zoomed + ) + +530 +uwšp +-> +zoom_size + = + `Tžwš_G‘_Desœed +Ðuwšp-> +wšp + ); + +531 +uwšp +-> +zoom_mš + = + `Tžwš_G‘_Mš +Ðuwšp-> +wšp + ); + +535 +uwšp +-> +»guÏr_size + = + `Tžwš_G‘_Desœed +Ðuwšp-> +wšp + ); + +536 +uwšp +-> +»guÏr_mš + = + `Tžwš_G‘_Mš +Ðuwšp-> +wšp + ); + +539 + `årštf +Ð +Ïyout_¡»am +, "\n" ); + +541 iàÐ +uwšp +-> +»s_þass + =ð +NULL + ) + +542 + `årštf +Ð +Ïyout_¡»am +, "\n" ); + +544 + `årštf +Ð +Ïyout_¡»am +, "%s\n", +uwšp +-> +»s_þass + ); + +546 iàÐ +uwšp +-> +»s_Çme + =ð +NULL + ) + +547 + `årštf +Ð +Ïyout_¡»am +, "\n" ); + +549 + `årštf +Ð +Ïyout_¡»am +, "%s\n", +uwšp +-> +»s_Çme + ); + +551 iàÐ +uwšp +-> +ho¡Çme + =ð +NULL + ) + +552 + `årštf +Ð +Ïyout_¡»am +, "\n" ); + +553 iàÐ + `¡»ql +Ð +ho¡¡r +, +uwšp +-> +ho¡Çme + ) ) + +554 + `årštf +Ð +Ïyout_¡»am +, "*\n" ); + +556 + `årštf +Ð +Ïyout_¡»am +, "%s\n", +uwšp +-> +ho¡Çme + ); + +558 iàÐ +uwšp +-> +id’t™y + =ð +NULL + ) + +559 + `årštf +Ð +Ïyout_¡»am +, "\n" ); + +561 + `årštf +Ð +Ïyout_¡»am +, "%s\n", +uwšp +-> +id’t™y + ); + +563 iàÐ +uwšp +-> +commªd + =ð +NULL + ) + +564 + `årštf +Ð +Ïyout_¡»am +, "\n" ); + +566 + `årštf +Ð +Ïyout_¡»am +, "%s\n", +uwšp +-> +commªd + ); + +568 + `årštf +Ð +Ïyout_¡»am +, + +570 + `Tžwš_Is_O³n +Ð +uwšp +-> +wšp + ), + +571 + `Tžwš_G‘_Size +Ð +uwšp +-> +wšp + ). +width +, + +572 + `Tžwš_G‘_Size +Ð +uwšp +-> +wšp + ). +height +, + +573 + `Tžwš_G‘_C’‹r +Ð +uwšp +-> +wšp + ). +x +, + +574 + `Tžwš_G‘_C’‹r +Ð +uwšp +-> +wšp + ). +y +, + +575 + `Tžwš_G‘_C’‹r +Ð +uwšp +-> +icÚp + ). +x +, + +576 + `Tžwš_G‘_C’‹r +Ð +uwšp +-> +icÚp + ). +y +, + +577 +uwšp +-> +zoomed +, + +578 +uwšp +-> +»guÏr_size +. +width +, + +579 +uwšp +-> +»guÏr_size +. +height +, + +580 +uwšp +-> +»guÏr_mš +. +width +, + +581 +uwšp +-> +»guÏr_mš +. +height +, + +582 +uwšp +-> +zoom_size +. +width +, + +583 +uwšp +-> +zoom_size +. +height +, + +584 +uwšp +-> +zoom_mš +. +width +, + +585 +uwšp +-> +zoom_mš +. +height +, + +586 + `Tžwš_G‘_Max +Ð +uwšp +-> +wšp + ). +width +, + +587 + `Tžwš_G‘_Max +Ð +uwšp +-> +wšp + ). +height +, + +588 +uwšp +-> +»zoom_»ù +. +Ëá_x +, + +589 +uwšp +-> +»zoom_»ù +. +right_x +, + +590 +uwšp +-> +»zoom_»ù +. +tÝ_y +, + +591 +uwšp +-> +»zoom_»ù +. +bÙtom_y +, + +592 Ð + `Tžwš_Is_O³n +Ð +uwšp +-> +wšp + ) ? + +593 +uwšp +-> +icÚ_pos™iÚed + : + +594 +uwšp +-> +pos™iÚed + ) ); + +596 + `årštf +Ð +Ïyout_¡»am +, + +598 + `Ex¶ic™_Wšdow_G‘ +Ð +uwšp +, +EXPLICIT_REQUIRE_MANUAL_CLOSE + ), + +599 + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +REQUIRE_MANUAL_CLOSE +), + +600 + `Ex¶ic™_Wšdow_G‘ +Ð +uwšp +, +EXPLICIT_FIXED_WIDTH + ), + +601 + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_WIDTH + ), + +602 + `Ex¶ic™_Wšdow_G‘ +Ð +uwšp +, +EXPLICIT_FIXED_HEIGHT + ), + +603 + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_HEIGHT + ), + +604 + `Ex¶ic™_Wšdow_G‘ +Ð +uwšp +, +EXPLICIT_FIXED_COMPLETELY + ), + +605 + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_COMPLETELY + ), + +606 + `Ex¶ic™_Wšdow_G‘ +Ð +uwšp +, +EXPLICIT_LISTENER_TIED_TO_ZOOM + ), + +607 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +LISTENER_TIED_TO_ZOOM + ), + +608 + `Ex¶ic™_Wšdow_G‘ +Ð +uwšp +, +EXPLICIT_ZOOM_TIED_TO_DESIRE + ), + +609 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ZOOM_TIED_TO_DESIRE + ) ); + +610 + } +} + +614 +boÞ + + $Layout_Save +() + +616 +FILE + * +Ïyout_¡»am +; + +617 +Tžwšp + +wšp +; + +618 +U£rwš + * +uwšp +; + +620 +Ïyout_¡»am + = + `O³n_Wr™e +( ".rtl.layout" ); + +621 iàÐ +Ïyout_¡»am + =ð +NULL + )  +FALSE +; + +623 iàÐ +´eã»nû_fže + =ð +NULL + ) + +624 + `årštf +Ð +Ïyout_¡»am +, "\n\n" ); + +626 + `årštf +Ð +Ïyout_¡»am +, "\n%s\n", +´eã»nû_fže + ); + +628 + `årštf +Ð +Ïyout_¡»am +, "%d %d\n", + +629 + `D¿w_G‘_F¿me_Width +(), + +630 + `D¿w_G‘_F¿me_Height +() ); + +632 + `Tžwš_G’_O³n_Wšdows +(); + +633  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +635 +uwšp + = + `U£rwš_G‘ +Ð +wšp + ); + +636 iàÐ +uwšp +-> +wšp + == winp ) + +637 + `Layout_Wr™e_Wšdow +Ð +Ïyout_¡»am +, +uwšp + ); + +640 + `Tžwš_G’_Clo£d_Wšdows +(); + +641  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +643 +uwšp + = + `U£rwš_G‘ +Ð +wšp + ); + +644 iàÐ +uwšp +-> +wšp + == winp ) + +645 + `Layout_Wr™e_Wšdow +Ð +Ïyout_¡»am +, +uwšp + ); + +648 + `fþo£ +Ð +Ïyout_¡»am + ); + +649  +TRUE +; + +650 + } +} + + @layout.h + +30  +poš‹r + + tLayou +; + +31  + #LAYOUT_NULL + ( +Layou +) +NULL + + + ) + +33 +boÞ + +Layout_Save +(); + +35  + #Layout_S¹up_Fž’ame +() \ + +36 Ð +¡¬tup_fže + ) + + ) + +38  +unm©ched_Ïyouts +; + +40  + #Layout_DÚe +() \ + +41 Ð +unm©ched_Ïyouts + <ð0 ) + + ) + +43  + #Layout_Fšish +() \ + +44 Ð +unm©ched_Ïyouts + = 0 ) + + ) + +46 +Layou + +Layout_Fšd +(); + +49  +Layout_S‘_V®ues +(); + +52  +Layout_S‘_O±iÚs +(); + +55 * +Layout_In™ +(); + +57  +Layout_R—d +(); + +59  +Layout_Upd©e +(); + + @listsP.h + +29  + #LISTS + + + ) + +31 #iâdeà +STD_DEFS + + +32  + ~"¡d_defs.h +" + +36  +node + + tNode +; + +38  + snode + + +40  +node + * + m´ev +, * + mÃxt +; + +41 +poš‹r + + mšfo +; + +42  + mid +; + +46  + #NODE_NULL + ( +Node + *) +NULL + + + ) + +47  + #DEFAULT_NODE_ID + 0 + + ) + +50 +Node + * + mh—d +, * + mž +; + +52 + tLi¡ +; + +54  + #LIST_NULL + ( +Li¡ + *) +NULL + + + ) + +56  + #Li¡s_CÚv”t_Node_Info +( +node +, +ty³ +) \ + +57 (( +ty³ +)(( +node +)-> +šfo +)) + + ) + +59  + #Li¡s_FÜ_Each_Node_On_Li¡ +( +li¡ +, +node +) \ + +60 ( +node +)=( +li¡ +)-> +h—d +;node;Òode)=Òode)-> +Ãxt +) + + ) + + @lockscreen.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "%W% %H%"; + +64  + ~<¡dio.h +> + +65  + ~<¡ršg.h +> + +66  + ~ + +67  + ~ + +68  + ~ + +69  + ~ + +70 * +üy± +(); + +72  + gno_b™s +[] = {0}; + +74 +Wšdow + + gw +; + +75 +GCÚ‹xt + + ggc +; + +77  + gwidth +; + +78  + gheight +; + +80 +Wšdow + + groÙw +; + +81  + gsü“n +; + +82 +CÞÜm­ + + gcm­ +; + +83 +CursÜ + + gmycursÜ +; + +85  + gbÏck_pix– +; + +86  + gwh™e_pix– +; + +87 +XCÞÜ + + gbÏck_cÞÜ +; + +88 +XCÞÜ + + gwh™e_cÞÜ +; + +90  + gûÁ”x +, + gûÁ”y +, + g™” +, + gmax™” +, + g¿nge +, + gcÞÜ +; + +91  + ga +, + gb +, + gc +, + gi +, + gj +; + +93 +Di¥Ïy + * + gd¥ +; + +96 + $R—dXSŒšg +( +s +, +¦’ +) + +97 * +s +; + +98  +¦’ +; + +100  +bp +; + +101  +c +; + +102 +XEv’t + +evt +; + +103 +XKeyEv’t + * +k³vt + = (XKeyEv’ˆ*è& +evt +; + +104  +key¡r +[20]; + +106 +bp + = 0; + +108 ià( + `XP’dšg +( +d¥ +)) { + +109 + `XNextEv’t +( +d¥ +, & +evt +); + +110 ià( +evt +. +ty³ + =ð +KeyP»ss +) { + +111 ià( + `XLookupSŒšg +( +k³vt +, +key¡r +, 20, +NULL +, NULL) > 0) { + +112 +c + = +key¡r +[0]; + +113  +c +) { + +115 ià( +bp + > 0) bp--; + +118 +s +[ +bp +] = '\0'; + +121 +bp + = 0; + +124 +s +[ +bp +] = +c +; + +125 ià( +bp + < +¦’ +-1) bp++; + +130 + `™”©e +(); + +132 + } +} + +135 + $locksü“n +( +dpy +) + +136 +Di¥Ïy + * +dpy +; + +138  +buf +[10]; + +139  +roÙ·ss +[10]; + +140 +XS‘WšdowA‰ribu‹s + +©Œs +; + +141 +XGCV®ues + +xgcv +; + +142  +·sswd + * +pw +; + +143 +Pixm­ + +lockc +, +lockm +; + +144  +timeout +, +š‹rv® +, +bÏnkšg +, +exposu»s +; + +146 +cÞÜ + = 0; + +147 +d¥ + = +dpy +; + +149 +pw + = + `g‘pwuid +(0); + +150 + `¡rýy +( +roÙ·ss +, +pw +-> +pw_·sswd +); + +152 +roÙw + = + `DeçuÉRoÙWšdow +( +d¥ +); + +153 +sü“n + = + `DeçuÉSü“n +( +d¥ +); + +154 +width + = + `Di¥ÏyWidth +( +d¥ +, +sü“n +); + +155 +height + = + `Di¥ÏyHeight +( +d¥ +, +sü“n +); + +156 +ûÁ”x + = +width + / 2; + +157 +ûÁ”y + = +height + / 2; + +158 +¿nge + = (è + `sq¹ +(() +ûÁ”x +*ûÁ”x+() +ûÁ”y +*centery); + +159 +cm­ + = + `DeçuÉCÞÜm­ +( +d¥ +, +sü“n +); + +161 +bÏck_pix– + = + `BÏckPix– +( +d¥ +, +sü“n +); + +162 +bÏck_cÞÜ +. +pix– + = +bÏck_pix– +; + +163 + `XQu”yCÞÜ +( +d¥ +, +cm­ +, & +bÏck_cÞÜ +); + +165 +wh™e_pix– + = + `Wh™ePix– +( +d¥ +, +sü“n +); + +166 +wh™e_cÞÜ +. +pix– + = +wh™e_pix– +; + +167 + `XQu”yCÞÜ +( +d¥ +, +cm­ +, & +wh™e_cÞÜ +); + +169 +©Œs +. +background_pix– + = +bÏck_pix– +; + +170 +©Œs +. +ov”ride_»dœeù + = +True +; + +171 +©Œs +. +ev’t_mask + = +KeyP»ssMask +; + +172 +w + = + `XC»©eWšdow +( +d¥ +, +roÙw +, 0, 0, +width +, +height +, 0, + +173 +CÝyFromP¬’t +, +IÅutOuut +, CopyFromParent, + +174 +CWOv”rideRedœeù + | +CWBackPix– + | +CWEv’tMask +, & +©Œs +); + +176 +lockc + = + `XC»©eB™m­FromD©a +( +d¥ +, +w +, +no_b™s +, 8, 1); + +177 +lockm + = + `XC»©eB™m­FromD©a +( +d¥ +, +w +, +no_b™s +, 8, 1); + +178 +mycursÜ + = + `XC»©ePixm­CursÜ +( +d¥ +, +lockc +, +lockm +, + +179 & +bÏck_cÞÜ +, &black_color, + +181 + `XF»ePixm­ +( +d¥ +, +lockc +); + +182 + `XF»ePixm­ +( +d¥ +, +lockm +); + +184 + `XM­Wšdow +( +d¥ +, +w +); + +186 +xgcv +. +fÜeground + = +wh™e_pix– +; + +187 +xgcv +. +background + = +bÏck_pix– +; + +188 +gc + = ( +GCÚ‹xt +è + `XC»©eGC +( +d¥ +, +w +, +GCFÜeground + | +GCBackground +, & +xgcv +); + +190 + `XG‘Sü“nSav” +( +d¥ +, & +timeout +, & +š‹rv® +, & +bÏnkšg +, & +exposu»s +); + +191 + `XS‘Sü“nSav” +( +d¥ +, 0, 0, 0, 0); + +193 + `XG¿bKeybßrd +( +d¥ +, +w +, +True +, +G¿bModeAsync +, G¿bModeAsync, +Cu¼’tTime +); + +194 + `XG¿bPoš‹r +( +d¥ +, +w +, +F®£ +, -1, +G¿bModeAsync +, G¿bModeAsync, +NÚe +, + +195 +mycursÜ +, +Cu¼’tTime +); + +197 + `G¿bHo¡s +(); + +199 +pw + = + `g‘pwuid +( + `g‘uid +()); + +201 + `¤ªdom +( + `time +( +NULL +)); + +203 + `š™hÝ +(); + +204 + `R—dXSŒšg +( +buf +, 10); + +205 } ( + `¡rcmp +( + `üy± +( +buf +, +pw +-> +pw_·sswd +),…w->pw_passwd)) + +206 && ( + `¡rcmp +( + `üy± +( +buf +, +roÙ·ss +),„ootpass))); + +208 + `Ung¿bHo¡s +(); + +210 + `XUng¿bPoš‹r +( +d¥ +, +Cu¼’tTime +); + +211 + `XUng¿bKeybßrd +( +d¥ +, +Cu¼’tTime +); + +213 + `XS‘Sü“nSav” +( +d¥ +, +timeout +, +š‹rv® +, +bÏnkšg +, +exposu»s +); + +215 + `XDe¡royWšdow +( +d¥ +, +w +); + +216 + `XFlush +( +d¥ +); + +217 + } +} + +219 +XHo¡Add»ss + * + gho¡s +; + +220  + gnum_ho¡s +, + g¡©e +; + +222 + $G¿bHo¡s +() + +224 + `XDi§bËAcûssCÚŒÞ +( +d¥ +); + +225 +ho¡s + = + `XLi¡Ho¡s +( +d¥ +, & +num_ho¡s +, & +¡©e +); + +226 + `XRemoveHo¡s +( +d¥ +, +ho¡s +, +num_ho¡s +); + +227 + } +} + +230 + $Ung¿bHo¡s +() + +232 + `XEÇbËAcûssCÚŒÞ +( +d¥ +); + +233 + `XAddHo¡s +( +d¥ +, +ho¡s +, +num_ho¡s +); + +234 + `XF»e +( +ho¡s +); + +235 + } +} + +238 + $™”©e +() + +240  +Þdj +; + +241  +k +; + +243  +k +=0;k<500;k++) { + +244 +Þdj + = +j +; + +245 +j + = +a + - +i +; + +246 +i + = +Þdj + + (i<0? + `sq¹ +( + `çbs +( +b +*˜- +c +)):-sqrt(fabs(b*i - c))); + +247 ià( +cÞÜ +è + `XS‘FÜeground +( +d¥ +, +gc +, ( +™” + % 25) * 10 + 5); + +248 + `XD¿wPošt +( +d¥ +, +w +, +gc +, + +249 +ûÁ”x + + ()( +i ++ +j +), + +250 +ûÁ”y + - ()( +i +- +j +)); + +251 +™” +++; + +253 ià( +™” + > +max™” +è + `š™hÝ +(); + +254 + } +} + +256 + $š™hÝ +() + +258 +a + = + `¿ndom +(è% ( +¿nge + * 100) * (random()%2?-1.0:1.0) / 100.0; + +259 +b + = + `¿ndom +(è% ( +¿nge + * 100) * (random()%2?-1.0:1.0) / 100.0; + +260 +c + = + `¿ndom +(è% ( +¿nge + * 100) * (random()%2?-1.0:1.0) / 100.0; + +262 ià(!( + `¿ndom +()%3)è +a + /= 10.0; + +263 ià(!( + `¿ndom +()%2)è +b + /= 100.0; + +265 +max™” + = ( +cÞÜ +?10000+ + `¿ndom +()%20000:20000+random()%50000); + +266 +™” + = 0; + +267 +i + = +j + = 0.0; + +268 + `XCˬWšdow +( +d¥ +, +w +); + +269 + } +} + + @manage.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)manage.c 5.7 9/1/88"; + +27  + ~<¡dlib.h +> + +28  + ~"cÝyright.h +" + +30  + ~"ba£ty³.h +" + +32  + ~"u£rglobD.h +" + +33  + ~"twš.h +" + +35 #iâdeà +TILWIN_DEFINE + + +36  + ~"twšD.h +" + +39 #iâdeà +USERWIN_DEFINE + + +40  + ~"uwšD.h +" + +43  + ~"uwšL.h +" + +44  + ~"uwšv®P.h +" + +46  + ~"þ›Á.h +" + +47  + ~"þo£d.h +" + +48  + ~"d¿w.h +" + +49  + ~"d¿wicÚ.h +" + +50  + ~"d¿wwš.h +" + +51  + ~"Ïyout.h +" + +52  + ~"´ofže.h +" + +53  + ~"»giÚ.h +" + +57  + #SWAP_BOOL +Ð +v®1 +, +v®2 + ) \ + +59 +boÞ + +‹mp +; \ + +60 +‹mp + = +v®1 +; \ + +61 +v®1 + = +v®2 +; \ + +62 +v®2 + = +‹mp +; \ + +63 } + + ) + +67  + #SWAP_INT +Ð +v®1 +, +v®2 + ) \ + +69  +‹mp +; \ + +70 +‹mp + = +v®1 +; \ + +71 +v®1 + = +v®2 +; \ + +72 +v®2 + = +‹mp +; \ + +73 } + + ) + +77  + #SWAP_POS +Ð +v®1 +, +v®2 + ) \ + +79 +TWPošt + +‹mp +; \ + +80 +‹mp + = +v®1 +; \ + +81 +v®1 + = +v®2 +; \ + +82 +v®2 + = +‹mp +; \ + +83 } + + ) + +87  + #SWAP_SIZE +Ð +v®1 +, +v®2 + ) \ + +89 +Size + +‹mp +; \ + +90 +‹mp + = +v®1 +; \ + +91 +v®1 + = +v®2 +; \ + +92 +v®2 + = +‹mp +; \ + +93 } + + ) + +97  + #SWAP_RECT +Ð +v®1 +, +v®2 + ) \ + +99 +TWReùªgË + +‹mp +; \ + +100 +‹mp + = +v®1 +; \ + +101 +v®1 + = +v®2 +; \ + +102 +v®2 + = +‹mp +; \ + +103 } + + ) + +107  + #SWAP_UWINP +Ð +uwšp1 +, +uwšp2 + ) \ + +109 +U£rwš + * +‹mp +; \ + +110 +‹mp + = +uwšp1 +; \ + +111 +uwšp1 + = +uwšp2 +; \ + +112 +uwšp2 + = +‹mp +; \ + +113 } + + ) + +117  + #COMPUTE_DISTANCE +( +±1 +, +±2 +) \ + +118 ((( + `G‘_PtX +( +±1 +è- G‘_PtX( +±2 +)) * (Get_PtX(pt1) - Get_PtX(pt2))) + \ + +119 (( + `G‘_PtY +( +±1 +è- G‘_PtY( +±2 +)è* (G‘_PtYÕt1è- G‘_PtYÕt2)))) + + ) + +122  + #wšdow_excursiÚ +( +wš +, +Ýt +, +v® +, +code +) \ + +124 +boÞ + +‹mp_v® +; \ + +125 +‹mp_v® + = + `Tžwš_G‘_Wšdow_O±iÚ +( +wš +, +Ýt +); \ + +126 + `Tžwš_S‘_Wšdow_O±iÚ +( +wš +, +Ýt +, +v® +); \ + +127 +code +; \ + +128 + `Tžwš_S‘_Wšdow_O±iÚ +( +wš +, +Ýt +, +‹mp_v® +); \ + +129 } + + ) + +131  + #wšdow_»¡riù_excursiÚ +( +wš +, +Ýt +, +v® +, +code +) \ + +133 +boÞ + +‹mp_v® +; \ + +134 +‹mp_v® + = + `Tžwš_G‘_Wšdow_O±iÚ +( +wš +, +Ýt +); \ + +135 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +wš +, +Ýt +, ( +‹mp_v® + && +v® +) ); \ + +136 +code +; \ + +137 + `Tžwš_S‘_Wšdow_O±iÚ +( +wš +, +Ýt +, +‹mp_v® +); \ + +138 } + + ) + +140  + #wšdow_još_excursiÚ +( +wš +, +Ýt +, +v® +, +code +) \ + +142 +boÞ + +‹mp_v® +; \ + +143 +‹mp_v® + = + `Tžwš_G‘_Wšdow_O±iÚ +( +wš +, +Ýt +); \ + +144 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +wš +, +Ýt +, ( +‹mp_v® + || +v® +) ); \ + +145 +code +; \ + +146 + `Tžwš_S‘_Wšdow_O±iÚ +( +wš +, +Ýt +, +‹mp_v® +); \ + +147 } + + ) + +149  + #glob®_excursiÚ +( +Ýt +, +v® +, +code +) \ + +151 +boÞ + +‹mp_v® +; \ + +152 +‹mp_v® + = + `Tžwš_G‘_Glob®_O±iÚ +( +Ýt +); \ + +153 + `Tžwš_S‘_Glob®_O±iÚ +( +Ýt +, +v® +); \ + +154 +code +; \ + +155 + `Tžwš_S‘_Glob®_O±iÚ +( +Ýt +, +‹mp_v® +); \ + +156 } + + ) + +158  + #glob®_»¡riù_excursiÚ +( +Ýt +, +v® +, +code +) \ + +160 +boÞ + +‹mp_v® +; \ + +161 +‹mp_v® + = + `Tžwš_G‘_Glob®_O±iÚ +( +Ýt +); \ + +162 + `Tžwš_S‘_Glob®_O±iÚ +Ð +Ýt +, ( +‹mp_v® + && +v® +) ); \ + +163 +code +; \ + +164 + `Tžwš_S‘_Glob®_O±iÚ +( +Ýt +, +‹mp_v® +); \ + +165 } + + ) + +167  + #u£r_wšdow_excursiÚ +( +uwš +, +Ýt +, +v® +, +code +) \ + +169 +boÞ + +‹mp_v® +; \ + +170 +‹mp_v® + = + `U£rwš_G‘_Wšdow_O±iÚ +( +uwš +, +Ýt +); \ + +171 + `U£rwš_S‘_Wšdow_O±iÚ +Ð +uwš +, +Ýt +, +v® + ); \ + +172 +code +; \ + +173 + `U£rwš_S‘_Wšdow_O±iÚ +( +uwš +, +Ýt +, +‹mp_v® +); \ + +174 } + + ) + +176  + #u£r_wšdow_još_excursiÚ +( +uwš +, +Ýt +, +v® +, +code +) \ + +178 +boÞ + +‹mp_v® +; \ + +179 +‹mp_v® + = + `U£rwš_G‘_Wšdow_O±iÚ +( +uwš +, +Ýt +); \ + +180 + `U£rwš_S‘_Wšdow_O±iÚ +Ð +uwš +, +Ýt +, ( +‹mp_v® + || +v® +) ); \ + +181 +code +; \ + +182 + `U£rwš_S‘_Wšdow_O±iÚ +( +uwš +, +Ýt +, +‹mp_v® +); \ + +183 } + + ) + +185  + #u£r_glob®_excursiÚ +( +Ýt +, +v® +, +code +) \ + +187 +boÞ + +‹mp_v® +; \ + +188 +‹mp_v® + = + `U£rGlob®s_G‘_O±iÚ +( +Ýt +); \ + +189 + `U£rGlob®s_S‘_O±iÚ +Ð +Ýt +, +v® + ); \ + +190 +code +; \ + +191 + `U£rGlob®s_S‘_O±iÚ +( +Ýt +, +‹mp_v® +); \ + +192 } + + ) + +194  + #u£r_glob®_»¡riù_excursiÚ +( +Ýt +, +v® +, +code +) \ + +196 +boÞ + +‹mp_v® +; \ + +197 +‹mp_v® + = + `U£rGlob®s_G‘_O±iÚ +( +Ýt +); \ + +198 + `U£rGlob®s_S‘_O±iÚ +Ð +Ýt +, ( +‹mp_v® + && +v® +) ); \ + +199 +code +; \ + +200 + `U£rGlob®s_S‘_O±iÚ +( +Ýt +, +‹mp_v® +); \ + +201 } + + ) + +203  + #u£r_glob®_još_excursiÚ +( +Ýt +, +v® +, +code +) \ + +205 +boÞ + +‹mp_v® +; \ + +206 +‹mp_v® + = + `U£rGlob®s_G‘_O±iÚ +( +Ýt +); \ + +207 + `U£rGlob®s_S‘_O±iÚ +Ð +Ýt +, ( +‹mp_v® + || +v® +) ); \ + +208 +code +; \ + +209 + `U£rGlob®s_S‘_O±iÚ +( +Ýt +, +‹mp_v® +); \ + +210 } + + ) + +212  + #mš_excursiÚ +( +wš +, +code +) \ + +214 +Size + +‹mp_mš +; \ + +215 +‹mp_mš + = + `Tžwš_G‘_Mš +( +wš +); \ + +216 + `Tžwš_S‘_Mš +Ð +wš +, + `Tžwš_G‘_Size +(win) ); \ + +217 +code +; \ + +218 + `Tžwš_S‘_Mš +Ð +wš +, +‹mp_mš + ); \ + +219 } + + ) + +223  + #height_excursiÚ +( +wšp +, +code +) \ + +225 iàÐ + `Tžwš_G‘_Size +( +wšp +). +height + < \ + +226 + `Tžwš_G‘_P»vious_Size +( +wšp +). +height + ) \ + +227 + `wšdow_excursiÚ +Ð +wšp +, +FIXED_HEIGHT +, +TRUE +, +code + ) \ + +230 +Size + +‹mp_mš +, +‹mp_siz +; \ + +231 +‹mp_siz + = +‹mp_mš + = + `Tžwš_G‘_Mš +( +wšp +); \ + +232 +‹mp_siz +. +height + = + `Tžwš_G‘_Size +( +wšp +).height; \ + +233 + `Tžwš_S‘_Mš +Ð +wšp +, +‹mp_siz + ); \ + +234 +code +; \ + +235 + `Tžwš_S‘_Mš +Ð +wšp +, +‹mp_mš + ); \ + +237 } + + ) + +241  + #width_excursiÚ +( +wšp +, +code +) \ + +243 iàÐ + `Tžwš_G‘_Size +( +wšp +). +width + < \ + +244 + `Tžwš_G‘_P»vious_Size +( +wšp +). +width + ) \ + +245 + `wšdow_excursiÚ +Ð +wšp +, +FIXED_WIDTH +, +TRUE +, +code + ) \ + +248 +Size + +‹mp_mš +, +‹mp_siz +; \ + +249 +‹mp_siz + = +‹mp_mš + = + `Tžwš_G‘_Mš +( +wšp +); \ + +250 +‹mp_siz +. +width + = + `Tžwš_G‘_Size +( +wšp +).width; \ + +251 + `Tžwš_S‘_Mš +Ð +wšp +, +‹mp_siz + ); \ + +252 +code +; \ + +253 + `Tžwš_S‘_Mš +Ð +wšp +, +‹mp_mš + ); \ + +255 } + + ) + +257  +Mªage_Do_Unzoom +Ð +uwšp +, +ex¶ic™ + ); + +258  +Mªage_S¹_Tryšg +(); + +259  +Mªage_Fšish_Tryšg +Ð +»suÉ + ); + +263 +TimeSmp + + gÏ¡_¡amp +; + +265  + gwšnum + = 0; + +267 +U£rwš + * + gfocus + = +UWIN_NULL +; + +268 +U£rwš + * + gli¡’” + = +UWIN_NULL +; + +269 +U£rwš + * + gsubli¡’” + = +UWIN_NULL +; + +270 +U£rwš + * + gsw™ch_li¡’” + = +UWIN_NULL +; + +271 +U£rwš + * + g´ev_li¡’” + = +UWIN_NULL +; + +272 +U£rwš + * + gÏ¡_zoom + = +UWIN_NULL +; + +273 +U£rwš + * + gtouch + = +UWIN_NULL +; + +274 +U£rwš + * + g´ev_touch + = +UWIN_NULL +; + +276 +U£rwš + * + g¹l_uwšp +; + +280  + $Mªage_In™ +() + +282 + `D¿w_In™ +(); + +283 + `RegiÚ_In™ +(); + +284 + `D¿wwš_In™ +(); + +285 + `D¿wIcÚ_In™ +(); + +287 +Ï¡_¡amp + = 0; + +288 + } +} + +292  +U£rwš + * + $Mªage_In™_Wšdow +() + +294 +U£rwš + * +uwšp +; + +295 +uwšp + = +U£rwš_AÎoÿ‹ +; + +297 +uwšp +-> +´•¬ed + = +FALSE +; + +298 +uwšp +-> +Ïyout + = +FALSE +; + +299 +uwšp +-> +Ïyout_found + = +FALSE +; + +300 +uwšp +-> +ouut_£Á + = +FALSE +; + +301 +uwšp +-> +ev”_Ý’ed + = +FALSE +; + +302 +uwšp +-> +soá_kžl + = +FALSE +; + +303 +uwšp +-> +§všg_¡©e + = +FALSE +; + +304 +uwšp +-> +þ›Á_¡©e + = +NoS‹ +; + +305 +uwšp +-> +wm_¡©e + = +Nev”S‹ +; + +306 +uwšp +-> +group_¡©e + = +GroupS‹ +; + +307 +uwšp +-> +cu¼’t_ty³ + = +body +; + +309 +uwšp +-> +group + = +UWIN_NULL +; + +310 +uwšp +-> +mes§ges + = 0; + +312 +uwšp +-> +ho¡Çme + = +NULL +; + +313 +uwšp +-> +»s_þass + = +NULL +; + +314 +uwšp +-> +»s_Çme + = +NULL +; + +315 +uwšp +-> +wmÇme + = +NULL +; + +316 +uwšp +-> +icÚÇme + = +NULL +; + +317 +uwšp +-> +commªd + = +NULL +; + +318 +uwšp +-> +id’t™y + = +NULL +; + +319 +uwšp +-> +t™Ë + = +NULL +; + +321 +uwšp +-> +pos™iÚed + = +FALSE +; + +322 +uwšp +-> +sized + = +FALSE +; + +324 +uwšp +-> +focus + = +FALSE +; + +325 +uwšp +-> +li¡’” + = +FALSE +; + +326 +uwšp +-> +zoomed + = +FALSE +; + +328 +uwšp +-> +icÚ_pos™iÚed + = +FALSE +; + +330 +uwšp +-> +wšp + = + `Tžwš_C»©e_Wšdow +Ð( +poš‹r +)uwinp ); + +331 +uwšp +-> +icÚp + = + `Tžwš_C»©e_Wšdow +Ð( +poš‹r +)uwinp ); + +333 +uwšp +-> +Ý’_¡amp + = 0; + +334 +uwšp +-> +zoom_¡amp + = 0; + +336 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +uwšp +-> +icÚp +, +FIXED_LEFT_EDGE +, +FALSE + ); + +337 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +uwšp +-> +icÚp +, +FIXED_RIGHT_EDGE +, +FALSE + ); + +338 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +uwšp +-> +icÚp +, +FIXED_TOP_EDGE +, +FALSE + ); + +339 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +uwšp +-> +icÚp +, +FIXED_BOTTOM_EDGE +, +FALSE + ); + +341 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +uwšp +-> +icÚp +, +FIXED_SIZE +, +TRUE + ); + +342 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +uwšp +-> +icÚp +, +FIXED_COMPLETELY +, +FALSE + ); + +344 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +uwšp +-> +icÚp +, +EXPENSIVE_TO_REDRAW +, +FALSE + ); + +346 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +uwšp +-> +icÚp +, +REQUIRE_MANUAL_CLOSE +, +TRUE + ); + +348 + `Profže_C»©e +Ð +uwšp + ); + +350  +uwšp +; + +351 + } +} + +355 +U£rwš + * + $Mªage_C»©e_Wšdow +( ) + +357 +U£rwš + * +uwšp +; + +359 +uwšp + = + `Mªage_In™_Wšdow +(); + +361 +uwšp +-> +wšnum + = ++winnum; + +363 + `D¿wwš_C»©e +Ð +uwšp + ); + +364 + `D¿wIcÚ_C»©e +Ð +uwšp + ); + +366  +uwšp +; + +367 + } +} + +371  + $Mªage_UÁ™Ë +Ð +uwšp + ) + +372 +U£rwš + * +uwšp +; + +374 iàÐ( +uwšp +-> +ho¡Çme +è!ð +NULL + ) + +375 + `ä“ +Ð +uwšp +-> +ho¡Çme + ); + +376 iàÐ( +uwšp +-> +»s_þass +è!ð +NULL + ) + +377 + `ä“ +Ð +uwšp +-> +»s_þass + ); + +378 iàÐ( +uwšp +-> +»s_Çme +è!ð +NULL + ) + +379 + `ä“ +Ð +uwšp +-> +»s_Çme + ); + +380 iàÐ( +uwšp +-> +wmÇme +è!ð +NULL + ) + +381 + `ä“ +Ð +uwšp +-> +wmÇme + ); + +382 iàÐ( +uwšp +-> +icÚÇme +è!ð +NULL + ) + +383 + `ä“ +Ð +uwšp +-> +icÚÇme + ); + +384 iàÐ( +uwšp +-> +commªd +è!ð +NULL + ) + +385 + `ä“ +Ð +uwšp +-> +commªd + ); + +386 iàÐ( +uwšp +-> +id’t™y +è!ð +NULL + ) + +387 + `ä“ +Ð +uwšp +-> +id’t™y + ); + +388 iàÐ( +uwšp +-> +t™Ë +è!ð +NULL + ) + +389 + `ä“ +Ð +uwšp +-> +t™Ë + ); + +390 + } +} + +394  + $Mªage_R‘™Ë +Ð +uwšp + ) + +395 +U£rwš + * +uwšp +; + +397  +¡rsiz +; + +398 +boÞ + +has_þass +, +has_Çme +; + +400 iàÐ( +uwšp +-> +t™Ë +è!ð +NULL + ) + +401 + `ä“ +Ð +uwšp +-> +t™Ë + ); + +403 +¡rsiz + = 1; + +405 +has_þass + = ( +uwšp +-> +»s_þass + !ð +NULL +) && + +406 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +INCLUDE_RES_CLASS_IN_TITLE + ); + +408 +has_Çme + = ( +uwšp +-> +»s_Çme + !ð +NULL +) && + +409 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +INCLUDE_RES_NAME_IN_TITLE + ); + +411 iàÐ +has_þass + || +has_Çme + ) + +413 +¡rsiz + +=1; + +415 iàÐ +has_þass + ) + +416 +¡rsiz + +ð + `¡¾’ +( +uwšp +-> +»s_þass +); + +418 iàÐ +has_þass + && +has_Çme + ) + +419 +¡rsiz + +=1; + +421 iàÐ +has_Çme + ) + +422 +¡rsiz + +ð + `¡¾’ +( +uwšp +-> +»s_Çme +); + +424 +¡rsiz + +=2; + +427 iàÐ( +uwšp +-> +wmÇme + !ð +NULL +) && + +428 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +INCLUDE_NAME_IN_TITLE + ) ) + +429 +¡rsiz + +ð + `¡¾’ +( +uwšp +-> +wmÇme +); + +431 iàÐ( +uwšp +-> +ho¡Çme + !ð +NULL +) && + +432 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +INCLUDE_HOST_IN_TITLE + ) ) + +433 +¡rsiz + +ð(3 + + `¡¾’ +( +uwšp +-> +ho¡Çme +)); + +435 +uwšp +-> +t™Ë + = + `®loÿ‹ +Ð, +¡rsiz + ); + +436 +uwšp +-> +t™Ë +[0] = '\0'; + +438 iàÐ +has_þass + || +has_Çme + ) + +440 () + `¡rÿt +Ð +uwšp +-> +t™Ë +, "[" ); + +442 iàÐ +has_þass + ) + +443 () + `¡rÿt +Ð +uwšp +-> +t™Ë +, uwšp-> +»s_þass + ); + +445 iàÐ +has_þass + && +has_Çme + ) + +446 () + `¡rÿt +Ð +uwšp +-> +t™Ë +, ":" ); + +448 iàÐ +has_Çme + ) + +449 () + `¡rÿt +Ð +uwšp +-> +t™Ë +, uwšp-> +»s_Çme + ); + +451 () + `¡rÿt +Ð +uwšp +-> +t™Ë +, "] " ); + +454 iàÐ( +uwšp +-> +wmÇme + !ð +NULL +) && + +455 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +INCLUDE_NAME_IN_TITLE + ) ) + +457 () + `¡rÿt +Ð +uwšp +-> +t™Ë +, uwšp-> +wmÇme + ); + +460 iàÐ( +uwšp +-> +ho¡Çme + !ð +NULL +) && + +461 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +INCLUDE_HOST_IN_TITLE + ) ) + +463 () + `¡rÿt +Ð +uwšp +-> +t™Ë +, " (" ); + +464 () + `¡rÿt +Ð +uwšp +-> +t™Ë +, uwšp-> +ho¡Çme + ); + +465 () + `¡rÿt +Ð +uwšp +-> +t™Ë +, ")" ); + +468 iàÐ + `Tžwš_Is_O³n +Ð +uwšp +-> +wšp + ) ) + +469 + `D¿wwš_R‘™Ë +Ð +uwšp + ); + +470 iàÐ +uwšp +-> +ev”_Ý’ed + ) + +472 + `Clo£d_R‘™Ë +Ð +uwšp + ); + +473 iàÐ + `Tžwš_Is_O³n +Ð +uwšp +-> +icÚp + ) ) + +474 + `D¿wIcÚ_R‘™Ë +( +uwšp +); + +476 + } +} + +480  + $Mªage_S‘_CÏss +Ð +uwšp +, +»s_þass +, +»s_Çme + ) + +481 +U£rwš + * +uwšp +; + +482 * +»s_þass +; + +483 * +»s_Çme +; + +485 iàÐ + `¡»ql +Ð +uwšp +-> +»s_þass +,„es_class ) && + +486 + `¡»ql +Ð +uwšp +-> +»s_Çme +,„es_name ) ) + +489 iàÐ( +uwšp +-> +»s_þass +è!ð +NULL + ) + +490 + `ä“ +Ð +uwšp +-> +»s_þass + ); + +492 iàÐ +»s_þass + =ð +NULL + ) + +493 +uwšp +-> +»s_þass + = +NULL +; + +496 +uwšp +-> +»s_þass + = + +497 + `®loÿ‹ +Ð, 1 + + `¡¾’ +( +»s_þass +) ); + +498 () + `¡rýy +Ð +uwšp +-> +»s_þass +,„es_class ); + +501 iàÐ( +uwšp +-> +»s_Çme +è!ð +NULL + ) + +502 + `ä“ +Ð +uwšp +-> +»s_Çme + ); + +504 iàÐ +»s_Çme + =ð +NULL + ) + +505 +uwšp +-> +»s_Çme + = +NULL +; + +508 +uwšp +-> +»s_Çme + = + +509 + `®loÿ‹ +Ð, 1 + + `¡¾’ +( +»s_Çme +) ); + +510 () + `¡rýy +Ð +uwšp +-> +»s_Çme +,„es_name ); + +513 + `Profže_P»·» +Ð +uwšp + ); + +514 +uwšp +-> +´•¬ed + = +TRUE +; + +516 + `Mªage_R‘™Ë +Ð +uwšp + ); + +517 + } +} + +521  + $Mªage_S‘_Name +Ð +uwšp +, +¡r + ) + +522 +U£rwš + * +uwšp +; + +523 * +¡r +; + +525 iàÐ( +uwšp +-> +wmÇme +è!ð +NULL + ) + +526 + `ä“ +Ð +uwšp +-> +wmÇme + ); + +528 +uwšp +-> +wmÇme + = + `®loÿ‹ +Ð, 1 + + `¡¾’ +( +¡r +) ); + +529 () + `¡rýy +Ð +uwšp +-> +wmÇme +, +¡r + ); + +531 iàÐ +uwšp +-> +id’t™y + =ð +NULL + ) + +533 +uwšp +-> +id’t™y + = + `®loÿ‹ +Ð, 1 + + `¡¾’ +( +¡r +) ); + +534 () + `¡rýy +Ð +uwšp +-> +id’t™y +, +¡r + ); + +537 + `Mªage_R‘™Ë +Ð +uwšp + ); + +538 + } +} + +542  + $Mªage_S‘_IcÚ_Name +Ð +uwšp +, +¡r + ) + +543 +U£rwš + * +uwšp +; + +544 * +¡r +; + +546 iàÐ( +uwšp +-> +icÚÇme +è!ð +NULL + ) + +547 + `ä“ +Ð +uwšp +-> +icÚÇme + ); + +549 +uwšp +-> +icÚÇme + = + `®loÿ‹ +Ð, 1 + + `¡¾’ +( +¡r +) ); + +550 () + `¡rýy +Ð +uwšp +-> +icÚÇme +, +¡r + ); + +551 + `Mªage_R‘™Ë +Ð +uwšp + ); + +552 + } +} + +556  + $Mªage_S‘_Ho¡Çme +Ð +uwšp +, +¡r + ) + +557 +U£rwš + * +uwšp +; + +558 * +¡r +; + +560 iàÐ( +uwšp +-> +ho¡Çme +è!ð +NULL + ) + +561 + `ä“ +Ð +uwšp +-> +ho¡Çme + ); + +563 +uwšp +-> +ho¡Çme + = + `®loÿ‹ +Ð, 1 + + `¡¾’ +( +¡r +) ); + +564 () + `¡rýy +Ð +uwšp +-> +ho¡Çme +, +¡r + ); + +565 + `Mªage_R‘™Ë +Ð +uwšp + ); + +566 + } +} + +570  + $Mªage_S‘_Commªd +Ð +uwšp +, +¡r + ) + +571 +U£rwš + * +uwšp +; + +572 * +¡r +; + +574 iàÐ +uwšp +-> +soá_kžl + ) + +576  + `Mªage_Cl›Á_De¡roy +(); + +577 + `Mªage_Cl›Á_De¡roy +Ð +uwšp + ); + +580 +uwšp +-> +§všg_¡©e + = +FALSE +; + +582 iàÐ( +uwšp +-> +commªd +è!ð +NULL + ) + +583 + `ä“ +Ð +uwšp +-> +commªd + ); + +585 +uwšp +-> +commªd + = + `®loÿ‹ +Ð, 1 + + `¡¾’ +( +¡r +) ); + +586 () + `¡rýy +Ð +uwšp +-> +commªd +, +¡r + ); + +587 + `Mªage_R‘™Ë +Ð +uwšp + ); + +588 + } +} + +592  + $Mªage_P»·» +Ð +uwšp + ) + +593 +U£rwš + * +uwšp +; + +595 iàÐ( +uwšp +-> +»s_þass + =ð +NULL +è&& (uwšp-> +»s_Çme + == NULL) && + +596 ( +uwšp +-> +wmÇme + !ð +NULL +) ) + +597 + `Mªage_S‘_CÏss +Ð +uwšp +, uwšp-> +wmÇme +, +NULL + ); + +598 + } +} + +602  + $Mªage_Layout +Ð +uwšp + ) + +603 +U£rwš + * +uwšp +; + +605 ià(! +uwšp +-> +´•¬ed +) + +606 + `Mªage_P»·» +Ð +uwšp + ); + +608 + `Profže_Layout +Ð +uwšp + ); + +609 +uwšp +-> +Ïyout + = +TRUE +; + +610 + } +} + +614 +U£rwš + * + $Mªage_Loÿ‹ +( +pos +) + +615 +TWPošt + +pos +; + +617  + `U£rwš_G‘ +( + `Tžwš_Loÿ‹ +( +pos +)); + +618 + } +} + +622  + $Mªage_S‘_Focus +Ð +uwšp + ) + +623 +U£rwš + * +uwšp +; + +625 +focus + = +uwšp +; + +626 ià( +focus + !ð +UWIN_NULL +) + +628 +focus +->focu ð +TRUE +; + +629 iàÐ + `Tžwš_Is_O³n +Ð +focus +-> +wšp + ) ) + +630 + `D¿wwš_Di¥Ïy_Focus +Ð +focus + ); + +632 + } +} + +636  + $Mªage_Un£t_Focus +() + +638 ià( +focus + !ð +UWIN_NULL +) + +640 +focus +->focu ð +FALSE +; + +641 iàÐ + `Tžwš_Is_O³n +Ð +focus +-> +wšp + ) ) + +642 + `D¿wwš_Di¥Ïy_Focus +Ð +focus + ); + +643 +focus + = +UWIN_NULL +; + +645 + } +} + +649  + $Mªage_Sw™ch_Focus +Ð +uwšp + ) + +650 +U£rwš + * +uwšp +; + +652 iàÐ +uwšp + !ð +focus + ) + +654 + `Mªage_Un£t_Focus +(); + +655 + `Mªage_S‘_Focus +Ð +uwšp + ); + +657 + } +} + +661  + #Mªage_Glob®_Cl›Á_Re¡riù +( +Ý +) \ + +662 + `glob®_»¡riù_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, \ + +663 + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_AUTOMATIC_SHRINK_BY_CLIENT +), \ + +664 + `glob®_»¡riù_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, \ + +665 + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_AUTOMATIC_CLOSE_BY_CLIENT +), +Ý + ) ) + + ) + +669  + #Mªage_Cl›Á_Re¡riù +( +uwšp +, +Ý +) \ + +670 + `wšdow_još_excursiÚ +Ð +uwšp +-> +wšp +, +REQUIRE_MANUAL_CLOSE +, \ + +671 (! + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_LSNR_TO_CLOSE_BY_CLIENT +)), \ + +672 { + `wšdow_još_excursiÚ +Ð +uwšp +-> +wšp +, +FIXED_COMPLETELY +, \ + +673 Ð +uwšp +-> +focus + && \ + +674 (! + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_LSNR_TO_CHANGE_BY_CLIENT +))), \ + +675 + `Mªage_Glob®_Cl›Á_Re¡riù +Ð +Ý + ) ) } ) \ + +676 + + ) + +679  + #Mªage_Cl›Á +( +Ý +) \ + +681 +U£rwš + * +cur_li¡’” +; \ + +682 +U£rwš + * +cur_subli¡’” +; \ + +683 +cur_li¡’” + = +li¡’” +; \ + +684 +cur_subli¡’” + = +subli¡’” +; \ + +685 iàÐ +subli¡’” + !ð +UWIN_NULL + ) \ + +687 iàÐ +li¡’” + !ð +UWIN_NULL + ) \ + +688 + `wšdow_još_excursiÚ +Ð +cur_li¡’” +-> +wšp +, +REQUIRE_MANUAL_CLOSE +, \ + +689 (! + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_LSNR_TO_CLOSE_BY_CLIENT +)), \ + +690 + `Mªage_Cl›Á_Re¡riù +Ð +cur_subli¡’” +, +Ý + ) ) \ + +692 + `Mªage_Cl›Á_Re¡riù +Ð +cur_subli¡’” +, +Ý + ) \ + +696 iàÐ +li¡’” + !ð +UWIN_NULL + ) \ + +697 + `Mªage_Cl›Á_Re¡riù +Ð +cur_li¡’” +, +Ý + ) \ + +699 + `Mªage_Glob®_Cl›Á_Re¡riù +Ð +Ý + ) \ + +701 } + + ) + +705  + $Mªage_S‘_Subli¡’” +Ð +uwšp + ) + +706 +U£rwš + * +uwšp +; + +708 +subli¡’” + = +uwšp +; + +710 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +subli¡’” +, +NOTE_LISTENER + ) ) + +711 + `Tžwš_NÙe_U£ +Ð +subli¡’” +-> +wšp + ); + +713 ià(! + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_LISTENER_TO_CLOSE +)) + +715 +subli¡’” +-> +»guÏr_mªu®_þo£ + = + +716 + `Tžwš_G‘_Wšdow_O±iÚ +Ð +subli¡’” +-> +wšp +, +REQUIRE_MANUAL_CLOSE + ); + +717 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +subli¡’” +-> +wšp +, +REQUIRE_MANUAL_CLOSE +, +TRUE + ); + +719 + } +} + +723  + $Mªage_Un£t_Subli¡’” +() + +725 iàÐ +subli¡’” + !ð +UWIN_NULL + ) + +727 iàÐÐ +li¡’” + !ð +UWIN_NULL + ) && + +728 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +li¡’” +, +NOTE_LISTENER + ) ) + +729 + `Tžwš_NÙe_U£ +Ð +li¡’” +-> +wšp + ); + +731 ià(! + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_LISTENER_TO_CLOSE +)) + +732 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +subli¡’” +-> +wšp +, +REQUIRE_MANUAL_CLOSE +, + +733 +subli¡’” +-> +»guÏr_mªu®_þo£ + ); + +735 +subli¡’” + = +UWIN_NULL +; + +737 + } +} + +742  + $Mªage_Sw™ch_Subli¡’” +Ð +uwšp + ) + +743 +U£rwš + * +uwšp +; + +745 iàÐ +uwšp + !ð +subli¡’” + ) + +747 + `Mªage_Un£t_Subli¡’” +(); + +748 iàÐ +uwšp + !ð +UWIN_NULL + ) + +749 + `Mªage_S‘_Subli¡’” +Ð +uwšp + ); + +751 + } +} + +755  + $Mªage_S‘_Li¡’” +Ð +uwšp + ) + +756 +U£rwš + * +uwšp +; + +758 +li¡’” + = +uwšp +; + +760 iàÐ +li¡’” + !ð +UWIN_NULL + ) + +762 + `Mªage_Un£t_Subli¡’” +(); + +764 +li¡’” +->li¡’” = +TRUE +; + +765 + `Tžwš_Aù_Modif›d +Ð +li¡’” +-> +wšp + ); + +767 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +li¡’” +, +NOTE_LISTENER + ) ) + +768 + `Tžwš_NÙe_U£ +Ð +li¡’” +-> +wšp + ); + +770 ià(! + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_LISTENER_TO_CLOSE +)) + +772 +li¡’” +-> +»guÏr_mªu®_þo£ + = + +773 + `Tžwš_G‘_Wšdow_O±iÚ +Ð +li¡’” +-> +wšp +, +REQUIRE_MANUAL_CLOSE + ); + +774 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +li¡’” +-> +wšp +, + +775 +REQUIRE_MANUAL_CLOSE +, +TRUE + ); + +778 + } +} + +782  + $Mªage_Un£t_Li¡’” +() + +784 +li¡’” +->li¡’” = +FALSE +; + +785 + `Tžwš_Aù_Modif›d +Ð +li¡’” +-> +wšp + ); + +787 ià(! + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_LISTENER_TO_CLOSE +)) + +788 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +li¡’” +-> +wšp +, +REQUIRE_MANUAL_CLOSE +, + +789 +li¡’” +-> +»guÏr_mªu®_þo£ + ); + +791 +li¡’” + = +UWIN_NULL +; + +792 + } +} + +796  + $Mªage_Un£t +Ð +uwšp + ) + +797 +U£rwš + * +uwšp +; + +799  + `Mªage_Do_Unzoom +(); + +801 iàÐ +uwšp + =ð +focus + ) + +802 + `Mªage_Un£t_Focus +(); + +804 iàÐ +uwšp + =ð +li¡’” + ) + +806 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +( +li¡’” +, +LISTENER_TIED_TO_ZOOM +) && + +807 +li¡’” +-> +zoomed + ) + +808 + `Mªage_Do_Unzoom +Ð +li¡’” +, +FALSE + ); + +809 + `Mªage_Un£t_Li¡’” +(); + +811 iàÐ +uwšp + =ð +subli¡’” + ) + +812 + `Mªage_Un£t_Subli¡’” +(); + +813 + } +} + +817 +TWReùªgË + + $Mªage_NeighbÜhood_ReùªgË +Ð +nbhd +, +ûÁ” +, +siz + ) + +818  +nbhd +; + +819 +TWPošt + +ûÁ” +; + +820 +Size + +siz +; + +822 +TWReùªgË + +»ù +; + +823  +hÜiz +, +v”t +; + +824  +dhÜiz +, +dv”t +; + +825  +çùÜ +; + +827 +çùÜ + = + `U£rGlob®s_G‘_V®ue +Ð +NEIGHBORHOOD_SHRINK_FACTOR + ); + +829 +dhÜiz + = 100 * + `Tžwš_G‘_DesktÝ_Size +(). +width +; + +830 +dv”t + = 100 * + `Tžwš_G‘_DesktÝ_Size +(). +height +; + +832 +hÜiz + = +nbhd + * +siz +. +width + * ( +dhÜiz + - ( +çùÜ +*siz.width)) / dhoriz; + +833 +hÜiz + +ð( +siz +. +width +/2); + +834 +»ù +. +Ëá_x + = +ûÁ” +. +x + - +hÜiz +; + +835 +»ù +. +right_x + = +ûÁ” +. +x + + +hÜiz +; + +837 +v”t + = +nbhd + * +siz +. +height + * ( +dv”t + - ( +çùÜ +*siz.height)) / dvert; + +838 +v”t + +ð( +siz +. +height +/2); + +839 +»ù +. +tÝ_y + = +ûÁ” +. +y + - +v”t +; + +840 +»ù +. +bÙtom_y + = +ûÁ” +. +y + + +v”t +; + +842  +»ù +; + +843 + } +} + +847  +boÞ + + $Mªage_NeighbÜhood_IcÚ_O³n +Ð +uwšp +, +ûÁ” + ) + +848 +U£rwš + * +uwšp +; + +849 +TWPošt + +ûÁ” +; + +851 +TWReùªgË + +»ù +; + +852 +Size + +siz +; + +853 +boÞ + +»suÉ +; + +855  + `Mªage_S¹_Tryšg +(); + +856 +boÞ + + `Mªage_Cª_Try_Li¡’”_Unzoom +(); + +857  + `Mªage_Fšish_Tryšg +(); + +859 +siz + = + `Tžwš_G‘_Size +Ð +uwšp +-> +icÚp + ); + +861 + `Mªage_S¹_Tryšg +(); + +862 + `glob®_»¡riù_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +864 +»suÉ + = + `Tžwš_O³n +Ð +uwšp +-> +icÚp +, +ûÁ” +, +siz + ); + +865 iàÐ(! +»suÉ +è&& + `Mªage_Cª_Try_Li¡’”_Unzoom +() ) + +866 +»suÉ + = + `Tžwš_O³n +Ð +uwšp +-> +icÚp +, +ûÁ” +, +siz + ); + +868 + `Mªage_Fšish_Tryšg +Ð +»suÉ + ); + +870 iàÐ +»suÉ + )  +TRUE +; + +872 +»ù + = + `Mªage_NeighbÜhood_ReùªgË +Ð0.75, +ûÁ” +, +siz + ); + +873  + `Tžwš_O³n_N—»¡_In_A»a +Ð +uwšp +-> +icÚp +, +»ù +, +ûÁ” +, +siz + ); + +874 + } +} + +878 +boÞ + + $Mªage_IcÚ_O³n +Ð +uwšp + ) + +879 +U£rwš + * +uwšp +; + +881 +TWReùªgË + +desk +, +icÚ¬— +, +»ù +, +¬— +, +bigg”_¬— +; + +882 +TWPošt + +ûÁ” +; + +883 +Size + +siz +; + +884 +boÞ + +fœ¡_nÚe + = +FALSE +; + +885 +boÞ + +£cÚd_nÚe + = +FALSE +; + +886 +boÞ + +icÚ_pos™iÚed +; + +887 +boÞ + +»suÉ +; + +889 iàÐÐ +uwšp +-> +þ›Á_¡©e + =ð +IÇùiveS‹ + ) || + +890 Ð +uwšp +-> +þ›Á_¡©e + =ð +IgnÜeS‹ + ) || + +891 Ð + `U£rwš_Group_Clo£d +( +uwšp +) && + +892 Ð +uwšp +-> +group + != uwinp ) ) || + +893 Ð! + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +SHOW_ICON + ) ) ) + +894  +FALSE +; + +896 iàÐ( +uwšp +-> +icÚ_pos™iÚed +) && + +897 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, + +898 +REQUIRE_PREVIOUS_ICON_POSITION + ) ) + +900 iàÐ + `Mªage_NeighbÜhood_IcÚ_O³n +Ð +uwšp +, + +901 + `Tžwš_G‘_Pos™iÚ +Ð +uwšp +-> +icÚp + ) ) ) + +902  +TRUE +; + +905 +icÚ_pos™iÚed + = ( +uwšp +->icon_positioned) && + +906 Ð + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, + +907 +PREFER_PREVIOUS_ICON_POSITION + ) || + +908 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, + +909 +REQUIRE_PREVIOUS_ICON_POSITION + ) ); + +911 +siz + = + `Tžwš_G‘_Size +Ð +uwšp +-> +icÚp + ); + +913 +desk + = + `Tžwš_G‘_DesktÝ_ReùªgË +(); + +915 iàÐ + `U£rGlob®s_G‘_O±iÚ +Ð +USE_ICON_AREA + ) ) + +917 +icÚ¬— +. +Ëá_x + = + `U£rGlob®s_G‘_V®ue +Ð +ICON_AREA_LEFT + ); + +918 +icÚ¬— +. +right_x + = + `U£rGlob®s_G‘_V®ue +Ð +ICON_AREA_RIGHT + ); + +919 +icÚ¬— +. +tÝ_y + = + `U£rGlob®s_G‘_V®ue +Ð +ICON_AREA_TOP + ); + +920 +icÚ¬— +. +bÙtom_y + = + `U£rGlob®s_G‘_V®ue +Ð +ICON_AREA_BOTTOM + ); + +923 +icÚ¬— + = +desk +; + +925 +bigg”_¬— + = +¬— + = +»ù + = +icÚ¬— +; + +927  ( +IcÚ_Pos™iÚ +) + `U£rGlob®s_G‘_V®ue +( + +928 +SECONDARY_ICON_PLACEMENT +) ) + +930  +IcÚ_TÝ +: + +931 +»ù +. +bÙtom_y + = +icÚ¬— +. +tÝ_y + + +siz +. +height + - 1; + +933  +IcÚ_BÙtom +: + +934 +»ù +. +tÝ_y + = +icÚ¬— +. +bÙtom_y + - +siz +. +height + + 1; + +936  +IcÚ_Leá +: + +937 +»ù +. +right_x + = +icÚ¬— +. +Ëá_x + + +siz +. +width + - 1; + +939  +IcÚ_Right +: + +940 +»ù +. +Ëá_x + = +icÚ¬— +. +right_x + - +siz +. +width + + 1; + +942  +IcÚ_NÚe +: + +943 +£cÚd_nÚe + = +TRUE +; + +944  +IcÚ_MiddË +: + +949  ( +IcÚ_Pos™iÚ +) + `U£rGlob®s_G‘_V®ue +( +ICON_PLACEMENT +) ) + +951  +IcÚ_NÚe +: + +952 +fœ¡_nÚe + = +TRUE +; + +955  +IcÚ_TÝ +: + +956 +»ù +. +tÝ_y + = +icÚ¬— +.top_y; + +957 +»ù +. +bÙtom_y + = +icÚ¬— +. +tÝ_y + + +siz +. +height + - 1; + +958 +¬— +. +bÙtom_y + = +icÚ¬— +. +tÝ_y + + +siz +. +height + - 1; + +959 +bigg”_¬— +. +bÙtom_y + = +icÚ¬— +. +tÝ_y + + (2* +siz +. +height +) - 1; + +961  +IcÚ_BÙtom +: + +962 +»ù +. +bÙtom_y + = +icÚ¬— +.bottom_y; + +963 +»ù +. +tÝ_y + = +icÚ¬— +. +bÙtom_y + - +siz +. +height + + 1; + +964 +¬— +. +tÝ_y + = +icÚ¬— +. +bÙtom_y + - +siz +. +height + + 1; + +965 +bigg”_¬— +. +tÝ_y + = +icÚ¬— +. +bÙtom_y + - (2* +siz +. +height +) + 1; + +967  +IcÚ_Leá +: + +968 +»ù +. +Ëá_x + = +icÚ¬— +.left_x; + +969 +»ù +. +right_x + = +icÚ¬— +. +Ëá_x + + +siz +. +width + - 1; + +970 +¬— +. +right_x + = +icÚ¬— +. +Ëá_x + + +siz +. +width + - 1; + +971 +bigg”_¬— +. +right_x + = +icÚ¬— +. +Ëá_x + + (2* +siz +. +width +) - 1; + +973  +IcÚ_Right +: + +974 +»ù +. +right_x + = +icÚ¬— +.right_x; + +975 +»ù +. +Ëá_x + = +icÚ¬— +. +right_x + - +siz +. +width + + 1; + +976 +¬— +. +Ëá_x + = +icÚ¬— +. +right_x + - +siz +. +width + + 1; + +977 +bigg”_¬— +. +Ëá_x + = +icÚ¬— +. +right_x + - (2* +siz +. +width +) + 1; + +981 + `COMPUTE_CENTER +Ð +»ù +, +ûÁ” + ); + +983 iàÐ +icÚ_pos™iÚed + ) + +985 +ûÁ” + = + `Tžwš_G‘_Pos™iÚ +Ð +uwšp +-> +icÚp + ); + +986 iàÐ +fœ¡_nÚe + ) + +987 +»suÉ + = + `Mªage_NeighbÜhood_IcÚ_O³n +Ð +uwšp +, +ûÁ” + ); + +989 +»suÉ + = + `Tžwš_O³n_N—»¡_In_A»a +Ð +uwšp +-> +icÚp +, + +990 +¬— +, +ûÁ” +, +siz + ); + +991 ià(! +»suÉ +) + +992 +»suÉ + = + `Tžwš_O³n_N—»¡_In_A»a +Ð +uwšp +-> +icÚp +, + +993 +icÚ¬— +, +ûÁ” +, +siz + ); + +994 ià(! +»suÉ +) + +995 +»suÉ + = + `Tžwš_O³n_N—»¡_In_A»a +Ð +uwšp +-> +icÚp +, + +996 +desk +, +ûÁ” +, +siz + ); + +999 iàÐ +fœ¡_nÚe + ) + +1001 +»suÉ + = + `Tžwš_O³n_Be¡_In_A»a +Ð +uwšp +-> +icÚp +, + +1002 +icÚ¬— +, +siz + ); + +1003 ià(! +»suÉ +) + +1004 +»suÉ + = + `Tžwš_O³n_Be¡_In_A»a +Ð +uwšp +-> +icÚp +, + +1005 +desk +, +siz + ); + +1008 ià( +£cÚd_nÚe +) + +1010 +»suÉ + = + `Tžwš_O³n_Be¡_In_A»a +Ð +uwšp +-> +icÚp +, + +1011 +¬— +, +siz + ); + +1012 ià(! +»suÉ +) + +1013 +»suÉ + = + `Tžwš_O³n_Be¡_In_A»a +Ð +uwšp +-> +icÚp +, + +1014 +bigg”_¬— +, +siz + ); + +1015 ià(! +»suÉ +) + +1016 +»suÉ + = + `Tžwš_O³n_N—»¡_In_A»a +Ð +uwšp +-> +icÚp +, + +1017 +icÚ¬— +, +ûÁ” +, +siz + ); + +1018 ià(! +»suÉ +) + +1019 +»suÉ + = + `Tžwš_O³n_N—»¡_In_A»a +Ð +uwšp +-> +icÚp +, + +1020 +desk +, +ûÁ” +, +siz + ); + +1024 +»suÉ + = + `Tžwš_O³n_N—»¡_In_A»a +Ð +uwšp +-> +icÚp +, + +1025 +¬— +, +ûÁ” +, +siz + ); + +1026 ià(! +»suÉ +) + +1027 +»suÉ + = + `Tžwš_O³n_N—»¡_In_A»a +Ð +uwšp +-> +icÚp +, + +1028 +bigg”_¬— +, +ûÁ” +, +siz + ); + +1029 ià(! +»suÉ +) + +1030 +»suÉ + = + `Tžwš_O³n_N—»¡_In_A»a +Ð +uwšp +-> +icÚp +, + +1031 +icÚ¬— +, +ûÁ” +, +siz + ); + +1032 ià(! +»suÉ +) + +1033 +»suÉ + = + `Tžwš_O³n_N—»¡_In_A»a +Ð +uwšp +-> +icÚp +, + +1034 +desk +, +ûÁ” +, +siz + ); + +1037 iàÐ +»suÉ + && ! +uwšp +-> +icÚ_pos™iÚed + ) + +1039 +uwšp +-> +icÚ_pos™iÚed + = +TRUE +; + +1040 + `Tžwš_S‘_Pos™iÚ +Ð +uwšp +-> +icÚp +, + +1041 + `Tžwš_G‘_C’‹r +Ð +uwšp +-> +icÚp + ) ); + +1044  +»suÉ +; + +1045 + } +} + +1049  + $Mªage_Upd©e_IcÚs +() + +1051 +Tžwšp + +wšp +; + +1052 +U£rwš + * +uwšp +; + +1053 +boÞ + +k“p_upd©šg +; + +1055 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +USE_ICONS +) ) + +1057 + `Tžwš_G’_Ju¡_O³Ãd_Wšdows +(); + +1058  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +1060 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +1061 iàÐÐ +uwšp +-> +wšp + =ðwš°è&& + `Tžwš_Is_O³n +Ðuwšp-> +icÚp + ) ) + +1062 + `Tžwš_Clo£ +Ð +uwšp +-> +icÚp + ); + +1065 + `Tžwš_G’_Ju¡_Modif›d_Wšdows +(); + +1066  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +1068 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +1069 iàÐÐ +uwšp +-> +wšp + =ðwš°è&& + `Tžwš_Is_O³n +Ðuwšp-> +icÚp + ) ) + +1070 + `Tžwš_Clo£ +Ð +uwšp +-> +icÚp + ); + +1073 +k“p_upd©šg + = +TRUE +; + +1074  +k“p_upd©šg + ) + +1076 +k“p_upd©šg + = +FALSE +; + +1077 + `Tžwš_G’_Clo£d_Wšdows +(); + +1078  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +1080 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +1081 iàÐÐ +uwšp +-> +icÚp + =ð +wšp + ) + +1082 && ( ! + `Tžwš_Is_O³n +Ð +uwšp +-> +wšp + ) ) + +1083 && +uwšp +-> +ev”_Ý’ed + ) + +1084 +k“p_upd©šg + |ð + `Mªage_IcÚ_O³n +Ð +uwšp + ); + +1088 + } +} + +1092  +boÞ + + gd¿wšg + = +FALSE +; + +1093  +boÞ + + g»d¿wšg + = +FALSE +; + +1097  + $Mªage_Upd©e_DesktÝ +() + +1099 +Tžwšp + +wšp +; + +1100 +U£rwš + * +uwšp +; + +1102 + `D¿wwš_S¹ +(); + +1104 + `Tžwš_G’_Ju¡_Clo£d_Wšdows +(); + +1105  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +1107 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +1108 iàÐ +uwšp +-> +cu¼’t_ty³ + =ð +body + ) + +1110 + `Mªage_Un£t +Ð +uwšp + ); + +1111 + `D¿wwš_Clo£ +Ð +uwšp +, + +1112 (! + `Tžwš_Is_Cov”ed +( + +1113 + `Tžwš_G‘_P»vious_ReùªgË +Ð +wšp + ) ) ) ); + +1114 +uwšp +-> +ouut_£Á + = +FALSE +; + +1115 iàÐÐ +uwšp +-> +þ›Á_¡©e + !ð +IgnÜeS‹ + ) && + +1116 Ð +uwšp +-> +þ›Á_¡©e + !ð +Nev”S‹ + ) ) + +1117 + `Clo£d_Add +Ð +uwšp + ); + +1121 + `D¿wIcÚ_Clo£ +Ð +uwšp + ); + +1124 ià(! ( + `Tžwš_Is_O³n +( +uwšp +-> +wšp +) || + +1125 + `Tžwš_Is_O³n +( +uwšp +-> +icÚp +) ) ) + +1127 iàÐ +uwšp +-> +þ›Á_¡©e + =ð +IgnÜeS‹ + ) + +1128 +uwšp +-> +wm_¡©e + = +IgnÜeS‹ +; + +1130 +uwšp +-> +wm_¡©e + = +IÇùiveS‹ +; + +1134 iàÐ +uwšp +-> +þ›Á_¡©e + !ð +Nev”S‹ + ) + +1135 + `Cl›Á_S‘_S‹ +Ð +uwšp + ); + +1139 + `Tžwš_G’_Ju¡_Modif›d_Wšdows +(); + +1140  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +1142 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +1143 iàÐÐ! +uwšp +-> +pos™iÚed + ) && + +1144 Ð +uwšp +-> +cu¼’t_ty³ + =ð +body + ) ) + +1145 + `Tžwš_S‘_Pos™iÚ +Ð +wšp +, + +1146 + `Tžwš_G‘_C’‹r +Ð +wšp + ) ); + +1149 iàÐ +d¿wšg + ) + +1151 + `Tžwš_G’_Ju¡_Modif›d_Wšdows +(); + +1152  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +1154 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +1155 iàÐ +uwšp +-> +cu¼’t_ty³ + =ð +body + ) + +1156 + `D¿wwš_D¿w +Ð +uwšp + ); + +1158 + `D¿wIcÚ_D¿w +Ð +uwšp + ); + +1163 + `Tžwš_G’_Ju¡_Modif›d_Wšdows +(); + +1164  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +1165 iàÐ + `Tžwš_Was_Aùu®ly_Modif›d +( +wšp +è|| +»d¿wšg + ) + +1167 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +1168 iàÐ +uwšp +-> +cu¼’t_ty³ + !ð +body + ) + +1169 + `D¿wIcÚ_Move_Clo£ +Ð +uwšp + ); + +1170 iàÐ +uwšp + =ð +sw™ch_li¡’” + ) + +1171 + `D¿wwš_Li¡’”_Move_Clo£ +Ð +uwšp +, + +1172 (! + `Tžwš_Is_Cov”ed +( + +1173 + `Tžwš_G‘_P»vious_ReùªgË +Ð +wšp + ) ) ) ); + +1175 + `D¿wwš_Move_Clo£ +Ð +uwšp +, + +1176 (! + `Tžwš_Is_Cov”ed +( + +1177 + `Tžwš_G‘_P»vious_ReùªgË +Ð +wšp + ) ) ) ); + +1180 + `Tžwš_G’_Ju¡_Modif›d_Wšdows +(); + +1181  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +1183 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +1184 iàÐ + `Tžwš_Was_Aùu®ly_Modif›d +( +wšp +è|| +»d¿wšg + ) + +1186 iàÐ +uwšp +-> +cu¼’t_ty³ + !ð +body + ) + +1188 + `D¿wIcÚ_Move_O³n +Ð +uwšp + ); + +1189 iàÐ +»d¿wšg + ) + +1190 + `D¿wIcÚ_Red¿w +Ð +uwšp + ); + +1192 iàÐ +uwšp + =ð +sw™ch_li¡’” + ) + +1193 + `D¿wwš_Li¡’”_Move_O³n +Ð +uwšp + ); + +1196 + `D¿wwš_Move_O³n +Ð +uwšp + ); + +1197 iàÐ +»d¿wšg + ) + +1198 + `D¿wwš_R‘™Ë +Ð +uwšp + ); + +1203 iàÐ +li¡’” + !ð +´ev_li¡’” + ) + +1205 iàÐÐ +li¡’” + !ð +UWIN_NULL + ) && + +1206 + `Tžwš_Was_Ju¡_Modif›d +Ð +li¡’” +-> +wšp + ) && + +1207 (! + `Tžwš_Was_Aùu®ly_Modif›d +Ð +li¡’” +-> +wšp + )) && + +1208 Ð +li¡’” +-> +cu¼’t_ty³ + =ð +body + ) ) + +1209 + `D¿wwš_Di¥Ïy_W¿µšg +Ð +li¡’” + ); + +1211 iàÐÐ +´ev_li¡’” + !ð +UWIN_NULL + ) && + +1212 + `Tžwš_Was_Ju¡_Modif›d +Ð +´ev_li¡’” +-> +wšp + ) && + +1213 (! + `Tžwš_Was_Aùu®ly_Modif›d +Ð +´ev_li¡’” +-> +wšp + )) && + +1214 Ð +´ev_li¡’” +-> +cu¼’t_ty³ + =ð +body + ) ) + +1215 + `D¿wwš_Di¥Ïy_W¿µšg +Ð +´ev_li¡’” + ); + +1219 iàÐÐ +touch + !ð +UWIN_NULL + ) && + +1220 + `Tžwš_Was_Ju¡_Modif›d +Ð +touch +-> +wšp + ) && + +1221 (! + `Tžwš_Was_Aùu®ly_Modif›d +Ð +touch +-> +wšp + )) && + +1222 Ð +touch +-> +cu¼’t_ty³ + =ð +body + ) ) + +1223 + `D¿wwš_Di¥Ïy_W¿µšg +Ð +touch + ); + +1227 + `Tžwš_G’_Ju¡_O³Ãd_Wšdows +(); + +1228  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +1230 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +1231 iàÐ +wšp + =ð +uwšp +->winp ) + +1233 +uwšp +-> +cu¼’t_ty³ + = +body +; + +1234 +uwšp +-> +sized + = +TRUE +; + +1235 iàÐ! +uwšp +-> +pos™iÚed + ) + +1236 + `Tžwš_S‘_Pos™iÚ +Ð +wšp +, + +1237 + `Tžwš_G‘_C’‹r +Ð +wšp + ) ); + +1238 + `D¿wwš_O³n +Ð +uwšp + ); + +1239 + `Clo£d_Remove +Ð +uwšp + ); + +1240 +uwšp +-> +wm_¡©e + = +NÜm®S‹ +; + +1244 iàÐ +uwšp + !ð +¹l_uwšp + ) + +1245 +uwšp +-> +cu¼’t_ty³ + = +icÚ +; + +1246 + `D¿wIcÚ_O³n +Ð +uwšp + ); + +1247 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +CLIENT_DRAWS_ICON + ) ) + +1248 +uwšp +-> +wm_¡©e + = +Cl›ÁIcÚS‹ +; + +1250 +uwšp +-> +wm_¡©e + = +IcÚicS‹ +; + +1252 iàÐ +uwšp +-> +cu¼’t_ty³ + !ð +¹l + ) + +1253 + `Cl›Á_S‘_S‹ +Ð +uwšp + ); + +1256 ià(! +d¿wšg + ) + +1258 + `Tžwš_G’_Ju¡_Clo£d_Wšdows +(); + +1259  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +1261 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +1262 iàÐ +uwšp +-> +wšp + == winp ) + +1263 + `D¿wwš_Unm­ +Ð +uwšp + ); + +1267 + `D¿wwš_Fšish +(); + +1269 +sw™ch_li¡’” + = +UWIN_NULL +; + +1270 +´ev_touch + = +touch +; + +1271 +touch + = +UWIN_NULL +; + +1272 + } +} + +1276  + $Mªage_Save_S‹ +Ð +uwšp + ) + +1277 +U£rwš + * +uwšp +; + +1279 +uwšp +-> +undo_¡amp + = + `Tžwš_G‘_Time¡amp +(); + +1281 +uwšp +-> +´ev_pos™iÚed + = uwšp-> +pos™iÚed +; + +1282 +uwšp +-> +´ev_sized + = uwšp-> +sized +; + +1283 +uwšp +-> +´ev_zoomed + = uwšp-> +zoomed +; + +1285 +uwšp +-> +´ev_group_¡©e + = uwšp-> +group_¡©e +; + +1287 +uwšp +-> +´ev_desœe + = + `Tžwš_G‘_Desœed +Ðuwšp-> +wšp + ); + +1288 +uwšp +-> +´ev_mš + = + `Tžwš_G‘_Mš +Ðuwšp-> +wšp + ); + +1289 +uwšp +-> +´ev_max + = + `Tžwš_G‘_Max +Ðuwšp-> +wšp + ); + +1291 +uwšp +-> +´ev_»zoom_»ù + = uwšp-> +»zoom_»ù +; + +1292 + } +} + +1296  + $Mªage_Exchªge_S‹ +Ð +uwšp + ) + +1297 +U£rwš + * +uwšp +; + +1299 +Size + +‹mp_size +; + +1301 iàÐ +Ï¡_¡amp + !ð +uwšp +-> +undo_¡amp + ) + +1304 + `SWAP_BOOL +Ð +uwšp +-> +´ev_pos™iÚed +, uwšp-> +pos™iÚed + ) + +1305 + `SWAP_BOOL +Ð +uwšp +-> +´ev_sized +, uwšp-> +sized + ) + +1306 + `SWAP_BOOL +Ð +uwšp +-> +´ev_zoomed +, uwšp-> +zoomed + ) + +1308 + `SWAP_INT +Ð +uwšp +-> +´ev_group_¡©e +, uwšp-> +group_¡©e + ) + +1310 + `SWAP_RECT +Ð +uwšp +-> +´ev_»zoom_»ù +, uwšp-> +»zoom_»ù + ) + +1312 +‹mp_size + = + `Tžwš_G‘_Desœed +Ð +uwšp +-> +wšp + ); + +1313 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, uwšp-> +´ev_desœe + ); + +1314 +uwšp +-> +´ev_desœe + = +‹mp_size +; + +1316 +‹mp_size + = + `Tžwš_G‘_Mš +Ð +uwšp +-> +wšp + ); + +1317 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, uwšp-> +´ev_mš + ); + +1318 +uwšp +-> +´ev_mš + = +‹mp_size +; + +1320 +‹mp_size + = + `Tžwš_G‘_Max +Ð +uwšp +-> +wšp + ); + +1321 + `Tžwš_S‘_Max +Ð +uwšp +-> +wšp +, uwšp-> +´ev_max + ); + +1322 +uwšp +-> +´ev_max + = +‹mp_size +; + +1323 + } +} + +1327  + $Mªage_Cªt_Undo +() + +1329 +´ev_li¡’” + = +li¡’” +; + +1330 + `Tžwš_S¹_T¿n§ùiÚ +(); + +1331 + `Tžwš_Comm™_T¿n§ùiÚ +(); + +1332 +Ï¡_¡amp + = + `Tžwš_G‘_Time¡amp +(); + +1333 + } +} + +1337  + $Mªage_S¹ +() + +1339 iàÐ + `Tžwš_T¿n§ùiÚ_D•th +() == 0 ) + +1340 +´ev_li¡’” + = +li¡’” +; + +1341 + `Tžwš_S¹_T¿n§ùiÚ +(); + +1342 + } +} + +1346  + $Mªage_Re¡¬t +() + +1348 + `Tžwš_AbÜt_T¿n§ùiÚ +(); + +1349 + `Tžwš_S¹_T¿n§ùiÚ +(); + +1350 + } +} + +1354 +boÞ + +Mªage_R•ÝuÏ‹_Sšû +(); + +1355 +boÞ + +Mªage_Agg»ssive_R•ÝuÏtiÚ +(); + +1359  +boÞ + + $Mªage_Unzoom_R•ÝuÏtiÚ +() + +1361 +TimeSmp + +»pÝ_sšû +; + +1362 +Tžwšp + +wšp +; + +1363 +U£rwš + * +uwšp +; + +1364 +boÞ + +»suÉ + = +FALSE +; + +1366 +»pÝ_sšû + = +Ï¡_¡amp +; + +1368 + `Tžwš_G’_Ju¡_Clo£d_Wšdows +(); + +1369  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +1371 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +1372 iàÐÐ +uwšp +-> +cu¼’t_ty³ + =ð +body + ) && + +1373 ÐÐ +uwšp +-> +zoomed + ) || + +1374 ÐÐ +uwšp +-> +undo_¡amp + =ð +Ï¡_¡amp + ) && + +1375 Ð +uwšp +-> +´ev_zoomed + ) ) ) ) + +1377 ià(! + `U£rGlob®s_G‘_O±iÚ +( + +1378 +ONLY_REPOP_SINCE_ON_AUTO_UNZOOM +) ) + +1379 +»pÝ_sšû + = ( +TimeSmp +)0; + +1380 iàÐ +uwšp +-> +zoom_¡amp + < +»pÝ_sšû + ) + +1381 +»pÝ_sšû + = +uwšp +-> +zoom_¡amp +; + +1385 + `Tžwš_G’_Ju¡_Modif›d_Wšdows +(); + +1386  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +1388 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +1389 iàÐÐ +uwšp +-> +cu¼’t_ty³ + =ð +body + ) && + +1390 (! +uwšp +-> +zoomed + ) && + +1391 Ð +uwšp +-> +undo_¡amp + =ð +Ï¡_¡amp + ) && + +1392 Ð +uwšp +-> +´ev_zoomed + ) ) + +1394 ià(! + `U£rGlob®s_G‘_O±iÚ +( + +1395 +ONLY_REPOP_SINCE_ON_AUTO_UNZOOM +) ) + +1396 +»pÝ_sšû + = ( +TimeSmp +)0; + +1397 iàÐ +uwšp +-> +zoom_¡amp + < +»pÝ_sšû + ) + +1398 +»pÝ_sšû + = +uwšp +-> +zoom_¡amp +; + +1402 iàÐ +»pÝ_sšû + < +Ï¡_¡amp + ) + +1404 + `u£r_glob®_još_excursiÚ +( + +1405 +REQUIRE_PREV_POS_ON_AUTO_REPOP +, +TRUE +, + +1407 iàÐ + `Mªage_R•ÝuÏ‹_Sšû +( + +1408 +»pÝ_sšû +, +FALSE +, FALSE, +TRUE + ) ) + +1409 +»suÉ + = +TRUE +; + +1411 iàÐ + `Mªage_R•ÝuÏ‹_Sšû +( + +1412 +»pÝ_sšû +, +FALSE +, FALSE, +TRUE + ) ) + +1413 +»suÉ + = +TRUE +; + +1416  +»suÉ +; + +1417 + } +} + +1421  +boÞ + + $Mªage_Fšish_R•ÝuÏtiÚ +() + +1423 +boÞ + +»suÉ +; + +1425 +»suÉ + = +FALSE +; + +1427 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +AUTO_REPOPULATE_LAST +) ) + +1428 iàÐ + `Mªage_R•ÝuÏ‹_Sšû +( + +1429 +Ï¡_¡amp +, +FALSE +, FALSE, +TRUE + ) ) + +1430 +»suÉ + = +TRUE +; + +1432 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_AGGRESSIVE_REPOPULATION +) ) + +1433 iàÐ + `Mªage_Agg»ssive_R•ÝuÏtiÚ +() ) + +1434 +»suÉ + = +TRUE +; + +1436 iàÐ + `U£rGlob®s_G‘_O±iÚ +( + +1437 +AUTO_REPOPULATE_ON_AUTO_UNZOOM +) ) + +1438 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +1440 iàÐ + `Mªage_Unzoom_R•ÝuÏtiÚ +() ) + +1441 +»suÉ + = +TRUE +; + +1445  +»suÉ +; + +1446 + } +} + +1450  +Mªage_Auto_PrÜ©e +(); + +1451  +Mªage_Ord”ed_Desœe +(); + +1453  + $Mªage_Fšish +Ð +»suÉ + ) + +1454 +boÞ + +»suÉ +; + +1456  + `Mªage_Ord”ed_Desœe +(); + +1457 +boÞ + +®low_»pÝ_shršk +, +ÿn_»pÝ +, +ÿn_size +; + +1459 iàÐ + `Tžwš_T¿n§ùiÚ_D•th +() > 1 ) + +1460 + `Tžwš_Comm™_T¿n§ùiÚ +(); + +1462 ià(! +»suÉ +) + +1464 + `Tžwš_AbÜt_T¿n§ùiÚ +(); + +1465 + `D¿w_FÏsh +(); + +1470 +Ï¡_¡amp + = + `Tžwš_G‘_Time¡amp +(); + +1472 +®low_»pÝ_shršk + = + +1473 + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTOMATIC_SHRINK +) && + +1474 + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTO_SHRINK_MORE_RECENT +) && + +1475 + `U£rGlob®s_G‘_O±iÚ +( + +1476 +ALLOW_AUTO_SHRINK_ON_AUTO_REPOP +); + +1478 +ÿn_»pÝ + = + `Layout_DÚe +() || + +1479 + `U£rGlob®s_G‘_O±iÚ +Ð +ENABLE_AUTO_REPOP_DURING_LAYOUT + ); + +1481 +ÿn_size + = + `Layout_DÚe +() || + +1482 + `U£rGlob®s_G‘_O±iÚ +Ð +ENABLE_AUTO_SIZING_DURING_LAYOUT + ); + +1484 + `Mªage_Upd©e_IcÚs +(); + +1486 iàÐ +®low_»pÝ_shršk + && +ÿn_size + && + +1487 + `U£rGlob®s_G‘_O±iÚ +( +AUTO_DESIRED_ENLARGE +) ) + +1488 + `Mªage_Ord”ed_Desœe +(); + +1490 iàÐ +ÿn_»pÝ + && + `Mªage_Fšish_R•ÝuÏtiÚ +() ) + +1491 + `Mªage_Upd©e_IcÚs +(); + +1493 iàÐ +ÿn_size + && + +1494 + `U£rGlob®s_G‘_O±iÚ +( +AUTO_DESIRED_ENLARGE +) ) + +1495 + `Mªage_Ord”ed_Desœe +(); + +1497 iàÐ +ÿn_size + && + +1498 + `U£rGlob®s_G‘_O±iÚ +( +AUTO_PRORATE +) ) + +1499  +TRUE + ) + +1501 + `Mªage_Auto_PrÜ©e +(); + +1503 iàÐ +ÿn_size + && + +1504 + `U£rGlob®s_G‘_O±iÚ +( + +1505 +TRY_REPOP_AGAIN_AFT_AUTO_PRORATE +) && + +1506 + `Mªage_Fšish_R•ÝuÏtiÚ +() ) + +1507 + `Mªage_Upd©e_IcÚs +(); + +1512 + `Mªage_Upd©e_DesktÝ +(); + +1513 + `Tžwš_Comm™_T¿n§ùiÚ +(); + +1516 + } +} + +1520 +boÞ + + $Mªage_Fšish_Fixed_Com¶‘–y +Ð +uwšp +, +»suÉ + ) + +1521 +U£rwš + * +uwšp +; + +1522 +boÞ + +»suÉ +; + +1524 iàÐ +»suÉ + && ( +uwšp + !ð +UWIN_NULL + ) ) + +1525 + `wšdow_excursiÚ +Ð +uwšp +-> +wšp +, +FIXED_COMPLETELY +, +TRUE +, + +1526 + `Mªage_Fšish +Ð +TRUE + ) ) + +1528 + `Mªage_Fšish +Ð +»suÉ + ); + +1529  +»suÉ +; + +1530 + } +} + +1534 +boÞ + + $Mªage_Fšish_Fixed_Size +Ð +uwšp +, +»suÉ + ) + +1535 +U£rwš + * +uwšp +; + +1536 +boÞ + +»suÉ +; + +1538 iàÐ +»suÉ + && ( +uwšp + !ð +UWIN_NULL + ) ) + +1539 + `wšdow_excursiÚ +Ð +uwšp +-> +wšp +, +FIXED_SIZE +, +TRUE +, + +1540 + `Mªage_Fšish +Ð +TRUE + ) ) + +1542 + `Mªage_Fšish +Ð +»suÉ + ); + +1543  +»suÉ +; + +1544 + } +} + +1548 +boÞ + + $Mªage_Fšish_Locked +Ð +uwšp +, +»suÉ + ) + +1549 +U£rwš + * +uwšp +; + +1550 +boÞ + +»suÉ +; + +1552 iàÐ +»suÉ + && ( +uwšp + !ð +UWIN_NULL + ) ) + +1553 + `wšdow_excursiÚ +Ð +uwšp +-> +wšp +, +REQUIRE_MANUAL_CLOSE +, +TRUE +, + +1554 + `Mªage_Fšish +Ð +TRUE + ) ) + +1556 + `Mªage_Fšish +Ð +»suÉ + ); + +1557  +»suÉ +; + +1558 + } +} + +1562 +boÞ + + $Mªage_Fšish_MšÃd +Ð +uwšp +, +»suÉ + ) + +1563 +U£rwš + * +uwšp +; + +1564 +boÞ + +»suÉ +; + +1566 iàÐ +»suÉ + && ( +uwšp + !ð +UWIN_NULL + ) ) + +1567 + `mš_excursiÚ +Ð +uwšp +-> +wšp +, + +1568 + `wšdow_excursiÚ +Ð +uwšp +-> +wšp +, +REQUIRE_MANUAL_CLOSE +, +TRUE +, + +1569 + `Mªage_Fšish +Ð +TRUE + ) ) ) + +1571 + `Mªage_Fšish +Ð +»suÉ + ); + +1572  +»suÉ +; + +1573 + } +} + +1577  + #Mªage_Cl›Á_Fšish_MšÃd +( +uwšp +, +Ý +) \ + +1578 + `Mªage_Cl›Á +( \ + +1580 +Ý +; \ + +1581 + `Mªage_Fšish_MšÃd +Ð +uwšp +, +TRUE + ); \ + +1582 } ) + + ) + +1586  + $Mªage_Undo_S¹ +() + +1588 +Tžwšp + +wšp +; + +1589 +U£rwš + * +uwšp +; + +1591 + `Tžwš_Undo +(); + +1593 + `Tžwš_G’_Ju¡_Clo£d_Wšdows +(); + +1594  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +1596 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +1597 iàÐ +uwšp +-> +wšp + == winp ) + +1598 + `Mªage_Exchªge_S‹ +Ð +uwšp + ); + +1601 + `Tžwš_G’_Ju¡_Modif›d_Wšdows +(); + +1602  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +1604 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +1605 iàÐ +uwšp +-> +wšp + == winp ) + +1606 + `Mªage_Exchªge_S‹ +Ð +uwšp + ); + +1609 + `Tžwš_G’_Ju¡_O³Ãd_Wšdows +(); + +1610  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +1612 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +1613 iàÐ +uwšp +-> +wšp + == winp ) + +1614 + `Mªage_Exchªge_S‹ +Ð +uwšp + ); + +1617 + `Tžwš_CÚtšue_T¿n§ùiÚ +(); + +1619 iàÐ +li¡’” + !ð +´ev_li¡’” + ) + +1621 iàÐ +li¡’” + !ð +UWIN_NULL + ) + +1623 +li¡’” +->li¡’” = +FALSE +; + +1624 + `Tžwš_Aù_Modif›d +Ð +li¡’” +-> +wšp + ); + +1627 + `SWAP_UWINP +Ð +li¡’” +, +´ev_li¡’” + ) + +1629 +touch + = +´ev_touch +; + +1631 iàÐ +li¡’” + !ð +UWIN_NULL + ) + +1633 +li¡’” +->li¡’” = +TRUE +; + +1634 + `Tžwš_Aù_Modif›d +Ð +li¡’” +-> +wšp + ); + +1638 + } +} + +1642  + $Mªage_Undo +() + +1644 +Tžwšp + +wšp +; + +1645 +U£rwš + * +uwšp +; + +1647 + `Mªage_Undo_S¹ +(); + +1649 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +USE_ICONS +) ) + +1651 + `Tžwš_G’_Ju¡_Clo£d_Wšdows +(); + +1652  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +1654 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +1655 ià(! ( + `Tžwš_Is_O³n +Ð +uwšp +-> +wšp + ) || + +1656 + `Tžwš_Is_O³n +Ð +uwšp +-> +icÚp + ) ) ) + +1657 + `Mªage_IcÚ_O³n +Ð +uwšp + ); + +1661 + `u£r_glob®_excursiÚ +Ð +AUTO_PRORATE +, +FALSE +, + +1662 + `u£r_glob®_excursiÚ +Ð +AUTO_REPOPULATE_LAST +, +FALSE +, + +1663 + `u£r_glob®_excursiÚ +Ð +ALLOW_AGGRESSIVE_REPOPULATION +, +FALSE +, + +1664 + `Mªage_Fšish +Ð +TRUE + ) + +1666 + } +} + +1670  + $Mªage_Red¿w +Ð +uwšp + ) + +1671 +U£rwš + * +uwšp +; + +1673 iàÐ +uwšp +-> +cu¼’t_ty³ + =ð +body + ) + +1674 + `D¿wwš_Red¿w +( +uwšp +); + +1676 + `D¿wIcÚ_Red¿w +( +uwšp +); + +1677 + } +} + +1681  + $Mªage_Red¿w_AÎ +() + +1683 +Tžwšp + +wšp +; + +1685 iàÐ + `D¿wwš_Red¿w_AÎ +Ð + `Tžwš_G‘_DesktÝ_ReùªgË +() ) ) + +1688 + `Tžwš_G’_O³n_Wšdows +(); + +1689  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +1690 + `Mªage_Red¿w +Ð + `U£rwš_G‘ +( +wšp +) ); + +1691 + } +} + +1695  + $Mªage_Fšish_Layout +() + +1697 + `Mªage_S¹ +(); + +1698 + `Layout_Fšish +(); + +1699 + `Mªage_Fšish +Ð +TRUE + ); + +1700 + } +} + +1704  + $Mªage_In™Ÿl_IcÚ_O³n +Ð +uwšp + ) + +1705 +U£rwš + * +uwšp +; + +1707 + `Mªage_S¹ +(); + +1708 + `Tžwš_NÙe_U£ +Ð +uwšp +-> +wšp + ); + +1709 iàÐ +uwšp +-> +þ›Á_¡©e + !ð +IgnÜeS‹ + ) + +1711 + `Clo£d_Add +Ð +uwšp + ); + +1712 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +USE_ICONS +) ) + +1714 ià(! +uwšp +-> +Ïyout_found + ) + +1715 + `Mªage_IcÚ_O³n +Ð +uwšp + ); + +1717 + `glob®_excursiÚ +Ð +ENABLE_GRAVITY +, +FALSE +, + +1718 + `u£r_wšdow_excursiÚ +Ð +uwšp +, + +1719 +REQUIRE_PREVIOUS_ICON_POSITION +, +TRUE +, + +1720 + `Mªage_IcÚ_O³n +Ð +uwšp + ) ) ) + +1723 + `Mªage_Fšish +Ð +TRUE + ); + +1724 + } +} + +1728  + $Mªage_P»·»_O³n +Ð +uwšp + ) + +1729 +U£rwš + * +uwšp +; + +1731 ià(! +uwšp +-> +Ïyout +) + +1732 + `Mªage_Layout +Ð +uwšp + ); + +1734 + `Tžwš_S‘_Pos™iÚ +Ð +uwšp +-> +wšp +, + +1735 + `Tžwš_G‘_C’‹r +Ð +uwšp +-> +wšp + ) ); + +1737 + `Tžwš_S‘_Pos™iÚ +Ð +uwšp +-> +icÚp +, + +1738 + `Tžwš_G‘_C’‹r +Ð +uwšp +-> +icÚp + ) ); + +1740 + `D¿wwš_In£¹ +Ð +uwšp + ); + +1741 + } +} + +1745  + $Mªage_NÙe_Ouut +Ð +uwšp + ) + +1746 +U£rwš + * +uwšp +; + +1748 ià(! +uwšp +-> +Ïyout +) + +1749 + `Mªage_Layout +Ð +uwšp + ); + +1751 iàÐ + `Tžwš_Is_O³n +Ð +uwšp +-> +wšp + ) ) + +1753 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +NOTE_OPEN_OUTPUT + ) ) + +1754 + `Tžwš_NÙe_U£ +Ð +uwšp +-> +wšp + ); + +1756 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +NOTE_CLOSED_OUTPUT + ) ) + +1757 + `Tžwš_NÙe_U£ +Ð +uwšp +-> +wšp + ); + +1759 ià(! +uwšp +-> +ouut_£Á +) + +1761 +uwšp +-> +ouut_£Á + = +TRUE +; + +1762 iàÐ + `Tžwš_Is_O³n +( +uwšp +-> +icÚp +) ) + +1763 + `D¿wIcÚ_NÙe_Ouut +Ð +uwšp + ); + +1765 + } +} + +1769  + $Mªage_NÙe_IÅut +Ð +uwšp + ) + +1770 +U£rwš + * +uwšp +; + +1772 iàÐ + `Tžwš_Is_O³n +Ð +uwšp +-> +wšp + ) ) + +1774 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +NOTE_OPEN_INPUT + ) ) + +1775 + `Tžwš_NÙe_U£ +Ð +uwšp +-> +wšp + ); + +1776 iàÐÐ +uwšp + =ð +li¡’” + ) && + +1777 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +NOTE_LISTENER_INPUT + ) ) + +1778 + `Tžwš_NÙe_U£ +Ð +uwšp +-> +wšp + ); + +1780 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +NOTE_CLOSED_INPUT + ) ) + +1781 + `Tžwš_NÙe_U£ +Ð +uwšp +-> +wšp + ); + +1782 + } +} + +1786  + $Mªage_In™_RŽ +() + +1788 +U£rwš + * +uwšp +; + +1790 + `Mªage_S¹ +(); + +1791 +uwšp + = + `Mªage_In™_Wšdow +(); + +1792 +¹l_uwšp + = +uwšp +; + +1794 +uwšp +-> +wšnum + = 0; + +1795 +uwšp +-> +cÚÃùiÚ + = -1; + +1797 +uwšp +-> +þ›Á_¡©e + = +Nev”S‹ +; + +1798 +uwšp +-> +cu¼’t_ty³ + = +¹l +; + +1799 +uwšp +-> +Ïyout + = +TRUE +; + +1800 +uwšp +-> +Ïyout_found + = +TRUE +; + +1802 + `U£rwš_S‘_Wšdow_O±iÚ +Ð +uwšp +, +SHOW_ICON +, + +1803 + `U£rGlob®s_G‘_O±iÚ +( +USE_RTL_ICON +) ); + +1805 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +uwšp +-> +icÚp +, +FIXED_SIZE +, +TRUE + ); + +1807 + `U£rwš_S‘_Wšdow_O±iÚ +Ð +uwšp +, +SAVE_IN_LAYOUT +, +FALSE + ); + +1808 + `U£rwš_S‘_Wšdow_O±iÚ +Ð +uwšp +, +CONSIDER_FOR_REPOPULATION +, +FALSE + ); + +1810 + `D¿wIcÚ_In™_RŽ +Ð +uwšp + ); + +1812 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +USE_ICONS +) ) + +1813 + `Mªage_IcÚ_O³n +Ð +uwšp + ); + +1815 + `Mªage_Fšish +Ð +TRUE + ); + +1816 + } +} + +1820  + $Mªage_S¹_R•ašt +() + +1822 + `Tžwš_S¹_T¿n§ùiÚ +(); + +1823 + } +} + +1827  + $Mªage_R•ašt_Reù +Ð +»ù + ) + +1828 +TWReùªgË + +»ù +; + +1830 + `Tžwš_Modify_Cov”ed_Wšdows +Ð +»ù + ); + +1831 + `D¿wwš_D¿w_Background +Ð +»ù + ); + +1832 + } +} + +1836  + $Mªage_Fšish_R•ašt +() + +1838 +Tžwšp + +wšp +; + +1839 + `Tžwš_Comm™_T¿n§ùiÚ +(); + +1841 + `Tžwš_G’_Ju¡_Modif›d_Wšdows +(); + +1842  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +1844 + `Mªage_Red¿w +Ð + `U£rwš_G‘ +( +wšp +) ); + +1847 + `Mªage_Cªt_Undo +(); + +1848 + } +} + +1852  + $Mªage_S‘_DesktÝ_Size +Ð +desksiz + ) + +1853 +Size + +desksiz +; + +1855 + `Tžwš_S‘_DesktÝ_Size +Ð +desksiz + ); + +1856 + `D¿wwš_D¿w_Background +Ð + `Tžwš_G‘_DesktÝ_ReùªgË +() ); + +1857 + } +} + +1861  + $Mªage_ReÜgªize_DesktÝ +Ð +desksiz + ) + +1862 +Size + +desksiz +; + +1864 +Tžwšp + +wšp +, +h—d +, +middË +, +ž +; + +1865 +U£rwš + * +uwšp +; + +1866 +TWPošt + +ûÁ” +; + +1867 +TWPošt + +pos +; + +1868 +TWReùªgË + +»ù +; + +1869 +Size + +siz +; + +1870 +Size + +Þd_desksiz +; + +1871 +TWReùªgË + +Þd_desk»ù +, +desk»ù +; + +1873 +h—d + = +middË + = +ž + = +WIN_NULL +; + +1875 + `Tžwš_G’_O³n_Wšdows +(); + +1876  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +1878 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +1879 iàÐ +uwšp +-> +cu¼’t_ty³ + !ð +body + ) + +1881 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +USE_ICONS +) && + +1882 Ð +uwšp + !ð +¹l_uwšp + ) ) + +1884 iàÐ +ž + =ð +WIN_NULL + )až = +wšp +; + +1885 iàÐ +middË + =ð +WIN_NULL + ) middË = +wšp +; + +1886 + `Tžwš_Put_D©a +Ð +wšp +, +h—d + ); + +1887 +h—d + = +wšp +; + +1890 iàÐ + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +REQUIRE_MANUAL_CLOSE + ) ) + +1892 iàÐ +middË + =ð +WIN_NULL + ) + +1894 iàÐ +ž + =ð +WIN_NULL + )až = +wšp +; + +1895 + `Tžwš_Put_D©a +Ð +wšp +, +h—d + ); + +1896 +h—d + = +wšp +; + +1897 +middË + = +wšp +; + +1899 iàÐ +middË + =ð +ž + ) + +1901 + `Tžwš_Put_D©a +Ð +ž +, +wšp + ); + +1902 + `Tžwš_Put_D©a +Ð +wšp +, +WIN_NULL + ); + +1903 +ž + = +wšp +; + +1904 +middË + = +wšp +; + +1908 + `Tžwš_Put_D©a +Ð +wšp +, + `Tžwš_G‘_D©a +Ð +middË + ) ); + +1909 + `Tžwš_Put_D©a +Ð +middË +, +wšp + ); + +1910 +middË + = +wšp +; + +1915 iàÐ +h—d + =ð +WIN_NULL + ) + +1916 +h—d + = +wšp +; + +1918 + `Tžwš_Put_D©a +Ð +ž +, +wšp + ); + +1919 + `Tžwš_Put_D©a +Ð +wšp +, +WIN_NULL + ); + +1920 +ž + = +wšp +; + +1923 + `Tžwš_Auto_Clo£ +Ð +wšp + ); + +1926 +Þd_desksiz + = + `Tžwš_G‘_DesktÝ_Size +(); + +1927 +Þd_desk»ù + = + `Tžwš_G‘_DesktÝ_ReùªgË +(); + +1928 + `Tžwš_S‘_DesktÝ_Size +Ð +desksiz + ); + +1929 +desksiz + = + `Tžwš_G‘_DesktÝ_Size +(); + +1930 +desk»ù + = + `Tžwš_G‘_DesktÝ_ReùªgË +(); + +1932 + `Tžwš_G’_Clo£d_Wšdows +(); + +1933  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +1935 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +1937 iàÐ +uwšp +-> +wšp + == winp ) + +1938 + `Mªage_R‘™Ë +Ð +uwšp + ); + +1940 +ûÁ” + = + `Tžwš_G‘_C’‹r +Ð +wšp + ); + +1941 +pos + = + `Tžwš_G‘_Pos™iÚ +Ð +wšp + ); + +1942 +»ù + = + `Tžwš_G‘_ReùªgË +Ð +wšp + ); + +1944 +siz + = + `Tžwš_G‘_Size +Ð +wšp + ); + +1946 iàÐ +desksiz +. +width + < +Þd_desksiz +.width ) + +1948 +siz +. +width + = ( siz.width * +desksiz +.width ) / + +1949 +Þd_desksiz +. +width +; + +1950 +ûÁ” +. +x + = ( c’‹r.x * +desksiz +. +width + ) / + +1951 +Þd_desksiz +. +width +; + +1952 +pos +. +x + = (…os.x * +desksiz +. +width + ) / + +1953 +Þd_desksiz +. +width +; + +1955 iàÐ +»ù +. +right_x + =ð +Þd_desk»ù +.right_x ) + +1957 +ûÁ” +. +x + +ðÐ +desksiz +. +width + - +Þd_desksiz +.width ); + +1958 +pos +. +x + +ðÐ +desksiz +. +width + - +Þd_desksiz +.width ); + +1960 iàÐ +»ù +. +Ëá_x + != 0 ) + +1962 +ûÁ” +. +x + = ( c’‹r.x * +desksiz +. +width + ) / + +1963 +Þd_desksiz +. +width +; + +1964 +pos +. +x + = (…os.x * +desksiz +. +width + ) / + +1965 +Þd_desksiz +. +width +; + +1968 iàÐ +desksiz +. +height + < +Þd_desksiz +.height ) + +1970 +siz +. +height + = ( siz.heighˆ* +desksiz +.height ) / + +1971 +Þd_desksiz +. +height +; + +1972 +ûÁ” +. +y + = ( c’‹r.y * +desksiz +. +height + ) / + +1973 +Þd_desksiz +. +height +; + +1974 +pos +. +y + = (…os.y * +desksiz +. +height + ) / + +1975 +Þd_desksiz +. +height +; + +1977 iàÐ +»ù +. +bÙtom_y + =ð +Þd_desk»ù +.bottom_y ) + +1979 +ûÁ” +. +y + +ðÐ +desksiz +. +height + - +Þd_desksiz +.height ); + +1980 +pos +. +y + +ðÐ +desksiz +. +height + - +Þd_desksiz +.height ); + +1982 iàÐ +»ù +. +tÝ_y + != 0 ) + +1984 +ûÁ” +. +y + = ( c’‹r.y * +desksiz +. +height + ) / + +1985 +Þd_desksiz +. +height +; + +1986 +pos +. +y + = (…os.y * +desksiz +. +height + ) / + +1987 +Þd_desksiz +. +height +; + +1990 + `S‘_Mš_Size +Ð +siz +, siz, + `Tžwš_G‘_Max +Ð +wšp + ) ) + +1991 + `S‘_Max_Size +Ð +siz +, siz, + `Tžwš_G‘_Mš +Ð +wšp + ) ) + +1993 + `Tžwš_S‘ +Ð +wšp +, +ûÁ” +, +siz + ); + +1994 + `Tžwš_S‘_Pos™iÚ +Ð +wšp +, +pos + ); + +1997 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +USE_ICONS +) ) + +1998 + `Mªage_IcÚ_O³n +Ð +¹l_uwšp + ); + +2000  +wšp + = +h—d +; wš°!ð +WIN_NULL +; + +2001 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +2003 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +2004 iàÐ +uwšp +-> +cu¼’t_ty³ + =ð +body + ) + +2005 + `Tžwš_O³n_N—»¡_In_A»a +Ð +wšp +, +desk»ù +, + +2006 + `Tžwš_G‘_C’‹r +Ð +wšp + ), + `Tžwš_G‘_Size +( winp ) ); + +2007 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +USE_ICONS +) ) + +2008 + `Mªage_IcÚ_O³n +Ð +uwšp + ); + +2011 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +AUTO_REPOP_ON_DESKTOP_RESIZE +) ) + +2012 + `Mªage_R•ÝuÏ‹_Sšû +Ð( +TimeSmp +)0, +TRUE +, +FALSE +, TRUE ); + +2014 + } +} + +2018  + $Mªage_Resize_DesktÝ +Ð +desksiz + ) + +2019 +Size + +desksiz +; + +2021 +d¿wšg + = +TRUE +; + +2022 + `Mªage_S¹ +(); + +2023 + `Mªage_ReÜgªize_DesktÝ +Ð +desksiz + ); + +2024 + `D¿wwš_D¿w_Background +Ð + `Tžwš_G‘_DesktÝ_ReùªgË +() ); + +2025 + `Mªage_Fšish +Ð +TRUE + ); + +2026 +d¿wšg + = +FALSE +; + +2027 + `Mªage_Cªt_Undo +(); + +2028 + } +} + +2032  + $Mªage_Profže +Ð +fžÇm + ) + +2033 * +fžÇm +; + +2035  +´im¬y +, +£cÚd¬y +; + +2036 +U£rwš + * +uwšp +; + +2037 +Tžwšp + +wšp +; + +2039 + `Mªage_S¹ +(); + +2041 +£cÚd¬y + = + `U£rGlob®s_G‘_V®ue +Ð +SECONDARY_ICON_PLACEMENT +); + +2042 +´im¬y + = + `U£rGlob®s_G‘_V®ue +Ð +ICON_PLACEMENT +); + +2044 ià(! + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_LISTENER_TO_CLOSE +)) + +2046 iàÐ +li¡’” + !ð +UWIN_NULL + ) + +2047 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +li¡’” +-> +wšp +, +REQUIRE_MANUAL_CLOSE +, + +2048 +li¡’” +-> +»guÏr_mªu®_þo£ + ); + +2049 iàÐ +subli¡’” + !ð +UWIN_NULL + ) + +2050 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +subli¡’” +-> +wšp +, +REQUIRE_MANUAL_CLOSE +, + +2051 +subli¡’” +-> +»guÏr_mªu®_þo£ + ); + +2054 + `Profže_Upd©e +Ð +fžÇm + ); + +2056 + `U£rwš_S‘_Wšdow_O±iÚ +Ð +¹l_uwšp +, +SHOW_ICON +, + +2057 + `U£rGlob®s_G‘_O±iÚ +( +USE_RTL_ICON +) ); + +2059 + `Mªage_ReÜgªize_DesktÝ +Ð + `Tžwš_G‘_DesktÝ_Size +() ); + +2061 + `Tžwš_G’_O³n_Wšdows +(); + +2062  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +2064 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +2065 iàÐ +uwšp +-> +icÚp + =ð +wšp + ) + +2067 iàÐÐ +£cÚd¬y + != + +2068 + `U£rGlob®s_G‘_V®ue +( +SECONDARY_ICON_PLACEMENT +) ) || + +2069 Ð +´im¬y + != + +2070 + `U£rGlob®s_G‘_V®ue +( +ICON_PLACEMENT +) ) ) + +2071 + `Tžwš_S‘_Pos™iÚ +Ð +wšp +, + `Tžwš_G‘_C’‹r +( winp ) ); + +2075 ià(! + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_LISTENER_TO_CLOSE +)) + +2077 iàÐ +li¡’” + !ð +UWIN_NULL + ) + +2078 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +li¡’” +-> +wšp +, + +2079 +REQUIRE_MANUAL_CLOSE +, +TRUE + ); + +2080 iàÐ +subli¡’” + !ð +UWIN_NULL + ) + +2081 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +subli¡’” +-> +wšp +, + +2082 +REQUIRE_MANUAL_CLOSE +, +TRUE + ); + +2085 +»d¿wšg + = +TRUE +; + +2086 + `Mªage_Fšish +Ð +TRUE + ); + +2087 +»d¿wšg + = +FALSE +; + +2088 + } +} + +2092  + #Mªage_S‘_Rezoom_HÜizÚl +( +uwšp +, +Ý +) \ + +2094 iàÐ + `Tžwš_G‘_ReùªgË +( +uwšp +-> +wšp +). +Ëá_x + == 0 ) \ + +2095 + `wšdow_excursiÚ +Ð +uwšp +-> +wšp +, +FIXED_LEFT_EDGE +, +TRUE +, +Ý + ) \ + +2096 iàÐ + `Tžwš_G‘_ReùªgË +( +uwšp +-> +wšp +). +right_x + == \ + +2097 Ð + `Tžwš_G‘_DesktÝ_Size +(). +width + - 1 ) ) \ + +2098 + `wšdow_excursiÚ +Ð +uwšp +-> +wšp +, +FIXED_RIGHT_EDGE +, +TRUE +, +Ý + ) \ + +2099 iàÐ + `Tžwš_G‘_ReùªgË +( +uwšp +-> +wšp +). +Ëá_x + == \ + +2100 +uwšp +-> +»zoom_»ù +. +Ëá_x + ) \ + +2101 + `wšdow_excursiÚ +Ð +uwšp +-> +wšp +, +FIXED_LEFT_EDGE +, +TRUE +, +Ý + ) \ + +2102 iàÐ + `Tžwš_G‘_ReùªgË +( +uwšp +-> +wšp +). +right_x + == \ + +2103 +uwšp +-> +»zoom_»ù +. +right_x + ) \ + +2104 + `wšdow_excursiÚ +Ð +uwšp +-> +wšp +, +FIXED_RIGHT_EDGE +, +TRUE +, +Ý + ) \ + +2105 +Ý +; \ + +2106 } + + ) + +2110  + #Mªage_S‘_Rezoom_V”tiÿl +( +uwšp +, +Ý +) \ + +2112 iàÐ + `Tžwš_G‘_ReùªgË +( +uwšp +-> +wšp +). +tÝ_y + == 0 ) \ + +2113 + `wšdow_excursiÚ +Ð +uwšp +-> +wšp +, +FIXED_TOP_EDGE +, +TRUE +, +Ý + ) \ + +2114 iàÐ + `Tžwš_G‘_ReùªgË +( +uwšp +-> +wšp +). +bÙtom_y + == \ + +2115 Ð + `Tžwš_G‘_DesktÝ_Size +(). +height + - 1 ) ) \ + +2116 + `wšdow_excursiÚ +Ð +uwšp +-> +wšp +, +FIXED_BOTTOM_EDGE +, +TRUE +, +Ý + ) \ + +2117 iàÐ + `Tžwš_G‘_ReùªgË +( +uwšp +-> +wšp +). +tÝ_y + == \ + +2118 +uwšp +-> +»zoom_»ù +. +tÝ_y + ) \ + +2119 + `wšdow_excursiÚ +Ð +uwšp +-> +wšp +, +FIXED_TOP_EDGE +, +TRUE +, +Ý + ) \ + +2120 iàÐ + `Tžwš_G‘_ReùªgË +( +uwšp +-> +wšp +). +bÙtom_y + == \ + +2121 +uwšp +-> +»zoom_»ù +. +bÙtom_y + ) \ + +2122 + `wšdow_excursiÚ +Ð +uwšp +-> +wšp +, +FIXED_BOTTOM_EDGE +, +TRUE +, +Ý + ) \ + +2123 +Ý +; \ + +2124 } + + ) + +2128  +boÞ + + $Mªage_Rezoom +Ð +uwšp +, +siz + ) + +2129 +U£rwš + * +uwšp +; + +2130 +Size + +siz +; + +2132 +boÞ + +»suÉ +; + +2134 + `Mªage_S‘_Rezoom_V”tiÿl +Ð +uwšp +, + +2135 + `Mªage_S‘_Rezoom_HÜizÚl +Ð +uwšp +, + +2136 +»suÉ + = + `Tžwš_S‘_Size +Ð +uwšp +-> +wšp +, +siz + ) ) ); + +2137  +»suÉ +; + +2138 + } +} + +2142  +boÞ + + $Mªage_Rezoom_In_A»a +Ð +uwšp +, +»ù +, +± +, +siz + ) + +2143 +U£rwš + * +uwšp +; + +2144 +TWReùªgË + +»ù +; + +2145 +TWPošt + +± +; + +2146 +Size + +siz +; + +2148 +boÞ + +»suÉ +; + +2150 + `Mªage_S‘_Rezoom_V”tiÿl +Ð +uwšp +, + +2151 + `Mªage_S‘_Rezoom_HÜizÚl +Ð +uwšp +, + +2152 +»suÉ + = + `Tžwš_O³n_N—»¡_In_A»a +( + +2153 +uwšp +-> +wšp +, +»ù +, +± +, +siz + ) ) ); + +2154  +»suÉ +; + +2155 + } +} + +2159  +boÞ + + $Mªage_NeighbÜhood_Rezoom +Ð +uwšp +, +siz + ) + +2160 +U£rwš + * +uwšp +; + +2161 +Size + +siz +; + +2163 +TWReùªgË + +»ù +; + +2164 +TWPošt + +± +; + +2165 +boÞ + +»suÉ +; + +2167 +± + = + `Tžwš_G‘_C’‹r +Ð +uwšp +-> +wšp + ); + +2168 +»ù + = + `Mªage_NeighbÜhood_ReùªgË +Ð0.5, +± +, +siz + ); + +2170 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +2171 { + `wšdow_excursiÚ +Ð +uwšp +-> +wšp +, +FIXED_SIZE +, +TRUE +, + +2173 +»suÉ + = + `Mªage_Rezoom +Ð +uwšp +, +siz + ); + +2174 ià(! +»suÉ +) + +2175 +»suÉ + = + `Mªage_Rezoom_In_A»a +Ð +uwšp +, +»ù +, +± +, +siz + ); + +2178 ià(! +»suÉ +) + +2179 +»suÉ + = + `Tžwš_O³n_N—»¡_In_A»a +Ð +uwšp +-> +wšp +, +»ù +, +± +, +siz + ); + +2181  +»suÉ +; + +2182 + } +} + +2186  +boÞ + + $Mªage_NeighbÜhood_Unzoom_O³n +Ð +uwšp +, +siz + ) + +2187 +U£rwš + * +uwšp +; + +2188 +Size + +siz +; + +2190 +TWReùªgË + +»ù +; + +2191 +TWPošt + +± +; + +2192 +boÞ + +»suÉ +; + +2194 +± + = + `Tžwš_G‘_C’‹r +Ð +uwšp +-> +wšp + ); + +2195 +»ù + = + `Tžwš_G‘_ReùªgË +Ð +uwšp +-> +wšp + ); + +2197 +»suÉ + = + `Mªage_Rezoom_In_A»a +Ð +uwšp +, +»ù +, +± +, +siz + ); + +2199 ià(! +»suÉ +) + +2200 +»suÉ + = + `Tžwš_O³n_N—»¡_In_A»a +( + +2201 +uwšp +-> +wšp +, +»ù +, +± +, +siz + ); + +2203 iàÐ(! +»suÉ +) && + +2204 (! + `U£rwš_G‘_Wšdow_O±iÚ +( + +2205 +uwšp +, +REQUIRE_PREV_POS + ) ) ) + +2206 +»suÉ + = + `Tžwš_O³n_N—»¡_In_A»a +( + +2207 +uwšp +-> +wšp +, + +2208 + `Tžwš_G‘_DesktÝ_ReùªgË +(), + +2209 +± +, +siz + ); + +2211  +»suÉ +; + +2212 + } +} + +2216  + $Mªage_S‘up_Zoom +Ð +uwšp +, +fuÎ + ) + +2217 +U£rwš + * +uwšp +; + +2218 +boÞ + +fuÎ +; + +2220 +Size + +siz +; + +2222 + `Mªage_Save_S‹ +Ð +uwšp + ); + +2224 +uwšp +-> +zoomed + = +TRUE +; + +2226 +uwšp +-> +»guÏr_mš + = + `Tžwš_G‘_Mš +(uwšp-> +wšp +); + +2227 +uwšp +-> +»guÏr_size + = + `Tžwš_G‘_Desœed +(uwšp-> +wšp +); + +2229 iàÐ +fuÎ + ) + +2231 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ZOOM_FULL_HEIGHT + ) ) + +2232 +uwšp +-> +zoom_size +. +height + = + `Tžwš_G‘_DesktÝ_Size +().height; + +2233 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ZOOM_FULL_WIDTH + ) ) + +2234 +uwšp +-> +zoom_size +. +width + = + `Tžwš_G‘_DesktÝ_Size +().width; + +2237 iàÐ + `U£rGlob®s_G‘_O±iÚ +Ð +RESET_ZOOM_MIN + ) ) + +2239 iàÐ + `U£rGlob®s_G‘_O±iÚ +Ð +RESET_ZOOM_MIN_USES_DESIRE + ) ) + +2240 + `S‘_Mš_Size +Ð +siz +, +uwšp +-> +»guÏr_size +, + +2241 + `Tžwš_G‘_Size +Ð +uwšp +-> +wšp + ) ) + +2243 +siz + = + `Tžwš_G‘_Size +Ð +uwšp +-> +wšp + ); + +2245 iàÐ + `U£rGlob®s_G‘_O±iÚ +Ð +RESET_ZOOM_MIN_ALLOWS_DECREASE + ) ) + +2246 +uwšp +-> +zoom_mš + = +siz +; + +2248 + `S‘_Max_Size +Ð +uwšp +-> +zoom_mš +, uwšp->zoom_mš, +siz + ) + +2251 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ZOOM_TIED_TO_DESIRE + ) ) + +2253 +uwšp +-> +zoom_mš + = uwšp-> +zoom_size + = uwšp-> +»guÏr_size +; + +2256 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ENFORCE_CLIENT_MINIMUMS + ) ) + +2258 + `S‘_Max_Size +Ð +uwšp +-> +zoom_mš +, uwinp->zoom_min, + +2259 +uwšp +-> +þ›Á_mš + ) + +2260 + `S‘_Max_Size +Ð +uwšp +-> +zoom_size +, uwinp->zoom_size, + +2261 +uwšp +-> +þ›Á_mš + ) + +2264 + `S‘_Max_Size +Ð +uwšp +-> +zoom_mš +, uwinp->zoom_min, + +2265 +uwšp +-> +»guÏr_mš + ) + +2266 + `S‘_Max_Size +Ð +uwšp +-> +zoom_size +, uwinp->zoom_size, + +2267 +uwšp +-> +»guÏr_size + ) + +2269 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ENFORCE_CLIENT_MAXIMUMS + ) ) + +2271 + `S‘_Mš_Size +Ð +uwšp +-> +zoom_mš +, uwinp->zoom_min, + +2272 +uwšp +-> +þ›Á_max + ) + +2273 + `S‘_Mš_Size +Ð +uwšp +-> +zoom_size +, uwinp->zoom_size, + +2274 +uwšp +-> +þ›Á_max + ) + +2277 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, uwšp-> +zoom_mš + ); + +2278 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, uwšp-> +zoom_size + ); + +2280 + } +} + +2284  + $Mªage_S‘up_Unzoom +Ð +uwšp + ) + +2285 +U£rwš + * +uwšp +; + +2287 + `Mªage_Save_S‹ +Ð +uwšp + ); + +2289 +uwšp +-> +zoomed + = +FALSE +; + +2291 +uwšp +-> +zoom_mš + = + `Tžwš_G‘_Mš +(uwšp-> +wšp +); + +2292 +uwšp +-> +zoom_size + = + `Tžwš_G‘_Desœed +(uwšp-> +wšp +); + +2294 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ENFORCE_CLIENT_MAXIMUMS + ) ) + +2296 + `S‘_Mš_Size +Ð +uwšp +-> +»guÏr_mš +, uwinp->regular_min, + +2297 +uwšp +-> +þ›Á_max + ) + +2298 + `S‘_Mš_Size +Ð +uwšp +-> +»guÏr_size +, uwinp->regular_size, + +2299 +uwšp +-> +þ›Á_max + ) + +2302 + `S‘_Mš_Size +Ð +uwšp +-> +»guÏr_mš +, uwinp->regular_min, + +2303 +uwšp +-> +zoom_mš + ) + +2304 + `S‘_Mš_Size +Ð +uwšp +-> +»guÏr_size +, uwinp->regular_size, + +2305 +uwšp +-> +zoom_size + ) + +2307 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ENFORCE_CLIENT_MINIMUMS + ) ) + +2309 + `S‘_Max_Size +Ð +uwšp +-> +»guÏr_mš +, uwinp->regular_min, + +2310 +uwšp +-> +þ›Á_mš + ) + +2311 + `S‘_Max_Size +Ð +uwšp +-> +»guÏr_size +, uwinp->regular_size, + +2312 +uwšp +-> +þ›Á_mš + ) + +2315 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, uwšp-> +»guÏr_mš + ); + +2316 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, uwšp-> +»guÏr_size + ); + +2317 + } +} + +2321  +Size + + $Mªage_G‘_Zoom_Size +Ð +uwšp + ) + +2322 +U£rwš + * +uwšp +; + +2324 +Size + +cursiz +, +siz +; + +2326 +cursiz + = + `Tžwš_G‘_Size +( +uwšp +-> +wšp +); + +2328 + `S‘_Max_Size +Ð +siz +, +uwšp +-> +zoom_size +, uwšp-> +zoom_mš + ) + +2330 iàÐ + `Tžwš_Is_O³n +Ð +uwšp +-> +wšp + ) && + +2331 Ð +siz +. +width + < +cursiz +.width ) && + +2332 Ð +siz +. +height + < +cursiz +.height ) ) + +2333 +siz + = +cursiz +; + +2335  + `Tžwš_Checked_Size +Ð +uwšp +-> +wšp +, +siz + ); + +2336 + } +} + +2340  +Size + + $Mªage_G‘_Unzoom_O³n_Size +Ð +uwšp + ) + +2341 +U£rwš + * +uwšp +; + +2343 +Size + +siz +; + +2345 + `S‘_Max_Size +Ð +siz +, +uwšp +-> +zoom_size +, uwšp-> +»guÏr_mš + ) + +2347  + `Tžwš_Checked_Size +Ð +uwšp +-> +wšp +, +siz + ); + +2348 + } +} + +2352  +Size + + $Mªage_G‘_Clo£d_Unzoom_Size +Ð +uwšp + ) + +2353 +U£rwš + * +uwšp +; + +2355 +Size + +siz +; + +2357 + `S‘_Max_Size +Ð +siz +, +uwšp +-> +»guÏr_size +, uwšp-> +»guÏr_mš + ) + +2358 + `S‘_Mš_Size +Ð +siz +, siz, + `Tžwš_G‘_Size +( +uwšp +-> +wšp +) ) + +2360  + `Tžwš_Checked_Size +Ð +uwšp +-> +wšp +, +siz + ); + +2361 + } +} + +2365  +Size + + $Mªage_G‘_O³n_Unzoom_Size +Ð +uwšp + ) + +2366 +U£rwš + * +uwšp +; + +2368 +Size + +siz +; + +2370 + `COMPUTE_SIZE +Ð +uwšp +-> +»zoom_»ù +, +siz + ); + +2371 + `S‘_Mš_Size +Ð +siz +, siz, +uwšp +-> +»guÏr_size + ) + +2372 + `S‘_Mš_Size +Ð +siz +, siz, + `Tžwš_G‘_Size +( +uwšp +-> +wšp +) ) + +2373 + `S‘_Max_Size +Ð +siz +, siz, +uwšp +-> +»guÏr_mš + ) + +2375  + `Tžwš_Checked_Size +Ð +uwšp +-> +wšp +, +siz + ); + +2376 + } +} + +2380  +boÞ + + $Mªage_FÞlowup_Zoom +Ð +uwšp + ) + +2381 +U£rwš + * +uwšp +; + +2383 +Size + +siz +; + +2384 +boÞ + +»suÉ +; + +2386 +siz + = + `Mªage_G‘_Zoom_Size +Ð +uwšp + ); + +2388 iàÐÐ +siz +. +width + < +uwšp +-> +zoom_mš +.width ) || + +2389 Ð +siz +. +height + < +uwšp +-> +zoom_mš +.height ) ) + +2390 +»suÉ + = +FALSE +; + +2392 + `glob®_»¡riù_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, + +2393 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ALLOW_ZOOM_CLOSE + ), + +2395 +»suÉ + = + `Mªage_NeighbÜhood_Rezoom +Ð +uwšp +, +siz + ); + +2398 iàÐ +»suÉ + ) + +2400 + `S‘_Max_Size +Ð +siz +, siz, + +2401 + `Tžwš_G‘_P»vious_Size +Ð +uwšp +-> +wšp + ) ); + +2403 + `glob®_»¡riù_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +2404 + `glob®_»¡riù_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +2405 + `Tžwš_EƬge_N—»¡ +Ð +uwšp +-> +wšp +, + +2406 + `Tžwš_G‘_P»vious_C’‹r +Ð +uwšp +-> +wšp + ), + +2407 +siz + ) ) ) + +2409 + `Tžwš_Aù_Modif›d +Ð +uwšp +-> +wšp + ); + +2410 +uwšp +-> +zoom_¡amp + = + `Tžwš_G‘_Time¡amp +(); + +2411 +uwšp +-> +»zoom_»ù + = + `Tžwš_G‘_P»vious_ReùªgË +Ðuwšp-> +wšp + ); + +2414 + `Mªage_S‘up_Unzoom +Ð +uwšp + ); + +2416  +»suÉ +; + +2417 + } +} + +2421  + $Mªage_FÞlowup_Unzoom +Ð +uwšp +, +ex¶ic™ + ) + +2422 +U£rwš + * +uwšp +; + +2423 +boÞ + +ex¶ic™ +; + +2425 +boÞ + +fÜû_»pÝ +; + +2426 +boÞ + +fÜû_shršk +; + +2427 +boÞ + +®low_shršk +; + +2428 +TimeSmp + +»pÝ_sšû +; + +2429 +TWPošt + +± +; + +2430 +Size + +siz +; + +2432 ià(! + `Tžwš_Is_O³n +Ð +uwšp +-> +wšp + ) ) + +2433 + `Mªage_Rezoom +Ð +uwšp +, + `Mªage_G‘_Clo£d_Unzoom_Size +( uwinp ) ); + +2436 + `Tžwš_Aù_Modif›d +Ð +uwšp +-> +wšp + ); + +2438 iàÐ +ex¶ic™ + ) + +2440 +®low_shršk + = + +2441 + `U£rwš_G‘_Wšdow_O±iÚ +( +uwšp +, +ALLOW_SHRINK_ON_UNZOOM +); + +2442 +fÜû_shršk + = + +2443 + `U£rwš_G‘_Wšdow_O±iÚ +( +uwšp +, +FORCE_SHRINK_ON_UNZOOM +); + +2444 +fÜû_»pÝ + = + `U£rGlob®s_G‘_O±iÚ +( + +2445 +AUTO_REPOP_ON_EXPLICIT_UNZOOM +); + +2446 iàÐ + `U£rGlob®s_G‘_O±iÚ +( + +2447 +ONLY_REPOP_SINCE_ON_EXPL_UNZOOM +) ) + +2448 +»pÝ_sšû + = +uwšp +-> +zoom_¡amp +; + +2450 +»pÝ_sšû + = ( +TimeSmp +)0; + +2454 +®low_shršk + = + +2455 + `U£rwš_G‘_Wšdow_O±iÚ +( +uwšp +, +ALLOW_SHRINK_ON_UNZOOM +) && + +2456 + `U£rwš_G‘_Wšdow_O±iÚ +( +uwšp +, +ALLOW_SHRINK_ON_AUTO_UNZOOM +); + +2457 +fÜû_shršk + = + +2458 + `U£rwš_G‘_Wšdow_O±iÚ +( +uwšp +, +FORCE_SHRINK_ON_UNZOOM +) && + +2459 + `U£rwš_G‘_Wšdow_O±iÚ +( +uwšp +, +FORCE_SHRINK_ON_AUTO_UNZOOM +); + +2460 +fÜû_»pÝ + = + `U£rGlob®s_G‘_O±iÚ +( + +2461 +AUTO_REPOPULATE_ON_AUTO_UNZOOM +); + +2462 iàÐ + `U£rGlob®s_G‘_O±iÚ +( + +2463 +ONLY_REPOP_SINCE_ON_AUTO_UNZOOM +) ) + +2464 +»pÝ_sšû + = +uwšp +-> +zoom_¡amp +; + +2466 +»pÝ_sšû + = ( +TimeSmp +)0; + +2469 iàÐ +®low_shršk + || +fÜû_shršk + ) + +2471 + `COMPUTE_CENTER +Ð +uwšp +-> +»zoom_»ù +, +± + ); + +2472 +siz + = + `Mªage_G‘_O³n_Unzoom_Size +Ð +uwšp + ); + +2473 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +2475 iàÐ + `Tžwš_S‘ +Ð +uwšp +-> +wšp +, +± +, +siz + ) ) + +2476 + `Tžwš_S‘_Pos™iÚ +Ð +uwšp +-> +wšp +, +± + ); + +2478 + `Mªage_Rezoom +Ð +uwšp +, +siz + ); + +2482 iàÐ +fÜû_»pÝ + ) + +2484 + `u£r_glob®_excursiÚ +( + +2485 +REQUIRE_PREV_POS_ON_AUTO_REPOP +, +TRUE +, + +2486 + `Mªage_R•ÝuÏ‹_Sšû +Ð +»pÝ_sšû +, +FALSE +, FALSE, +TRUE + ) ); + +2489 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +AUTO_DESIRED_ENLARGE +) ) + +2490 + `wšdow_excursiÚ +Ð +uwšp +-> +wšp +, +FIXED_SIZE +, +TRUE +, + +2491 + `Mªage_Ord”ed_Desœe +() ); + +2493 iàÐ +®low_shršk + && (! +fÜû_shršk +) ) + +2494 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +2495 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +2497 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +AUTO_DESIRED_ENLARGE +) ) + +2498 + `Tžwš_EƬge_N—»¡ +Ð +uwšp +-> +wšp +, + +2499 + `Tžwš_G‘_P»vious_C’‹r +Ð +uwšp +-> +wšp + ), + +2500 + `Tžwš_G‘_P»vious_Size +Ð +uwšp +-> +wšp + ) ); + +2502 + `Tžwš_O³n_N—»¡_In_A»a +Ð +uwšp +-> +wšp +, + +2503 + `Tžwš_G‘_P»vious_ReùªgË +Ð +uwšp +-> +wšp + ), + +2504 + `Tžwš_G‘_P»vious_C’‹r +Ð +uwšp +-> +wšp + ), + +2505 + `Tžwš_G‘_P»vious_Size +Ð +uwšp +-> +wšp + ) ); + +2508 iàÐ +fÜû_»pÝ + ) + +2510 + `Mªage_R•ÝuÏ‹_Sšû +Ð +»pÝ_sšû +, + +2511 +FALSE +, FALSE, +TRUE + ); + +2515 +uwšp +-> +»zoom_»ù + = + `Tžwš_G‘_P»vious_ReùªgË +Ðuwšp-> +wšp + ); + +2516 + } +} + +2520  +boÞ + + $Mªage_FÞlowup_Unzoom_O³n +Ð +uwšp + ) + +2521 +U£rwš + * +uwšp +; + +2523 +boÞ + +»suÉ +; + +2525 +»suÉ + = + `Mªage_NeighbÜhood_Unzoom_O³n +Ð +uwšp +, + +2526 + `Mªage_G‘_Unzoom_O³n_Size +Ð +uwšp + ) ); + +2527 iàÐ +»suÉ + ) + +2528 +uwšp +-> +»zoom_»ù + = + `Tžwš_G‘_P»vious_ReùªgË +Ðuwšp-> +wšp + ); + +2530 + `Mªage_S‘up_Zoom +Ð +uwšp +, +FALSE + ); + +2532  +»suÉ +; + +2533 + } +} + +2537  +boÞ + + $Mªage_Do_Zoom +Ð +uwšp +, +ex¶ic™ + ) + +2538 +U£rwš + * +uwšp +; + +2539 +boÞ + +ex¶ic™ +; + +2541 +boÞ + +fuÎ +; + +2543 +fuÎ + = + +2545 Ð + `U£rwš_G‘_Wšdow_O±iÚ +( +uwšp +, +ZOOM_FULL_EXPLICIT +) && + +2546 +ex¶ic™ + ) + +2549 + `U£rwš_G‘_Wšdow_O±iÚ +( +uwšp +, +ZOOM_FULL_WIDTH +) + +2551 + `U£rwš_G‘_Wšdow_O±iÚ +( +uwšp +, +ZOOM_FULL_HEIGHT +) + +2555 + `Mªage_S‘up_Zoom +Ð +uwšp +, +fuÎ + ); + +2556  + `Mªage_FÞlowup_Zoom +Ð +uwšp + ); + +2557 + } +} + +2561  + $Mªage_Do_Unzoom +Ð +uwšp +, +ex¶ic™ + ) + +2562 +U£rwš + * +uwšp +; + +2563 +boÞ + +ex¶ic™ +; + +2565 + `Mªage_S‘up_Unzoom +Ð +uwšp + ); + +2566 + `Mªage_FÞlowup_Unzoom +Ð +uwšp +, +ex¶ic™ + ); + +2567 + } +} + +2571  +U£rwš + * + gunzoomed_li¡’” +; + +2575  + $Mªage_S¹_Tryšg +() + +2577 +unzoomed_li¡’” + = +UWIN_NULL +; + +2578 + } +} + +2582 +boÞ + + $Mªage_Cª_Try_Li¡’”_Unzoom +() + +2584 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +UNZOOM_TIED_LSNR_IF_NECESSARY +) && + +2585 Ð +li¡’” + !ð +UWIN_NULL + ) && + +2586 + `U£rwš_G‘_Wšdow_O±iÚ +( +li¡’” +, +LISTENER_TIED_TO_ZOOM +) && + +2587 +li¡’” +-> +zoomed + ) + +2589 + `Mªage_S‘up_Unzoom +Ð +li¡’” + ); + +2590 +unzoomed_li¡’” + = +li¡’” +; + +2591  +TRUE +; + +2594  +FALSE +; + +2595 + } +} + +2599  + $Mªage_Fšish_Tryšg +Ð +»suÉ + ) + +2600 +boÞ + +»suÉ +; + +2602 iàÐ +unzoomed_li¡’” + !ð +UWIN_NULL + ) + +2604 iàÐ +»suÉ + ) + +2605 + `Mªage_FÞlowup_Unzoom +Ð +unzoomed_li¡’” +, +FALSE + ); + +2607 + `Mªage_S‘up_Zoom +Ð +unzoomed_li¡’” +, +FALSE + ); + +2609 + } +} + +2613 +boÞ + + $Mªage_Unzoom_O³n +Ð +uwšp + ) + +2614 +U£rwš + * +uwšp +; + +2616 +boÞ + +icÚized +; + +2617 +boÞ + +»suÉ +; + +2619 +icÚized + = + `Tžwš_Is_O³n +Ð +uwšp +-> +icÚp + ); + +2620 iàÐ +icÚized + ) + +2621 + `Tžwš_Clo£ +Ð +uwšp +-> +icÚp + ); + +2623 + `Mªage_S‘up_Unzoom +Ð +uwšp + ); + +2624 +»suÉ + = + `Mªage_FÞlowup_Unzoom_O³n +Ð +uwšp + ); + +2625 iàÐ(! +»suÉ +è&& +icÚized + ) + +2626 + `Tžwš_O³n +Ð +uwšp +-> +icÚp +, + +2627 + `Tžwš_G‘_C’‹r +Ð +uwšp +-> +icÚp + ), + +2628 + `Tžwš_G‘_Size +Ð +uwšp +-> +icÚp + ) ); + +2630  +»suÉ +; + +2631 + } +} + +2635  + $Mªage_Zoom +Ð +uwšp + ) + +2636 +U£rwš + * +uwšp +; + +2638 +boÞ + +»suÉ +; + +2640 + `Mªage_S¹ +(); + +2641 + `Mªage_S¹_Tryšg +(); + +2642 +»suÉ + = + `Mªage_Do_Zoom +Ð +uwšp +, +TRUE + ); + +2643 iàÐ(! +»suÉ +è&& + `Mªage_Cª_Try_Li¡’”_Unzoom +() ) + +2644 +»suÉ + = + `Mªage_Do_Zoom +Ð +uwšp +, +TRUE + ); + +2645 + `Mªage_Fšish_Tryšg +Ð +»suÉ + ); + +2646 + `Tžwš_NÙe_Desœed_Width +Ð +uwšp +-> +wšp + ); + +2647 + `Tžwš_NÙe_Desœed_Height +Ð +uwšp +-> +wšp + ); + +2648 +Ï¡_zoom + = +uwšp +; + +2649 +touch + = +uwšp +; + +2650 + `Mªage_Fšish_MšÃd +Ð +uwšp +, +»suÉ + ); + +2651 + } +} + +2655  + $Mªage_Unzoom +Ð +uwšp + ) + +2656 +U£rwš + * +uwšp +; + +2658 iàÐÐ +uwšp + =ð +Ï¡_zoom + ) && + +2659 Ð +uwšp +-> +zoom_¡amp + =ð +Ï¡_¡amp + ) ) + +2660 + `Mªage_Undo_S¹ +(); + +2663 + `Mªage_S¹ +(); + +2664 + `Mªage_Do_Unzoom +Ð +uwšp +, +TRUE + ); + +2666 +touch + = +uwšp +; + +2667 + `Mªage_Fšish +Ð +TRUE + ); + +2668 + } +} + +2672  + $Mªage_ToggË_Zoom +Ð +uwšp + ) + +2673 +U£rwš + * +uwšp +; + +2675 iàÐ +uwšp +-> +zoomed + ) + +2676 + `Mªage_Unzoom +Ð +uwšp + ); + +2678 + `Mªage_Zoom +Ð +uwšp + ); + +2679 + } +} + +2683  + $Mªage_ToggË_Zoom_Lock +Ð +uwšp + ) + +2684 +U£rwš + * +uwšp +; + +2686 iàÐ + `U£rwš_T›d_Li¡’” +( +uwšp +) ) + +2688 + `U£rwš_DÚt_T›_Li¡’” +Ð +uwšp + ); + +2689 + `Mªage_S¹ +(); + +2690 + `Tžwš_Aù_Modif›d +Ð +uwšp +-> +wšp + ); + +2691 +touch + = +uwšp +; + +2692 + `Mªage_Fšish +Ð +TRUE + ); + +2696 + `U£rwš_AÎow_T›_Li¡’” +Ð +uwšp + ); + +2697 iàÐÐ +uwšp + =ð +li¡’” + ) && (! uwšp-> +zoomed +) ) + +2698 + `Mªage_Zoom +Ð +uwšp + ); + +2699 iàÐÐ +uwšp + !ð +li¡’” + ) && ( uwšp-> +zoomed + ) ) + +2700 + `Mªage_Unzoom +Ð +uwšp + ); + +2703 + `Mªage_S¹ +(); + +2704 + `Tžwš_Aù_Modif›d +Ð +uwšp +-> +wšp + ); + +2705 +touch + = +uwšp +; + +2706 + `Mªage_Fšish +Ð +TRUE + ); + +2709 + } +} + +2713  + $Mªage_Sw™ch_Li¡’” +Ð +uwšp + ) + +2714 +U£rwš + * +uwšp +; + +2716 +U£rwš + * +Þd_li¡’” +; + +2717 +boÞ + +unzoom_Þd +; + +2718 +boÞ + +zoom_Ãw +; + +2719 +boÞ + +li¡’”_zoomšg +; + +2720 +boÞ + +Œª§ù +; + +2721 +TimeSmp + +zoom_¡amp + = (TimeStamp)0; + +2723 +sw™ch_li¡’” + = +uwšp +; + +2725 +unzoom_Þd + = ( +li¡’” + !ð +UWIN_NULL +è&& (li¡’”-> +zoomed +) && + +2726 + `U£rwš_G‘_Wšdow_O±iÚ +( +li¡’” +, +LISTENER_TIED_TO_ZOOM +); + +2728 +zoom_Ãw + = ( +uwšp + !ð +UWIN_NULL +è&& (!uwšp-> +zoomed +) && + +2729 + `U£rwš_G‘_Wšdow_O±iÚ +( +uwšp +, +LISTENER_TIED_TO_ZOOM +); + +2731 +li¡’”_zoomšg + = +unzoom_Þd + || +zoom_Ãw +; + +2733 +Œª§ù + = +li¡’”_zoomšg + || + +2734 Ð + `U£rGlob®s_G‘_O±iÚ +( +AUTO_PRORATE +) && + +2735 + `U£rGlob®s_G‘_O±iÚ +( +BIASED_AUTO_PRORATE +) ); + +2737 +Þd_li¡’” + = +li¡’” +; + +2739 iàÐ +unzoom_Þd + ) + +2740 +zoom_¡amp + = +li¡’” +->zoom_stamp; + +2742 iàÐ +unzoom_Þd + && + +2743 + `U£rGlob®s_G‘_O±iÚ +( +AUTO_REPOPULATE_ON_AUTO_UNZOOM +) && + +2744 Ð +li¡’” + =ð +Ï¡_zoom + ) && + +2745 Ð +zoom_¡amp + =ð +Ï¡_¡amp + ) ) + +2747 + `Mªage_Undo_S¹ +(); + +2748 +unzoom_Þd + = +FALSE +; + +2749 iàÐ +zoom_Ãw + ) + +2750 +Ï¡_zoom + = +UWIN_NULL +; + +2752 iàÐ +li¡’”_zoomšg + ) + +2754 + `Mªage_S¹ +(); + +2755 ià(! +unzoom_Þd +) + +2756 +Ï¡_zoom + = +uwšp +; + +2758 iàÐ +Œª§ù + ) + +2759 + `Mªage_S¹ +(); + +2761 iàÐ +li¡’” + !ð +UWIN_NULL + ) + +2763 + `Mªage_Un£t_Li¡’” +(); + +2764 iàÐ +unzoom_Þd + ) + +2765 + `Mªage_S‘up_Unzoom +Ð +Þd_li¡’” + ); + +2766 ià(! +Œª§ù +) + +2767 + `D¿wwš_Di¥Ïy_W¿µšg +Ð +Þd_li¡’” + ); + +2770 + `Mªage_S‘_Li¡’” +( +uwšp +); + +2772 iàÐ +li¡’” + !ð +UWIN_NULL + ) + +2774 iàÐ +zoom_Ãw + ) + +2776 iàÐ + `Mªage_Do_Zoom +Ð +li¡’” +, +FALSE + ) && + +2777 Ð +zoom_¡amp + !ð( +TimeSmp +)0 ) ) + +2778 +li¡’” +-> +zoom_¡amp + = zoom_stamp; + +2780 ià(! +Œª§ù +) + +2781 + `D¿wwš_Di¥Ïy_W¿µšg +Ð +li¡’” + ); + +2784 iàÐ +unzoom_Þd + ) + +2786 iàÐ +li¡’” + =ð +UWIN_NULL + ) + +2787 + `Mªage_FÞlowup_Unzoom +Ð +Þd_li¡’” +, +FALSE + ); + +2789 + `mš_excursiÚ +Ð +li¡’” +-> +wšp +, + +2790 + `Mªage_FÞlowup_Unzoom +Ð +Þd_li¡’” +, +FALSE + ) ) + +2793 iàÐ +Œª§ù + ) + +2794 + `Mªage_Fšish_MšÃd +Ð +li¡’” +, +TRUE + ); + +2795 + } +} + +2799  +boÞ + + $Mªage_Re§tisfy +Ð +uwšp + ) + +2800 +U£rwš + * +uwšp +; + +2802 +boÞ + +»suÉ +; + +2803 +Size + +siz +; + +2805 + `Mªage_Save_S‹ +Ð +uwšp + ); + +2806 +»suÉ + = + `Tžwš_Is_S©isf›d +Ð +uwšp +-> +wšp + ); + +2807 ià(! +»suÉ + ) + +2809 +siz + = + `Tžwš_G‘_Size +Ð +uwšp +-> +wšp + ); + +2810 + `S‘_Max_Size +Ð +siz +, siz, + `Tžwš_G‘_Mš +Ð +uwšp +-> +wšp + ) ) + +2811 + `S‘_Mš_Size +Ð +siz +, siz, + `Tžwš_G‘_Max +Ð +uwšp +-> +wšp + ) ) + +2812 iàÐ + `Tžwš_Is_O³n +( +uwšp +-> +wšp +) ) + +2813 +»suÉ + = + `Mªage_NeighbÜhood_Rezoom +Ð +uwšp +, +siz + ); + +2815 +»suÉ + = + `Mªage_Rezoom +Ð +uwšp +, +siz + ); + +2817  +»suÉ +; + +2818 + } +} + +2822  + $Mªage_Cl›Á_Re£t_Mš_Max +Ð +uwšp +, +mš_size +, +max_size + ) + +2823 +U£rwš + * +uwšp +; + +2824 +Size + +mš_size +; + +2825 +Size + +max_size +; + +2827 +Size + +siz +; + +2828 +boÞ + +has_mš +, +has_max +, +»suÉ +; + +2830 ià(! +uwšp +-> +´•¬ed +) + +2831 + `Mªage_P»·» +Ð +uwšp + ); + +2833 +has_max + = ( +max_size +. +width + > 0 ) && ( max_size. +height + > 0 ); + +2834 +has_mš + = ( +mš_size +. +width + >ð0 ) && ( mš_size. +height + >= 0 ); + +2836 iàÐ + `Profže_Suµl›s_U£r_V®ue +Ð +uwšp +, +CLIENT_MAX_WIDTH + ) ) + +2837 +max_size +. +width + = +uwšp +-> +body_max +.width; + +2838 iàÐ + `Profže_Suµl›s_U£r_V®ue +Ð +uwšp +, +CLIENT_MAX_HEIGHT + ) ) + +2839 +max_size +. +height + = +uwšp +-> +body_max +.height; + +2841 iàÐ + `Profže_Suµl›s_U£r_V®ue +Ð +uwšp +, +CLIENT_MIN_WIDTH + ) ) + +2842 +mš_size +. +width + = +uwšp +-> +body_mš +.width; + +2843 iàÐ + `Profže_Suµl›s_U£r_V®ue +Ð +uwšp +, +CLIENT_MIN_HEIGHT + ) ) + +2844 +mš_size +. +height + = +uwšp +-> +body_mš +.height; + +2846 iàÐ +has_mš + ) + +2847 + `S‘_Max_Size +Ð +max_size +, max_size, +mš_size + ) + +2849 iàÐ +has_max + ) + +2851 +uwšp +-> +body_max + = +max_size +; + +2852 +uwšp +-> +þ›Á_max + = + `RegiÚ_Adju¡_Size +Ðuwšp, +max_size + ); + +2853 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ENFORCE_CLIENT_MAXIMUMS + ) ) + +2855 + `S‘_Mš_Size +Ð +siz +, + `Tžwš_G‘_Max +Ð +uwšp +-> +wšp + ), + +2856 +uwšp +-> +þ›Á_max + ) + +2857 + `Tžwš_S‘_Max +Ð +uwšp +-> +wšp +, +siz + ); + +2858 + `S‘_Mš_Size +Ð +siz +, siz, + `Tžwš_G‘_Desœed +Ð +uwšp +-> +wšp + ) ) + +2859 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, +siz + ); + +2863 iàÐ +has_mš + ) + +2865 +uwšp +-> +body_mš + = +mš_size +; + +2866 +uwšp +-> +þ›Á_mš + = + `RegiÚ_Adju¡_Size +Ðuwšp, +mš_size + ); + +2867 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ENFORCE_CLIENT_MINIMUMS + ) ) + +2869 + `S‘_Max_Size +Ð +siz +, + `Tžwš_G‘_Mš +Ð +uwšp +-> +wšp + ), + +2870 +uwšp +-> +þ›Á_mš + ) + +2871 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, +siz + ); + +2872 + `S‘_Max_Size +Ð +siz +, siz, + `Tžwš_G‘_Desœed +Ð +uwšp +-> +wšp + ) ) + +2873 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, +siz + ); + +2877 iàÐ + `Same_Size +Ð + `Tžwš_G‘_Mš +( +uwšp +-> +wšp +), + +2878 + `Tžwš_G‘_Max +( +uwšp +-> +wšp +) ) ) + +2879 +uwšp +-> +sized + = +TRUE +; + +2881 ià(! +uwšp +-> +ev”_Ý’ed +) + +2884 ià(! + `Tžwš_Is_O³n +Ð +uwšp +-> +wšp + )) + +2885 + `Mªage_Re§tisfy +Ð +uwšp + ); + +2886 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +AUTO_RESATISFY_ON_RESET_MINMAX + ) ) + +2888 + `Mªage_S¹ +(); + +2889 + `Mªage_Cl›Á +( + +2891 +»suÉ + = + `Mªage_Re§tisfy +Ð +uwšp + ); + +2893 + `Mªage_Fšish_MšÃd +Ð +uwšp +, +»suÉ + ); + +2894 + `Mªage_Cªt_Undo +(); + +2896 + } +} + +2900  +Size + + $Mªage_C®c_Size +Ð +siz +, +»ù +, +side +, +pos + ) + +2901 +Size + +siz +; + +2902 +TWReùªgË + +»ù +; + +2903 +Side + +side +; + +2904 +TWPošt + +pos +; + +2907  +side +) + +2909  +TÝ +: + +2910  +TÝ_Leá +: + +2911  +TÝ_Right +: + +2912 +siz +. +height + = 1 + +»ù +. +bÙtom_y + - +pos +. +y +; + +2914  +BÙtom +: + +2915  +BÙtom_Leá +: + +2916  +BÙtom_Right +: + +2917 +siz +. +height + = 1 + +pos +. +y + - +»ù +. +tÝ_y +; + +2923  +side +) + +2925  +Leá +: + +2926  +TÝ_Leá +: + +2927  +BÙtom_Leá +: + +2928 +siz +. +width + = 1 + +»ù +. +right_x + - +pos +. +x +; + +2930  +Right +: + +2931  +TÝ_Right +: + +2932  +BÙtom_Right +: + +2933 +siz +. +width + = 1 + +pos +. +x + - +»ù +. +Ëá_x +; + +2939  +siz +; + +2940 + } +} + +2944 +boÞ + + $Mªage_S‘_ReguÏr_Mš_Size +Ð +uwšp +, +pos +, +side +, +fÜû +, +ù¾ + ) + +2945 +U£rwš + * +uwšp +; + +2946 +TWPošt + +pos +; + +2947 +Side + +side +; + +2948 +boÞ + +fÜû +, +ù¾ +; + +2950 +Size + +max_size +; + +2951 +TWReùªgË + +»ù +; + +2952 +»ù + = + `Tžwš_G‘_ReùªgË +Ð +uwšp +-> +wšp + ); + +2954 + `Mªage_S¹ +(); + +2956 ià(! +uwšp +-> +zoomed +) + +2957 +uwšp +-> +»guÏr_mš + = + `Tžwš_G‘_Mš +Ðuwšp-> +wšp + ); + +2958 +uwšp +-> +»guÏr_mš + = + +2959 + `Mªage_C®c_Size +Ð +uwšp +-> +»guÏr_mš +, +»ù +, +side +, +pos + ); + +2961 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ENFORCE_CLIENT_MAXIMUMS + ) ) + +2962 + `S‘_Mš_Size +Ð +uwšp +-> +»guÏr_mš +, uwinp->regular_min, + +2963 +uwšp +-> +þ›Á_max + ) + +2965 + `S‘_Mš_Size +Ð +uwšp +-> +»guÏr_mš +, uwinp->regular_min, + +2966 + `Tžwš_G‘_Max +Ð +uwšp +-> +wšp + ) ) + +2968 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ENFORCE_CLIENT_MINIMUMS + ) ) + +2969 + `S‘_Max_Size +Ð +uwšp +-> +»guÏr_mš +, uwinp->regular_min, + +2970 +uwšp +-> +þ›Á_mš + ) + +2972 +max_size + = + `Tžwš_G‘_Max +Ð +uwšp +-> +wšp + ); + +2973 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +RESET_MAX_ON_INCREASE +è|| +fÜû + ) + +2974 + `S‘_Max_Size +Ð +max_size +, max_size, +uwšp +-> +»guÏr_mš + ) + +2976 + `S‘_Mš_Size +Ð +uwšp +-> +»guÏr_mš +, uwšp->»guÏr_mš, +max_size + ) + +2977 + `Tžwš_S‘_Max +Ð +uwšp +-> +wšp +, +max_size + ); + +2979 ià(! +uwšp +-> +zoomed +) + +2981 + `S‘_Max_Size +Ð +uwšp +-> +»guÏr_size +, uwšp-> +»guÏr_mš +, + +2982 + `Tžwš_G‘_Desœed +Ð +uwšp +-> +wšp + ) ) + +2983 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, uwšp-> +»guÏr_mš + ); + +2984 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, uwšp-> +»guÏr_size + ); + +2988 + `S‘_Max_Size +Ð +uwšp +-> +»guÏr_size +, uwinp->regular_size, + +2989 +uwšp +-> +»guÏr_mš + ) + +2990 + `S‘_Max_Size +Ð +uwšp +-> +zoom_mš +, uwšp-> +»guÏr_mš +, + +2991 + `Tžwš_G‘_Mš +Ð +uwšp +-> +wšp + ) ) + +2992 + `S‘_Max_Size +Ð +uwšp +-> +zoom_size +, uwšp-> +zoom_mš +, + +2993 + `Tžwš_G‘_Desœed +Ð +uwšp +-> +wšp + ) ) + +2994 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, uwšp-> +zoom_mš + ); + +2995 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, uwšp-> +zoom_size + ); + +2998 + `Mªage_Re§tisfy +Ð +uwšp + ); + +3000 + `Mªage_Fšish +Ð +TRUE + ); + +3001  +TRUE +; + +3002 + } +} + +3006 +boÞ + + $Mªage_S‘_Zoom_Mš_Size +Ð +uwšp +, +pos +, +side +, +fÜû +, +ù¾ + ) + +3007 +U£rwš + * +uwšp +; + +3008 +TWPošt + +pos +; + +3009 +Side + +side +; + +3010 +boÞ + +fÜû +, +ù¾ +; + +3012 +Size + +max_size +; + +3013 +TWReùªgË + +»ù +; + +3014 +»ù + = + `Tžwš_G‘_ReùªgË +Ð +uwšp +-> +wšp + ); + +3016 + `Mªage_S¹ +(); + +3018 iàÐ +uwšp +-> +zoomed + ) + +3019 +uwšp +-> +zoom_mš + = + `Tžwš_G‘_Mš +Ðuwšp-> +wšp + ); + +3020 +uwšp +-> +zoom_mš + = + +3021 + `Mªage_C®c_Size +Ð +uwšp +-> +zoom_mš +, +»ù +, +side +, +pos + ); + +3023 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ENFORCE_CLIENT_MAXIMUMS + ) ) + +3024 + `S‘_Mš_Size +Ð +uwšp +-> +zoom_mš +, uwinp->zoom_min, + +3025 +uwšp +-> +þ›Á_max + ) + +3027 + `S‘_Mš_Size +Ð +uwšp +-> +»guÏr_mš +, uwinp->regular_min, + +3028 + `Tžwš_G‘_Max +Ð +uwšp +-> +wšp + ) ) + +3030 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ENFORCE_CLIENT_MINIMUMS + ) ) + +3031 + `S‘_Max_Size +Ð +uwšp +-> +zoom_mš +, uwinp->zoom_min, + +3032 +uwšp +-> +þ›Á_mš + ) + +3034 +max_size + = + `Tžwš_G‘_Max +Ð +uwšp +-> +wšp + ); + +3035 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +RESET_MAX_ON_INCREASE +è|| +fÜû + ) + +3036 + `S‘_Max_Size +Ð +max_size +, max_size, +uwšp +-> +zoom_mš + ) + +3038 + `S‘_Mš_Size +Ð +uwšp +-> +zoom_mš +, uwšp->zoom_mš, +max_size + ) + +3039 + `Tžwš_S‘_Max +Ð +uwšp +-> +wšp +, +max_size + ); + +3041 iàÐ +uwšp +-> +zoomed + ) + +3043 + `S‘_Max_Size +Ð +uwšp +-> +zoom_size +, uwšp-> +zoom_mš +, + +3044 + `Tžwš_G‘_Desœed +Ð +uwšp +-> +wšp + ) ) + +3045 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, uwšp-> +zoom_mš + ); + +3046 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, uwšp-> +zoom_size + ); + +3050 + `S‘_Max_Size +Ð +uwšp +-> +zoom_size +, uwinp->zoom_size, + +3051 +uwšp +-> +zoom_mš + ) + +3052 + `S‘_Mš_Size +Ð +uwšp +-> +»guÏr_mš +, uwšp-> +zoom_mš +, + +3053 + `Tžwš_G‘_Mš +Ð +uwšp +-> +wšp + ) ) + +3054 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, uwšp-> +»guÏr_mš + ); + +3057 + `Mªage_Re§tisfy +Ð +uwšp + ); + +3059 + `Mªage_Fšish +Ð +TRUE + ); + +3060  +TRUE +; + +3061 + } +} + +3065 +boÞ + + $Mªage_S‘_ReguÏr_Desœed_Size +Ð +uwšp +, +pos +, +side +, +fÜû +, +ù¾ + ) + +3066 +U£rwš + * +uwšp +; + +3067 +TWPošt + +pos +; + +3068 +Side + +side +; + +3069 +boÞ + +fÜû +, +ù¾ +; + +3071 +Size + +max_size +; + +3072 +TWReùªgË + +»ù +; + +3073 +»ù + = + `Tžwš_G‘_ReùªgË +Ð +uwšp +-> +wšp + ); + +3075 + `Mªage_S¹ +(); + +3077 ià(! +uwšp +-> +zoomed + ) + +3079 +uwšp +-> +»guÏr_size + = + `Tžwš_G‘_Desœed +Ðuwšp-> +wšp + ); + +3080 +uwšp +-> +»guÏr_mš + = + `Tžwš_G‘_Mš +Ðuwšp-> +wšp + ); + +3083 +uwšp +-> +zoom_mš + = + `Tžwš_G‘_Mš +Ðuwšp-> +wšp + ); + +3085 +uwšp +-> +»guÏr_size + = + +3086 + `Mªage_C®c_Size +Ð +uwšp +-> +»guÏr_size +, +»ù +, +side +, +pos + ); + +3088 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ENFORCE_CLIENT_MAXIMUMS + ) ) + +3089 + `S‘_Mš_Size +Ð +uwšp +-> +»guÏr_size +, uwinp->regular_size, + +3090 +uwšp +-> +þ›Á_max + ) + +3092 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ENFORCE_CLIENT_MINIMUMS + ) ) + +3093 + `S‘_Max_Size +Ð +uwšp +-> +»guÏr_size +, uwinp->regular_size, + +3094 +uwšp +-> +þ›Á_mš + ) + +3096 +max_size + = + `Tžwš_G‘_Max +Ð +uwšp +-> +wšp + ); + +3097 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +RESET_MAX_ON_INCREASE +è|| +fÜû + ) + +3098 + `S‘_Max_Size +Ð +max_size +, max_size, +uwšp +-> +»guÏr_size + ) + +3100 + `S‘_Mš_Size +Ð +uwšp +-> +»guÏr_size +, uwšp->»guÏr_size, +max_size + ) + +3101 + `Tžwš_S‘_Max +Ð +uwšp +-> +wšp +, +max_size + ); + +3103 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +RESET_MIN_ON_DECREASE +è|| +fÜû + ) + +3104 + `S‘_Mš_Size +Ð +uwšp +-> +»guÏr_mš +, uwinp->regular_min, + +3105 +uwšp +-> +»guÏr_size + ) + +3107 + `S‘_Max_Size +Ð +uwšp +-> +»guÏr_size +, uwinp->regular_size, + +3108 +uwšp +-> +»guÏr_mš + ) + +3110 ià(! +uwšp +-> +zoomed +) + +3112 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, uwšp-> +»guÏr_mš + ); + +3113 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, uwšp-> +»guÏr_size + ); + +3117 + `S‘_Max_Size +Ð +uwšp +-> +zoom_size +, uwšp-> +»guÏr_size +, + +3118 + `Tžwš_G‘_Size +Ð +uwšp +-> +wšp + ) ) + +3119 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, uwšp-> +zoom_size + ); + +3122 + `Mªage_Fšish +Ð +TRUE + ); + +3123  +TRUE +; + +3124 + } +} + +3128 +boÞ + + $Mªage_S‘_Zoom_Desœed_Size +Ð +uwšp +, +pos +, +side +, +fÜû +, +ù¾ + ) + +3129 +U£rwš + * +uwšp +; + +3130 +TWPošt + +pos +; + +3131 +Side + +side +; + +3132 +boÞ + +fÜû +, +ù¾ +; + +3134 +Size + +max_size +; + +3135 +TWReùªgË + +»ù +; + +3136 +»ù + = + `Tžwš_G‘_ReùªgË +Ð +uwšp +-> +wšp + ); + +3138 + `Mªage_S¹ +(); + +3140 iàÐ +uwšp +-> +zoomed + ) + +3142 +uwšp +-> +zoom_size + = + `Tžwš_G‘_Desœed +Ðuwšp-> +wšp + ); + +3143 +uwšp +-> +zoom_mš + = + `Tžwš_G‘_Mš +Ðuwšp-> +wšp + ); + +3146 +uwšp +-> +»guÏr_mš + = + `Tžwš_G‘_Mš +Ðuwšp-> +wšp + ); + +3148 +uwšp +-> +zoom_size + = + +3149 + `Mªage_C®c_Size +Ð +uwšp +-> +zoom_size +, +»ù +, +side +, +pos + ); + +3151 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ENFORCE_CLIENT_MAXIMUMS + ) ) + +3152 + `S‘_Mš_Size +Ð +uwšp +-> +zoom_size +, uwinp->zoom_size, + +3153 +uwšp +-> +þ›Á_max + ) + +3155 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ENFORCE_CLIENT_MINIMUMS + ) ) + +3156 + `S‘_Max_Size +Ð +uwšp +-> +zoom_size +, uwinp->zoom_size, + +3157 +uwšp +-> +þ›Á_mš + ) + +3159 +max_size + = + `Tžwš_G‘_Max +Ð +uwšp +-> +wšp + ); + +3160 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +RESET_MAX_ON_INCREASE +è|| +fÜû + ) + +3161 + `S‘_Max_Size +Ð +max_size +, max_size, +uwšp +-> +zoom_size + ) + +3163 + `S‘_Mš_Size +Ð +uwšp +-> +zoom_size +, uwšp->zoom_size, +max_size + ) + +3164 + `Tžwš_S‘_Max +Ð +uwšp +-> +wšp +, +max_size + ); + +3166 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +RESET_MIN_ON_DECREASE +è|| +fÜû + ) + +3167 + `S‘_Mš_Size +Ð +uwšp +-> +zoom_mš +, uwinp->zoom_min, + +3168 +uwšp +-> +zoom_size + ) + +3170 + `S‘_Max_Size +Ð +uwšp +-> +zoom_size +, uwinp->zoom_size, + +3171 +uwšp +-> +zoom_mš + ) + +3173 ià( +uwšp +-> +zoomed +) + +3175 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, uwšp-> +zoom_mš + ); + +3176 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, uwšp-> +zoom_size + ); + +3180 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +RESET_MIN_ON_DECREASE +è|| +fÜû + ) + +3182 + `S‘_Mš_Size +Ð +uwšp +-> +»guÏr_mš +, uwinp->regular_min, + +3183 +uwšp +-> +zoom_size + ) + +3184 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, uwšp-> +»guÏr_mš + ); + +3188 + `S‘_Max_Size +Ð +uwšp +-> +zoom_size +, uwinp->zoom_size, + +3189 +uwšp +-> +»guÏr_mš + ) + +3191 + `S‘_Mš_Size +Ð +uwšp +-> +»guÏr_size +, uwšp-> +zoom_size +, + +3192 + `Tžwš_G‘_Size +Ð +uwšp +-> +wšp + ) ) + +3193 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, uwšp-> +»guÏr_size + ); + +3196 + `Mªage_Fšish +Ð +TRUE + ); + +3197  +TRUE +; + +3198 + } +} + +3202 +boÞ + + $Mªage_S‘_Max_Size +Ð +uwšp +, +pos +, +side +, +fÜû +, +ù¾ + ) + +3203 +U£rwš + * +uwšp +; + +3204 +TWPošt + +pos +; + +3205 +Side + +side +; + +3206 +boÞ + +fÜû +, +ù¾ +; + +3208 +Size + +max_size +; + +3209 +TWReùªgË + +»ù +; + +3210 +»ù + = + `Tžwš_G‘_ReùªgË +Ð +uwšp +-> +wšp + ); + +3212 + `Mªage_S¹ +(); + +3214 +max_size + = + `Mªage_C®c_Size +( + +3215 + `Tžwš_G‘_Max +Ð +uwšp +-> +wšp +), +»ù +, +side +, +pos + ); + +3217 ià( +uwšp +-> +zoomed +) + +3218 +uwšp +-> +zoom_mš + = + `Tžwš_G‘_Mš +Ðuwšp-> +wšp + ); + +3220 +uwšp +-> +»guÏr_mš + = + `Tžwš_G‘_Mš +Ðuwšp-> +wšp + ); + +3222 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ENFORCE_CLIENT_MAXIMUMS + ) ) + +3223 + `S‘_Mš_Size +Ð +max_size +, max_size, +uwšp +-> +þ›Á_max + ) + +3225 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ENFORCE_CLIENT_MINIMUMS + ) ) + +3226 + `S‘_Max_Size +Ð +max_size +, max_size, +uwšp +-> +þ›Á_mš + ) + +3228 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +RESET_MIN_ON_DECREASE +è|| +fÜû + ) + +3230 + `S‘_Mš_Size +Ð +uwšp +-> +»guÏr_mš +, uwinp->regular_min, + +3231 +max_size + ) + +3232 + `S‘_Mš_Size +Ð +uwšp +-> +zoom_mš +, uwinp->zoom_min, + +3233 +max_size + ) + +3237 + `S‘_Max_Size +Ð +max_size +, max_size, +uwšp +-> +»guÏr_mš + ) + +3238 + `S‘_Max_Size +Ð +max_size +, max_size, +uwšp +-> +zoom_mš + ) + +3240 + `Tžwš_S‘_Max +Ð +uwšp +-> +wšp +, +max_size + ); + +3242 iàÐ +uwšp +-> +zoomed + ) + +3244 + `S‘_Mš_Size +Ð +uwšp +-> +zoom_size +, +max_size +, + +3245 + `Tžwš_G‘_Desœed +Ð +uwšp +-> +wšp + ) ) + +3246 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, uwšp-> +zoom_size + ); + +3247 + `S‘_Mš_Size +Ð +uwšp +-> +»guÏr_size +, uwšp->»guÏr_size, +max_size + ) + +3248 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, uwšp-> +zoom_mš + ); + +3252 + `S‘_Mš_Size +Ð +uwšp +-> +»guÏr_size +, +max_size +, + +3253 + `Tžwš_G‘_Desœed +Ð +uwšp +-> +wšp + ) ) + +3254 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, uwšp-> +»guÏr_size + ); + +3255 + `S‘_Mš_Size +Ð +uwšp +-> +zoom_size +, uwšp->zoom_size, +max_size + ) + +3256 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, uwšp-> +»guÏr_mš + ); + +3259 + `Mªage_Re§tisfy +Ð +uwšp + ); + +3261 + `Mªage_Fšish +Ð +TRUE + ); + +3262  +TRUE +; + +3263 + } +} + +3267  + $Mªage_Mš_Max_Resizšg +Ð +uwšp +, +siz1 +, +siz2 + ) + +3268 +U£rwš + * +uwšp +; + +3269 +Size + +siz1 +, +siz2 +; + +3271 +Size + +siz +; + +3273 + `S‘_Mš_Size +Ð +siz +, +siz1 +, +siz2 + ) + +3274 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, +siz + ); + +3275 + `S‘_Max_Size +Ð +siz +, +siz1 +, +siz2 + ) + +3276 + `Tžwš_S‘_Max +Ð +uwšp +-> +wšp +, +siz + ); + +3277 + } +} + +3281  + $Mªage_Cªûl_Resizšg +Ð +uwšp + ) + +3282 +U£rwš + * +uwšp +; + +3284 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, uwšp-> +´ev_mš + ); + +3285 + `Tžwš_S‘_Max +Ð +uwšp +-> +wšp +, uwšp-> +´ev_max + ); + +3286 + } +} + +3290  + $Mªage_Fšish_Resizšg +Ð +uwšp +, +side +, +fÜû +, +undesœe + ) + +3291 +U£rwš + * +uwšp +; + +3292 +Side + +side +; + +3293 +boÞ + +fÜû +, +undesœe +; + +3295 +Size + +Ãwmš +, +Ãwmax +; + +3296 +Size + +siz +, +´evsiz +, +desœed +; + +3297 +boÞ + +hÜiz +, +v”t +, +’Ïrge +; + +3299 +hÜiz + = ( +side + !ð +NoSide + ) && ( sid!ð +TÝ + ) && ( sid!ð +BÙtom + ); + +3300 +v”t + = ( +side + !ð +NoSide + ) && ( sid!ð +Leá + ) && ( sid!ð +Right + ); + +3302 +Ãwmš + = +uwšp +-> +´ev_mš +; + +3303 +Ãwmax + = +uwšp +-> +´ev_max +; + +3305 iàÐ +uwšp +-> +sized + ) + +3306 +´evsiz + = + `Tžwš_G‘_P»vious_Size +Ð +uwšp +-> +wšp + ); + +3309 +´evsiz + = +Ãwmš +; + +3310 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +RESET_MIN_MAX_ON_UNSZD_MAN_OPEN +) ) + +3312 +fÜû + = +TRUE +; + +3313 +hÜiz + = +TRUE +; + +3314 +v”t + = +TRUE +; + +3318 +siz + = + `Tžwš_G‘_Size +Ð +uwšp +-> +wšp + ); + +3320 ià(! +undesœe +) + +3322 +desœed + = + `Tžwš_G‘_Desœed +Ð +uwšp +-> +wšp + ); + +3324 +’Ïrge + = ( +desœed +. +width + > +´evsiz +.width) || + +3325 ( +desœed +. +height + > +´evsiz +.height); + +3327 iàÐ +hÜiz + ) + +3329 iàÐ +desœed +. +width + >ð +´evsiz +.width ) + +3331 iàÐ +fÜû + || + `U£rGlob®s_G‘_O±iÚ +( +RESET_MIN_ON_ENLARGE +) || + +3332 Ð + `U£rGlob®s_G‘_O±iÚ +( +RESET_TIED_ZOOMED_MIN_ON_ENLARGE +) && + +3333 ( +uwšp +-> +zoomed +) && + +3334 + `U£rwš_G‘_Wšdow_O±iÚ +( +uwšp +, +LISTENER_TIED_TO_ZOOM +) ) ) + +3335 +Ãwmš +. +width + = +siz +.width; + +3339 iàÐ(! +’Ïrge +) && + +3340 Ð +fÜû + || + `U£rGlob®s_G‘_O±iÚ +( +RESET_MAX_ON_SHRINK +) ) ) + +3341 +Ãwmax +. +width + = +siz +.width; + +3345 iàÐ +v”t + ) + +3347 iàÐ +desœed +. +height + >ð +´evsiz +.height ) + +3349 iàÐ +fÜû + || + `U£rGlob®s_G‘_O±iÚ +( +RESET_MIN_ON_ENLARGE +) || + +3350 Ð + `U£rGlob®s_G‘_O±iÚ +( + +3351 +RESET_TIED_ZOOMED_MIN_ON_ENLARGE +) && + +3352 ( +uwšp +-> +zoomed +) && + +3353 + `U£rwš_G‘_Wšdow_O±iÚ +( +uwšp +, +LISTENER_TIED_TO_ZOOM +) ) ) + +3354 +Ãwmš +. +height + = +siz +.height; + +3358 iàÐ(! +’Ïrge +) && + +3359 Ð +fÜû + || + `U£rGlob®s_G‘_O±iÚ +( +RESET_MAX_ON_SHRINK +) ) ) + +3360 +Ãwmax +. +height + = +siz +.height; + +3365 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +RESET_MIN_ON_DECREASE +è|| +fÜû + ) + +3366 + `S‘_Mš_Size +Ð +Ãwmš +,‚ewmš, +siz + ) + +3368 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +RESET_MAX_ON_INCREASE +è|| +fÜû + ) + +3369 + `S‘_Max_Size +Ð +Ãwmax +,‚ewmax, +siz + ) + +3371 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, +Ãwmš + ); + +3372 + `Tžwš_S‘_Max +Ð +uwšp +-> +wšp +, +Ãwmax + ); + +3374 + `S‘_Mš_Size +Ð +siz +, +Ãwmax +, + `Tžwš_G‘_Desœed +( +uwšp +-> +wšp +) ) + +3375 + `S‘_Max_Size +Ð +siz +, +Ãwmš +, siz ) + +3376 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, +siz + ); + +3378 + } +} + +3382  +boÞ + + $Mªage_Slide_Resize +Ð +uwšp +, +ûÁ” +, +siz +, +side + ) + +3383 +U£rwš + * +uwšp +; + +3384 +TWPošt + +ûÁ” +; + +3385 +Size + +siz +; + +3386 +Side + +side +; + +3388 +boÞ + +»suÉ +; + +3389 +Size + +shršksiz +; + +3390 +Side + +shrškside + = +NoSide +; + +3392 ià(! + `U£rGlob®s_G‘_O±iÚ +( +TRY_SLIDING_ON_RESIZE +)) + +3393  + `Tžwš_Resize +Ð +uwšp +-> +wšp +, +siz +, +side + ); + +3395 + `glob®_»¡riù_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, + +3396 (! + `U£rGlob®s_G‘_O±iÚ +( + +3397 +PREF_SLD_TO_AUTO_CL_ON_RESIZE +)), + +3398 { + `glob®_»¡riù_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, + +3399 (! + `U£rGlob®s_G‘_O±iÚ +( + +3400 +PREF_SLD_TO_AUTO_SHR_ON_RESIZE +)), + +3401 { + `wšdow_još_excursiÚ +Ð +uwšp +-> +wšp +, +FIXED_SIZE +, + +3402 + `U£rGlob®s_G‘_O±iÚ +( +PREF_SLD_TO_SHRINK_ON_RESIZE +), + +3404 +»suÉ + = + `Tžwš_Resize +Ð +uwšp +-> +wšp +, +siz +, +side + ); + +3407 iàÐ +»suÉ + )  +TRUE +; + +3409 +shršksiz + = + `Tžwš_G‘_Size +Ð +uwšp +-> +wšp + ); + +3411  +side +) + +3413  +TÝ +: + +3414  +TÝ_Leá +: + +3415  +TÝ_Right +: + +3416 iàÐ +siz +. +height + < +shršksiz +.height ) + +3418 +shrškside + = +TÝ +; + +3419 +shršksiz +. +height + = +siz +.height; + +3422  +BÙtom +: + +3423  +BÙtom_Leá +: + +3424  +BÙtom_Right +: + +3425 iàÐ +siz +. +height + < +shršksiz +.height ) + +3427 +shrškside + = +BÙtom +; + +3428 +shršksiz +. +height + = +siz +.height; + +3435  +side +) + +3437  +Leá +: + +3438  +TÝ_Leá +: + +3439  +BÙtom_Leá +: + +3440 iàÐ +siz +. +width + < +shršksiz +.width ) + +3442 +shrškside + = +Leá +; + +3443 +shršksiz +. +width + = +siz +.width; + +3446  +Right +: + +3447  +TÝ_Right +: + +3448  +BÙtom_Right +: + +3449 iàÐ +siz +. +width + < +shršksiz +.width ) + +3451 +shrškside + = +Right +; + +3452 +shršksiz +. +width + = +siz +.width; + +3459 iàÐ +shrškside + !ð +NoSide + ) + +3460 + `Tžwš_Resize +Ð +uwšp +-> +wšp +, +shršksiz +, +shrškside + ); + +3462  + `Tžwš_EƬge_N—»¡ +Ð +uwšp +-> +wšp +, +ûÁ” +, +siz + ); + +3463 + } +} + +3467  +boÞ + + $Mªage_CÁr_NeighbÜhood_Rsz +Ð +uwšp +, +ûÁ” +, +siz +, +side + ) + +3468 +U£rwš + * +uwšp +; + +3469 +TWPošt + +ûÁ” +; + +3470 +Size + +siz +; + +3471 +Side + +side +; + +3473 +boÞ + +»suÉ +; + +3474 +TWReùªgË + +»ù +; + +3476 ià(! + `U£rGlob®s_G‘_O±iÚ +( +TRY_CTR_NBRHD_ON_RESIZE +)) + +3477  + `Mªage_Slide_Resize +Ð +uwšp +, +ûÁ” +, +siz +, +side + ); + +3479 + `glob®_»¡riù_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, + +3480 (! + `U£rGlob®s_G‘_O±iÚ +( + +3481 +PF_CTR_NBR_2_AUTO_CL_ON_RESIZE +) ), + +3482 { + `glob®_»¡riù_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, + +3483 (! + `U£rGlob®s_G‘_O±iÚ +( + +3484 +PF_CTR_NBR_2_AUTO_SHR_ON_RESIZE +) ), + +3485 { + `wšdow_još_excursiÚ +Ð +uwšp +-> +wšp +, +FIXED_SIZE +, + +3486 + `U£rGlob®s_G‘_O±iÚ +( + +3487 +PF_CTR_NBR_2_SHRINK_ON_RESIZE +), + +3489 +»suÉ + = + `Mªage_Slide_Resize +Ð +uwšp +, +ûÁ” +, +siz +, +side + ); + +3492 iàÐ +»suÉ + )  +TRUE +; + +3494 +»ù + = + `Mªage_NeighbÜhood_ReùªgË +Ð0.5, +ûÁ” +, +siz + ); + +3496  + `Tžwš_O³n_N—»¡_In_A»a +Ð +uwšp +-> +wšp +, +»ù +, +ûÁ” +, +siz + ); + +3497 + } +} + +3501  +boÞ + + $Mªage_Edge_NeighbÜhood_Resize +Ð +uwšp +, +ûÁ” +, +siz +, +side + ) + +3502 +U£rwš + * +uwšp +; + +3503 +TWPošt + +ûÁ” +; + +3504 +Size + +siz +; + +3505 +Side + +side +; + +3507 +boÞ + +»suÉ +; + +3508 +TWReùªgË + +»ù +; + +3510 ià(! + `U£rGlob®s_G‘_O±iÚ +( +TRY_EDGE_NEIGHBORHOOD_ON_RESIZE +)) + +3511  + `Mªage_CÁr_NeighbÜhood_Rsz +Ð +uwšp +, +ûÁ” +, +siz +, +side + ); + +3513 + `glob®_»¡riù_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, + +3514 (! + `U£rGlob®s_G‘_O±iÚ +( + +3515 +PF_EDGE_NBR_2_AUTO_CL_ON_RESIZE +) ), + +3516 { + `glob®_»¡riù_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, + +3517 (! + `U£rGlob®s_G‘_O±iÚ +( + +3518 +PF_EDGE_NBR_2_AUTO_SHR_ON_RESIZE +) ), + +3519 { + `wšdow_još_excursiÚ +Ð +uwšp +-> +wšp +, +FIXED_SIZE +, + +3520 + `U£rGlob®s_G‘_O±iÚ +( +PF_EDGE_NBR_2_SHRINK_ON_RESIZE +), + +3522 +»suÉ + = + `Mªage_CÁr_NeighbÜhood_Rsz +Ð +uwšp +, +ûÁ” +, +siz +, +side + ); + +3525 iàÐ +»suÉ + )  +TRUE +; + +3527 +»ù + = + `Mªage_NeighbÜhood_ReùªgË +Ð1.0, +ûÁ” +, +siz + ); + +3529  + `Tžwš_O³n_N—»¡_In_A»a +Ð +uwšp +-> +wšp +, +»ù +, +ûÁ” +, +siz + ); + +3530 + } +} + +3534 +boÞ + + $Mªage_Resize +Ð +uwšp +, +pos +, +side +, +fÜû +, +undesœe + ) + +3535 +U£rwš + * +uwšp +; + +3536 +Side + +side +; + +3537 +TWPošt + +pos +; + +3538 +boÞ + +fÜû +, +undesœe +; + +3540 +Size + +siz +, +desœed +; + +3541 +TWPošt + +ûÁ” +; + +3542 +TWReùªgË + +»ù +; + +3543 +boÞ + +»suÉ +; + +3545 +siz + = + `Tžwš_G‘_Size +Ð +uwšp +-> +wšp + ); + +3546 +»ù + = + `Tžwš_G‘_ReùªgË +Ð +uwšp +-> +wšp + ); + +3547 +siz + = + `Mªage_C®c_Size +Ðsiz, +»ù +, +side +, +pos + ); + +3549 ià(! ( + `U£rGlob®s_G‘_O±iÚ +( +RESET_MIN_ON_DECREASE +è|| +fÜû + )) + +3550 + `S‘_Max_Size +Ð +siz +, siz, +uwšp +-> +´ev_mš + ) + +3551 ià(! ( + `U£rGlob®s_G‘_O±iÚ +( +RESET_MAX_ON_INCREASE +è|| +fÜû + )) + +3552 + `S‘_Mš_Size +Ð +siz +, siz, +uwšp +-> +´ev_max + ) + +3554 +desœed + = + `Tžwš_G‘_Desœed +Ð +uwšp +-> +wšp + ); + +3556  +side +) + +3558  +TÝ +: + +3559  +TÝ_Leá +: + +3560  +TÝ_Right +: + +3561 +»ù +. +tÝ_y + =„eù. +bÙtom_y + - +siz +. +height + + 1; + +3562 +desœed +. +height + = +siz +.height; + +3564  +BÙtom +: + +3565  +BÙtom_Leá +: + +3566  +BÙtom_Right +: + +3567 +»ù +. +bÙtom_y + =„eù. +tÝ_y + + +siz +. +height + - 1; + +3568 +desœed +. +height + = +siz +.height; + +3574  +side +) + +3576  +Leá +: + +3577  +TÝ_Leá +: + +3578  +BÙtom_Leá +: + +3579 +»ù +. +Ëá_x + =„eù. +right_x + - +siz +. +width + + 1; + +3580 +desœed +. +width + = +siz +.width; + +3582  +Right +: + +3583  +TÝ_Right +: + +3584  +BÙtom_Right +: + +3585 +»ù +. +right_x + =„eù. +Ëá_x + + +siz +. +width + - 1; + +3586 +desœed +. +width + = +siz +.width; + +3592 + `COMPUTE_CENTER +Ð +»ù +, +ûÁ” + ); + +3594  +side +) + +3596  +TÝ +: + +3597  +BÙtom +: + +3598 +ûÁ” +. +x + = + `Tžwš_G‘_Pos™iÚ +( +uwšp +-> +wšp +).x; + +3600  +Leá +: + +3601  +Right +: + +3602 +ûÁ” +. +y + = + `Tžwš_G‘_Pos™iÚ +( +uwšp +-> +wšp +).y; + +3608 + `Mªage_S¹ +(); + +3609 + `Mªage_Save_S‹ +Ð +uwšp + ); + +3611 ià(! +undesœe +) + +3613 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, +desœed + ); + +3614 iàÐÐ +side + !ð +TÝ + ) && ( sid!ð +BÙtom + ) ) + +3615 + `Tžwš_NÙe_Desœed_Width +Ð +uwšp +-> +wšp + ); + +3616 iàÐÐ +side + !ð +Leá + ) && ( sid!ð +Right + ) ) + +3617 + `Tžwš_NÙe_Desœed_Height +Ð +uwšp +-> +wšp + ); + +3618 + `Tžwš_S‘_Pos™iÚ +Ð +uwšp +-> +wšp +, +ûÁ” + ); + +3619 +uwšp +-> +pos™iÚed + = +TRUE +; + +3622 + `Mªage_Mš_Max_Resizšg +Ð +uwšp +, +siz +, + `Tžwš_G‘_Size +Ðuwšp-> +wšp + ) ); + +3624 + `Mªage_S¹_Tryšg +(); + +3625 + `glob®_excursiÚ +Ð +PREFER_CLOSE_TO_SHRINK +, + +3626 + `U£rGlob®s_G‘_O±iÚ +( +PREFER_CL_TO_SHR_ON_RESIZE +), + +3627 { + `wšdow_još_excursiÚ +Ð +uwšp +-> +wšp +, +FIXED_SIZE +, + +3628 ! + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_SHRINK_ON_RESIZE +), + +3630 +»suÉ + = + `Same_Size +Ð + `Tžwš_G‘_Size +Ð +uwšp +-> +wšp + ), +siz + ) || + +3631 Ð + `Mªage_Edge_NeighbÜhood_Resize +Ð +uwšp +, +ûÁ” +, +siz +, +side + ) + +3632 && + `Tžwš_Was_Ju¡_Modif›d +Ð +uwšp +-> +wšp + ) ); + +3633 iàÐ(! +»suÉ +) && + +3634 Ð +li¡’” + !ð +uwšp + ) && + +3635 + `Mªage_Cª_Try_Li¡’”_Unzoom +() ) + +3636 +»suÉ + = + `Mªage_Edge_NeighbÜhood_Resize +Ð +uwšp +, +ûÁ” +, +siz +, +side + ) + +3637 && + `Tžwš_Was_Ju¡_Modif›d +Ð +uwšp +-> +wšp + ); + +3640 + `Mªage_Fšish_Tryšg +Ð +»suÉ + ); + +3642 iàÐ +»suÉ + ) + +3643 + `Mªage_Fšish_Resizšg +Ð +uwšp +, +side +, +fÜû +, +undesœe + ); + +3645 + `Mªage_Cªûl_Resizšg +Ð +uwšp + ); + +3647 + `height_excursiÚ +Ð +uwšp +-> +wšp +, + +3648 + `width_excursiÚ +Ð +uwšp +-> +wšp +, + +3649 + `wšdow_excursiÚ +Ð +uwšp +-> +wšp +, +REQUIRE_MANUAL_CLOSE +, +TRUE +, + +3650 + `Mªage_Fšish +Ð +»suÉ + ) ) ) ); + +3653  +»suÉ +; + +3654 + } +} + +3658  +boÞ + + gzoom_fÜûd +; + +3662  + $Mªage_S¹_O³n +Ð +uwšp +, +fÜû_zoom + ) + +3663 +U£rwš + * +uwšp +; + +3664 +boÞ + +fÜû_zoom +; + +3666 + `Mªage_S¹ +(); + +3667 + `Mªage_S¹_Tryšg +(); + +3668 + `Mªage_Save_S‹ +Ð +uwšp + ); + +3670 +zoom_fÜûd + = +FALSE +; + +3671 ià(! + `Tžwš_Is_O³n +Ð +uwšp +-> +wšp + )) + +3673 iàÐ + `Tžwš_Is_O³n +Ð +uwšp +-> +icÚp + ) ) + +3674 + `Tžwš_Clo£ +Ð +uwšp +-> +icÚp + ); + +3675 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ZOOM_ON_OPEN + ) || + +3676 Ð(! +uwšp +-> +ev”_Ý’ed + ) && + +3677 + `U£rGlob®s_G‘_O±iÚ +( +ZOOM_ON_CREATE +) ) ) + +3678 +fÜû_zoom + = +TRUE +; + +3679 iàÐ +fÜû_zoom + && (! +uwšp +-> +zoomed +) ) + +3681 +zoom_fÜûd + = +TRUE +; + +3682 + `Mªage_Do_Zoom +Ð +uwšp +, +FALSE + ); + +3685 + } +} + +3689 +boÞ + + $Mªage_Cª_Try_S–f_Unzoom +Ð +uwšp + ) + +3690 +U£rwš + * +uwšp +; + +3692 +boÞ + +»suÉ +; + +3693 +»suÉ + = + `U£rGlob®s_G‘_O±iÚ +( +PREFER_UNZOOM_TO_CLOSE +) + +3694 && ( +uwšp +-> +zoomed +) + +3695 && (! + `Tžwš_Is_O³n +Ð +uwšp +-> +wšp + ) ); + +3696 iàÐ +»suÉ + ) + +3698 +zoom_fÜûd + = +FALSE +; + +3699 + `Mªage_Do_Unzoom +Ð +uwšp +, +FALSE + ); + +3701  +»suÉ +; + +3702 + } +} + +3706 +boÞ + + $Mªage_Fšish_Unsized_O³n +Ð +uwšp +, +»suÉ + ) + +3707 +U£rwš + * +uwšp +; + +3708 +boÞ + +»suÉ +; + +3710 iàÐ +»suÉ + ) + +3712 +uwšp +-> +Ý’_¡amp + = + `Tžwš_G‘_Time¡amp +(); + +3713 +uwšp +-> +ev”_Ý’ed + = +TRUE +; + +3715 iàÐ +zoom_fÜûd + ) + +3716 + `Mªage_Do_Unzoom +Ð +uwšp +, +FALSE + ); + +3717 + `Mªage_Fšish_Tryšg +Ð +»suÉ + ); + +3718  + `Mªage_Fšish_Locked +Ð +uwšp +, +»suÉ + ); + +3719 + } +} + +3723 +boÞ + + $Mªage_Fšish_Sized_O³n +Ð +uwšp +, +»suÉ + ) + +3724 +U£rwš + * +uwšp +; + +3725 +boÞ + +»suÉ +; + +3727 iàÐ +»suÉ + ) + +3729 +uwšp +-> +Ý’_¡amp + = + `Tžwš_G‘_Time¡amp +(); + +3730 +uwšp +-> +ev”_Ý’ed + = +TRUE +; + +3732 iàÐ +zoom_fÜûd + ) + +3733 + `Mªage_Do_Unzoom +Ð +uwšp +, +FALSE + ); + +3734 + `Mªage_Fšish_Tryšg +Ð +»suÉ + ); + +3735  + `Mªage_Fšish_MšÃd +Ð +uwšp +, +»suÉ + ); + +3736 + } +} + +3740 +boÞ + + $Mªage_Move +Ð +uwšp +, +pos + ) + +3741 +U£rwš + * +uwšp +; + +3742 +TWPošt + +pos +; + +3744 +boÞ + +»suÉ +; + +3746 + `Mªage_S¹ +(); + +3747 + `Tžwš_S‘_Pos™iÚ +Ð +uwšp +-> +wšp +, +pos + ); + +3748 +uwšp +-> +pos™iÚed + = +TRUE +; + +3749 iàÐ(! +uwšp +-> +ev”_Ý’ed + ) || + +3750 + `U£rGlob®s_G‘_O±iÚ +( +TREAT_MOVE_LIKE_RELOCATE +) ) + +3752 +uwšp +-> +ev”_Ý’ed + = +TRUE +; + +3753  + `Mªage_Fšish_MšÃd +Ð +uwšp +, + +3754 + `Mªage_C’‹r_O³n +Ð +uwšp +, +pos + ) ); + +3758 + `Mªage_S¹_Tryšg +(); + +3759 +»suÉ + = + `Tžwš_O³n +Ð +uwšp +-> +wšp +, +pos +, + +3760 + `Tžwš_G‘_Size +Ð +uwšp +-> +wšp + ) ); + +3761 iàÐ(! +»suÉ +è&& ( +li¡’” + !ð +uwšp + ) + +3762 && + `Mªage_Cª_Try_Li¡’”_Unzoom +() ) + +3763 +»suÉ + = + `Tžwš_O³n +Ð +uwšp +-> +wšp +, +pos +, + +3764 + `Tžwš_G‘_Size +Ð +uwšp +-> +wšp + ) ); + +3765 + `Mªage_Fšish_Tryšg +Ð +»suÉ + ); + +3766  + `Mªage_Fšish_Fixed_Com¶‘–y +Ð +uwšp +, +»suÉ + ); + +3768 + } +} + +3772 +boÞ + + $Mªage_IcÚ_Move +Ð +uwšp +, +pos + ) + +3773 +U£rwš + * +uwšp +; + +3774 +TWPošt + +pos +; + +3776 +boÞ + +»suÉ +; + +3778 + `Mªage_S¹ +(); + +3779 + `Tžwš_S‘_Pos™iÚ +Ð +uwšp +-> +icÚp +, +pos + ); + +3780 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +TREAT_MOVE_LIKE_RELOCATE +) ) + +3781 +»suÉ + = + `Mªage_NeighbÜhood_IcÚ_O³n +Ð +uwšp +, +pos + ); + +3784 + `Mªage_S¹_Tryšg +(); + +3785 +»suÉ + = + `Tžwš_O³n +Ð +uwšp +-> +icÚp +, +pos +, + +3786 + `Tžwš_G‘_Size +Ð +uwšp +-> +icÚp + ) ); + +3787 iàÐ(! +»suÉ +è&& + `Mªage_Cª_Try_Li¡’”_Unzoom +() ) + +3788 +»suÉ + = + `Tžwš_O³n +Ð +uwšp +-> +icÚp +, +pos +, + +3789 + `Tžwš_G‘_Size +Ð +uwšp +-> +icÚp + ) ); + +3790 + `Mªage_Fšish_Tryšg +Ð +»suÉ + ); + +3792 iàÐ +»suÉ + ) + +3793 + `wšdow_excursiÚ +Ð +uwšp +-> +icÚp +, +FIXED_COMPLETELY +, +TRUE +, + +3794 + `Mªage_Fšish +Ð +»suÉ + ) ) + +3796 + `Mªage_Fšish +Ð +FALSE + ); + +3797  +»suÉ +; + +3798 + } +} + +3802  + #CÚfigu»_Has_X +( +æags +) \ + +3803 ÐÐ( +æags +è& (1L << 0èè!ð0 ) + + ) + +3804  + #CÚfigu»_Has_Y +( +æags +) \ + +3805 ÐÐ( +æags +è& (1L << 1èè!ð0 ) + + ) + +3806  + #CÚfigu»_Has_Width +( +æags +) \ + +3807 ÐÐ( +æags +è& (1L << 2èè!ð0 ) + + ) + +3808  + #CÚfigu»_Has_Height +( +æags +) \ + +3809 ÐÐ( +æags +è& (1L << 3èè!ð0 ) + + ) + +3811  + #CÚfigu»_Has_Pos™iÚ +( +æags +) \ + +3812 Ð + `CÚfigu»_Has_X +( +æags +è|| + `CÚfigu»_Has_Y +(æagsè) + + ) + +3813  + #CÚfigu»_Has_Size +( +æags +) \ + +3814 Ð + `CÚfigu»_Has_Width +( +æags +è|| + `CÚfigu»_Has_Height +(æagsè) + + ) + +3818  + $Mªage_U£r_O³n_CÚfigu» +Ð +uwšp +, +pos +, +siz +, + +3819 +pos_aù +, +siz_aù + ) + +3820 +U£rwš + * +uwšp +; + +3821 +TWPošt + +pos +; + +3822 +Size + +siz +; + +3823 +boÞ + +pos_aù +, +siz_aù +; + +3825 +boÞ + +»suÉ + = +TRUE +; + +3827 iàÐ +pos_aù + && +siz_aù + ) + +3829 +»suÉ + = + `Mªage_C’‹r_NeighbÜhood_O³n +Ð +uwšp +, +pos +, +siz + ); + +3832 iàÐ +pos_aù + ) + +3834 +»suÉ + = + `Mªage_C’‹r_NeighbÜhood_O³n +Ð +uwšp +, +pos +, + +3835 + `Tžwš_G‘_Desœed +Ð +uwšp +-> +wšp + ) ); + +3838 iàÐ +siz_aù + ) + +3840 +»suÉ + = + `Mªage_C’‹r_NeighbÜhood_O³n +Ð +uwšp +, + +3841 + `Tžwš_G‘_C’‹r +Ð +uwšp +-> +wšp + ), +siz + ); + +3844 ià(! +»suÉ +) + +3845 + `D¿w_FÏsh +(); + +3846 + } +} + +3850  + $Mªage_Cl›Á_CÚfigu» +Ð +uwšp +, +æags +, +tÝ_Ëá +, +bodsiz +, +d‘až + ) + +3851 +U£rwš + * +uwšp +; + +3852  +æags +; + +3853 +TWPošt + +tÝ_Ëá +; + +3854 +Size + +bodsiz +; + +3855  +d‘až +; + +3857 +TWPošt + +ûÁ” +; + +3858 +Size + +‹mpsiz +, +siz +, +desœed +; + +3859 +TWReùªgË + +»ù +; + +3861 + `Mªage_S¹ +(); + +3863 +»ù + = + `RegiÚ_Body_ReùªgË +Ð +uwšp + ); + +3865 + `COMPUTE_SIZE +Ð +»ù +, +‹mpsiz + ); + +3867 iàÐ + `CÚfigu»_Has_Width +( +æags +) ) + +3868 +‹mpsiz +. +width + = +bodsiz +.width; + +3869 iàÐ + `CÚfigu»_Has_Height +( +æags +) ) + +3870 +‹mpsiz +. +height + = +bodsiz +.height; + +3872 iàÐ + `CÚfigu»_Has_X +( +æags +) ) + +3873 +»ù +. +Ëá_x + = +tÝ_Ëá +. +x +; + +3874 iàÐ + `CÚfigu»_Has_Y +( +æags +) ) + +3875 +»ù +. +tÝ_y + = +tÝ_Ëá +. +y +; + +3877 +»ù +. +right_x + =„eù. +Ëá_x + + +‹mpsiz +. +width + - 1; + +3878 +»ù +. +bÙtom_y + =„eù. +tÝ_y + + +‹mpsiz +. +height + - 1; + +3880 +»ù + = + `RegiÚ_Adju¡_ReùªgË +Ð +uwšp +,„ect ); + +3882 + `COMPUTE_CENTER +Ð +»ù +, +ûÁ” + ); + +3883 + `COMPUTE_SIZE +Ð +»ù +, +siz + ); + +3885 iàÐ + `CÚfigu»_Has_Size +( +æags +) ) + +3886 +uwšp +-> +sized + = +TRUE +; + +3887 iàÐ + `CÚfigu»_Has_Pos™iÚ +( +æags +) ) + +3889 +uwšp +-> +pos™iÚed + = +TRUE +; + +3890 + `Tžwš_S‘_Pos™iÚ +Ð +uwšp +-> +wšp +, +ûÁ” + ); + +3893 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, + +3894 +ENFORCE_CLIENT_MINIMUMS + ) ) + +3895 + `S‘_Max_Size +Ð +siz +, siz, +uwšp +-> +þ›Á_mš + ); + +3897 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, + +3898 +ENFORCE_CLIENT_MAXIMUMS + ) ) + +3899 + `S‘_Mš_Size +Ð +siz +, siz, +uwšp +-> +þ›Á_max + ); + +3901 + `S‘_Mš_Size +Ð +‹mpsiz +, + +3902 + `Tžwš_G‘_Mš +Ð +uwšp +-> +wšp + ), +siz + ); + +3903 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, +‹mpsiz + ); + +3904 + `S‘_Max_Size +Ð +‹mpsiz +, + +3905 + `Tžwš_G‘_Max +Ð +uwšp +-> +wšp + ), +siz + ); + +3906 + `Tžwš_S‘_Max +Ð +uwšp +-> +wšp +, +‹mpsiz + ); + +3908 +desœed + = + `Tžwš_G‘_Desœed +Ð +uwšp +-> +wšp + ); + +3909 iàÐ + `CÚfigu»_Has_Width +( +æags +) ) + +3910 +desœed +. +width + = +siz +.width; + +3911 iàÐ + `CÚfigu»_Has_Height +( +æags +) ) + +3912 +desœed +. +height + = +siz +.height; + +3913 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, +desœed + ); + +3915 ià(! + `Tžwš_Was_Aùu®ly_Modif›d +Ð +uwšp +-> +wšp + )) + +3916 + `Cl›Á_CÚfigu»_D’›d +Ð +uwšp + ); + +3918 ià(! + `Tžwš_Is_O³n +Ð +uwšp +-> +wšp + ) ) + +3920 + `Tžwš_S‘ +Ð +uwšp +-> +wšp +, +ûÁ” +, +siz + ); + +3921 + `Mªage_Fšish_MšÃd +Ð +uwšp +, +TRUE + ); + +3922 + `Mªage_Cªt_Undo +(); + +3926 + `Mªage_U£r_O³n_CÚfigu» +Ð +uwšp +, +ûÁ” +, +siz +, + +3927 + `CÚfigu»_Has_Pos™iÚ +( +æags +), + +3928 + `CÚfigu»_Has_Size +( +æags +) ); + +3929 + `Mªage_Fšish_MšÃd +Ð +uwšp +, +TRUE + ); + +3931 + } +} + +3935  + $Mªage_Cl›Á_S‘_IcÚ_Size +Ð +uwšp +, +siz + ) + +3936 +U£rwš + * +uwšp +; + +3937 +Size + +siz +; + +3939 + `Tžwš_S‘_Mš +Ð +uwšp +-> +icÚp +, +siz + ); + +3940 + `Tžwš_S‘_Max +Ð +uwšp +-> +icÚp +, +siz + ); + +3941 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +icÚp +, +siz + ); + +3943 iàÐ + `Tžwš_Is_O³n +Ð +uwšp +-> +icÚp + ) ) + +3945 + `Mªage_Cl›Á +( + +3947 + `Mªage_S¹ +(); + +3948 + `Tžwš_S‘_Size +Ð +uwšp +-> +icÚp +, +siz + ); + +3949 + `Mªage_Fšish +Ð +TRUE + ); + +3951 + `Mªage_Cªt_Undo +(); + +3954 + `Tžwš_S‘_Size +Ð +uwšp +-> +icÚp +, +siz + ); + +3955 + } +} + +3959  + $Mªage_Cl›Á_S‘_IcÚ_Pos™iÚ +Ð +uwšp +, +± + ) + +3960 +U£rwš + * +uwšp +; + +3961 +TWPošt + +± +; + +3963 +uwšp +-> +icÚ_pos™iÚed + = +TRUE +; + +3964 + `Tžwš_S‘_Pos™iÚ +Ð +uwšp +-> +icÚp +, +± + ); + +3966 iàÐ + `Tžwš_Is_O³n +Ð +uwšp +-> +icÚp + ) ) + +3968 + `Mªage_Cl›Á +( + +3970 + `Mªage_S¹ +(); + +3971 + `Mªage_IcÚ_O³n +Ð +uwšp + ); + +3972 + `Mªage_Fšish +Ð +TRUE + ); + +3974 + `Mªage_Cªt_Undo +(); + +3977 + `Tžwš_S‘ +Ð +uwšp +-> +icÚp +, +± +, + `Tžwš_G‘_Size +( uwinp->iconp ) ); + +3978 + } +} + +3982  + #Size_Hšts_U£r_Pos™iÚ +( +æags +) \ + +3983 ÐÐ( +æags +è& (1L << 0èè!ð0 ) + + ) + +3984  + #Size_Hšts_U£r_Size +( +æags +) \ + +3985 ÐÐ( +æags +è& (1L << 1èè!ð0 ) + + ) + +3986  + #Size_Hšts_Cl›Á_Pos™iÚ +( +æags +) \ + +3987 ÐÐ( +æags +è& (1L << 2èè!ð0 ) + + ) + +3988  + #Size_Hšts_Cl›Á_Size +( +æags +) \ + +3989 ÐÐ( +æags +è& (1L << 3èè!ð0 ) + + ) + +3990  + #Size_Hšts_Pos™iÚ +( +æags +) \ + +3991 ÐÐ( +æags +è& ((1L << 2è| (1L << 0)èè!ð0 ) + + ) + +3992  + #Size_Hšts_Size +( +æags +) \ + +3993 ÐÐ( +æags +è& ((1L << 3è| (1L << 1)èè!ð0 ) + + ) + +3994  + #Size_Hšts_Mš +( +æags +) \ + +3995 ÐÐ( +æags +è& (1L << 4èè!ð0 ) + + ) + +3996  + #Size_Hšts_Max +( +æags +) \ + +3997 ÐÐ( +æags +è& (1L << 5èè!ð0 ) + + ) + +3998  + #Size_Hšts_Ba£ +( +æags +) \ + +3999 ÐÐ( +æags +è& (1L << 8èè!ð0 ) + + ) + +4001  + #Mªage_U£_Size +( +uwšp +, +æags +) \ + +4002 Ð + `Size_Hšts_Size +( +æags +) && \ + +4003 (! + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +IGNORE_SIZE_HINTS + ) ) && \ + +4004 Ð +uwšp +-> +ev”_Ý’ed + || \ + +4005 (! + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, \ + +4006 +IGNORE_INITIAL_SIZE_HINTS + ) ) ) ) + + ) + +4008  + #Mªage_U£_Pos™iÚ +( +uwšp +, +æags +) \ + +4009 Ð + `Size_Hšts_Pos™iÚ +( +æags +) && \ + +4010 (! + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +IGNORE_POSITION_HINTS + ) ) && \ + +4011 Ð +uwšp +-> +ev”_Ý’ed + || \ + +4012 (! + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, \ + +4013 +IGNORE_INITIAL_POSITION_HINTS + ) ) ) ) + + ) + +4017  + $Mªage_Aù_Hšts_O³n +Ð +uwšp +, +pos +, +siz +, +pos_aù +, +siz_aù + ) + +4018 +U£rwš + * +uwšp +; + +4019 +TWPošt + +pos +; + +4020 +Size + +siz +; + +4021 +boÞ + +pos_aù +, +siz_aù +; + +4023 +boÞ + +»suÉ +; + +4025 iàÐ +pos_aù + ) + +4026 +»suÉ + = + `Mªage_C’‹r_NeighbÜhood_O³n +( + +4027 +uwšp +, +pos +, +siz + ); + +4029 iàÐ +siz_aù + ) + +4030 +»suÉ + = + `Mªage_C’‹r_NeighbÜhood_O³n +( + +4031 +uwšp +, + `Tžwš_G‘_C’‹r +Ðuwšp-> +wšp + ), +siz + ); + +4033 ià(! +»suÉ +) + +4034 + `D¿w_FÏsh +(); + +4035 + } +} + +4039  + $Mªage_Aù_Hšts_Clo£d +Ð +uwšp +, +pos +, +siz +, +pos_aù +, +siz_aù + ) + +4040 +U£rwš + * +uwšp +; + +4041 +TWPošt + +pos +; + +4042 +Size + +siz +; + +4043 +boÞ + +pos_aù +, +siz_aù +; + +4045 iàÐ +pos_aù + && +siz_aù + ) + +4046 + `Tžwš_S‘ +Ð +uwšp +-> +wšp +, +pos +, +siz + ); + +4048 iàÐ +pos_aù + ) + +4049 + `Tžwš_S‘ +Ð +uwšp +-> +wšp +, +pos +, + `Tžwš_G‘_C’‹r +( uwinp->winp ) ); + +4051 iàÐ +siz_aù + ) + +4052 + `Tžwš_S‘ +Ð +uwšp +-> +wšp +, + `Tžwš_G‘_C’‹r +Ðuwšp->wš°), +siz + ); + +4053 + } +} + +4057  + $Mªage_Cl›Á_S‘_Geom‘ry_Hšts +Ð +uwšp +, +æags +, + +4058 +tÝ_Ëá +, +size + ) + +4059 +U£rwš + * +uwšp +; + +4060  +æags +; + +4061 +TWPošt + +tÝ_Ëá +; + +4062 +Size + +size +; + +4064 +Size + +siz +; + +4065 +TWReùªgË + +»ù +; + +4066 +TWPošt + +pos +; + +4067 +boÞ + +pos_aù +, +siz_aù +; + +4068 +boÞ + +by_u£r +; + +4070 ià(! +uwšp +-> +´•¬ed +) + +4071 + `Mªage_P»·» +Ð +uwšp + ); + +4073 + `Mªage_S¹ +(); + +4074 + `Mªage_Save_S‹ +Ð +uwšp + ); + +4076 iàÐ +uwšp +-> +zoomed + ) + +4078 +uwšp +-> +zoom_mš + = + `Tžwš_G‘_Mš +(uwšp-> +wšp +); + +4079 +uwšp +-> +zoom_size + = + `Tžwš_G‘_Desœed +(uwšp-> +wšp +); + +4083 +uwšp +-> +»guÏr_mš + = + `Tžwš_G‘_Mš +(uwšp-> +wšp +); + +4084 +uwšp +-> +»guÏr_size + = + `Tžwš_G‘_Desœed +(uwšp-> +wšp +); + +4087 +by_u£r + = + +4088 Ð + `Size_Hšts_U£r_Pos™iÚ +( +æags +) || + +4089 + `Size_Hšts_U£r_Size +( +æags +) ); + +4093 ià(! + `Mªage_U£_Size +Ð +uwšp +, +æags +) ) + +4094 +size + = + `RegiÚ_UÇdju¡_Size +Ð +uwšp +, uwšp-> +»guÏr_size + ); + +4096 +»ù + = + `RegiÚ_Body_ReùªgË +Ð +uwšp + ); + +4097 iàÐ + `Mªage_U£_Pos™iÚ +Ð +uwšp +, +æags +) ) + +4099 +uwšp +-> +pos™iÚed + = +TRUE +; + +4100 +»ù +. +tÝ_y + = +tÝ_Ëá +. +y +; + +4101 +»ù +. +Ëá_x + = +tÝ_Ëá +. +x +; + +4103 +»ù +. +right_x + =„eù. +Ëá_x + + +size +. +width + - 1; + +4104 +»ù +. +bÙtom_y + =„eù. +tÝ_y + + +size +. +height + - 1; + +4106 +»ù + = + `RegiÚ_Adju¡_ReùªgË +Ð +uwšp +,„ect ); + +4108 + `COMPUTE_CENTER +Ð +»ù +, +pos + ); + +4109 iàÐ + `Mªage_U£_Pos™iÚ +Ð +uwšp +, +æags + ) ) + +4110 + `Tžwš_S‘_Pos™iÚ +Ð +uwšp +-> +wšp +, +pos + ); + +4112 + `COMPUTE_SIZE +Ð +»ù +, +size + ); + +4113 iàÐ! +uwšp +-> +ev”_Ý’ed + ) + +4115 iàÐ + `Profže_Suµl›s_U£r_V®ue +Ð +uwšp +, +NORMAL_DESIRED_WIDTH + ) ) + +4116 +size +. +width + = +uwšp +-> +»guÏr_size +.width; + +4117 iàÐ + `Profže_Suµl›s_U£r_V®ue +Ð +uwšp +, +NORMAL_DESIRED_HEIGHT + ) ) + +4118 +size +. +height + = +uwšp +-> +»guÏr_size +.height; + +4123 +siz_aù + = + `Size_Hšts_U£r_Size +( +æags +); + +4125 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, + +4126 +ENFORCE_CLIENT_MINIMUMS + ) ) + +4127 + `S‘_Max_Size +Ð +size +, size, +uwšp +-> +þ›Á_mš + ); + +4129 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, + +4130 +ENFORCE_CLIENT_MAXIMUMS + ) ) + +4131 + `S‘_Mš_Size +Ð +size +, size, +uwšp +-> +þ›Á_max + ); + +4133 iàÐ + `Size_Hšts_U£r_Size +( +æags +) ) + +4135 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +RESET_MIN_ON_DECREASE +) ) + +4136 + `S‘_Mš_Size +Ð +uwšp +-> +»guÏr_mš +, uwšp->»guÏr_mš, +size + ) + +4138 + `S‘_Max_Size +Ð +size +, size, +uwšp +-> +»guÏr_mš + ); + +4140 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +RESET_MAX_ON_INCREASE +) ) + +4142 + `S‘_Max_Size +Ð +siz +, + `Tžwš_G‘_Max +Ð +uwšp +-> +wšp + ), +size + ); + +4143 + `Tžwš_S‘_Max +Ð +uwšp +-> +wšp +, +siz + ); + +4146 + `S‘_Mš_Size +Ð +size +, size, + `Tžwš_G‘_Max +Ð +uwšp +-> +wšp + ) ); + +4150 + `S‘_Mš_Size +Ð +size +, size, + `Tžwš_G‘_Max +Ð +uwšp +-> +wšp + ) ); + +4151 + `S‘_Max_Size +Ð +size +, size, +uwšp +-> +»guÏr_mš + ); + +4154 iàÐ + `Mªage_U£_Size +Ð +uwšp +, +æags + ) ) + +4156 +uwšp +-> +sized + = +TRUE +; + +4157 +uwšp +-> +»guÏr_size + = +size +; + +4160 iàÐ +uwšp +-> +zoomed + ) + +4161 +siz_aù + = +FALSE +; + +4165 +pos_aù + = + `Size_Hšts_U£r_Pos™iÚ +( +æags +); + +4167 + `S‘_Max_Size +Ð +uwšp +-> +zoom_size +, + +4168 +uwšp +-> +zoom_size +, uwšp-> +»guÏr_size + ); + +4169 + `S‘_Max_Size +Ð +uwšp +-> +zoom_mš +, + +4170 +uwšp +-> +zoom_mš +, uwšp-> +»guÏr_mš + ); + +4172 iàÐ +uwšp +-> +zoomed + ) + +4174 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, uwšp-> +zoom_mš + ); + +4175 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, uwšp-> +zoom_size + ); + +4179 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, uwšp-> +»guÏr_mš + ); + +4180 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, uwšp-> +»guÏr_size + ); + +4183 iàÐ(! ( +siz_aù + || +pos_aù + ) ) || + +4184 Ð(! +uwšp +-> +ev”_Ý’ed +è&& uwšp-> +Ïyout_found + ) ) + +4186 + `Mªage_Fšish +Ð +TRUE + ); + +4187 ià(! +by_u£r +) + +4188 + `Mªage_Cªt_Undo +(); + +4190 ià(! + `U£rwš_Is_O³n +( +uwšp +) ) + +4192 + `Mªage_Aù_Hšts_Clo£d +Ð +uwšp +, +pos +, +size +, + +4193 +pos_aù +, +siz_aù + ); + +4194 + `Mªage_Fšish +Ð +TRUE + ); + +4195 + `Mªage_Cªt_Undo +(); + +4197 iàÐ +by_u£r + ) + +4199 + `Mªage_Aù_Hšts_O³n +Ð +uwšp +, +pos +, +size +, + +4200 +pos_aù +, +siz_aù + ); + +4201 + `Mªage_Fšish_MšÃd +Ð +uwšp +, +TRUE + ); + +4204 + `Mªage_Cl›Á_Fšish_MšÃd +Ð +uwšp +, + +4205 + `Mªage_Aù_Hšts_O³n +Ð +uwšp +, +pos +, +size +, + +4206 +pos_aù +, +siz_aù + ) ); + +4207 + } +} + +4211  + $Mªage_In™Ÿl_Geom‘ry +Ð +uwšp +, +tÝ_Ëá +, +bodsiz + ) + +4212 +U£rwš + * +uwšp +; + +4213 +TWPošt + +tÝ_Ëá +; + +4214 +Size + +bodsiz +; + +4216 +TWPošt + +ûÁ” +; + +4217 +Size + +siz +; + +4218 +TWReùªgË + +»ù +; + +4220 ià(! +uwšp +-> +´•¬ed +) + +4221 + `Mªage_P»·» +Ð +uwšp + ); + +4223 +»ù +. +Ëá_x + = +tÝ_Ëá +. +x +; + +4224 +»ù +. +tÝ_y + = +tÝ_Ëá +. +y +; + +4226 +»ù +. +right_x + =„eù. +Ëá_x + + +bodsiz +. +width + - 1; + +4227 +»ù +. +bÙtom_y + =„eù. +tÝ_y + + +bodsiz +. +height + - 1; + +4229 +»ù + = + `RegiÚ_Adju¡_ReùªgË +Ð +uwšp +,„ect ); + +4231 + `COMPUTE_CENTER +Ð +»ù +, +ûÁ” + ); + +4233 + `COMPUTE_SIZE +Ð +»ù +, +siz + ); + +4234 iàÐ + `Profže_Suµl›s_U£r_V®ue +Ð +uwšp +, +NORMAL_DESIRED_WIDTH + ) ) + +4235 +siz +. +width + = +uwšp +-> +»guÏr_size +.width; + +4236 iàÐ + `Profže_Suµl›s_U£r_V®ue +Ð +uwšp +, +NORMAL_DESIRED_HEIGHT + ) ) + +4237 +siz +. +height + = +uwšp +-> +»guÏr_size +.height; + +4239 + `S‘_Mš_Size +Ð +siz +, siz, + `Tžwš_G‘_Max +Ð +uwšp +-> +wšp + ) ); + +4240 + `S‘_Max_Size +Ð +siz +, siz, + `Tžwš_G‘_Mš +Ð +uwšp +-> +wšp + ) ); + +4242 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, +siz + ); + +4243 + `Tžwš_S‘ +Ð +uwšp +-> +wšp +, +ûÁ” +, +siz + ); + +4244 + } +} + +4248  + $Mªage_Cl›Á_S‘_NÜm®_Hšts +Ð +uwšp +, +æags +, + +4249 +mš_size +, +max_size +, +šü_size +, + +4250 +mš_a¥eù +, +max_a¥eù +, +ba£_size + ) + +4251 +U£rwš + * +uwšp +; + +4252  +æags +; + +4253 +Size + +mš_size +, +max_size +, +šü_size +, +ba£_size +; + +4254 +TWPošt + +mš_a¥eù +, +max_a¥eù +; + +4256 +Size + +siz +; + +4257 +boÞ + +aù + = +FALSE +; + +4259 ià(! +uwšp +-> +´•¬ed +) + +4260 + `Mªage_P»·» +Ð +uwšp + ); + +4262 + `Mªage_S¹ +(); + +4263 + `Mªage_Save_S‹ +Ð +uwšp + ); + +4265 iàÐ +uwšp +-> +zoomed + ) + +4267 +uwšp +-> +zoom_mš + = + `Tžwš_G‘_Mš +(uwšp-> +wšp +); + +4268 +uwšp +-> +zoom_size + = + `Tžwš_G‘_Desœed +(uwšp-> +wšp +); + +4272 +uwšp +-> +»guÏr_mš + = + `Tžwš_G‘_Mš +(uwšp-> +wšp +); + +4273 +uwšp +-> +»guÏr_size + = + `Tžwš_G‘_Desœed +(uwšp-> +wšp +); + +4276 iàÐ + `Profže_Suµl›s_U£r_V®ue +Ð +uwšp +, +CLIENT_MAX_WIDTH + ) ) + +4277 +max_size +. +width + = +uwšp +-> +body_max +.width; + +4278 iàÐ + `Profže_Suµl›s_U£r_V®ue +Ð +uwšp +, +CLIENT_MAX_HEIGHT + ) ) + +4279 +max_size +. +height + = +uwšp +-> +body_max +.height; + +4281 iàÐ + `Profže_Suµl›s_U£r_V®ue +Ð +uwšp +, +CLIENT_MIN_WIDTH + ) ) + +4282 +mš_size +. +width + = +uwšp +-> +body_mš +.width; + +4283 iàÐ + `Profže_Suµl›s_U£r_V®ue +Ð +uwšp +, +CLIENT_MIN_HEIGHT + ) ) + +4284 +mš_size +. +height + = +uwšp +-> +body_mš +.height; + +4288 iàÐ + `Size_Hšts_Max +( +æags +) ) + +4290 iàÐ + `Size_Hšts_Mš +( +æags +) ) + +4291 + `S‘_Max_Size +Ð +max_size +, max_size, +mš_size + ) + +4292 iàÐ + `Size_Hšts_Ba£ +( +æags +) ) + +4294 +mš_size + = +ba£_size +; + +4295 + `S‘_Max_Size +Ð +max_size +, max_size, +mš_size + ) + +4298 +uwšp +-> +þ›Á_max + = + `RegiÚ_Adju¡_Size +Ðuwšp, +max_size + ); + +4299 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ENFORCE_CLIENT_MAXIMUMS + ) ) + +4301 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, + +4302 +AUTO_RESATISFY_ON_RESET_MINMAX + ) ) + +4303 +aù + = +TRUE +; + +4305 + `S‘_Mš_Size +Ð +siz +, + `Tžwš_G‘_Max +Ð +uwšp +-> +wšp + ), + +4306 +uwšp +-> +þ›Á_max + ) + +4307 + `Tžwš_S‘_Max +Ð +uwšp +-> +wšp +, +siz + ); + +4309 + `S‘_Mš_Size +Ð +uwšp +-> +»guÏr_mš +, + +4310 +uwšp +-> +»guÏr_mš +, uwšp-> +þ›Á_max + ); + +4312 + `S‘_Mš_Size +Ð +uwšp +-> +»guÏr_size +, + +4313 +uwšp +-> +»guÏr_size +, uwšp-> +þ›Á_max + ) + +4317 iàÐ + `Size_Hšts_Mš +( +æags +è|| + `Size_Hšts_Ba£ +(flags) ) + +4319 +uwšp +-> +body_mš + = +mš_size +; + +4320 +uwšp +-> +þ›Á_mš + = + `RegiÚ_Adju¡_Size +Ðuwšp, +mš_size + ); + +4321 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ENFORCE_CLIENT_MINIMUMS + ) ) + +4323 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, + +4324 +AUTO_RESATISFY_ON_RESET_MINMAX + ) ) + +4325 +aù + = +TRUE +; + +4327 + `S‘_Max_Size +Ð +siz +, + `Tžwš_G‘_Mš +Ð +uwšp +-> +wšp + ), + +4328 +uwšp +-> +þ›Á_mš + ) + +4329 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, +siz + ); + +4331 + `S‘_Max_Size +Ð +uwšp +-> +»guÏr_mš +, + +4332 +uwšp +-> +»guÏr_mš +, uwšp-> +þ›Á_mš + ); + +4334 + `S‘_Max_Size +Ð +uwšp +-> +»guÏr_size +, + +4335 +uwšp +-> +»guÏr_size +, uwšp-> +þ›Á_mš + ); + +4339 iàÐ + `Same_Size +Ð + `Tžwš_G‘_Mš +( +uwšp +-> +wšp +), + +4340 + `Tžwš_G‘_Max +( +uwšp +-> +wšp +) ) ) + +4341 +uwšp +-> +sized + = +TRUE +; + +4343 + `S‘_Max_Size +Ð +uwšp +-> +zoom_size +, + +4344 +uwšp +-> +zoom_size +, uwšp-> +»guÏr_size + ); + +4345 + `S‘_Max_Size +Ð +uwšp +-> +zoom_mš +, + +4346 +uwšp +-> +zoom_mš +, uwšp-> +»guÏr_mš + ); + +4348 iàÐ +uwšp +-> +zoomed + ) + +4350 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, uwšp-> +zoom_mš + ); + +4351 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, uwšp-> +zoom_size + ); + +4355 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, uwšp-> +»guÏr_mš + ); + +4356 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, uwšp-> +»guÏr_size + ); + +4359 iàÐ! +aù + || + +4360 Ð(! +uwšp +-> +ev”_Ý’ed +è&& uwšp-> +Ïyout_found + ) ) + +4362 + `Mªage_Fšish +Ð +TRUE + ); + +4363 + `Mªage_Cªt_Undo +(); + +4365 ià(! + `U£rwš_Is_O³n +( +uwšp +) ) + +4367 + `Mªage_Re§tisfy +Ð +uwšp + ); + +4368 + `Mªage_Fšish +Ð +TRUE + ); + +4369 + `Mªage_Cªt_Undo +(); + +4372 + `Mªage_Cl›Á_Fšish_MšÃd +Ð +uwšp +, + +4374 ifÐ! + `Mªage_Re§tisfy +Ð +uwšp + ) ) + +4375 + `D¿w_FÏsh +(); + +4377 + } +} + +4381 +boÞ + +Mªage_Fixed_O³n +(); + +4382 +boÞ + +Mªage_U£r_O³n_Autom©iÿÎy +(); + +4386 +boÞ + + $Mªage_Cl›Á_O³n_Autom©iÿÎy +Ð +uwšp + ) + +4387 +U£rwš + * +uwšp +; + +4389 +boÞ + +»suÉ + = +FALSE +; + +4391 iàÐ! +uwšp +-> +ev”_Ý’ed + ) + +4393 + `Mªage_S¹ +(); + +4395 iàÐ +uwšp +-> +sized + && uwšp-> +pos™iÚed + ) + +4396 + `Mªage_Cl›Á +( + +4397 + `glob®_excursiÚ +Ð +ENABLE_GRAVITY +, +FALSE +, + +4399 +»suÉ + = + `Mªage_Fixed_O³n +Ð +uwšp + ); + +4402 ià(! +»suÉ +) + +4403 + `Mªage_Cl›Á +( + +4405 +»suÉ + = + `Mªage_U£r_O³n_Autom©iÿÎy +( + +4406 +uwšp +, +FALSE +, FALSE ); + +4409 ià(! +»suÉ +) + +4410 + `Mªage_Cl›Á +( + +4411 + `Mªage_In™Ÿl_IcÚ_O³n +Ð +uwšp + ) ); + +4413 +uwšp +-> +ev”_Ý’ed + = +TRUE +; + +4414 + `Mªage_Fšish +Ð +TRUE + ); + +4417 + `Mªage_Cl›Á +( + +4419 +»suÉ + = + `Mªage_U£r_O³n_Autom©iÿÎy +( + +4420 +uwšp +, +FALSE +, FALSE ); + +4423  +»suÉ +; + +4424 + } +} + +4428  +boÞ + + $Mªage_Exchªge_O³n +Ð +uwšp +, +pos +, +siz + ) + +4429 +U£rwš + * +uwšp +; + +4430 +TWPošt + +pos +; + +4431 +Size + +siz +; + +4433 +boÞ + +»suÉ +; + +4435 + `Mªage_S¹_Tryšg +(); + +4437 +»suÉ + = + `Mªage_C’‹r_NeighbÜhood_O³n +Ð +uwšp +, +pos +, +siz + ); + +4438 iàÐ(! +»suÉ +è&& + `Mªage_Cª_Try_Li¡’”_Unzoom +() ) + +4439 +»suÉ + = + `Mªage_C’‹r_NeighbÜhood_O³n +Ð +uwšp +, +pos +, +siz + ); + +4441 + `Mªage_Fšish_Tryšg +Ð +»suÉ + ); + +4442  +»suÉ +; + +4443 + } +} + +4447  +boÞ + + $Mªage_IcÚ_Exchªge_O³n +Ð +uwšp +, +pos + ) + +4448 +U£rwš + * +uwšp +; + +4449 +TWPošt + +pos +; + +4451 +boÞ + +»suÉ +; + +4453 +»suÉ + = + `Mªage_NeighbÜhood_IcÚ_O³n +Ð +uwšp +, +pos + ); + +4454 ià(! +»suÉ +) + +4455 +»suÉ + = + `Mªage_IcÚ_O³n +Ð +uwšp + ); + +4457  +»suÉ +; + +4458 + } +} + +4462  +boÞ + + $Mªage_IcÚ_Exchªge +Ð +uwšp1 +, +uwšp2 + ) + +4463 +U£rwš + * +uwšp1 +, * +uwšp2 +; + +4465 +boÞ + +»suÉ +; + +4466 +TWPošt + +±1 +, +±2 +; + +4467 +±1 + = + `Tžwš_G‘_C’‹r +Ð +uwšp1 +-> +icÚp + ); + +4468 +±2 + = + `Tžwš_G‘_C’‹r +Ð +uwšp2 +-> +icÚp + ); + +4470 + `Tžwš_Clo£ +Ð +uwšp1 +-> +icÚp + ); + +4472 + `glob®_excursiÚ +Ð +PREFER_CLOSE_TO_SHRINK +, + +4473 + `U£rGlob®s_G‘_O±iÚ +( +PREFER_CL_TO_SHR_ON_EXCHANGE +), + +4474 + `glob®_»¡riù_excursiÚ +( + +4475 +ALLOW_AUTOMATIC_CLOSE +, + +4476 + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_AUTO_CLOSE_ON_EXCHANGE +), + +4477 + `glob®_»¡riù_excursiÚ +( + +4478 +ALLOW_AUTOMATIC_SHRINK +, + +4479 + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_AUTO_SHRINK_ON_EXCHANGE +), + +4481 +»suÉ + = + `Mªage_IcÚ_Exchªge_O³n +Ð +uwšp2 +, +±1 + ); + +4482 iàÐ +»suÉ + ) + +4483 +»suÉ + = + `Mªage_IcÚ_Exchªge_O³n +Ð +uwšp1 +, +±2 + ); + +4486 iàÐ +»suÉ + ) + +4488 + `Tžwš_S‘_Pos™iÚ +Ð +uwšp1 +-> +icÚp +, +±2 + ); + +4489 + `Tžwš_S‘_Pos™iÚ +Ð +uwšp2 +-> +icÚp +, +±1 + ); + +4492  +»suÉ +; + +4493 + } +} + +4497  +boÞ + + $Mªage_O³n_Exchªge +Ð +uwšp1 +, +uwšp2 + ) + +4498 +U£rwš + * +uwšp1 +, * +uwšp2 +; + +4500 +TWPošt + +±1 +, +±2 +; + +4501 +Size + +siz +; + +4502 +boÞ + +»suÉ +; + +4504 + `Mªage_Re¡¬t +(); + +4506 +±1 + = + `Tžwš_G‘_C’‹r +Ð +uwšp1 +-> +wšp + ); + +4507 +±2 + = + `Tžwš_G‘_C’‹r +Ð +uwšp2 +-> +wšp + ); + +4509 + `Tžwš_Clo£ +Ð +uwšp1 +-> +wšp + ); + +4511 + `u£r_glob®_»¡riù_excursiÚ +( + +4512 +UNZOOM_TIED_LSNR_IF_NECESSARY +, + +4513 ÐÐ +li¡’” + !ð +uwšp1 + ) && (†i¡’” !ð +uwšp2 + ) ), + +4514 + `glob®_excursiÚ +Ð +PREFER_CLOSE_TO_SHRINK +, + +4515 + `U£rGlob®s_G‘_O±iÚ +( +PREFER_CL_TO_SHR_ON_EXCHANGE +), + +4516 + `glob®_»¡riù_excursiÚ +( + +4517 +ALLOW_AUTOMATIC_CLOSE +, + +4518 + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_AUTO_CLOSE_ON_EXCHANGE +), + +4519 + `glob®_»¡riù_excursiÚ +( + +4520 +ALLOW_AUTOMATIC_SHRINK +, + +4521 + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_AUTO_SHRINK_ON_EXCHANGE +), + +4523 +siz + = + `Tžwš_Checked_Desœed_Size +Ð +uwšp2 +-> +wšp + ); + +4524 +»suÉ + = + `Mªage_Exchªge_O³n +Ð +uwšp2 +, +±1 +, +siz + ); + +4525 iàÐ +»suÉ + ) + +4526 + `wšdow_excursiÚ +Ð +uwšp2 +-> +wšp +, +REQUIRE_MANUAL_CLOSE +, +TRUE +, + +4528 +siz + = + `Tžwš_Checked_Desœed_Size +Ð +uwšp1 +-> +wšp + ); + +4529 +»suÉ + = + `Mªage_Exchªge_O³n +Ð +uwšp1 +, +±2 +, +siz + ); + +4533 iàÐ +»suÉ + ) + +4535 + `Tžwš_S‘_Pos™iÚ +Ð +uwšp1 +-> +wšp +, +±2 + ); + +4536 +uwšp1 +-> +pos™iÚed + = +TRUE +; + +4537 + `Tžwš_S‘_Pos™iÚ +Ð +uwšp2 +-> +wšp +, +±1 + ); + +4538 +uwšp2 +-> +pos™iÚed + = +TRUE +; + +4540  +»suÉ +; + +4541 + } +} + +4545  +boÞ + + $Mªage_Difã»Á_Exchªge +Ð +uwšp1 +, +uwšp2 + ) + +4546 +U£rwš + * +uwšp1 +, * +uwšp2 +; + +4548 +TWPošt + +±1 +, +±2 +; + +4549 +Size + +siz +; + +4550 +boÞ + +»suÉ +; + +4551 +boÞ + +»pos1 + = +FALSE +; + +4552 +boÞ + +»pos2 + = +FALSE +; + +4554 iàÐ +uwšp2 + =ð +¹l_uwšp + )  +FALSE +; + +4556 + `Mªage_Re¡¬t +(); + +4558 +±1 + = + `Tžwš_G‘_C’‹r +Ð +uwšp1 +-> +wšp + ); + +4559 +±2 + = + `Tžwš_G‘_C’‹r +Ð +uwšp2 +-> +icÚp + ); + +4561 + `Tžwš_Clo£ +Ð +uwšp1 +-> +wšp + ); + +4562 + `Tžwš_Clo£ +Ð +uwšp2 +-> +icÚp + ); + +4564 + `u£r_glob®_»¡riù_excursiÚ +( + +4565 +UNZOOM_TIED_LSNR_IF_NECESSARY +, + +4566 Ð +li¡’” + !ð +uwšp1 + ), + +4567 { + `glob®_excursiÚ +Ð +PREFER_CLOSE_TO_SHRINK +, + +4568 + `U£rGlob®s_G‘_O±iÚ +( +PREFER_CL_TO_SHR_ON_EXCHANGE +), + +4569 { + `glob®_»¡riù_excursiÚ +( + +4570 +ALLOW_AUTOMATIC_CLOSE +, + +4571 + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_AUTO_CLOSE_ON_EXCHANGE +), + +4572 { + `glob®_»¡riù_excursiÚ +( + +4573 +ALLOW_AUTOMATIC_SHRINK +, + +4574 + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_AUTO_SHRINK_ON_EXCHANGE +), + +4576 +siz + = + `Tžwš_Checked_Desœed_Size +Ð +uwšp2 +-> +wšp + ); + +4577 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +PREFER_EXCHANGED_LOC_ON_OPENING +) && + +4578 (! ( +uwšp2 +-> +pos™iÚed + && + +4579 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp2 +, + +4580 +REQUIRE_PREV_POS + ) ) ) ) + +4582 +»suÉ + = + `Mªage_Exchªge_O³n +Ð +uwšp2 +, +±1 +, +siz + ); + +4583 iàÐ +»suÉ + ) + +4584 +»pos2 + = +TRUE +; + +4586 ià(! +»suÉ +) + +4587 +»suÉ + = + `Mªage_DesktÝ_O³n +Ð +uwšp2 +, +siz + ); + +4589 ià(! +»suÉ +) + +4590  +FALSE +; + +4591 + `wšdow_excursiÚ +Ð +uwšp2 +-> +wšp +, +REQUIRE_MANUAL_CLOSE +, +TRUE +, + +4593 iàÐ + `U£rGlob®s_G‘_O±iÚ +( + +4594 +PREFER_EXC_LOC_ON_ICONIZING +) ) + +4596 iàÐ + `Mªage_NeighbÜhood_IcÚ_O³n +Ð +uwšp1 +, +±2 + ) ) + +4597 +»pos1 + = +TRUE +; + +4599 + `Mªage_IcÚ_O³n +Ð +uwšp1 + ); + +4602 + `Mªage_IcÚ_O³n +Ð +uwšp1 + ); + +4605 iàÐ +»pos1 + ) + +4606 + `Tžwš_S‘_Pos™iÚ +Ð +uwšp1 +-> +icÚp +, +±2 + ); + +4607 iàÐ +»pos2 + ) + +4609 + `Tžwš_S‘_Pos™iÚ +Ð +uwšp2 +-> +wšp +, +±1 + ); + +4610 +uwšp2 +-> +pos™iÚed + = +TRUE +; + +4613  +TRUE +; + +4614 + } +} + +4618 +boÞ + + $Mªage_Exchªge +Ð +uwšp1 +, +uwšp2 + ) + +4619 +U£rwš + * +uwšp1 +, * +uwšp2 +; + +4621 +boÞ + +Ý’1 +, +Ý’2 +; + +4622 +boÞ + +»suÉ +; + +4624 + `Mªage_S¹ +(); + +4626 +Ý’1 + = ( +uwšp1 +-> +cu¼’t_ty³ + =ð +body + ); + +4627 +Ý’2 + = ( +uwšp2 +-> +cu¼’t_ty³ + =ð +body + ); + +4629 iàÐ +Ý’1 + && (! +Ý’2 +) ) + +4631 +»suÉ + = + `Mªage_Difã»Á_Exchªge +Ð +uwšp1 +, +uwšp2 + ); + +4632 + `Mªage_Fšish_Locked +Ð +uwšp2 +, +»suÉ + ); + +4635 iàÐ +Ý’2 + && (! +Ý’1 +) ) + +4637 +»suÉ + = + `Mªage_Difã»Á_Exchªge +Ð +uwšp2 +, +uwšp1 + ); + +4638 + `Mªage_Fšish_Locked +Ð +uwšp1 +, +»suÉ + ); + +4641 iàÐ(! +Ý’1 +è&& (! +Ý’2 +) ) + +4643 +»suÉ + = + `Mªage_IcÚ_Exchªge +Ð +uwšp1 +, +uwšp2 + ); + +4644 + `Mªage_Fšish +Ð +»suÉ + ); + +4649 +»suÉ + = +FALSE +; + +4651 iàÐ + `U£rGlob®s_G‘_O±iÚ +( + +4652 +TRY_CTR_NBRHD_ON_EXCHANGE +) && + +4653 + `U£rGlob®s_G‘_O±iÚ +( + +4654 +TRY_CTR_NBRHD_ON_OPEN +) ) + +4656 +»suÉ + = + `Mªage_O³n_Exchªge +Ð +uwšp1 +, +uwšp2 + ); + +4657 ià(! +»suÉ +) + +4658 +»suÉ + = + `Mªage_O³n_Exchªge +Ð +uwšp2 +, +uwšp1 + ); + +4661 ià(! +»suÉ +) + +4662 + `u£r_glob®_excursiÚ +( + +4663 +TRY_CTR_NBRHD_ON_OPEN +, +FALSE +, + +4665 +»suÉ + = + `Mªage_O³n_Exchªge +Ð +uwšp1 +, +uwšp2 + ); + +4666 ià(! +»suÉ +) + +4667 +»suÉ + = + `Mªage_O³n_Exchªge +Ð +uwšp2 +, +uwšp1 + ); + +4670 + `wšdow_excursiÚ +Ð +uwšp1 +-> +wšp +, +REQUIRE_MANUAL_CLOSE +, +TRUE +, + +4671 + `wšdow_excursiÚ +Ð +uwšp2 +-> +wšp +, +REQUIRE_MANUAL_CLOSE +, +TRUE +, + +4672 + `Mªage_Fšish +Ð +»suÉ + ) ) ); + +4676  +»suÉ +; + +4677 + } +} + +4681  + $Mªage_Remove_Wšdow +Ð +uwšp + ) + +4682 +U£rwš + * +uwšp +; + +4684 +TimeSmp + +¡amp +; + +4686 + `Mªage_S¹ +(); + +4688 iàÐ + `Tžwš_Is_O³n +Ð +uwšp +-> +wšp + ) ) + +4690 + `Tžwš_Clo£ +Ð +uwšp +-> +wšp + ); + +4692 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +AUTO_REPOPULATE_ON_CLOSE +) ) + +4694 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +AUTO_DESIRED_ENLARGE +) ) + +4695 + `Mªage_Ord”ed_Desœe +(); + +4697 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +ONLY_REPOPULATE_SINCE_ON_CLOSE +) ) + +4698 +¡amp + = +uwšp +-> +Ý’_¡amp +; + +4700 +¡amp + = ( +TimeSmp +)0; + +4701 + `Mªage_R•ÝuÏ‹_Sšû +Ð +¡amp +, +FALSE +, FALSE, +TRUE + ); + +4705 + `Mªage_Fšish +Ð +TRUE + ); + +4706 + } +} + +4710  + $Mªage_Remove +Ð +uwšp + ) + +4711 +U£rwš + * +uwšp +; + +4713 iàÐ + `Tžwš_Is_O³n +Ð +uwšp +-> +wšp + ) ) + +4714 + `Tžwš_Clo£ +Ð +uwšp +-> +wšp + ); + +4715 iàÐ + `Tžwš_Is_O³n +Ð +uwšp +-> +icÚp + ) ) + +4716 + `Tžwš_Clo£ +Ð +uwšp +-> +icÚp + ); + +4718 + `Clo£d_Remove +Ð +uwšp + ); + +4719 + } +} + +4723  + $Mªage_Clo£ +Ð +uwšp + ) + +4724 +U£rwš + * +uwšp +; + +4726  + `Mªage_CÚŒaù +(); + +4728 iàÐ +uwšp +-> +þ›Á_¡©e + !ð +Cl›ÁIcÚS‹ + ) + +4729 + `Mªage_Remove_Wšdow +Ð +uwšp + ); + +4730 iàÐ + `Same_Size +Ð + `Tžwš_G‘_Mš +( +uwšp +-> +wšp +), + +4731 + `Tžwš_G‘_Size +( +uwšp +-> +wšp +) ) ) + +4732 + `Mªage_Remove_Wšdow +Ð +uwšp + ); + +4734 + `Mªage_CÚŒaù +Ð +uwšp + ); + +4735 + } +} + +4739  + $Mªage_Cl›Á_Clo£ +Ð +uwšp + ) + +4740 +U£rwš + * +uwšp +; + +4742 + `Mªage_Cl›Á +Ð + `Mªage_Remove_Wšdow +Ð +uwšp + ) ); + +4743 + } +} + +4747  + $Mªage_Cl›Á_O³n_IcÚ +Ð +uwšp + ) + +4748 +U£rwš + * +uwšp +; + +4750 iàÐ +uwšp +-> +ev”_Ý’ed + ) + +4751 + `Mªage_Cl›Á_Clo£ +Ð +uwšp + ); + +4754 +uwšp +-> +ev”_Ý’ed + = +TRUE +; + +4755 + `Mªage_Cl›Á +Ð + `Mªage_In™Ÿl_IcÚ_O³n +Ð +uwšp + ) ) + +4757 + } +} + +4761  + $Mªage_Clo£_IcÚ +Ð +uwšp + ) + +4762 +U£rwš + * +uwšp +; + +4764 + `Mªage_S¹ +(); + +4765 iàÐ + `Tžwš_Is_O³n +Ð +uwšp +-> +icÚp + ) ) + +4766 + `Tžwš_Clo£ +Ð +uwšp +-> +icÚp + ); + +4767 + `Mªage_Fšish +Ð +TRUE + ); + +4768 + } +} + +4772  + $Mªage_IÇùiv©e +Ð +uwšp + ) + +4773 +U£rwš + * +uwšp +; + +4775 iàÐ + `Tžwš_Is_O³n +Ð +uwšp +-> +wšp + ) ) + +4776 + `Mªage_Remove_Wšdow +Ð +uwšp + ); + +4778 + `Mªage_Clo£_IcÚ +Ð +uwšp + ); + +4779 + } +} + +4783  + $Mªage_Cl›Á_Clo£_IcÚ +Ð +uwšp + ) + +4784 +U£rwš + * +uwšp +; + +4786 + `Mªage_Cl›Á +Ð + `Mªage_IÇùiv©e +Ð +uwšp + ) ) + +4787 + } +} + +4791  + $Mªage_Group_Clo£ +Ð +uwšp + ) + +4792 +U£rwš + * +uwšp +; + +4794 +Tžwšp + +wšp +; + +4795 +U£rwš + * +group +; + +4796 +TimeSmp + +¡amp +; + +4798 +group + = +uwšp +->group; + +4799 iàÐ +group + =ð +UWIN_NULL + ) + +4801 + `Mªage_Clo£ +Ð +uwšp + ); + +4805 + `Mªage_S¹ +(); + +4807 +group +->group = group; + +4809 + `Tžwš_G’_Clo£d_Wšdows +(); + +4810  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +4812 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +4813 iàÐ( +uwšp +-> +group + == group) && + +4814 (! + `Tžwš_Is_O³n +( +uwšp +-> +wšp +)) && + +4815 (! + `Tžwš_Is_O³n +( +uwšp +-> +icÚp +)) ) + +4817 + `Mªage_Save_S‹ +Ð +uwšp + ); + +4818 + `Clo£d_Remove +Ð +uwšp + ); + +4819 +uwšp +-> +group_¡©e + = uwšp-> +wm_¡©e +; + +4823 +¡amp + = +Ï¡_¡amp +; + +4825 + `Tžwš_G’_O³n_Wšdows +(); + +4826  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +4828 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +4829 iàÐ +uwšp +-> +group + == group ) + +4831 iàÐ +uwšp +-> +wšp + == winp ) + +4832 +¡amp + = + `MIN +Сamp, +uwšp +-> +Ý’_¡amp + ); + +4834 + `Mªage_Save_S‹ +Ð +uwšp + ); + +4835 + `Mªage_Remove +Ð +uwšp + ); + +4836 +uwšp +-> +group_¡©e + = uwšp-> +wm_¡©e +; + +4840 ià(! +group +-> +ev”_Ý’ed +) + +4841 + `Mªage_P»·»_O³n +Ð +group + ); + +4843 + `Clo£d_Add +Ð +uwšp + ); + +4844 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +USE_ICONS +) ) + +4845 + `Mªage_IcÚ_O³n +Ð +uwšp + ); + +4847 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +AUTO_REPOPULATE_ON_CLOSE +) ) + +4849 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +AUTO_DESIRED_ENLARGE +) ) + +4850 + `Mªage_Ord”ed_Desœe +(); + +4852 ià(! + `U£rGlob®s_G‘_O±iÚ +( +ONLY_REPOPULATE_SINCE_ON_CLOSE +) ) + +4853 +¡amp + = ( +TimeSmp +)0; + +4854 + `Mªage_R•ÝuÏ‹_Sšû +Ð +¡amp +, +FALSE +, FALSE, +TRUE + ); + +4857 + `Mªage_Fšish +Ð +TRUE + ); + +4858 + } +} + +4862  + $Mªage_Group_Re¡Üe +Ð +uwšp + ) + +4863 +U£rwš + * +uwšp +; + +4865  +¡©e +; + +4867 +¡©e + = +uwšp +-> +group_¡©e +; + +4868 +uwšp +-> +group_¡©e + = +GroupS‹ +; + +4870  +¡©e + ) + +4872  +Nev”S‹ +: + +4875  +NoS‹ +: + +4876  +DÚtC¬eS‹ +: + +4877  +NÜm®S‹ +: + +4878 + `Clo£d_Add +Ð +uwšp + ); + +4879 + `Mªage_U£r_O³n_Autom©iÿÎy +Ð +uwšp +, +FALSE +, FALSE ); + +4882  +Cl›ÁIcÚS‹ +: + +4883  +IcÚicS‹ +: + +4884  +IÇùiveS‹ +: + +4885 + `Clo£d_Add +Ð +uwšp + ); + +4886 iàÐ +uwšp +-> +þ›Á_¡©e + =ð +Cl›ÁIcÚS‹ + ) + +4887 + `Mªage_U£r_O³n_Autom©iÿÎy +Ð +uwšp +, +FALSE +, FALSE ); + +4889 + `Mªage_IcÚ_O³n +Ð +uwšp + ); + +4892  +IgnÜeS‹ +: + +4895 + } +} + +4899  + $Mªage_Group_O³n +Ð +group + ) + +4900 +U£rwš + * +group +; + +4902 +boÞ + +found + = +TRUE +; + +4903 +Tžwšp + +wšp +; + +4904 +U£rwš + * +uwšp +; + +4906 + `Mªage_S¹ +(); + +4908 + `Mªage_Save_S‹ +Ð +group + ); + +4909 iàÐ + `Tžwš_Is_O³n +Ð +group +-> +icÚp + ) ) + +4910 + `Tžwš_Clo£ +Ð +group +-> +icÚp + ); + +4911 + `Clo£d_Remove +Ð +group + ); + +4913  +found +) + +4915 +found + = +FALSE +; + +4917 + `Tžwš_G’_Clo£d_Wšdows +(); + +4918  (! +found +) && + +4919 Ð( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) ) + +4921 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +4922 iàÐ + `U£rwš_Group_Clo£d +Ð +uwšp + ) && + +4923 ( +uwšp +-> +group + == group) ) + +4925 +found + = +TRUE +; + +4926 + `Mªage_Group_Re¡Üe +Ð +uwšp + ); + +4931 + `Mªage_Fšish +Ð +TRUE + ); + +4932 + } +} + +4936  + $Mªage_Wªt_S‹ +Ð +uwšp +, +¡©e + ) + +4937 +U£rwš + * +uwšp +; + +4938  +¡©e +; + +4940 +uwšp +-> +group_¡©e + = +¡©e +; + +4941 + } +} + +4945  + $Mªage_S‘_Group +Ð +uwšp +, +group + ) + +4946 +U£rwš + * +uwšp +; + +4947 +U£rwš + * +group +; + +4949 + `Mªage_S¹ +(); + +4951 +uwšp +-> +group + = group; + +4952 ià(! + `U£rwš_Group_Clo£d +Ð +uwšp + ) ) + +4954 iàÐÐ +group + !ð +UWIN_NULL +è&& + `U£rwš_Group_Clo£d +( group ) ) + +4956 + `Mªage_Save_S‹ +Ð +uwšp + ); + +4957 + `Mªage_Remove +Ð +uwšp + ); + +4958 +uwšp +-> +group_¡©e + = uwšp-> +wm_¡©e +; + +4961 iàÐÐ +group + =ð +UWIN_NULL + ) || + +4962 (! + `U£rwš_Group_Clo£d +Ð +group + ) ) ) + +4963 + `Mªage_Group_Re¡Üe +Ð +uwšp + ); + +4965 + `Mªage_Fšish +Ð +TRUE + ); + +4966 + } +} + +4970  + $Mªage_Cl›Á_S‘_Group +Ð +uwšp +, +group + ) + +4971 +U£rwš + * +uwšp +; + +4972 +U£rwš + * +group +; + +4974 + `Mªage_Cl›Á +Ð + `Mªage_S‘_Group +Ð +uwšp +, +group + ) ) + +4975 + } +} + +4979  + $Mªage_Cl›Á_S‘_S‹ +Ð +uwšp +, +¡©e + ) + +4980 +U£rwš + * +uwšp +; + +4981  +¡©e +; + +4983 +uwšp +-> +þ›Á_¡©e + = +¡©e +; + +4984 + } +} + +4988  + $Mªage_Cl›Á_Chªge_S‹ +Ð +uwšp +, +¡©e + ) + +4989 +U£rwš + * +uwšp +; + +4990  +¡©e +; + +4992 +uwšp +-> +þ›Á_¡©e + = +¡©e +; + +4994 iàÐÐ +¡©e + !ð +IgnÜeS‹ + ) && + +4995 Ð +uwšp +-> +wm_¡©e + =ð +IgnÜeS‹ + ) ) + +4996 + `D¿wwš_In£¹ +Ð +uwšp + ); + +4997 iàÐÐ +¡©e + =ð +IgnÜeS‹ + ) && + +4998 Ð +uwšp +-> +wm_¡©e + !ð +IgnÜeS‹ + ) ) + +4999 + `D¿wwš_W™hd¿w +Ð +uwšp + ); + +5001 iàÐ + `U£rwš_Group_Clo£d +Ð +uwšp + ) ) + +5003 iàÐ +¡©e + =ð +IgnÜeS‹ + ) + +5005 iàÐ( +uwšp +-> +wm_¡©e + !ð +IgnÜeS‹ +) && + +5006 ( +uwšp +-> +group + != uwinp) ) + +5008 +uwšp +-> +wm_¡©e + = +IgnÜeS‹ +; + +5009 + `Cl›Á_S‘_S‹ +Ð +uwšp + ); + +5011 +uwšp +-> +group_¡©e + = +IgnÜeS‹ +; + +5015 iàÐ +uwšp +-> +wm_¡©e + =ð +IgnÜeS‹ + ) + +5017 +uwšp +-> +wm_¡©e + = +IÇùiveS‹ +; + +5018 +uwšp +-> +group_¡©e + = +¡©e +; + +5019 + `Cl›Á_S‘_S‹ +Ð +uwšp + ); + +5022 iàÐÐ +¡©e + !ð +NoS‹ + ) && ( s‹ !ð +DÚtC¬eS‹ + ) ) + +5023 +uwšp +-> +group_¡©e + = +¡©e +; + +5028  +¡©e + ) + +5030  +NoS‹ +: + +5031  +DÚtC¬eS‹ +: + +5034  +NÜm®S‹ +: + +5035  +Cl›ÁIcÚS‹ +: + +5036 ià(! + `Tžwš_Is_O³n +Ð +uwšp +-> +wšp + ) ) + +5037 + `Mªage_Cl›Á_O³n_Autom©iÿÎy +Ð +uwšp + ); + +5040  +IcÚicS‹ +: + +5041 + `Mªage_Cl›Á +Ð + `Mªage_Remove_Wšdow +Ð +uwšp + ) ); + +5044  +IÇùiveS‹ +: + +5045 iàÐ + `Tžwš_Is_O³n +( +uwšp +-> +wšp +) || + +5046 + `Tžwš_Is_O³n +( +uwšp +-> +icÚp +) ) + +5047 + `Mªage_Cl›Á +Ð + `Mªage_IÇùiv©e +Ð +uwšp + ) ) + +5049 +uwšp +-> +wm_¡©e + = +IÇùiveS‹ +; + +5050 + `Cl›Á_S‘_S‹ +Ð +uwšp + ); + +5051 + `Clo£d_Add +Ð +uwšp + ); + +5055  +IgnÜeS‹ +: + +5056 iàÐ + `Tžwš_Is_O³n +( +uwšp +-> +wšp +) || + +5057 + `Tžwš_Is_O³n +( +uwšp +-> +icÚp +) ) + +5058 + `Mªage_Cl›Á +Ð + `Mªage_IÇùiv©e +Ð +uwšp + ) ) + +5060 +uwšp +-> +wm_¡©e + = +IgnÜeS‹ +; + +5061 + `Cl›Á_S‘_S‹ +Ð +uwšp + ); + +5063 + `Clo£d_Remove +Ð +uwšp + ); + +5067 + } +} + +5071  + $Mªage_R•ÝuÏ‹_La¡ +() + +5073 + `Mªage_S¹ +(); + +5074 + `Mªage_R•ÝuÏ‹_Sšû +Ð +Ï¡_¡amp +, +TRUE +, +FALSE +, TRUE ); + +5075 + `Mªage_Fšish +Ð +TRUE + ); + +5076 + } +} + +5080  + $Mªage_R•ÝuÏ‹_AÎ +Ð +¡riù +, +Úly_auto_þo£ + ) + +5081 +boÞ + +¡riù +; + +5082 +boÞ + +Úly_auto_þo£ +; + +5084 + `Mªage_S¹ +(); + +5085 + `Mªage_R•ÝuÏ‹_Sšû +Ð( +TimeSmp +)0, +TRUE +, +¡riù +, +Úly_auto_þo£ + ); + +5086 + `Mªage_Fšish +Ð +TRUE + ); + +5087 + } +} + +5091  + $Mªage_C˪up_Wšdow +Ð +uwšp + ) + +5092 +U£rwš + * +uwšp +; + +5094 iàÐ +uwšp + =ð +´ev_touch + )…»v_touch = +UWIN_NULL +; + +5095 iàÐ +uwšp + =ð +´ev_li¡’” + )…»v_li¡’” = +UWIN_NULL +; + +5096 + `Mªage_Un£t +Ð +uwšp + ); + +5099 +uwšp +-> +þ›Á_¡©e + = +Nev”S‹ +; + +5101 + `Mªage_Remove +Ð +uwšp + ); + +5102 + } +} + +5106  + $Mªage_Elimš©e_Wšdow +Ð +uwšp + ) + +5107 +U£rwš + * +uwšp +; + +5109 + `Mªage_UÁ™Ë +Ð +uwšp + ); + +5111 + `D¿wwš_De¡roy +Ð +uwšp + ); + +5112 + `D¿wIcÚ_De¡roy +Ð +uwšp + ); + +5114 + `Tžwš_De¡roy_Wšdow +Ð +uwšp +-> +wšp + ); + +5115 + `Tžwš_De¡roy_Wšdow +Ð +uwšp +-> +icÚp + ); + +5117 + `U£rwš_D—Îoÿ‹ +Ð +uwšp + ); + +5118 + } +} + +5122  + $Mªage_C˪up_CÚÃùiÚ +Ð +cÚÃùiÚ + ) + +5123  +cÚÃùiÚ +; + +5125 +Tžwšp + +wšp +; + +5126 +U£rwš + * +uwšp +; + +5128 + `Tžwš_G’_Clo£d_Wšdows +(); + +5129  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +5131 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +5132 iàÐ( +uwšp +-> +cÚÃùiÚ + == connection ) && + +5133 Ð( +wšp + =ð +uwšp +->wšpè|| + `Tžwš_Is_O³n +(uwinp->winp) ) ) + +5135 + `Mªage_C˪up_Wšdow +Ð +uwšp + ); + +5138 + } +} + +5142  + $Mªage_Elimš©e_CÚÃùiÚ +Ð +cÚÃùiÚ + ) + +5143  +cÚÃùiÚ +; + +5145 +Tžwšp + +wšp +; + +5146 +U£rwš + * +uwšp +; + +5147 +boÞ + +kžËd + = +TRUE +; + +5149  +kžËd +) + +5151 +kžËd + = +FALSE +; + +5152 + `Tžwš_G’_Clo£d_Wšdows +(); + +5153  (! +kžËd +) && + +5154 Ð( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) ) + +5156 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +5157 iàÐ( +uwšp +-> +cÚÃùiÚ + == connection ) && + +5158 Ð( +wšp + =ð +uwšp +->wšpè|| + `Tžwš_Is_O³n +(uwinp->winp) ) ) + +5160 + `Mªage_Elimš©e_Wšdow +Ð +uwšp + ); + +5161 +kžËd + = +TRUE +; + +5165 + } +} + +5169  + $Mªage_De¡roy_Wšdow +Ð +uwšp + ) + +5170 +U£rwš + * +uwšp +; + +5172 +boÞ + +zoomed +; + +5173 +TimeSmp + +Ý’_¡amp +, +zoom_¡amp +; + +5175 + `Mªage_S¹ +(); + +5177 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +ONLY_REPOPULATE_SINCE_ON_CLOSE +) ) + +5178 +Ý’_¡amp + = +uwšp +->open_stamp; + +5180 +Ý’_¡amp + = ( +TimeSmp +)0; + +5182 +zoomed + = +uwšp +->zoomed; + +5183 iàÐ + `U£rGlob®s_G‘_O±iÚ +( + +5184 +ONLY_REPOP_SINCE_ON_AUTO_UNZOOM +) || + +5185 + `U£rGlob®s_G‘_O±iÚ +( + +5186 +ONLY_REPOP_SINCE_ON_EXPL_UNZOOM +) ) + +5187 +zoom_¡amp + = +uwšp +->zoom_stamp; + +5189 +zoom_¡amp + = ( +TimeSmp +)0; + +5191 + `Mªage_C˪up_Wšdow +Ð +uwšp + ); + +5193 + `Mªage_Upd©e_DesktÝ +(); + +5195 + `Mªage_Elimš©e_Wšdow +Ð +uwšp + ); + +5197 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +AUTO_DESIRED_ENLARGE +) ) + +5198 + `Mªage_Ord”ed_Desœe +(); + +5200 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +AUTO_REPOPULATE_ON_CLOSE +) ) + +5201 + `Mªage_R•ÝuÏ‹_Sšû +Ð +Ý’_¡amp +, +FALSE +, FALSE, +TRUE + ); + +5203 iàÐ +zoomed + && + +5204 + `U£rGlob®s_G‘_O±iÚ +( +AUTO_REPOP_ON_EXPLICIT_UNZOOM +) ) + +5205 + `Mªage_R•ÝuÏ‹_Sšû +Ð +zoom_¡amp +, +FALSE +, FALSE, +TRUE + ); + +5207 + `Mªage_Fšish +Ð +TRUE + ); + +5208 + } +} + +5212  + $Mªage_Cl›Á_De¡roy +Ð +uwšp + ) + +5213 +U£rwš + * +uwšp +; + +5215 + `Mªage_Un£t +Ð +uwšp + ); + +5216 + `Mªage_Cl›Á +Ð + `Mªage_De¡roy_Wšdow +Ð +uwšp + ) ); + +5217 + } +} + +5221  + $Mªage_H¬d_Kžl +Ð +uwšp + ) + +5222 +U£rwš + * +uwšp +; + +5224 + `Cl›Á_Kžl +Ð +uwšp + ); + +5225 + `Mªage_De¡roy_Wšdow +Ð +uwšp + ); + +5226 + } +} + +5230  + $Mªage_NÙify +Ð +uwšp + ) + +5231 +U£rwš + * +uwšp +; + +5233 iàÐ + `U£rwš_Bªgs +Ð +uwšp + ) ) + +5235 +uwšp +-> +§všg_¡©e + = +TRUE +; + +5236 + `Cl›Á_Bªg +Ð +uwšp + ); + +5239 + `D¿w_FÏsh +(); + +5240 + } +} + +5244  + $Mªage_Soá_Kžl +Ð +uwšp + ) + +5245 +U£rwš + * +uwšp +; + +5247 iàÐ + `U£rwš_Bªgs +Ð +uwšp + ) ) + +5249 +uwšp +-> +§všg_¡©e + = +TRUE +; + +5250 +uwšp +-> +soá_kžl + = +TRUE +; + +5251 + `Cl›Á_Bªg +Ð +uwšp + ); + +5255 + `Cl›Á_Kžl +Ð +uwšp + ); + +5256 + `Mªage_De¡roy_Wšdow +Ð +uwšp + ); + +5258 + } +} + +5262  + $Mªage_D–‘e_Wšdow +Ð +uwšp + ) + +5263 +U£rwš + * +uwšp +; + +5265 iàÐ + `U£rwš_D–‘es_Wšdow +Ð +uwšp + ) ) + +5266 + `Cl›Á_D–‘e_Wšdow +Ð +uwšp + ); + +5268 + `Mªage_Soá_Kžl +Ð +uwšp + ); + +5269 + } +} + +5273  + $Mªage_NÙify_AÎ +() + +5275 +Tžwšp + +wšp +; + +5276 +U£rwš + * +uwšp +; + +5278 + `Tžwš_G’_Clo£d_Wšdows +(); + +5279  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +5281 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +5282 iàÐ( +uwšp + !ð +¹l_uwšp +) && + +5283 Ð( +wšp + =ð +uwšp +->wšpè|| + `Tžwš_Is_O³n +(uwinp->winp) ) ) + +5285 iàÐ + `U£rwš_Bªgs +Ð +uwšp + ) ) + +5286 + `Mªage_NÙify +Ð +uwšp + ); + +5289 + } +} + +5293  + $Mªage_Soá_Kžl_AÎ +() + +5295 +Tžwšp + +wšp +; + +5296 +U£rwš + * +uwšp +; + +5297 +boÞ + +kžËd + = +TRUE +; + +5299  +kžËd +) + +5301 +kžËd + = +FALSE +; + +5302 + `Tžwš_G’_Clo£d_Wšdows +(); + +5303  (! +kžËd +) && + +5304 Ð( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) ) + +5306 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +5307 iàÐ( +uwšp + !ð +¹l_uwšp +) && + +5308 Ð( +wšp + =ð +uwšp +->wšpè|| + `Tžwš_Is_O³n +(uwinp->winp) ) ) + +5310 + `Mªage_Soá_Kžl +Ð +uwšp + ); + +5311 +kžËd + = +TRUE +; + +5315 + } +} + +5319  + $Mªage_Ex™ +() + +5321 +Tžwšp + +wšp +; + +5322 +U£rwš + * +uwšp +; + +5324 + `Tžwš_G’_Clo£d_Wšdows +(); + +5325  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +5327 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +5328 iàÐ( +uwšp + !ð +¹l_uwšp +) && + +5329 Ð( +wšp + =ð +uwšp +->wšpè|| + `Tžwš_Is_O³n +(uwinp->winp) ) ) + +5330 + `Cl›Á_Kžl +Ð +uwšp + ); + +5332 + } +} + +5336  + $Mªage_Cl›Á_S‘_Mes§ges +Ð +uwšp +, +mes§ges + ) + +5337 +U£rwš + * +uwšp +; + +5338  +mes§ges +; + +5340 +uwšp +-> +mes§ges + = messages; + +5341 + } +} + + @manage.h + +30 #iâdeà +BASETYPE + + +31  + ~"ba£ty³.h +" + +34 #iâdeà +USERWIN + + +35  + ~"uwšP.h +" + +38 +U£rwš + * +focus +; + +39 +U£rwš + * +subli¡’” +; + +40 +U£rwš + * +li¡’” +; + +42  + #Mªage_G‘_Focus +() \ + +43 Ð +focus + ) + + ) + +45  + #Mªage_G‘_Subli¡’” +() \ + +46 Ð +subli¡’” + ) + + ) + +48  + #Mªage_G‘_Li¡’” +() \ + +49 Ð +li¡’” + ) + + ) + +51  +Mªage_In™ +(); + +52  +Mªage_In™_RŽ +(); + +54  +Mªage_S¹ +(); + +56  +Mªage_Fšish +(); + +59  +Mªage_Layout +(); + +61  +Mªage_Fšish_Layout +(); + +63  +Mªage_NÙe_Ouut +(); + +64  +Mªage_NÙe_IÅut +(); + +66  +Mªage_Red¿w +(); + +69  +Mªage_Red¿w_AÎ +(); + +71  +Mªage_S¹_R•ašt +(); + +73  +Mªage_R•ašt_Reù +(); + +76  +Mªage_Fšish_R•ašt +(); + +78  +Mªage_S‘_DesktÝ_Size +(); + +81  +Mªage_Resize_DesktÝ +(); + +84  +Mªage_Resize_R•ašt +(); + +86 +U£rwš + * +Mªage_C»©e_Wšdow +(); + +88  +Mªage_Elimš©e_Wšdow +(); + +90 +U£rwš + * +Mªage_Loÿ‹ +(); + +93  +Mªage_Zoom +(); + +96  +Mªage_Unzoom +(); + +99  +Mªage_ToggË_Zoom +(); + +102  +Mªage_ToggË_Zoom_Lock +(); + +105  +Mªage_S‘_Focus +(); + +107  +Mªage_Un£t_Focus +(); + +108  +Mªage_Sw™ch_Focus +(); + +111  +Mªage_Sw™ch_Li¡’” +(); + +114  +Mªage_S‘_Subli¡’” +(); + +115  +Mªage_Sw™ch_Subli¡’” +(); + +118  +Mªage_Un£t_Subli¡’” +(); + +120  +Mªage_Clo£ +(); + +123  +Mªage_Undo +(); + +125  +Mªage_R•ÝuÏ‹_La¡ +(); + +127  +Mªage_R•ÝuÏ‹_AÎ +(); + +129 +boÞ + +Mªage_Move +(); + +132 +boÞ + +Mªage_IcÚ_Move +(); + +135 +boÞ + +Mªage_Exchªge +(); + +138 +boÞ + +Mªage_C’‹r_O³n +(); + +141 +boÞ + +Mªage_CÜÃr_O³n +(); + +144 +boÞ + +Mªage_U£r_O³n_Autom©iÿÎy +(); + +147 +boÞ + +Mªage_Cl›Á_O³n_Autom©iÿÎy +(); + +150 +boÞ + +Mªage_Auto_O³n_Autom©iÿÎy +(); + +153  +Mªage_S¹up_O³n +(); + +154  +Mªage_S¹up_Fšish +(); + +156  +Mªage_D‘”mše_S¹up_S‹ +(); + +158  +Mªage_Cl›Á_O³n +(); + +160  +Mªage_In™Ÿl_Geom‘ry +(); + +161  +Mªage_Cl›Á_CÚfigu» +(); + +164  +Mªage_Cl›Á_S‘_NÜm®_Hšts +(); + +165  +Mªage_Cl›Á_S‘_Geom‘ry_Hšts +(); + +167  +Mªage_Cl›Á_Re£t_Mš_Max +(); + +170  +Mªage_Cl›Á_Clo£ +(); + +173  +Mªage_De¡roy +(); + +175  +Mªage_Cl›Á_De¡roy +(); + +178 +boÞ + +Mªage_S‘_ReguÏr_Mš_Size +(); + +181 +boÞ + +Mªage_S‘_ReguÏr_Desœed_Size +(); + +184 +boÞ + +Mªage_S‘_Zoom_Mš_Size +(); + +187 +boÞ + +Mªage_S‘_Zoom_Desœed_Size +(); + +190 +boÞ + +Mªage_S‘_Max_Size +(); + +193 +boÞ + +Mªage_Resize +(); + +196  +Mªage_S‘_CÏss +(); + +199  +Mªage_S‘_Name +(); + +202  +Mªage_S‘_IcÚ_Name +(); + +205  +Mªage_S‘_Ho¡Çme +(); + +208  +Mªage_S‘_Commªd +(); + +211  +Mªage_NÙify +(); + +214  +Mªage_D–‘e_Wšdow +(); + +217  +Mªage_Soá_Kžl +(); + +220  +Mªage_H¬d_Kžl +(); + +223  +Mªage_NÙify_AÎ +(); + +225  +Mªage_Soá_Kžl_AÎ +(); + +227  +Mªage_Ex™ +(); + +229  +Mªage_CÚŒaù +(); + +232  +Mªage_Ex·nd +(); + +235  +Mªage_Desœe +(); + +238  +Mªage_Shršk +(); + +241  +Mªage_EƬge +(); + +244  +Mªage_Profže +(); + +247  +Mªage_PrÜ©e +(); + +249  +Mªage_Fžl +(); + +251  +Mªage_Desœe +(); + +254  +Mªage_P»·»_O³n +(); + +256  +Mªage_Cl›Á_O³n_IcÚ +(); + +257  +Mªage_Cl›Á_Clo£_IcÚ +(); + +259  +Mªage_Cl›Á_S‘_S‹ +(); + +261  +Mªage_Cl›Á_Chªge_S‹ +(); + +263  +Mªage_Group_O³n +(); + +264  +Mªage_Group_Clo£ +(); + +265  +Mªage_Wªt_S‹ +(); + +266  +Mªage_Cl›Á_S‘_Group +(); + +267  +Mªage_Cl›Á_S‘_Mes§ges +(); + +269  +Mªage_Cl›Á_S‘_IcÚ_Pos™iÚ +(); + +270  +Mªage_Cl›Á_S‘_IcÚ_Size +(); + + @manage_op.c + +23  + ~"cÝyright.h +" + +25  + ~"ba£ty³.h +" + +27  + ~"u£rglobD.h +" + +28  + ~"twš.h +" + +30 #iâdeà +USERWIN_DEFINE + + +31  + ~"uwšD.h +" + +34 #iâdeà +TILWIN_DEFINE + + +35  + ~"twšD.h +" + +38  + ~"þ›Á.h +" + +39  + ~"þo£d.h +" + +40  + ~"d¿w.h +" + +41  + ~"d¿wicÚ.h +" + +42  + ~"d¿wwš.h +" + +43  + ~"Ïyout.h +" + +44  + ~"´ofže.h +" + +45  + ~"»giÚ.h +" + +46  + ~"toÞ.h +" + +50  + #COMPUTE_DISTANCE +( +±1 +, +±2 +) \ + +51 ((( + `G‘_PtX +( +±1 +è- G‘_PtX( +±2 +)) * (Get_PtX(pt1) - Get_PtX(pt2))) + \ + +52 (( + `G‘_PtY +( +±1 +è- G‘_PtY( +±2 +)è* (G‘_PtYÕt1è- G‘_PtYÕt2)))) + + ) + +55  + #wšdow_excursiÚ +( +wš +, +Ýt +, +v® +, +code +) \ + +57 +boÞ + +‹mp_v® +; \ + +58 +‹mp_v® + = + `Tžwš_G‘_Wšdow_O±iÚ +( +wš +, +Ýt +); \ + +59 + `Tžwš_S‘_Wšdow_O±iÚ +( +wš +, +Ýt +, +v® +); \ + +60 +code +; \ + +61 + `Tžwš_S‘_Wšdow_O±iÚ +( +wš +, +Ýt +, +‹mp_v® +); \ + +62 } + + ) + +64  + #wšdow_»¡riù_excursiÚ +( +wš +, +Ýt +, +v® +, +code +) \ + +66 +boÞ + +‹mp_v® +; \ + +67 +‹mp_v® + = + `Tžwš_G‘_Wšdow_O±iÚ +( +wš +, +Ýt +); \ + +68 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +wš +, +Ýt +, ( +‹mp_v® + && +v® +) ); \ + +69 +code +; \ + +70 + `Tžwš_S‘_Wšdow_O±iÚ +( +wš +, +Ýt +, +‹mp_v® +); \ + +71 } + + ) + +73  + #wšdow_još_excursiÚ +( +wš +, +Ýt +, +v® +, +code +) \ + +75 +boÞ + +‹mp_v® +; \ + +76 +‹mp_v® + = + `Tžwš_G‘_Wšdow_O±iÚ +( +wš +, +Ýt +); \ + +77 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +wš +, +Ýt +, ( +‹mp_v® + || +v® +) ); \ + +78 +code +; \ + +79 + `Tžwš_S‘_Wšdow_O±iÚ +( +wš +, +Ýt +, +‹mp_v® +); \ + +80 } + + ) + +82  + #glob®_excursiÚ +( +Ýt +, +v® +, +code +) \ + +84 +boÞ + +‹mp_v® +; \ + +85 +‹mp_v® + = + `Tžwš_G‘_Glob®_O±iÚ +( +Ýt +); \ + +86 + `Tžwš_S‘_Glob®_O±iÚ +( +Ýt +, +v® +); \ + +87 +code +; \ + +88 + `Tžwš_S‘_Glob®_O±iÚ +( +Ýt +, +‹mp_v® +); \ + +89 } + + ) + +91  + #glob®_»¡riù_excursiÚ +( +Ýt +, +v® +, +code +) \ + +93 +boÞ + +‹mp_v® +; \ + +94 +‹mp_v® + = + `Tžwš_G‘_Glob®_O±iÚ +( +Ýt +); \ + +95 + `Tžwš_S‘_Glob®_O±iÚ +Ð +Ýt +, ( +‹mp_v® + && +v® +) ); \ + +96 +code +; \ + +97 + `Tžwš_S‘_Glob®_O±iÚ +( +Ýt +, +‹mp_v® +); \ + +98 } + + ) + +100  + #u£r_wšdow_excursiÚ +( +uwš +, +Ýt +, +v® +, +code +) \ + +102 +boÞ + +‹mp_v® +; \ + +103 +‹mp_v® + = + `U£rwš_G‘_Wšdow_O±iÚ +( +uwš +, +Ýt +); \ + +104 + `U£rwš_S‘_Wšdow_O±iÚ +Ð +uwš +, +Ýt +, +v® + ); \ + +105 +code +; \ + +106 + `U£rwš_S‘_Wšdow_O±iÚ +( +uwš +, +Ýt +, +‹mp_v® +); \ + +107 } + + ) + +109  + #u£r_wšdow_još_excursiÚ +( +uwš +, +Ýt +, +v® +, +code +) \ + +111 +boÞ + +‹mp_v® +; \ + +112 +‹mp_v® + = + `U£rwš_G‘_Wšdow_O±iÚ +( +uwš +, +Ýt +); \ + +113 + `U£rwš_S‘_Wšdow_O±iÚ +Ð +uwš +, +Ýt +, ( +‹mp_v® + || +v® +) ); \ + +114 +code +; \ + +115 + `U£rwš_S‘_Wšdow_O±iÚ +( +uwš +, +Ýt +, +‹mp_v® +); \ + +116 } + + ) + +118  + #u£r_glob®_excursiÚ +( +Ýt +, +v® +, +code +) \ + +120 +boÞ + +‹mp_v® +; \ + +121 +‹mp_v® + = + `U£rGlob®s_G‘_O±iÚ +( +Ýt +); \ + +122 + `U£rGlob®s_S‘_O±iÚ +Ð +Ýt +, +v® + ); \ + +123 +code +; \ + +124 + `U£rGlob®s_S‘_O±iÚ +( +Ýt +, +‹mp_v® +); \ + +125 } + + ) + +127  + #u£r_glob®_»¡riù_excursiÚ +( +Ýt +, +v® +, +code +) \ + +129 +boÞ + +‹mp_v® +; \ + +130 +‹mp_v® + = + `U£rGlob®s_G‘_O±iÚ +( +Ýt +); \ + +131 + `U£rGlob®s_S‘_O±iÚ +Ð +Ýt +, ( +‹mp_v® + && +v® +) ); \ + +132 +code +; \ + +133 + `U£rGlob®s_S‘_O±iÚ +( +Ýt +, +‹mp_v® +); \ + +134 } + + ) + +136  + #u£r_glob®_još_excursiÚ +( +Ýt +, +v® +, +code +) \ + +138 +boÞ + +‹mp_v® +; \ + +139 +‹mp_v® + = + `U£rGlob®s_G‘_O±iÚ +( +Ýt +); \ + +140 + `U£rGlob®s_S‘_O±iÚ +Ð +Ýt +, ( +‹mp_v® + || +v® +) ); \ + +141 +code +; \ + +142 + `U£rGlob®s_S‘_O±iÚ +( +Ýt +, +‹mp_v® +); \ + +143 } + + ) + +145  + #mš_excursiÚ +( +wš +, +code +) \ + +147 +Size + +‹mp_mš +; \ + +148 +‹mp_mš + = + `Tžwš_G‘_Mš +( +wš +); \ + +149 + `Tžwš_S‘_Mš +Ð +wš +, + `Tžwš_G‘_Size +(win) ); \ + +150 +code +; \ + +151 + `Tžwš_S‘_Mš +Ð +wš +, +‹mp_mš + ); \ + +152 } + + ) + +156  + #height_excursiÚ +( +wšp +, +code +) \ + +158 iàÐ + `Tžwš_G‘_Size +( +wšp +). +height + < \ + +159 + `Tžwš_G‘_P»vious_Size +( +wšp +). +height + ) \ + +160 + `wšdow_excursiÚ +Ð +wšp +, +FIXED_HEIGHT +, +TRUE +, +code + ) \ + +163 +Size + +‹mp_mš +, +‹mp_siz +; \ + +164 +‹mp_siz + = +‹mp_mš + = + `Tžwš_G‘_Mš +( +wšp +); \ + +165 +‹mp_siz +. +height + = + `Tžwš_G‘_Size +( +wšp +).height; \ + +166 + `Tžwš_S‘_Mš +Ð +wšp +, +‹mp_siz + ); \ + +167 +code +; \ + +168 + `Tžwš_S‘_Mš +Ð +wšp +, +‹mp_mš + ); \ + +170 } + + ) + +174  + #width_excursiÚ +( +wšp +, +code +) \ + +176 iàÐ + `Tžwš_G‘_Size +( +wšp +). +width + < \ + +177 + `Tžwš_G‘_P»vious_Size +( +wšp +). +width + ) \ + +178 + `wšdow_excursiÚ +Ð +wšp +, +FIXED_WIDTH +, +TRUE +, +code + ) \ + +181 +Size + +‹mp_mš +, +‹mp_siz +; \ + +182 +‹mp_siz + = +‹mp_mš + = + `Tžwš_G‘_Mš +( +wšp +); \ + +183 +‹mp_siz +. +width + = + `Tžwš_G‘_Size +( +wšp +).width; \ + +184 + `Tžwš_S‘_Mš +Ð +wšp +, +‹mp_siz + ); \ + +185 +code +; \ + +186 + `Tžwš_S‘_Mš +Ð +wšp +, +‹mp_mš + ); \ + +188 } + + ) + +192 +TimeSmp + +Ï¡_¡amp +; + +193 +U£rwš + * +li¡’” +; + +197 +TWReùªgË + +Mªage_NeighbÜhood_ReùªgË +(); + +198  +Mªage_S¹_O³n +(); + +199 +boÞ + +Mªage_Fšish_Sized_O³n +(); + +200 +boÞ + +Mªage_Fšish_Unsized_O³n +(); + +201 +boÞ + +Mªage_Cª_Try_Li¡’”_Unzoom +(); + +202 +boÞ + +Mªage_Cª_Try_S–f_Unzoom +(); + +203  +Mªage_Mš_Max_Resizšg +(); + +204  +Mªage_Fšish_Resizšg +(); + +205  +Mªage_Cªûl_Resizšg +(); + +206  +Mªage_Sw™ch_Li¡’” +(); + +207 +boÞ + +Mªage_Unzoom_O³n +(); + +212  +boÞ + + $Mªage_Basic_O³n +Ð +uwšp +, +ûÁ” +, +siz + ) + +213 +U£rwš + * +uwšp +; + +214 +TWPošt + +ûÁ” +; + +215 +Size + +siz +; + +217 iàÐ + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_SIZE + ) || + +218 Ð + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_WIDTH + ) && + +219 + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_HEIGHT + ) ) ) + +220  + `Tžwš_O³n +Ð +uwšp +-> +wšp +, +ûÁ” +, +siz + ); + +223 +TWReùªgË + +»ù +; + +224 + `MAKE_RECTANGLE +Ð +ûÁ” +, +siz +, +»ù + ); + +225  + `Tžwš_O³n_N—»¡_In_A»a +Ð +uwšp +-> +wšp +, +»ù +, +ûÁ” +, +siz + ); + +227 + } +} + +231 +boÞ + + $Mªage_C’‹r_NeighbÜhood_O³n +Ð +uwšp +, +ûÁ” +, +siz + ) + +232 +U£rwš + * +uwšp +; + +233 +TWPošt + +ûÁ” +; + +234 +Size + +siz +; + +236 +TWReùªgË + +»ù +; + +237 +boÞ + +»suÉ +; + +239 ià(! + `U£rGlob®s_G‘_O±iÚ +( +TRY_CTR_NBRHD_ON_OPEN +)) + +240  + `Mªage_Basic_O³n +Ð +uwšp +, +ûÁ” +, +siz + ); + +242 + `glob®_»¡riù_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, + +243 (! + `U£rGlob®s_G‘_O±iÚ +( + +244 +PF_CTR_NBR_2_AUTO_CL_ON_OPEN +)), + +245 { + `glob®_»¡riù_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, + +246 (! + `U£rGlob®s_G‘_O±iÚ +( + +247 +PF_CTR_NBR_2_AUTO_SHR_ON_OPEN +)), + +248 { + `wšdow_još_excursiÚ +Ð +uwšp +-> +wšp +, +FIXED_SIZE +, + +249 + `U£rGlob®s_G‘_O±iÚ +( +PF_CTR_NBR_2_SHRINK_ON_OPEN +), + +251 +»suÉ + = + `Mªage_Basic_O³n +Ð +uwšp +, +ûÁ” +, +siz + ); + +254 ià(! +»suÉ + ) + +256 +»ù + = + `Mªage_NeighbÜhood_ReùªgË +Ð0.5, +ûÁ” +, +siz + ); + +257 +»suÉ + = + `Tžwš_O³n_N—»¡_In_A»a +Ð +uwšp +-> +wšp +, + +258 +»ù +, +ûÁ” +, +siz + ); + +261  +»suÉ +; + +262 + } +} + +266  +boÞ + + $Mªage_Edge_NeighbÜhood_O³n +Ð +uwšp +, +ûÁ” +, +siz + ) + +267 +U£rwš + * +uwšp +; + +268 +TWPošt + +ûÁ” +; + +269 +Size + +siz +; + +271 +TWReùªgË + +»ù +; + +272 +boÞ + +»suÉ +; + +274 ià(! + `U£rGlob®s_G‘_O±iÚ +( +TRY_EDGE_NEIGHBORHOOD_ON_OPEN +)) + +275  + `Mªage_C’‹r_NeighbÜhood_O³n +Ð +uwšp +, +ûÁ” +, +siz + ); + +277 + `glob®_»¡riù_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, + +278 (! + `U£rGlob®s_G‘_O±iÚ +( + +279 +PF_EDGE_NBR_2_AUTO_CL_ON_OPEN +) ), + +280 { + `glob®_»¡riù_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, + +281 (! + `U£rGlob®s_G‘_O±iÚ +( + +282 +PF_EDGE_NBR_2_AUTO_SHR_ON_OPEN +) ), + +283 { + `wšdow_još_excursiÚ +Ð +uwšp +-> +wšp +, +FIXED_SIZE +, + +284 + `U£rGlob®s_G‘_O±iÚ +( +PF_EDGE_NBR_2_SHRINK_ON_OPEN +), + +286 +»suÉ + = + `Mªage_C’‹r_NeighbÜhood_O³n +Ð +uwšp +, +ûÁ” +, +siz + ); + +289 iàÐ +»suÉ + )  +TRUE +; + +291 +»ù + = + `Mªage_NeighbÜhood_ReùªgË +Ð1.0, +ûÁ” +, +siz + ); + +293  + `Tžwš_O³n_N—»¡_In_A»a +Ð +uwšp +-> +wšp +, +»ù +, +ûÁ” +, +siz + ); + +294 + } +} + +298 +boÞ + + $Mªage_C’‹r_O³n +Ð +uwšp +, +pos + ) + +299 +U£rwš + * +uwšp +; + +300 +TWPošt + +pos +; + +302 +boÞ + +»suÉ +; + +303 +Size + +siz +; + +305 + `Mªage_S¹_O³n +Ð +uwšp +, +FALSE + ); + +307 + `Tžwš_S‘_Pos™iÚ +Ð +uwšp +-> +wšp +, +pos + ); + +308 +uwšp +-> +pos™iÚed + = +TRUE +; + +310 +siz + = + `Tžwš_G‘_Size +Ð +uwšp +-> +wšp + ); + +312 + `glob®_excursiÚ +Ð +PREFER_CLOSE_TO_SHRINK +, + +313 + `U£rGlob®s_G‘_O±iÚ +( +PREFER_CL_TO_SHR_ON_CENTER_OPEN +), + +314 { + `wšdow_još_excursiÚ +Ð +uwšp +-> +wšp +, +FIXED_SIZE +, + +315 ! + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_SHRINK_ON_CENTER_OPEN +), + +317 +»suÉ + = + `Mªage_Edge_NeighbÜhood_O³n +Ð +uwšp +, +pos +, +siz + ); + +318 iàÐ(! +»suÉ +è&& ( +li¡’” + !ð +uwšp + ) + +319 && + `Mªage_Cª_Try_Li¡’”_Unzoom +() ) + +320 +»suÉ + = + `Mªage_Edge_NeighbÜhood_O³n +Ð +uwšp +, +pos +, +siz + ); + +321 iàÐ(! +»suÉ +è&& + `Mªage_Cª_Try_S–f_Unzoom +( +uwšp +) ) + +322 +»suÉ + = + `Mªage_Edge_NeighbÜhood_O³n +( + +323 +uwšp +, +pos +, + `Tžwš_G‘_Size +Ðuwšp-> +wšp + ) ); + +326  + `Mªage_Fšish_Unsized_O³n +Ð +uwšp +, +»suÉ + ); + +327 + } +} + +331 +boÞ + + $Mªage_CÜÃr_O³n +Ð +uwšp +, +¡¬t_pos +, +pos +, +fÜû +, +undesœe + ) + +332 +U£rwš + * +uwšp +; + +333 +TWPošt + +¡¬t_pos +; + +334 +TWPošt + +pos +; + +335 +boÞ + +fÜû +, +undesœe +; + +337 +TWPošt + +ûÁ” +; + +338 +Size + +siz +; + +339 +boÞ + +»suÉ +; + +340 +TWReùªgË + +»ù +; + +342 + `Mªage_S¹_O³n +Ð +uwšp +, +FALSE + ); + +344 +»ù +. +Ëá_x + = +¡¬t_pos +. +x +; + +345 +»ù +. +tÝ_y + = +¡¬t_pos +. +y +; + +346 +»ù +. +right_x + = +pos +. +x +; + +347 +»ù +. +bÙtom_y + = +pos +. +y +; + +348 + `COMPUTE_SIZE +Ð +»ù +, +siz + ); + +349 + `COMPUTE_CENTER +Ð +»ù +, +ûÁ” + ); + +351 ià(! ( + `U£rGlob®s_G‘_O±iÚ +( +RESET_MIN_ON_DECREASE +è|| +fÜû + )) + +352 + `S‘_Max_Size +Ð +siz +, siz, +uwšp +-> +´ev_mš + ) + +353 ifÐ! ( + `U£rGlob®s_G‘_O±iÚ +( +RESET_MAX_ON_INCREASE +è|| +fÜû + )) + +354 + `S‘_Mš_Size +Ð +siz +, siz, +uwšp +-> +´ev_max + ) + +356 ià(! +undesœe + ) + +358 + `Tžwš_S‘_Pos™iÚ +Ð +uwšp +-> +wšp +, +ûÁ” + ); + +359 +uwšp +-> +pos™iÚed + = +TRUE +; + +360 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, +siz + ); + +361 + `Tžwš_NÙe_Desœed_Height +Ð +uwšp +-> +wšp + ); + +362 + `Tžwš_NÙe_Desœed_Width +Ð +uwšp +-> +wšp + ); + +365 + `Mªage_Mš_Max_Resizšg +Ð +uwšp +, +siz +, + `Tžwš_G‘_Mš +Ðuwšp-> +wšp + ) ); + +367 + `glob®_excursiÚ +Ð +PREFER_CLOSE_TO_SHRINK +, + +368 + `U£rGlob®s_G‘_O±iÚ +( +PREFER_CL_TO_SHR_ON_CORNER_OPEN +), + +369 { + `wšdow_još_excursiÚ +Ð +uwšp +-> +wšp +, +FIXED_SIZE +, + +370 ! + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_SHRINK_ON_CORNER_OPEN +), + +372 +»suÉ + = + `Mªage_Edge_NeighbÜhood_O³n +Ð +uwšp +, +ûÁ” +, +siz + ); + +373 iàÐ(! +»suÉ +è&& ( +li¡’” + !ð +uwšp + ) + +374 && + `Mªage_Cª_Try_Li¡’”_Unzoom +() ) + +375 +»suÉ + = + `Mªage_Edge_NeighbÜhood_O³n +Ð +uwšp +, +ûÁ” +, +siz + ); + +376 iàÐ(! +»suÉ +è&& + `Mªage_Cª_Try_S–f_Unzoom +( +uwšp +) ) + +377 +»suÉ + = + `Mªage_Edge_NeighbÜhood_O³n +( + +378 +uwšp +, +pos +, + `Tžwš_G‘_Size +Ðuwšp-> +wšp + ) ); + +381 iàÐ +»suÉ + ) + +382 + `Mªage_Fšish_Resizšg +Ð +uwšp +, +NoSide +, +fÜû +, +undesœe + ); + +384 + `Mªage_Cªûl_Resizšg +Ð +uwšp + ); + +385  + `Mªage_Fšish_Sized_O³n +Ð +uwšp +, +»suÉ + ); + +386 + } +} + +390 +boÞ + + $Mªage_DesktÝ_O³n +Ð +uwšp +, +siz + ) + +391 +U£rwš + * +uwšp +; + +392 +Size + +siz +; + +394 +TWPošt + +ûÁ” +; + +395 +boÞ + +»suÉ +; + +397 +ûÁ” + = + `Tžwš_G‘_C’‹r +Ð +uwšp +-> +wšp + ); + +399 iàÐ + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_COMPLETELY + ) ) + +400 +»suÉ + = + `Tžwš_O³n +Ð +uwšp +-> +wšp +, +ûÁ” +, +siz + ); + +402 ià(! +uwšp +-> +pos™iÚed + ) + +404 +»suÉ + = + `Tžwš_O³n_Be¡_In_A»a +Ð +uwšp +-> +wšp +, + +405 + `Tžwš_G‘_DesktÝ_ReùªgË +(), +siz + ); + +408 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, + +409 +REQUIRE_PREV_POS + ) ) + +410  + `Mªage_Basic_O³n +Ð +uwšp +, +ûÁ” +, +siz + ); + +412 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, + +413 +PREFER_PREV_POS + ) ) + +415 +ûÁ” + = + `Tžwš_G‘_Pos™iÚ +Ð +uwšp +-> +wšp + ); + +416 + `glob®_»¡riù_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, + +417 (! + `U£rGlob®s_G‘_O±iÚ +( + +418 +PF_DTOP_2_AUTO_CL_ON_AUTO_OPEN +)), + +419 { + `glob®_»¡riù_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, + +420 (! + `U£rGlob®s_G‘_O±iÚ +( + +421 +PF_DTOP_2_AUTO_SHR_ON_AUTO_OPEN +)), + +422 { + `wšdow_još_excursiÚ +Ð +uwšp +-> +wšp +, +FIXED_SIZE +, + +423 + `U£rGlob®s_G‘_O±iÚ +( +PF_DTOP_2_SHRINK_ON_AUTO_OPEN +), + +425 +»suÉ + = + `Mªage_Edge_NeighbÜhood_O³n +Ð +uwšp +, +ûÁ” +, +siz + ); + +428 ià(! +»suÉ + ) + +429 +»suÉ + = + `Tžwš_O³n_N—»¡_In_A»a +Ð +uwšp +-> +wšp +, + +430 + `Tžwš_G‘_DesktÝ_ReùªgË +(), +ûÁ” +, +siz + ); + +434 +»suÉ + = + `Tžwš_O³n_Be¡_In_A»a +Ð +uwšp +-> +wšp +, + +435 + `Tžwš_G‘_DesktÝ_ReùªgË +(), +siz + ); + +437  +»suÉ +; + +439 + } +} + +443  +boÞ + + $Mªage_O³n_Autom©iÿÎy +Ð +uwšp + ) + +444 +U£rwš + * +uwšp +; + +446 +boÞ + +»suÉ +; + +448 + `glob®_excursiÚ +Ð +PREFER_CLOSE_TO_SHRINK +, + +449 + `U£rGlob®s_G‘_O±iÚ +( +PREFER_CL_TO_SHR_ON_AUTO_OPEN +), + +450 { + `wšdow_još_excursiÚ +Ð +uwšp +-> +wšp +, +FIXED_SIZE +, + +451 ! + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_SHRINK_ON_AUTO_OPEN +), + +452 +»suÉ + = + `Mªage_DesktÝ_O³n +Ð +uwšp +, + +453 + `Tžwš_Checked_Desœed_Size +Ð +uwšp +-> +wšp + ) ); + +456  +»suÉ +; + +457 + } +} + +461 +boÞ + + $Mªage_Auto_O³n_Autom©iÿÎy +Ð +uwšp + ) + +462 +U£rwš + * +uwšp +; + +464 +boÞ + +icÚized +; + +465 +boÞ + +»suÉ +; + +466 +Size + +siz +; + +468 +icÚized + = + `Tžwš_Is_O³n +Ð +uwšp +-> +icÚp + ); + +469 iàÐ +icÚized + ) + +470 + `Tžwš_Clo£ +Ð +uwšp +-> +icÚp + ); + +472 + `S‘_Mš_Size +Ð +siz +, + `Tžwš_G‘_Size +Ð +uwšp +-> +wšp + ), + +473 + `Tžwš_G‘_Desœed +Ð +uwšp +-> +wšp + ) ) + +475 + `wšdow_još_excursiÚ +Ð +uwšp +-> +wšp +, +FIXED_SIZE +, + +476 (! + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_SHRINK_ON_AUTO_OPEN +)), + +478 +»suÉ + = + `Mªage_DesktÝ_O³n +Ð +uwšp +, +siz + ); + +481 iàÐ(! +»suÉ +è&& +icÚized + ) + +482 + `Tžwš_O³n +Ð +uwšp +-> +icÚp +, + +483 + `Tžwš_G‘_C’‹r +Ð +uwšp +-> +icÚp + ), + +484 + `Tžwš_G‘_Size +Ð +uwšp +-> +icÚp + ) ); + +486  +»suÉ +; + +487 + } +} + +491 +boÞ + + $Mªage_U£r_O³n_Autom©iÿÎy +Ð +uwšp +, +fÜû_li¡’” +, +fÜû_zoom + ) + +492 +U£rwš + * +uwšp +; + +493 +boÞ + +fÜû_li¡’” +; + +494 +boÞ + +fÜû_zoom +; + +496 +boÞ + +»suÉ +; + +498 iàÐ +fÜû_li¡’” + && + `U£rwš_G‘_Wšdow_O±iÚ +( +uwšp +, +LISTENER_TIED_TO_ZOOM +) ) + +499 +fÜû_zoom + = +TRUE +; + +500 + `Mªage_S¹_O³n +Ð +uwšp +, +fÜû_zoom + ); + +502 +»suÉ + = + `Mªage_O³n_Autom©iÿÎy +Ð +uwšp + ); + +503 ià(! +»suÉ +) + +504 + `u£r_glob®_još_excursiÚ +Ð +UNZOOM_TIED_LSNR_IF_NECESSARY +, +fÜû_li¡’” +, + +506 iàÐ + `Mªage_Cª_Try_Li¡’”_Unzoom +() ) + +507 +»suÉ + = + `Mªage_O³n_Autom©iÿÎy +Ð +uwšp + ); + +509 iàÐ(! +»suÉ +è&& + `Mªage_Cª_Try_S–f_Unzoom +( +uwšp +) ) + +510 +»suÉ + = + `Mªage_O³n_Autom©iÿÎy +Ð +uwšp + ); + +512 ià(! +»suÉ +) + +513 + `Tžwš_Auto_Clo£ +Ð +uwšp +-> +wšp + ); + +514 iàÐ +fÜû_li¡’” + ) + +515 + `Mªage_Sw™ch_Li¡’” +Ð +uwšp + ); + +517  + `Mªage_Fšish_Unsized_O³n +Ð +uwšp +, +»suÉ + ); + +518 + } +} + +522 +boÞ + + $Mªage_Fixed_O³n +Ð +uwšp + ) + +523 +U£rwš + * +uwšp +; + +525 +boÞ + +»suÉ +; + +527 + `Mªage_S¹_O³n +Ð +uwšp +, +FALSE + ); + +529 +»suÉ + = + `Tžwš_O³n +Ð +uwšp +-> +wšp +, + +530 + `Tžwš_G‘_C’‹r +Ð +uwšp +-> +wšp + ), + +531 + `Tžwš_G‘_Size +Ð +uwšp +-> +wšp + ) ); + +533 iàÐ(! +»suÉ +è&& + `Mªage_Cª_Try_Li¡’”_Unzoom +() ) + +535 +»suÉ + = + `Tžwš_O³n +Ð +uwšp +-> +wšp +, + +536 + `Tžwš_G‘_C’‹r +Ð +uwšp +-> +wšp + ), + +537 + `Tžwš_G‘_Size +Ð +uwšp +-> +wšp + ) ); + +540  + `Mªage_Fšish_Sized_O³n +Ð +uwšp +, +»suÉ + ); + +541 + } +} + +547 +boÞ + + $Mªage_R•ÝuÏ‹_Sšû +Ð +¡amp +, +ex¶ic™ +, +¡riù +, +Úly_auto_þo£ + ) + +548 +TimeSmp + +¡amp +; + +549 +boÞ + +ex¶ic™ +; + +550 +boÞ + +¡riù +; + +551 +boÞ + +Úly_auto_þo£ +; + +553 +Tžwšp + +wšp +; + +554 +U£rwš + * +uwšp +; + +555 +boÞ + +´ev_´eãr +, +´ev_»quœe +, +®low_shršk +; + +556 +TimeSmp + +cur_¡amp +; + +557 +boÞ + +»suÉ +; + +559 +¡riù + = strict || + +560 + `U£rGlob®s_G‘_O±iÚ +Ð +REPOPULATE_STRICTLY + ); + +562 +»suÉ + = +FALSE +; + +564 iàÐ +ex¶ic™ + ) + +566 +´ev_´eãr + = + `U£rGlob®s_G‘_O±iÚ +( + +567 +PREFER_PREV_POS_ON_EXPL_REPOP +); + +568 +´ev_»quœe + = + `U£rGlob®s_G‘_O±iÚ +( + +569 +REQUIRE_PREV_POS_ON_EXPL_REPOP +); + +570 +®low_shršk + = + `U£rGlob®s_G‘_O±iÚ +( + +571 +ALLOW_AUTO_SHRINK_ON_EXPL_REPOP +); + +575 +´ev_´eãr + = + `U£rGlob®s_G‘_O±iÚ +( + +576 +PREFER_PREV_POS_ON_AUTO_REPOP +); + +577 +´ev_»quœe + = + `U£rGlob®s_G‘_O±iÚ +( + +578 +REQUIRE_PREV_POS_ON_AUTO_REPOP +); + +579 +®low_shršk + = + `U£rGlob®s_G‘_O±iÚ +( + +580 +ALLOW_AUTO_SHRINK_ON_AUTO_REPOP +); + +583 + `Tžwš_G’_Clo£d_Wšdows +(); + +584  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +586 +cur_¡amp + = + `Tžwš_G‘_Wšdow_Time¡amp +( +wšp +); + +587 iàÐ +cur_¡amp + < +¡amp + ) ; + +588 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +589 iàÐÐ +uwšp +-> +wšp + == winp ) + +590 && + `U£rwš_G‘_Wšdow_O±iÚ +( +uwšp +, +CONSIDER_FOR_REPOPULATION +) + +591 && ( +uwšp +-> +ev”_Ý’ed + ) + +592 && ( (! +Úly_auto_þo£ +) || + +593 + `Tžwš_Was_Autom©iÿÎy_Clo£d +( +wšp +) ) ) + +595 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +596 { + `glob®_»¡riù_excursiÚ +( + +597 +ALLOW_SHRINK_ON_AUTO_OPEN +, + +598 + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_AUTOMATIC_SHRINK +) + +599 || +ex¶ic™ +, + +600 { + `glob®_»¡riù_excursiÚ +( + +601 +ALLOW_AUTOMATIC_SHRINK +, +®low_shršk +, + +602 { + `u£r_wšdow_još_excursiÚ +Ð +uwšp +, + +603 +PREFER_PREV_POS +, +´ev_´eãr +, + +604 { + `u£r_wšdow_još_excursiÚ +Ð +uwšp +, + +605 +REQUIRE_PREV_POS +, +´ev_»quœe +, + +607 iàÐ + `Mªage_Auto_O³n_Autom©iÿÎy +Ð +uwšp + ) ) + +608 +»suÉ + = +TRUE +; + +609 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +PREFER_UNZOOM_TO_CLOSE +) && + +610 ( +uwšp +-> +zoomed +) && + +611 + `Mªage_Unzoom_O³n +Ð +uwšp + ) ) + +612 +»suÉ + = +TRUE +; + +613 iàÐ +¡riù + ) + +614 +¡amp + = +cur_¡amp +; + +619  +»suÉ +; + +620 + } +} + +624 +boÞ + + $Mªage_Agg»ssive_R•ÝuÏtiÚ +() + +626 +Tžwšp + +wšp +; + +627 +U£rwš + * +uwšp +; + +628 +boÞ + +´ev_´eãr +, +´ev_»quœe +, +®low_shršk +; + +629 +boÞ + +»suÉ +; + +631 +»suÉ + = +FALSE +; + +633 +´ev_´eãr + = + `U£rGlob®s_G‘_O±iÚ +( + +634 +PREFER_PREV_POS_ON_AUTO_REPOP +); + +635 +´ev_»quœe + = + `U£rGlob®s_G‘_O±iÚ +( + +636 +REQUIRE_PREV_POS_ON_AUTO_REPOP +); + +637 +®low_shršk + = + `U£rGlob®s_G‘_O±iÚ +( + +638 +ALLOW_AUTO_SHRINK_ON_AUTO_REPOP +); + +640 + `Tžwš_G’_Clo£d_Wšdows +(); + +641  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +643 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +644 iàÐÐ +uwšp +-> +wšp + == winp ) + +645 && + `U£rwš_G‘_Wšdow_O±iÚ +( +uwšp +, +CONSIDER_FOR_REPOPULATION +) + +646 && + `U£rwš_G‘_Wšdow_O±iÚ +( +uwšp +, +AGGRESSIVELY_REPOPULATE +) + +647 && + `Tžwš_Was_Autom©iÿÎy_Clo£d +( +wšp +) + +648 && +uwšp +-> +ev”_Ý’ed + ) + +650 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +651 { + `glob®_»¡riù_excursiÚ +( + +652 +ALLOW_SHRINK_ON_AUTO_OPEN +, + +653 + `U£rGlob®s_G‘_O±iÚ +( +ALLOW_AUTOMATIC_SHRINK +), + +654 { + `glob®_»¡riù_excursiÚ +( + +655 +ALLOW_AUTOMATIC_SHRINK +, +®low_shršk +, + +656 { + `u£r_wšdow_još_excursiÚ +Ð +uwšp +, + +657 +PREFER_PREV_POS +, +´ev_´eãr +, + +658 { + `u£r_wšdow_još_excursiÚ +Ð +uwšp +, + +659 +REQUIRE_PREV_POS +, +´ev_»quœe +, + +661 iàÐ + `Mªage_Auto_O³n_Autom©iÿÎy +Ð +uwšp + ) ) + +662 +»suÉ + = +TRUE +; + +663 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +PREFER_UNZOOM_TO_CLOSE +) && + +664 ( +uwšp +-> +zoomed +) && + +665 + `Mªage_Unzoom_O³n +Ð +uwšp + ) ) + +666 +»suÉ + = +TRUE +; + +671  +»suÉ +; + +672 + } +} + + @manage_pro.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)manage_pro.c 5.6 9/1/88"; + +27  + ~"cÝyright.h +" + +30  + ~"ba£ty³.h +" + +32  + ~"u£rglobD.h +" + +33  + ~"twš.h +" + +35 #iâdeà +USERWIN_DEFINE + + +36  + ~"uwšD.h +" + +39 #iâdeà +TILWIN_DEFINE + + +40  + ~"twšD.h +" + +43  + #glob®_excursiÚ +( +Ýt +, +v® +, +code +) \ + +45 +boÞ + +‹mp_v® +; \ + +46 +‹mp_v® + = + `Tžwš_G‘_Glob®_O±iÚ +( +Ýt +); \ + +47 + `Tžwš_S‘_Glob®_O±iÚ +( +Ýt +, +v® +); \ + +48 +code +; \ + +49 + `Tžwš_S‘_Glob®_O±iÚ +( +Ýt +, +‹mp_v® +); \ + +50 } + + ) + +52  + #wšdow_excursiÚ +( +wš +, +Ýt +, +v® +, +code +) \ + +54 +boÞ + +‹mp_v® +; \ + +55 +‹mp_v® + = + `Tžwš_G‘_Wšdow_O±iÚ +( +wš +, +Ýt +); \ + +56 + `Tžwš_S‘_Wšdow_O±iÚ +( +wš +, +Ýt +, +v® +); \ + +57 +code +; \ + +58 + `Tžwš_S‘_Wšdow_O±iÚ +( +wš +, +Ýt +, +‹mp_v® +); \ + +59 } + + ) + +61  + #mš_excursiÚ +( +wš +, +code +) \ + +63 +Size + +‹mp_mš +; \ + +64 +‹mp_mš + = + `Tžwš_G‘_Mš +( +wš +); \ + +65 + `Tžwš_S‘_Mš +Ð +wš +, + `Tžwš_G‘_Size +(win) ); \ + +66 +code +; \ + +67 + `Tžwš_S‘_Mš +Ð +wš +, +‹mp_mš + ); \ + +68 } + + ) + +70  + #mš_size_excursiÚ +( +wš +, +siz +, +code +) \ + +72 +Size + +‹mp_mš +; \ + +73 +‹mp_mš + = + `Tžwš_G‘_Mš +( +wš +); \ + +74 + `Tžwš_S‘_Mš +Ð +wš +, +siz + ); \ + +75 +code +; \ + +76 + `Tžwš_S‘_Mš +Ð +wš +, +‹mp_mš + ); \ + +77 } + + ) + +79  + #u£r_glob®_excursiÚ +( +Ýt +, +v® +, +code +) \ + +81 +boÞ + +‹mp_v® +; \ + +82 +‹mp_v® + = + `U£rGlob®s_G‘_O±iÚ +( +Ýt +); \ + +83 + `U£rGlob®s_S‘_O±iÚ +Ð +Ýt +, +v® + ); \ + +84 +code +; \ + +85 + `U£rGlob®s_S‘_O±iÚ +( +Ýt +, +‹mp_v® +); \ + +86 } + + ) + +88  + #DESIRE_ITERS + 5 + + ) + +89  + #MAXIMIZE_ITERS + 2 + + ) + +90  + #PRORATE_ITERS + 4 + + ) + +91  + #FILL_ITERS + 1 + + ) + +93 +U£rwš + * +li¡’” +; + +95  +boÞ + + gauto_´Ü©e + = +TRUE +; + +97 +boÞ + +Mªage_IcÚ_O³n +(); + +98  +Mªage_S¹ +(); + +99  +Mªage_Save_S‹ +(); + +100  +Mªage_Fšish +(); + +101 +boÞ + +Mªage_Fšish_Fixed_Size +(); + +102 +boÞ + +Mªage_Fšish_MšÃd +(); + +106  +TWReùªgË + + $Mªage_F¬the¡_A»a +Ð +± +, +»ù + ) + +107 +TWPošt + +± +; + +108 +TWReùªgË + +»ù +; + +110 +TWPošt + +ûÁ” +; + +111 +TWReùªgË + +¬— +; + +113 + `COMPUTE_CENTER +Ð +»ù +, +ûÁ” + ); + +114 +¬— + = + `Tžwš_G‘_DesktÝ_ReùªgË +(); + +116 iàÐ +ûÁ” +. +x + > +± +.x ) + +117 +¬— +. +Ëá_x + = +»ù +.left_x; + +118 iàÐ +ûÁ” +. +x + < +± +.x ) + +119 +¬— +. +right_x + = +»ù +.right_x; + +121 iàÐ +ûÁ” +. +y + > +± +.y ) + +122 +¬— +. +tÝ_y + = +»ù +.top_y; + +123 iàÐ +ûÁ” +. +y + < +± +.y ) + +124 +¬— +. +bÙtom_y + = +»ù +.bottom_y; + +126  +¬— +; + +127 + } +} + +131  +TWReùªgË + + $Mªage_N—»¡_A»a +Ð +± +, +»ù + ) + +132 +TWPošt + +± +; + +133 +TWReùªgË + +»ù +; + +135 +TWPošt + +ûÁ” +; + +136 +TWReùªgË + +¬— +; + +138 + `COMPUTE_CENTER +Ð +»ù +, +ûÁ” + ); + +139 +¬— + = + `Tžwš_G‘_DesktÝ_ReùªgË +(); + +141 iàÐ +ûÁ” +. +x + > +± +.x ) + +142 +¬— +. +right_x + = +»ù +.right_x; + +143 iàÐ +ûÁ” +. +x + < +± +.x ) + +144 +¬— +. +Ëá_x + = +»ù +.left_x; + +146 iàÐ +ûÁ” +. +y + > +± +.y ) + +147 +¬— +. +bÙtom_y + = +»ù +.bottom_y; + +148 iàÐ +ûÁ” +. +y + < +± +.y ) + +149 +¬— +. +tÝ_y + = +»ù +.top_y; + +151  +¬— +; + +152 + } +} + +156  + $Mªage_Slide_N—»¡ +() + +158 +Tžwšp + +wšp +; + +159 +Tžwšp + +th»ad_h—d +; + +161 +th»ad_h—d + = + `Tžwš_Th»ad_N—»¡_Pos™iÚ +(); + +163  +wšp + = +th»ad_h—d +; wš°!ð +WIN_NULL +; + +164 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +166 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +167 + `Tžwš_Slide_N—»¡ +Ð +wšp +, + +168 + `Tžwš_G‘_Pos™iÚ +Ð +wšp + ) ); + +170 + } +} + +174  + $Mªage_AÎ_Desœe +() + +176 +Tžwšp + +wšp +; + +177 +Tžwšp + +th»ad_h—d +; + +178 +TWPošt + +ûÁ” +; + +179 +Size + +siz +; + +181 +ûÁ” + = + `Tžwš_Pos™iÚ_CŒ_Of_G¿v™y +(); + +182 +th»ad_h—d + = + `Tžwš_Th»ad_N—»¡ +Ð +ûÁ” + ); + +184 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +185 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +186  +wšp + = +th»ad_h—d +; wš°!ð +WIN_NULL +; + +187 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +189 iàÐ(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +190 && (! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_SIZE + ) ) ) + +192 +siz + = + `Tžwš_Checked_Desœed_Size +Ð +wšp + ); + +193 + `S‘_Max_Size +Ð +siz +, siz, + `Tžwš_G‘_Size +( +wšp +) ); + +194 + `Tžwš_EƬge_N—»¡ +Ð +wšp +, + +195 + `Tžwš_G‘_Pos™iÚ +( +wšp +), +siz + ); + +198 + } +} + +202  + $Mªage_AÎ_Maximize +() + +204 +Tžwšp + +wšp +; + +205 +Tžwšp + +th»ad_h—d +; + +206 +TWPošt + +ûÁ” +; + +207 +Size + +siz +; + +209 +ûÁ” + = + `Tžwš_Pos™iÚ_CŒ_Of_G¿v™y +(); + +210 +th»ad_h—d + = + `Tžwš_Th»ad_N—»¡ +Ð +ûÁ” + ); + +212 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +213 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +214  +wšp + = +th»ad_h—d +; wš°!ð +WIN_NULL +; + +215 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +217 iàÐ(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +218 && (! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_SIZE + ) ) ) + +220 +siz + = + `Tžwš_Checked_Max_Size +Ð +wšp + ); + +221 + `S‘_Max_Size +Ð +siz +, siz, + `Tžwš_G‘_Size +( +wšp +) ); + +222 + `Tžwš_EƬge_N—»¡ +Ð +wšp +, + +223 + `Tžwš_G‘_Pos™iÚ +( +wšp +), +siz + ); + +226 + } +} + +230  + $Mªage_AÎ_P»vious +() + +232 +Tžwšp + +wšp +; + +233 +Tžwšp + +th»ad_h—d +; + +234 +TWPošt + +ûÁ” +; + +235 +Size + +siz +; + +237 +ûÁ” + = + `Tžwš_Pos™iÚ_CŒ_Of_G¿v™y +(); + +238 +th»ad_h—d + = + `Tžwš_Th»ad_N—»¡ +Ð +ûÁ” + ); + +240 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +241 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +242  +wšp + = +th»ad_h—d +; wš°!ð +WIN_NULL +; + +243 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +245 iàÐ(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +246 && (! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_SIZE + ) ) ) + +248 +siz + = + `Tžwš_Checked_P»vious_Size +Ð +wšp + ); + +249 + `S‘_Max_Size +Ð +siz +, siz, + `Tžwš_G‘_Size +( +wšp +) ); + +250 + `Tžwš_EƬge_N—»¡ +Ð +wšp +, + +251 + `Tžwš_G‘_Pos™iÚ +( +wšp +), +siz + ); + +254 + } +} + +258  + $Mªage_Slide_Desœe +() + +260 + `Mªage_Slide_N—»¡ +(); + +261 + `Mªage_Slide_N—»¡ +(); + +262 + `Mªage_AÎ_Desœe +(); + +263 + } +} + +267  + $Mªage_Slide_Maximize +() + +269 + `Mªage_Slide_N—»¡ +(); + +270 + `Mªage_Slide_N—»¡ +(); + +271 + `Mªage_AÎ_Maximize +(); + +272 + } +} + +276  +Tžwšp + + g¶ow_h—d +; + +278  + $Mªage_S¹_Plow +Ð +»ù +, +± + ) + +279 +TWReùªgË + +»ù +; + +280 +TWPošt + +± +; + +282 +TWPošt + +ûÁ” +; + +283 +Tžwšp + +wšp +; + +285 + `COMPUTE_CENTER +Ð +»ù +, +ûÁ” + ); + +287 +¶ow_h—d + = + `Tžwš_Th»ad_F¬the¡ +Ð +ûÁ” + ); + +289 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +290 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +292  +wšp + = +¶ow_h—d +; wš°!ð +WIN_NULL +; + +293 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +295 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY +) ) + +297 + `Tžwš_Aù_Modif›d +Ð +wšp + ); + +298 + `Tžwš_S‘_Size +Ð +wšp +, + `Tžwš_Checked_Mš_Size +( winp ) ); + +299 + `Tžwš_Slide_F¬the¡_In_A»a +Ð +wšp +, + +300 + `Mªage_F¬the¡_A»a +Ð +± +, + +301 + `Tžwš_G‘_ReùªgË +Ð +wšp + ) ), + +302 +± + ); + +306 + } +} + +310  + $Mªage_Plow_Back +() + +312 +Tžwšp + +wšp +; + +313 +TWReùªgË + +»ù +; + +314 +Size + +siz +; + +315 +TWPošt + +± +; + +317 +¶ow_h—d + = + `Tžwš_Rev”£_Th»ad +(…low_head ); + +319  +wšp + = +¶ow_h—d +; wš°!ð +WIN_NULL +; + +320 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +322 iàÐ + `Tžwš_Is_O³n +Ð +wšp + ) && + +323 (! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY +) ) ) + +325 +siz + = + `Tžwš_G‘_Size +( +wšp +); + +326 +± + = + `Tžwš_G‘_P»vious_C’‹r +( +wšp +); + +328 ià(! + `Tžwš_O³n +Ð +wšp +, +± +, +siz + ) ) + +330 + `MAKE_RECTANGLE +Ð +± +, +siz +, +»ù + ) + +332 + `Tžwš_O³n_N—»¡_In_A»a +Ð +wšp +, + +333 + `Mªage_N—»¡_A»a +( + +334 + `Tžwš_G‘_C’‹r +( +wšp +), +»ù + ), + +335 +± +, +siz + ); + +339 + } +} + +343  + $Mªage_Plow_Re¡Üe +() + +345 +Tžwšp + +wšp +; + +346 +TWReùªgË + +»ù +; + +347 +Size + +siz +; + +348 +TWPošt + +± +; + +349 +Size + +mšsiz +; + +351 +¶ow_h—d + = + `Tžwš_Rev”£_Th»ad +(…low_head ); + +353  +wšp + = +¶ow_h—d +; wš°!ð +WIN_NULL +; + +354 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +356 iàÐ + `Tžwš_Is_O³n +Ð +wšp + ) && + +357 (! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY +) ) ) + +359 +siz + = + `Tžwš_G‘_P»vious_Size +( +wšp +); + +360 +± + = + `Tžwš_G‘_P»vious_C’‹r +( +wšp +); + +362 ià(! + `Tžwš_O³n +Ð +wšp +, +± +, +siz + ) ) + +364 + `MAKE_RECTANGLE +Ð +± +, +siz +, +»ù + ) + +365 +»ù + = + `Mªage_N—»¡_A»a +( + +366 + `Tžwš_G‘_C’‹r +( +wšp +), +»ù + ); + +368 + `Tžwš_EƬge_N—»¡_In_A»a +Ð +wšp +, +»ù +, +± +, +siz + ); + +370 +mšsiz + = + `Tžwš_Good_Size +Ð +wšp +, + +371 + `Tžwš_G‘_Size +Ð +wšp + ) ); + +373 + `mš_size_excursiÚ +Ð +wšp +, +mšsiz +, + +374 + `Tžwš_O³n_N—»¡_In_A»a +Ð +wšp +, +»ù +, +± +, +siz + ) ) + +378 + } +} + +382  + $Mªage_Fšish_Plow +() + +384 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +385 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +387 + `Mªage_Plow_Back +(); + +388 + `Mªage_Plow_Re¡Üe +(); + +389 + `Mªage_Slide_N—»¡ +(); + +390 + `Mªage_Slide_N—»¡ +(); + +391 + `Mªage_AÎ_P»vious +(); + +392 + `Mªage_AÎ_Desœe +(); + +394 + } +} + +398  + $Mªage_Ord”ed_Desœe +() + +400 +Tžwšp + +wšp +; + +401 +Tžwšp + +th»ad_h—d +; + +402 +Size + +siz +; + +403 +TWPošt + +ûÁ” +; + +404  +good +; + +405  +i +; + +407 +ûÁ” + = + `Tžwš_Pos™iÚ_CŒ_Of_G¿v™y +(); + +408 +th»ad_h—d + = + `Tžwš_Th»ad_N—»¡ +Ð +ûÁ” + ); + +410  +i + = 1; i <ð +DESIRE_ITERS +; i++ ) + +411 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +412 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +414 +good + = ()( +i +è/ () +DESIRE_ITERS +; + +416  +wšp + = +th»ad_h—d +; wš°!ð +WIN_NULL +; + +417 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +419 iàÐ(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +420 || (! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_SIZE + ) ) ) + +422 +siz + = + `Tžwš_Checked_Good_Desœed_Size +Ð +wšp +, +good + ); + +423 + `S‘_Max_Size +Ð +siz +, siz, + `Tžwš_G‘_Size +( +wšp +) ); + +424 + `Tžwš_EƬge_N—»¡ +Ð +wšp +, + +425 + `Tžwš_G‘_P»vious_C’‹r +( +wšp +), +siz + ); + +429 + } +} + +433  + $Mªage_Loÿl_PrÜ©e +() + +435 + `Mªage_Ord”ed_Desœe +(); + +436 + `Mªage_Slide_Desœe +(); + +437 + } +} + +441  + $Mªage_Faœ_V”tiÿl_Desœe +() + +443 +Tžwšp + +th»ad_h—d +; + +444 +Size + +siz +; + +445 +TWPošt + +ûÁ” +; + +446 +Tžwšp + +wšp +; + +447 +Tžwšp + +Ï‹¡ +; + +448  +good +; + +449  +™” +; + +450  +´Ü©e_™”s +; + +452 + `Tžwš_G’_O³n_Wšdows +(); + +453  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +455 +siz + = + `Tžwš_Checked_Mš_Size +Ð +wšp + ); + +456 +siz +. +width + = + `Tžwš_G‘_Size +( +wšp +).width; + +457 + `Tžwš_S‘_Size +Ð +wšp +, +siz + ); + +460 +ûÁ” +. +x + = + `Tžwš_G‘_DesktÝ_C’‹r +().x; + +461 +ûÁ” +. +y + = + `Tžwš_G‘_DesktÝ_ReùªgË +(). +tÝ_y +; + +462 +th»ad_h—d + = + `Tžwš_Th»ad_V”Žy_N—»¡ +Ð +ûÁ” + ); + +464  +wšp + = +th»ad_h—d +; wš°!ð +WIN_NULL +; + +465 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +467 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +468 + `Tžwš_Slide_V”Žy_N—»¡ +Ð +wšp +, +ûÁ” + ); + +471 ià( +auto_´Ü©e +) + +473 +´Ü©e_™”s + = +PRORATE_ITERS + - 2; + +474  +™” + = 1; iter <= 2; iter++ ) + +476 ià( +™” + == 1) + +477 +ûÁ” +. +y + = + `Tžwš_G‘_DesktÝ_ReùªgË +(). +bÙtom_y +; + +479 +ûÁ” +. +y + = + `Tžwš_G‘_DesktÝ_ReùªgË +(). +tÝ_y +; + +480 +th»ad_h—d + = + `Tžwš_Th»ad_V”Žy_N—»¡ +Ð +ûÁ” + ); + +482 +Ï‹¡ + = + `Tžwš_G‘_L©e¡_Height +Ð +™” + ); + +483  +wšp + = +th»ad_h—d +; wš°!ð +WIN_NULL +; + +484 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +486 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +488 + `Tžwš_Slide_V”Žy_N—»¡ +Ð +wšp +, +ûÁ” + ); + +490 ià( +wšp + =ð +Ï‹¡ +) + +492 +siz + = + `Tžwš_Checked_Desœed_Size +Ð +wšp + ); + +493 +siz +. +width + = + `Tžwš_G‘_Size +( +wšp +).width; + +494 + `Tžwš_EƬge_N—»¡ +Ð +wšp +, +ûÁ” +, +siz + ); + +501 +´Ü©e_™”s + = +PRORATE_ITERS +; + +503  +™” + = 1; i‹¸<ð +´Ü©e_™”s +; iter++ ) + +505 +good + = ()(2* +™” +-1è/ ()(2* +´Ü©e_™”s +); + +507 +ûÁ” +. +y + = + `Tžwš_G‘_DesktÝ_ReùªgË +(). +bÙtom_y +; + +508 +th»ad_h—d + = + `Tžwš_Th»ad_V”Žy_N—»¡ +Ð +ûÁ” + ); + +510  +wšp + = +th»ad_h—d +; wš°!ð +WIN_NULL +; + +511 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +513 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +515 + `Tžwš_Slide_V”Žy_N—»¡ +Ð +wšp +, +ûÁ” + ); + +517 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_SIZE + ) ) + +519 +siz + = + `Tžwš_Checked_Good_Desœed_Size +Ð +wšp +, +good + ); + +520 + `S‘_Max_Size +Ð +siz +, siz, + `Tžwš_G‘_Size +( +wšp +) ); + +521 +siz +. +width + = + `Tžwš_G‘_Size +( +wšp +).width; + +522 + `Tžwš_EƬge_N—»¡ +Ð +wšp +, +ûÁ” +, +siz + ); + +527 +ûÁ” +. +y + = + `Tžwš_G‘_DesktÝ_ReùªgË +(). +tÝ_y +; + +528 +th»ad_h—d + = + `Tžwš_Th»ad_V”Žy_N—»¡ +Ð +ûÁ” + ); + +530 +good + = ()( +™” +è/ ()( +´Ü©e_™”s +); + +532  +wšp + = +th»ad_h—d +; wš°!ð +WIN_NULL +; + +533 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +535 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +536 + `Tžwš_Slide_V”Žy_N—»¡ +Ð +wšp +, +ûÁ” + ); + +538 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_SIZE + ) ) + +540 +siz + = + `Tžwš_Checked_Good_Desœed_Size +Ð +wšp +, +good + ); + +541 + `S‘_Max_Size +Ð +siz +, siz, + `Tžwš_G‘_Size +( +wšp +) ); + +542 +siz +. +width + = + `Tžwš_G‘_Size +( +wšp +).width; + +543 + `Tžwš_EƬge_N—»¡ +Ð +wšp +, +ûÁ” +, +siz + ); + +549 +ûÁ” +. +y + = + `Tžwš_G‘_DesktÝ_ReùªgË +(). +bÙtom_y +; + +550 +th»ad_h—d + = + `Tžwš_Th»ad_V”Žy_N—»¡ +Ð +ûÁ” + ); + +552  +wšp + = +th»ad_h—d +; wš°!ð +WIN_NULL +; + +553 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +555 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +556 + `Tžwš_Slide_V”Žy_N—»¡ +Ð +wšp +, + +557 + `Tžwš_G‘_Pos™iÚ +Ð +wšp + ) ); + +559 + } +} + +563  + $Mªage_Faœ_HÜizÚl_Desœe +() + +565 +Tžwšp + +th»ad_h—d +; + +566 +Size + +siz +; + +567 +TWPošt + +ûÁ” +; + +568 +Tžwšp + +wšp +; + +569 +Tžwšp + +Ï‹¡ +; + +570  +good +; + +571  +™” +; + +572  +´Ü©e_™”s +; + +574 + `Tžwš_G’_O³n_Wšdows +(); + +575  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +577 +siz + = + `Tžwš_Checked_Mš_Size +Ð +wšp + ); + +578 +siz +. +height + = + `Tžwš_G‘_Size +( +wšp +).height; + +579 + `Tžwš_S‘_Size +Ð +wšp +, +siz + ); + +582 +ûÁ” +. +y + = + `Tžwš_G‘_DesktÝ_C’‹r +().y; + +583 +ûÁ” +. +x + = + `Tžwš_G‘_DesktÝ_ReùªgË +(). +Ëá_x +; + +584 +th»ad_h—d + = + `Tžwš_Th»ad_HÜizly_N—»¡ +Ð +ûÁ” + ); + +586  +wšp + = +th»ad_h—d +; wš°!ð +WIN_NULL +; + +587 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +589 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +590 + `Tžwš_Slide_HÜizly_N—»¡ +Ð +wšp +, +ûÁ” + ); + +593 iàÐ +auto_´Ü©e + ) + +595 +´Ü©e_™”s + = +PRORATE_ITERS + - 2; + +596  +™” + = 1; iter <= 2; iter++ ) + +598 ià( +™” + == 1) + +599 +ûÁ” +. +x + = + `Tžwš_G‘_DesktÝ_ReùªgË +(). +right_x +; + +601 +ûÁ” +. +x + = + `Tžwš_G‘_DesktÝ_ReùªgË +(). +Ëá_x +; + +602 +th»ad_h—d + = + `Tžwš_Th»ad_HÜizly_N—»¡ +Ð +ûÁ” + ); + +604 +Ï‹¡ + = + `Tžwš_G‘_L©e¡_Width +Ð +™” + ); + +605  +wšp + = +th»ad_h—d +; wš°!ð +WIN_NULL +; + +606 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +608 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +610 + `Tžwš_Slide_HÜizly_N—»¡ +Ð +wšp +, +ûÁ” + ); + +612 ià( +wšp + =ð +Ï‹¡ +) + +614 +siz + = + `Tžwš_Checked_Desœed_Size +Ð +wšp + ); + +615 +siz +. +height + = + `Tžwš_G‘_Size +( +wšp +).height; + +616 + `Tžwš_EƬge_N—»¡ +Ð +wšp +, +ûÁ” +, +siz + ); + +623 +´Ü©e_™”s + = +PRORATE_ITERS +; + +625  +™” + = 1; i‹¸<ð +´Ü©e_™”s +; iter++ ) + +627 +good + = ()(2* +™” +-1è/ ()(2* +´Ü©e_™”s +); + +629 +ûÁ” +. +x + = + `Tžwš_G‘_DesktÝ_ReùªgË +(). +right_x +; + +630 +th»ad_h—d + = + `Tžwš_Th»ad_HÜizly_N—»¡ +Ð +ûÁ” + ); + +632  +wšp + = +th»ad_h—d +; wš°!ð +WIN_NULL +; + +633 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +635 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +637 + `Tžwš_Slide_HÜizly_N—»¡ +Ð +wšp +, +ûÁ” + ); + +639 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_SIZE + ) ) + +641 +siz + = + `Tžwš_Checked_Good_Desœed_Size +Ð +wšp +, +good + ); + +642 + `S‘_Max_Size +Ð +siz +, siz, + `Tžwš_G‘_Size +( +wšp +) ); + +643 +siz +. +height + = + `Tžwš_G‘_Size +( +wšp +).height; + +644 + `Tžwš_EƬge_N—»¡ +Ð +wšp +, +ûÁ” +, +siz + ); + +649 +ûÁ” +. +x + = + `Tžwš_G‘_DesktÝ_ReùªgË +(). +Ëá_x +; + +650 +th»ad_h—d + = + `Tžwš_Th»ad_HÜizly_N—»¡ +Ð +ûÁ” + ); + +652 +good + = ()( +™” +è/ ()( +´Ü©e_™”s +); + +654  +wšp + = +th»ad_h—d +; wš°!ð +WIN_NULL +; + +655 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +657 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +658 + `Tžwš_Slide_HÜizly_N—»¡ +Ð +wšp +, +ûÁ” + ); + +660 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_SIZE + ) ) + +662 +siz + = + `Tžwš_Checked_Good_Desœed_Size +Ð +wšp +, +good + ); + +663 + `S‘_Max_Size +Ð +siz +, siz, + `Tžwš_G‘_Size +( +wšp +) ); + +664 +siz +. +height + = + `Tžwš_G‘_Size +( +wšp +).height; + +665 + `Tžwš_EƬge_N—»¡ +Ð +wšp +, +ûÁ” +, +siz + ); + +671 +ûÁ” +. +x + = + `Tžwš_G‘_DesktÝ_ReùªgË +(). +right_x +; + +672 +th»ad_h—d + = + `Tžwš_Th»ad_HÜizly_N—»¡ +Ð +ûÁ” + ); + +674  +wšp + = +th»ad_h—d +; wš°!ð +WIN_NULL +; + +675 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +677 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +678 + `Tžwš_Slide_HÜizly_N—»¡ +Ð +wšp +, + +679 + `Tžwš_G‘_Pos™iÚ +Ð +wšp + ) ); + +681 + } +} + +685  + $Mªage_Faœ_V”tiÿl_Maximize +() + +687 +Tžwšp + +th»ad_h—d +; + +688 +Size + +siz +; + +689 +TWPošt + +ûÁ” +; + +690 +Tžwšp + +wšp +; + +691  +good +; + +692  +™” +; + +694 +ûÁ” +. +x + = + `Tžwš_G‘_DesktÝ_C’‹r +().x; + +695 +ûÁ” +. +y + = + `Tžwš_G‘_DesktÝ_ReùªgË +(). +tÝ_y +; + +696 +th»ad_h—d + = + `Tžwš_Th»ad_V”Žy_N—»¡ +Ð +ûÁ” + ); + +698  +wšp + = +th»ad_h—d +; wš°!ð +WIN_NULL +; + +699 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +701 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +702 + `Tžwš_Slide_V”Žy_N—»¡ +Ð +wšp +, +ûÁ” + ); + +705  +™” + = 1; i‹¸<ð +FILL_ITERS +; iter++ ) + +707 +good + = ()(2* +™” +-1è/ ()(2* +FILL_ITERS +); + +709 +ûÁ” +. +y + = + `Tžwš_G‘_DesktÝ_ReùªgË +(). +bÙtom_y +; + +710 +th»ad_h—d + = + `Tžwš_Th»ad_V”Žy_N—»¡ +Ð +ûÁ” + ); + +712  +wšp + = +th»ad_h—d +; wš°!ð +WIN_NULL +; + +713 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +715 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +717 + `Tžwš_Slide_V”Žy_N—»¡ +Ð +wšp +, +ûÁ” + ); + +719 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_SIZE + ) ) + +721 +siz + = + `Tžwš_Checked_Good_Max_Size +Ð +wšp +, +good + ); + +722 + `S‘_Max_Size +Ð +siz +, siz, + `Tžwš_G‘_Size +( +wšp +) ); + +723 +siz +. +width + = + `Tžwš_G‘_Size +( +wšp +).width; + +724 + `Tžwš_EƬge_N—»¡ +Ð +wšp +, +ûÁ” +, +siz + ); + +729 +ûÁ” +. +y + = + `Tžwš_G‘_DesktÝ_ReùªgË +(). +tÝ_y +; + +730 +th»ad_h—d + = + `Tžwš_Th»ad_V”Žy_N—»¡ +Ð +ûÁ” + ); + +732 +good + = ()( +™” +è/ ()( +FILL_ITERS +); + +734  +wšp + = +th»ad_h—d +; wš°!ð +WIN_NULL +; + +735 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +737 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +738 + `Tžwš_Slide_V”Žy_N—»¡ +Ð +wšp +, +ûÁ” + ); + +740 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_SIZE + ) ) + +742 +siz + = + `Tžwš_Checked_Good_Max_Size +Ð +wšp +, +good + ); + +743 + `S‘_Max_Size +Ð +siz +, siz, + `Tžwš_G‘_Size +( +wšp +) ); + +744 +siz +. +width + = + `Tžwš_G‘_Size +( +wšp +).width; + +745 + `Tžwš_EƬge_N—»¡ +Ð +wšp +, +ûÁ” +, +siz + ); + +751 +ûÁ” +. +y + = + `Tžwš_G‘_DesktÝ_ReùªgË +(). +bÙtom_y +; + +752 +th»ad_h—d + = + `Tžwš_Th»ad_V”Žy_N—»¡ +Ð +ûÁ” + ); + +754  +wšp + = +th»ad_h—d +; wš°!ð +WIN_NULL +; + +755 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +757 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +758 + `Tžwš_Slide_V”Žy_N—»¡ +Ð +wšp +, + +759 + `Tžwš_G‘_Pos™iÚ +Ð +wšp + ) ); + +761 + } +} + +765  + $Mªage_Faœ_HÜizÚl_Maximize +() + +767 +Tžwšp + +th»ad_h—d +; + +768 +Size + +siz +; + +769 +TWPošt + +ûÁ” +; + +770 +Tžwšp + +wšp +; + +771  +good +; + +772  +™” +; + +774 +ûÁ” +. +y + = + `Tžwš_G‘_DesktÝ_C’‹r +().y; + +775 +ûÁ” +. +x + = + `Tžwš_G‘_DesktÝ_ReùªgË +(). +Ëá_x +; + +776 +th»ad_h—d + = + `Tžwš_Th»ad_HÜizly_N—»¡ +Ð +ûÁ” + ); + +778  +wšp + = +th»ad_h—d +; wš°!ð +WIN_NULL +; + +779 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +781 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +782 + `Tžwš_Slide_HÜizly_N—»¡ +Ð +wšp +, +ûÁ” + ); + +785  +™” + = 1; i‹¸<ð +FILL_ITERS +; iter++ ) + +787 +good + = ()(2* +™” +-1è/ ()(2* +FILL_ITERS +); + +789 +ûÁ” +. +x + = + `Tžwš_G‘_DesktÝ_ReùªgË +(). +right_x +; + +790 +th»ad_h—d + = + `Tžwš_Th»ad_HÜizly_N—»¡ +Ð +ûÁ” + ); + +792  +wšp + = +th»ad_h—d +; wš°!ð +WIN_NULL +; + +793 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +795 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +797 + `Tžwš_Slide_HÜizly_N—»¡ +Ð +wšp +, +ûÁ” + ); + +799 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_SIZE + ) ) + +801 +siz + = + `Tžwš_Checked_Good_Max_Size +Ð +wšp +, +good + ); + +802 + `S‘_Max_Size +Ð +siz +, siz, + `Tžwš_G‘_Size +( +wšp +) ); + +803 +siz +. +height + = + `Tžwš_G‘_Size +( +wšp +).height; + +804 + `Tžwš_EƬge_N—»¡ +Ð +wšp +, +ûÁ” +, +siz + ); + +809 +ûÁ” +. +x + = + `Tžwš_G‘_DesktÝ_ReùªgË +(). +Ëá_x +; + +810 +th»ad_h—d + = + `Tžwš_Th»ad_HÜizly_N—»¡ +Ð +ûÁ” + ); + +812 +good + = ()( +™” +è/ ()( +FILL_ITERS +); + +814  +wšp + = +th»ad_h—d +; wš°!ð +WIN_NULL +; + +815 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +817 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +818 + `Tžwš_Slide_HÜizly_N—»¡ +Ð +wšp +, +ûÁ” + ); + +820 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_SIZE + ) ) + +822 +siz + = + `Tžwš_Checked_Good_Max_Size +Ð +wšp +, +good + ); + +823 + `S‘_Max_Size +Ð +siz +, siz, + `Tžwš_G‘_Size +( +wšp +) ); + +824 +siz +. +height + = + `Tžwš_G‘_Size +( +wšp +).height; + +825 + `Tžwš_EƬge_N—»¡ +Ð +wšp +, +ûÁ” +, +siz + ); + +831 +ûÁ” +. +x + = + `Tžwš_G‘_DesktÝ_ReùªgË +(). +right_x +; + +832 +th»ad_h—d + = + `Tžwš_Th»ad_HÜizly_N—»¡ +Ð +ûÁ” + ); + +834  +wšp + = +th»ad_h—d +; wš°!ð +WIN_NULL +; + +835 +wšp + = ( +Tžwšp +) + `Tžwš_G‘_D©a +(winp) ) + +837 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +838 + `Tžwš_Slide_HÜizly_N—»¡ +Ð +wšp +, + +839 + `Tžwš_G‘_Pos™iÚ +Ð +wšp + ) ); + +841 + } +} + +845  + $Mªage_Faœ_Desœe +() + +847 + `Mªage_Faœ_V”tiÿl_Desœe +(); + +848 + `Mªage_Faœ_HÜizÚl_Desœe +(); + +849 + `Mªage_AÎ_P»vious +(); + +850 + `Mªage_Slide_Desœe +(); + +851 + `Mªage_AÎ_P»vious +(); + +852 + } +} + +856  + $Mªage_Faœ_Maximize +() + +858 + `Mªage_Faœ_V”tiÿl_Maximize +(); + +859 + `Mªage_Faœ_HÜizÚl_Maximize +(); + +860 + `Mªage_Slide_Maximize +(); + +861 + } +} + +865  + $Mªage_Faœ_PrÜ©e +() + +867 + `Mªage_Slide_N—»¡ +(); + +869 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +870 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +871 + `glob®_excursiÚ +Ð +ENABLE_GRAVITY +, +FALSE +, + +873 + `Mªage_Faœ_Desœe +(); + +875 + } +} + +879  + $Mªage_Faœ_Fžl +() + +881 + `Mªage_Slide_N—»¡ +(); + +883 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +884 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +885 + `glob®_excursiÚ +Ð +ENABLE_GRAVITY +, +FALSE +, + +887 + `Mªage_Faœ_Maximize +(); + +889 + } +} + +893  + $Mªage_C¬eful_Desœe +Ð +uwšp + ) + +894 +U£rwš + * +uwšp +; + +896 +Size + +siz +; + +897  +good +; + +898  +i +; + +900  +i + = 1; i <ð +DESIRE_ITERS +; i++ ) + +902 +good + = ()( +i +è/ () +DESIRE_ITERS +; + +904 iàÐ(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, + +905 +FIXED_COMPLETELY + ) ) + +906 || (! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, + +907 +FIXED_SIZE + ) ) ) + +909 +siz + = + `Tžwš_Checked_Good_Desœed_Size +Ð +uwšp +-> +wšp +, +good + ); + +910 + `S‘_Max_Size +Ð +siz +, siz, + `Tžwš_G‘_Size +( +uwšp +-> +wšp +) ); + +911 + `Tžwš_EƬge_N—»¡ +Ð +uwšp +-> +wšp +, + +912 + `Tžwš_G‘_Pos™iÚ +( +uwšp +-> +wšp +), +siz + ); + +915 + } +} + +919  + $Mªage_Plow_Desœe +Ð +uwšp + ) + +920 +U£rwš + * +uwšp +; + +922 +TWPošt + +± +; + +924 iàÐ + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_COMPLETELY + ) || + +925 + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_SIZE + ) ) + +928 +± + = + `Tžwš_G‘_C’‹r +Ð +uwšp +-> +wšp + ); + +929 + `Tžwš_Clo£ +Ð +uwšp +-> +wšp + ); + +931 + `Mªage_S¹_Plow +Ð + `Tžwš_G‘_ReùªgË +Ð +uwšp +-> +wšp + ), + +932 +± + ); + +934 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +935 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +937 + `Tžwš_O³n +Ð +uwšp +-> +wšp +, +± +, + `Tžwš_G‘_Size +(uwinp->winp) ); + +938 + `Mªage_C¬eful_Desœe +Ð +uwšp + ); + +941 + `Mªage_Fšish_Plow +(); + +943 + } +} + +947  + $Mªage_C¬eful_Maximize +Ð +uwšp + ) + +948 +U£rwš + * +uwšp +; + +950 +Size + +siz +; + +951  +good +; + +952  +i +; + +954  +i + = 1; i <ð +MAXIMIZE_ITERS +; i++ ) + +956 +good + = ()( +i +è/ () +MAXIMIZE_ITERS +; + +958 iàÐ(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, + +959 +FIXED_COMPLETELY + ) ) + +960 || (! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, + +961 +FIXED_SIZE + ) ) ) + +963 +siz + = + `Tžwš_Checked_Good_Max_Size +Ð +uwšp +-> +wšp +, +good + ); + +964 + `S‘_Max_Size +Ð +siz +, siz, + `Tžwš_G‘_Size +( +uwšp +-> +wšp +) ); + +965 + `Tžwš_EƬge_N—»¡ +Ð +uwšp +-> +wšp +, + +966 + `Tžwš_G‘_Pos™iÚ +( +uwšp +-> +wšp +), +siz + ); + +969 + } +} + +973  + $Mªage_Plow_Maximize +Ð +uwšp + ) + +974 +U£rwš + * +uwšp +; + +976 +TWPošt + +± +; + +978 iàÐ + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_COMPLETELY + ) || + +979 + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_SIZE + ) ) + +982 +± + = + `Tžwš_G‘_C’‹r +Ð +uwšp +-> +wšp + ); + +983 + `Tžwš_Clo£ +Ð +uwšp +-> +wšp + ); + +985 + `Mªage_S¹_Plow +Ð + `Tžwš_G‘_ReùªgË +Ð +uwšp +-> +wšp + ), + +986 +± + ); + +988 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +989 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +991 + `Tžwš_O³n +Ð +uwšp +-> +wšp +, +± +, + `Tžwš_G‘_Size +(uwinp->winp) ); + +992 + `Mªage_C¬eful_Desœe +Ð +uwšp + ); + +993 + `Mªage_C¬eful_Maximize +Ð +uwšp + ); + +996 + `Mªage_Fšish_Plow +(); + +998 + } +} + +1002  + $Mªage_Shršk +Ð +uwšp + ) + +1003 +U£rwš + * +uwšp +; + +1005 iàÐ + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_COMPLETELY + ) || + +1006 + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_SIZE + ) ) + +1009 + `Mªage_S¹ +(); + +1011 + `Tžwš_S‘_Size +Ð +uwšp +-> +wšp +, + +1012 + `Tžwš_Checked_Mš_Size +Ð +uwšp +-> +wšp + ) ); + +1014 + `Mªage_Fšish_Fixed_Size +Ð +uwšp +, +TRUE + ); + +1015 + } +} + +1019  + $Mªage_CÚŒaù +Ð +uwšp + ) + +1020 +U£rwš + * +uwšp +; + +1022 iàÐ + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_COMPLETELY + ) || + +1023 + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_SIZE + ) ) + +1026 + `Mªage_S¹ +(); + +1027 + `Mªage_Save_S‹ +Ð +uwšp + ); + +1029 + `Tžwš_S‘_Size +Ð +uwšp +-> +wšp +, + +1030 + `Tžwš_Checked_Mš_Size +Ð +uwšp +-> +wšp + ) ); + +1032 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, + `Tžwš_G‘_Size +( uwinp->winp ) ); + +1033 + `Tžwš_NÙe_Desœed_Width +Ð +uwšp +-> +wšp + ); + +1034 + `Tžwš_NÙe_Desœed_Height +Ð +uwšp +-> +wšp + ); + +1036 + `Mªage_Fšish_Fixed_Size +Ð +uwšp +, +TRUE + ); + +1037 + } +} + +1041  + $Mªage_Ex·nd +Ð +uwšp + ) + +1042 +U£rwš + * +uwšp +; + +1044 iàÐ + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_COMPLETELY + ) || + +1045 + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_SIZE + ) ) + +1048 + `Mªage_S¹ +(); + +1049 + `Mªage_Save_S‹ +Ð +uwšp + ); + +1051 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +1052 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +1053 + `Tžwš_EƬge_N—»¡ +Ð +uwšp +-> +wšp +, + +1054 + `Tžwš_G‘_Pos™iÚ +( +uwšp +-> +wšp +), + +1055 + `Tžwš_Checked_Max_Size +( +uwšp +-> +wšp +) ) ) ) + +1057 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, + `Tžwš_G‘_Size +( uwinp->winp ) ); + +1058 + `Tžwš_NÙe_Desœed_Width +Ð +uwšp +-> +wšp + ); + +1059 + `Tžwš_NÙe_Desœed_Height +Ð +uwšp +-> +wšp + ); + +1061 + `Mªage_Fšish_Fixed_Size +Ð +uwšp +, +TRUE + ); + +1062 + } +} + +1066  + $Mªage_EƬge +Ð +uwšp + ) + +1067 +U£rwš + * +uwšp +; + +1069 + `Mªage_S¹ +(); + +1071 + `Mªage_Plow_Maximize +Ð +uwšp + ); + +1073 + `Mªage_Fšish_MšÃd +Ð +uwšp +, +TRUE + ); + +1074 + } +} + +1078  + $Mªage_Desœe +Ð +uwšp + ) + +1079 +U£rwš + * +uwšp +; + +1081 + `Mªage_S¹ +(); + +1083 + `Mªage_Plow_Desœe +Ð +uwšp + ); + +1085 + `Tžwš_NÙe_Desœed_Width +Ð +uwšp +-> +wšp + ); + +1086 + `Tžwš_NÙe_Desœed_Height +Ð +uwšp +-> +wšp + ); + +1088 + `Mªage_Fšish_MšÃd +Ð +uwšp +, +TRUE + ); + +1089 + } +} + +1093  + $Mªage_BŸ£d_PrÜ©e +() + +1095 iàÐ( +li¡’” + !ð +UWIN_NULL +è&& + `U£rwš_Is_O³n +(listener) ) + +1097 + `Mªage_Plow_Maximize +Ð +li¡’” + ); + +1098 + `wšdow_excursiÚ +Ð +li¡’” +-> +wšp +, +FIXED_COMPLETELY +, +TRUE +, + +1099 + `Mªage_Loÿl_PrÜ©e +() ) + +1100 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +1101 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +1102 + `Mªage_C¬eful_Maximize +Ð +li¡’” + ) ) ) + +1105 + `Mªage_Faœ_PrÜ©e +(); + +1106 + } +} + +1110  + $Mªage_Fžl +() + +1112 +auto_´Ü©e + = +FALSE +; + +1113 + `Mªage_S¹ +(); + +1114 + `Mªage_Faœ_Fžl +(); + +1115 + `u£r_glob®_excursiÚ +Ð +AUTO_PRORATE +, +FALSE +, + +1116 + `Mªage_Fšish +Ð +TRUE + ) ) + +1117 +auto_´Ü©e + = +TRUE +; + +1118 + } +} + +1122  + $Mªage_PrÜ©e +() + +1124 +auto_´Ü©e + = +FALSE +; + +1125 + `Mªage_S¹ +(); + +1126 + `Mªage_Faœ_PrÜ©e +(); + +1127 + `u£r_glob®_excursiÚ +Ð +AUTO_PRORATE +, +FALSE +, + +1128 + `Mªage_Fšish +Ð +TRUE + ) ) + +1129 +auto_´Ü©e + = +TRUE +; + +1130 + } +} + +1134  + $Mªage_Auto_PrÜ©e +() + +1136 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +BIASED_AUTO_PRORATE +) ) + +1137 + `Mªage_BŸ£d_PrÜ©e +(); + +1139 + `Mªage_Faœ_PrÜ©e +(); + +1140 + } +} + + @manage_st.c + +23  + ~"cÝyright.h +" + +25  + ~<¡dio.h +> + +26  + ~"ba£ty³.h +" + +28 #iâdeà +TILWIN_DEFINE + + +29  + ~"twšD.h +" + +32 #iâdeà +USERWIN_DEFINE + + +33  + ~"uwšD.h +" + +36  + ~"twš.h +" + +37  + ~"»giÚ.h +" + +39  +Mªage_In™_RŽ +(); + +41  +Mªage_S¹ +(); + +42  +Mªage_Upd©e_IcÚs +(); + +43  +Mªage_Fšish +(); + +45  +Mªage_P»·»_O³n +(); + +46 +boÞ + +Mªage_Cl›Á_O³n_Autom©iÿÎy +(); + +47  +Mªage_Cl›Á_O³n_IcÚ +(); + +52  + #Di¡ +( +±1 +, +±2 +) \ + +53 ÐÐ(( +±1 +). +x + - ( +±2 +).x)*((pt1).x - (pt2).x) ) + \ + +54 Ð(( +±1 +). +y + - ( +±2 +).y)*(Õt1).y - (±2).yèè) + + ) + +58 #ifdeà +WM_DEBUG + + +59  + $Mªage_W®k_Th»adedD©aLi¡ +( +lh—d +, +func +) + +60 +poš‹r + +lh—d +; + +61 (* +func +) (); + +63 +Tžwšp + +wšp +; + +65  +wšp + = ( +Tžwšp +è +lh—d +; wš°!ð +WIN_NULL +; + +66 +wšp + = ( +Tžwšp +è + `Tžwš_G‘_D©a +(winp)) + +68 (* +func +)( +wšp +); + +70 + } +} + +72 +TWPošt + + g´št_ûÁ” +; + +73  + gde_bug + = 100; + +75  + $Mªage_Pršt_Pos™iÚ +( +wšp +) + +76 +Tžwšp + +wšp +; + +78 + `´štf +("pos™iÚ = %d\n", + `Di¡ +( + `Tžwš_G‘_Pos™iÚ +( +wšp +), +´št_ûÁ” +)); + +79 + } +} + +86  + #DELETE_AFTER +( +–em’t +) { \ + +87 ià( + `Tžwš_G‘_D©a +( +–em’t +è!ð( +poš‹r +è +NULL +) { \ + +88 +poš‹r + +p +; \ + +89 +p + = + `Tžwš_G‘_D©a +(( +Tžwšp +èTžwš_G‘_D©a( +–em’t +)); \ + +90 + `Tžwš_Put_D©a +( +–em’t +, +p +); \ + +92 } + + ) + +95  + #INSERT_AFTER +( +–em’t +, +š£¹“ +) { \ + +96 + `Tžwš_Put_D©a +( +š£¹“ +, + `Tžwš_G‘_D©a +( +–em’t +)); \ + +97 + `Tžwš_Put_D©a +( +–em’t +, ( +poš‹r +è +š£¹“ +); \ + +98 } + + ) + +101  + #MOVE_NEXT +( +–em’t1 +, +–em’t2 +) { \ + +102 +poš‹r + +q +; \ + +103 +q + = + `Tžwš_G‘_D©a +( +–em’t1 +); \ + +104 + `DELETE_AFTER +( +–em’t1 +); \ + +105 + `INSERT_AFTER +( +–em’t2 +, +q +); \ + +106 } + + ) + +110  +poš‹r + + gnÚÏyout_h—d + = +WIN_NULL +; + +111  +poš‹r + + gnÚÏyout_ž + = +WIN_NULL +; + +112  +poš‹r + + gÏyout_h—d + = +WIN_NULL +; + +113  +poš‹r + + gÏyout_ž + = +WIN_NULL +; + +115 +poš‹r + +Mªage_SÜt_Th»adedD©aLi¡ +(); + +119  + $Mªage_S¹up_O³n +( +uwšp +) + +120 +U£rwš + * +uwšp +; + +122 +TWReùªgË + +»ù +; + +123 +Size + +size +; + +124 +TWPošt + +ûÁ” +; + +126 + `Mªage_P»·»_O³n +( +uwšp +); + +128 ià( +uwšp +-> +Ïyout_found + =ð +TRUE +) + +131 ià( +Ïyout_h—d + =ð( +poš‹r +è +NULL +) + +132 +Ïyout_h—d + = +Ïyout_ž + = +uwšp +-> +wšp +; + +134 + `Tžwš_Put_D©a +( +Ïyout_ž +, +uwšp +-> +wšp +); + +135 +Ïyout_ž + = +uwšp +-> +wšp +; + +137 + `Tžwš_Put_D©a +( +Ïyout_ž +, +WIN_NULL +); + +140 +»ù + = + `Tžwš_G‘_ReùªgË +( +uwšp +-> +wšp +); + +142 + `COMPUTE_CENTER +( +»ù +, +ûÁ” +); + +143 + `Tžwš_S‘_Pos™iÚ +( +uwšp +-> +wšp +, +ûÁ” +); + +145 + `COMPUTE_SIZE +( +»ù +, +size +); + +146 + `S‘_Mš_Size +( +size +, size, + `Tžwš_G‘_Max +( +uwšp +-> +wšp +)); + +147 + `S‘_Max_Size +( +size +, size, + `Tžwš_G‘_Mš +( +uwšp +-> +wšp +)); + +152 ià( + `Same_Size +( + `Tžwš_G‘_Desœed +( +uwšp +-> +wšp +), + +153 + `Tžwš_G‘_AbsÞu‹_Mšimums +())) + +155 +uwšp +-> +»guÏr_size + = +size +; + +156 + `Tžwš_S‘_Desœed +( +uwšp +-> +wšp +, +size +); + +159 ià( + `Tžwš_S‘ + ( +uwšp +-> +wšp +, +ûÁ” +, +size +è!ð +TRUE +) + +160 (è + `Tžwš_S‘ + ( +uwšp +-> +wšp +, +ûÁ” +, + +161 + `Tžwš_G‘_Mš +( +uwšp +-> +wšp +)); + +164 ià( +nÚÏyout_h—d + =ð( +poš‹r +è +NULL +) + +165 +nÚÏyout_h—d + = +nÚÏyout_ž + = +uwšp +-> +wšp +; + +167 + `Tžwš_Put_D©a +( +nÚÏyout_ž +, +uwšp +-> +wšp +); + +168 +nÚÏyout_ž + = +uwšp +-> +wšp +; + +170 + `Tžwš_Put_D©a +( +nÚÏyout_ž +, +WIN_NULL +); + +172 + } +} + +176  + #glob®_excursiÚ +( +Ýt +, +v® +, +code +) \ + +178 +boÞ + +‹mp_v® +; \ + +179 +‹mp_v® + = + `Tžwš_G‘_Glob®_O±iÚ +( +Ýt +); \ + +180 + `Tžwš_S‘_Glob®_O±iÚ +( +Ýt +, +v® +); \ + +181 +code +; \ + +182 + `Tžwš_S‘_Glob®_O±iÚ +( +Ýt +, +‹mp_v® +); \ + +183 } + + ) + +187  + $Mªage_PÏû_Laid_Out +() + +189 +U£rwš + * +uwšp +; + +190 +Tžwšp + +wšp +; + +192  +wšp + = ( +Tžwšp +è +Ïyout_h—d +; wš°!ð +WIN_NULL +; + +193 +wšp + = + `Tžwš_G‘_D©a +(winp)) + +195 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +196 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +AUTO_OPEN_ON_CREATE + ) ) + +197 + `Mªage_Cl›Á_O³n_Autom©iÿÎy +Ð +uwšp + ); + +199 + `Mªage_Cl›Á_O³n_IcÚ +Ð +uwšp + ); + +201 + } +} + +205  +TWReùªgË + + gdesk»ù +; + +207  +TWPošt + + $Mªage_F¬the¡_IcÚ_Pošt +() + +209 +TWPošt + +fu¹he¡_pošt +; + +212 +fu¹he¡_pošt + = + `Tžwš_G‘_DesktÝ_C’‹r +(); + +214 ( +IcÚ_Pos™iÚ +è + `U£rGlob®s_G‘_V®ue +( +SECONDARY_ICON_PLACEMENT +)) { + +215  +IcÚ_TÝ +: + +216 + `G‘_PtY +( +fu¹he¡_pošt +èð + `G‘_BÙtomY +( +desk»ù +); + +218  +IcÚ_BÙtom +: + +219 + `G‘_PtY +( +fu¹he¡_pošt +èð + `G‘_TÝY +( +desk»ù +); + +221  +IcÚ_Leá +: + +222 + `G‘_PtX +( +fu¹he¡_pošt +èð + `G‘_RightX +( +desk»ù +); + +224  +IcÚ_Right +: + +225 + `G‘_PtX +( +fu¹he¡_pošt +èð + `G‘_LeáX +( +desk»ù +); + +227  +IcÚ_MiddË +: + +228 + `G‘_PtX +( +fu¹he¡_pošt +èð + `G‘_LeáX +( +desk»ù +); + +229 + `G‘_PtY +( +fu¹he¡_pošt +èð + `G‘_TÝY +( +desk»ù +); + +233 ( +IcÚ_Pos™iÚ +è + `U£rGlob®s_G‘_V®ue +( +ICON_PLACEMENT +)) { + +234  +IcÚ_TÝ +: + +235 + `G‘_PtY +( +fu¹he¡_pošt +èð + `G‘_BÙtomY +( +desk»ù +); + +237  +IcÚ_BÙtom +: + +238 + `G‘_PtY +( +fu¹he¡_pošt +èð + `G‘_TÝY +( +desk»ù +); + +240  +IcÚ_Leá +: + +241 + `G‘_PtX +( +fu¹he¡_pošt +èð + `G‘_RightX +( +desk»ù +); + +243  +IcÚ_Right +: + +244 + `G‘_PtX +( +fu¹he¡_pošt +èð + `G‘_LeáX +( +desk»ù +); + +247  +fu¹he¡_pošt +; + +248 + } +} + +252  + $Mªage_S¹up_Fšish +() + +254 +U£rwš + * +uwšp +; + +255 +Tžwšp + +wšp +; + +256 +TWPošt + +ûÁ” +, + +257 +wšdow_ûÁ” +, + +258 +fu¹he¡_pošt +, + +259 +quad¿Á_cÜÃr +; + +260  +numb”_of_wšdows + = 0; + +261 +Size + +size +; + +262 +boÞ + +»suÉ +; + +264 + `Mªage_In™_RŽ +(); + +266 + `Mªage_S¹ +(); + +269 + `Mªage_PÏû_Laid_Out +(); + +271 ià( +nÚÏyout_h—d + =ð( +poš‹r +è +NULL +) + +273 + `Mªage_Fšish +( +TRUE +); + +278 + `Mªage_Upd©e_IcÚs +(); + +280 +desk»ù + = + `Tžwš_G‘_DesktÝ_ReùªgË +(); + +283 +fu¹he¡_pošt + = + `Mªage_F¬the¡_IcÚ_Pošt +(); + +290 +nÚÏyout_h—d + = + +291 + `Mªage_SÜt_Th»adedD©aLi¡ +( +nÚÏyout_h—d +, +fu¹he¡_pošt +); + +296 +nÚÏyout_h—d + = ( +poš‹r +è + `Tžwš_Rev”£_Th»ad +(nonlayout_head); + +301  +wšp + = ( +Tžwšp +è +nÚÏyout_h—d +; wš°!ð +WIN_NULL +; + +302 +wšp + = + `Tžwš_G‘_D©a +(winp)) + +304 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +306 ià(( + `U£rwš_G‘_Wšdow_O±iÚ +( +uwšp +, +AUTO_OPEN_ON_CREATE +) != + +307 +TRUE +) || + +308 ( + `U£rwš_S¹up_S‹ +( +uwšp +è=ð +IcÚicS‹ +) || + +309 ( + `U£rwš_S¹up_S‹ +( +uwšp +è=ð +IÇùiveS‹ +)) + +310 + `Mªage_Cl›Á_O³n_IcÚ +Ð +uwšp + ); + +313 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +314 { +»suÉ + = + `Tžwš_O³n_N—»¡_In_A»a +( +wšp +, +desk»ù +, + +315 +fu¹he¡_pošt +, + +316 + `Tžwš_G‘_Mš +( +wšp +)); + +319 iàÐ +»suÉ + ) + +320 +uwšp +-> +ev”_Ý’ed + = +TRUE +; + +323 + `Mªage_Cl›Á_O³n_IcÚ +Ð +uwšp + ); + +324 +uwšp +-> +ouut_£Á + = +TRUE +; + +325 + `Tžwš_Auto_Clo£ +( +wšp +); + +331 + `Mªage_Upd©e_IcÚs +(); + +337 +nÚÏyout_h—d + = ( +poš‹r +è + `Tžwš_Rev”£_Th»ad +(nonlayout_head); + +342  +wšp + = ( +Tžwšp +è +nÚÏyout_h—d +; wš°!ð +WIN_NULL +; + +343 +wšp + = + `Tžwš_G‘_D©a +(winp)) + +346 ià( + `Tžwš_Is_O³n +( +wšp +è!ð +TRUE +) + +349 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +350 + `Tžwš_O³n_N—»¡_In_A»a +( +wšp +, +desk»ù +, + +351 + `Tžwš_G‘_Pos™iÚ +( +wšp +), + +352 + `Tžwš_G‘_Mš +( +wšp +)); + +357 + `Tžwš_G’_Clo£d_Wšdows +(); + +358 ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL +) + +360 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +361 ià(( +uwšp +-> +wšp + == winp) && + +362 ( + `Tžwš_Was_Autom©iÿÎy_Clo£d +( +wšp +è=ð +TRUE +)) + +364 ià( +uwšp +-> +Ïyout_found + =ð +TRUE +) + +366 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +367 + `Tžwš_O³n_N—»¡_In_A»a +( +wšp +, +desk»ù +, + +368 + `Tžwš_G‘_C’‹r +( +wšp +), + +369 + `Tžwš_G‘_Size +( +wšp +)) + +374 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +375 + `Tžwš_O³n_N—»¡_In_A»a +( +wšp +, +desk»ù +, + +376 + `Tžwš_G‘_Pos™iÚ +( +wšp +), + +377 + `Tžwš_G‘_Mš +( +wšp +)) + +384 + `G‘_PtX +( +ûÁ” +) = 0; + +385 + `G‘_PtY +( +ûÁ” +) = 0; + +387  +wšp + = ( +Tžwšp +è +nÚÏyout_h—d +; wš°!ð +WIN_NULL +; + +388 +wšp + = ( +Tžwšp +è + `Tžwš_G‘_D©a +(winp)) { + +389 ià( + `Tžwš_Is_O³n +( +wšp +è=ð +TRUE +) + +391 + `G‘_PtX +( +ûÁ” +è+ðG‘_PtX( + `Tžwš_G‘_Pos™iÚ +( +wšp +)); + +392 + `G‘_PtY +( +ûÁ” +è+ðG‘_PtY( + `Tžwš_G‘_Pos™iÚ +( +wšp +)); + +393 +numb”_of_wšdows +++; + +398 if( +numb”_of_wšdows + == 0) + +400 + `Mªage_Fšish +( +TRUE +); + +404 + `G‘_PtX +( +ûÁ” +èðG‘_PtX(ûÁ”è/ +numb”_of_wšdows +; + +405 + `G‘_PtY +( +ûÁ” +èðG‘_PtY(ûÁ”è/ +numb”_of_wšdows +; + +410 +nÚÏyout_h—d + = + +411 + `Mªage_SÜt_Th»adedD©aLi¡ +( +nÚÏyout_h—d +, +ûÁ” +); + +416  +wšp + = ( +Tžwšp +è +nÚÏyout_h—d +; wš°!ð +WIN_NULL +; + +417 +wšp + = + `Tžwš_G‘_D©a +(winp)) { + +419 ià( + `Tžwš_Is_O³n +( +wšp +è=ð +FALSE +) + +422 +wšdow_ûÁ” + = + `Tžwš_G‘_Pos™iÚ +( +wšp +); + +423 + `G‘_PtX +( +quad¿Á_cÜÃr +èð(G‘_PtX( +wšdow_ûÁ” +è< G‘_PtX( +ûÁ” +))? + +424 + `G‘_LeáX +( +desk»ù +è: + `G‘_RightX +(deskrect); + +425 + `G‘_PtY +( +quad¿Á_cÜÃr +èð(G‘_PtY( +wšdow_ûÁ” +è< G‘_PtY( +ûÁ” +))? + +426 + `G‘_TÝY +( +desk»ù +è: + `G‘_BÙtomY +(deskrect); + +428 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +429 + `glob®_excursiÚ +( +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +430 + `Tžwš_O³n_N—»¡_In_A»a +( +wšp +, +desk»ù +, +quad¿Á_cÜÃr +, + +431 + `Tžwš_G‘_Mš +( +wšp +)); + +439 +nÚÏyout_h—d + = ( +poš‹r +è + `Tžwš_Rev”£_Th»ad +(nonlayout_head); + +444  +wšp + = ( +Tžwšp +è +nÚÏyout_h—d +; wš°!ð +WIN_NULL +; + +445 +wšp + = + `Tžwš_G‘_D©a +(winp)) { + +447 +Size + +Ãw_size +; + +449 ià( + `Tžwš_Is_O³n +( +wšp +è=ð +FALSE +) + +452 + `S‘_Mš_Size +( +Ãw_size +, + `Tžwš_G‘_Desœed +( +wšp +), + +453 + `Tžwš_G‘_P»vious_Size +( +wšp +)); + +455 + `G‘_Width +( +size +) = + +456 ( + `G‘_Width +( +Ãw_size +) + + +457 + `G‘_Width +( + `Tžwš_G‘_Mš +( +wšp +))) / 2; + +458 + `G‘_Height +( +size +) = + +459 ( + `G‘_Height +( +Ãw_size +) + + +460 + `G‘_Height +( + `Tžwš_G‘_Mš +( +wšp +))) / 2; + +462 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +463 + `glob®_excursiÚ +( +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +464 + `Tžwš_O³n_N—»¡_In_A»a +( +wšp +, +desk»ù +, + +465 + `Tžwš_G‘_Pos™iÚ +( +wšp +), +size +))); + +471 +nÚÏyout_h—d + = ( +poš‹r +è + `Tžwš_Rev”£_Th»ad +(nonlayout_head); + +476  +wšp + = ( +Tžwšp +è +nÚÏyout_h—d +; wš°!ð +WIN_NULL +; + +477 +wšp + = + `Tžwš_G‘_D©a +(winp)) { + +479 +Size + +Ãw_size +; + +481 ià( + `Tžwš_Is_O³n +( +wšp +è=ð +FALSE +) + +484 + `S‘_Mš_Size +( +Ãw_size +, + `Tžwš_G‘_Desœed +( +wšp +), + +485 + `Tžwš_G‘_P»vious_Size +( +wšp +)); + +487 +wšdow_ûÁ” + = + `Tžwš_G‘_Pos™iÚ +( +wšp +); + +488 + `G‘_PtX +( +quad¿Á_cÜÃr +èð(G‘_PtX( +wšdow_ûÁ” +è< G‘_PtX( +ûÁ” +))? + +489 + `G‘_LeáX +( +desk»ù +è: + `G‘_RightX +(deskrect); + +490 + `G‘_PtY +( +quad¿Á_cÜÃr +èð(G‘_PtY( +wšdow_ûÁ” +è< G‘_PtY( +ûÁ” +))? + +491 + `G‘_TÝY +( +desk»ù +è: + `G‘_BÙtomY +(deskrect); + +493 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +494 + `glob®_excursiÚ +( +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +495 + `Tžwš_O³n_N—»¡_In_A»a +( +wšp +, +desk»ù +, +quad¿Á_cÜÃr +, + +496 +Ãw_size +))); + +502 +nÚÏyout_h—d + = ( +poš‹r +è + `Tžwš_Rev”£_Th»ad +(nonlayout_head); + +507  +wšp + = ( +Tžwšp +è +nÚÏyout_h—d +; wš°!ð +WIN_NULL +; + +508 +wšp + = + `Tžwš_G‘_D©a +(winp)) { + +510 +Size + +Ãw_size +; + +512 ià( + `Tžwš_Is_O³n +( +wšp +è=ð +FALSE +) + +515 + `S‘_Max_Size +( +Ãw_size +, + `Tžwš_G‘_Desœed +( +wšp +), + +516 + `Tžwš_G‘_P»vious_Size +( +wšp +)); + +518 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +519 + `glob®_excursiÚ +( +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +520 + `Tžwš_O³n_N—»¡_In_A»a +( +wšp +, +desk»ù +, + +521 + `Tžwš_G‘_Pos™iÚ +( +wšp +), +Ãw_size +))); + +524 + `Mªage_Fšish +( +TRUE +); + +525 + } +} + +536 +poš‹r + + $Mªage_SÜt_Th»adedD©aLi¡ +( +lh—d +, +± +) + +537 +poš‹r + +lh—d +; + +538 +TWPošt + +± +; + +540 +poš‹r + +±r +; + +541 +poš‹r + +max +; + +542 +poš‹r + +max_´ev +; + +543 +poš‹r + +sÜ‹d +; + +544 +poš‹r + +unsÜ‹d +; + +545 +poš‹r + +´ev +; + +546  +max_di¡ªû +; + +548 ià( +lh—d + =ð( +poš‹r +è +NULL +) + +549 (( +poš‹r +è +NULL +); + +552 +max + = +lh—d +; + +553 +max_´ev + = ( +poš‹r +è +NULL +; + +554 +max_di¡ªû + = + `Di¡ +( + `Tžwš_G‘_Pos™iÚ +( +max +), +± +); + +556  +±r + = + `Tžwš_G‘_D©a +( +lh—d +), +´ev + =†head; + +557 +±r + !ð( +poš‹r +è +NULL +; + +558 +´ev + = +±r +,…Œ = + `Tžwš_G‘_D©a +(ptr)) { + +560 ià( + `Di¡ +( + `Tžwš_G‘_Pos™iÚ +( +±r +), +± +è> +max_di¡ªû +) { + +561 +max_di¡ªû + = + `Di¡ +( + `Tžwš_G‘_Pos™iÚ +( +±r +), +± +); + +562 +max + = +±r +; + +563 +max_´ev + = +´ev +; + +570 ià( +max_´ev + !ð( +poš‹r +è +NULL +) { + +571 + `DELETE_AFTER +( +max_´ev +); + +572 + `Tžwš_Put_D©a +( +max +, +lh—d +); + +573 +lh—d + = +max +; + +577  +sÜ‹d + = +lh—d +, +unsÜ‹d + = + `Tžwš_G‘_D©a +(lhead); + +578 +unsÜ‹d + !ð( +poš‹r +è +NULL +;) { + +580 +max + = +unsÜ‹d +; + +581 +max_´ev + = ( +poš‹r +è +NULL +; + +582 +max_di¡ªû + = + `Di¡ +( + `Tžwš_G‘_Pos™iÚ +( +max +), +± +); + +584  +±r + = + `Tžwš_G‘_D©a +( +unsÜ‹d +), +´ev + = unsorted; + +585 +±r + !ð( +poš‹r +è +NULL +; + +586 +´ev + = +±r +,…Œ = + `Tžwš_G‘_D©a +(ptr)) { + +588 ià( + `Di¡ +( + `Tžwš_G‘_Pos™iÚ +( +±r +), +± +è> +max_di¡ªû +) { + +589 +max_di¡ªû + = + `Di¡ +( + `Tžwš_G‘_Pos™iÚ +( +±r +), +± +); + +590 +max + = +±r +; + +591 +max_´ev + = +´ev +; + +595 ià( +max_´ev + =ð( +poš‹r +è +NULL +) { + +596 +sÜ‹d + = +unsÜ‹d +; + +597 +unsÜ‹d + = + `Tžwš_G‘_D©a +(unsorted); + +600 + `MOVE_NEXT +( +max_´ev +, +sÜ‹d +); + +601 +sÜ‹d + = + `Tžwš_G‘_D©a +(sorted); + +605 ( +lh—d +); + +606 + } +} + +611 + $Mªage_D‘”mše_S¹up_S‹ +( +uwšp +) + +612 +U£rwš + * +uwšp +; + +614 if( + `U£rwš_In™ŸÎy_M­³d +( +uwšp +è=ð +TRUE +) + +616 if( + `U£rwš_Wm_S‹ +( +uwšp +è=ð +Nev”S‹ + || + +617 + `U£rwš_Wm_S‹ +( +uwšp +è=ð +IgnÜeS‹ +) + +619  + `U£rwš_S‹ +( +uwšp +)) + +621  +IcÚicS‹ +: + +622 + `U£rwš_S¹up_S‹ +( +uwšp +èð +IcÚicS‹ +; + +624  +IÇùiveS‹ +: + +625 + `U£rwš_S¹up_S‹ +( +uwšp +èð +IÇùiveS‹ +; + +627  +IgnÜeS‹ +: + +628 + `U£rwš_S¹up_S‹ +( +uwšp +èð +IgnÜeS‹ +; + +631 + `U£rwš_S¹up_S‹ +( +uwšp +èð +NÜm®S‹ +; + +637 if( + `U£rwš_S‹ +( +uwšp +è=ð +IgnÜeS‹ +) + +639 + `U£rwš_S¹up_S‹ +( +uwšp +èð +IgnÜeS‹ +; + +643  + `U£rwš_Wm_S‹ +( +uwšp +)) + +645  +IcÚicS‹ +: + +646 + `U£rwš_S¹up_S‹ +( +uwšp +èð +IcÚicS‹ +; + +648  +IÇùiveS‹ +: + +649 + `U£rwš_S¹up_S‹ +( +uwšp +èð +IÇùiveS‹ +; + +651  +IgnÜeS‹ +: + +652 + `U£rwš_S¹up_S‹ +( +uwšp +èð +IgnÜeS‹ +; + +655 + `U£rwš_S¹up_S‹ +( +uwšp +èð +NÜm®S‹ +; + +661 if( + `U£rwš_In™ŸÎy_IcÚ_M­³d +( +uwšp +è=ð +TRUE +) + +663  + `U£rwš_S‹ +( +uwšp +)) + +665  +Cl›ÁIcÚS‹ +: + +666 + `U£rwš_S¹up_S‹ +( +uwšp +èð +NÜm®S‹ +; + +668  +IÇùiveS‹ +: + +669 + `U£rwš_S¹up_S‹ +( +uwšp +èð +IÇùiveS‹ +; + +671  +IgnÜeS‹ +: + +672 + `U£rwš_S¹up_S‹ +( +uwšp +èð +IgnÜeS‹ +; + +675 + `U£rwš_S¹up_S‹ +( +uwšp +èð +IcÚicS‹ +; + +681 if( + `U£rwš_Wm_S‹ +( +uwšp +è=ð +Nev”S‹ + || + +682 + `U£rwš_Wm_S‹ +( +uwšp +è=ð +IgnÜeS‹ +) + +684 + `U£rwš_S¹up_S‹ +( +uwšp +èð +IgnÜeS‹ +; + +688  + `U£rwš_S‹ +( +uwšp +)) + +690  +Cl›ÁIcÚS‹ +: + +691 + `U£rwš_S¹up_S‹ +( +uwšp +èð +Cl›ÁIcÚS‹ +; + +693  +IÇùiveS‹ +: + +694 + `U£rwš_S¹up_S‹ +( +uwšp +èð +IÇùiveS‹ +; + +697 + `U£rwš_S¹up_S‹ +( +uwšp +èð +IcÚicS‹ +; + +701 + } +} + + @mem.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)mem.c 5.3 9/1/88"; + +27  + ~"cÝyright.h +" + +29  + ~"twšI.h +" + +30  + ~"tžeP.h +" + +32  +Tžwš + * + gtžwš_ä“li¡ + = (Tžwš *) +NULL +; + +34 +Tžwš + * + +35 + $Mem_AÎoÿ‹ +() + +37 +Tžwš + * +tžwšp +; + +39 ià( +tžwš_ä“li¡ + =ð( +Tžwš + *) +NULL +) + +40 +tžwšp + = ( +Tžwš + *è + `m®loc +((Tilwin)); + +42 +tžwšp + = +tžwš_ä“li¡ +; + +43 +tžwš_ä“li¡ + = ( +Tžwš + *ètžwš_ä“li¡ -> +tž• +; + +46 ( +tžwšp +); + +47 + } +} + +50 + $Mem_D—Îoÿ‹ +( +wšp +) + +51 +Tžwš + * +wšp +; + +53 +wšp + -> +tž• + = ( +poš‹r +è +tžwš_ä“li¡ +; + +54 +tžwš_ä“li¡ + = ( +Tžwš + *è +wšp +; + +55 +wšp + = ( +Tžwš + *è +NULL +; + +56 + } +} + + @mem.h + +29 +Tžwš +* +Mem_AÎoÿ‹ +(); + +30  +Mem_D—Îoÿ‹ +(); + + @menu.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "%W% %H%"; + +27  + ~"cÝyright.h +" + +81  + ~"¹lm’uP.h +" + +82  + ~ + +83  + ~"g¿y1_32.h +" + +84  + ~"¬row_icÚ.h +" + +85  + ~"¬row_ic32.h +" + +86  + ~"check_ic32.h +" + +87  + #MakeEv’ +( +x +è((x%2 =ð0)? x : x-1) + + ) + +88  + #Inv”tPÏà + 1 + + ) + +90  + gdef_m’u_fÚt +[] = "8x13bold.snf"; + +91 +M’u + + gM’uDeçuÉ +; + +92 * + gM’uDeçuÉFÚt +; + +93  +XAssocTabË + * + gm’u_bË +; + +94  +XAssocTabË + * + g™em_bË +; + +95  +boÞ + + gbËs_š™Ÿlized + = +FALSE +; + +96 +RTLM’uI‹m + +AddM’uI‹m +(), +Di¥Ïy_M’u +(), +M’uG‘I‹m +(), + +97 +M’uI‹mByName +(), +M’uI‹mByD©a +(), +G‘In™ŸlI‹m +(), +MoveM’u +(); + +98 +boÞ + +Di¥o£I‹m +(), +S‘I‹mCheck +(), +S‘I‹mDi§bË +(), +Reÿlc_M’u +(), + +99 +S‘upI‹ms +(), +M­M’u +(), +S‘upM’uWšdow +(), +S‘I‹mText +(); + +100  +Di¥o£M’u +(), +In™M’u +(), +Undi¥Ïy_M’u +(), +M’uInv”t +(), + +101 +PÏûPoš‹r +(), +D¿w_M’u +(), +D¿w_I‹m +(), +S‘In™ŸlI‹m +(), + +102 +CˬIn™ŸlI‹m +(), +G’”©e_M’u_EÁr›s +(), +Unm­M’u +(), + +103 +S‘IÅutMask +(); + +104 +RTLM’u + +NewM’u +(), +M’uG‘M’u +(); + +105  +I‹mG‘MiddËY +(); + +114 +RTLM’uI‹m + + +115 + $AddM’uI‹m +( +m’u +) + +116 +RTLM’u + +m’u +; + +118 +RTLM’uI‹m + +m’u™em +, * +Ãxt +; + +120 if(! +m’u + || + `I‹mIsNuÎ +( +m’u™em + = ( +RTLM’uI‹m +) + `®loÿ‹ +( +M’uI‹m +, 1))) + +121 ( +NULLITEM +); + +122 + `bz”o +((*) +m’u™em +, ( +M’uI‹m +)); + +123 + `I‹mText +( +m’u™em +èð +NULL +; + +124 + `I‹mTextL’gth +( +m’u™em +) = 0; + +126  +Ãxt + = + `M’uI‹msPŒ +( +m’u +) ; + +127 * +Ãxt +;‚exˆð + `I‹mNextPŒ +(*next)); + +129 * +Ãxt + = +m’u™em +; + +131 + `S‘M’uFÏg +( +m’u +, +m’uChªged +); + +133 ( +m’u™em +); + +134 + } +} + +142 +boÞ + + +143 + $Di¥o£I‹m +( +m’u +, +™em +) + +144 +RTLM’u + +m’u +; + +145 +RTLM’uI‹m + +™em +; + +147 +RTLM’uI‹m + * +Ãxt +, * +Ï¡ +, +m’u™em +; + +149 ià( + `M’uIsNuÎ +( +m’u +è|| + `I‹mIsNuÎ +( +™em +)) + +150 ( +FALSE +); + +151 +Ãxt + = + `M’uI‹msPŒ +( +m’u +); + +154 if( + `I‹mIsNuÎ +(* +Ãxt +)) + +155 ( +FALSE +); + +156 +Ï¡ + = +Ãxt +; + +157 +Ãxt + = + `I‹mNextPŒ +(*next); + +159 (* +Ï¡ + !ð +™em +è&& ! + `I‹mIsNuÎ +(* +Ãxt +)); + +160 +m’u™em + = * +Ï¡ +; + +161 * +Ï¡ + = * +Ãxt +; + +162 ià( + `I‹mWšdow +( +m’u™em +)) { + +163 + `XD–‘eAssoc +( + `M’uDi¥Ïy +(( +M’u + *) +m’u +), + +164 +™em_bË +, + `I‹mWšdow +( +m’u™em +)); + +165 + `XDe¡royWšdow +( + `M’uDi¥Ïy +(( +M’u + *) +m’u +), + `I‹mWšdow +( +m’u™em +)); + +167 ià( + `I‹mIsIn™ŸlI‹m +( +m’u +, +m’u™em +)) + +168 + `CˬIn™ŸlI‹m +( +m’u +); + +170 + `¡r_ä“ +( + `I‹mText +( +m’u™em +)); + +171 + `ä“ +((*) +m’u™em +); + +173 + `S‘M’uFÏg +( +m’u +, +m’uChªged +); + +174 ( +TRUE +); + +175 + } +} + +181 + $Di¥o£M’u +( +m’u +) + +182 +RTLM’u + +m’u +; + +184 if(! +m’u +) + +186 ià( + `Te¡M’uFÏg +( +m’u +, +m’uM­³d +)) + +187 + `Unm­M’u +( +m’u +); + +188  + `Di¥o£I‹m +( +m’u +, + `M’uI‹ms +(menu))); + +189 if( + `M’uWšdow +( +m’u +)) { + +190 + `XD–‘eAssoc +( + `M’uDi¥Ïy +( +m’u +), +m’u_bË +, + `M’uWšdow +(( +M’u + *)menu)); + +191 + `XDe¡royWšdow +( + `M’uDi¥Ïy +( +m’u +), + `M’uWšdow +(menu)); + +193 + `XF»ePixm­ + ( + `M’uDi¥Ïy +( +m’u +), + `M’uG»yPixm­ +(menu)); + +194 + `XF»ePixm­ + ( + `M’uDi¥Ïy +( +m’u +), + `M’uA¼owPixm­ +(menu)); + +195 + `XF»ePixm­ + ( + `M’uDi¥Ïy +( +m’u +), + `M’uCheckm¬kPixm­ +(menu)); + +196 + `XF»eGC + ( + `M’uDi¥Ïy +( +m’u +), + `M’uNÜm®GC +(menu)); + +197 + `XF»eGC + ( + `M’uDi¥Ïy +( +m’u +), + `M’uInv”tGC +(menu)); + +198 + `XF»eGC + ( + `M’uDi¥Ïy +( +m’u +), + `M’uHighligh‹dGC +(menu)); + +200 ià( + `M’uHasIn™ŸlI‹m +( +m’u +)) + +201 + `CˬIn™ŸlI‹m +( +m’u +); + +202 + `ä“ +((*è +m’u +); + +203 + } +} + +206 + $In™M’u +( +Çme +, +ÝtiÚs +, +di¥Ïy +) + +207 * +Çme +; + +208 +RTLM’uO±iÚsMask + +ÝtiÚs +; + +209 +Di¥Ïy + * +di¥Ïy +; + +211 * +ý +; + +213 +M’uDeçuÉ +. +di¥Ïy + = display; + +214 +M’uDeçuÉ +. +m’uFÏgs + = +m’uChªged +; + +216 +M’uDeçuÉ +. +m’uIn™ŸlI‹mText + = (*è +NULL +; + +217 +M’uDeçuÉ +. +m’uBÜd”Width + = + +218 ( +ý + = + `XG‘DeçuÉ +( +M’uDeçuÉ +. +di¥Ïy +, +Çme +, "MenuBorder")) ? + +219 + `©oi +( +ý +) : 1; + +220 +M’uDeçuÉ +. +m’uI‹mPad + = + +221 ( +ý + = + `XG‘DeçuÉ +( +M’uDeçuÉ +. +di¥Ïy +, +Çme +, "M’uPad")è? + `©oi +(cp) : 3; + +222 +M’uDeçuÉ +. +d– + = +DeçuÉ_D– +; + +223 +M’uDeçuÉFÚt + = + +224 ( +ý + = + `XG‘DeçuÉ +( +M’uDeçuÉ +. +di¥Ïy +, +Çme +, "MenuFont")) ? + +225 +ý + : +def_m’u_fÚt +; + +226 +M’uDeçuÉ +. +m’uO±iÚs + = +ÝtiÚs +; + +227 + } +} + +232 +boÞ + + +233 + $S‘I‹mText +( +m’u +, +™em +, +‹xt +) + +234 +RTLM’u + +m’u +; + +235 +RTLM’uI‹m + +™em +; + +236 * +‹xt +; + +238 ià( + `¡»ql +( + `I‹mText +( +™em +), +‹xt +)) + +239  ( +TRUE +); + +241 + `¡r_»¶aû +( + `I‹mText +( +™em +), +‹xt +); + +243 + `I‹mTextL’gth +( +™em +èð + `¡r_Ëngth +( +‹xt +); + +244 + `S‘M’uFÏg +( +m’u +, +m’uChªged +); + +246 (è + `Reÿlc_M’u + ( +m’u +); + +247 ( +TRUE +); + +248 + } +} + +254 +RTLM’u + + +255 + $NewM’u +( +di¥Ïy +, +sü“n +, +»v”£ +) + +256 +Di¥Ïy + * +di¥Ïy +; + +257  +sü“n +; + +258  +»v”£ +; + +260 +Pixm­ + + `MakeG»ySt¶e + (); + +261 +RTLM’u + +m’u +; + +263 +XGCV®ues + +gcV®ues +, +šv”tGCV®ues +; + +264  +gcMask + = + +265 +GCFunùiÚ + | +GCFÜeground + | +GCBackground + | +GCFÚt + | +GCSt¶e +; + +266  +šv”tgcMask + = +GCFÚt + | +GCFunùiÚ + | +GCFÜeground +; + +269 if( + `M’uIsNuÎ +(( +m’u + = ( +RTLM’u +) + `®loÿ‹ +( +M’u +, 1)))) + +270 ( +NULLMENU +); + +273 *( +M’u + *) +m’u + = +M’uDeçuÉ +; + +276 + `M’uDi¥Ïy +( +m’u +èð +di¥Ïy +; + +277 + `M’uSü“n +( +m’u +èð +sü“n +; + +280 + `M’uFÚtInfo +( +m’u +èð + `XLßdQu”yFÚt + ( +di¥Ïy +, +M’uDeçuÉFÚt +); + +281 +gcV®ues +. +fÚt + = + `M’uFÚtInfo +( +m’u +)-> +fid +; + +284 + `M’uCursÜ +( +m’u +èð + `XC»©eFÚtCursÜ + ( + `M’uDi¥Ïy +(m’u), +XC_right_±r +); + +287 + `M’uA¼owPixm­ +( +m’u +èð + `XC»©eB™m­FromD©a + ( + `M’uDi¥Ïy +(menu), + +288 + `RoÙWšdow + ( +di¥Ïy +, +sü“n +), + +289 +¬row_32_b™s +, + +290 +¬row_32_width +, + +291 +¬row_32_height +); + +292 + `M’uG»yPixm­ +( +m’u +èð + `XC»©eB™m­FromD©a + ( +di¥Ïy +, + +293 + `RoÙWšdow + ( +di¥Ïy +, +sü“n +), + +294 +g¿y1_32_b™s +, + +295 +g¿y1_32_width +, + +296 +g¿y1_32_height +); + +297 + `M’uCheckm¬kPixm­ +( +m’u +èð + `XC»©eB™m­FromD©a + ( + `M’uDi¥Ïy +(menu), + +298 + `RoÙWšdow + ( +di¥Ïy +, +sü“n +), + +299 +check_32_b™s +, + +300 +check_32_width +, + +301 +check_32_height +); + +306 if( +»v”£ +) { + +307 +gcV®ues +. +fÜeground + = + `Wh™ePix– + ( +di¥Ïy +, +sü“n +); + +308 +gcV®ues +. +background + = + `BÏckPix– + ( +di¥Ïy +, +sü“n +); + +310 +gcV®ues +. +fÜeground + = + `BÏckPix– + ( +di¥Ïy +, +sü“n +); + +311 +gcV®ues +. +background + = + `Wh™ePix– + ( +di¥Ïy +, +sü“n +); + +313 +gcV®ues +. +¡¶e + = + `M’uG»yPixm­ +( +m’u +); + +314 +gcV®ues +. +funùiÚ + = +GXcÝy +; + +315 +gcV®ues +. +subwšdow_mode + = +InþudeInãriÜs +; + +316 +gcV®ues +. +g¿phics_exposu»s + = +F®£ +; + +317 + `M’uNÜm®GC +( +m’u +) = + +318 + `XC»©eGC + ( +di¥Ïy +, + `RoÙWšdow + (di¥Ïy, +sü“n +), + +319 +gcMask + | +GCSubwšdowMode + | +GCG¿phicsExposu»s +, & +gcV®ues +); + +320 +šv”tGCV®ues + = +gcV®ues +; + +321 +šv”tGCV®ues +. +fÜeground + = +gcV®ues +. +background +; + +322 +šv”tGCV®ues +. +background + = +gcV®ues +. +fÜeground +; + +323 + `M’uHighligh‹dGC +( +m’u +èð + `XC»©eGC + ( +di¥Ïy +, + `RoÙWšdow + (di¥Ïy, +sü“n +), + +324 +gcMask +, & +šv”tGCV®ues +); + +326 +gcV®ues +. +funùiÚ + = +GXxÜ +; + +327 +gcV®ues +. +fÜeground + = + `BÏckPix– +( + `M’uDi¥Ïy +( +m’u +), + `M’uSü“n +(menu)) ^ + +328 + `Wh™ePix– +( + `M’uDi¥Ïy +( +m’u +), + `M’uSü“n +(menu)); + +329 + `M’uInv”tGC +( +m’u +èð + `XC»©eGC + ( +di¥Ïy +, + `RoÙWšdow + (di¥Ïy, +sü“n +), + +330 +šv”tgcMask +, & +gcV®ues +); + +332 ( +m’u +); + +333 + } +} + +338 +boÞ + + +339 + $S‘I‹mCheck +( +m’u +, +™em +, +¡©e +) + +340 +RTLM’u + +m’u +; + +341 +RTLM’uI‹m + +™em +; + +342  +¡©e +; + +344 ià( + `Te¡I‹mFÏg +( +™em +, +™emChecked +) + +345 =ð +¡©e +) + +346  ( +True +); + +348 ià( +¡©e +) + +349 + `S‘I‹mFÏg +( +™em +, +™emChecked +); + +351 + `Re£tI‹mFÏg +( +™em +, +™emChecked +); + +353 + `S‘I‹mFÏg +( +™em +, +™emChªged +); + +354 + `S‘M’uFÏg +( +m’u +, +m’uI‹mChªged +); + +356 ( +TRUE +); + +357 + } +} + +362 +boÞ + + +363 + $S‘I‹mDi§bË +( +m’u +, +™em +, +¡©e +) + +364 +RTLM’u + +m’u +; + +365 +RTLM’uI‹m + +™em +; + +366  +¡©e +; + +368 ià( + `Te¡I‹mFÏg +( +™em +, +™emDi§bËd +è=ð +¡©e +) + +369  ( +True +); + +371 if( +¡©e +) + +373 + `S‘I‹mFÏg +( +™em +, +™emDi§bËd +); + +375 ià( + `I‹mIsIn™ŸlI‹m +( +m’u +, +™em +)) + +376 + `CˬIn™ŸlI‹m +( +m’u +); + +379 + `Re£tI‹mFÏg +( +™em +, +™emDi§bËd +); + +381 + `S‘I‹mFÏg +( +™em +, +™emChªged +); + +382 + `S‘M’uFÏg +( +m’u +, +m’uI‹mChªged +); + +384 ( +TRUE +); + +385 + } +} + +387 +RTLM’uI‹m + + +388 + $Di¥Ïy_M’u +( +m’u +, +·»Á +, +x +, +y +) + +389 +RTLM’u + +m’u +; + +390 +RTLM’u + +·»Á +; + +391  +x +; + +392  +y +; + +394 +RTLM’uI‹m + +™em +; + +396 ià( + `M’uIsNuÎ +( +m’u +)) + +397 ( +FALSE +); + +399 + `S‘M’uP¬’t +( +m’u +, +·»Á +); + +401 ià( + `M’uIsNuÎ +( +·»Á +)) + +402 + `M’uNe¡ed +( +m’u +) = 0; + +404 + `M’uNe¡ed +( +m’u +èðM’uNe¡ed( +·»Á +) + 1; + +406 ià(! + `S‘upM’uWšdow +( +m’u +)) + +407  +NULL +; + +408 ià( + `Te¡O±iÚFÏg +( +m’u +, +§veb™s +) && + +409 ( + `M’uSavedPixm­ +( +m’u +è!ð( +Pixm­ +) 0)) + +410 + `S‘IÅutMask +( +m’u +, +M’uIgnÜeMask +); + +412 + `S‘IÅutMask +( +m’u +, +M’uExposu»Mask +); + +414 + `G’”©e_M’u_EÁr›s +( +m’u +); + +415 ià(!( +™em + = + `MoveM’u +( +m’u +, +x +, +y +)è|| ! + `M­M’u +(menu)) + +416  +FALSE +; + +418 + `D¿w_M’u +( +m’u +); + +420 ( +™em +); + +421 + } +} + +424 + $Undi¥Ïy_M’u +( +m’u +) + +425 +RTLM’u + +m’u +; + +427 ià( + `M’uIsNuÎ +( +m’u +)) + +430 + `S‘M’uP¬’t +( +m’u +, +NULLMENU +); + +431 + `M’uNe¡ed +( +m’u +) = 0; + +433 + `Unm­M’u +( +m’u +); + +434 + } +} + +437 + $M’uInv”t +( +m’u +, +w +) + +438 +RTLM’u + +m’u +; + +439 +Wšdow + +w +; + +441 + `XFžlReùªgË + ( + `M’uDi¥Ïy +( +m’u +), + +442 +w +, + +443 + `M’uInv”tGC +( +m’u +), + +445 + `M’uWidth +( +m’u +), + +446 + `M’uI‹mHeight +( +m’u +)); + +447 + } +} + +452  +boÞ + + +453 + $Reÿlc_M’u +( +m’u +) + +454 +RTLM’u + +m’u +; + +456 +RTLM’uI‹m + +™em +; + +457  +max +, +height +, +fÚtheight +; + +462 if(! + `M’uFÚtInfo +( +m’u +)) + +463 ( +FALSE +); + +467 +fÚtheight + = + `M’uFÚtInfo +( +m’u +)-> +asûÁ + + M’uFÚtInfo(m’u)-> +desûÁ + + 2; + +468 +height + = 0; + +469 + `M’uMaxTextWidth +( +m’u +) = 0; + +474 +max + = +fÚtheight +; + +475 if( +checkM¬kHeight + > +max +) + +476 +max + = +checkM¬kHeight +; + +478 +max + +ð2* +I‹mBÜd” +; + +479 +max + = + `MakeEv’ +(max); + +480 + `M’uI‹mHeight +( +m’u +èð +max +; + +485  +™em + = + `M’uI‹ms +( +m’u +) ; item ; + +486 +™em + = + `I‹mNext +(item)) + +488 +height + +ð +max +; + +493 if(( + `I‹mTextWidth +( +™em +) = + +494 + `XTextWidth +( + `M’uFÚtInfo +( +m’u +), + +495 + `I‹mText +( +™em +), + +496 + `¡r_Ëngth + ( + `I‹mText +( +™em +)))) + +497 > + `M’uMaxTextWidth +( +m’u +)) + +498 + `M’uMaxTextWidth +( +m’u +èð + `I‹mTextWidth +( +™em +); + +503 + `M’uHeight +( +m’u +èð +height +; + +504 + `M’uWidth +( +m’u +èð4 * + `M’uI‹mPad +(m’uè+ + `M’uMaxTextWidth +(menu) + + +505 +checkM¬kWidth + + +¬row_width + + (2 * +I‹mBÜd” +); + +506 + `M’uI‹mWidth +( +m’u +èð + `M’uWidth +(m’uè- (2 * +I‹mBÜd” +); + +507 ( +TRUE +); + +508 + } +} + +515  +RTLM’uI‹m + + +516 + $MoveM’u +( +m’u +, +ev_x +, +ev_y +) + +517 +RTLM’u + +m’u +; + +518  +ev_x +, +ev_y +; + +520  +x +, +y +; + +521  +tÙ®_width +, +tÙ®_height +; + +522  +off£t +; + +523 +RTLM’uI‹m + +™em +; + +528 +tÙ®_width + = + `M’uWidth +( +m’u +è+ 2 * + `M’uBÜd”Width +(menu); + +529 +tÙ®_height + = + `M’uHeight +( +m’u +è+ 2 * + `M’uBÜd”Width +(menu); + +530 +x + = +ev_x + - + `M’uI‹mPad +( +m’u +); + +531 +y + = +ev_y + - + `M’uI‹mHeight +( +m’u +)/2; + +532 ià( +x + < 0) + +533 +x + = 0; + +534 ià( + `Te¡O±iÚFÏg +( +m’u +, +rightoff£t +) && + +535 ! + `M’uIsNuÎ +( + `M’uP¬’t +( +m’u +))) + +540 ià( + `Te¡O±iÚFÏg +( +m’u +, +bigoff£t +)) + +542 ià( + `M’uX +( + `M’uP¬’t +( +m’u +)è+ + `M’uWidth +(MenuParent(menu)) > + +543 + `Di¥ÏyWidth +( + `M’uDi¥Ïy +( +m’u +), + `M’uSü“n +(m’u)è- +tÙ®_width +) + +544 +x + = + `M’uX +( + `M’uP¬’t +( +m’u +)) + +545 - +tÙ®_width + + 2* + `M’uBÜd”Width +( +m’u +); + +549 ià( + `M’uX +( + `M’uP¬’t +( +m’u +)è+ + `M’uD– +(MenuParent(menu)) > + +550 + `Di¥ÏyWidth +( + `M’uDi¥Ïy +( +m’u +), + `M’uSü“n +(m’u)è- +tÙ®_width +) + +552 +x + = ( + `M’uX +( + `M’uP¬’t +( +m’u +)è+ + `M’uWidth +(MenuParent(menu)) + + +553 2 * + `M’uBÜd”Width +( + `M’uP¬’t +( +m’u +)) + +554 - +tÙ®_width + - + `M’uD– +( +m’u +)); + +558 ià( +x + + +tÙ®_width + > + `Di¥ÏyWidth +( + `M’uDi¥Ïy +( +m’u +), + `M’uSü“n +(menu))) + +559 +x + = + `Di¥ÏyWidth +( + `M’uDi¥Ïy +( +m’u +), + `M’uSü“n +(menu)) + +560 - +tÙ®_width +; + +566 if( + `M’uHasIn™ŸlI‹m +( +m’u +)) { + +571 +y + = +ev_y +; + +572 +off£t + = + `M’uBÜd”Width +( +m’u +); + +573  +™em + = + `M’uI‹ms +( +m’u +) ; ;) { + +577 if( + `I‹mIsIn™ŸlI‹m +( +m’u +, +™em +)) { + +578 +off£t + +ð + `M’uI‹mHeight +( +m’u +) / 2; + +579 +y + -ð +off£t +; + +582 +off£t + +ð + `M’uI‹mHeight +( +m’u +); + +587 if(!( +™em + = + `I‹mNext +(item))) { + +588 + `CˬIn™ŸlI‹m +( +m’u +); + +589 +y + = +ev_y + - + `M’uI‹mHeight +( +m’u +)/2; + +590  +noIn™Ÿl +; + +594 +noIn™Ÿl +: + +595 ià( +y + < 0) + +596 +y + = 0; + +597 ià( +y + + +tÙ®_height + > + +598 + `Di¥ÏyHeight +( + `M’uDi¥Ïy +( +m’u +), + `M’uSü“n +(menu))) + +600 +y + = + `Di¥ÏyHeight +( + `M’uDi¥Ïy +( +m’u +), + `M’uSü“n +(menu)) + +601 - ( +tÙ®_height + + 1); + +603 +y + = + `MakeEv’ +(y) + 1; + +604 ià(( +x + !ð +ev_x +è|| ( +y + !ð +ev_y +)) + +605 + `XMoveWšdow +( + `M’uDi¥Ïy +( +m’u +), + `M’uWšdow +(m’u), +x +, +y +); + +606 + `M’uX +( +m’u +èð +x +; + +607 + `M’uY +( +m’u +èð +y +; + +609 ià(! + `I‹mIsIn™ŸlI‹m +( +m’u +, +™em +)) + +610 +™em + = + `M’uI‹ms +( +m’u +); + +611 ( +™em +); + +612 + } +} + +615 +boÞ + + $M­M’u +( +m’u +) + +616 +RTLM’u + +m’u +; + +618 ià(! + `Te¡M’uFÏg +( +m’u +, +m’uM­³d +)) + +619 + `Re£tM’uI‹mHighligh‹d +( +m’u +); + +620 ià( + `Te¡O±iÚFÏg +( +m’u +, +§veb™s +)) + +622 ià(( + `M’uSavedPixm­ +( +m’u +è=ð( +Pixm­ +) 0) || + +623 ( + `M’uOldWidth +( +m’u +è!ð + `M’uWidth +(menu)) || + +624 ( + `M’uOldHeight +( +m’u +è!ð + `M’uHeight +(menu)) || + +625 ( + `M’uOldBÜd”Width +( +m’u +è!ð + `M’uBÜd”Width +(menu))) + +627 ià( + `M’uSavedPixm­ +( +m’u +è!ð( +Pixm­ +) 0) + +628 + `XF»ePixm­ +( + `M’uDi¥Ïy +( +m’u +), + `M’uSavedPixm­ +(menu)); + +629 + `M’uSavedPixm­ +( +m’u +) = + +630 + `XC»©ePixm­ +( + `M’uDi¥Ïy +( +m’u +), + +631 + `RoÙWšdow +( + `M’uDi¥Ïy +( +m’u +), + `M’uSü“n +(menu)), + +632 + `M’uWidth +( +m’u +è+ 2* + `M’uBÜd”Width +(menu), + +633 + `M’uHeight +( +m’u +è+ 2* + `M’uBÜd”Width +(menu), + +634 + `DeçuÉD•th +( + `M’uDi¥Ïy +( +m’u +), + `M’uSü“n +(menu))); + +635 + `M’uOldWidth +( +m’u +èð + `M’uWidth +(menu); + +636 + `M’uOldHeight +( +m’u +èð + `M’uHeight +(menu); + +637 + `M’uOldBÜd”Width +( +m’u +èð + `M’uBÜd”Width +(menu); + +640 + `S‘IÅutMask +( +m’u +, +M’uExposu»Mask +); + +642 ià( + `M’uSavedPixm­ +( +m’u +è!ð( +Pixm­ +) 0) { + +643 + `S‘IÅutMask +( +m’u +, +M’uIgnÜeMask +); + +644 + `XCÝyA»a +( + `M’uDi¥Ïy +( +m’u +), + +645 + `RoÙWšdow +( + `M’uDi¥Ïy +( +m’u +), + `M’uSü“n +(menu)), + +646 + `M’uSavedPixm­ +( +m’u +), + +647 + `M’uNÜm®GC +( +m’u +), + +648 + `M’uX +( +m’u +), + +649 + `M’uY +( +m’u +), + +650 (è( + `M’uWidth +( +m’u +è+ 2* + `M’uBÜd”Width +(menu)), + +651 (è( + `M’uHeight +( +m’u +è+ 2* + `M’uBÜd”Width +(menu)), + +655 + `S‘IÅutMask +( +m’u +, +M’uExposu»Mask +); + +657 + `XRai£Wšdow +( + `M’uDi¥Ïy +( +m’u +), + `M’uWšdow +(menu)); + +658 + `XM­Wšdow +( + `M’uDi¥Ïy +( +m’u +), + `M’uWšdow +(menu)); + +659 + `S‘M’uFÏg +( +m’u +, +m’uM­³d +); + +660 ( +TRUE +); + +661 + } +} + +664 + $PÏûPoš‹r +( +m’u +, +™em +) + +665 +RTLM’u + +m’u +; + +666 +RTLM’uI‹m + +™em +; + +668  +y +; + +670 +y + = + `I‹mG‘MiddËY +( +™em +); + +671 + `XW¬pPoš‹r +( + `M’uDi¥Ïy +( +m’u +), +NÚe +, + +672 + `RoÙWšdow +( + `M’uDi¥Ïy +( +m’u +), + `M’uSü“n +(menu)), + +674 + `M’uX +( +m’u +è+ + `M’uI‹mPad +(m’u), +y +); + +675 + } +} + +677  + $Adju¡Poš‹r +( +m’u +, +x +, +y +) + +678 +RTLM’u + +m’u +; + +679  +x +, +y +; + +681 ià( +y + == 0) + +682 + `XW¬pPoš‹r +( + `M’uDi¥Ïy +( +m’u +), +NÚe +, + +683 + `RoÙWšdow +( + `M’uDi¥Ïy +( +m’u +), + `M’uSü“n +(menu)), + +684 0, 0, 0, 0, +x +, 1); + +685 ià( +y + =ð( + `Di¥ÏyHeight +( + `M’uDi¥Ïy +( +m’u +), + +686 + `M’uSü“n +( +m’u +)) - 1)) + +687 + `XW¬pPoš‹r +( + `M’uDi¥Ïy +( +m’u +), +NÚe +, + +688 + `RoÙWšdow +( + `M’uDi¥Ïy +( +m’u +), + `M’uSü“n +(menu)), + +690 +x +, + `Di¥ÏyHeight +( + `M’uDi¥Ïy +( +m’u +), + +691 + `M’uSü“n +( +m’u +)) - 2); + +692 + } +} + +697 + $G’”©e_M’u_EÁr›s + ( +m’u +) + +698 +RTLM’u + +m’u +; + +700 +RTLM’uI‹m + +™em +; + +701  +™em + = + `M’uI‹ms +( +m’u +); i‹m; (™em = + `I‹mNext +(item))) { + +702 ià( + `I‹mG’”©Ü +( +™em +)) { + +703 * +ÃwText +; + +705 ( + `I‹mG’”©Ü +( +™em +)è(& +ÃwText +, & + `I‹mC®lback +(item)); + +706 + `S‘I‹mText + ( +m’u +, +™em +, +ÃwText +); + +709 ià( + `I‹mCheck´oc +( +™em +)) + +710 + `S‘I‹mCheck + ( +m’u +, +™em +, ( + `I‹mCheck´oc +(item))(menu,item)); + +712 (è + `S‘upM’uWšdow + ( +m’u +); + +713 + } +} + +717 + $D¿w_M’u +( +m’u +) + +718 +RTLM’u + +m’u +; + +720 +RTLM’uI‹m + +™em +; + +722 + `Re£tM’uFÏg +( +m’u +, +m’uChªged +); + +725  +™em + = + `M’uI‹ms +( +m’u +è; i‹m ; i‹m = + `I‹mNext +(item)) { + +726 ià( + `Te¡O±iÚFÏg +( +m’u +, +§veb™s +)) + +729 + `D¿w_I‹m +( +m’u +, +™em +, 0, 0, () + `M’uWidth +(m’u),() + `M’uI‹mHeight +(menu)); + +732 + } +} + +738 + $D¿w_I‹m +( +m’u +, +™em +, +fžl_x +, +fžl_y +, +fžl_width +, +fžl_height +) + +739 +RTLM’u + +m’u +; + +740 +RTLM’uI‹m + +™em +; + +741  +fžl_x +, +fžl_y +, +fžl_width +, +fžl_height +; + +743  +y +; + +744  +x + = + `M’uI‹mPad +( +m’u +); + +745  +x1 + = 2 * + `M’uI‹mPad +( +m’u +è+ +checkM¬kWidth +; + +746  +·d +; + +747  +high +; + +748 +XGCV®ues + +gcV®ues +; + +750 ià( + `Te¡I‹mFÏg +( +™em +, +™emDi§bËd +)) + +752 +gcV®ues +. +fžl_¡yË + = +FžlO·queSt¶ed +; + +753 + `XChªgeGC +( + `M’uDi¥Ïy +( +m’u +), + `M’uNÜm®GC +(menu), + +754 ( +GCFžlStyË +), & +gcV®ues +); + +757 +high + = ( + `M’uI‹mHighligh‹d +( +m’u +è=ð +™em +); + +759 ià( +high +) + +761 + `XS‘FunùiÚ +( + `M’uDi¥Ïy +( +m’u +), + `M’uNÜm®GC +(m’u), +GX£t +); + +762 + `XFžlReùªgË +( + `M’uDi¥Ïy +( +m’u +), + `I‹mWšdow +( +™em +), + +763 + `M’uNÜm®GC +( +m’u +), +fžl_x +, +fžl_y +, + +764 +fžl_width +, +fžl_height +); + +765 + `XS‘FunùiÚ +( + `M’uDi¥Ïy +( +m’u +), + `M’uNÜm®GC +(m’u), +GXcÝyInv”‹d +); + +768 + `XCˬA»a +( + `M’uDi¥Ïy +( +m’u +), + `I‹mWšdow +( +™em +), + +769 +fžl_x +, +fžl_y +, +fžl_width +, +fžl_height +, +F®£ +); + +774 if( + `Te¡I‹mFÏg +( +™em +, +™emChecked +)){ + +775 + `XCÝyPÏà + ( + `M’uDi¥Ïy +( +m’u +), + `M’uCheckm¬kPixm­ +(menu), + +776 + `I‹mWšdow +( +™em +), + +777 + `M’uNÜm®GC +( +m’u +), + +778 0, 0, +check_32_width +, +check_32_height +, + +779 (è +x +, ( + `M’uI‹mHeight +( +m’u +è- +checkM¬kHeight +) / 2, + +784 if( + `I‹mSubm’u +( +™em +)) { + +785 + `XCÝyPÏà + ( + `M’uDi¥Ïy +( +m’u +), + `M’uA¼owPixm­ +(menu), + +786 + `I‹mWšdow +( +™em +), + +787 + `M’uNÜm®GC +( +m’u +), + +789 +¬row_32_width +, +¬row_32_height +, + +790 (è( +x + + + `M’uI‹mWidth +( +m’u +) - + +791 +¬row_width + - + `M’uI‹mPad +( +m’u +)), + +792 ( + `M’uI‹mHeight +( +m’u +è- +¬row_height +) / 2 - 1, + +798 +·d + = ( + `M’uI‹mHeight +( +m’u +) - + +799 ( + `M’uFÚtInfo +( +m’u +)-> +asûÁ + + M’uFÚtInfo(m’u)-> +desûÁ +)) / 2; + +800 +y + = + `M’uI‹mHeight +( +m’u +è- +·d + - + `M’uFÚtInfo +(m’u)-> +desûÁ +; + +802 + `XD¿wSŒšg + ( + `M’uDi¥Ïy +( +m’u +), + `I‹mWšdow +( +™em +), + +803 ( +high +? + `M’uHighligh‹dGC +( +m’u +è: + `M’uNÜm®GC +(menu)), + +804 +x1 +, +y +, + `I‹mText +( +™em +), + `I‹mTextL’gth +(item)); + +805 ià( +high +) + +806 + `XS‘FunùiÚ +( + `M’uDi¥Ïy +( +m’u +), + `M’uNÜm®GC +(m’u), +GXcÝy +); + +807 ià( + `Te¡I‹mFÏg +( +™em +, +™emDi§bËd +)) + +809 +gcV®ues +. +fžl_¡yË + = +FžlSÞid +; + +810 + `XChªgeGC +( + `M’uDi¥Ïy +( +m’u +), + `M’uNÜm®GC +(menu), + +811 ( +GCFžlStyË +), & +gcV®ues +); + +814 + } +} + +820 + $Unm­M’u +( +m’u +) + +821 +RTLM’u + +m’u +; + +823 if(! +m’u + || !( + `Te¡M’uFÏg +(m’u, +m’uM­³d +))) + +825 + `XUnm­Wšdow +( + `M’uDi¥Ïy +( +m’u +), + `M’uWšdow +(menu)); + +828 ià( + `Te¡O±iÚFÏg +( +m’u +, +§veb™s +)) + +830 ià( + `M’uSavedPixm­ +( +m’u +)) + +831 + `XCÝyA»a + ( + `M’uDi¥Ïy +( +m’u +), + +832 + `M’uSavedPixm­ +( +m’u +), + +833 + `RoÙWšdow + ( + `M’uDi¥Ïy +( +m’u +), + `M’uSü“n +(menu)), + +834 + `M’uNÜm®GC +( +m’u +), + +836 + `M’uWidth +( +m’u +è+ 2* + `M’uBÜd”Width +(menu), + +837 + `M’uHeight +( +m’u +è+ 2* + `M’uBÜd”Width +(menu), + +838 + `M’uX +( +m’u +), + `M’uY +(menu)); + +842 + `Re£tM’uFÏg +( +m’u +, +m’uM­³d +); + +843 + } +} + +845  +boÞ + + +846 + $S‘upM’uWšdow + ( +m’u +) + +847 +RTLM’u + +m’u +; + +849  +chªged + = + `Te¡M’uFÏg +( +m’u +, ( +m’uChªged + | +m’uI‹mChªged +)); + +851 ià( +bËs_š™Ÿlized + =ð +FALSE +) { + +852 +bËs_š™Ÿlized + = +TRUE +; + +853 ià(( +m’u_bË + = + `XC»©eAssocTabË +( +M’u_TabË_Size +)) + +854 =ð( +XAssocTabË + *è +NULL +) + +855  +FALSE +; + +856 ià(( +™em_bË + = + `XC»©eAssocTabË +( +I‹m_TabË_Size +)) + +857 =ð( +XAssocTabË + *è +NULL +) + +858  +FALSE +; + +866 if( +chªged + & +m’uChªged +) { + +867 if(! + `Reÿlc_M’u +( +m’u +)) + +868  +FALSE +; + +869 +chªged + &ð~ +m’uI‹mChªged +; + +872 if(! + `M’uWšdow +( +m’u +)) { + +873  +v®uemask + = + +874 +CWOv”rideRedœeù + | +CWBÜd”Pix– + | +CWBackPix– +; + +875 +XS‘WšdowA‰ribu‹s + +©Œibu‹s +; + +877 +©Œibu‹s +. +ov”ride_»dœeù + = +True +; + +878 +©Œibu‹s +. +bÜd”_pix– + = + +879 + `XBÏckPix– + ( + `M’uDi¥Ïy +( +m’u +), + `M’uSü“n +(menu)); + +880 +©Œibu‹s +. +background_pix– + = + +881 + `XWh™ePix– + ( + `M’uDi¥Ïy +( +m’u +), + `M’uSü“n +(menu)); + +883 if(( + `M’uWšdow +( +m’u +) = + +884 + `XC»©eWšdow +( + `M’uDi¥Ïy +( +m’u +), + +885 + `RoÙWšdow + ( + `M’uDi¥Ïy +( +m’u +), + +886 + `M’uSü“n +( +m’u +)), + +888 + `M’uWidth +( +m’u +), + `M’uHeight +(menu), + +889 + `M’uBÜd”Width +( +m’u +), + +890 + `DeçuÉD•th +( + `M’uDi¥Ïy +( +m’u +), + +891 + `M’uSü“n +( +m’u +)), + +892 +IÅutOuut +, + +893 + `DeçuÉVisu® +( + `M’uDi¥Ïy +( +m’u +), + +894 + `M’uSü“n +( +m’u +)), + +895 +v®uemask +, & +©Œibu‹s +) + +896 è=ð( +Wšdow +)0) + +897  +FALSE +; + +898 ià( + `S‘upI‹ms +( +m’u +è=ð +FALSE +) + +899  +FALSE +; + +901 + `XMakeAssoc +( + `M’uDi¥Ïy +( +m’u +), +m’u_bË +, + `M’uWšdow +(menu), + +902 (*è +m’u +); + +903 + `XM­Subwšdows +( + `M’uDi¥Ïy +( +m’u +), + `M’uWšdow +(menu)); + +905 + `XDefšeCursÜ +( + `M’uDi¥Ïy +( +m’u +), + `M’uWšdow +(menu), + +906 + `M’uCursÜ +( +m’u +)); + +908 if( +chªged + & +m’uChªged +) { + +909 + `XResizeWšdow +( + `M’uDi¥Ïy +( +m’u +), + `M’uWšdow +(menu), + +910 + `M’uWidth +( +m’u +), + `M’uHeight +(menu)); + +911 ià( + `S‘upI‹ms +( +m’u +è=ð +FALSE +) + +912  +FALSE +; + +913 + `XM­Subwšdows +( + `M’uDi¥Ïy +( +m’u +), + `M’uWšdow +(menu)); + +916  +TRUE +; + +917 + } +} + +919  +boÞ + + +920 + $S‘upI‹ms +( +m’u +) + +921 +RTLM’u + +m’u +; + +923  +y +; + +924 +RTLM’uI‹m + +™em +; + +925  +chªged + = + `Te¡M’uFÏg +( +m’u +, ( +m’uChªged + | +m’uI‹mChªged +)); + +927  +™em + = + `M’uI‹ms +( +m’u +), +y + = 0; + +928 +™em +; + +929 +y + +ð + `M’uI‹mHeight +( +m’u +), +™em + = + `I‹mNext +(item)) { + +930 ià(! + `I‹mWšdow +( +™em +)) { + +931  +v®uemask + = + +932 +CWOv”rideRedœeù + | +CWBÜd”Pix– + | +CWBackPix– +; + +933 +XS‘WšdowA‰ribu‹s + +©Œibu‹s +; + +934 +©Œibu‹s +. +ov”ride_»dœeù + = +True +; + +935 +©Œibu‹s +. +bÜd”_pix– + = + +936 + `XBÏckPix– + ( + `M’uDi¥Ïy +( +m’u +), + `M’uSü“n +(menu)); + +937 +©Œibu‹s +. +background_pix– + = + +938 + `XWh™ePix– + ( + `M’uDi¥Ïy +( +m’u +), + `M’uSü“n +(menu)); + +940 if(( + `I‹mWšdow +( +™em +) = + +941 + `XC»©eWšdow +( + `M’uDi¥Ïy +( +m’u +), + +942 + `M’uWšdow +( +m’u +), + +943 0, +y +, + +944 + `M’uI‹mWidth +( +m’u +), + +945 + `M’uI‹mHeight +( +m’u +)-(2 * +I‹mBÜd” +), + +946 +I‹mBÜd” +, + +947 + `DeçuÉD•th +( + `M’uDi¥Ïy +( +m’u +), + +948 + `M’uSü“n +( +m’u +)), + +949 +IÅutOuut +, + +950 + `DeçuÉVisu® +( + `M’uDi¥Ïy +( +m’u +), + +951 + `M’uSü“n +( +m’u +)), + +952 +v®uemask +, & +©Œibu‹s +) + +953 è=ð( +Wšdow +) 0) + +954  +FALSE +; + +955 + `S‘I‹mM’u +( +™em +, +m’u +); + +956 + `XMakeAssoc +( + `M’uDi¥Ïy +( +m’u +), +™em_bË +, + `I‹mWšdow +( +™em +), + +957 (*è +™em +); + +958 + `XDefšeCursÜ +( + `M’uDi¥Ïy +( +m’u +), + `I‹mWšdow +( +™em +), + +959 + `M’uCursÜ +( +m’u +)); + +961 if( +chªged + & +m’uChªged +) { + +962 + `XResizeWšdow +( + `M’uDi¥Ïy +( +m’u +), + `I‹mWšdow +( +™em +), + +963 + `M’uI‹mWidth +( +m’u +), + +964 + `M’uI‹mHeight +( +m’u +è- (2 * +I‹mBÜd” +)); + +965 + `XMoveWšdow +( + `M’uDi¥Ïy +( +m’u +), + `I‹mWšdow +( +™em +), 0, +y +); + +968  +TRUE +; + +969 + } +} + +972 + $S‘IÅutMask +( +m’u +, +mask +) + +973 +RTLM’u + +m’u +; + +974 +Mask + +mask +; + +976 +RTLM’uI‹m + +™em +; + +978 + `XS–eùIÅut +( + `M’uDi¥Ïy +( +m’u +), + `M’uWšdow +(menu), + +979 ( +mask + | +M’uEv’tMask +)); + +980  +™em + = + `M’uI‹ms +( +m’u +è; i‹m ; i‹m = + `I‹mNext +(item)) + +982 ià( + `Te¡I‹mFÏg +( +™em +, +™emDi§bËd +)) + +983 + `XS–eùIÅut +( + `M’uDi¥Ïy +( +m’u +), + `I‹mWšdow +( +™em +), + +984 ( +mask + | +NÜm®I‹mEv’tMask +)); + +985 ià( + `I‹mIsL—f +( +™em +)) + +986 + `XS–eùIÅut +( + `M’uDi¥Ïy +( +m’u +), + `I‹mWšdow +( +™em +), + +987 ( +mask + | +NÜm®I‹mEv’tMask +)); + +989 + `XS–eùIÅut +( + `M’uDi¥Ïy +( +m’u +), + `I‹mWšdow +( +™em +), + +990 ( +mask + | +Subm’uI‹mEv’tMask +)); + +992 + } +} + +994 +RTLM’uI‹m + + +995 + $M’uI‹mByD©a +( +m’u +, +d©a +) + +996 +RTLM’u + +m’u +; + +997 +g’”ic + +d©a +; + +999 +RTLM’uI‹m + +™em +; + +1001  +™em + = + `M’uI‹ms +( +m’u +); + +1002 ! + `I‹mIsNuÎ +( +™em +è&& ! + `Equ®G’ +( + `I‹mD©a +(™em), +d©a +); + +1003 +™em + = + `I‹mNext +(item)); + +1005  +™em +; + +1006 + } +} + +1008 +RTLM’uI‹m + + +1009 + $M’uI‹mByName + ( +m’u +, +Çme +) + +1010 +RTLM’u + +m’u +; + +1011 * +Çme +; + +1013 +RTLM’uI‹m + +™em +; + +1015  +™em + = + `M’uI‹ms +( +m’u +); i‹m; i‹m = + `I‹mNext +(item)) + +1016 ià( + `¡»ql + ( +Çme +, + `I‹mText +( +™em +))) + +1017  +™em +; + +1018  +NULLITEM +; + +1019 + } +} + +1021 +RTLM’uI‹m + + +1022 + $M’uG‘I‹m +( +m’u +, +wšdow +) + +1023 +RTLM’u + +m’u +; + +1024 +Wšdow + +wšdow +; + +1026  ( +RTLM’uI‹m +)( + `XLookUpAssoc +( + `M’uDi¥Ïy +( +m’u +), +™em_bË +, +wšdow +)); + +1027 + } +} + +1029 +RTLM’u + + +1030 + $M’uG‘M’u +( +m’u +, +wšdow +) + +1031 +RTLM’u + +m’u +; + +1032 +Wšdow + +wšdow +; + +1034  ( +RTLM’u + )( + `XLookUpAssoc +( + `M’uDi¥Ïy +( +m’u +), +m’u_bË +, +wšdow +)); + +1035 + } +} + +1038 + $I‹mG‘MiddËY +( +™em +) + +1039 +RTLM’uI‹m + +™em +; + +1041 +Wšdow + +chžd +; + +1042 +XWšdowA‰ribu‹s + +©Œibu‹s +; + +1043  +x +, +y +; + +1045 + `XG‘WšdowA‰ribu‹s +( + `M’uDi¥Ïy +( + `I‹mM’u +( +™em +)), + `I‹mWšdow +(item), + +1046 & +©Œibu‹s +); + +1047 + `XT¿n¦©eCoÜdš©es +( + `M’uDi¥Ïy +( + `I‹mM’u +( +™em +)), + +1048 + `M’uWšdow +( + `I‹mM’u +( +™em +)), + +1049 + `RoÙWšdow +( + `M’uDi¥Ïy +( + `I‹mM’u +( +™em +)), + +1050 + `M’uSü“n +( + `I‹mM’u +( +™em +))), + +1051 +©Œibu‹s +. +x +,‡‰ribu‹s. +y +, + +1052 & +x +, & +y +, & +chžd +); + +1053  + `MakeEv’ +( +y + + ( + `M’uI‹mHeight +( + `I‹mM’u +( +™em +))/2)); + +1054 + } +} + +1057 + $S‘In™ŸlI‹m +( +m’u +, +™em +) + +1058 +RTLM’u + +m’u +; + +1059 +RTLM’uI‹m + +™em +; + +1061 * + `»®loc +(); + +1063 ià( + `M’uHasIn™ŸlI‹m +( +m’u +)) { + +1064 ià( + `¡r_Ëngth +( + `M’uIn™ŸlI‹mText +( +m’u +)è< sŒ_Ëngth( + `I‹mText +( +™em +))) + +1065 + `M’uIn™ŸlI‹mText +( +m’u +) = + +1066 + `»®loc +( + `M’uIn™ŸlI‹mText +( +m’u +), + +1067 + `¡r_Ëngth +( + `I‹mText +( +™em +)) + 1); + +1070 + `M’uIn™ŸlI‹mText +( +m’u +) = + +1071 + `®loÿ‹ +(,( + `¡r_Ëngth +( + `I‹mText +( +™em +)) + 1)); + +1072 + `¡r_cÝy +( + `M’uIn™ŸlI‹mText +( +m’u +), + `I‹mText +( +™em +)); + +1073 + } +} + +1076 + $CˬIn™ŸlI‹m +( +m’u +) + +1077 +RTLM’u + +m’u +; + +1079 ià( + `M’uHasIn™ŸlI‹m +( +m’u +)) { + +1080 + `ä“ +( + `M’uIn™ŸlI‹mText +( +m’u +)); + +1081 + `M’uIn™ŸlI‹mText +( +m’u +èð(*è +NULL +; + +1083 + } +} + +1085 +RTLM’uI‹m + + +1086 + $G‘In™ŸlI‹m +( +m’u +) + +1087 +RTLM’u + +m’u +; + +1089 +RTLM’uI‹m + +™em +; + +1091 ià( + `M’uHasIn™ŸlI‹m +( +m’u +)) { + +1092  +™em + = + `M’uI‹ms +( +m’u +è; i‹m ; i‹m = + `I‹mNext +(item)) { + +1093 ià( + `I‹mIsIn™ŸlI‹m +( +m’u +, +™em +)) + +1094 ( +™em +); + +1097 (( +RTLM’uI‹m +è +NULL +); + +1098 + } +} + + @menu.h + +14 +M’uI‹m + * +AddM’uI‹m +(); + +15 +boÞ + +Di¥o£I‹m +(); + +16  +Di¥o£M’u +(); + +17  +In™M’u +(); + +18 +boÞ + +S‘I‹mText +(); + +19 +M’u + * +NewM’u +(); + +20 +boÞ + +S‘I‹mCheck +(); + +21 +boÞ + +S‘I‹mDi§bË +(); + +22 +M’uI‹m + * +Di¥Ïy_M’u +(); + +23  +Undi¥Ïy_M’u +(); + +24  +M’uInv”t +(); + +25  +PÏûPoš‹r +(); + +26  +D¿w_M’u +(); + +27  +D¿w_I‹m +(); + +29 +M’uI‹m + * +M’uG‘I‹m +(); + +30 +M’uI‹m + * +M’uI‹mByName +(); + +31 +M’uI‹m + * +M’uI‹mByD©a +(); + +32 +M’u + * +M’uG‘M’u +(); + +33  +I‹mG‘MiddËY +(); + +34  +S‘In™ŸlI‹m +(); + +35  +CˬIn™ŸlI‹m +(); + +36 +M’uI‹m + * +G‘In™ŸlI‹m +(); + +38 +M’uI‹m + * +T¿ckM’u +(); + + @menuD.h + +31 #iâdeà +boÞ + + +32  + #boÞ +  + + ) + +35 #iâdeà +FALSE + + +36  + #FALSE + 0 + + ) + +37  + #TRUE + 1 + + ) + +42  + #M’uWidth +( +m’u +è(m’u)-> +m’uWidth + + + ) + +43  + #M’uHeight +( +m’u +è(m’u)-> +m’uHeight + + + ) + +44  + #M’uOldWidth +( +m’u +è(m’u)-> +m’uOldWidth + + + ) + +45  + #M’uOldHeight +( +m’u +è(m’u)-> +m’uOldHeight + + + ) + +46  + #M’uI‹mWidth +( +m’u +è(m’u)-> +m’uI‹mWidth + + + ) + +47  + #M’uI‹mHeight +( +m’u +è(m’u)-> +m’uI‹mHeight + + + ) + +48  + #M’uFÏgs +( +m’u +è(m’u)-> +m’uFÏgs + + + ) + +49  + #M’uMaxTextWidth +( +m’u +è(m’u)-> +m’uMaxTextWidth + + + ) + +50  + #M’uBÜd”Width +( +m’u +è((m’u)-> +m’uBÜd”Width +) + + ) + +51  + #M’uOldBÜd”Width +( +m’u +è(m’u)-> +m’uOldBÜd”Width + + + ) + +52  + #M’uI‹mPad +( +m’u +è(m’u)-> +m’uI‹mPad + + + ) + +53  + #M’uDi¥Ïy +( +m’u +è(m’u)-> +di¥Ïy + + + ) + +54  + #M’uSü“n +( +m’u +è(m’u)-> +sü“n + + + ) + +55  + #M’uWšdow +( +m’u +è(m’u)-> +m’uWšdow + + + ) + +56  + #M’uCursÜ +( +m’u +è(m’u)-> +m’uCursÜ + + + ) + +57  + #M’uSavedPixm­ +( +m’u +è(m’u)-> +§vedPixm­ + + + ) + +58  + #M’uSavedImage +( +m’u +è((m’u)-> +§vedImage +) + + ) + +59  + #M’uSavedImageX +( +m’u +è(m’u)-> +m’uSavedImageX + + + ) + +60  + #M’uSavedImageY +( +m’u +è(m’u)-> +m’uSavedImageY + + + ) + +61  + #M’uI‹ms +( +m’u +è(m’u)-> +m’uI‹ms + + + ) + +62  + #M’uFÚtInfo +( +m’u +è(m’u)-> +m’uFÚtInfo + + + ) + +63  + #M’uNÜm®GC +( +m’u +è(m’u)-> +nÜm®GC + + + ) + +64  + #M’uInv”tGC +( +m’u +è(m’u)-> +šv”tGC + + + ) + +65  + #M’uHighligh‹dGC +( +m’u +è(m’u)-> +highligh‹dGC + + + ) + +66  + #M’uG»yGC +( +m’u +è(m’u)-> +g»yGC + + + ) + +67  + #M’uG»yPixm­ +( +m’u +è(m’u)-> +g»yPixm­ + + + ) + +68  + #M’uCheckm¬kPixm­ +( +m’u +è(m’u)-> +checkm¬kPixm­ + + + ) + +69  + #M’uA¼owPixm­ +( +m’u +è(m’u)-> +¬rowPixm­ + + + ) + +70  + #M’uIn™ŸlI‹mText +( +m’u +è(m’u)-> +m’uIn™ŸlI‹mText + + + ) + +71  + #M’uI‹mHighligh‹d +( +m’u +è(m’u)-> +highligh‹dI‹m + + + ) + +72  + #M’uNe¡ed +( +m’u +è(m’u)-> +m’uNe¡ed + + + ) + +73  + #M’uX +( +m’u +è(m’u)-> +m’uX + + + ) + +74  + #M’uY +( +m’u +è(m’u)-> +m’uY + + + ) + +75  + #M’uP¬’t +( +m’u +è(m’u)-> +·»ÁM’u + + + ) + +76  + #M’uD– +( +m’u +è(m’u)-> +d– + + + ) + +77  + #M’uO±iÚs +( +m’u +è(m’u)-> +m’uO±iÚs + + + ) + +78  + #NULLMENU + (( +M’u + *è +NULL +) + + ) + +82  + #M’uIsNuÎ +( +m’u +è(m’u =ð +NULLMENU +) + + ) + +83  + #M’uIsDi¥Ïyed +( +m’u +è(m’u-> +m’uFÏgs + & +m’uM­³d +) + + ) + +84  + #M’uHasIn™ŸlI‹m +( +m’u +è(m’u-> +m’uIn™ŸlI‹mText + !ð(*è +NULL +) + + ) + +88  + #S‘HighlightI‹m +( +m’u +, +™em +è(m’u-> +highligh‹dI‹m + = i‹m) + + ) + +89  + #Re£tHighlightI‹m +( +m’u +è(m’u-> +highligh‹dI‹m + = +NULLITEM +) + + ) + +90  + #S‘M’uEv’tHªdËr +( +m’u +, +f +èm’u-> +m’uEv’tHªdËr + = + ) +f + +91  + #S‘M’uFÏg +( +m’u +, +æag +è + `M’uFÏgs +(m’uè|ð + ) +flag + +92  + #Re£tM’uFÏg +( +m’u +, +æag +è + `M’uFÏgs +(m’uè&ð~ + ) +flag + +93  + #Te¡M’uFÏg +( +m’u +, +æag +è( + `M’uFÏgs +(m’uè& fÏg) + + ) + +94  + #Te¡O±iÚFÏg +( +m’u +, +ÝtiÚ +è( + `M’uO±iÚs +(m’uè& o±iÚ) + + ) + +98  + #I‹mFÏgs +( +™em +è(™em)-> +™emFÏgs + + + ) + +99  + #I‹mText +( +™em +è(™em)-> +™emText + + + ) + +100  + #I‹mTextL’gth +( +™em +è(™em)-> +™emTextL’gth + + + ) + +101  + #I‹mTextWidth +( +™em +è(™em)-> +™emTextWidth + + + ) + +102  + #I‹mNext +( +™em +è(™em)-> +ÃxtI‹m + + + ) + +103  + #I‹mSubm’u +( +™em +è(™em)-> +™emSubm’u + + + ) + +104  + #I‹mTag +( +™em +è(™em)-> +™emTag + + + ) + +105  + #I‹mG’”©Ü +( +™em +è(™em)-> +g’”©Ü + + + ) + +106  + #I‹mG’”©ÜP¬amPoš‹r +( +™em +è(™em)-> +g’P¬amPoš‹r + + + ) + +107  + #I‹mCheck´oc +( +™em +è(™em)-> +check´oc + + + ) + +108  + #I‹mC®lback +( +™em +è(™em)-> +™emC®lback + + + ) + +109  + #I‹mD©a +( +™em +è(™em)-> +™emD©a + + + ) + +110  + #I‹mWšdow +( +™em +è(™em)-> +™emWšdow + + + ) + +111  + #I‹mM’u +( +™em +è(™em)-> +™emM’u + + + ) + +112  + #NULLITEM + (( +M’uI‹m + *è +NULL +) + + ) + +113  + #I‹mG‘A¼owPos™iÚ +( +™em +è(™em-> +™emM’u +-> +m’uWidth + - +¬row_width +) + + ) + +116  + #I‹mIsNuÎ +( +™em +è(™em =ð +NULLITEM +) + + ) + +117  + #I‹mIsIn™ŸlI‹m +( +m’u +, +™em +) \ + +118 ( + `M’uIn™ŸlI‹mText +( +m’u +) && \ + +119 ( + `¡rcmp +( + `M’uIn™ŸlI‹mText +( +m’u +), + `I‹mText +( +™em +)è=ð0)) + + ) + +120  + #I‹mIsL—f +( +™em +è((™em-> +™emSubm’u + =ð( +M’u + *è0è? +TRUE + : +FALSE +) + + ) + +121  + #I‹mIsDi§bËd +( +™em +è( + `I‹mFÏgs +(™emè& +™emDi§bËd +) + + ) + +125  + #CheckI‹m +( +m’u +, +™em +è + `S‘I‹mCheck +(m’u,™em,1) + + ) + +126  + #Di§bËI‹m +( +m’u +, +™em +è + `S‘I‹mDi§bË +(m’u,™em,1) + + ) + +127  + #EÇbËI‹m +( +m’u +, +™em +è + `S‘I‹mDi§bË +(m’u,™em,0) + + ) + +128  + #UncheckI‹m +( +m’u +, +™em +è + `S‘I‹mCheck +(m’u,™em,0) + + ) + +129  + #S‘I‹mFÏg +( +™em +, +æag +è + `I‹mFÏgs +(™emè|ð + ) +flag + +130  + #Re£tI‹mFÏg +( +™em +, +æag +è + `I‹mFÏgs +(™emè&ð~ + ) +flag + +131  + #Te¡I‹mFÏg +( +™em +, +æag +è( + `I‹mFÏgs +(™emè& fÏg) + + ) + +132  + #MoveI‹mFÏg +( +™em +, +æag1 +, +æag2 +) \ + +133 ià( + `Te¡I‹mFÏg +( +™em +, +æag1 +))\ + +134 + `S‘I‹mFÏg +( +™em +, +æag2 +);\ + +136 + `Re£tI‹mFÏg +( +™em +, +æag2 +);\ + +137 + `Re£tI‹mFÏg +( +™em +, +æag1 +); + + ) + +141  + #M’uEv’tMask + ( +L—veWšdowMask + | +EÁ”WšdowMask + | +Bu‰ÚR–—£Mask +) + + ) + +142  + #NÜm®I‹mEv’tMask + +M’uEv’tMask + + + ) + +143  + #Subm’uI‹mEv’tMask + ( +M’uEv’tMask + | +Poš‹rMÙiÚMask +) + + ) + +144  + #M’uIgnÜeMask + (è0 + + ) + +148  + #checkM¬kWidth + 9 + + ) + +149  + #checkM¬kHeight + 8 + + ) + +150  + #deçuÉCursÜWidth + 16 + + ) + +151  + #deçuÉCursÜHeight + 16 + + ) + +152  + #deçuÉCursÜX + 1 + + ) + +153  + #deçuÉCursÜY + 1 + + ) + +154  + #lšeS•¬©ÜHeight + 9 + + ) + +155  + #I‹mBÜd” + 1 + + ) + +156  + #DeçuÉ_D– + 20 + + ) + +157  + #M’u_TabË_Size + 8 + + ) + +158  + #I‹m_TabË_Size + 32 + + ) + +162 +M’u + * +NewM’u +(); + +163 +M’uI‹m + * +T¿ckM’u + (); + +164 +M’uI‹m + * +M’uI‹mByName + (), * +Di¥Ïy_M’u +(); + +165  +In™M’u + (); + +166  +Di¥o£M’u + (); + +167  +D¿w_M’u +(); + + @menuP.h + +66 #iâdeà +STD_DEFS + + +67  + ~"¡d_defs.h +" + +70 #iâdeà +OPTION_FLAGS + + +71  + ~"¹lm’uO.h +" + +74 (* + gC®lback +) (); + +75  +_m’uI‹m + + tM’uI‹m +; + +76  +_m’u + + tM’u +; + +78  + s_m’uI‹m + { + +79  + m™emFÏgs +; + +81  + #™emDi§bËd + 0x0001 + + ) + +82  + #™emChecked + 0x0002 + + ) + +83  + #™emChªged + 0x0010 + + ) + +84 * + m™emText +; + +85  + m™emTextWidth +; + +86  + m™emTextL’gth +; + +87  +_m’uI‹m + * + mÃxtI‹m +; + +88  +_m’u + * + m™emSubm’u +; + +89 +C®lback + + mg’”©Ü +; + +90 +ÿddr_t + + mg’P¬amPoš‹r +; + +91 +boÞ + (* +check´oc +) (); + +92 +C®lback + + m™emC®lback +; + +93 +poš‹r + + m™emD©a +; + +94 +Wšdow + + m™emWšdow +; + +95 +M’u + * + m™emM’u +; + +98  + s_m’u + { + +99  + mm’uWidth +; + +100  + mm’uHeight +; + +101  + mm’uOldWidth +; + +102  + mm’uOldHeight +; + +103  + mm’uI‹mWidth +; + +104  + mm’uI‹mHeight +; + +105  + mm’uFÏgs +; + +107  + #m’uChªged + 0x0001 + + ) + +108  + #m’uI‹mChªged + 0x0002 + + ) + +109  + #m’uM­³d + 0x0004 + + ) + +111  + mm’uMaxTextWidth +; + +112  + mm’uBÜd”Width +; + +113  + mm’uOldBÜd”Width +; + +114  + mm’uI‹mPad +; + +115 +Di¥Ïy + * + mdi¥Ïy +; + +116  + msü“n +; + +117 +Wšdow + + mm’uWšdow +; + +118 +CursÜ + + mm’uCursÜ +; + +119 +Pixm­ + + m§vedPixm­ +; + +120 +M’uI‹m + * + mm’uI‹ms +; + +121 +XFÚtSŒuù + * + mm’uFÚtInfo +; + +122 +GC + + mnÜm®GC +; + +123 +GC + + mšv”tGC +; + +124 +GC + + mhighligh‹dGC +; + +125 +Pixm­ + + mg»yPixm­ +; + +126 +Pixm­ + + mcheckm¬kPixm­ +; + +127 +Pixm­ + + m¬rowPixm­ +; + +128 * + mm’uIn™ŸlI‹mText +; + +129 +M’uI‹m + * + mhighligh‹dI‹m +; + +130  + mm’uNe¡ed +; + +131  + mm’uX +, + mm’uY +; + +132  +_m’u + * + m·»ÁM’u +; + +135  + md– +; + +136 +M’uO±iÚsMask + + mm’uO±iÚs +; + + @message.c + +23  + ~"cÝyright.h +" + +26 #iâdeà +BASETYPE + + +27  + ~"ba£ty³.h +" + +30 #iâdeà +MESSAGE + + +31  + ~"mes§geP.h +" + +34  + $Mes§ge_PÝ_Up +Ð +pos +, +msg + ) + +35 +TWPošt + +pos +; + +36 +Mes§ge + +msg +; + +37 { + } +} + +39  + $Mes§ge_Put_Down +() + +40 { + } +} + + @message.h + +30 #iâdeà +BASETYPE + + +31  + ~"ba£ty³.h +" + +34 #iâdeà +MESSAGE + + +35  + ~"mes§geP.h +" + +38  +Mes§ge_PÝ_Up +(); + +43  +Mes§ge_Put_Down +(); + + @messageP.h + +30 #iâdeà +MESSAGE + + +31  + #MESSAGE + + + ) + +34  + tMes§ge +; + + @null_icon.h + +27  + #nuÎ_icÚ_width + 1 + + ) + +28  + #nuÎ_icÚ_height + 1 + + ) + +29  + gnuÎ_icÚ_b™s +[] = + + @open.c + +23  + ~"cÝyright.h +" + +25  + ~<¡dio.h +> + +26  + ~"¡d_defs.h +" + +28 * + ghom’v +; + +29 * + gba£nv +; + +30 * + g¹Ënv +; + +32 * +g‘’v +(); + +36  + $·thify +Ð +¡r +, +¡r1 +, +¡r2 + ) + +37 * +¡r +, * +¡r1 +, * +¡r2 +; + +39 + `¡rýy +Ð +¡r +, +¡r1 + ); + +40 + `¡rÿt +Ð +¡r +, "/" ); + +41 + `¡rÿt +Ð +¡r +, +¡r2 + ); + +42 + } +} + +46  + $O³n_In™ +() + +48 * +cur +; + +49  +·th +[256]; + +51 +hom’v + = + `g‘’v +("HOME"); + +53 + `¡r_cÝy +Ð +ba£nv +, +hom’v + ); + +54 +cur + = +ba£nv + + + `¡¾’ +(basenv); + +55  * +cur + != '/' ) + +56 +cur +--; + +57 * +cur + = '\0'; + +59 +¹Ënv + = + `g‘’v +("RTLENV"); + +60 iàÐ +¹Ënv + !ð +NULL + ) + +62 iàÐ +¹Ënv +[0] == '~' ) + +64 iàÐ +¹Ënv +[1] == '/' ) + +65 + `·thify +Ð +·th +, +hom’v +, +¹Ënv + + 2 ); + +67 + `·thify +Ð +·th +, +ba£nv +, +¹Ënv + + 1 ); + +68 + `¡r_cÝy +Ð +¹Ënv +, +·th + ); + +70 iàÐ +¹Ënv +[0] != '/' ) + +72 + `·thify +Ð +·th +, +hom’v +, +¹Ënv + ); + +73 + `¡r_cÝy +Ð +¹Ënv +, +·th + ); + +76 + } +} + +80 +FILE +* + $O³n_R—d +Ð +fžÇm + ) + +81 * +fžÇm +; + +83  +·th +[256]; + +84 +FILE + * +¡»am +; + +86 iàÐ +fžÇm + =ð +NULL + ) + +87  ( +FILE + *) +NULL +; + +89 iàÐ +fžÇm +[0] == '/' ) + +90  + `fÝ’ +Ð +fžÇm +, "r" ); + +92 iàÐ +fžÇm +[0] == '~' ) + +94 iàÐ +fžÇm +[1] == '/' ) + +95 + `·thify +Ð +·th +, +hom’v +, +fžÇm + + 2 ); + +97 + `·thify +Ð +·th +, +ba£nv +, +fžÇm + + 1 ); + +98  + `fÝ’ +Ð +·th +, "r" ); + +101 iàÐ +¹Ënv + !ð +NULL + ) + +103 + `·thify +Ð +·th +, +¹Ënv +, +fžÇm + ); + +104 +¡»am + = + `fÝ’ +Ð +·th +, "r" ); + +105 iàÐ +¡»am + !ð +NULL + ) + +106  +¡»am +; + +109 + `·thify +Ð +·th +, +hom’v +, +fžÇm + ); + +110  + `fÝ’ +Ð +·th +, "r" ); + +111 + } +} + +115  +boÞ + (* + tBoÞFunc +)(); + +117 +boÞ + + $O³n_R—d_W™h +Ð +fžÇm +, +â + ) + +118 * +fžÇm +; + +119 +BoÞFunc + +â +; + +121  +·th +[256]; + +123 iàÐ +fžÇm + =ð +NULL + ) + +124  +FALSE +; + +126 iàÐ +fžÇm +[0] == '/' ) + +127  + `â +Ð +fžÇm + ); + +129 iàÐ +fžÇm +[0] == '~' ) + +131 iàÐ +fžÇm +[1] == '/' ) + +132 + `·thify +Ð +·th +, +hom’v +, +fžÇm + + 2 ); + +134 + `·thify +Ð +·th +, +ba£nv +, +fžÇm + + 1 ); + +135  + `â +Ð +·th + ); + +138 iàÐ +¹Ënv + !ð +NULL + ) + +140 + `·thify +Ð +·th +, +¹Ënv +, +fžÇm + ); + +141 iàÐ + `â +( +·th +) ) + +142  +TRUE +; + +145 + `·thify +Ð +·th +, +hom’v +, +fžÇm + ); + +146  + `â +Ð +·th + ); + +147 + } +} + +151 +FILE +* + $O³n_Wr™e +Ð +fžÇm + ) + +152 * +fžÇm +; + +154  +·th +[256]; + +156 iàÐ +fžÇm + =ð +NULL + ) + +157  ( +FILE + *) +NULL +; + +159 iàÐ +fžÇm +[0] == '/' ) + +160  + `fÝ’ +Ð +fžÇm +, "w" ); + +162 iàÐ +fžÇm +[0] == '~' ) + +164 iàÐ +fžÇm +[1] == '/' ) + +165 + `·thify +Ð +·th +, +hom’v +, +fžÇm + + 2 ); + +167 + `·thify +Ð +·th +, +ba£nv +, +fžÇm + + 1 ); + +168  + `fÝ’ +Ð +·th +, "w" ); + +171 iàÐ +¹Ënv + !ð +NULL + ) + +173 + `·thify +Ð +·th +, +¹Ënv +, +fžÇm + ); + +174  + `fÝ’ +Ð +·th +, "w" ); + +177 + `·thify +Ð +·th +, +hom’v +, +fžÇm + ); + +178  + `fÝ’ +Ð +·th +, "w" ); + +179 + } +} + +183  + $O³n_Execvp +Ð +fžÇm + ) + +184 * +fžÇm +; + +186  +·th +[256]; + +188 iàÐ +fžÇm +[0] == '/' ) + +189 + `exeþ +Ð +fžÇm +, filnam, 0 ); + +191 iàÐ +fžÇm +[0] == '~' ) + +193 iàÐ +fžÇm +[1] == '/' ) + +194 + `·thify +Ð +·th +, +hom’v +, +fžÇm + + 2 ); + +196 + `·thify +Ð +·th +, +ba£nv +, +fžÇm + + 1 ); + +197 + `exeþ +Ð +·th +,…ath, 0 ); + +202 + `O³n_In™ +(); + +203 iàÐ +¹Ënv + !ð +NULL + ) + +205 + `·thify +Ð +·th +, +¹Ënv +, +fžÇm + ); + +206 + `exeþ +Ð +·th +,…ath, 0 ); + +209 + `·thify +Ð +·th +, +hom’v +, +fžÇm + ); + +210 + `exeþ +Ð +·th +,…ath, 0 ); + +212 + `exeþ +Ð +fžÇm +, filnam, 0 ); + +214 + } +} + +218  + $O³n_Exec +Ð +cmd + ) + +219 * +cmd +; + +221  +cmdbuf +[256]; + +223 + `¡rýy +( +cmdbuf +, "exec "); + +224 + `¡rÿt +( +cmdbuf +, +cmd +); + +225 + `exeþ +Ð"/bš/csh", "csh", "-f", "-c", +cmdbuf +, 0 ); + +226 + } +} + + @patchlevel.h + +1  + #PATCHLEVEL + 0 + + ) + + @pause.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "%W% %H%"; + +27  + ~"cÝyright.h +" + +30  + ~<¡dio.h +> + +31  + ~ + +32  + ~ + +33  + ~"xio.h +" + +34  + ~"twš.h +" + +35  + ~"uwšD.h +" + +36  + ~"uwšXD.h +" + +41  + $Pau£_RTL +() + +43 +U£rwš + * +uwšp +; + +44 +Tžwšp + +wšp +; + +45 +XWšdowChªges + +wc +; + +47 + `D¿w_Re£t_Background +(); + +49 + `XDefšeCursÜ +( +dpy +, +roÙ +, ( +XID +è +XC_X_cursÜ +); + +50 + `D¿w_S‘_Mou£_CÚŒÞ +(-2, 0); + +52 + `XS‘IÅutFocus +( +dpy +, +Poš‹rRoÙ +, +Rev”tToPoš‹rRoÙ +, +Cu¼’tTime +); + +54 + `Tžwš_G’_O³n_Wšdows +(); + +55 ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL +) + +57 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +59 ià( +uwšp +-> +cu¼’t_ty³ + =ð +¹l +) + +62 ià( + `U£rwš_BÜd”_Width +( +uwšp +) > 0) + +64 +wc +. +bÜd”_width + = + `U£rwš_BÜd”_Width +( +uwšp +); + +65 + `XCÚfigu»Wšdow +( +dpy +, + `U£rwš_XCl›Á +( +uwšp +), + +66 +CWBÜd”Width +, & +wc +); + +70 + `Tžwš_G’_Clo£d_Wšdows +(); + +71 ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL +) + +73 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +75 ià( +uwšp +-> +cu¼’t_ty³ + =ð +¹l +) + +78 ià( + `U£rwš_BÜd”_Width +( +uwšp +) > 0) + +80 +wc +. +bÜd”_width + = + `U£rwš_BÜd”_Width +( +uwšp +); + +81 + `XCÚfigu»Wšdow +( +dpy +, + `U£rwš_XCl›Á +( +uwšp +), + +82 +CWBÜd”Width +, & +wc +); + +86 + `XClo£Di¥Ïy +( +dpy +); + +88 + `årštf +( +¡d”r +, "\nHope youƒnjoyed using RTL Tiled Windows under X!\n"); + +89 + `ex™ +(0); + +90 + } +} + +95 + $Ex™ +( +sig +, +code +, +sý +) + +96  +sig +, +code +; + +97  +sigcÚ‹xt + * +sý +; + +100 + `Pau£_RTL +(); + +101 + } +} + + @pcs_enum.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)pcs_enum.c 5.3 9/7/88"; + +28  + ~"cÝyright.h +" + +30  + ~"tžeD.h +" + +31  + ~"tže-li¡P.h +" + +32  + ~"tže.h +" + +37 + $Tžes_In_A»a +( +Ëá_x +, +tÝ_y +, +right_x +, +bÙtom_y +, +’um_func +) + +38 +Ba£ty³ + +Ëá_x +, +tÝ_y +, +right_x +, +bÙtom_y +; + +39 (* +’um_func +)(); + +41  + `’um”©e +(); + +42 +Tže + * +tž• +; + +46 +tž• + = ( +Tže + *è + `Tže_©_Pošt +( +Ëá_x +, +tÝ_y +); + +50  +tž• + !ð +NULL_TILE + && + `TÝ_Y +Ñž•è<ð +bÙtom_y +) + +52 + `’um”©e +( +tž• +, +Ëá_x +, +tÝ_y +, +right_x +, +bÙtom_y +, +’um_func +); + +53 +tž• + = ( +Tže + *è + `Tže_©_Pošt +( +Ëá_x +, + `BÙtom_Y +(tilep) + 1); + +55 + } +} + +59 + $’um”©e +( +tž• +, +Ëá_x +, +tÝ_y +, +right_x +, +bÙtom_y +, +’um_func +) + +60 +Tže + * +tž• +; + +61 +Ba£ty³ + +Ëá_x +, +tÝ_y +, +right_x +, +bÙtom_y +; + +62 (* +’um_func +)(); + +64 +Tže_Li¡ + + `Tže_Right_NeighbÜs +(); + +65 +Tže_Li¡ + +ÃighbÜs +; + +66 +Tže + * +nbr_tže +; + +70 (* +’um_func +)(( +Tž• +) +tž• +); + +75 ià( +right_x + <ð + `Right_X +( +tž• +)) + +80 +ÃighbÜs + = + `Tže_Right_NeighbÜs +( +tž• +); + +81 + `TL_NEXT +( +nbr_tže +, +ÃighbÜs +); + +83  +nbr_tže + !ð +NULL_TILE +) + +87 ià( +tÝ_y + <ð + `BÙtom_Y +( +nbr_tže +è&& + `TÝ_Y +Òbr_tžeè<ð +bÙtom_y +) + +93 ià( + `bl_¡™ch +( +nbr_tže +è=ð +tž• +) + +95 + `’um”©e +( +nbr_tže +, +Ëá_x +, +tÝ_y +, + +96 +right_x +, +bÙtom_y +, +’um_func +); + +102 ià( +bÙtom_y + <ð + `BÙtom_Y +( +tž• +) + +103 && +bÙtom_y + <ð + `BÙtom_Y +( +nbr_tže +)) + +105 + `’um”©e +( +nbr_tže +, +Ëá_x +, +tÝ_y +, + +106 +right_x +, +bÙtom_y +, +’um_func +); + +108 + `TL_NEXT +( +nbr_tže +, +ÃighbÜs +); + +110 + `TL_FREE +( +ÃighbÜs +); + +111 + } +} + + @pcs_merge.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)pcs_merge.c 5.3 9/7/88"; + +28  + ~"cÝyright.h +" + +30  + ~"tžeD.h +" + +31  + ~"tže-li¡P.h +" + +33 +Tže_Li¡ + +Tže_TÝ_NeighbÜs +(), + +34 +Tže_BÙtom_NeighbÜs +(), + +35 +Tže_Leá_NeighbÜs +(), + +36 +Tže_Right_NeighbÜs +(); + +38 +Tže + * +Tže_©_CP +; + +40  +Upd©e_S¶™_Side +(); + +42 #ifdeà +WM_DEBUG + + +43  +Tže_Pªic +(); + +51 + $Tže_M”ge +( +m”ge_tže +, +Þd_tže +, +side +) + +52 +Tže + * +m”ge_tže +, + +53 * +Þd_tže +; + +54 +Side + +side +; + +56 +Tže_Li¡ + +li¡_1 +, + +57 +li¡_2 +, + +58 +li¡_3 +; + +60 #ifdeà +WM_DEBUG + + +63 ià( + `Tže_G‘_Ty³ +( +m”ge_tže +è!ðTže_G‘_Ty³( +Þd_tže +)) { + +64 + `Tže_Pªic +("tryingo mergeiles of differentype"); + +68  +side +) + +71  +TÝ +: + +72 +li¡_1 + = + `Tže_TÝ_NeighbÜs +( +Þd_tže +); + +73 +li¡_2 + = + `Tže_Leá_NeighbÜs +( +Þd_tže +); + +74 +li¡_3 + = + `Tže_Right_NeighbÜs +( +Þd_tže +); + +76 + `TÝ_Y +( +m”ge_tže +èðTÝ_Y( +Þd_tže +); + +77 + `¹_¡™ch +( +m”ge_tže +èð¹_¡™ch( +Þd_tže +); + +78 + `Œ_¡™ch +( +m”ge_tže +èðŒ_¡™ch( +Þd_tže +); + +80 + `Upd©e_S¶™_Side +( +li¡_1 +, +TÝ +, +Þd_tže +, +m”ge_tže +); + +81 + `Upd©e_S¶™_Side +( +li¡_2 +, +Leá +, +Þd_tže +, +m”ge_tže +); + +82 + `Upd©e_S¶™_Side +( +li¡_3 +, +Right +, +Þd_tže +, +m”ge_tže +); + +85  +Leá +: + +86 +li¡_1 + = + `Tže_TÝ_NeighbÜs +( +Þd_tže +); + +87 +li¡_2 + = + `Tže_Leá_NeighbÜs +( +Þd_tže +); + +88 +li¡_3 + = + `Tže_BÙtom_NeighbÜs +( +Þd_tže +); + +90 + `Leá_X +( +m”ge_tže +èðLeá_X( +Þd_tže +); + +91 + `lb_¡™ch +( +m”ge_tže +èðlb_¡™ch( +Þd_tže +); + +92 + `bl_¡™ch +( +m”ge_tže +èðbl_¡™ch( +Þd_tže +); + +94 + `Upd©e_S¶™_Side +( +li¡_1 +, +TÝ +, +Þd_tže +, +m”ge_tže +); + +95 + `Upd©e_S¶™_Side +( +li¡_2 +, +Leá +, +Þd_tže +, +m”ge_tže +); + +96 + `Upd©e_S¶™_Side +( +li¡_3 +, +BÙtom +, +Þd_tže +, +m”ge_tže +); + +99  +Right +: + +100 +li¡_1 + = + `Tže_TÝ_NeighbÜs +( +Þd_tže +); + +101 +li¡_2 + = + `Tže_Right_NeighbÜs +( +Þd_tže +); + +102 +li¡_3 + = + `Tže_BÙtom_NeighbÜs +( +Þd_tže +); + +104 + `Right_X +( +m”ge_tže +èðRight_X( +Þd_tže +); + +105 + `¹_¡™ch +( +m”ge_tže +èð¹_¡™ch( +Þd_tže +); + +106 + `Œ_¡™ch +( +m”ge_tže +èðŒ_¡™ch( +Þd_tže +); + +108 + `Upd©e_S¶™_Side +( +li¡_1 +, +TÝ +, +Þd_tže +, +m”ge_tže +); + +109 + `Upd©e_S¶™_Side +( +li¡_2 +, +Right +, +Þd_tže +, +m”ge_tže +); + +110 + `Upd©e_S¶™_Side +( +li¡_3 +, +BÙtom +, +Þd_tže +, +m”ge_tže +); + +113  +BÙtom +: + +114 +li¡_1 + = + `Tže_Leá_NeighbÜs +( +Þd_tže +); + +115 +li¡_2 + = + `Tže_Right_NeighbÜs +( +Þd_tže +); + +116 +li¡_3 + = + `Tže_BÙtom_NeighbÜs +( +Þd_tže +); + +118 + `BÙtom_Y +( +m”ge_tže +èðBÙtom_Y( +Þd_tže +); + +119 + `lb_¡™ch +( +m”ge_tže +èðlb_¡™ch( +Þd_tže +); + +120 + `bl_¡™ch +( +m”ge_tže +èðbl_¡™ch( +Þd_tže +); + +122 + `Upd©e_S¶™_Side +( +li¡_1 +, +Leá +, +Þd_tže +, +m”ge_tže +); + +123 + `Upd©e_S¶™_Side +( +li¡_2 +, +Right +, +Þd_tže +, +m”ge_tže +); + +124 + `Upd©e_S¶™_Side +( +li¡_3 +, +BÙtom +, +Þd_tže +, +m”ge_tže +); + +128 + `TL_FREE +( +li¡_1 +); + +129 + `TL_FREE +( +li¡_2 +); + +130 + `TL_FREE +( +li¡_3 +); + +132 +Tže_©_CP + = +m”ge_tže +; + +133 + `ä“ +Ð(*è +Þd_tže + ); + +134 +Þd_tže + = +NULL_TILE +; + +135 + } +} + + @pcs_split.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)pcs_split.c 5.3 9/7/88"; + +28  + ~"cÝyright.h +" + +36  + ~"tžeD.h +" + +37  + ~"tže-li¡P.h +" + +38  + ~"tže.h +" + +40 +Tže_Li¡ + +Tže_TÝ_NeighbÜs +(), + +41 +Tže_BÙtom_NeighbÜs +(), + +42 +Tže_Leá_NeighbÜs +(), + +43 +Tže_Right_NeighbÜs +(); + +45  +Upd©e_S¶™_Side +(), + +46 +Upd©e_AdjaûÁ_Sides +(); + +48 #ifdeà +WM_DEBUG + + +49  +Tže_Pªic +(); + +53 +Tže + * + +54 + $Tže_S¶™_TÝ +( +Þd_tže +, +Ãw_coÜd +) + +55 +Tže + * +Þd_tže +; + +56 +Ba£ty³ + +Ãw_coÜd +; + +58 +Tže + * +Ãw_tže +; + +59 +Tže + * +Þd_bl +, + +60 * +Ãw_Œ +; + +61 +Tže_Li¡ + +¥l™_li¡ +, + +62 +adj_li¡_1 +, + +63 +adj_li¡_2 +; + +65 #ifdeà +WM_DEBUG + + +68 if((( +Ãw_coÜd + - 1è=ð + `TÝ_Y +( +Þd_tže +)) || + +69 ( +Ãw_coÜd + =ð + `BÙtom_Y +( +Þd_tže +))) + +70 + `Tže_Pªic +("creating‡ile of zero height"); + +77 +¥l™_li¡ + = + `Tže_TÝ_NeighbÜs +( +Þd_tže +); + +78 +adj_li¡_1 + = + `Tže_Leá_NeighbÜs +( +Þd_tže +); + +79 +adj_li¡_2 + = + `Tže_Right_NeighbÜs +( +Þd_tže +); + +83 +Þd_bl + = ( +Tže + *è + `Tže_©_Pošt +( + `Leá_X +( +Þd_tže +è- 1, ( +Ãw_coÜd + - 1) ); + +85 +Ãw_Œ + = ( +Tže + *è + `Tže_©_Pošt +( + `Right_X +( +Þd_tže +è+ 1, +Ãw_coÜd +); + +87 +Ãw_tže + = + `®loÿ‹ +( +Tže +, 1); + +88 + `Tže_S‘_Name +( +Ãw_tže +, +tže_Çme +++); + +89 + `Tže_S‘_Ty³ +( +Ãw_tže +, +S·û +); + +90 + `Tže_S‘_Wš +( +Ãw_tže +, ( +poš‹r +è +NULL +); + +92 + `TÝ_Y +( +Ãw_tže +èðTÝ_Y( +Þd_tže +); + +93 + `TÝ_Y +( +Þd_tže +èð +Ãw_coÜd +; + +94 + `BÙtom_Y +( +Ãw_tže +èð +Ãw_coÜd + - 1; + +95 + `Leá_X +( +Ãw_tže +èðLeá_X( +Þd_tže +); + +96 + `Right_X +( +Ãw_tže +èðRight_X( +Þd_tže +); + +98 + `Œ_¡™ch +( +Ãw_tže +èðŒ_¡™ch( +Þd_tže +); + +99 + `¹_¡™ch +( +Ãw_tže +èð¹_¡™ch( +Þd_tže +); + +101 + `lb_¡™ch +( +Ãw_tže +èð +Þd_tže +; + +102 + `¹_¡™ch +( +Þd_tže +èð +Ãw_tže +; + +106 + `bl_¡™ch +( +Ãw_tže +èð +Þd_bl +; + +107 + `Œ_¡™ch +( +Þd_tže +èð +Ãw_Œ +; + +109 + `Upd©e_S¶™_Side +( +¥l™_li¡ +, +TÝ +, +Þd_tže +, +Ãw_tže +); + +110 + `Upd©e_AdjaûÁ_Sides +( +adj_li¡_1 +, +TÝ +, +Þd_tže +, +Ãw_tže +); + +111 + `Upd©e_AdjaûÁ_Sides +( +adj_li¡_2 +, +TÝ +, +Þd_tže +, +Ãw_tže +); + +113 + `TL_FREE +( +¥l™_li¡ +); + +114 + `TL_FREE +( +adj_li¡_1 +); + +115 + `TL_FREE +( +adj_li¡_2 +); + +117 ( +Ãw_tže +); + +118 + } +} + +121 +Tže + * + +122 + $Tže_S¶™_BÙtom +( +Þd_tže +, +Ãw_coÜd +) + +123 +Tže + * +Þd_tže +; + +124 +Ba£ty³ + +Ãw_coÜd +; + +126 +Tže + * +Ãw_tže +; + +127 +Tže + * +Þd_bl +, * +Ãw_Œ +; + +128 +Tže_Li¡ + +¥l™_li¡ +, +adj_li¡_1 +, +adj_li¡_2 +; + +130 #ifdeà +WM_DEBUG + + +131 if((( +Ãw_coÜd + + 1è=ð + `BÙtom_Y +( +Þd_tže +)) || + +132 ( +Ãw_coÜd + =ð + `TÝ_Y +( +Þd_tže +))) + +133 + `Tže_Pªic +("creating‡ile of zero height"); + +135 +¥l™_li¡ + = + `Tže_BÙtom_NeighbÜs +( +Þd_tže +); + +136 +adj_li¡_1 + = + `Tže_Leá_NeighbÜs +( +Þd_tže +); + +137 +adj_li¡_2 + = + `Tže_Right_NeighbÜs +( +Þd_tže +); + +139 +Þd_bl + = ( +Tže + *è + `Tže_©_Pošt +( + `Leá_X +( +Þd_tže +è- 1, +Ãw_coÜd +); + +142 +Ãw_Œ + = ( +Tže + *è + `Tže_©_Pošt +( + `Right_X +( +Þd_tže +è+ 1, ( +Ãw_coÜd + + 1) ); + +144 +Ãw_tže + = + `®loÿ‹ +( +Tže +, 1); + +145 + `Tže_S‘_Name +( +Ãw_tže +, +tže_Çme +++); + +146 + `Tže_S‘_Ty³ +( +Ãw_tže +, +S·û +); + +147 + `Tže_S‘_Wš +( +Ãw_tže +, ( +poš‹r +è +NULL +); + +149 + `BÙtom_Y +( +Ãw_tže +èðBÙtom_Y( +Þd_tže +); + +150 + `BÙtom_Y +( +Þd_tže +èð +Ãw_coÜd +; + +151 + `TÝ_Y +( +Ãw_tže +èð +Ãw_coÜd + + 1; + +152 + `Leá_X +( +Ãw_tže +èðLeá_X( +Þd_tže +); + +153 + `Right_X +( +Ãw_tže +èðRight_X( +Þd_tže +); + +155 + `bl_¡™ch +( +Ãw_tže +èðbl_¡™ch( +Þd_tže +); + +156 + `lb_¡™ch +( +Ãw_tže +èðlb_¡™ch( +Þd_tže +); + +158 + `¹_¡™ch +( +Ãw_tže +èð +Þd_tže +; + +159 + `lb_¡™ch +( +Þd_tže +èð +Ãw_tže +; + +161 + `bl_¡™ch +( +Þd_tže +èð +Þd_bl +; + +162 + `Œ_¡™ch +( +Ãw_tže +èð +Ãw_Œ +; + +164 + `Upd©e_S¶™_Side +( +¥l™_li¡ +, +BÙtom +, +Þd_tže +, +Ãw_tže +); + +165 + `Upd©e_AdjaûÁ_Sides +( +adj_li¡_1 +, +BÙtom +, +Þd_tže +, +Ãw_tže +); + +166 + `Upd©e_AdjaûÁ_Sides +( +adj_li¡_2 +, +BÙtom +, +Þd_tže +, +Ãw_tže +); + +168 + `TL_FREE +( +¥l™_li¡ +); + +169 + `TL_FREE +( +adj_li¡_1 +); + +170 + `TL_FREE +( +adj_li¡_2 +); + +172 ( +Ãw_tže +); + +173 + } +} + +176 +Tže + * + +177 + $Tže_S¶™_Leá +( +Þd_tže +, +Ãw_coÜd +) + +178 +Tže + * +Þd_tže +; + +179 +Ba£ty³ + +Ãw_coÜd +; + +181 +Tže + * +Ãw_tže +; + +182 +Tže + * +Þd_lb +, * +Ãw_¹ +; + +183 +Tže_Li¡ + +¥l™_li¡ +, +adj_li¡_1 +, +adj_li¡_2 +; + +185 #ifdeà +WM_DEBUG + + +186 if((( +Ãw_coÜd + - 1è=ð + `Leá_X +( +Þd_tže +)) || + +187 ( +Ãw_coÜd + =ð + `Right_X +( +Þd_tže +))) + +188 + `Tže_Pªic +("creating‡ile of zero width"); + +190 +¥l™_li¡ + = + `Tže_Leá_NeighbÜs +( +Þd_tže +); + +191 +adj_li¡_1 + = + `Tže_TÝ_NeighbÜs +( +Þd_tže +); + +192 +adj_li¡_2 + = + `Tže_BÙtom_NeighbÜs +( +Þd_tže +); + +195 +Þd_lb + = ( +Tže + *è + `Tže_©_Pošt +( +Ãw_coÜd +, + `BÙtom_Y +( +Þd_tže +) + 1); + +198 +Ãw_¹ + = ( +Tže + *è + `Tže_©_Pošt +Ð( +Ãw_coÜd + - 1), + `TÝ_Y +( +Þd_tže +) - 1); + +201 +Ãw_tže + = + `®loÿ‹ +( +Tže +, 1); + +202 + `Tže_S‘_Name +( +Ãw_tže +, +tže_Çme +++); + +203 + `Tže_S‘_Ty³ +( +Ãw_tže +, +S·û +); + +204 + `Tže_S‘_Wš +( +Ãw_tže +, ( +poš‹r +è +NULL +); + +206 + `Leá_X +( +Ãw_tže +èðLeá_X( +Þd_tže +); + +207 + `Leá_X +( +Þd_tže +èð +Ãw_coÜd +; + +208 + `Right_X +( +Ãw_tže +èð +Ãw_coÜd + - 1; + +209 + `BÙtom_Y +( +Ãw_tže +èðBÙtom_Y( +Þd_tže +); + +210 + `TÝ_Y +( +Ãw_tže +èðTÝ_Y( +Þd_tže +); + +212 + `bl_¡™ch +( +Ãw_tže +èðbl_¡™ch( +Þd_tže +); + +213 + `lb_¡™ch +( +Ãw_tže +èðlb_¡™ch( +Þd_tže +); + +215 + `Œ_¡™ch +( +Ãw_tže +èð +Þd_tže +; + +216 + `bl_¡™ch +( +Þd_tže +èð +Ãw_tže +; + +218 + `¹_¡™ch +( +Ãw_tže +èð +Ãw_¹ +; + +219 + `lb_¡™ch +( +Þd_tže +èð +Þd_lb +; + +221 + `Upd©e_S¶™_Side +( +¥l™_li¡ +, +Leá +, +Þd_tže +, +Ãw_tže +); + +222 + `Upd©e_AdjaûÁ_Sides +( +adj_li¡_1 +, +Leá +, +Þd_tže +, +Ãw_tže +); + +223 + `Upd©e_AdjaûÁ_Sides +( +adj_li¡_2 +, +Leá +, +Þd_tže +, +Ãw_tže +); + +225 + `TL_FREE +( +¥l™_li¡ +); + +226 + `TL_FREE +( +adj_li¡_1 +); + +227 + `TL_FREE +( +adj_li¡_2 +); + +229 ( +Ãw_tže +); + +230 + } +} + +233 +Tže + * + +234 + $Tže_S¶™_Right +( +Þd_tže +, +Ãw_coÜd +) + +235 +Tže + * +Þd_tže +; + +236 +Ba£ty³ + +Ãw_coÜd +; + +238 +Tže + * +Ãw_tže +; + +239 +Tže + * +Þd_lb +, * +Ãw_¹ +; + +240 +Tže_Li¡ + +¥l™_li¡ +, +adj_li¡_1 +, +adj_li¡_2 +; + +242 #ifdeà +WM_DEBUG + + +243 if((( +Ãw_coÜd + + 1è=ð + `Right_X +( +Þd_tže +)) || + +244 ( +Ãw_coÜd + =ð + `Leá_X +( +Þd_tže +))) + +245 + `Tže_Pªic +("creating‡ile of zero height"); + +247 +¥l™_li¡ + = + `Tže_Right_NeighbÜs +( +Þd_tže +); + +248 +adj_li¡_1 + = + `Tže_TÝ_NeighbÜs +( +Þd_tže +); + +249 +adj_li¡_2 + = + `Tže_BÙtom_NeighbÜs +( +Þd_tže +); + +253 +Þd_lb + = ( +Tže + *è + `Tže_©_Pošt +Ð( +Ãw_coÜd + + 1), + `BÙtom_Y +( +Þd_tže +) + 1); + +255 +Ãw_¹ + = ( +Tže + *è + `Tže_©_Pošt +( +Ãw_coÜd +, + `TÝ_Y +( +Þd_tže +) - 1); + +258 +Ãw_tže + = + `®loÿ‹ +( +Tže +, 1); + +259 + `Tže_S‘_Name +( +Ãw_tže +, +tže_Çme +++); + +260 + `Tže_S‘_Ty³ +( +Ãw_tže +, +S·û +); + +261 + `Tže_S‘_Wš +( +Ãw_tže +, ( +poš‹r +è +NULL +); + +263 + `Right_X +( +Ãw_tže +èðRight_X( +Þd_tže +); + +264 + `Right_X +( +Þd_tže +èð +Ãw_coÜd +; + +265 + `Leá_X +( +Ãw_tže +èð +Ãw_coÜd + + 1; + +266 + `BÙtom_Y +( +Ãw_tže +èðBÙtom_Y( +Þd_tže +); + +267 + `TÝ_Y +( +Ãw_tže +èðTÝ_Y( +Þd_tže +); + +269 + `Œ_¡™ch +( +Ãw_tže +èðŒ_¡™ch( +Þd_tže +); + +270 + `¹_¡™ch +( +Ãw_tže +èð¹_¡™ch( +Þd_tže +); + +272 + `bl_¡™ch +( +Ãw_tže +èð +Þd_tže +; + +273 + `Œ_¡™ch +( +Þd_tže +èð +Ãw_tže +; + +275 + `¹_¡™ch +( +Þd_tže +èð +Ãw_¹ +; + +276 + `lb_¡™ch +( +Ãw_tže +èð +Þd_lb +; + +278 + `Upd©e_S¶™_Side +( +¥l™_li¡ +, +Right +, +Þd_tže +, +Ãw_tže +); + +279 + `Upd©e_AdjaûÁ_Sides +( +adj_li¡_1 +, +Right +, +Þd_tže +, +Ãw_tže +); + +280 + `Upd©e_AdjaûÁ_Sides +( +adj_li¡_2 +, +Right +, +Þd_tže +, +Ãw_tže +); + +282 + `TL_FREE +( +¥l™_li¡ +); + +283 + `TL_FREE +( +adj_li¡_1 +); + +284 + `TL_FREE +( +adj_li¡_2 +); + +286 ( +Ãw_tže +); + +287 + } +} + + @pcs_updt.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)pcs_updt.c 5.3 9/7/88"; + +28  + ~"cÝyright.h +" + +33  + ~"tžeD.h +" + +34  + ~"tže-li¡P.h +" + +41 + $Upd©e_S¶™_Side +( +¥l™_li¡ +, +side +, +Þd_tže +, +Ãw_tže +) + +42 +Tže_Li¡ + +¥l™_li¡ +; + +43 +Side + +side +; + +44 +Tže + * +Þd_tže +, + +45 * +Ãw_tže +; + +47 +Tže + * +Ãxt_tže +; + +49 + `TL_NEXT +( +Ãxt_tže +, +¥l™_li¡ +); + +51  +Ãxt_tže + !ð +NULL_TILE +) + +53  +side +) + +55  +TÝ +: + +56 ià( + `lb_¡™ch +( +Ãxt_tže +è=ð +Þd_tže +) + +57 + `lb_¡™ch +( +Ãxt_tže +èð +Ãw_tže +; + +60  +BÙtom +: + +61 ià( + `¹_¡™ch +( +Ãxt_tže +è=ð +Þd_tže +) + +62 + `¹_¡™ch +( +Ãxt_tže +èð +Ãw_tže +; + +65  +Leá +: + +66 ià( + `Œ_¡™ch +( +Ãxt_tže +è=ð +Þd_tže +) + +67 + `Œ_¡™ch +( +Ãxt_tže +èð +Ãw_tže +; + +70  +Right +: + +71 ià( + `bl_¡™ch +( +Ãxt_tže +è=ð +Þd_tže +) + +72 + `bl_¡™ch +( +Ãxt_tže +èð +Ãw_tže +; + +76 + `TL_NEXT +( +Ãxt_tže +, +¥l™_li¡ +); + +78 + } +} + +85 + $Upd©e_AdjaûÁ_Sides +( +adj_li¡ +, +side +, +Þd_tže +, +Ãw_tže +) + +86 +Tže_Li¡ + +adj_li¡ +; + +87 +Side + +side +; + +88 +Tže + * +Þd_tže +, + +89 * +Ãw_tže +; + +91 +Tže + * +Ãxt_tže +; + +93 + `TL_NEXT +( +Ãxt_tže +, +adj_li¡ +); + +95  +Ãxt_tže + !ð +NULL_TILE +) + +97  +side +) + +99  +TÝ +: + +100 ià( + `Œ_¡™ch +( +Ãxt_tže +è=ð +Þd_tže + + +101 && + `TÝ_Y +( +Ãxt_tže +è< TÝ_Y( +Þd_tže +)) + +103 + `Œ_¡™ch +( +Ãxt_tže +èð +Ãw_tže +; + +105 ià( + `bl_¡™ch +( +Ãxt_tže +è=ð +Þd_tže + + +106 && + `BÙtom_Y +( +Ãxt_tže +è< + `TÝ_Y +( +Þd_tže +)) + +108 + `bl_¡™ch +( +Ãxt_tže +èð +Ãw_tže +; + +111  +BÙtom +: + +112 ià( + `Œ_¡™ch +( +Ãxt_tže +è=ð +Þd_tže + + +113 && + `BÙtom_Y +( +Þd_tže +è< + `TÝ_Y +( +Ãxt_tže +)) + +115 + `Œ_¡™ch +( +Ãxt_tže +èð +Ãw_tže +; + +117 ià( + `bl_¡™ch +( +Ãxt_tže +è=ð +Þd_tže + + +118 && + `BÙtom_Y +( +Þd_tže +è< BÙtom_Y( +Ãxt_tže +)) + +120 + `bl_¡™ch +( +Ãxt_tže +èð +Ãw_tže +; + +123  +Leá +: + +124 ià( + `¹_¡™ch +( +Ãxt_tže +è=ð +Þd_tže + + +125 && + `Right_X +( +Ãxt_tže +è< + `Leá_X +( +Þd_tže +)) + +127 + `¹_¡™ch +( +Ãxt_tže +èð +Ãw_tže +; + +129 ià( + `lb_¡™ch +( +Ãxt_tže +è=ð +Þd_tže + + +130 && + `Leá_X +( +Ãxt_tže +è< Leá_X( +Þd_tže +)) + +132 + `lb_¡™ch +( +Ãxt_tže +èð +Ãw_tže +; + +135  +Right +: + +136 ià( + `¹_¡™ch +( +Ãxt_tže +è=ð +Þd_tže + + +137 && + `Right_X +( +Þd_tže +è< Right_X( +Ãxt_tže +)) + +139 + `¹_¡™ch +( +Ãxt_tže +èð +Ãw_tže +; + +141 ià( + `lb_¡™ch +( +Ãxt_tže +è=ð +Þd_tže + + +142 && + `Right_X +( +Þd_tže +è< + `Leá_X +( +Ãxt_tže +)) + +144 + `lb_¡™ch +( +Ãxt_tže +èð +Ãw_tže +; + +148 + `TL_NEXT +( +Ãxt_tže +, +adj_li¡ +); + +150 + } +} + + @platformP.h + +28  + #PLATFORM + + + ) + +30 #iâdeà +X_H + + +31  + ~ + +36 +Wšdow + + m·»Á +; + +37 +Wšdow + + mtÝ_bÜd” +; + +38 +Wšdow + + mËá_bÜd” +; + +39 +Wšdow + + mright_bÜd” +; + +40 +Wšdow + + mbÙtom_bÜd” +; + +41 +Wšdow + + mtÝ_Ëá +; + +42 +Wšdow + + mtÝ_right +; + +43 +Wšdow + + mbÙtom_Ëá +; + +44 +Wšdow + + mbÙtom_right +; + +45 +Wšdow + + mh—d” +; + +46 +Wšdow + + mzoom_gadg‘ +; + +47 +Wšdow + + mmove_gadg‘ +; + +48 +Wšdow + + mþ›Á +; + +49 +Wšdow + + micÚ +; + +50 +Wšdow + + mþ›Á_icÚ +; + +51 +Wšdow + + mŒªs›Á_fÜ +; + +52 } + tXF¿me +; + +54  + #¶©fÜm_f›lds + \ + +55  +bÜd”_width +; \ + +56 +Pixm­ + +icÚmask +; \ + +57 +Pixm­ + +icÚpix +; \ + +58 +Pixm­ + +icÚpix_³ndšg +; \ + +59 +boÞ + +ignÜe_unm­ +; \ + +60 +XF¿me + +xäame +; + + ) + + @pr.c + +23  + ~"cÝyright.h +" + +26  + ~"ba£ty³.h +" + +27  + ~"twšD.h +" + +28  + ~"¡©e.h +" + +29  + ~"uwšD.h +" + +33  + $´t™Ë +Ð +uwšp + ) + +34 +U£rwš + * +uwšp +; + +36 * +u»sþass +, * +u»¢ame +, * +uho¡Çme +, * +uÇme +; + +38 +u»sþass + = +uwšp +-> +»s_þass +; + +39 +u»¢ame + = +uwšp +-> +»s_Çme +; + +40 +uho¡Çme + = +uwšp +-> +ho¡Çme +; + +41 +uÇme + = +uwšp +-> +wmÇme +; + +43 iàÐ( +u»sþass + =ð +NULL +è&& ( +uÇme + == NULL) ) + +44 + `´štf +( "\n#0 RTL "); + +47 iàÐ +u»sþass + =ð +NULL + ) + +48 +u»sþass + = ""; + +50 iàÐ +u»¢ame + =ð +NULL + ) + +51 +u»¢ame + = ""; + +53 iàÐ +uho¡Çme + =ð +NULL + ) + +54 +uho¡Çme + = ""; + +56 iàÐ +uÇme + =ð +NULL + ) + +57 +uÇme + = ""; + +59 + `´štf +( "\n#%d (%d) %s: %s [%s]\n %s\n", + +60 +uwšp +-> +wšnum +, ()uwinp, + +61 +u»sþass +, +u»¢ame +, +uho¡Çme +, +uÇme + ); + +63 + } +} + +67  + $´icÚ +Ð +uwšp + ) + +68 +U£rwš + * +uwšp +; + +70 +Tžwš + * +wšp +; + +71 +wšp + = ( +Tžwš + *)( +uwšp +-> +icÚp +); + +72 iàÐ + `Tžwš_Is_O³n +( +wšp +) ) + +73 + `´štf +( " [ ICON ] (%d,%d)->(%d,%d) @ (%d,%d) => (%d,%d)\n", + +74 +wšp +-> +»ù +. +Ëá_x +, + +75 +wšp +-> +»ù +. +tÝ_y +, + +76 +wšp +-> +»ù +. +right_x +, + +77 +wšp +-> +»ù +. +bÙtom_y +, + +78 +wšp +-> +ûÁ” +. +x +, + +79 +wšp +-> +ûÁ” +. +y +, + +80 +wšp +-> +pos™iÚ +. +x +, + +81 +wšp +-> +pos™iÚ +. +y + ); + +83 + } +} + +87  + $´wš +Ð +uwšp + ) + +88 +U£rwš + * +uwšp +; + +90 +Tžwš + * +wšp +; + +91 +wšp + = ( +Tžwš + *)( +uwšp +->winp); + +92 + `´štf +( " [ %s ] %s (%d,%d)->(%d,%d) @ (%d,%d) => (%d,%d)\n", + +93 ( + `Tžwš_Is_O³n +( +wšp +) ? "OPEN" : "CLOSED" ), + +94 ( +uwšp +-> +zoomed + ? " *ZOOMED* " : "" ), + +95 +wšp +-> +»ù +. +Ëá_x +, + +96 +wšp +-> +»ù +. +tÝ_y +, + +97 +wšp +-> +»ù +. +right_x +, + +98 +wšp +-> +»ù +. +bÙtom_y +, + +99 +wšp +-> +ûÁ” +. +x +, + +100 +wšp +-> +ûÁ” +. +y +, + +101 +wšp +-> +pos™iÚ +. +x +, + +102 +wšp +-> +pos™iÚ +. +y + ); + +104 + } +} + +108  + $´šfo +Ð +uwšp + ) + +109 +U£rwš + * +uwšp +; + +111 +Tžwš + * +wšp +; + +112 +wšp + = ( +Tžwš + *)( +uwšp +->winp); + +114 + `´štf +( " size: [%d,%d] max: [%d,%d]\n", + +115 +wšp +-> +size +. +width +, + +116 +wšp +-> +size +. +height +, + +117 +wšp +-> +max_size +. +width +, + +118 +wšp +-> +max_size +. +height + ); + +120 + `´štf +( " min: [%d,%d] desire: [%d,%d]\n", + +121 +wšp +-> +mš_size +. +width +, + +122 +wšp +-> +mš_size +. +height +, + +123 +wšp +-> +desœed_size +. +width +, + +124 +wšp +-> +desœed_size +. +height + ); + +126 iàÐ +uwšp +-> +zoomed +) + +127 + `´štf +( "„egular min: [%d,%d] desire: [%d,%d]\n", + +128 +uwšp +-> +»guÏr_mš +. +width +, + +129 +uwšp +-> +»guÏr_mš +. +height +, + +130 +uwšp +-> +»guÏr_size +. +width +, + +131 +uwšp +-> +»guÏr_size +. +height + ); + +133 + `´štf +( " ZOOM min: [%d,%d] desire: [%d,%d]\n", + +134 +uwšp +-> +zoom_mš +. +width +, + +135 +uwšp +-> +zoom_mš +. +height +, + +136 +uwšp +-> +zoom_size +. +width +, + +137 +uwšp +-> +zoom_size +. +height + ); + +140 + } +} + +144  + $´u +Ð +uwšp + ) + +145 +U£rwš + * +uwšp +; + +147 + `´t™Ë +Ð +uwšp + ); + +148 iàÐ +uwšp +-> +wšp + =ð +WIN_NULL + ) + +149 + `´icÚ +Ð +uwšp + ); + +150 iàÐ + `Tžwš_Is_O³n +Ð +uwšp +-> +wšp + ) ) + +152 + `´wš +Ð +uwšp + ); + +153 + `´šfo +Ð +uwšp + ); + +154 + `´icÚ +Ð +uwšp + ); + +158 + `´icÚ +Ð +uwšp + ); + +159 + `´wš +Ð +uwšp + ); + +160 + `´šfo +Ð +uwšp + ); + +163 + } +} + +167  + $´w +Ð +wšp + ) + +168 +Tžwšp + +wšp +; + +170  + `´u +Ð + `U£rwš_G‘ +( +wšp +) ); + +171 + } +} + +175  + $´n +Ð +num + ) + +177 +Tžwšp + +wšp +; + +178 +WšpHªdË + +hªdË +; + +179 +hªdË + = + `S‹_G’_Clo£d_Wšdows +(); + +180  ( +wšp + = ( +Tžwšp +) + `S‹_CÛrû +( +hªdË +)è!ð +WIN_NULL + ) + +182 iàÐ + `U£rwš_G‘ +( +wšp +)-> +wšnum + =ð +num + ) + +184 + `´w +( +wšp +); + +187 + `S‹_Next_Wšdow +(& +hªdË +); + +189 + `´štf +( "No such‚umber\n" ); + +191 + } +} + +195  + $´o +() + +197 +Tžwšp + +wšp +; + +198 +WšpHªdË + +hªdË +; + +199 +U£rwš + * +uwšp +; + +200 +hªdË + = + `S‹_G’_O³n_Wšdows +(); + +201  ( +wšp + = ( +Tžwšp +) + `S‹_CÛrû +( +hªdË +)è!ð +WIN_NULL + ) + +203 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +204 iàÐ +uwšp +-> +wšp + == winp ) + +206 + `´t™Ë +Ð +uwšp + ); + +207 + `´wš +Ð +uwšp + ); + +208 + `´šfo +Ð +uwšp + ); + +210 + `S‹_Next_Wšdow +(& +hªdË +); + +213 + } +} + +217  + $´i +() + +219 +Tžwšp + +wšp +; + +220 +WšpHªdË + +hªdË +; + +221 +U£rwš + * +uwšp +; + +222 +hªdË + = + `S‹_G’_O³n_Wšdows +(); + +223  ( +wšp + = ( +Tžwšp +) + `S‹_CÛrû +( +hªdË +)è!ð +WIN_NULL + ) + +225 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +226 iàÐ +uwšp +-> +icÚp + =ð +wšp + ) + +228 + `´t™Ë +Ð +uwšp + ); + +229 + `´icÚ +Ð +uwšp + ); + +231 + `S‹_Next_Wšdow +(& +hªdË +); + +234 + } +} + +238  + $´c +() + +240 +Tžwšp + +wšp +; + +241 +WšpHªdË + +hªdË +; + +242 +U£rwš + * +uwšp +; + +243 +hªdË + = + `S‹_G’_Clo£d_Wšdows +(); + +244  ( +wšp + = ( +Tžwšp +) + `S‹_CÛrû +( +hªdË +)è!ð +WIN_NULL + ) + +246 +uwšp + = + `U£rwš_G‘ +( +wšp +); + +247 iàÐ +uwšp +-> +wšp + == winp ) + +249 + `´t™Ë +Ð +uwšp + ); + +250 + `´icÚ +Ð +uwšp + ); + +252 + `S‹_Next_Wšdow +(& +hªdË +); + +255 + } +} + + @profile.c + +23  + ~"cÝyright.h +" + +26  + ~<¡dio.h +> + +28  + ~"ba£ty³.h +" + +30  + ~"Ïyout.h +" + +31  + ~"»giÚ.h +" + +32  + ~"twšD.h +" + +33  + ~"uwšD.h +" + +34  + ~"uwš.h +" + +35  + ~"tžem’u.h +" + +37  + ~"tžeÝtsS.h +" + +38  + ~"twšÝtsS.h +" + +39  + ~"u£rÝtsS.h +" + +40  + ~"uwšÝtS.h +" + +42  + ~"uwš¡rP.h +" + +43  + ~"uwš¡rS.h +" + +45  + ~"u£rv®sS.h +" + +46  + ~"uwšv®P.h +" + +47  + ~"uwšv®S.h +" + +49  + ~"synÚymsS.h +" + +51 +Size + +IcÚs_S‘ +(); + +53 +Size + + gabs_mš_siz +, + gabs_max_siz +; + +55 +FILE + * +O³n_R—d +(); + +61  +TžeM’u + + g´ofžes +; + +62  +VoidFunc + + gÿδoc +; + +66  + $Profže_M’u_In™ +Ð +m’u +, +´oc + ) + +67 +TžeM’u + +m’u +; + +68 +VoidFunc + +´oc +; + +70 +ÿδoc + = +´oc +; + +71 +´ofžes + = + `TžeM’u_C»©e +(); + +72 + `TžeM’u_Aµ’d_C®l +Ð +´ofžes +, "P»ã»nûs", +ÿδoc +, +NULL + ); + +73 + `TžeM’u_Aµ’d_Subm’u +Ð +m’u +, "R—d Profže", +´ofžes + ); + +74 + } +} + +78  + $Profže_M’u_R—d +() + +80 +FILE + * +¡»am +; + +81  +fžÇms +[256], +m’u¡r +[128]; + +82 * +fžÇmx +, * +m’u¡rx +; + +84 + `TžeM’u_D–‘e_EÁr›s +Ð +´ofžes + ); + +85 + `TžeM’u_Aµ’d_C®l +Ð +´ofžes +, "P»ã»nûs", +ÿδoc +, +NULL + ); + +87 +¡»am + = + `O³n_R—d +( ".rtl.profiles" ); + +88 iàÐ +¡»am + !ð +NULL + ) + +90  + `fg‘s +Ð +m’u¡r +, 128, +¡»am + ) !ð +NULL + ) + +92 iàÐ + `fg‘s +Ð +fžÇms +, 256, +¡»am + ) !ð +NULL + ) + +94 +m’u¡r +[ + `¡¾’ +(menustr) - 1 ] = '\0'; + +95 + `¡r_cÝy +Ð +m’u¡rx +, +m’u¡r + ); + +97 +fžÇms +[ + `¡¾’ +(filnams) - 1 ] = '\0'; + +98 + `¡r_cÝy +Ð +fžÇmx +, +fžÇms + ); + +100 + `TžeM’u_Aµ’d_C®l +Ð +´ofžes +, +m’u¡rx +, +ÿδoc +, +fžÇmx + ); + +103 + `fþo£ + ( +¡»am + ); + +105 + } +} + +111  +þass + + tCÏss +; + +113  + gþass + + +114 + s +{ + +115 +CÏss + * + mÃxt +; + +116 * + mÇme +; + +117 +CÏss + * + msu³r +; + +118 * + msu³r_Çme +; + +119  + m´eâum +; + +120 +boÞ + + mÝtiÚs +[() +LENGTH_WINDOW_OPTIONS +]; + +121 +boÞ + + mu£r_ÝtiÚs +[() +LENGTH_USER_WINDOW_OPTIONS +]; + +122  + mu£r_v®ues +[() +LENGTH_USER_WINDOW_VALUES +]; + +123 * + mu£r_¡ršgs +[() +LENGTH_USER_WINDOW_STRINGS +]; + +124 +boÞ + + mhas_ÝtiÚs +[() +LENGTH_WINDOW_OPTIONS +]; + +125 +boÞ + + mhas_u£r_ÝtiÚs +[() +LENGTH_USER_WINDOW_OPTIONS +]; + +126 +boÞ + + mhas_u£r_v®ues +[() +LENGTH_USER_WINDOW_VALUES +]; + +127 +boÞ + + mhas_u£r_¡ršgs +[() +LENGTH_USER_WINDOW_STRINGS +]; + +130  + #CLASS_NULL + (( +CÏss + *) +NULL +) + + ) + +132  +CÏss + + gdeçuÉ_þass +; + +133  +CÏss + * + gdeçuÉ_þas¥ + = & +deçuÉ_þass +; + +134  +CÏss + * + gþass_h—d + = +CLASS_NULL +; + +136  + g´eâum +; + +140  + #Tžwš_S‘_CÏss_O±iÚ +( +þas¥ +, +Ýt +, +v® +) \ + +142 ( +þas¥ +)-> +ÝtiÚs +[()( +Ýt +)] = ( +v® +); \ + +143 ( +þas¥ +)-> +has_ÝtiÚs +[()( +Ýt +)] = +TRUE +; \ + +144 } + + ) + +146  + #Tžwš_S‘_DeçuÉ_O±iÚ +( +Ýt +, +v® +) \ + +147 + `Tžwš_S‘_CÏss_O±iÚ +( +deçuÉ_þas¥ +, +Ýt +, +v® +) + + ) + +151  + #U£rwš_S‘_CÏss_O±iÚ +( +þas¥ +, +Ýt +, +v® +) \ + +153 ( +þas¥ +)-> +u£r_ÝtiÚs +[()( +Ýt +)] = ( +v® +); \ + +154 ( +þas¥ +)-> +has_u£r_ÝtiÚs +[()( +Ýt +)] = +TRUE +; \ + +155 } + + ) + +157  + #U£rwš_S‘_DeçuÉ_O±iÚ +( +Ýt +, +v® +) \ + +158 + `U£rwš_S‘_CÏss_O±iÚ +( +deçuÉ_þas¥ +, +Ýt +, +v® +) + + ) + +162  + #U£rwš_S‘_CÏss_V®ue +( +þas¥ +, +Ýt +, +v® +) \ + +164 ( +þas¥ +)-> +u£r_v®ues +[()( +Ýt +)] = ( +v® +); \ + +165 ( +þas¥ +)-> +has_u£r_v®ues +[()( +Ýt +)] = +TRUE +; \ + +166 } + + ) + +168  + #U£rwš_S‘_DeçuÉ_V®ue +( +Ýt +, +v® +) \ + +169 + `U£rwš_S‘_CÏss_V®ue +( +deçuÉ_þas¥ +, +Ýt +, +v® +) + + ) + +171  + #U£rwš_CÚd_S‘_DeçuÉ_V®ue +( +Ýt +, +v® +) \ + +173 ià(! +deçuÉ_þas¥ +-> +has_u£r_v®ues +[()( +Ýt +)] ) \ + +174 + `U£rwš_S‘_DeçuÉ_V®ue +( +Ýt +, +v® +) \ + +175 } + + ) + +179  + #U£rwš_S‘_CÏss_SŒšg +( +þas¥ +, +Ýt +, +v® +) \ + +181 + `¡r_cÝy +Ð( +þas¥ +)-> +u£r_¡ršgs +[()( +Ýt +)], +v® + ); \ + +182 ( +þas¥ +)-> +has_u£r_¡ršgs +[()( +Ýt +)] = +TRUE +; \ + +183 } + + ) + +185  + #U£rwš_S‘_DeçuÉ_SŒšg +( +Ýt +, +v® +) \ + +186 + `U£rwš_S‘_CÏss_SŒšg +( +deçuÉ_þas¥ +, +Ýt +, +v® +) + + ) + +190  + $Profže_CÏss_Re£t +Ð +þas¥ + ) + +191 +CÏss + * +þas¥ +; + +193  +i +; + +195  +i + = 0; i < () +LENGTH_WINDOW_OPTIONS +; i++ ) + +196 +þas¥ +-> +has_ÝtiÚs +[ +i +] = +FALSE +; + +198  +i + = 0; i < () +LENGTH_USER_WINDOW_OPTIONS +; i++ ) + +199 +þas¥ +-> +has_u£r_ÝtiÚs +[ +i +] = +FALSE +; + +201  +i + = 0; i < () +LENGTH_USER_WINDOW_VALUES +; i++ ) + +202 +þas¥ +-> +has_u£r_v®ues +[ +i +] = +FALSE +; + +204  +i + = 0; i < () +LENGTH_USER_WINDOW_STRINGS +; i++ ) + +206 +þas¥ +-> +has_u£r_¡ršgs +[ +i +] = +FALSE +; + +207 +þas¥ +-> +u£r_¡ršgs +[ +i +] = +NULL +; + +210 +þas¥ +-> +su³r + = +CLASS_NULL +; + +211 +þas¥ +-> +su³r_Çme + = +NULL +; + +212 +þas¥ +-> +´eâum + = 0; + +213 + } +} + +217  + #Profže_DeçuÉ_CÏss_Re£t +() \ + +218 + `Profže_CÏss_Re£t +Ð +deçuÉ_þas¥ + ); + + ) + +222 +boÞ + + $Profže_G‘_CÏss_O±iÚ +Ð +þas¥ +, +Çm• +, +Ýt + ) + +223 +CÏss + * +þas¥ +; + +224 +CÏss + * +Çm• +; + +225 +Wšdow_O±iÚs + +Ýt +; + +227  +Çm• + !ð +CLASS_NULL + ) + +229 iàÐ +Çm• +-> +has_ÝtiÚs +[() +Ýt +] ) + +230  +Çm• +-> +ÝtiÚs +[() +Ýt +]; + +231 +Çm• + =‚am•-> +su³r +; + +234  +þas¥ + !ð +CLASS_NULL + ) + +236 iàÐ +þas¥ +-> +has_ÝtiÚs +[() +Ýt +] ) + +237  +þas¥ +-> +ÝtiÚs +[() +Ýt +]; + +238 +þas¥ + = cÏs¥-> +su³r +; + +241  +deçuÉ_þas¥ +-> +ÝtiÚs +[() +Ýt +]; + +242 + } +} + +246 +boÞ + + $Profže_G‘_U£r_CÏss_O±iÚ +Ð +þas¥ +, +Çm• +, +Ýt + ) + +247 +CÏss + * +þas¥ +; + +248 +CÏss + * +Çm• +; + +249 +U£r_Wšdow_O±iÚs + +Ýt +; + +251  +Çm• + !ð +CLASS_NULL + ) + +253 iàÐ +Çm• +-> +has_u£r_ÝtiÚs +[() +Ýt +] ) + +254  +Çm• +-> +u£r_ÝtiÚs +[() +Ýt +]; + +255 +Çm• + =‚am•-> +su³r +; + +258  +þas¥ + !ð +CLASS_NULL + ) + +260 iàÐ +þas¥ +-> +has_u£r_ÝtiÚs +[() +Ýt +] ) + +261  +þas¥ +-> +u£r_ÝtiÚs +[() +Ýt +]; + +262 +þas¥ + = cÏs¥-> +su³r +; + +265  +deçuÉ_þas¥ +-> +u£r_ÝtiÚs +[() +Ýt +]; + +266 + } +} + +270 +boÞ + + $Profže_Has_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, +Ýt + ) + +271 +CÏss + * +þas¥ +; + +272 +CÏss + * +Çm• +; + +273 +U£r_Wšdow_V®ues + +Ýt +; + +275  +Çm• + !ð +CLASS_NULL + ) + +277 iàÐ +Çm• +-> +has_u£r_v®ues +[() +Ýt +] ) + +278  +TRUE +; + +279 +Çm• + =‚am•-> +su³r +; + +282  +þas¥ + !ð +CLASS_NULL + ) + +284 iàÐ +þas¥ +-> +has_u£r_v®ues +[() +Ýt +] ) + +285  +TRUE +; + +286 +þas¥ + = cÏs¥-> +su³r +; + +289  +FALSE +; + +290 + } +} + +294  + $Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, +Ýt + ) + +295 +CÏss + * +þas¥ +; + +296 +CÏss + * +Çm• +; + +297 +U£r_Wšdow_V®ues + +Ýt +; + +299  +Çm• + !ð +CLASS_NULL + ) + +301 iàÐ +Çm• +-> +has_u£r_v®ues +[() +Ýt +] ) + +302  +Çm• +-> +u£r_v®ues +[() +Ýt +]; + +303 +Çm• + =‚am•-> +su³r +; + +306  +þas¥ + !ð +CLASS_NULL + ) + +308 iàÐ +þas¥ +-> +has_u£r_v®ues +[() +Ýt +] ) + +309  +þas¥ +-> +u£r_v®ues +[() +Ýt +]; + +310 +þas¥ + = cÏs¥-> +su³r +; + +313  +deçuÉ_þas¥ +-> +u£r_v®ues +[() +Ýt +]; + +314 + } +} + +318 +boÞ + + $Profže_Has_U£r_CÏss_SŒšg +Ð +þas¥ +, +Çm• +, +Ýt + ) + +319 +CÏss + * +þas¥ +; + +320 +CÏss + * +Çm• +; + +321 +U£r_Wšdow_SŒšgs + +Ýt +; + +323  +Çm• + !ð +CLASS_NULL + ) + +325 iàÐ +Çm• +-> +has_u£r_¡ršgs +[() +Ýt +] ) + +326  +TRUE +; + +327 +Çm• + =‚am•-> +su³r +; + +330  +þas¥ + !ð +CLASS_NULL + ) + +332 iàÐ +þas¥ +-> +has_u£r_¡ršgs +[() +Ýt +] ) + +333  +TRUE +; + +334 +þas¥ + = cÏs¥-> +su³r +; + +337  +FALSE +; + +338 + } +} + +342 * + $Profže_G‘_U£r_CÏss_SŒšg +Ð +þas¥ +, +Çm• +, +Ýt + ) + +343 +CÏss + * +þas¥ +; + +344 +CÏss + * +Çm• +; + +345 +U£r_Wšdow_SŒšgs + +Ýt +; + +347  +Çm• + !ð +CLASS_NULL + ) + +349 iàÐ +Çm• +-> +has_u£r_¡ršgs +[() +Ýt +] ) + +350  +Çm• +-> +u£r_¡ršgs +[() +Ýt +]; + +351 +Çm• + =‚am•-> +su³r +; + +354  +þas¥ + !ð +CLASS_NULL + ) + +356 iàÐ +þas¥ +-> +has_u£r_¡ršgs +[() +Ýt +] ) + +357  +þas¥ +-> +u£r_¡ršgs +[() +Ýt +]; + +358 +þas¥ + = cÏs¥-> +su³r +; + +361  +deçuÉ_þas¥ +-> +u£r_¡ršgs +[() +Ýt +]; + +362 + } +} + +368  + $Profže_S‘_Info +Ð +þas¥ +, +Çm• +, +uwšp + ) + +369 +CÏss + * +þas¥ +; + +370 +CÏss + * +Çm• +; + +371 +U£rwš + * +uwšp +; + +373 +uwšp +-> +h—d”_height + = + +374 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, +HEADER_HEIGHT + ); + +376 +uwšp +-> +icÚ_body_»ù +. +Ëá_x + = + +377 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, +ICON_BODY_LEFT + ); + +378 +uwšp +-> +icÚ_body_»ù +. +right_x + = + +379 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, +ICON_BODY_RIGHT + ); + +380 +uwšp +-> +icÚ_body_»ù +. +tÝ_y + = + +381 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, +ICON_BODY_TOP + ); + +382 +uwšp +-> +icÚ_body_»ù +. +bÙtom_y + = + +383 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, +ICON_BODY_BOTTOM + ); + +385 +uwšp +-> +icÚ_»s_»ù +. +Ëá_x + = + +386 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, +ICON_RES_LEFT + ); + +387 +uwšp +-> +icÚ_»s_»ù +. +right_x + = + +388 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, +ICON_RES_RIGHT + ); + +389 +uwšp +-> +icÚ_»s_»ù +. +tÝ_y + = + +390 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, +ICON_RES_TOP + ); + +391 +uwšp +-> +icÚ_»s_»ù +. +bÙtom_y + = + +392 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, +ICON_RES_BOTTOM + ); + +394 +uwšp +-> +icÚ_ho¡_»ù +. +Ëá_x + = + +395 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, +ICON_HOST_LEFT + ); + +396 +uwšp +-> +icÚ_ho¡_»ù +. +right_x + = + +397 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, +ICON_HOST_RIGHT + ); + +398 +uwšp +-> +icÚ_ho¡_»ù +. +tÝ_y + = + +399 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, +ICON_HOST_TOP + ); + +400 +uwšp +-> +icÚ_ho¡_»ù +. +bÙtom_y + = + +401 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, +ICON_HOST_BOTTOM + ); + +403 +uwšp +-> +icÚ_Çme_»ù +. +Ëá_x + = + +404 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, +ICON_NAME_LEFT + ); + +405 +uwšp +-> +icÚ_Çme_»ù +. +right_x + = + +406 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, +ICON_NAME_RIGHT + ); + +407 +uwšp +-> +icÚ_Çme_»ù +. +tÝ_y + = + +408 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, +ICON_NAME_TOP + ); + +409 +uwšp +-> +icÚ_Çme_»ù +. +bÙtom_y + = + +410 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, +ICON_NAME_BOTTOM + ); + +412 + } +} + +416  + $Profže_S‘_Sizes +Ð +þas¥ +, +Çm• +, +uwšp + ) + +417 +CÏss + * +þas¥ +; + +418 +CÏss + * +Çm• +; + +419 +U£rwš + * +uwšp +; + +421 +Size + +size +; + +423 +size +. +width + = + +424 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, + +425 +CLIENT_MIN_WIDTH + ); + +426 +size +. +height + = + +427 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, + +428 +CLIENT_MIN_HEIGHT + ); + +430 +uwšp +-> +body_mš + = + `RegiÚ_UÇdju¡_Size +Ðuwšp, +size + ); + +432 +size +. +width + = + +433 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, + +434 +CLIENT_MAX_WIDTH + ); + +435 +size +. +height + = + +436 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, + +437 +CLIENT_MAX_HEIGHT + ); + +438 +uwšp +-> +body_max + = + `RegiÚ_UÇdju¡_Size +Ðuwšp, +size + ); + +440 +uwšp +-> +»guÏr_mš +. +width + = + +441 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, + +442 +USER_NORMAL_MIN_WIDTH + ); + +443 +uwšp +-> +»guÏr_mš +. +height + = + +444 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, + +445 +USER_NORMAL_MIN_HEIGHT + ); + +447 +uwšp +-> +zoom_mš +. +width + = + +448 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, + +449 +USER_ZOOM_MIN_WIDTH + ); + +450 +uwšp +-> +zoom_mš +. +height + = + +451 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, + +452 +USER_ZOOM_MIN_HEIGHT + ); + +454 +size +. +width + = + +455 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, + +456 +USER_MAX_WIDTH + ); + +457 +size +. +height + = + +458 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, + +459 +USER_MAX_HEIGHT + ); + +461 + `Tžwš_S‘_Max +Ð +uwšp +-> +wšp +, +size + ); + +462 + } +} + +466  + $Profže_Upd©e_Sizes +Ð +þas¥ +, +Çm• +, +uwšp + ) + +467 +CÏss + * +þas¥ +; + +468 +CÏss + * +Çm• +; + +469 +U£rwš + * +uwšp +; + +471 +boÞ + +sized + = +TRUE +; + +473 iàÐ + `Profže_Has_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, + +474 +NORMAL_DESIRED_WIDTH + ) ) + +475 +uwšp +-> +»guÏr_size +. +width + = + +476 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, + +477 +NORMAL_DESIRED_WIDTH + ); + +479 +sized + = +FALSE +; + +481 iàÐ + `Profže_Has_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, + +482 +NORMAL_DESIRED_HEIGHT + ) ) + +483 +uwšp +-> +»guÏr_size +. +height + = + +484 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, + +485 +NORMAL_DESIRED_HEIGHT + ); + +487 +sized + = +FALSE +; + +489 iàÐ +sized + ) + +490 +uwšp +-> +sized + = +TRUE +; + +492 iàÐ + `Profže_Has_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, + +493 +ZOOM_DESIRED_WIDTH + ) ) + +494 +uwšp +-> +zoom_size +. +width + = + +495 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, + +496 +ZOOM_DESIRED_WIDTH + ); + +498 iàÐ + `Profže_Has_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, + +499 +ZOOM_DESIRED_HEIGHT + ) ) + +500 +uwšp +-> +zoom_size +. +height + = + +501 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, + +502 +ZOOM_DESIRED_HEIGHT + ); + +503 + } +} + +507  + $Profže_Upd©e_IcÚ_Sizes +Ð +þas¥ +, +Çm• +, +uwšp + ) + +508 +CÏss + * +þas¥ +; + +509 +CÏss + * +Çm• +; + +510 +U£rwš + * +uwšp +; + +512 +Size + +size +; + +514 +size + = + `Tžwš_G‘_Size +Ð +uwšp +-> +icÚp + ); + +516 iàÐ + `Profže_Has_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, + +517 +ICON_WIDTH + ) ) + +518 +size +. +width + = + `MAX +( 1, + +519 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, + +520 +ICON_WIDTH + ) ); + +522 iàÐ + `Profže_Has_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, + +523 +ICON_HEIGHT + ) ) + +524 +size +. +height + = + `MAX +( 1, + +525 + `Profže_G‘_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, + +526 +ICON_HEIGHT + ) ); + +528 +size + = + `IcÚs_S‘ +Ð +uwšp +, size, + +529 + `Profže_G‘_U£r_CÏss_SŒšg +( + +530 +þas¥ +, +Çm• +, +ICON_PIXMAP_FILE + ) ); + +532 + `Tžwš_S‘_Mš +Ð +uwšp +-> +icÚp +, +size + ); + +533 + `Tžwš_S‘_Max +Ð +uwšp +-> +icÚp +, +size + ); + +534 + `Tžwš_S‘_Size +Ð +uwšp +-> +icÚp +, +size + ); + +535 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +icÚp +, +size + ); + +536 + } +} + +540  + $Profže_C»©e_Sizes +Ð +uwšp + ) + +541 +U£rwš + * +uwšp +; + +543 +TWReùªgË + +»ù +; + +544 +TWPošt + +ûÁ” +; + +545 +Size + +siz +; + +547 +uwšp +-> +»guÏr_size +. +width + = + +548 + `Profže_G‘_U£r_CÏss_V®ue +Ð +CLASS_NULL +, CLASS_NULL, + +549 +NORMAL_DESIRED_WIDTH + ); + +550 +uwšp +-> +»guÏr_size +. +height + = + +551 + `Profže_G‘_U£r_CÏss_V®ue +Ð +CLASS_NULL +, CLASS_NULL, + +552 +NORMAL_DESIRED_HEIGHT + ); + +553 +uwšp +-> +zoom_size +. +width + = + +554 + `Profže_G‘_U£r_CÏss_V®ue +Ð +CLASS_NULL +, CLASS_NULL, + +555 +ZOOM_DESIRED_WIDTH + ); + +556 +uwšp +-> +zoom_size +. +height + = + +557 + `Profže_G‘_U£r_CÏss_V®ue +Ð +CLASS_NULL +, CLASS_NULL, + +558 +ZOOM_DESIRED_HEIGHT + ); + +560 +»ù +. +Ëá_x + = 0; + +561 +»ù +. +tÝ_y + = 0; + +563 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, uwšp-> +»guÏr_mš + ); + +564 +»ù +. +right_x + = +uwšp +-> +»guÏr_mš +. +width + - 1; + +565 +»ù +. +bÙtom_y + = +uwšp +-> +»guÏr_mš +. +height + - 1; + +566 + `COMPUTE_SIZE +Ð +»ù +, +siz + ); + +567 + `COMPUTE_CENTER +Ð +»ù +, +ûÁ” + ); + +568 + `Tžwš_S‘ +Ð +uwšp +-> +wšp +, +ûÁ” +, +siz + ); + +569 + `Tžwš_S‘_Size +Ð +uwšp +-> +wšp +, uwšp-> +»guÏr_size + ); + +571 +siz +. +width + = + +572 + `Profže_G‘_U£r_CÏss_V®ue +Ð +CLASS_NULL +, CLASS_NULL, + +573 +ICON_WIDTH + ); + +574 +siz +. +height + = + +575 + `Profže_G‘_U£r_CÏss_V®ue +Ð +CLASS_NULL +, CLASS_NULL, + +576 +ICON_HEIGHT + ); + +578 +»ù +. +right_x + = +siz +. +width + - 1; + +579 +»ù +. +bÙtom_y + = +siz +. +height + - 1; + +580 + `COMPUTE_SIZE +Ð +»ù +, +siz + ); + +581 + `COMPUTE_CENTER +Ð +»ù +, +ûÁ” + ); + +583 + `Tžwš_S‘_Mš +Ð +uwšp +-> +icÚp +, +siz + ); + +584 + `Tžwš_S‘_Max +Ð +uwšp +-> +icÚp +, +siz + ); + +585 + `Tžwš_S‘ +Ð +uwšp +-> +icÚp +, +ûÁ” +, +siz + ); + +587 +uwšp +-> +»zoom_»ù + = + `Tžwš_G‘_DesktÝ_ReùªgË +(); + +588 + } +} + +592  + $Profže_DeçuÉ_Sizes +() + +594 +Size + +siz +; + +596 +abs_max_siz +. +width + = + `U£rGlob®s_G‘_V®ue +Ð +FULL_WIDTH + ); + +597 +abs_max_siz +. +height + = + `U£rGlob®s_G‘_V®ue +Ð +FULL_HEIGHT + ); + +599 +siz + = + `RegiÚ_Mšimum_Size +(); + +600 +abs_mš_siz +. +width + = + `U£rGlob®s_G‘_V®ue +Ð +ABS_MIN_WIDTH + ); + +601 +abs_mš_siz +. +height + = + `U£rGlob®s_G‘_V®ue +Ð +ABS_MIN_HEIGHT + ); + +602 + `S‘_Max_Size +Ð +abs_mš_siz +,‡bs_mš_siz, +siz + ); + +603 + `U£rGlob®s_S‘_V®ue +Ð +ABS_MIN_WIDTH +, +abs_mš_siz +. +width + ); + +604 + `U£rGlob®s_S‘_V®ue +Ð +ABS_MIN_HEIGHT +, +abs_mš_siz +. +height + ); + +606 + `U£rwš_CÚd_S‘_DeçuÉ_V®ue +Ð +CLIENT_MIN_WIDTH +, + +607 +abs_mš_siz +. +width + ); + +608 + `U£rwš_CÚd_S‘_DeçuÉ_V®ue +Ð +CLIENT_MIN_HEIGHT +, + +609 +abs_mš_siz +. +height + ); + +611 + `U£rwš_CÚd_S‘_DeçuÉ_V®ue +Ð +CLIENT_MAX_WIDTH +, + +612 +abs_max_siz +. +width + ); + +613 + `U£rwš_CÚd_S‘_DeçuÉ_V®ue +Ð +CLIENT_MAX_HEIGHT +, + +614 +abs_max_siz +. +height + ); + +616 + `U£rwš_CÚd_S‘_DeçuÉ_V®ue +Ð +NORMAL_DESIRED_WIDTH +, + +617 +abs_mš_siz +. +width + ); + +618 + `U£rwš_CÚd_S‘_DeçuÉ_V®ue +Ð +NORMAL_DESIRED_HEIGHT +, + +619 +abs_mš_siz +. +height + ); + +621 + `U£rwš_CÚd_S‘_DeçuÉ_V®ue +Ð +USER_NORMAL_MIN_WIDTH +, + +622 +abs_mš_siz +. +width + ); + +623 + `U£rwš_CÚd_S‘_DeçuÉ_V®ue +Ð +USER_NORMAL_MIN_HEIGHT +, + +624 +abs_mš_siz +. +height + ); + +626 + `U£rwš_CÚd_S‘_DeçuÉ_V®ue +Ð +ZOOM_DESIRED_WIDTH +, + +627 +abs_mš_siz +. +width + ); + +628 + `U£rwš_CÚd_S‘_DeçuÉ_V®ue +Ð +ZOOM_DESIRED_HEIGHT +, + +629 +abs_mš_siz +. +height + ); + +631 + `U£rwš_CÚd_S‘_DeçuÉ_V®ue +Ð +USER_ZOOM_MIN_WIDTH +, + +632 +abs_mš_siz +. +width + ); + +633 + `U£rwš_CÚd_S‘_DeçuÉ_V®ue +Ð +USER_ZOOM_MIN_HEIGHT +, + +634 +abs_mš_siz +. +height + ); + +636 + `U£rwš_CÚd_S‘_DeçuÉ_V®ue +Ð +USER_MAX_WIDTH +, + +637 +abs_max_siz +. +width + ); + +638 + `U£rwš_CÚd_S‘_DeçuÉ_V®ue +Ð +USER_MAX_HEIGHT +, + +639 +abs_max_siz +. +height + ); + +641 + } +} + +645  + $Profže_S‘_Glob®_V®ues +() + +647 +Size + +siz +; + +649 +siz +. +width + = siz. +height + = 2; + +650 + `Tžwš_S‘_AbsÞu‹_Mšimums +Ð +siz + ); + +651 + `Tžwš_S‘_G¿v™y +Ð + `U£rGlob®s_G‘_V®ue +Ð +GRAVITY + ) ); + +652 + } +} + +658  + $Profže_S‘_Glob®_O±iÚ +Ð +Ýt +, +v® + ) + +659 * +Ýt +, * +v® +; + +661  +i +; + +662  +num +; + +664  +i + = 0; i < () +LENGTH_GLOBAL_OPTIONS +; i++ ) + +665 iàÐ + `¡»ql +Ð +Ýt +, +glob®_¡rs +[ +i +] ) ) + +667 iàÐ + `¡»ql +Ð +v® +, "on" ) ) + +668 + `Tžwš_S‘_Glob®_O±iÚ +Ð( +Glob®_O±iÚs +) +i +, +TRUE + ); + +670 + `Tžwš_S‘_Glob®_O±iÚ +Ð( +Glob®_O±iÚs +) +i +, +FALSE + ); + +674  +i + = 0; i < () +LENGTH_WINDOW_OPTIONS +; i++ ) + +675 iàÐ + `¡»ql +Ð +Ýt +, +wšdow_¡rs +[ +i +] ) ) + +677 iàÐ + `¡»ql +Ð +v® +, "on" ) ) + +678 + `Tžwš_S‘_DeçuÉ_O±iÚ +Ð( +Wšdow_O±iÚs +) +i +, +TRUE + ) + +680 + `Tžwš_S‘_DeçuÉ_O±iÚ +Ð( +Wšdow_O±iÚs +) +i +, +FALSE + ) + +684  +i + = 0; i < () +LENGTH_USER_GLOBAL_OPTIONS +; i++ ) + +685 iàÐ + `¡»ql +Ð +Ýt +, +u£r_glob®_¡rs +[ +i +] ) ) + +687 iàÐ + `¡»ql +Ð +v® +, "on" ) ) + +688 + `U£rGlob®s_S‘_O±iÚ +Ð( +U£r_Glob®_O±iÚs +) +i +, +TRUE + ); + +690 + `U£rGlob®s_S‘_O±iÚ +Ð( +U£r_Glob®_O±iÚs +) +i +, +FALSE + ); + +694  +i + = 0; i < () +LENGTH_USER_WINDOW_OPTIONS +; i++ ) + +695 iàÐ + `¡»ql +Ð +Ýt +, +u£r_wšdow_¡rs +[ +i +] ) ) + +697 iàÐ + `¡»ql +Ð +v® +, "on" ) ) + +698 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð( +U£r_Wšdow_O±iÚs +) +i +, +TRUE + ) + +700 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð( +U£r_Wšdow_O±iÚs +) +i +, +FALSE + ) + +704  +i + = 0; i < () +LENGTH_USER_GLOBAL_VALUES +; i++ ) + +705 iàÐ + `¡»ql +Ð +Ýt +, +u£r_glob®_v®ue_¡rs +[ +i +] ) ) + +707 iàÐ + `ssÿnf +Ð +v® +, "%d", & +num + ) == 1 ) + +708 + `U£rGlob®s_S‘_V®ue +Ð( +U£r_Glob®_V®ues +) +i +, +num + ); + +712  +i + = 0; i < () +LENGTH_USER_WINDOW_VALUES +; i++ ) + +713 iàÐ + `¡»ql +Ð +Ýt +, +u£r_wšdow_v®ue_¡rs +[ +i +] ) ) + +715 iàÐ + `ssÿnf +Ð +v® +, "%d", & +num + ) == 1 ) + +716 + `U£rwš_S‘_DeçuÉ_V®ue +Ð( +U£r_Wšdow_V®ues +) +i +, +num + ); + +720  +i + = 0; i < () +LENGTH_USER_WINDOW_STRINGS +; i++ ) + +721 iàÐ + `¡»ql +Ð +Ýt +, +u£r_wšdow_¡ršg_¡rs +[ +i +] ) ) + +723 + `U£rwš_S‘_DeçuÉ_SŒšg +Ð( +U£r_Wšdow_V®ues +) +i +, +v® + ); + +727  +i + = 0; i < () +LENGTH_SYNONYMS +; i += 2 ) + +728 iàÐ + `¡»ql +Ð +Ýt +, +synÚym_¡rs +[ +i +] ) ) + +729 + `Profže_S‘_Glob®_O±iÚ +Ð +synÚym_¡rs +[ +i ++1], +v® + ); + +731 + } +} + +735  + $Profže_CÏss_S‘_O±iÚ +Ð +þas¥ +, +Ýt +, +v® + ) + +736 +CÏss + * +þas¥ +; + +737 * +Ýt +, * +v® +; + +739  +i +; + +740  +num +; + +742  +i + = 0; i < () +LENGTH_WINDOW_OPTIONS +; i++ ) + +743 iàÐ + `¡»ql +Ð +Ýt +, +wšdow_¡rs +[ +i +] ) ) + +745 iàÐ + `¡»ql +Ð +v® +, "on" ) ) + +746 + `Tžwš_S‘_CÏss_O±iÚ +Ð +þas¥ +, ( +Wšdow_O±iÚs +) +i +, +TRUE + ) + +748 + `Tžwš_S‘_CÏss_O±iÚ +Ð +þas¥ +, ( +Wšdow_O±iÚs +) +i +, +FALSE + ) + +752  +i + = 0; i < () +LENGTH_USER_WINDOW_OPTIONS +; i++ ) + +753 iàÐ + `¡»ql +Ð +Ýt +, +u£r_wšdow_¡rs +[ +i +] ) ) + +755 iàÐ + `¡»ql +Ð +v® +, "on" ) ) + +756 + `U£rwš_S‘_CÏss_O±iÚ +Ð +þas¥ +, + +757 ( +U£r_Wšdow_O±iÚs +) +i +, +TRUE + ) + +759 + `U£rwš_S‘_CÏss_O±iÚ +Ð +þas¥ +, + +760 ( +U£r_Wšdow_O±iÚs +) +i +, +FALSE + ) + +764  +i + = 0; i < () +LENGTH_USER_WINDOW_VALUES +; i++ ) + +765 iàÐ + `¡»ql +Ð +Ýt +, +u£r_wšdow_v®ue_¡rs +[ +i +] ) ) + +767 iàÐ + `ssÿnf +Ð +v® +, "%d", & +num + ) == 1 ) + +768 + `U£rwš_S‘_CÏss_V®ue +( + +769 +þas¥ +, ( +U£r_Wšdow_V®ues +) +i +, +num + ); + +773  +i + = 0; i < () +LENGTH_USER_WINDOW_STRINGS +; i++ ) + +774 iàÐ + `¡»ql +Ð +Ýt +, +u£r_wšdow_¡ršg_¡rs +[ +i +] ) ) + +776 + `U£rwš_S‘_CÏss_SŒšg +( + +777 +þas¥ +, ( +U£r_Wšdow_V®ues +) +i +, +v® + ); + +781 iàÐ + `¡»ql +Ð +Ýt +, "superClass" ) ) + +782 + `¡r_cÝy +Ð +þas¥ +-> +su³r_Çme +, +v® + ); + +784  +i + = 0; i < () +LENGTH_SYNONYMS +; i += 2 ) + +785 iàÐ + `¡»ql +Ð +Ýt +, +synÚym_¡rs +[ +i +] ) ) + +786 + `Profže_CÏss_S‘_O±iÚ +Ð +þas¥ +, +synÚym_¡rs +[ +i ++1], +v® + ); + +787 + } +} + +793  +CÏss + * + $Profže_CÏs£s_Fšd_Name +Ð +Çm + ) + +794 * +Çm +; + +796 +CÏss + * +þas¥ +; + +798 iàÐ +Çm + =ð +NULL + ) + +799  +CLASS_NULL +; + +801  +þas¥ + = +þass_h—d +; cÏs¥ !ð +CLASS_NULL +; + +802 +þas¥ + = cÏs¥-> +Ãxt + ) + +804 iàÐ + `¡»ql +Ð +Çm +, +þas¥ +-> +Çme + ) ) + +805  +þas¥ +; + +807  +CLASS_NULL +; + +808 + } +} + +812  +CÏss + * + $Profže_CÏs£s_Add +Ð +Çm + ) + +813 * +Çm +; + +815 +CÏss + * +þas¥ +; + +816 +þas¥ + = + `®loÿ‹ +Ð +CÏss +, 1 ); + +818 +þas¥ +-> +Ãxt + = +þass_h—d +; + +819 +þass_h—d + = +þas¥ +; + +821 + `¡r_cÝy +Ð +þas¥ +-> +Çme +, +Çm + ); + +823 + `Profže_CÏss_Re£t +Ð +þas¥ + ); + +825  +þas¥ +; + +826 + } +} + +830  +CÏss + * + $Profže_CÏs£s_G‘_Name +Ð +Çm + ) + +831 * +Çm +; + +833 +CÏss + * +þas¥ +; + +835 +þas¥ + = + `Profže_CÏs£s_Fšd_Name +Ð +Çm + ); + +836 iàÐ( +þas¥ + =ð +CLASS_NULL +è&& ( +Çm + !ð +NULL +) ) + +837 +þas¥ + = + `Profže_CÏs£s_Add +Ð +Çm + ); + +838  +þas¥ +; + +839 + } +} + +843  + $Profže_CÏs£s_Re£t +() + +845 +CÏss + * +þas¥ +; + +847  +þas¥ + = +þass_h—d +; cÏs¥ !ð +CLASS_NULL +; + +848 +þas¥ + = cÏs¥-> +Ãxt + ) + +849 + `Profže_CÏss_Re£t +Ð +þas¥ + ); + +851 + `Profže_DeçuÉ_CÏss_Re£t +(); + +853 + `U£rGlob®s_S‘_V®ue +Ð +ABS_MIN_WIDTH +, 2 ); + +854 + `U£rGlob®s_S‘_V®ue +Ð +ABS_MIN_HEIGHT +, 2 ); + +856 +´eâum + = 0; + +857 + } +} + +863  + $Profže_R—d_Fže +Ð +fžÇm + ) + +864 * +fžÇm +; + +866  +¡r +[256]; + +867  +wmÇm +[128], +Çm +[128], +Ýt +[128], +v® +[128]; + +868 +FILE + * +¡»am +; + +869 +CÏss + * +þas¥ +; + +871 +¡»am + = + `O³n_R—d +Ð +fžÇm + ); + +872 iàÐ +¡»am + =ð +NULL + ) ; + +873  + `fg‘s +Ð +¡r +, 256, +¡»am + ) !ð +NULL + ) + +877 iàÐ + `ssÿnf +Ð +¡r +, "%[^.]%*c%[^.]%*c%[^:]%*c%s", + +878 +wmÇm +, +Çm +, +Ýt +, +v® + ) == 4 ) + +880 iàÐ + `¡»ql +Ð +wmÇm +, "rtl" ) || + +881 + `¡»ql +Ð +wmÇm +, "Wm" ) || + +882 + `¡»ql +Ð +wmÇm +, "*" ) ) + +884 +þas¥ + = + `Profže_CÏs£s_G‘_Name +Ð +Çm + ); + +885 + `Profže_CÏss_S‘_O±iÚ +Ð +þas¥ +, +Ýt +, +v® + ); + +891 iàÐ + `ssÿnf +Ð +¡r +, "*%[^.]%*c%[^:]%*c%s", + +892 +Çm +, +Ýt +, +v® + ) == 3 ) + +894 +þas¥ + = + `Profže_CÏs£s_G‘_Name +Ð +Çm + ); + +895 + `Profže_CÏss_S‘_O±iÚ +Ð +þas¥ +, +Ýt +, +v® + ); + +900 iàÐ + `ssÿnf +Ð +¡r +, "%[^.]%*c%[^:]%*c%s", + +901 +Çm +, +Ýt +, +v® + ) == 3 ) + +903 iàÐ + `¡»ql +Ð +Çm +, "rtl" ) || + +904 + `¡»ql +Ð +Çm +, "Wm" ) || + +905 + `¡»ql +Ð +Çm +, "*" ) ) + +906 + `Profže_S‘_Glob®_O±iÚ +Ð +Ýt +, +v® + ); + +909 +þas¥ + = + `Profže_CÏs£s_G‘_Name +Ð +Çm + ); + +910 + `Profže_CÏss_S‘_O±iÚ +Ð +þas¥ +, +Ýt +, +v® + ); + +916 iàÐ + `ssÿnf +Ð +¡r +, "*%[^:]%*c%s", + +917 +Ýt +, +v® + ) == 2 ) + +919 + `Profže_S‘_Glob®_O±iÚ +Ð +Ýt +, +v® + ); + +924 iàÐ + `ssÿnf +Ð +¡r +, "%[^*]%*c%[^:]%*c%s", + +925 +wmÇm +, +Ýt +, +v® + ) == 3 ) + +927 iàÐ + `¡»ql +Ð +wmÇm +, "rtl" ) || streql( wmnam, "Wm" ) ) + +928 + `Profže_S‘_Glob®_O±iÚ +Ð +Ýt +, +v® + ); + +933 iàÐ + `ssÿnf +Ð +¡r +, "%[^:]%*c%s", + +934 +Ýt +, +v® + ) == 2 ) + +936 + `Profže_S‘_Glob®_O±iÚ +Ð +Ýt +, +v® + ); + +939 + `fþo£ +Ð +¡»am + ); + +940 + } +} + +944  + $Profže_R—d_Fžes +Ð +fžÇms + ) + +945 * +fžÇms +; + +947 * +¡¬ +, * +cu½ +; + +948  +Ï¡ch¬ +; + +950 +¡¬ + = +fžÇms +; + +952  * +¡¬ + != '\0' ) + +954  ( * +¡¬ + != '\0' ) && + +955 ÐÐ* +¡¬ + == ' ' ) || ( *startp == '\t' ) ) ) + +956 +¡¬ +++; + +958 +cu½ + = +¡¬ +; + +960  ( * +cu½ + != 0 ) && ( *curp != ' ' ) && ( *curp != '\t' ) ) + +961 +cu½ +++; + +963 iàÐ +¡¬ + !ð +cu½ + ) + +965 +Ï¡ch¬ + = * +cu½ +; + +966 * +cu½ + = '\0'; + +967 + `Profže_R—d_Fže +Ð +¡¬ + ); + +968 * +cu½ + = +Ï¡ch¬ +; + +971 +¡¬ + = +cu½ +; + +973 + } +} + +977  + $Profže_R—d +Ð +fžÇms + ) + +978 * +fžÇms +; + +980  + `Profže_DeçuÉs +(); + +982 + `Profže_CÏs£s_Re£t +(); + +984 + `Profže_DeçuÉs +(); + +986 + `Profže_R—d_Fže +( ".Xdefaults" ); + +987 + `Profže_R—d_Fže +( ".rtl.preferences" ); + +988 iàÐ +fžÇms + !ð +NULL + ) + +989 + `Profže_R—d_Fžes +Ð +fžÇms + ); + +991 + `Profže_DeçuÉ_Sizes +(); + +992 + `Profže_S‘_Glob®_V®ues +(); + +993 + } +} + +997  + $Profže_Su³r_P»ã»nû +Ð +þas¥ + ) + +998 +CÏss + * +þas¥ +; + +1000  +fžÇm +[128]; + +1002 +´eâum +++; + +1004  ( +þas¥ + !ð +CLASS_NULL +è&& (þas¥-> +´eâum + == 0) ) + +1006 +þas¥ +-> +´eâum + =…refnum; + +1008 + `¡rýy +Ð +fžÇm +, "." ); + +1009 + `¡rÿt +Ð +fžÇm +, +þas¥ +-> +Çme + ); + +1010 + `¡rÿt +Ð +fžÇm +, ".preferences" ); + +1012 + `Profže_R—d_Fže +Ð +fžÇm + ); + +1014 ià(! +þas¥ +-> +su³r_Çme + =ð +NULL + ) + +1016 +þas¥ +-> +su³r + = + +1017 + `Profže_CÏs£s_G‘_Name +Ð +þas¥ +-> +su³r_Çme + ); + +1019 iàÐ +þas¥ +-> +su³r +-> +´eâum + ==…refnum ) + +1020 +þas¥ +-> +su³r + = +CLASS_NULL +; + +1022 +þas¥ + = cÏs¥-> +su³r +; + +1024 + } +} + +1030  +boÞ + + gex¶Ýts +[() +LENGTH_EXPLICIT_WINDOW_OPTIONS +]; + +1034  + $Profže_Ex¶ic™_Cˬ +Ð +uwšp + ) + +1035 +U£rwš + * +uwšp +; + +1037  +i +; + +1039  +i + = 0; i < () +LENGTH_EXPLICIT_WINDOW_OPTIONS +; i++ ) + +1040 + `Ex¶ic™_Wšdow_Cˬ +Ð +uwšp +, + +1041 (( +Ex¶ic™_Wšdow_O±iÚs +)( +i +)) ); + +1042 + } +} + +1046  + $Profže_Ex¶ic™_Save +Ð +uwšp + ) + +1047 +U£rwš + * +uwšp +; + +1049 iàÐ + `Ex¶ic™_Wšdow_G‘ +Ð +uwšp +, +EXPLICIT_REQUIRE_MANUAL_CLOSE + ) ) + +1050 +ex¶Ýts +[() +EXPLICIT_REQUIRE_MANUAL_CLOSE +] = + +1051 + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +REQUIRE_MANUAL_CLOSE + ); + +1052 iàÐ + `Ex¶ic™_Wšdow_G‘ +Ð +uwšp +, +EXPLICIT_FIXED_WIDTH + ) ) + +1053 +ex¶Ýts +[() +EXPLICIT_FIXED_WIDTH +] = + +1054 + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_WIDTH + ); + +1055 iàÐ + `Ex¶ic™_Wšdow_G‘ +Ð +uwšp +, +EXPLICIT_FIXED_HEIGHT + ) ) + +1056 +ex¶Ýts +[() +EXPLICIT_FIXED_HEIGHT +] = + +1057 + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_HEIGHT + ); + +1058 iàÐ + `Ex¶ic™_Wšdow_G‘ +Ð +uwšp +, +EXPLICIT_FIXED_COMPLETELY + ) ) + +1059 +ex¶Ýts +[() +EXPLICIT_FIXED_COMPLETELY +] = + +1060 + `Tžwš_G‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_COMPLETELY + ); + +1061 iàÐ + `Ex¶ic™_Wšdow_G‘ +Ð +uwšp +, +EXPLICIT_LISTENER_TIED_TO_ZOOM + ) ) + +1062 +ex¶Ýts +[() +EXPLICIT_LISTENER_TIED_TO_ZOOM +] = + +1063 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +LISTENER_TIED_TO_ZOOM + ); + +1064 iàÐ + `Ex¶ic™_Wšdow_G‘ +Ð +uwšp +, +EXPLICIT_ZOOM_TIED_TO_DESIRE + ) ) + +1065 +ex¶Ýts +[() +EXPLICIT_ZOOM_TIED_TO_DESIRE +] = + +1066 + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ZOOM_TIED_TO_DESIRE + ); + +1067 + } +} + +1071  + $Profže_Ex¶ic™_Re¡Üe +Ð +uwšp + ) + +1072 +U£rwš + * +uwšp +; + +1074 iàÐ + `Ex¶ic™_Wšdow_G‘ +Ð +uwšp +, +EXPLICIT_REQUIRE_MANUAL_CLOSE + ) ) + +1075 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +REQUIRE_MANUAL_CLOSE +, + +1076 +ex¶Ýts +[(è +EXPLICIT_REQUIRE_MANUAL_CLOSE + ] ); + +1077 iàÐ + `Ex¶ic™_Wšdow_G‘ +Ð +uwšp +, +EXPLICIT_FIXED_WIDTH + ) ) + +1078 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_WIDTH +, + +1079 +ex¶Ýts +[(è +EXPLICIT_FIXED_WIDTH + ] ); + +1080 iàÐ + `Ex¶ic™_Wšdow_G‘ +Ð +uwšp +, +EXPLICIT_FIXED_HEIGHT + ) ) + +1081 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_HEIGHT +, + +1082 +ex¶Ýts +[(è +EXPLICIT_FIXED_HEIGHT + ] ); + +1083 iàÐ + `Ex¶ic™_Wšdow_G‘ +Ð +uwšp +, +EXPLICIT_FIXED_COMPLETELY + ) ) + +1084 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, +FIXED_COMPLETELY +, + +1085 +ex¶Ýts +[(è +EXPLICIT_FIXED_COMPLETELY + ] ); + +1086 iàÐ + `Ex¶ic™_Wšdow_G‘ +Ð +uwšp +, +EXPLICIT_LISTENER_TIED_TO_ZOOM + ) ) + +1087 + `U£rwš_S‘_Wšdow_O±iÚ +Ð +uwšp +, +LISTENER_TIED_TO_ZOOM +, + +1088 +ex¶Ýts +[(è +EXPLICIT_LISTENER_TIED_TO_ZOOM + ] ); + +1089 iàÐ + `Ex¶ic™_Wšdow_G‘ +Ð +uwšp +, +EXPLICIT_ZOOM_TIED_TO_DESIRE + ) ) + +1090 + `U£rwš_S‘_Wšdow_O±iÚ +Ð +uwšp +, +ZOOM_TIED_TO_DESIRE +, + +1091 +ex¶Ýts +[(è +EXPLICIT_ZOOM_TIED_TO_DESIRE + ] ); + +1092 + } +} + +1096  + $Profže_S‘_O±iÚs +Ð +þas¥ +, +Çm• +, +uwšp + ) + +1097 +CÏss + * +þas¥ +; + +1098 +CÏss + * +Çm• +; + +1099 +U£rwš + * +uwšp +; + +1101  +i +; + +1103 + `Profže_Ex¶ic™_Save +Ð +uwšp + ); + +1105  +i + = 0; i < () +LENGTH_WINDOW_OPTIONS +; i++ ) + +1106 + `Tžwš_S‘_Wšdow_O±iÚ +Ð +uwšp +-> +wšp +, (( +Wšdow_O±iÚs +)( +i +)), + +1107 + `Profže_G‘_CÏss_O±iÚ +( + +1108 +þas¥ +, +Çm• +, ( +Wšdow_O±iÚs +)( +i +)) ); + +1110  +i + = 0; i < () +LENGTH_USER_WINDOW_OPTIONS +; i++ ) + +1111 + `U£rwš_S‘_Wšdow_O±iÚ +Ð +uwšp +, (( +U£r_Wšdow_O±iÚs +)( +i +)), + +1112 + `Profže_G‘_U£r_CÏss_O±iÚ +( + +1113 +þas¥ +, +Çm• +, ( +U£r_Wšdow_O±iÚs +)( +i +)) ); + +1115 + `Profže_Ex¶ic™_Re¡Üe +Ð +uwšp + ); + +1116 + } +} + +1120 +boÞ + + $Profže_Suµl›s_U£r_V®ue +Ð +uwšp +, +Ýt + ) + +1121 +U£rwš + * +uwšp +; + +1122 +U£r_Wšdow_V®ues + +Ýt +; + +1124 +CÏss + * +þas¥ +; + +1125 +CÏss + * +Çm• +; + +1127 +þas¥ + = + `Profže_CÏs£s_G‘_Name +Ð +uwšp +-> +»s_þass + ); + +1128 +Çm• + = + `Profže_CÏs£s_G‘_Name +Ð +uwšp +-> +id’t™y + ); + +1129  + `Profže_Has_U£r_CÏss_V®ue +Ð +þas¥ +, +Çm• +, +Ýt + ); + +1130 + } +} + +1134 +boÞ + + $Profže_Suµl›s_U£r_SŒšg +Ð +uwšp +, +Ýt + ) + +1135 +U£rwš + * +uwšp +; + +1136 +U£r_Wšdow_SŒšgs + +Ýt +; + +1138 +CÏss + * +þas¥ +; + +1139 +CÏss + * +Çm• +; + +1141 +þas¥ + = + `Profže_CÏs£s_G‘_Name +Ð +uwšp +-> +»s_þass + ); + +1142 +Çm• + = + `Profže_CÏs£s_G‘_Name +Ð +uwšp +-> +»s_Çme + ); + +1143  + `Profže_Has_U£r_CÏss_SŒšg +Ð +þas¥ +, +Çm• +, +Ýt + ); + +1144 + } +} + +1148 +boÞ + + $Profže_Suµl›s_Pixm­ +Ð +uwšp + ) + +1149 +U£rwš + * +uwšp +; + +1151  + `Profže_Suµl›s_U£r_SŒšg +Ð +uwšp +, +ICON_PIXMAP_FILE + ); + +1152 + } +} + +1158  + $Profže_P»ã»nûs +Ð +þas¥ +, +Çm• +, +uwšp + ) + +1159 +CÏss + * +þas¥ +; + +1160 +CÏss + * +Çm• +; + +1161 +U£rwš + * +uwšp +; + +1163 + `Profže_Su³r_P»ã»nû +Ð +þas¥ + ); + +1164 + `Profže_Su³r_P»ã»nû +Ð +Çm• + ); + +1166 + `Profže_S‘_O±iÚs +Ð +þas¥ +, +Çm• +, +uwšp + ); + +1167 + `Profže_S‘_Info +Ð +þas¥ +, +Çm• +, +uwšp + ); + +1168 + } +} + +1172  + $Profže_C»©e +Ð +uwšp + ) + +1173 +U£rwš + * +uwšp +; + +1175 + `Profže_Ex¶ic™_Cˬ +Ð +uwšp + ); + +1177 + `Profže_S‘_O±iÚs +Ð +CLASS_NULL +, CLASS_NULL, +uwšp + ); + +1178 + `Profže_S‘_Info +Ð +CLASS_NULL +, CLASS_NULL, +uwšp + ); + +1180 + `Profže_S‘_Sizes +Ð +CLASS_NULL +, CLASS_NULL, +uwšp + ); + +1181 + `Profže_C»©e_Sizes +Ð +uwšp + ); + +1183 + `U£rwš_Body_Mš_Max +Ð +uwšp + ); + +1184 + `U£rwš_EnfÜû_Cl›Á_Sizes +Ð +uwšp + ); + +1185 + `U£rwš_Check_Sizes +Ð +uwšp + ); + +1186 + `U£rwš_FÞlowup_Sizes +Ð +uwšp + ); + +1187 + } +} + +1191  + $Profže_P»·» +Ð +uwšp + ) + +1192 +U£rwš + * +uwšp +; + +1194 +CÏss + * +þas¥ +; + +1195 +CÏss + * +Çm• +; + +1197 +þas¥ + = + `Profže_CÏs£s_G‘_Name +Ð +uwšp +-> +»s_þass + ); + +1198 +Çm• + = + `Profže_CÏs£s_G‘_Name +Ð +uwšp +-> +»s_Çme + ); + +1200 + `Profže_P»ã»nûs +Ð +þas¥ +, +Çm• +, +uwšp + ); + +1201 + `Profže_Upd©e_IcÚ_Sizes +Ð +þas¥ +, +Çm• +, +uwšp + ); + +1203 + `U£rwš_S‘up_Sizes +Ð +uwšp + ); + +1205 + `Profže_S‘_Sizes +Ð +þas¥ +, +Çm• +, +uwšp + ); + +1206 + `Profže_Upd©e_Sizes +Ð +þas¥ +, +Çm• +, +uwšp + ); + +1208 + `U£rwš_Body_Mš_Max +Ð +uwšp + ); + +1209 + `U£rwš_EnfÜû_Cl›Á_Sizes +Ð +uwšp + ); + +1210 + `U£rwš_Check_Sizes +Ð +uwšp + ); + +1211 + `U£rwš_FÞlowup_Sizes +Ð +uwšp + ); + +1213 iàÐ + `Same_Size +Ð + `Tžwš_G‘_Mš +Ð +uwšp +-> +wšp + ), + +1214 + `Tžwš_G‘_Max +Ð +uwšp +-> +wšp + ) ) ) + +1215 +uwšp +-> +sized + = +TRUE +; + +1216 + } +} + +1220  + $Profže_Layout +Ð +uwšp + ) + +1221 +U£rwš + * +uwšp +; + +1223 +Layou + +Ïyou + = +LAYOUT_NULL +; + +1225 iàÐ( +uwšp +-> +»s_þass + !ð +NULL +è|| (uwšp-> +»s_Çme + != NULL ) ) + +1226 +Ïyou + = + `Layout_Fšd +Ð +uwšp + ); + +1228 + `Profže_P»·» +Ð +uwšp + ); + +1230 iàÐ +Ïyou + !ð +LAYOUT_NULL + ) + +1231 +uwšp +-> +Ïyout_found + = +TRUE +; + +1233 + `U£rwš_S‘up_Sizes +Ð +uwšp + ); + +1234 + `Layout_S‘_V®ues +Ð +Ïyou +, +uwšp + ); + +1235 + `U£rwš_EnfÜû_Cl›Á_Sizes +Ð +uwšp + ); + +1236 + `U£rwš_Check_Sizes +Ð +uwšp + ); + +1237 + `U£rwš_FÞlowup_Sizes +Ð +uwšp + ); + +1238 + `U£rwš_Bound_Size +Ð +uwšp + ); + +1240 + `Layout_S‘_O±iÚs +Ð +Ïyou +, +uwšp + ); + +1241 + } +} + +1245  + $Profže_Upd©e_Wšdow +Ð +uwšp + ) + +1246 +U£rwš + * +uwšp +; + +1248 +CÏss + * +þas¥ +; + +1249 +CÏss + * +Çm• +; + +1251 +þas¥ + = + `Profže_CÏs£s_G‘_Name +Ð +uwšp +-> +»s_þass + ); + +1252 +Çm• + = + `Profže_CÏs£s_G‘_Name +Ð +uwšp +-> +»s_Çme + ); + +1254 + `Profže_P»ã»nûs +Ð +þas¥ +, +Çm• +, +uwšp + ); + +1255 + `Profže_Upd©e_IcÚ_Sizes +Ð +þas¥ +, +Çm• +, +uwšp + ); + +1257 + `U£rwš_S‘up_Sizes +Ð +uwšp + ); + +1258 + `U£rwš_Body_Mš_Max +Ð +uwšp + ); + +1259 + `U£rwš_EnfÜû_Cl›Á_Sizes +Ð +uwšp + ); + +1260 + `U£rwš_FÞlowup_Sizes +Ð +uwšp + ); + +1261 + } +} + +1267  + $Profže_Upd©e +Ð +fžÇms + ) + +1268 * +fžÇms +; + +1270 +Tžwšp + +wšp +; + +1271 +U£rwš + * +uwšp +; + +1273 + `Profže_M’u_R—d +(); + +1274 + `Profže_R—d +Ð +fžÇms + ); + +1275 + `Layout_Upd©e +Ð +fžÇms + ); + +1277 + `Tžwš_G’_O³n_Wšdows +(); + +1278  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +1280 +uwšp + = + `U£rwš_G‘ +Ð +wšp + ); + +1281 iàÐ +uwšp +-> +wšp + == winp ) + +1282 + `Profže_Upd©e_Wšdow +Ð +uwšp + ); + +1285 + `Tžwš_G’_Clo£d_Wšdows +(); + +1286  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +1288 +uwšp + = + `U£rwš_G‘ +Ð +wšp + ); + +1289 iàÐ( +uwšp +-> +wšp + =ðwšpè&& (uwšp-> +cu¼’t_ty³ + !ð +¹l +) ) + +1290 + `Profže_Upd©e_Wšdow +Ð +uwšp + ); + +1292 + } +} + +1296  + $Profže_In™ +Ð +m’u +, +´oc + ) + +1297 +TžeM’u + +m’u +; + +1298 +VoidFunc + +´oc +; + +1300 + `Profže_M’u_In™ +Ð +m’u +, +´oc + ); + +1301 + `Profže_M’u_R—d +(); + +1303 + `Profže_R—d +Ð + `Layout_In™ +() ); + +1304 + `Layout_R—d +(); + +1305 + } +} + +1311  + ~"deçuÉs.i +" + + @profile.h + +30  +Profže_In™ +(); + +32  +Profže_C»©e +(); + +35  +Profže_P»·» +(); + +38  +Profže_Upd©e +(); + +41  +Profže_Layout +(); + +44 +boÞ + +Profže_Suµl›s_U£r_V®ue +(); + +47 +boÞ + +Profže_Suµl›s_U£r_SŒšg +(); + +50 +boÞ + +Profže_Suµl›s_Pixm­ +(); + + @property.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "%W% %H%"; + +27  + ~"cÝyright.h +" + +34  + ~"uwšD.h +" + +35  + ~"uwšXD.h +" + +36  + ~"mªage.h +" + +37  + ~"´ofže.h +" + +38  + ~"š‹rf.h +" + +40  + ~ + +41  + ~ + +42  + ~ + +43  + ~"assoc.h +" + +44  + ~"xio.h +" + +46  + #ARGSLEN + (è200 + + ) + +47  + #HOSTLEN + (è50 + + ) + +48  + #FAILED + ( +Stus +è0 + + ) + +57 + $PrÝ”ty_G‘_DŸlogue_P¬’t +( +uwšp +) + +58 +U£rwš + * +uwšp +; + +60 +Wšdow + +·»Á +; + +62 +·»Á + = +NÚe +; + +63 ià( + `XG‘T¿ns›ÁFÜHšt +( +dpy +, + `U£rwš_XCl›Á +( +uwšp +), & +·»Á +)) + +68 + `U£rwš_XT¿ns›Á_FÜ +( +uwšp +èð( +·»Á + =ð +NÚe +)? +roÙ + :…arent; + +71 + `U£rwš_XT¿ns›Á_FÜ +( +uwšp +èð +NÚe +; + +73 + } +} + +80 + $PrÝ”ty_G‘_Wšdow_CÏss +( +uwšp +) + +81 +U£rwš + * +uwšp +; + +84 +XCÏssHšt + +þass_hšt +; + +87 +þass_hšt +. +»s_þass + = cÏss_hšt. +»s_Çme + = ""; + +89 () + `XG‘CÏssHšt +( +dpy +, + `U£rwš_XCl›Á +( +uwšp +), & +þass_hšt +); + +93 ià(!(( +þass_hšt +. +»s_þass + =ð""è&& (þass_hšt. +»s_Çme + == ""))) + +95 + `Mªage_S‘_CÏss +( +uwšp +, +þass_hšt +. +»s_þass +, + +96 +þass_hšt +. +»s_Çme +); + +98 ià( +þass_hšt +. +»s_þass + != "") + +99 + `XF»e +( +þass_hšt +. +»s_þass +); + +100 ià( +þass_hšt +. +»s_Çme + != "") + +101 + `XF»e +( +þass_hšt +. +»s_Çme +); + +104 + } +} + +111 + $PrÝ”ty_G‘_T™Ë +( +uwšp +) + +112 +U£rwš + * +uwšp +; + +114 +Stus + +¡©us +; + +115 * +s + = (*è +NULL +; + +118 +¡©us + = + `XF‘chName +( +dpy +, + `U£rwš_XCl›Á +( +uwšp +), & +s +); + +120 ià( +¡©us + !ð +FAILED + && +s + !ð(*è +NULL +) + +122 + `Mªage_S‘_Name +( +uwšp +, +s +); + +127 + `XF»e +( +s +); + +129 + } +} + +136 + $PrÝ”ty_G‘_Commªd_Lše +( +uwšp +) + +137 +U£rwš + * +uwšp +; + +139 +Stus + +¡©us +; + +140 +Atom + +aùu®_ty³ +; + +141  +aùu®_fÜm© +; + +142  +n™ems +; + +143  +by‹s_aá” +; + +144 * +´Ý +; + +147 +¡©us + = + `XG‘WšdowPrÝ”ty +( +dpy +, + `U£rwš_XCl›Á +( +uwšp +), + +148 +XA_WM_COMMAND +, + +149 (è0, +ARGSLEN +, +F®£ +, + +150 +XA_STRING +, + +151 & +aùu®_ty³ +, & +aùu®_fÜm© +, + +152 & +n™ems +, & +by‹s_aá” +, & +´Ý +); + +154 ià( +¡©us + =ð +Sucûss + && +aùu®_ty³ + !ð +NÚe +) + +156  +commªd +[ +ARGSLEN +]; + +157  +Ën +; + +160  +aùu®_fÜm© +) + +163 + `¡ºýy +( +commªd +, (*è +´Ý +, + +164 ( +Ën + = ( +ARGSLEN + <ð +n™ems +) ? ARGSLEN - 1 :‚items )); + +166 +commªd +[ +Ën +] = '\0'; + +167 + `IÁ”f_Cl›Á_S‘_Commªd +( +uwšp +, +commªd +); + +180 + `XF»e + ( (*è +´Ý + ); + +182 + } +} + +189 + $PrÝ”ty_G‘_Ho¡Çme +( +uwšp +) + +190 +U£rwš + * +uwšp +; + +192 +Stus + +¡©us +; + +193 +Atom + +aùu®_ty³ +; + +194  +aùu®_fÜm© +; + +195  +n™ems +; + +196  +by‹s_aá” +; + +197 * +´Ý +; + +203 +¡©us + = + `XG‘WšdowPrÝ”ty +( +dpy +, + `U£rwš_XCl›Á +( +uwšp +), + +204 +XA_WM_CLIENT_MACHINE +, + +205 (è0, +HOSTLEN +, +F®£ +, + +206 +XA_STRING +, + +207 & +aùu®_ty³ +, & +aùu®_fÜm© +, + +208 & +n™ems +, & +by‹s_aá” +, & +´Ý +); + +210 ià( +¡©us + =ð +Sucûss + && +aùu®_ty³ + !ð +NÚe +) + +212  +ho¡Çme +[ +HOSTLEN +]; + +213  +Ën +; + +216  +aùu®_fÜm© +) + +219 + `¡ºýy +( +ho¡Çme +, (*è +´Ý +, + +220 ( +Ën + = ( +HOSTLEN + <ð +n™ems +) ? HOSTLEN - 1 :‚items )); + +222 +ho¡Çme +[ +Ën +] = '\0'; + +223 + `Mªage_S‘_Ho¡Çme +( +uwšp +, +ho¡Çme +); + +236 + `XF»e + ( (*è +´Ý + ); + +238 + } +} + +245 + $PrÝ”ty_G‘_IcÚ_T™Ë +( +uwšp +) + +246 +U£rwš + * +uwšp +; + +248 +Stus + +¡©us +; + +249 * +s + = (*è +NULL +; + +252 +¡©us + = + `XG‘IcÚName +( +dpy +, + `U£rwš_XCl›Á +( +uwšp +), & +s +); + +254 ià( +¡©us + !ð +FAILED + && +s + !ð(*è +NULL +) + +256 + `Mªage_S‘_IcÚ_Name +( +uwšp +, +s +); + +261 + `XF»e +( +s +); + +263 + } +} + +270 + $PrÝ”ty_G‘_NÜm®_Size_Hšts +( +uwšp +) + +271 +U£rwš + * +uwšp +; + +273 +XSizeHšts + +hšts +; + +274 +Stus + +¡©us +; + +277 +¡©us + = + `XG‘NÜm®Hšts +( +dpy +, + `U£rwš_XCl›Á +( +uwšp +), & +hšts +); + +279 ià( +¡©us + !ð +FAILED +) + +281 +Size + +mš_size +, +max_size +, +šü_size +, +ba£_size +; + +283 +mš_size +. +width + = +hšts +. +mš_width +; + +284 +mš_size +. +height + = +hšts +. +mš_height +; + +285 +max_size +. +width + = +hšts +. +max_width +; + +286 +max_size +. +height + = +hšts +. +max_height +; + +287 +šü_size +. +width + = +hšts +. +width_šc +; + +288 +šü_size +. +height + = +hšts +. +height_šc +; + +289 +ba£_size + = +mš_size +; + +291 + `IÁ”f_Cl›Á_S‘_NÜm®_Hšts +( +uwšp +, + +292 +hšts +. +æags +, + +293 +mš_size +, + +294 +max_size +, + +295 +šü_size +, + +296 +hšts +. +mš_a¥eù +, + +297 +hšts +. +max_a¥eù +, + +298 +ba£_size +); + +300 + } +} + +303 + $PrÝ”ty_G‘_Geom‘ry_Hšts +( +uwšp +) + +304 +U£rwš + * +uwšp +; + +306 +XSizeHšts + +hšts +; + +307 +Stus + +¡©us +; + +310 +¡©us + = + `XG‘NÜm®Hšts +( +dpy +, + `U£rwš_XCl›Á +( +uwšp +), & +hšts +); + +312 ià( +¡©us + !ð +FAILED +) + +314 +TWPošt + +± +; + +315 +Size + +size +; + +317 +± +. +x + = +hšts +.x; + +318 +± +. +y + = +hšts +.y; + +319 +size +. +width + = +hšts +.width; + +320 +size +. +height + = +hšts +.height; + +322 + `IÁ”f_Cl›Á_S‘_Geom‘ry_Hšts +( +uwšp +, + +323 +hšts +. +æags +, + +324 +± +, +size +); + +326 + } +} + +330 +Size + + $PrÝ”ty_Pixm­_Size +Ð +pix + ) + +331 +Pixm­ + +pix +; + +333 +Wšdow + +w +; + +334  +x +, +y +; + +335  +width +, +height +; + +336  +bÜd”_width +; + +337  +d•th +; + +338 +Size + +siz +; + +340 + `XG‘Geom‘ry +Ð +dpy +, +pix +, & +w +, & +x +, & +y +, + +341 & +width +, & +height +, + +342 & +bÜd”_width +, & +d•th + ); + +344 +siz +. +width + = width; + +345 +siz +. +height + = height; + +347  +siz +; + +348 + } +} + +355 + $PrÝ”ty_G‘_Wm_Hšts +( +uwšp +) + +356 +U£rwš + * +uwšp +; + +358 +XWMHšts + * +ph +; + +361 iàÐ( +ph + = + `XG‘WMHšts +( +dpy +, + `U£rwš_XCl›Á +( +uwšp +))è!ð( +XWMHšts + *è +NULL + ) + +363 ià( +ph +-> +æags + & +IÅutHšt +) + +365 ià( +ph +-> +šput + =ð +True +) + +366 + `U£rwš_EÇbË_IÅut +Ð +uwšp + ); + +368 + `U£rwš_Di§bË_IÅut +Ð +uwšp + ); + +371 ià( +ph +-> +æags + & +S‹Hšt +) + +373 + `IÁ”f_Cl›Á_S‘_S‹ +( +uwšp +, +ph +-> +š™Ÿl_¡©e +); + +376 ià( +ph +-> +æags + & +IcÚPixm­Hšt +) + +378 ià(! + `Profže_Suµl›s_Pixm­ +Ð +uwšp + ) ) + +380 +uwšp +-> +icÚpix + = +ph +-> +icÚ_pixm­ +; + +381 + `IÁ”f_Cl›Á_S‘_IcÚ_Size +Ð +uwšp +, + +382 + `PrÝ”ty_Pixm­_Size +Ð +ph +-> +icÚ_pixm­ + ) ); + +386 ià( +ph +-> +æags + & +IcÚWšdowHšt +) + +388 if( + `U£rwš_XCl›Á_IcÚ +( +uwšp +è=ð( +Wšdow +è +NULL +) + +390 + `Assoc_Xid_Put +(( +XID +) + `U£rwš_XCl›Á +( +uwšp +), + +391 ( +XID +è +ph +-> +icÚ_wšdow +); + +395 + `Assoc_Xid_Remove +(( +XID +) + `U£rwš_XCl›Á_IcÚ +( +uwšp +)); + +396 + `Assoc_Xid_Put +(( +XID +) + `U£rwš_XCl›Á +( +uwšp +), + +397 ( +XID +è +ph +-> +icÚ_wšdow +); + +399 + `U£rwš_XCl›Á_IcÚ +( +uwšp +èð +ph +-> +icÚ_wšdow +; + +402 ià( +ph +-> +æags + & +IcÚPos™iÚHšt +) + +404 +TWPošt + +± +;; + +406 +± +. +x + = +ph +-> +icÚ_x +; + +407 +± +. +y + = +ph +-> +icÚ_y +; + +408 + `IÁ”f_Cl›Á_S‘_IcÚ_Pos™iÚ +Ð +uwšp +, +± + ); + +411 ià( +ph +-> +æags + & +IcÚMaskHšt +) + +416 ià( +ph +-> +æags + & +WšdowGroupHšt +) + +418 +U£rwš + * +group +; + +419 +group + = ( +U£rwš + *) + `Assoc_G‘ +Ð +ph +-> +wšdow_group + ); + +420 + `IÁ”f_Cl›Á_S‘_Group +Ð +uwšp +, +group + ); + +423 + `XF»e +Ð(*è +ph + ); + +425 + } +} + +429  + #WM_STATE + "XA_WM_STATE" + + ) + +430  + #WM_STATE_FORMAT + 32 + + ) + +431  + #WM_STATE_LEN + (è2 + + ) + +435  + m¡©e +; + +436 +Wšdow + + micÚ +; + +437 } + tXwm¡©e +; + +439  +Atom + + gwm_¡©e + = (Atom) 0; + +444 + $PrÝ”ty_G‘_Wm_S‹ +( +uwšp +) + +445 +U£rwš + * +uwšp +; + +447 +Stus + +¡©us +; + +448 +Atom + +aùu®_ty³ +; + +449  +aùu®_fÜm© +; + +450  +n™ems +; + +451  +by‹s_aá” +; + +452 +Xwm¡©e + * +wms +; + +454 ià( +wm_¡©e + =ð( +Atom +) 0) + +455 +wm_¡©e + = + `XIÁ”nAtom +( +dpy +, +WM_STATE +, +F®£ +); + +457 +¡©us + = + `XG‘WšdowPrÝ”ty +( +dpy +, + `U£rwš_XCl›Á +( +uwšp +), + +458 +wm_¡©e +, + +459 (è0, (è +WM_STATE_LEN +, + +460 +F®£ +, + +461 +wm_¡©e +, + +462 & +aùu®_ty³ +, & +aùu®_fÜm© +, + +463 & +n™ems +, & +by‹s_aá” +, + +464 (*è& +wms +); + +466 ià( +¡©us + =ð +Sucûss + && +aùu®_ty³ + !ð +NÚe +) + +468 + `U£rwš_Wm_S‹ +( +uwšp +èð +wms +-> +¡©e +; + +469 + `XF»e +((*è +wms +); + +472 + `U£rwš_Wm_S‹ +( +uwšp +èð +Nev”S‹ +; + +473 + } +} + +478 + $PrÝ”ty_S‘_Wm_S‹ +( +uwšp +, +¡©e +) + +479 +U£rwš + * +uwšp +; + +480  +¡©e +; + +482 +Xwm¡©e + +wms +; + +484 +wms +. +¡©e + = state; + +485 +wms +. +icÚ + = + `U£rwš_XIcÚ +( +uwšp +); + +487 ià( +wm_¡©e + =ð( +Atom +) 0) + +488 +wm_¡©e + = + `XIÁ”nAtom +( +dpy +, +WM_STATE +, +F®£ +); + +490 + `XChªgePrÝ”ty +( +dpy +, + `U£rwš_XCl›Á +( +uwšp +), + +491 +wm_¡©e +, wm_¡©e, +WM_STATE_FORMAT +, + +492 +PrÝModeR•Ïû +, + +493 (*è& +wms +, +WM_STATE_LEN +); + +495 + `U£rwš_Wm_S‹ +( +uwšp +èð +¡©e +; + +496 + } +} + + @redirect.c + +2 #iâdeà +lšt + + +3  + gsccs_id +[] = "%W% %H%"; + +28  + ~"cÝyright.h +" + +30  + ~<¡dio.h +> + +31  + ~"uwšD.h +" + +32  + ~"uwšXD.h +" + +34  + ~ + +35  + ~ + +36  + ~"assoc.h +" + +37  + ~"xio.h +" + +38  + ~"tžeü¤.h +" + +39  + ~"š‹rf.h +" + +42 +U£rwš + * + $Redœeù_G‘_Cl›Á_Uwšp +Ð +w + ) + +43 +Wšdow + +w +; + +45 +U£rwš + * +uwšp +; + +47 +uwšp + = ( +U£rwš + *è + `Assoc_G‘ +Ð +w + ); + +48  (( +uwšp + !ð( +U£rwš + *) +NULL +è&& ( +w + =ð + `U£rwš_XCl›Á +(uwinp)))? + +49 +uwšp + : ( +U£rwš + *) +NULL +; + +50 + } +} + +59 +BoÞ + + $IsDe¡royResuÉ +( +di¥Ïy +, +³v +, +¬gs +) + +60 +Di¥Ïy + * +di¥Ïy +; + +61 +XEv’t + * +³v +; + +62 * +¬gs +; + +64 +Wšdow + +þ›Á +; + +66 ià( +³v +-> +ty³ + =ð +De¡royNÙify + || + +67 +³v +-> +ty³ + =ð +R•¬’tNÙify + || + +68 +³v +-> +ty³ + =ð +M­NÙify +) + +70 +þ›Á + = *Ð(*è +¬gs + ); + +71  ( +BoÞ +èÐ +þ›Á + =ð(( +XDe¡royWšdowEv’t + *è +³v +)-> +wšdow + ); + +75  +F®£ +; + +77 + } +} + +81  + $Redœeù_CÚfigu» +Ð +w +, +ûv + ) + +82 +Wšdow + +w +; + +83 +XCÚfigu»Reque¡Ev’t + +ûv +; + +85 +XWšdowChªges + +xwc +; + +87 +xwc +. +x + = +ûv +.x; + +88 +xwc +. +y + = +ûv +.y; + +89 +xwc +. +width + = +ûv +.width; + +90 +xwc +. +height + = +ûv +.height; + +91 +xwc +. +bÜd”_width + = +ûv +.border_width; + +92 +xwc +. +siblšg + = +ûv +. +above +; + +93 +xwc +. +¡ack_mode + = +ûv +. +d‘až +; + +95 + `XCÚfigu»Wšdow +( +dpy +, +w +, (è +ûv +. +v®ue_mask +, & +xwc +); + +96 + } +} + +100  + $Redœeù_Cl›Á_CÚfigu» +Ð +uwšp +, +ûv + ) + +101 +U£rwš + * +uwšp +; + +102 +XCÚfigu»Reque¡Ev’t + +ûv +; + +104 +TWPošt + +± +; + +105 +Size + +size +; + +107 +± +. +x + = +ûv +.x; + +108 +± +. +y + = +ûv +.y; + +109 +size +. +width + = +ûv +.width; + +110 +size +. +height + = +ûv +.height; + +112 + `IÁ”f_Cl›Á_CÚfigu» +Ð +uwšp +, +ûv +. +v®ue_mask +, + +113 +± +, +size +, +ûv +. +d‘až + ); + +114 + } +} + +118  + $Redœeù_HªdË_C»©e_NÙify +Ð +ev + ) + +119 +XEv’t + * +ev +; + +122 + } +} + +124  + $Redœeù_C»©e_New_Wšdow +Ð +w + ) + +125 +Wšdow + +w +; + +127 +XWšdowA‰ribu‹s + +©Œs +; + +129 () + `XG‘WšdowA‰ribu‹s +( +dpy +, +w +, & +©Œs +); + +130 + `Wsys_C»©e +( +w +, +©Œs +); + +131 + } +} + +135  + $Redœeù_HªdË_M­_Reque¡ +Ð +ev + ) + +136 +XEv’t + * +ev +; + +138 +Wšdow + +w +; + +139 +U£rwš + * +uwšp +; + +141 +w + = +ev +-> +xm­»que¡ +. +wšdow +; + +142 +uwšp + = ( +U£rwš + *è + `Assoc_G‘ +( +w +); + +144 ià( +uwšp + =ð( +U£rwš + *) +NULL +) + +146 + `Redœeù_C»©e_New_Wšdow +Ð +w + ); + +147 +uwšp + = ( +U£rwš + *è + `Assoc_G‘ +( +w +); + +150 ià( + `U£rwš_XCl›Á +( +uwšp +è=ð +w +) + +152 ià( + `U£rwš_XT¿ns›Á_FÜ +( +uwšp +è=ð +NÚe + ) + +153 + `Wsys_M­ +( +uwšp +); + +155 + `XM­Rai£d +( +dpy +, +w +); + +157 + } +} + +161  + $Redœeù_HªdË_Unm­_NÙify +Ð +ev + ) + +162 +XEv’t + * +ev +; + +164 +Wšdow + +w +; + +165 +U£rwš + * +uwšp +; + +167 +w + = +ev +-> +xunm­ +. +wšdow +; + +169 iàÐ( +uwšp + = + `Redœeù_G‘_Cl›Á_Uwšp +Ð +w + )è!ð( +U£rwš + *) +NULL + ) + +171 ià( +ev +-> +xunm­ +. +äom_cÚfigu» + =ð +F®£ + && + +172 + `U£rwš_Is_O³n +( +uwšp +) ) + +176 +XEv’t + +Ãxt_ev +; + +178 + `XSync +( +dpy +, 0); + +179 iàÐ + `XCheckIfEv’t +( +dpy +, & +Ãxt_ev +, +IsDe¡royResuÉ +, + +180 (*è& +w +) ) + +182 + `XPutBackEv’t +( +dpy +, & +Ãxt_ev +); + +185 + `IÁ”f_Cl›Á_Clo£ +( +uwšp +); + +191 + } +} + +195  + $Redœeù_HªdË_De¡roy_NÙify +Ð +ev + ) + +196 +XEv’t + * +ev +; + +198 +U£rwš + * +uwšp +; + +200 ià(( +uwšp + = + `Redœeù_G‘_Cl›Á_Uwšp +Ð +ev +-> +xde¡roywšdow +. +wšdow + )) + +201 !ð( +U£rwš + *) +NULL + ) + +203 + `IÁ”f_Cl›Á_De¡roy +( +uwšp +); + +208 + } +} + +212  + $Redœeù_HªdË_R•¬’t_NÙify +Ð +ev + ) + +213 +XEv’t + * +ev +; + +215 +Wšdow + +w +; + +216 +U£rwš + * +uwšp +; + +218 +w + = +ev +-> +x»·»Á +. +wšdow +; + +220 ià(( +uwšp + = + `Redœeù_G‘_Cl›Á_Uwšp +Ð +w + )è!ð( +U£rwš + *) +NULL +) + +221 ià( +ev +-> +x»·»Á +. +·»Á + =ð +roÙ +) + +223  +x +, +y +; + +224  +width +, +height +; + +226 + `D¿wwš_Cl›Á_Pos™iÚ +( +uwšp +, & +x +, & +y +, & +width +, & +height +); + +228 + `XR•¬’tWšdow +( +dpy +, +w +, + `U£rwš_XP¬’tWš +( +uwšp +), +x +, +y +); + +232 ià( +ev +-> +x»·»Á +. +·»Á + !ð + `U£rwš_XP¬’tWš +( +uwšp +)) + +233 + `IÁ”f_Cl›Á_De¡roy +( +uwšp +); + +235 + } +} + +239  + $Redœeù_HªdË_CÚfig_Reque¡ +Ð +ev + ) + +240 +XEv’t + * +ev +; + +242 +Wšdow + +w +; + +243 +U£rwš + * +uwšp +, * +above_uwšp +; + +244 +XCÚfigu»Reque¡Ev’t + +ûv +; + +247 +ûv + = +ev +-> +xcÚfigu»»que¡ +; + +248 +w + = +ûv +. +wšdow +; + +250 ià(( +uwšp + = + `Redœeù_G‘_Cl›Á_Uwšp +Ð +w + )è!ð( +U£rwš + *) +NULL +) + +251 iàÐ + `U£rwš_XT¿ns›Á_FÜ +( +uwšp +è=ð +NÚe + ) + +254 + `Redœeù_Cl›Á_CÚfigu» +Ð +uwšp +, +ûv + ); + +258 ià( +ûv +. +v®ue_mask + & +CWSckMode +) + +260 ià( +ûv +. +above + =ð +NÚe +) + +264 +ûv +. +above + = +Œªs›Á_¶ªe +; + +272 +above_uwšp + = ( +U£rwš + *) + `Assoc_G‘ +( +ûv +. +above +); + +273 ià(( +above_uwšp + !ð( +U£rwš + *) +NULL +) && + +274 ( + `U£rwš_XT¿ns›Á_FÜ +( +above_uwšp +è=ð +NÚe +)) + +276 +ûv +. +above + = +Œªs›Á_¶ªe +; + +279 +ûv +. +d‘až + = +Above +; + +281 + `Redœeù_CÚfigu» +( +w +, +ûv +); + +284 + `Redœeù_CÚfigu» +( +w +, +ûv +); + +286 + } +} + +290  + $Redœeù_HªdË_PrÝ”ty_NÙify +Ð +ev + ) + +291 +XEv’t + * +ev +; + +293 +U£rwš + * +uwšp +; + +295 ià(( +uwšp + = + `Redœeù_G‘_Cl›Á_Uwšp +Ð +ev +-> +x´Ý”ty +. +wšdow + )) + +296 !ð( +U£rwš + *) +NULL +) + +298  (è +ev +-> +x´Ý”ty +. +©om + ) + +300  +XA_WM_CLASS +: + +301 + `PrÝ”ty_G‘_Wšdow_CÏss +( +uwšp +); + +304  +XA_WM_TRANSIENT_FOR +: + +308  +XA_WM_COMMAND +: + +309 + `PrÝ”ty_G‘_Commªd_Lše +( +uwšp +); + +312  +XA_WM_CLIENT_MACHINE +: + +313 + `PrÝ”ty_G‘_Ho¡Çme +( +uwšp +); + +316  +XA_WM_NAME +: + +317 + `PrÝ”ty_G‘_T™Ë +( +uwšp +); + +320  +XA_WM_ICON_NAME +: + +321 + `PrÝ”ty_G‘_IcÚ_T™Ë +( +uwšp +); + +324  +XA_WM_NORMAL_HINTS +: + +325 + `PrÝ”ty_G‘_NÜm®_Size_Hšts +( +uwšp +); + +326 + `PrÝ”ty_G‘_Geom‘ry_Hšts +( +uwšp +); + +329  +XA_WM_HINTS +: + +330 + `PrÝ”ty_G‘_Wm_Hšts +( +uwšp +); + +337 + } +} + +343  + $Redœeù_HªdË_Ev’t +( +ev +) + +344 +XEv’t + * +ev +; + +346  +ev +-> +ty³ +) + +348  +C»©eNÙify +: + +349 + `Redœeù_HªdË_C»©e_NÙify +Ð +ev + ); + +352  +M­Reque¡ +: + +353 + `Redœeù_HªdË_M­_Reque¡ +Ð +ev + ); + +356  +Unm­NÙify +: + +357 + `Redœeù_HªdË_Unm­_NÙify +Ð +ev + ); + +360  +De¡royNÙify +: + +361 + `Redœeù_HªdË_De¡roy_NÙify +Ð +ev + ); + +364  +R•¬’tNÙify +: + +365 + `Redœeù_HªdË_R•¬’t_NÙify +Ð +ev + ); + +368  +CÚfigu»Reque¡ +: + +369 + `Redœeù_HªdË_CÚfig_Reque¡ +Ð +ev + ); + +372  +CÚfigu»NÙify +: + +375  +PrÝ”tyNÙify +: + +376 + `Redœeù_HªdË_PrÝ”ty_NÙify +Ð +ev + ); + +379  +M­NÙify +: + +387 + } +} + +390  + $dump_äame +() + +392 + } +} + + @region.c + +23  + ~"cÝyright.h +" + +26  + ~"ba£ty³.h +" + +28 #iâdeà +TILEMENU + + +29  + ~"tžem’uP.h +" + +32 #iâdeà +REGION + + +33  + ~"»giÚP.h +" + +36  + ~"u£rglobD.h +" + +38  + ~"body»g.h +" + +39  + ~"tžeü¤.h +" + +41  + ~"uwšD.h +" + +45 +TWRegiÚ + + gback_»giÚ +; + +47 +TWRegiÚ + + gh—d”_»giÚ +; + +48 +TWRegiÚ + + gbody_»giÚ +; + +50 +TWRegiÚ + + gËá_»giÚ +; + +51 +TWRegiÚ + + gright_»giÚ +; + +52 +TWRegiÚ + + gtÝ_»giÚ +; + +53 +TWRegiÚ + + gbÙtom_»giÚ +; + +55 +TWRegiÚ + + gtÝ_Ëá_»giÚ +; + +56 +TWRegiÚ + + gtÝ_right_»giÚ +; + +57 +TWRegiÚ + + gbÙtom_Ëá_»giÚ +; + +58 +TWRegiÚ + + gbÙtom_right_»giÚ +; + +60 +TWRegiÚ + + gzoom_gadg‘_»giÚ +; + +61 +TWRegiÚ + + gmove_gadg‘_»giÚ +; + +63 +TWRegiÚ + + g¹l_»giÚ +; + +64 +TWRegiÚ + + gicÚ_»giÚ +; + +68  + $RegiÚ_In™ +() + +70 +back_»giÚ +. +»giÚ_’um + = +background +; + +72 +h—d”_»giÚ +. +»giÚ_’um + = +h—d” +; + +74 +body_»giÚ +. +»giÚ_’um + = +body +; + +77 +Ëá_»giÚ +. +»giÚ_’um + = +edge +; + +78 +Ëá_»giÚ +. +»giÚ_šfo +. +side + = +Leá +; + +80 +right_»giÚ +. +»giÚ_’um + = +edge +; + +81 +right_»giÚ +. +»giÚ_šfo +. +side + = +Right +; + +83 +tÝ_»giÚ +. +»giÚ_’um + = +edge +; + +84 +tÝ_»giÚ +. +»giÚ_šfo +. +side + = +TÝ +; + +86 +bÙtom_»giÚ +. +»giÚ_’um + = +edge +; + +87 +bÙtom_»giÚ +. +»giÚ_šfo +. +side + = +BÙtom +; + +89 +tÝ_Ëá_»giÚ +. +»giÚ_’um + = +cÜÃr +; + +90 +tÝ_Ëá_»giÚ +. +»giÚ_šfo +. +side + = +TÝ_Leá +; + +92 +tÝ_right_»giÚ +. +»giÚ_’um + = +cÜÃr +; + +93 +tÝ_right_»giÚ +. +»giÚ_šfo +. +side + = +TÝ_Right +; + +95 +bÙtom_Ëá_»giÚ +. +»giÚ_’um + = +cÜÃr +; + +96 +bÙtom_Ëá_»giÚ +. +»giÚ_šfo +. +side + = +BÙtom_Leá +; + +98 +bÙtom_right_»giÚ +. +»giÚ_’um + = +cÜÃr +; + +99 +bÙtom_right_»giÚ +. +»giÚ_šfo +. +side + = +BÙtom_Right +; + +101 +zoom_gadg‘_»giÚ +. +»giÚ_’um + = +zoom_gadg‘ +; + +102 +move_gadg‘_»giÚ +. +»giÚ_’um + = +move_gadg‘ +; + +105 +icÚ_»giÚ +. +»giÚ_’um + = +icÚ +; + +107 +¹l_»giÚ +. +»giÚ_’um + = +¹l +; + +108 + } +} + +112 +TWRegiÚ + + $RegiÚ_Make_Edge +Ð +side + ) + +113 +Side + +side +; + +115 +TWRegiÚ + +»giÚ +; + +117 +»giÚ +. +»giÚ_’um + = +edge +; + +118 +»giÚ +. +»giÚ_šfo +. +side + = side; + +119  +»giÚ +; + +120 + } +} + +124 +TWRegiÚ + + $RegiÚ_Make_CÜÃr +Ð +side + ) + +125 +Side + +side +; + +127 +TWRegiÚ + +»giÚ +; + +129 +»giÚ +. +»giÚ_’um + = +cÜÃr +; + +130 +»giÚ +. +»giÚ_šfo +. +side + = side; + +131  +»giÚ +; + +132 + } +} + +136 +Size + + $RegiÚ_Mšimum_Size +() + +138 +Size + +siz +; + +139 +siz +. +width + = (5 + 2* +BORDER_SIZE_VAL + + 2* +GADGET_WIDTH_VAL +) & (~1); + +140 +siz +. +height + = (5 + 2* +BORDER_SIZE_VAL + + 20) & (~1); + +141  +siz +; + +142 + } +} + +149  +TWPošt + + $RegiÚ_IcÚ_T¿n¦©e +Ð +uwšp +, +± + ) + +150 +U£rwš + * +uwšp +; + +151 +TWPošt + +± +; + +153 +TWPošt + +»suÉ +; + +155 +»suÉ +. +x + = +± +.x - +uwšp +-> +icÚ_body_»ù +. +Ëá_x +; + +156 +»suÉ +. +y + = +± +.y - +uwšp +-> +icÚ_body_»ù +. +tÝ_y +; + +158  +»suÉ +; + +159 + } +} + +166 +TWPošt + + $RegiÚ_T¿n¦©e +Ð +uwšp +, +± + ) + +167 +U£rwš + * +uwšp +; + +168 +TWPošt + +± +; + +170 +TWPošt + +»suÉ +; + +172 +»suÉ +. +x + = +± +.x - + `U£rwš_G‘_ReùªgË +( +uwšp +). +Ëá_x +; + +173 +»suÉ +. +y + = +± +.y - + `U£rwš_G‘_ReùªgË +( +uwšp +). +tÝ_y +; + +175 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_BORDERS + ) ) + +177 +»suÉ +. +x + -ð +BORDER_SIZE_VAL +; + +178 +»suÉ +. +y + -ð +BORDER_SIZE_VAL +; + +181 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_HEADER + ) ) + +183 +»suÉ +. +y + -ð +uwšp +-> +h—d”_height +; + +184 +»suÉ +. +y + -ð +INNER_BORDER_LINEWIDTH_VAL +; + +187  +»suÉ +; + +188 + } +} + +192 +TWReùªgË + + $RegiÚ_Body_ReùªgË +Ð +uwšp + ) + +193 +U£rwš + * +uwšp +; + +195 +TWReùªgË + +»ù +; + +197 +»ù + = + `U£rwš_G‘_ReùªgË +( +uwšp +); + +198 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_BORDERS + ) ) + +200 +»ù +. +Ëá_x + +ð +BORDER_SIZE_VAL +; + +201 +»ù +. +tÝ_y + +ð +BORDER_SIZE_VAL +; + +202 +»ù +. +right_x + -ð +BORDER_SIZE_VAL +; + +203 +»ù +. +bÙtom_y + -ð +BORDER_SIZE_VAL +; + +206 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_HEADER + ) ) + +208 +»ù +. +tÝ_y + +ð +uwšp +-> +h—d”_height +; + +209 +»ù +. +tÝ_y + +ð +INNER_BORDER_LINEWIDTH_VAL +; + +212  +»ù +; + +213 + } +} + +217 +Size + + $RegiÚ_Body_Size +Ð +uwšp + ) + +218 +U£rwš + * +uwšp +; + +220 +Size + +siz +; + +221 +TWReùªgË + +»ù +; + +223 +»ù + = + `RegiÚ_Body_ReùªgË +( +uwšp +); + +224 + `COMPUTE_SIZE +Ð +»ù +, +siz + ); + +225  +siz +; + +226 + } +} + +230 +Size + + $RegiÚ_IcÚ_Body_Size +Ð +uwšp + ) + +231 +U£rwš + * +uwšp +; + +233 +Size + +siz +; + +234 +TWReùªgË + +»ù +; + +236 +»ù + = +uwšp +-> +icÚ_body_»ù +; + +237 + `COMPUTE_SIZE +Ð +»ù +, +siz + ); + +238  +siz +; + +239 + } +} + +245 +TWReùªgË + + $RegiÚ_Adju¡_ReùªgË +Ð +uwšp +, +»ù + ) + +246 +U£rwš + * +uwšp +; + +247 +TWReùªgË + +»ù +; + +249 +TWReùªgË + +»suÉ +; + +250 +»suÉ + = +»ù +; + +252 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_BORDERS + ) ) + +254 +»suÉ +. +Ëá_x + -ð +BORDER_SIZE_VAL +; + +255 +»suÉ +. +right_x + +ð +BORDER_SIZE_VAL +; + +256 +»suÉ +. +tÝ_y + -ð +BORDER_SIZE_VAL +; + +257 +»suÉ +. +bÙtom_y + +ð +BORDER_SIZE_VAL +; + +260 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_HEADER + ) ) + +262 +»suÉ +. +tÝ_y + -ð +uwšp +-> +h—d”_height +; + +263 +»suÉ +. +tÝ_y + -ð +INNER_BORDER_LINEWIDTH_VAL +; + +266  +»suÉ +; + +267 + } +} + +273 +Size + + $RegiÚ_Adju¡_Size +Ð +uwšp +, +siz + ) + +274 +U£rwš + * +uwšp +; + +275 +Size + +siz +; + +277 +Size + +»suÉ +; + +279 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_BORDERS + ) ) + +281 +»suÉ +. +width + = +siz +.width + 2 * +BORDER_SIZE_VAL +; + +282 +»suÉ +. +height + = +siz +.heighˆ+ 2 * +BORDER_SIZE_VAL +; + +285 +»suÉ + = +siz +; + +287 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_HEADER + ) ) + +289 +»suÉ +. +height + +ð +uwšp +-> +h—d”_height +; + +290 +»suÉ +. +height + +ð +INNER_BORDER_LINEWIDTH_VAL +; + +293  +»suÉ +; + +294 + } +} + +300 +Size + + $RegiÚ_UÇdju¡_Size +Ð +uwšp +, +siz + ) + +301 +U£rwš + * +uwšp +; + +302 +Size + +siz +; + +304 +Size + +»suÉ +; + +306 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_BORDERS + ) ) + +308 +»suÉ +. +width + = +siz +.width - 2 * +BORDER_SIZE_VAL +; + +309 +»suÉ +. +height + = +siz +.heighˆ- 2 * +BORDER_SIZE_VAL +; + +312 +»suÉ + = +siz +; + +314 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_HEADER + ) ) + +316 +»suÉ +. +height + -ð +uwšp +-> +h—d”_height +; + +317 +»suÉ +. +height + -ð +INNER_BORDER_LINEWIDTH_VAL +; + +320  +»suÉ +; + +321 + } +} + +325 +TWRegiÚ + + $RegiÚ_Loÿ‹ +Ð +uwšp +, +± + ) + +326 +U£rwš + * +uwšp +; + +327 +TWPošt + +± +; + +329  +wš_height +, +wš_width +; + +330  +off£t_x +, +off£t_y +; + +331  +off£t +; + +333 iàÐ +uwšp + =ð +UWIN_NULL + )  +back_»giÚ +; + +335 iàÐ +uwšp +-> +cu¼’t_ty³ + =ð +¹l + )  +¹l_»giÚ +; + +336 iàÐ +uwšp +-> +cu¼’t_ty³ + =ð +icÚ + ) + +338 +icÚ_»giÚ +. +»giÚ_šfo +. +body»giÚ + = + +339 + `Body»g_Loÿ‹ +Ð +uwšp +, + `RegiÚ_IcÚ_T¿n¦©e +(uwšp, +± +) ); + +340  +icÚ_»giÚ +; + +343 +wš_height + = + `U£rwš_G‘_Size +( +uwšp +). +height +; + +344 +wš_width + = + `U£rwš_G‘_Size +( +uwšp +). +width +; + +346 +off£t_x + = +± +. +x + - + `U£rwš_G‘_ReùªgË +( +uwšp +). +Ëá_x +; + +347 +off£t_y + = +± +. +y + - + `U£rwš_G‘_ReùªgË +( +uwšp +). +tÝ_y +; + +349 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_BORDERS + ) ) + +351 iàÐ +off£t_x + < +BORDER_SIZE_VAL + ) + +353 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +USE_CORNER_BORDERS +) ) + +355 iàÐ +off£t_y + < (2 * +BORDER_SIZE_VAL +) ) + +356  +tÝ_Ëá_»giÚ +; + +357 iàÐ +off£t_y + >ð( +wš_height + - 2 * +BORDER_SIZE_VAL +) ) + +358  +bÙtom_Ëá_»giÚ +; + +360  +Ëá_»giÚ +; + +363  +Ëá_»giÚ +; + +365 iàÐ +off£t_x + >ð( +wš_width + - +BORDER_SIZE_VAL +) ) + +367 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +USE_CORNER_BORDERS +) ) + +369 iàÐ +off£t_y + < (2 * +BORDER_SIZE_VAL +) ) + +370  +tÝ_right_»giÚ +; + +371 iàÐ +off£t_y + >ð( +wš_height + - 2 * +BORDER_SIZE_VAL +) ) + +372  +bÙtom_right_»giÚ +; + +374  +right_»giÚ +; + +377  +right_»giÚ +; + +379 iàÐ +off£t_y + < +BORDER_SIZE_VAL + ) + +381 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +USE_CORNER_BORDERS +) ) + +383 iàÐ +off£t_x + < (2 * +BORDER_SIZE_VAL +) ) + +384  +tÝ_Ëá_»giÚ +; + +385 iàÐ +off£t_x + >ð( +wš_width + - 2 * +BORDER_SIZE_VAL +) ) + +386  +tÝ_right_»giÚ +; + +388  +tÝ_»giÚ +; + +391  +tÝ_»giÚ +; + +393 iàÐ +off£t_y + >ð( +wš_height + - +BORDER_SIZE_VAL +) ) + +395 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +USE_CORNER_BORDERS +) ) + +397 iàÐ +off£t_x + < (2 * +BORDER_SIZE_VAL +) ) + +398  +bÙtom_Ëá_»giÚ +; + +399 iàÐ +off£t_x + >ð( +wš_width + - 2 * +BORDER_SIZE_VAL +) ) + +400  +bÙtom_right_»giÚ +; + +402  +bÙtom_»giÚ +; + +405  +bÙtom_»giÚ +; + +408 +off£t + = +BORDER_SIZE_VAL + + +INNER_BORDER_LINEWIDTH_VAL +; + +411 +off£t + = +INNER_BORDER_LINEWIDTH_VAL +; + +413 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_HEADER + ) && + +414 Ð +off£t_y + < ( +off£t + + +uwšp +-> +h—d”_height +) ) ) + +416 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_GADGETS + ) ) + +418 iàÐ +off£t_x + < ( +off£t + + +GADGET_WIDTH_VAL +) ) + +419  +zoom_gadg‘_»giÚ +; + +420 iàÐÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_MOVE_GADGET + ) ) && + +421 Ð +off£t_x + >ðÐ +wš_width + - ( +off£t + + +GADGET_WIDTH_VAL + ) ) ) ) + +422  +move_gadg‘_»giÚ +; + +424  +h—d”_»giÚ +; + +427  +h—d”_»giÚ +; + +431 +body_»giÚ +. +»giÚ_šfo +. +body»giÚ + = + +432 + `Body»g_Loÿ‹ +Ð +uwšp +, + `RegiÚ_T¿n¦©e +(uwšp, +± +) ); + +433  +body_»giÚ +; + +435 + } +} + +439 +TWReùªgË + + $RegiÚ_H—d”_Reù +Ð +uwšp + ) + +440 +U£rwš + * +uwšp +; + +442 +TWReùªgË + +»ù +; + +443 +»ù + = + `U£rwš_G‘_ReùªgË +( +uwšp +); + +445 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_BORDERS + ) ) + +447 +»ù +. +tÝ_y + +ð +BORDER_SIZE_VAL +; + +448 +»ù +. +Ëá_x + +ð +BORDER_SIZE_VAL +; + +449 +»ù +. +right_x + -ð +BORDER_SIZE_VAL +; + +452 +»ù +. +bÙtom_y + =„eù. +tÝ_y +; + +453 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_HEADER + ) ) + +455 +»ù +. +bÙtom_y + +ð +uwšp +-> +h—d”_height +; + +456 +»ù +. +bÙtom_y + +ð +INNER_BORDER_LINEWIDTH_VAL +; + +460 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_GADGETS + ) ) + +462 +»ù +. +Ëá_x + +ð +GADGET_WIDTH_VAL +; + +463 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_MOVE_GADGET + ) ) + +464 +»ù +. +right_x + -ð +GADGET_WIDTH_VAL +; + +466  +»ù +; + +467 + } +} + +471 +TWPošt + + $RegiÚ_G‘_H—d”_Pos +Ð +uwšp +, +pos + ) + +472 +U£rwš + * +uwšp +; + +473 +TWPošt + +pos +; + +475 +TWReùªgË + +»ù +; + +477 +»ù + = + `RegiÚ_H—d”_Reù +Ð +uwšp + ); + +479 iàÐ +pos +. +x + < +»ù +. +Ëá_x + ) + +480 +pos +. +x + = +»ù +. +Ëá_x +; + +481 iàÐ +pos +. +x + > +»ù +. +right_x + ) + +482 +pos +. +x + = +»ù +. +right_x +; + +484 iàÐ +pos +. +y + < +»ù +. +tÝ_y + ) + +485 +pos +. +y + = +»ù +. +tÝ_y +; + +486 iàÐ +pos +. +y + > +»ù +. +bÙtom_y + ) + +487 +pos +. +y + = +»ù +. +bÙtom_y +; + +489  +pos +; + +490 + } +} + +494 +TWPošt + + $RegiÚ_G‘_Edge_Pos +Ð +uwšp +, +side +, +pos + ) + +495 +U£rwš + * +uwšp +; + +496 +Side + +side +; + +497 +TWPošt + +pos +; + +499  +side + ) + +501  +Leá +: + +502 +pos +. +x + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +Ëá_x +; + +504  +Right +: + +505 +pos +. +x + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +right_x +; + +507  +TÝ +: + +508 +pos +. +y + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +tÝ_y +; + +510  +BÙtom +: + +511 +pos +. +y + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +bÙtom_y +; + +514  +pos +; + +515 + } +} + +519 +TWPošt + + $RegiÚ_G‘_CÜÃr_Pos +Ð +uwšp +, +side + ) + +520 +U£rwš + * +uwšp +; + +521 +Side + +side +; + +523 +TWPošt + +pos +; + +524  +side + ) + +526  +TÝ_Leá +: + +527 +pos +. +y + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +tÝ_y +; + +528 +pos +. +x + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +Ëá_x +; + +530  +TÝ_Right +: + +531 +pos +. +y + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +tÝ_y +; + +532 +pos +. +x + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +right_x +; + +534  +BÙtom_Leá +: + +535 +pos +. +y + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +bÙtom_y +; + +536 +pos +. +x + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +Ëá_x +; + +538  +BÙtom_Right +: + +539 +pos +. +y + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +bÙtom_y +; + +540 +pos +. +x + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +right_x +; + +543  +pos +; + +544 + } +} + +551 +TWRegiÚ + + $RegiÚ_N—»¡_BÜd” +Ð +uwšp +, +pos + ) + +552 +U£rwš + * +uwšp +; + +553 +TWPošt + +pos +; + +555  +lx +, +rx +, +ty +, +by +; + +556 +lx + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +Ëá_x + + 2 * +BORDER_SIZE_VAL +; + +557 +rx + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +right_x + - 2 * +BORDER_SIZE_VAL +; + +558 +ty + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +tÝ_y + + 2 * +BORDER_SIZE_VAL +; + +559 +by + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +bÙtom_y + - 2 * +BORDER_SIZE_VAL +; + +561 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +USE_CORNER_BORDERS +) ) + +563 ià( +pos +. +x + <ð +lx + ) + +565 ià( +pos +. +y + <ð +ty +è +tÝ_Ëá_»giÚ +; + +566 ià( +pos +. +y + >ð +by +è +bÙtom_Ëá_»giÚ +; + +568 ià( +pos +. +x + >ð +rx +) + +570 ià( +pos +. +y + <ð +ty +è +tÝ_right_»giÚ +; + +571 ià( +pos +. +y + >ð +by +è +bÙtom_right_»giÚ +; + +575 iàÐ( +pos +. +y + - +by +)*( +rx + - +lx +è> (pos. +x + -†x)*( +ty + - by) ) + +577 iàÐ( +pos +. +y + - +by +)*( +lx + - +rx +è> (pos. +x + -„x)*( +ty + - by) ) + +578  +right_»giÚ +; + +579  +bÙtom_»giÚ +; + +583 iàÐ( +pos +. +y + - +by +)*( +lx + - +rx +è> (pos. +x + -„x)*( +ty + - by) ) + +584  +tÝ_»giÚ +; + +585  +Ëá_»giÚ +; + +587 + } +} + +597 +TWPošt + + $RegiÚ_Gadg‘_C’‹r +Ð +uwšp + ) + +598 +U£rwš + * +uwšp +; + +600 +TWPošt + +± +; + +602 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +USE_MOVE_GADGET + ) ) + +603 +± +. +x + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +right_x + + +604 - +BORDER_SIZE_VAL + - ( +GADGET_WIDTH_VAL + / 2 ); + +606 +± +. +x + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +Ëá_x + + +607 + +BORDER_SIZE_VAL + + ( +GADGET_WIDTH_VAL + / 2 ); + +609 iàÐ + `U£rGlob®s_G‘_O±iÚ +( +PLACE_CSR_IN_BODY_NOT_GADGET +) ) + +610 +± +. +y + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +tÝ_y + + +611 + +BORDER_SIZE_VAL + + +uwšp +-> +h—d”_height + + +612 + +INNER_BORDER_LINEWIDTH_VAL + + 2; + +614 +± +. +y + = + `U£rwš_G‘_ReùªgË +( +uwšp +). +tÝ_y + + +615 + +BORDER_SIZE_VAL + + ( +uwšp +-> +h—d”_height + / 2 ); + +617  +± +; + +618 + } +} + +622 +boÞ + + $RegiÚ_N—rby +Ð +pos1 +, +pos2 + ) + +623 +TWPošt + +pos1 +; + +624 +TWPošt + +pos2 +; + +628 Ð + `abs +( +pos1 +. +x + - +pos2 +.x) < 20 ) && + +629 Ð + `abs +( +pos1 +. +y + - +pos2 +.y) < 20 ) + +631 + } +} + +635 +boÞ + + $RegiÚ_Equ® +Ð +rgn1 +, +rgn2 + ) + +636 +TWRegiÚ + +rgn1 +; + +637 +TWRegiÚ + +rgn2 +; + +641 ( +rgn1 +. +»giÚ_’um + =ð +rgn2 +.region_enum) && + +642 ( +rgn1 +. +»giÚ_šfo +. +side + =ð +rgn2 +.region_info.side) + +644 + } +} + +648 +TžeCursÜ + + $RegiÚ_G‘_CursÜ +Ð +uwšp +, +»gn + ) + +649 +U£rwš + * +uwšp +; + +650 +TWRegiÚ + +»gn +; + +652  +»gn +. +»giÚ_’um + ) + +654  +background +: + +655  +background_tžecursÜ +; + +656  +h—d” +: + +657  +h—d”_tžecursÜ +; + +658  +body +: + +659  + `Body»g_G‘_CursÜ +( +uwšp +, +»gn +. +»giÚ_šfo +. +body»giÚ +); + +660  +edge +: + +661  +»gn +. +»giÚ_šfo +. +side + ) + +663  +Leá +: + +664  +Ëá_tžecursÜ +; + +665  +Right +: + +666  +right_tžecursÜ +; + +667  +TÝ +: + +668  +tÝ_tžecursÜ +; + +669  +BÙtom +: + +670  +bÙtom_tžecursÜ +; + +672  +cÜÃr +: + +673  +»gn +. +»giÚ_šfo +. +side + ) + +675  +TÝ_Leá +: + +676  +tÝ_Ëá_tžecursÜ +; + +677  +TÝ_Right +: + +678  +tÝ_right_tžecursÜ +; + +679  +BÙtom_Leá +: + +680  +bÙtom_Ëá_tžecursÜ +; + +681  +BÙtom_Right +: + +682  +bÙtom_right_tžecursÜ +; + +684  +zoom_gadg‘ +: + +685  +zoom_gadg‘_tžecursÜ +; + +686  +move_gadg‘ +: + +687  +move_gadg‘_tžecursÜ +; + +688  +icÚ +: + +689  +¹l +: + +690  +icÚ_tžecursÜ +; + +692  +background_tžecursÜ +; + +693 + } +} + +695 +TžeM’u + + $RegiÚ_G‘_M’u +Ð +uwšp +, +»gn + ) + +696 +U£rwš + * +uwšp +; + +697 +TWRegiÚ + +»gn +; + +699  +»gn +. +»giÚ_’um + ) + +701  +body +: + +702  +icÚ +: + +703  + `Body»g_G‘_M’u +( +uwšp +, +»gn +. +»giÚ_šfo +. +body»giÚ +); + +705  + `Body»g_G‘_M’u +( +uwšp +, +NULL +); + +708 + } +} + + @region.h + +29 #iâdeà +BASETYPE + + +30  + ~"ba£ty³.h +" + +33 #iâdeà +REGION + + +34  + ~"»giÚP.h +" + +37 #iâdeà +TILECURSOR + + +38  + ~"tžeü¤P.h +" + +41 #iâdeà +TILEMENU + + +42  + ~"tžem’uP.h +" + +45 +TWRegiÚ + +back_»giÚ +; + +47 +TWRegiÚ + +h—d”_»giÚ +; + +48 +TWRegiÚ + +body_»giÚ +; + +50 +TWRegiÚ + +Ëá_»giÚ +; + +51 +TWRegiÚ + +right_»giÚ +; + +52 +TWRegiÚ + +tÝ_»giÚ +; + +53 +TWRegiÚ + +bÙtom_»giÚ +; + +55 +TWRegiÚ + +tÝ_Ëá_»giÚ +; + +56 +TWRegiÚ + +tÝ_right_»giÚ +; + +57 +TWRegiÚ + +bÙtom_Ëá_»giÚ +; + +58 +TWRegiÚ + +bÙtom_right_»giÚ +; + +60 +TWRegiÚ + +zoom_gadg‘_»giÚ +; + +61 +TWRegiÚ + +move_gadg‘_»giÚ +; + +63 +TWRegiÚ + +¹l_»giÚ +; + +64 +TWRegiÚ + +icÚ_»giÚ +; + +66  +RegiÚ_In™ +(); + +68 +Size + +RegiÚ_Mšimum_Size +(); + +70 +TWPošt + +RegiÚ_T¿n¦©e +(); + +76 +Size + +RegiÚ_Body_Size +(); + +79 +Size + +RegiÚ_IcÚ_Body_Size +(); + +82 +TWReùªgË + +RegiÚ_Body_ReùªgË +(); + +85 +TWReùªgË + +RegiÚ_Adju¡_ReùªgË +(); + +90 +Size + +RegiÚ_Adju¡_Size +(); + +95 +Size + +RegiÚ_UÇdju¡_Size +(); + +100 +TWRegiÚ + +RegiÚ_Loÿ‹ +(); + +105 +TWRegiÚ + +RegiÚ_Make_Edge +(); + +110 +TWRegiÚ + +RegiÚ_Make_CÜÃr +(); + +115 +TWReùªgË + +RegiÚ_H—d”_Reù +(); + +119 +TWPošt + +RegiÚ_G‘_H—d”_Pos +(); + +124 +TWPošt + +RegiÚ_Gadg‘_C’‹r +(); + +128 +TWPošt + +RegiÚ_G‘_Edge_Pos +(); + +134 +TWPošt + +RegiÚ_G‘_CÜÃr_Pos +(); + +139 +TWRegiÚ + +RegiÚ_N—»¡_BÜd” +(); + +144 +boÞ + +RegiÚ_N—rby +(); + +149 +boÞ + +RegiÚ_Equ® +(); + +153 +TžeCursÜ + +RegiÚ_G‘_CursÜ +(); + +157 +TžeM’u + +RegiÚ_G‘_M’u +(); + +161  + #RegiÚ_Is_IcÚic +( +rgn +) \ + +162 ÐÐ( +rgn +). +»giÚ_’um + =ð +icÚ + ) || ( (rgn).»giÚ_’um =ð +¹l + ) ) + + ) + + @regionP.h + +30 #iâdeà +REGION + + +31  + #REGION + + + ) + +34 #iâdeà +BASETYPE + + +35  + ~"ba£ty³.h +" + +38 #iâdeà +BODYREGION + + +39  + ~"body»gP.h +" + +44 + mbackground +, + +45 + mbody +, + mh—d” +, + +46 + mzoom_gadg‘ +, + mmove_gadg‘ +, + +47 + medge +, + mcÜÃr +, + +48 + micÚ +, + +49 + m¹l + + +50 } + tRegiÚ_Enum +; + +54 +Side + + mside +; + +55 +BodyRegiÚ + + mbody»giÚ +; + +56 } + tRegiÚ_Info +; + +60 +RegiÚ_Enum + + m»giÚ_’um +; + +61 +RegiÚ_Info + + m»giÚ_šfo +; + +62 } + tTWRegiÚ +; + +64  + #RegiÚ_G‘_Ty³ +( +»gn +èÔegn. +»giÚ_’um +) + + ) + +66  + #RegiÚ_G‘_BÜd” +( +»gn +èÔegn. +»giÚ_šfo +. +side +) + + ) + +68  + #RegiÚ_G‘_BodyRegiÚ +( +»gn +èÔegn. +»giÚ_šfo +. +body»giÚ +) + + ) + + @rtlmenu.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "%W% %H%"; + +27  + ~"cÝyright.h +" + +36  + ~<¡dio.h +> + +37  + ~ + +39  + ~"¹lm’uP.h +" + +41  +Di¥Ïy + * + gdpy +; + +42  + gsün +; + +44  +RTLPošt + + gm’u_pos +; + +45  + gš™Ÿlized + = 0; + +47 +boÞ + +S‘I‹mText +(); + +48  +In™M’u +(); + +49  +Di¥o£M’u +(); + +50 +RTLM’u + +NewM’u +(); + +51 +RTLM’uI‹m + +M’uI‹mByName +(); + +52 +RTLM’uI‹m + +AddM’uI‹m +(); + +53 +RTLM’uI‹m + +M’uI‹mByD©a +(); + +54 +RTLM’uI‹m + +T¿ckM’u +(); + +57 + $RTLM’u_In™Ÿlize + ( +di¥Ïy +, +sü“n +, +ÝtiÚs_mask +) + +58 +Di¥Ïy + * +di¥Ïy +; + +59  +sü“n +; + +60 +RTLM’uO±iÚsMask + +ÝtiÚs_mask +; + +63 ià( +š™Ÿlized +) ; + +64 +dpy + = +di¥Ïy +; + +65 +sün + = +sü“n +; + +66 +š™Ÿlized + = 1; + +67 + `In™M’u + ("¹l", +ÝtiÚs_mask +, +di¥Ïy +); + +68 + } +} + +70 +RTLM’u + + +71 + $RTLM’u_C»©e +() + +73  ( +RTLM’u +è + `NewM’u + ( +dpy +, +sün +, +FALSE +); + +74 + } +} + +77 + $RTLM’u_De¡roy +Ð +m’u + ) + +78 +RTLM’u + +m’u +; + +80 + `Di¥o£M’u + ( +m’u +); + +81 + } +} + +83 +g’”ic + + +84 + $RTLM’u_D©a +Ð +™em + ) + +85 +RTLM’uI‹m + +™em +; + +87  + `I‹mD©a +( +™em +); + +88 + } +} + +90 +RTLM’u + + +91 + $RTLM’u_G‘_Subm’u +Ð +m’u +, +¡r + ) + +92 +RTLM’u + +m’u +; + +93 * +¡r +; + +95 +RTLM’uI‹m + +™em + = + `M’uI‹mByName + ( +m’u +, +¡r +); + +97 ià(! + `I‹mIsNuÎ +( +™em +)) + +98  ( +RTLM’u +è + `I‹mSubm’u +( +™em +); + +100  ( +RTLM’u +) +NULLMENU +; + +101 + } +} + +104 + $RTLM’u_Cl›Á_S’d +Ð +™em + ) + +105 +RTLM’uI‹m + +™em +; + +107 + `´štf + ("RTLMenu_Client_Send‚ot yet implemented for X, string = \"%s\"\n", + +108 (*è +™em +); + +109 + } +} + +111 +RTLM’uI‹m + + +112 + $RTLM’u_Aµ’d_SŒšg +Ð +m’u +, +¡r +, +¡rv® + ) + +113 +RTLM’u + +m’u +; + +114 * +¡r +; + +115 +g’”ic + +¡rv® +; + +117 +RTLM’uI‹m + +™em + = + `AddM’uI‹m +( +m’u +); + +119 ià(! + `I‹mIsNuÎ +( +™em +)) + +121 + `S‘I‹mText +( +m’u +, +™em +, +¡r +); + +122 + `I‹mC®lback +( +™em +èð( +C®lback +) +RTLM’u_Cl›Á_S’d +; + +123 + `I‹mD©a +( +™em +èð +¡rv® +; + +125  ( +RTLM’uI‹m +) +™em +; + +126 + } +} + +128 +RTLM’uI‹m + + +129 + $RTLM’u_Aµ’d_C®lback +Ð +m’u +, +back´oc + ) + +130 +RTLM’u + +m’u +; + +131 +VoidFunc + +back´oc +; + +133 +RTLM’uI‹m + +™em + = + `AddM’uI‹m +( +m’u +); + +135 ià(! + `I‹mIsNuÎ +( +™em +)) + +137 + `I‹mG’”©Ü +( +™em +èð( +C®lback +) +back´oc +; + +139  ( +RTLM’uI‹m +) +™em +; + +140 + } +} + +142 +RTLM’uI‹m + + +143 + $RTLM’u_Aµ’d_C®l +Ð +m’u +, +¡r +, +´oc +, +d©a + ) + +144 +RTLM’u + +m’u +; + +145 * +¡r +; + +146 +VoidFunc + +´oc +; + +147 +g’”ic + +d©a +; + +149 +RTLM’uI‹m + +™em + = + `AddM’uI‹m +( +m’u +); + +151 ià(! + `I‹mIsNuÎ +( +™em +)) + +153 ià( + `S‘I‹mText +( +m’u +, +™em +, +¡r +è=ð +FALSE +) + +154  +NULLITEM +; + +155 + `I‹mC®lback +( +™em +èð +´oc +; + +156 + `I‹mD©a +( +™em +èð +d©a +; + +158  ( +RTLM’uI‹m +) +™em +; + +159 + } +} + +161 +RTLM’uI‹m + + +162 + $RTLM’u_Aµ’d_Checkback +Ð +m’u +, +¡r +, +check´oc +, +´oc +, +d©a + ) + +163 +RTLM’u + +m’u +; + +164 * +¡r +; + +165 +BoÞFunc + +check´oc +; + +168 +VoidFunc + +´oc +; + +169 +g’”ic + +d©a +; + +171 +RTLM’uI‹m + +™em + = + `AddM’uI‹m +( +m’u +); + +173 ià(! + `I‹mIsNuÎ +( +™em +)) + +175 ià( + `S‘I‹mText +( +m’u +, +™em +, +¡r +è=ð +FALSE +) + +176 ( +NULLITEM +); + +177 + `I‹mC®lback +( +™em +èð +´oc +; + +178 + `I‹mD©a +( +™em +èð +d©a +; + +179 + `I‹mCheck´oc +( +™em +èð +check´oc +; + +181  ( +RTLM’uI‹m +) +™em +; + +182 + } +} + +184 +RTLM’uI‹m + + +185 + $RTLM’u_Aµ’d_Subm’u +Ð +m’u +, +¡r +, +subm’u + ) + +186 +RTLM’u + +m’u +; + +187 * +¡r +; + +188 +RTLM’u + +subm’u +; + +190 +RTLM’uI‹m + +™em + = + `AddM’uI‹m +( +m’u +); + +192 ià(! + `I‹mIsNuÎ +( +™em +)) + +194 ià( + `S‘I‹mText +( +m’u +, +™em +, +¡r +è=ð +FALSE +) + +195 ( +NULLITEM +); + +196 + `S‘I‹mSubm’u +( +™em +, +subm’u +); + +198  ( +RTLM’uI‹m +) +™em +; + +199 + } +} + +202 + $RTLM’u_R•Ïû_D©a_By_SŒšg +Ð +m’u +, +d©a +, +¡r + ) + +203 +RTLM’u + +m’u +; + +204 +g’”ic + +d©a +; + +205 * +¡r +; + +207 +RTLM’uI‹m + +™em + = + `M’uI‹mByName +( +m’u +, +¡r +); + +209 ià(! + `I‹mIsNuÎ +( +™em +)) + +210 + `I‹mD©a +( +™em +èð +d©a +; + +211 + } +} + +214 + $RTLM’u_Aùiv©e_EÁry +Ð +m’u +, +™em + ) + +215 +RTLM’u + +m’u +; + +216 +RTLM’uI‹m + +™em +; + +218 () + `S‘I‹mDi§bË +( +m’u +, +™em +, +FALSE +); + +219 + } +} + +222 + $RTLM’u_IÇùiv©e_EÁry +Ð +m’u +, +™em + ) + +223 +RTLM’u + +m’u +; + +224 +RTLM’uI‹m + +™em +; + +226 () + `S‘I‹mDi§bË +( +m’u +, +™em +, +TRUE +); + +227 + } +} + +229 +boÞ + + +230 + $RTLM’u_Has_D©a +Ð +m’u +, +v® + ) + +231 +RTLM’u + +m’u +; + +232 +g’”ic + +v® +; + +234 +RTLM’uI‹m + +™em + = + `M’uI‹mByD©a +( +m’u +, +v® +); + +236  (! + `I‹mIsNuÎ +( +™em +)); + +237 + } +} + +240 + $RTLM’u_D–‘e_EÁr›s +Ð +m’u + ) + +241 +RTLM’u + +m’u +; + +243  + `Di¥o£I‹m +( +m’u +, + `M’uI‹ms +(menu))); + +244 + } +} + +247 + $RTLM’u_D–‘e_SŒšg +Ð +m’u +, +¡r + ) + +248 +RTLM’u + +m’u +; + +249 * +¡r +; + +251 +RTLM’uI‹m + +™em + = + `M’uI‹mByName +( +m’u +, +¡r +); + +253 ià(! + `I‹mIsNuÎ +( +™em +)) + +254 (è + `Di¥o£I‹m + ( +m’u +, +™em +); + +255 + } +} + +258 + $RTLM’u_D–‘e_D©a +Ð +m’u +, +v® + ) + +259 +RTLM’u + +m’u +; + +260 +g’”ic + +v® +; + +262 +RTLM’uI‹m + +™em + = + `M’uI‹mByD©a +( +m’u +, +v® +); + +264 ià(! + `I‹mIsNuÎ +( +™em +)) + +265 (è + `Di¥o£I‹m +( +m’u +, +™em +); + +267 + } +} + +270 + $RTLM’u_EÁ” +Ð +m’u +, +buŠum +, +bu‰ime +, +ba£_wšdow +, +pos + ) + +271 +RTLM’u + +m’u +; + +272  +buŠum +; + +273 +Time + +bu‰ime +; + +274 +Wšdow + +ba£_wšdow +; + +275 +RTLPošt + +pos +; + +277 +RTLM’uI‹m + +£Ëùed +; + +279 +m’u_pos + = +pos +; + +280 ià( + `Te¡O±iÚFÏg +( +m’u +, +§veb™s +)) + +281 + `XG¿bS”v” +( +dpy +); + +282 +£Ëùed + = + `T¿ckM’u + ( +m’u +, +m’u_pos +. +x +, m’u_pos. +y +, + +283 () +buŠum +, +ba£_wšdow +, +bu‰ime +); + +284 ià( + `Te¡O±iÚFÏg +( +m’u +, +§veb™s +)) + +285 + `XUng¿bS”v” +( +dpy +); + +286 ià(! + `I‹mIsNuÎ +( +£Ëùed +)) + +287 ( + `I‹mC®lback +( +£Ëùed +)è( +m’u +, selected); + +288 + } +} + +290 +RTLPošt + + +291 + $RTLM’u_EÁry_Pos +() + +296  +m’u_pos +; + +297 + } +} + +300 + $RTLM’u_G’”©e_I‹ms +( +m’u +, +´oc +) + +303 +RTLM’u + +m’u +; + +304 +VoidFunc + +´oc +; + +306 +RTLM’uI‹m + +™em +; + +308  +™em + = + `M’uI‹ms +( +m’u +); + +309 ! + `I‹mIsNuÎ +( +™em +); i‹m = + `I‹mNext +(item)) + +311 ( +´oc +)( +m’u +, +™em +); + +314 + } +} + +316 +RTLM’uI‹m + + +317 + $RTLM’u_Aµ’d_I‹m +( +m’u +) + +318 +RTLM’u + +m’u +; + +320  ( +RTLM’uI‹m +) + `AddM’uI‹m +( +m’u +); + +321 + } +} + +324 + $RTLM’u_S‘_SŒšg +( +m’u +, +™em +, +m’u_¡r +) + +325 +RTLM’u + +m’u +; + +326 +RTLM’uI‹m + +™em +; + +327 * +m’u_¡r +; + +329 ià(! + `I‹mIsNuÎ +( +™em +)) + +330 (è + `S‘I‹mText +( +m’u +, +™em +, +m’u_¡r +); + +331 + } +} + +334 + $RTLM’u_S‘_G’”©Ü +( +™em +, +g’”©Ü +) + +335 +RTLM’uI‹m + +™em +; + +336 +VoidFunc + +g’”©Ü +; + +338 ià(! + `I‹mIsNuÎ +( +™em +)) + +339 + `I‹mG’”©Ü +( +™em +èð +g’”©Ü +; + +340 + } +} + +343 + $RTLM’u_S‘_D©a +( +™em +, +d©a +) + +344 +RTLM’uI‹m + +™em +; + +345 +g’”ic + +d©a +; + +347 ià(! + `I‹mIsNuÎ +( +™em +)) + +348 + `I‹mD©a +( +™em +èð +d©a +; + +349 + } +} + + @rtlmenu.h + +33  +RTLM’u_In™Ÿlize +( ); + +34  +RTLM’u_De¡roy +( ); + +35  +RTLM’u_R•Ïû_D©a_By_SŒšg +( ); + +36  +RTLM’u_Aùiv©e_EÁry +( ); + +37  +RTLM’u_IÇùiv©e_EÁry +( ); + +38  +RTLM’u_D–‘e_EÁr›s +( ); + +39  +RTLM’u_D–‘e_SŒšg +( ); + +40  +RTLM’u_D–‘e_D©a +( ); + +41  +RTLM’u_EÁ” +( ); + +42  +RTLM’u_G’”©e_I‹ms +( ); + +43  +RTLM’u_S‘_SŒšg +( ); + +44  +RTLM’u_S‘_G’”©Ü +( ); + +45  +RTLM’u_S‘_C®lback +( ); + +46  +RTLM’u_S‘_Subm’u +( ); + +47  +RTLM’u_S‘_D©a +( ); + +48 +boÞ + +RTLM’u_Has_D©a +( ); + +49 +RTLM’u + +RTLM’u_C»©e +( ); + +50 +RTLM’u + +RTLM’u_G‘_Subm’u +( ); + +51 +g’”ic + +RTLM’u_D©a +( ); + +52 +RTLPošt + +RTLM’u_EÁry_Pos +( ); + +53 +RTLM’uI‹m + +RTLM’u_Aµ’d_I‹m +( ); + +57 +RTLM’uI‹m + +RTLM’u_Aµ’d_SŒšg +( ); + +58 +RTLM’uI‹m + +RTLM’u_Aµ’d_C®l +( + +60 +RTLM’uI‹m + +RTLM’u_Aµ’d_Checkback +( + +62 +RTLM’uI‹m + +RTLM’u_Aµ’d_Subm’u +( ); + +63 +RTLM’uI‹m + +RTLM’u_Aµ’d_C®lback +( ); + + @rtlmenuD.h + +34  + #TheM’u +( +m’u +è(*( +M’u + *)m’u) + + ) + +35  + #M’uWidth +( +m’u +è(( +M’u + *)m’u)-> +m’uWidth + + + ) + +36  + #M’uHeight +( +m’u +è(( +M’u + *)m’u)-> +m’uHeight + + + ) + +37  + #M’uOldWidth +( +m’u +è(( +M’u + *)m’u)-> +m’uOldWidth + + + ) + +38  + #M’uOldHeight +( +m’u +è(( +M’u + *)m’u)-> +m’uOldHeight + + + ) + +39  + #M’uI‹mWidth +( +m’u +è(( +M’u + *)m’u)-> +m’uI‹mWidth + + + ) + +40  + #M’uI‹mHeight +( +m’u +è(( +M’u + *)m’u)-> +m’uI‹mHeight + + + ) + +41  + #M’uFÏgs +( +m’u +è(( +M’u + *)m’u)-> +m’uFÏgs + + + ) + +42  + #M’uMaxTextWidth +( +m’u +è(( +M’u + *)m’u)-> +m’uMaxTextWidth + + + ) + +43  + #M’uBÜd”Width +( +m’u +è(( +M’u + *)m’u)-> +m’uBÜd”Width + + + ) + +44  + #M’uOldBÜd”Width +( +m’u +è(( +M’u + *)m’u)-> +m’uOldBÜd”Width + + + ) + +45  + #M’uI‹mPad +( +m’u +è(( +M’u + *)m’u)-> +m’uI‹mPad + + + ) + +46  + #M’uDi¥Ïy +( +m’u +è(( +M’u + *)m’u)-> +di¥Ïy + + + ) + +47  + #M’uSü“n +( +m’u +è(( +M’u + *)m’u)-> +sü“n + + + ) + +48  + #M’uWšdow +( +m’u +è(( +M’u + *)m’u)-> +m’uWšdow + + + ) + +49  + #M’uCursÜ +( +m’u +è(( +M’u + *)m’u)-> +m’uCursÜ + + + ) + +50  + #M’uSavedPixm­ +( +m’u +è(( +M’u + *)m’u)-> +§vedPixm­ + + + ) + +51  + #M’uSavedImage +( +m’u +è(( +M’u + *)-> +§vedImage + + + ) + +52  + #M’uSavedImageX +( +m’u +è(( +M’u + *)m’u)-> +m’uSavedImageX + + + ) + +53  + #M’uSavedImageY +( +m’u +è(( +M’u + *)m’u)-> +m’uSavedImageY + + + ) + +54  + #M’uI‹ms +( +m’u +è(( +RTLM’uI‹m +)(( +M’u + *)m’u)-> +m’uI‹ms +) + + ) + +55  + #M’uI‹msPŒ +( +m’u +è(( +RTLM’uI‹m + *)&(( +M’u + *)m’u)-> +m’uI‹ms +) + + ) + +56  + #M’uFÚtInfo +( +m’u +è(( +M’u + *)m’u)-> +m’uFÚtInfo + + + ) + +57  + #M’uNÜm®GC +( +m’u +è(( +M’u + *)m’u)-> +nÜm®GC + + + ) + +58  + #M’uInv”tGC +( +m’u +è(( +M’u + *)m’u)-> +šv”tGC + + + ) + +59  + #M’uHighligh‹dGC +( +m’u +è(( +M’u + *)m’u)-> +highligh‹dGC + + + ) + +60  + #M’uG»yGC +( +m’u +è(( +M’u + *)m’u)-> +g»yGC + + + ) + +61  + #M’uG»yPixm­ +( +m’u +è(( +M’u + *)m’u)-> +g»yPixm­ + + + ) + +62  + #M’uCheckm¬kPixm­ +( +m’u +è(( +M’u + *)m’u)-> +checkm¬kPixm­ + + + ) + +63  + #M’uA¼owPixm­ +( +m’u +è(( +M’u + *)m’u)-> +¬rowPixm­ + + + ) + +64  + #M’uIn™ŸlI‹mText +( +m’u +è(( +M’u + *)m’u)-> +m’uIn™ŸlI‹mText + + + ) + +65  + #M’uI‹mHighligh‹d +( +m’u +è(( +RTLM’uI‹m +)(( +M’u + *)m’u)-> +highligh‹dI‹m +) + + ) + +66  + #Re£tM’uI‹mHighligh‹d +( +m’u +è((( +M’u + *)m’u)-> +highligh‹dI‹m + = ( +M’uI‹m + *) +NULL +) + + ) + +67  + #M’uNe¡ed +( +m’u +è(( +M’u + *)m’u)-> +m’uNe¡ed + + + ) + +68  + #M’uX +( +m’u +è(( +M’u + *)m’u)-> +m’uX + + + ) + +69  + #M’uY +( +m’u +è(( +M’u + *)m’u)-> +m’uY + + + ) + +70  + #M’uP¬’t +( +m’u +è(( +RTLM’u +)(( +M’u + *)m’u)-> +·»ÁM’u +) + + ) + +71  + #S‘M’uP¬’t +( +m’u +, +·»Á +è((( +M’u + *)m’u)-> +·»ÁM’u + = (M’u *í¬’t) + + ) + +72  + #M’uD– +( +m’u +è(( +M’u + *)m’u)-> +d– + + + ) + +73  + #M’uO±iÚs +( +m’u +è(( +M’u + *)m’u)-> +m’uO±iÚs + + + ) + +74  + #NULLMENU + (( +RTLM’u +è +NULL +) + + ) + +77  + #M’uIsNuÎ +( +m’u +è(m’u =ð +NULLMENU +) + + ) + +78  + #M’uIsDi¥Ïyed +( +m’u +è( + `M’uFÏgs +(m’uè& +m’uM­³d +) + + ) + +79  + #M’uHasIn™ŸlI‹m +( +m’u +è( + `M’uIn™ŸlI‹mText +(m’uè!ð(*è +NULL +) + + ) + +82  + #S‘HighlightI‹m +( +m’u +, +™em +è(( +M’u + *)m’u)-> +highligh‹dI‹m + = ( +M’uI‹m + *è + ) +item + +83  + #Re£tHighlightI‹m +( +m’u +è(( +M’u + *)m’u)-> +highligh‹dI‹m + = ( +M’uI‹m + *è +NULL + + + ) + +84  + #S‘M’uFÏg +( +m’u +, +æag +è + `M’uFÏgs +(m’uè|ð + ) +flag + +85  + #Re£tM’uFÏg +( +m’u +, +æag +è + `M’uFÏgs +(m’uè&ð~ + ) +flag + +86  + #Te¡M’uFÏg +( +m’u +, +æag +è( + `M’uFÏgs +(m’uè& fÏg) + + ) + +87  + #Te¡O±iÚFÏg +( +m’u +, +ÝtiÚ +è( + `M’uO±iÚs +(m’uè& o±iÚ) + + ) + +91  + #TheI‹m +( +™em +è(*( +M’uI‹m + *)™em) + + ) + +92  + #I‹mFÏgs +( +™em +è(( +M’uI‹m + *)™em)-> +™emFÏgs + + + ) + +93  + #I‹mText +( +™em +è(( +M’uI‹m + *)™em)-> +™emText + + + ) + +94  + #I‹mTextL’gth +( +™em +è(( +M’uI‹m + *)™em)-> +™emTextL’gth + + + ) + +95  + #I‹mTextWidth +( +™em +è(( +M’uI‹m + *)™em)-> +™emTextWidth + + + ) + +96  + #I‹mNext +( +™em +è(( +RTLM’uI‹m +)(( +M’uI‹m + *)™em)-> +ÃxtI‹m +) + + ) + +97  + #I‹mNextPŒ +( +™em +è(( +RTLM’uI‹m + *)&(( +M’uI‹m + *)™em)-> +ÃxtI‹m +) + + ) + +98  + #I‹mSubm’u +( +™em +è(( +RTLM’u +)(( +M’uI‹m + *)™em)-> +™emSubm’u +) + + ) + +99  + #S‘I‹mSubm’u +( +™em +, +subm’u +è((( +M’uI‹m + *)™em)-> +™emSubm’u + = ( +M’u + *èsubm’u) + + ) + +100  + #I‹mTag +( +™em +è(( +M’uI‹m + *)™em)-> +™emTag + + + ) + +101  + #I‹mG’”©Ü +( +™em +è(( +M’uI‹m + *)™em)-> +g’”©Ü + + + ) + +102  + #I‹mCheck´oc +( +™em +è(( +M’uI‹m + *)™em)-> +check´oc + + + ) + +103  + #I‹mC®lback +( +™em +è(( +M’uI‹m + *)™em)-> +™emC®lback + + + ) + +104  + #I‹mD©a +( +™em +è(( +M’uI‹m + *)™em)-> +™emD©a + + + ) + +105  + #I‹mWšdow +( +™em +è(( +M’uI‹m + *)™em)-> +™emWšdow + + + ) + +106  + #I‹mM’u +( +™em +è(( +RTLM’u +)(( +M’uI‹m + *)™em)-> +™emM’u +) + + ) + +107  + #S‘I‹mM’u +( +™em +, +m’u +è((( +M’uI‹m + *)™em)-> +™emM’u + = ( +M’u + *)m’u) + + ) + +108  + #NULLITEM + (( +RTLM’uI‹m +è +NULL +) + + ) + +109  + #I‹mG‘A¼owPos™iÚ +( +™em +) \ + +110 ((( +M’uI‹m + *) +™em +)-> +™emM’u +-> +m’uWidth + - +¬row_width +) + + ) + +113  + #I‹mIsNuÎ +( +™em +è((™emè=ð +NULLITEM +) + + ) + +114  + #I‹mIsIn™ŸlI‹m +( +m’u +, +™em +) \ + +115 ( + `M’uIn™ŸlI‹mText +( +m’u +) && \ + +116 ( + `¡»ql +( + `M’uIn™ŸlI‹mText +( +m’u +), + `I‹mText +( +™em +)))) + + ) + +117  + #I‹mIsL—f +( +™em +è(( + `I‹mSubm’u +(™emè=ð +NULLMENU +)? +TRUE + : +FALSE +) + + ) + +118  + #I‹mIsDi§bËd +( +™em +è( + `I‹mFÏgs +(™emè& +™emDi§bËd +) + + ) + +122  + #CheckI‹m +( +m’u +, +™em +è + `S‘I‹mCheck +(m’u,™em,1) + + ) + +123  + #Di§bËI‹m +( +m’u +, +™em +è + `S‘I‹mDi§bË +(m’u,™em,1) + + ) + +124  + #EÇbËI‹m +( +m’u +, +™em +è + `S‘I‹mDi§bË +(m’u,™em,0) + + ) + +125  + #UncheckI‹m +( +m’u +, +™em +è + `S‘I‹mCheck +(m’u,™em,0) + + ) + +126  + #S‘I‹mFÏg +( +™em +, +æag +è + `I‹mFÏgs +(™emè|ð + ) +flag + +127  + #Re£tI‹mFÏg +( +™em +, +æag +è + `I‹mFÏgs +(™emè&ð~ + ) +flag + +128  + #Te¡I‹mFÏg +( +™em +, +æag +è( + `I‹mFÏgs +(™emè& fÏg) + + ) + +129  + #MoveI‹mFÏg +( +™em +, +æag1 +, +æag2 +) \ + +130 ià( + `Te¡I‹mFÏg +( +™em +, +æag1 +))\ + +131 + `S‘I‹mFÏg +( +™em +, +æag2 +);\ + +133 + `Re£tI‹mFÏg +( +™em +, +æag2 +);\ + +134 + `Re£tI‹mFÏg +( +™em +, +æag1 +); + + ) + +138  + #M’uEv’tMask + \ + +139 (( +Mask +)( +L—veWšdowMask + | +EÁ”WšdowMask + | +Bu‰ÚR–—£Mask +)) + + ) + +140  + #NÜm®I‹mEv’tMask + +M’uEv’tMask + + + ) + +141  + #Subm’uI‹mEv’tMask + (( +Mask +è( +M’uEv’tMask + | +Poš‹rMÙiÚMask +)) + + ) + +142  + #M’uIgnÜeMask + (( +Mask +è0) + + ) + +143  + #M’uExposu»Mask + (( +Mask +è +Exposu»Mask +) + + ) + +147  + #checkM¬kWidth + 9 + + ) + +148  + #checkM¬kHeight + 8 + + ) + +149  + #deçuÉCursÜWidth + 16 + + ) + +150  + #deçuÉCursÜHeight + 16 + + ) + +151  + #deçuÉCursÜX + 1 + + ) + +152  + #deçuÉCursÜY + 1 + + ) + +153  + #lšeS•¬©ÜHeight + 9 + + ) + +154  + #I‹mBÜd” + 1 + + ) + +155  + #DeçuÉ_D– + 20 + + ) + +156  + #M’u_TabË_Size + 8 + + ) + +157  + #I‹m_TabË_Size + 32 + + ) + + @rtlmenuO.h + +33  + #OPTION_FLAGS + + + ) + +37  + tM’uO±iÚsMask +; + +39  + #þickokay + (1L<<0è + + ) + +40  + #§veb™s + (1L<<1è + + ) + +41  + #fixedchžd + (1L<<2è + + ) + +42  + #rightoff£t + (1L<<3è + + ) + +44  + #bigoff£t + (1L<<4è + + ) + +48  + #RTLM’u_O±iÚ_S‘ +( +mask +, +ÝtiÚ +è(mask |ðÝtiÚ) + + ) + + @rtlmenuP.h + +67  + ~"¹lm’uSH.h +" + +69 (* + gC®lback +) (); + +70  +_m’uI‹m + + tM’uI‹m +; + +71  +_m’u + + tM’u +; + +73  + s_m’uI‹m + { + +74  + m™emFÏgs +; + +75  + #™emDi§bËd + 0x0001 + + ) + +76  + #™emChecked + 0x0002 + + ) + +77  + #™emChªged + 0x0010 + + ) + +78 * + m™emText +; + +79  + m™emTextWidth +; + +80  + m™emTextL’gth +; + +81  +_m’uI‹m + * + mÃxtI‹m +; + +82  +_m’u + * + m™emSubm’u +; + +83 +C®lback + + mg’”©Ü +; + +84 +boÞ + (* +check´oc +) (); + +85 +C®lback + + m™emC®lback +; + +86 +g’”ic + + m™emD©a +; + +87 +Wšdow + + m™emWšdow +; + +88 +M’u + * + m™emM’u +; + +91  + s_m’u + { + +92  + mm’uWidth +; + +93  + mm’uHeight +; + +94  + mm’uOldWidth +; + +95  + mm’uOldHeight +; + +96  + mm’uI‹mWidth +; + +97  + mm’uI‹mHeight +; + +98  + mm’uFÏgs +; + +100  + #m’uChªged + 0x0001 + + ) + +101  + #m’uI‹mChªged + 0x0002 + + ) + +102  + #m’uM­³d + 0x0004 + + ) + +104  + mm’uMaxTextWidth +; + +105  + mm’uBÜd”Width +; + +106  + mm’uOldBÜd”Width +; + +107  + mm’uI‹mPad +; + +108 +Di¥Ïy + * + mdi¥Ïy +; + +109  + msü“n +; + +110 +Wšdow + + mm’uWšdow +; + +111 +CursÜ + + mm’uCursÜ +; + +112 +Pixm­ + + m§vedPixm­ +; + +113 +M’uI‹m + * + mm’uI‹ms +; + +114 +XFÚtSŒuù + * + mm’uFÚtInfo +; + +115 +GC + + mnÜm®GC +; + +116 +GC + + mšv”tGC +; + +117 +GC + + mhighligh‹dGC +; + +118 +Pixm­ + + mg»yPixm­ +; + +119 +Pixm­ + + mcheckm¬kPixm­ +; + +120 +Pixm­ + + m¬rowPixm­ +; + +121 * + mm’uIn™ŸlI‹mText +; + +122 +M’uI‹m + * + mhighligh‹dI‹m +; + +123  + mm’uNe¡ed +; + +124  + mm’uX +, + mm’uY +; + +125  +_m’u + * + m·»ÁM’u +; + +128  + md– +; + +129 +RTLM’uO±iÚsMask + + mm’uO±iÚs +; + +133  + ~ + +134  + ~"¹lm’uD.h +" + + @rtlmenuSH.h + +33  + ~<¡dio.h +> + +35 #iâdeà +STD_DEFS + + +36  + ~"¡d_defs.h +" + +39  + ~ + +43  + tRTLM’uO±iÚsMask +; + +45  + #þickokay + (1L<<0è + + ) + +46  + #§veb™s + (1L<<1è + + ) + +47  + #fixedchžd + (1L<<2è + + ) + +49  + #rightoff£t + (1L<<3è + + ) + +52  + #bigoff£t + (1L<<4è + + ) + +55  + #fÜg‘Ï¡ + (1L<<5è + + ) + +59 + eg’”ic_g + { + mlÚg_g’ +, + mpoš‹r_g’ +}; + +61  + s_g’ + + +63 +g’”ic_g + + mg +; + +66  + ml +; + +67 +poš‹r + + mp +; + +69 + mv® +; + +71 + tg’”ic +; + +75  + #S‘G’LÚg +( +g +, +i +è(g. +g + = +lÚg_g’ +, g. +v® +. +l + = i) + + ) + +76  + #G‘G’LÚg +( +g +è((g. +g + =ð +lÚg_g’ +)? g. +v® +. +l +: 0) + + ) + +77  + #Ca¡G’LÚg +( +g +, +i +è( + `S‘G’LÚg +(g,i), g) + + ) + +78  + #G’LÚgP +( +g +è(g. +g + =ð +lÚg_g’ +) + + ) + +80  + #S‘G’Poš‹r +( +g +, +± +è(g. +g + = +poš‹r_g’ +, g. +v® +. +p + =…t) + + ) + +81  + #G‘G’Poš‹r +( +g +è((g. +g + =ð +poš‹r_g’ +)? g. +v® +. +p +: ( +poš‹r +) +NULL +) + + ) + +82  + #Ca¡G’Poš‹r +( +g +, +± +è( + `S‘G’Poš‹r +(g,±), g) + + ) + +83  + #G’Poš‹rP +( +g +è(g. +g + =ð +poš‹r_g’ +) + + ) + +85  + #Equ®G’ +( +a +, +b +) \ + +86 (( +a +. +g + !ð +b +.g)? +FALSE + : \ + +87 (( +a +. +g + =ð +lÚg_g’ +)? (a. +v® +. +l + =ð +b +.v®.lè: (a.v®. +p + =ðb.v®.p))) + + ) + +89  +poš‹r + + tRTLM’u +; + +90  +poš‹r + + tRTLM’uI‹m +; + +91  + s_RTLPošt + + +93  + mx +, + my +; + +95 + tRTLPošt +; + +97  +boÞ + (* + tBoÞFunc +)(); + + @rtlmenuX.h + +33  + ~"¹lm’uSH.h +" + +34  + #RTLM’u_O±iÚ_S‘ +( +mask +, +ÝtiÚ +è(mask |ðÝtiÚ) + + ) + +35  + ~"¹lm’u.h +" + + @smdebug.h + +1 #ifdeà +SMDEBUG + + +2  + #SMTRANS +( +T +è{ + `´štf +("T->"); (*T)();} + + ) + +4  + #SMTRANS +( +T +è(*T)(); + + ) + + @state.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)state.c 5.3 9/1/88"; + +27  + ~"cÝyright.h +" + +29  + ~"ba£ty³.h +" + +30  + ~"¡©eP.h +" + +32 #iâdeà +TILWIN_INTERN + + +33  + ~"twšI.h +" + +36  +Tžwš + * + gO³Å +, * + gClo£dp +, + +37 * + gJu¡_O³Å +, * + gJu¡_Modif›dp +, * + gJu¡_Clo£dp +; + +39  +TimeSmp + + gtime¡amp + = 1; + +40  +TimeSmp + + gÃxt¡amp + = 1; + +42  + gŒª§ùšg + = 0; + +46 +boÞ + + $S‹_Was_Ju¡_Modif›d +Ð +wšp + ) + +47 +Tžwš + * +wšp +; + +49  ( ( +wšp +-> +modify_¡amp +è=ð +time¡amp + ); + +50 + } +} + +54 +boÞ + + $S‹_Was_Ju¡_Chªged +Ð +wšp + ) + +55 +Tžwš + * +wšp +; + +57  ( ( +wšp +-> +afãù_¡amp +è=ð +time¡amp + ); + +58 + } +} + +62  + $S‹_S¹_O³¿tiÚ +() + +64 ià( +Œª§ùšg + == 0) + +66 +Ãxt¡amp +++; + +67 +time¡amp + = +Ãxt¡amp +; + +68 +Ju¡_Modif›dp + = +WINP_NULL +; + +69 +Ju¡_O³Å + = +WINP_NULL +; + +70 +Ju¡_Clo£dp + = +WINP_NULL +; + +72 + } +} + +76  + $S‹_Save +Ð +wšp + ) + +77 +Tžwš + * +wšp +; + +79 iàÐ( +wšp +-> +afãù_¡amp +è!ð +time¡amp + ) + +81 +wšp +-> +´ev_ûÁ” + = wšp-> +ûÁ” +; + +82 +wšp +-> +´ev_size + = wšp-> +size +; + +83 +wšp +-> +´ev_»ù + = wšp-> +»ù +; + +85 +wšp +-> +´ev_time¡amp + = wšp-> +time¡amp +; + +86 +wšp +-> +afãù_¡amp + = +time¡amp +; + +87 +wšp +-> +´ev_Am_I_O³n + = wšp-> +Am_I_O³n +; + +89 + } +} + +93  + $S‹_In£¹_Clo£d +Ð +wšp + ) + +94 +Tžwš + * +wšp +; + +96 +wšp +-> +þo£dp + = +Clo£dp +; + +97 +Clo£dp + = +wšp +; + +98 + } +} + +102  + $S‹_In£¹_Clo£d_Ord”ed +Ð +wšp + ) + +103 +Tžwš + * +wšp +; + +105 +Tžwš + * +lookwš +, * +´evwš +; + +107 +lookwš + = +Clo£dp +; + +109 +´evwš + = +WINP_NULL +; + +110  ( +lookwš + !ð +WINP_NULL +) && + +111 Ð( +wšp +-> +time¡amp +è< ( +lookwš +->timestamp) ) ) + +113 +´evwš + = +lookwš +; + +114 +lookwš + =†ookwš-> +þo£dp +; + +116 ià( +´evwš + =ð +WINP_NULL +) + +117 +Clo£dp + = +wšp +; + +119 +´evwš +-> +þo£dp + = +wšp +; + +120 +wšp +-> +þo£dp + = +lookwš +; + +121 + } +} + +125  + $S‹_Remove_Clo£d +( +wšp +) + +126 +Tžwš + * +wšp +; + +128 +Tžwš + * +lookwš +, * +´evwš +; + +130 +lookwš + = +Clo£dp +; + +132 +´evwš + = +WINP_NULL +; + +133  +lookwš + !ð +wšp +) + +135 +´evwš + = +lookwš +; + +136 +lookwš + =†ookwš-> +þo£dp +; + +138 ià( +´evwš + =ð +WINP_NULL +) + +139 +Clo£dp + = +lookwš +-> +þo£dp +; + +141 +´evwš +-> +þo£dp + = +lookwš +->closedp; + +142 + } +} + +146  + $S‹_In£¹_O³n +Ð +wšp + ) + +147 +Tžwš + * +wšp +; + +149 +wšp +-> +Ý’p + = +O³Å +; + +150 +O³Å + = +wšp +; + +151 + } +} + +155  + $S‹_In£¹_O³n_Ord”ed +Ð +wšp + ) + +156 +Tžwš + * +wšp +; + +158 +Tžwš + * +lookwš +, * +´evwš +; + +160 +lookwš + = +O³Å +; + +162 +´evwš + = +WINP_NULL +; + +163  ( +lookwš + !ð +WINP_NULL +) && + +164 Ð( +wšp +-> +time¡amp +è< ( +lookwš +->timestamp) ) ) + +166 +´evwš + = +lookwš +; + +167 +lookwš + =†ookwš-> +Ý’p +; + +169 ià( +´evwš + =ð +WINP_NULL +) + +170 +O³Å + = +wšp +; + +172 +´evwš +-> +Ý’p + = +wšp +; + +173 +wšp +-> +Ý’p + = +lookwš +; + +174 + } +} + +178  + $S‹_Remove_O³n +Ð +wšp + ) + +179 +Tžwš + * +wšp +; + +181 +Tžwš + * +lookwš +, * +´evwš +; + +183 +lookwš + = +O³Å +; + +185 +´evwš + = +WINP_NULL +; + +186  +lookwš + !ð +wšp +) + +188 +´evwš + = +lookwš +; + +189 +lookwš + =†ookwš-> +Ý’p +; + +191 ià( +´evwš + =ð +WINP_NULL +) + +192 +O³Å + = +lookwš +-> +Ý’p +; + +194 +´evwš +-> +Ý’p + = +lookwš +->openp; + +195 + } +} + +199  + $S‹_In£¹_Ju¡_Clo£d +Ð +wšp + ) + +200 +Tžwš + * +wšp +; + +202 +wšp +-> +modify_¡amp + = 0; + +203 +wšp +-> +ju¡p + = +Ju¡_Clo£dp +; + +204 +Ju¡_Clo£dp + = +wšp +; + +205 + } +} + +209  + $S‹_Remove_Ju¡_Clo£d +Ð +wšp + ) + +210 +Tžwš + * +wšp +; + +212 +Tžwš + * +lookwš +, * +´evwš +; + +214 +lookwš + = +Ju¡_Clo£dp +; + +216 +´evwš + = +WINP_NULL +; + +217  +lookwš + !ð +wšp +) + +219 +´evwš + = +lookwš +; + +220 +lookwš + =†ookwš-> +ju¡p +; + +222 ià( +´evwš + =ð +WINP_NULL +) + +223 +Ju¡_Clo£dp + = +lookwš +-> +ju¡p +; + +225 +´evwš +-> +ju¡p + = +lookwš +->justp; + +226 + } +} + +230  + $S‹_In£¹_Ju¡_O³n +Ð +wšp + ) + +231 +Tžwš + * +wšp +; + +233 +wšp +-> +ju¡p + = +Ju¡_O³Å +; + +234 +Ju¡_O³Å + = +wšp +; + +235 + } +} + +239  + $S‹_Remove_Ju¡_O³n +Ð +wšp + ) + +240 +Tžwš + * +wšp +; + +242 +Tžwš + * +lookwš +, * +´evwš +; + +244 +lookwš + = +Ju¡_O³Å +; + +246 +´evwš + = +WINP_NULL +; + +247  +lookwš + !ð +wšp +) + +249 +´evwš + = +lookwš +; + +250 +lookwš + =†ookwš-> +ju¡p +; + +252 ià( +´evwš + =ð +WINP_NULL +) + +253 +Ju¡_O³Å + = +lookwš +-> +ju¡p +; + +255 +´evwš +-> +ju¡p + = +lookwš +->justp; + +256 + } +} + +260  + $S‹_In£¹_Ju¡_Modif›d +Ð +wšp + ) + +261 +Tžwš + * +wšp +; + +263 iàÐ( +wšp +-> +modify_¡amp +è!ð +time¡amp + ) + +265 +wšp +-> +modify_¡amp + = +time¡amp +; + +266 +wšp +-> +ju¡p + = +Ju¡_Modif›dp +; + +267 +Ju¡_Modif›dp + = +wšp +; + +269 + } +} + +273  + $S‹_Remove_Ju¡_Modif›d +Ð +wšp + ) + +274 +Tžwš + * +wšp +; + +276 +Tžwš + * +lookwš +, * +´evwš +; + +278 +wšp +-> +modify_¡amp + = 0; + +280 +lookwš + = +Ju¡_Modif›dp +; + +282 +´evwš + = +WINP_NULL +; + +283  +lookwš + !ð +wšp +) + +285 +´evwš + = +lookwš +; + +286 +lookwš + =†ookwš-> +ju¡p +; + +288 ià( +´evwš + =ð +WINP_NULL +) + +289 +Ju¡_Modif›dp + = +lookwš +-> +ju¡p +; + +291 +´evwš +-> +ju¡p + = +lookwš +->justp; + +292 + } +} + +296  + $S‹_S‘_Wšdow_Time¡amp +Ð +wšp +, +¡amp + ) + +297 +Tžwš + * +wšp +; + +298 +TimeSmp + +¡amp +; + +300 iàÐ( +¡amp + > +time¡amp +) || (stamp <= 0) ) ; + +301 +wšp +-> +time¡amp + = +¡amp +; + +302 iàÐ +wšp +-> +Am_I_O³n + ) + +304 + `S‹_Remove_O³n +Ð +wšp + ); + +305 + `S‹_In£¹_O³n_Ord”ed +Ð +wšp + ); + +309 + `S‹_Remove_Clo£d +Ð +wšp + ); + +310 + `S‹_In£¹_Clo£d_Ord”ed +Ð +wšp + ); + +312 + } +} + +316  + $S‹_NÙe_U£ +Ð +wšp + ) + +317 +Tžwš + * +wšp +; + +319 ià( +Œª§ùšg + == 0) + +320 +Ãxt¡amp +++; + +321 + `S‹_S‘_Wšdow_Time¡amp +Ð +wšp +, +Ãxt¡amp + ); + +322 + } +} + +326  + $S‹_C»©e +( +wšp +) + +327 +Tžwš + * +wšp +; + +329 +wšp +-> +time¡amp + = 0; + +330 +wšp +-> +afãù_¡amp + = 0; + +331 +wšp +-> +modify_¡amp + = 0; + +332 +wšp +-> +Am_I_O³n + = +FALSE +; + +333 +wšp +-> +Was_Auto_Clo£d + = +FALSE +; + +334 + `S‹_In£¹_Clo£d_Ord”ed +( +wšp +); + +335 + } +} + +339  + $S‹_De¡roy +( +wšp +) + +340 +Tžwš + * +wšp +; + +342 +wšp +-> +time¡amp + = () 0; + +343 + `S‹_Remove_Clo£d +( +wšp +); + +344 iàÐ( +wšp +-> +afãù_¡amp +è=ð +time¡amp + ) + +346 ià( +wšp +-> +´ev_Am_I_O³n +) + +347 + `S‹_Remove_Ju¡_Clo£d +( +wšp +); + +349 + } +} + +353  + $S‹_Mªu®_Clo£ +Ð +wšp + ) + +354 +Tžwš + * +wšp +; + +356 + `S‹_Save +( +wšp +); + +357 + `S‹_Remove_O³n +( +wšp +); + +358 +wšp +-> +Am_I_O³n + = +FALSE +; + +359 +wšp +-> +Was_Auto_Clo£d + = +FALSE +; + +360 ià(! +wšp +-> +´ev_Am_I_O³n +) + +362 + `S‹_Remove_Ju¡_O³n +( +wšp +); + +363 +wšp +-> +time¡amp + = wšp-> +´ev_time¡amp +; + +364 + `S‹_In£¹_Clo£d_Ord”ed +( +wšp +); + +368 iàÐ + `S‹_Was_Ju¡_Modif›d +( +wšp +) ) + +369 + `S‹_Remove_Ju¡_Modif›d +( +wšp +); + +370 + `S‹_In£¹_Ju¡_Clo£d +( +wšp +); + +371 +wšp +-> +time¡amp + =imestamp; + +372 + `S‹_In£¹_Clo£d +( +wšp +); + +374 + } +} + +378  + $S‹_Auto_Clo£ +Ð +wšp + ) + +379 +Tžwš + * +wšp +; + +381 + `S‹_Mªu®_Clo£ +Ð +wšp + ); + +382 +wšp +-> +Was_Auto_Clo£d + = +TRUE +; + +383 +wšp +-> +ûÁ” + = wšp-> +´ev_ûÁ” +; + +384 +wšp +-> +size + = wšp-> +´ev_size +; + +385 +wšp +-> +»ù + = wšp-> +´ev_»ù +; + +386 + } +} + +390  + $S‹_O³n +Ð +wšp + ) + +391 +Tžwš + * +wšp +; + +393 + `S‹_Save +( +wšp +); + +394 ià( +wšp +-> +Am_I_O³n +) + +396 ià( +wšp +-> +´ev_Am_I_O³n +) + +398 + `S‹_In£¹_Ju¡_Modif›d +( +wšp +); + +403 + `S‹_Remove_Clo£d +( +wšp +); + +404 +wšp +-> +Am_I_O³n + = +TRUE +; + +405 ià( +wšp +-> +´ev_Am_I_O³n +) + +407 + `S‹_Remove_Ju¡_Clo£d +( +wšp +); + +408 + `S‹_In£¹_Ju¡_Modif›d +( +wšp +); + +409 +wšp +-> +time¡amp + = wšp-> +´ev_time¡amp +; + +410 + `S‹_In£¹_O³n_Ord”ed +( +wšp +); + +414 + `S‹_In£¹_Ju¡_O³n +( +wšp +); + +415 +wšp +-> +time¡amp + =imestamp; + +416 + `S‹_In£¹_O³n +( +wšp +); + +419 + } +} + +423  + $S‹_Aù_Modif›d +Ð +wšp + ) + +424 +Tžwš + * +wšp +; + +426 iàÐ( +Œª§ùšg + > 0è&& ( +wšp +-> +Am_I_O³n +) ) + +428 + `S‹_Save +( +wšp +); + +429 ià( +wšp +-> +´ev_Am_I_O³n +) + +431 + `S‹_In£¹_Ju¡_Modif›d +( +wšp +); + +434 + } +} + +438 +TimeSmp + + $S‹_G‘_Time¡amp +() + +441  +time¡amp +; + +442 + } +} + +446 +WšpHªdË + + $S‹_G’_O³n_Wšdows +() + +448 +Tžwš + +wšdow +; + +449 +WšpHªdË + +hªdË +; + +450 +hªdË +. +wšp + = +O³Å +; + +451 +hªdË +. +off£t + = (è& +wšdow +. +Ý’p + - () &window; + +452  +hªdË +; + +453 + } +} + +457 +WšpHªdË + + $S‹_G’_Clo£d_Wšdows +() + +459 +Tžwš + +wšdow +; + +460 +WšpHªdË + +hªdË +; + +461 +hªdË +. +wšp + = +Clo£dp +; + +462 +hªdË +. +off£t + = (è& +wšdow +. +þo£dp + - () &window; + +463  +hªdË +; + +464 + } +} + +468 +WšpHªdË + + $S‹_G’_Ju¡_O³Ãd_Wšdows +() + +470 +Tžwš + +wšdow +; + +471 +WšpHªdË + +hªdË +; + +472 +hªdË +. +wšp + = +Ju¡_O³Å +; + +473 +hªdË +. +off£t + = (è& +wšdow +. +ju¡p + - () &window; + +474  +hªdË +; + +475 + } +} + +479 +WšpHªdË + + $S‹_G’_Ju¡_Modif›d_Wšdows +() + +481 +Tžwš + +wšdow +; + +482 +WšpHªdË + +hªdË +; + +483 +hªdË +. +wšp + = +Ju¡_Modif›dp +; + +484 +hªdË +. +off£t + = (è& +wšdow +. +ju¡p + - () &window; + +485  +hªdË +; + +486 + } +} + +490 +WšpHªdË + + $S‹_G’_Ju¡_Clo£d_Wšdows +() + +492 +Tžwš + +wšdow +; + +493 +WšpHªdË + +hªdË +; + +494 +hªdË +. +wšp + = +Ju¡_Clo£dp +; + +495 +hªdË +. +off£t + = (è& +wšdow +. +ju¡p + - () &window; + +496  +hªdË +; + +497 + } +} + +501 + $S‹_Next_Wšdow +Ð +hªdËp + ) + +502 +WšpHªdË + * +hªdËp +; + +504 iàÐ( +hªdËp +-> +wšp +è!ð +WINP_NULL +) + +505 +hªdËp +-> +wšp + = + +506 *Ð( +Tžwš + **)Ð((*)( +hªdËp +-> +wšp +)è+ (hªdËp-> +off£t +) ) ); + +507 + } +} + +511  + $S‹_Sw­ +Ð +wšp + ) + +512 +Tžwš + * +wšp +; + +514 +TWPošt + +‹mp_ûÁ” +; + +515 +Size + +‹mp_size +; + +516 +TWReùªgË + +‹mp_»ù +; + +517 +TimeSmp + +‹mp_¡amp +; + +518 +boÞ + +‹mp_Ý’ +; + +520 +‹mp_¡amp + = +wšp +-> +´ev_time¡amp +; + +521 +‹mp_ûÁ” + = +wšp +-> +´ev_ûÁ” +; + +522 +‹mp_size + = +wšp +-> +´ev_size +; + +523 +‹mp_»ù + = +wšp +-> +´ev_»ù +; + +524 +‹mp_Ý’ + = +wšp +-> +´ev_Am_I_O³n +; + +526 +wšp +-> +´ev_time¡amp + = wšp-> +time¡amp +; + +527 +wšp +-> +´ev_ûÁ” + = wšp-> +ûÁ” +; + +528 +wšp +-> +´ev_size + = wšp-> +size +; + +529 +wšp +-> +´ev_»ù + = wšp-> +»ù +; + +530 +wšp +-> +´ev_Am_I_O³n + = wšp-> +Am_I_O³n +; + +532 +wšp +-> +time¡amp + = +‹mp_¡amp +; + +533 +wšp +-> +ûÁ” + = +‹mp_ûÁ” +; + +534 +wšp +-> +size + = +‹mp_size +; + +535 +wšp +-> +»ù + = +‹mp_»ù +; + +536 +wšp +-> +Am_I_O³n + = +‹mp_Ý’ +; + +537 + } +} + +541  + $S‹_Undo +() + +543 +Tžwš + * +wšp +; + +544 +WšpHªdË + +hªdË +; + +546 +hªdË + = + `S‹_G’_Ju¡_O³Ãd_Wšdows +(); + +547  ( +wšp + = + `S‹_CÛrû +( +hªdË +èè!ð +WINP_NULL + ) + +549 + `S‹_Sw­ +( +wšp +); + +550 + `S‹_Remove_O³n +( +wšp +); + +551 + `S‹_In£¹_Clo£d_Ord”ed +( +wšp +); + +552 + `S‹_Next_Wšdow +(& +hªdË +); + +555 +hªdË + = + `S‹_G’_Ju¡_Modif›d_Wšdows +(); + +556  ( +wšp + = + `S‹_CÛrû +( +hªdË +èè!ð +WINP_NULL + ) + +558 + `S‹_Sw­ +( +wšp +); + +559 + `S‹_Next_Wšdow +(& +hªdË +); + +562 +hªdË + = + `S‹_G’_Ju¡_Clo£d_Wšdows +(); + +563  ( +wšp + = + `S‹_CÛrû +( +hªdË +èè!ð +WINP_NULL + ) + +565 + `S‹_Sw­ +( +wšp +); + +566 + `S‹_Remove_Clo£d +( +wšp +); + +567 + `S‹_In£¹_O³n_Ord”ed +( +wšp +); + +568 + `S‹_Next_Wšdow +(& +hªdË +); + +571 +wšp + = +Ju¡_O³Å +; + +572 +Ju¡_O³Å + = +Ju¡_Clo£dp +; + +573 +Ju¡_Clo£dp + = +wšp +; + +574 + } +} + +578  + $S‹_T¿n§ùiÚ_D•th +() + +580  +Œª§ùšg +; + +581 + } +} + +585  + $S‹_S¹_T¿n§ùiÚ +() + +587 + `S‹_S¹_O³¿tiÚ +(); + +588 +Œª§ùšg +++; + +589 + } +} + +593  + $S‹_Comm™_T¿n§ùiÚ +() + +595 -- +Œª§ùšg +; + +596 + } +} + +600  + $S‹_CÚtšue_T¿n§ùiÚ +() + +602 +Œª§ùšg +++; + +603 + } +} + +607  + $S‹_AbÜt_T¿n§ùiÚ +() + +609 +Ju¡_Modif›dp + = +WINP_NULL +; + +610 +Ju¡_O³Å + = +WINP_NULL +; + +611 +Ju¡_Clo£dp + = +WINP_NULL +; + +612 -- +Œª§ùšg +; + +613 + } +} + +619  +Tžwš + * + gPÙ’tŸÎy_Modfdp +, * + gPÙ’tŸÎy_Clo£dp +; + +622 + $S‹_PÙ’tŸl_Cˬ +() + +624 +PÙ’tŸÎy_Modfdp + = +WINP_NULL +; + +625 +PÙ’tŸÎy_Clo£dp + = +WINP_NULL +; + +626 + } +} + +628 +WšpHªdË + + +629 + $S‹_G’_PÙ’tŸÎy_Modfd +() + +631 +Tžwš + +wšdow +; + +632 +WšpHªdË + +hªdË +; + +633 +hªdË +. +wšp + = +PÙ’tŸÎy_Modfdp +; + +634 +hªdË +. +off£t + = (è& +wšdow +. +pÙ’tmp + - () &window; + +635  +hªdË +; + +636 + } +} + +638 +WšpHªdË + + +639 + $S‹_G’_PÙ’tŸÎy_Clo£d +() + +641 +Tžwš + +wšdow +; + +642 +WšpHªdË + +hªdË +; + +643 +hªdË +. +wšp + = +PÙ’tŸÎy_Clo£dp +; + +644 +hªdË +. +off£t + = (è& +wšdow +. +pÙ’tý + - () &window; + +645  +hªdË +; + +646 + } +} + +649 + $S‹_In£¹_PÙ’tŸÎy_Modfd +( +wšp +) + +650 +Tžwš + * +wšp +; + +652 +wšp +-> +pÙ’tmp + = +PÙ’tŸÎy_Modfdp +; + +653 +PÙ’tŸÎy_Modfdp + = +wšp +; + +654 + } +} + +657 + $S‹_In£¹_PÙ’tŸÎy_Clo£d +( +wšp +) + +658 +Tžwš + * +wšp +; + +660 +wšp +-> +pÙ’tý + = +PÙ’tŸÎy_Clo£dp +; + +661 +PÙ’tŸÎy_Clo£dp + = +wšp +; + +662 + } +} + +666 + $S‹_Remove_PÙ’tŸÎy_Modfd +( +wšp +) + +667 +Tžwš + * +wšp +; + +669 +Tžwš + * +lookwš +, * +´evwš +; + +671 +lookwš + = +PÙ’tŸÎy_Modfdp +; + +673 +´evwš + = +WINP_NULL +; + +674  +lookwš + !ð +wšp +) { + +675 +´evwš + = +lookwš +; + +676 +lookwš + =†ookwš -> +pÙ’tmp +; + +678 ià( +´evwš + =ð +WINP_NULL +) + +679 +PÙ’tŸÎy_Modfdp + = +lookwš +-> +pÙ’tmp +; + +681 +´evwš +-> +pÙ’tmp + = +lookwš +->potentmp; + +682 + } +} + +685 + $S‹_Remove_PÙ’tŸÎy_Clo£d +( +wšp +) + +686 +Tžwš + * +wšp +; + +688 +Tžwš + * +lookwš +, * +´evwš +; + +690 +lookwš + = +PÙ’tŸÎy_Clo£dp +; + +692 +´evwš + = +WINP_NULL +; + +693  +lookwš + !ð +wšp +) { + +694 +´evwš + = +lookwš +; + +695 +lookwš + =†ookwš -> +pÙ’tý +; + +697 ià( +´evwš + =ð +WINP_NULL +) + +698 +PÙ’tŸÎy_Clo£dp + = +lookwš +-> +pÙ’tý +; + +700 +´evwš +-> +pÙ’tý + = +lookwš +->potentcp; + +701 + } +} + + @state.h + +29 #iâdeà +STATE + + +30  + ~"¡©eP.h +" + +33  +S‹_T¿n§ùiÚ_D•th +(); + +35  +S‹_S‘_Wšdow_Time¡amp +(); + +38  +S‹_NÙe_U£ +(); + +41 +boÞ + +S‹_Was_Ju¡_Modif›d +(); + +44  +S‹_Aù_Modif›d +(); + +47  +S‹_In£¹_Ju¡_Modif›d +(); + +50  +S‹_S¹_O³¿tiÚ +(); + +52  +S‹_S¹_T¿n§ùiÚ +(); + +53  +S‹_Comm™_T¿n§ùiÚ +(); + +54  +S‹_AbÜt_T¿n§ùiÚ +(); + +55  +S‹_CÚtšue_T¿n§ùiÚ +(); + +57  +S‹_C»©e +(); + +60  +S‹_De¡roy +(); + +63  +S‹_Mªu®_Clo£ +(); + +66  +S‹_Auto_Clo£ +(); + +69  +S‹_O³n +(); + +72 +TimeSmp + +S‹_G‘_Time¡amp +(); + +74 +WšpHªdË + +S‹_G’_O³n_Wšdows +(); + +76 +WšpHªdË + +S‹_G’_Clo£d_Wšdows +(); + +78 +WšpHªdË + +S‹_G’_Ju¡_O³Ãd_Wšdows +(); + +80 +WšpHªdË + +S‹_G’_Ju¡_Modif›d_Wšdows +(); + +82 +WšpHªdË + +S‹_G’_Ju¡_Clo£d_Wšdows +(); + +84  +S‹_Next_Wšdow +(); + +87  +S‹_Undo +(); + +94  +S‹_PÙ’tŸl_Cˬ +(); + +95 +WšpHªdË + +S‹_G’_PÙ’tŸÎy_Modfd +(); + +96 +WšpHªdË + +S‹_G’_PÙ’tŸÎy_Clo£d +(); + +97  +S‹_In£¹_PÙ’tŸÎy_Modfd +(); + +98  +S‹_In£¹_PÙ’tŸÎy_Clo£d +(); + +99  +S‹_Remove_PÙ’tŸÎy_Modfd +(); + +100  +S‹_Remove_PÙ’tŸÎy_Clo£d +(); + +101  +S‹_Fl_Ju¡_Li¡s +(); + +102 +boÞ + +S‹_Cu¼’Žy_T¿n§ùšg +(); + +103  +S‹_Sw­ +(); + + @stateP.h + +29 #iâdeà +STATE + + +30  + #STATE + + + ) + +33 #iâdeà +TILWIN_INTERN + + +34  + ~"twšI.h +" + +39 +Tžwš + * + mwšp +; + +40  + moff£t +; + +41 } + tWšpHªdË +; + +44  + #S‹_CÛrû +( +hªdË +) \ + +45 Ð( +hªdË +). +wšp + ) + + ) + +47  + #S‹_Ev”_O³Ãd +( +wšp +) \ + +48 Ð(( +wšp +)-> +time¡amp +è!ð0 ) + + ) + + @std_defs.h + +33 #iâdeà +STD_DEFS + + +35  + #STD_DEFS + + + ) + +38 #ifdeà +boÞ + + +39 #undeà +boÞ + + +42  + tboÞ +; + +44 * + tpoš‹r +; + +45 (* + gVoidFunc +)(); + +49 #iâdeà +NULL + + +50  + #NULL + 0 + + ) + +55 #iâdeà +TRUE + + +56  + #TRUE + 1 + + ) + +59 #iâdeà +FALSE + + +60  + #FALSE + 0 + + ) + +63  + #®loÿ‹ +( +ty³ +, +quª +èÐÑy³ *è + `m®loc +(Ñy³è* (quª)è) + + ) + +65  + #FOREVER + ;;) + + ) + +70  + #¡»ql +( +¡r1 +, +¡r2 +) \ + +71 ÐÐÐ( +¡r1 +è=ð +NULL + ) || ( str1[0] == NULL ) ) ? \ + +72 ÐÐ( +¡r2 +è=ð +NULL + ) || ( str2[0] == NULL ) ) : \ + +73 ÐÐ( +¡r2 +è!ð +NULL + ) && ( + `¡rcmp +( +¡r1 +,¡r2è=ð0 ) ) ) + + ) + +75  + #¡r_cÝy +( +¡r1 +, +¡r2 +) \ + +77 iàÐ( +¡r2 +è=ð +NULL + ) \ + +78 ( +¡r1 +èð +NULL +; \ + +81 ( +¡r1 +èð + `®loÿ‹ +Ð, 1 + + `¡¾’ +( +¡r2 +) ); \ + +82 + `¡rýy +Ð +¡r1 +, +¡r2 + ); \ + +84 } + + ) + +86  + #¡r_»¶aû +( +¡r1 +, +¡r2 +) \ + +88 iàÐ( +¡r1 +è!ð +NULL + ) \ + +89 + `ä“ +Ð +¡r1 + ); \ + +90 + `¡r_cÝy +Ð +¡r1 +, +¡r2 + ) \ + +91 } + + ) + +93  + #¡r_Ëngth +( +¡r +è((¡r)? + `¡¾’ +(¡r):0) + + ) + +95  + #¡r_ä“ +( +¡r +) \ + +97 ià( +¡r +) \ + +98 + `ä“ +((*è +¡r +); \ + +99 } + + ) + +103  + #SUCCESS + 0 + + ) + +104  + #FAILURE + -1 + + ) + +109  + #ABS +( +v® +) \ + +110 ÐÐ( +v® +è< 0 ) ? -(v®è: (v®è) + + ) + +112  + #MIN +( +v®1 +, +v®2 +) \ + +113 ÐÐ( +v®1 +è< ( +v®2 +èè? (v®1è: (v®2è) + + ) + +115  + #MAX +( +v®1 +, +v®2 +) \ + +116 ÐÐ( +v®1 +è> ( +v®2 +èè? (v®1è: (v®2è) + + ) + +118  + #Is_Ev’_Numb” +( +numb” +èÐ(Òumb” % 2è=ð0è? +TRUE + : +FALSE + ) + + ) + +119  + #Is_Odd_Numb” +( +numb” +èÐ(Òumb” % 2è=ð0è? +FALSE + : +TRUE + ) + + ) + +121  + ~ + + @synonymsS.h + +30  + #LENGTH_SYNONYMS + 30 + + ) + +32 *( + gsynÚym_¡rs +[ +LENGTH_SYNONYMS +]) = { + + @til_create.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)til_create.c 5.3 9/7/88"; + +28  + ~"cÝyright.h +" + +34  + ~"tžeD.h +" + +35  + ~"tže.h +" + +37 +Tže + * +Tže_S¶™_TÝ +(), + +38 * +Tže_S¶™_BÙtom +(), + +39 * +Tže_S¶™_Leá +(), + +40 * +Tže_S¶™_Right +(); + +42  +Tže_M”ge +(); + +43 #ifdeà +WM_DEBUG + + +44  +Tže_Pªic +(); + +47 +Tž• + + +48 + $Tže_C»©e +( +¬—_Ëá_x +, +¬—_tÝ_y +, +¬—_right_x +, +¬—_bÙtom_y +) + +49 +Ba£ty³ + +¬—_Ëá_x +, +¬—_tÝ_y +, +¬—_right_x +, +¬—_bÙtom_y +; + +51 +Tže + * +ûÁ”_tže +, + +52 * +edge_tže +, + +53 * +´ev_Ëá_tže + = +NULL_TILE +, + +54 * +´ev_right_tže + = +NULL_TILE +; + +56 +Tže + * +growšg_tže + = +NULL_TILE +; + +58 #ifdeà +WM_DEBUG + + +60 ià( +¬—_Ëá_x + >ð +¬—_right_x + || + +61 +¬—_tÝ_y + >ð +¬—_bÙtom_y +) + +62 + `Tže_Pªic +("tryingo create‡‚onsenseile"); + +68 +ûÁ”_tže + = ( +Tže + *è + `Tže_©_Pošt +( +¬—_Ëá_x +, +¬—_tÝ_y +); + +69 #ifdeà +WM_DEBUG + + +70 ià( +ûÁ”_tže + =ð +NULL_TILE +) + +71 + `Tže_Pªic +("tryingo create‡ile off ofhe desktop"); + +74 ià( +¬—_tÝ_y + !ð + `TÝ_Y +( +ûÁ”_tže +)) + +75 (è + `Tže_S¶™_TÝ +( +ûÁ”_tže +, +¬—_tÝ_y +); + +80 +edge_tže + = ( +Tže + *è + `Tže_©_Pošt +( +¬—_right_x +, +¬—_bÙtom_y +); + +81 #ifdeà +WM_DEBUG + + +82 ià( +edge_tže + =ð +NULL_TILE +) + +83 + `Tže_Pªic +("tryingo create‡ile off ofhe desktop"); + +86 ià( +¬—_bÙtom_y + !ð + `BÙtom_Y +( +edge_tže +)) + +87 (è + `Tže_S¶™_BÙtom +( +edge_tže +, +¬—_bÙtom_y +); + +95 ià( +¬—_Ëá_x + !ð + `Leá_X +( +ûÁ”_tže +)) + +97 +edge_tže + = + `Tže_S¶™_Leá +( +ûÁ”_tže +, + +98 +¬—_Ëá_x +); + +108 ià( + `¹_¡™ch +( +edge_tže +è!ð +NULL_TILE + && + +109 + `Tže_G‘_Ty³ +( + `¹_¡™ch +( +edge_tže +)è=ð +S·û + && + +110 + `Leá_X +( +edge_tže +è=ðLeá_X( + `¹_¡™ch +(edge_tile)) && + +111 + `Right_X +( +edge_tže +è=ðRight_X( + `¹_¡™ch +(edge_tile))) + +112 + `Tže_M”ge +( +edge_tže +, + `¹_¡™ch +Ódge_tže), +TÝ +); + +114 +´ev_Ëá_tže + = +edge_tže +; + +117 +´ev_Ëá_tže + = +NULL_TILE +; + +119 ià( +¬—_right_x + !ð + `Right_X +( +ûÁ”_tže +)) + +121 +edge_tže + = + `Tže_S¶™_Right +( +ûÁ”_tže +, + +122 +¬—_right_x +); + +125 ià( + `¹_¡™ch +( +edge_tže +è!ð +NULL_TILE + && + +126 + `Tže_G‘_Ty³ +( + `¹_¡™ch +( +edge_tže +)è=ð +S·û + && + +127 + `Leá_X +( +edge_tže +è=ðLeá_X( + `¹_¡™ch +(edge_tile)) && + +128 + `Right_X +( +edge_tže +è=ðRight_X( + `¹_¡™ch +(edge_tile))) + +129 + `Tže_M”ge +( +edge_tže +, + `¹_¡™ch +Ódge_tže), +TÝ +); + +131 +´ev_right_tže + = +edge_tže +; + +134 +´ev_right_tže + = +NULL_TILE +; + +136 ià( +growšg_tže + =ð +NULL_TILE +) + +137 +growšg_tže + = +ûÁ”_tže +; + +139 + `Tže_M”ge +( +growšg_tže +, +ûÁ”_tže +, +BÙtom +); + +142 +ûÁ”_tže + = ( +Tže + *è + `Tže_©_Pošt +( + `Leá_X +( +growšg_tže +), + +143 ( + `BÙtom_Y +( +growšg_tže +) + 1)); + +146  +ûÁ”_tže + !ð +NULL_TILE + && + +147 + `TÝ_Y +( +ûÁ”_tže +è< +¬—_bÙtom_y + ); + +153 ià( +´ev_Ëá_tže + !ð +NULL_TILE +) { + +154 +edge_tže + = + `lb_¡™ch +( +´ev_Ëá_tže +); + +157 if( +edge_tže + !ð +NULL_TILE + && + +158 + `Tže_G‘_Ty³ +( +edge_tže +è=ð +S·û +) + +159 ià( + `Leá_X +( +edge_tže +è=ðLeá_X( +´ev_Ëá_tže +) + +160 && + `Right_X +( +edge_tže +è=ðRight_X( +´ev_Ëá_tže +)) + +161 + `Tže_M”ge +( +edge_tže +, +´ev_Ëá_tže +, +TÝ +); + +164 ià( +´ev_right_tže + !ð +NULL_TILE +) { + +165 +edge_tže + = + `lb_¡™ch +( +´ev_right_tže +); + +167 if( +edge_tže + !ð +NULL_TILE + && + +168 + `Tže_G‘_Ty³ +( +edge_tže +è=ð +S·û +) + +169 ià( + `Leá_X +( +edge_tže +è=ðLeá_X( +´ev_right_tže +) + +170 && + `Right_X +( +edge_tže +è=ðRight_X( +´ev_right_tže +)) + +171 + `Tže_M”ge +( +edge_tže +, +´ev_right_tže +, +TÝ +); + +174 + `Tže_S‘_Name +( +growšg_tže +, +tže_Çme +++); + +175 + `Tže_S‘_Ty³ +( +growšg_tže +, +SÞid +); + +177  ( ( +Tž• +è +growšg_tže + ); + +178 + } +} + + @til_delete.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)til_delete.c 5.3 9/7/88"; + +28  + ~"cÝyright.h +" + +37  + ~"tžeD.h +" + +38  + ~"tže-li¡P.h +" + +39  + ~"tže.h +" + +41 +Tže + * +Tže_©_CP +; + +42 +Tže + * +Tže_S¶™_TÝ + (), * +Tže_S¶™_BÙtom + (); + +43  +Tže_M”ge +(); + +44 +Tže_Li¡ + +Tže_Right_NeighbÜs + (), +Tže_Leá_NeighbÜs + (); + +45 +Tže + * +M¬ry_NeighbÜs +(); + +48 + $Tže_D–‘e +( +g’”iý +) + +49 +Tž• + +g’”iý +; + +51 +Tže_Li¡ + +RÃighbÜs +, +LÃighbÜs +; + +52 +Tže + * +Ãxt_nbr +; + +53 +Tže + * +tÝ_tže +, * +bÙtom_tže +; + +54 +Tže + * +¡™ch +; + +55 +TWReùªgË + +Þd_¬— +; + +56 +Tže + * +tž• + = (Tž*è +g’”iý +; + +61 iàÐ + `bl_¡™ch +( +tž• +è!ð +NULL_TILE + ) + +62 +Tže_©_CP + = + `bl_¡™ch +( +tž• +); + +63 iàÐ + `lb_¡™ch +( +tž• +è!ð +NULL_TILE + ) + +64 +Tže_©_CP + = + `lb_¡™ch +( +tž• +); + +65 iàÐ + `Œ_¡™ch +( +tž• +è!ð +NULL_TILE + ) + +66 +Tže_©_CP + = + `Œ_¡™ch +( +tž• +); + +67 iàÐ + `¹_¡™ch +( +tž• +è!ð +NULL_TILE + ) + +68 +Tže_©_CP + = + `¹_¡™ch +( +tž• +); + +70 + `Tže_S‘_Ty³ + ( +tž• +, +S·û +); + +72 ià( +Tže_©_CP + =ð +tž• +) + +78 +Þd_¬— +. +Ëá_x + = + `Leá_X + ( +tž• +); + +79 +Þd_¬— +. +tÝ_y + = + `TÝ_Y + ( +tž• +); + +80 +Þd_¬— +. +right_x + = + `Right_X + ( +tž• +); + +81 +Þd_¬— +. +bÙtom_y + = + `BÙtom_Y + ( +tž• +); + +89 +RÃighbÜs + = + `Tže_Right_NeighbÜs +( +tž• +); + +90 +LÃighbÜs + = + `Tže_Leá_NeighbÜs +( +tž• +); + +92 + `TL_NEXT +( +Ãxt_nbr +, +RÃighbÜs +); + +94  +Ãxt_nbr + !ð +NULL_TILE +) + +96 ià( + `Tže_G‘_Ty³ +( +Ãxt_nbr +è=ð +S·û +) + +97 +tž• + = + `M¬ry_NeighbÜs +Ñž•, +Ãxt_nbr +); + +99 + `TL_NEXT +( +Ãxt_nbr +, +RÃighbÜs +); + +101 + `TL_FREE +( +RÃighbÜs +) + +108 + `TL_NEXT +( +tž• +, +LÃighbÜs +); + +110  +tž• + !ð +NULL_TILE +) + +112 ià( + `Tže_G‘_Ty³ +( +tž• +è=ð +S·û +) + +114 +RÃighbÜs + = + `Tže_Right_NeighbÜs +( +tž• +); + +115 + `TL_NEXT +( +Ãxt_nbr +, +RÃighbÜs +); + +117  +Ãxt_nbr + !ð +NULL_TILE +) + +119 ià( + `Tže_G‘_Ty³ +( +Ãxt_nbr +è=ð +S·û +) + +120 +tž• + = + `M¬ry_NeighbÜs +Ñž•, +Ãxt_nbr +); + +122 + `TL_NEXT +( +Ãxt_nbr +, +RÃighbÜs +); + +124 + `TL_FREE +( +RÃighbÜs +) + +126 + `TL_NEXT +( +tž• +, +LÃighbÜs +); + +128 + `TL_FREE + ( +LÃighbÜs +) + +134 +bÙtom_tže + = ( +Tže + *è + `Tže_©_Pošt +( +Þd_¬— +. +Ëá_x +, old_¬—. +bÙtom_y +); + +136 iàÐ( +¡™ch + = + `lb_¡™ch +( +bÙtom_tže +)è!ð +NULL_TILE + && + +137 + `Tže_G‘_Ty³ +( +¡™ch +è=ð +S·û + ) + +139 ià( + `Leá_X +( +bÙtom_tže +è=ðLeá_X( +¡™ch +) && + +140 + `Right_X +( +bÙtom_tže +è=ðRight_X( +¡™ch +)) + +142 + `Tže_M”ge +( +bÙtom_tže +, +¡™ch +, +BÙtom +); + +145 +tÝ_tže + = ( +Tže + *è + `Tže_©_Pošt +( +Þd_¬— +. +Ëá_x +, old_¬—. +tÝ_y +); + +147 iàÐ( +¡™ch + = + `¹_¡™ch +( +tÝ_tže +)è!ð +NULL_TILE + && + +148 + `Tže_G‘_Ty³ +( +¡™ch +è=ð +S·û + ) + +150 ià( + `Leá_X +( +tÝ_tže +è=ðLeá_X( +¡™ch +) && + +151 + `Right_X +( +tÝ_tže +è=ðRight_X( +¡™ch +)) + +153 + `Tže_M”ge +( +tÝ_tže +, +¡™ch +, +TÝ +); + +155 + } +} + +167 +Tže + * + +168 + $M¬ry_NeighbÜs +( +tže +, +ÃighbÜ +) + +169 +Tže + * +tže +; + +170 +Tže + * +ÃighbÜ +; + +172 +Tže + * +»tuº_tže +; + +173 +Ba£ty³ + +tÝ +; + +174 +Ba£ty³ + +bÙtom +; + +176 +»tuº_tže + = +tže +; + +178 if( + `TÝ_Y +( +tže +è> TÝ_Y( +ÃighbÜ +)) + +179 +tÝ + = + `TÝ_Y +( +tže +); + +181 +tÝ + = + `TÝ_Y +( +ÃighbÜ +); + +183 if( + `BÙtom_Y +( +tže +è< BÙtom_Y( +ÃighbÜ +)) + +184 +bÙtom + = + `BÙtom_Y +( +tže +); + +186 +bÙtom + = + `BÙtom_Y +( +ÃighbÜ +); + +188 if( + `TÝ_Y +( +tže +è!ð +tÝ +) + +189 + `Tže_S¶™_TÝ +( +tže +, +tÝ +); + +190 if( + `TÝ_Y +( +ÃighbÜ +è!ð +tÝ +) + +191 + `Tže_S¶™_TÝ +( +ÃighbÜ +, +tÝ +); + +193 if( + `BÙtom_Y +( +tže +è!ð +bÙtom +) + +194 +»tuº_tže + = + `Tže_S¶™_BÙtom +( +tže +, +bÙtom +); + +195 if( + `BÙtom_Y +( +ÃighbÜ +è!ð +bÙtom +) + +196 + `Tže_S¶™_BÙtom +( +ÃighbÜ +, +bÙtom +); + +198 (è + `Tže_M”ge +( +tže +, +ÃighbÜ +, +Right +); + +199 ( +»tuº_tže +); + +200 + } +} + + @til_enlrg.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)til_enlrg.c 5.3 9/7/88"; + +28  + ~"cÝyright.h +" + +34  + ~"tžeD.h +" + +35  + ~"tže.h +" + +37  +Tže_M”ge +(); + +39 #ifdeà +WM_DEBUG + + +40  +Tže_Pªic +(); + +44 + $Tže_EƬge +( +g’”iý +, +side +, +coÜd +) + +45 +Tž• + +g’”iý +; + +46 +Side + +side +; + +47 +Ba£ty³ + +coÜd +; + +49 +Tže + * +Ãw_tže +, + +50 * +tže + = ( +Tže + *è +g’”iý +; + +52  +side +) { + +53  +Leá +: + +54 #ifdeà +WM_DEBUG + + +55 if( +coÜd + >ð + `Leá_X +( +tže +)) + +56 + `Tže_Pªic +("enlarge out of horizontal„ange"); + +58 +Ãw_tže + = ( +Tže + *è + `Tže_C»©e +( +coÜd +, + `TÝ_Y +( +tže +), + +59 + `Leá_X +( +tže +)-1, + `BÙtom_Y +(tile)); + +60 + `Tže_M”ge +( +tže +, +Ãw_tže +, +Leá +); + +63  +Right +: + +64 #ifdeà +WM_DEBUG + + +65 if( +coÜd + <ð + `Right_X +( +tže +)) + +66 + `Tže_Pªic +("enlarge out of horizontal„ange"); + +68 +Ãw_tže + = ( +Tže + *è + `Tže_C»©e +( + `Right_X +( +tže +)+1, + `TÝ_Y +(tile), + +69 +coÜd +, + `BÙtom_Y +( +tže +)); + +70 + `Tže_M”ge +( +tže +, +Ãw_tže +, +Right +); + +73  +TÝ +: + +74 #ifdeà +WM_DEBUG + + +75 if( +coÜd + >ð + `TÝ_Y +( +tže +)) + +76 + `Tže_Pªic +("enlarge out of vertical„ange"); + +78 +Ãw_tže + = ( +Tže + *è + `Tže_C»©e +( + `Leá_X +( +tže +), +coÜd +, + +79 + `Right_X +( +tže +), + `TÝ_Y +(tile)-1); + +80 + `Tže_M”ge +( +tže +, +Ãw_tže +, +TÝ +); + +83  +BÙtom +: + +84 #ifdeà +WM_DEBUG + + +85 if( +coÜd + <ð + `BÙtom_Y +( +tže +)) + +86 + `Tže_Pªic +("enlarge out of vertical„ange"); + +88 +Ãw_tže + = ( +Tže + *è + `Tže_C»©e +( + `Leá_X +( +tže +), + `BÙtom_Y +(tile)+1, + +89 + `Right_X +( +tže +), +coÜd +); + +90 + `Tže_M”ge +( +tže +, +Ãw_tže +, +BÙtom +); + +93 + } +} + + @til_find.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)til_find.c 5.3 9/7/88"; + +28  + ~"cÝyright.h +" + +35  + ~"tžeD.h +" + +36  + ~"twš.h +" + +38 +Tže + * +Tže_©_CP +; + +40 #ifdeà +WM_DEBUG + + +41  +Tže_Pªic +(); + +45 +Tž• + + +46 + $Tže_©_Pošt +( +x +, +y +) + +47 +Ba£ty³ + +x +, +y +; + +49 +Tže + * +tž• + = +Tže_©_CP +; + +51 iàÐ +x + < 0 || + `G‘_Width +( + `Tžwš_G‘_DesktÝ_Size +()) - 1 < x || + +52 +y + < 0 || + `G‘_Height +( + `Tžwš_G‘_DesktÝ_Size +()) - 1 < y ) + +53  ( ( +Tž• +è +NULL_TILE + ); + +55 +FOREVER + + +57 ià( + `TÝ_Y +( +tž• +è<ð +y +) + +59 ià( +y + <ð + `BÙtom_Y +( +tž• +)) + +63 ià( + `Leá_X +( +tž• +è<ð +x +) + +65 ià( +x + <ð + `Right_X +( +tž• +)) + +72 +tž• + = + `Œ_¡™ch +(tilep); + +75 +tž• + = + `bl_¡™ch +(tilep); + +78 +tž• + = + `lb_¡™ch +(tilep); + +81 +tž• + = + `¹_¡™ch +(tilep); + +84 ià( +tž• + !ð +NULL_TILE +) + +85 +Tže_©_CP + = +tž• +; + +86 #ifdeà +WM_DEBUG + + +88 + `Tže_Pªic +("tile‡t Current Position is‚ullile"); + +90  ( ( +Tž• +è +tž• + ); + +91 + } +} + + @til_nbrs.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)til_nbrs.c 5.3 9/7/88"; + +33  + ~"tžeD.h +" + +34  + ~"tže.h +" + +35  + ~"tže-li¡P.h +" + +37 #ifdeà +WM_DEBUG + + +38  +Tže_Pªic +(); + +41 +Tže_Li¡ + + +42 + $Tže_Right_NeighbÜs +( +tž• +) + +43 +Tže + * +tž• +; + +45 +Tže_Li¡ + +tže_li¡ +; + +46 +Tže + * +Ãxt_ÃighbÜ + = + `Œ_¡™ch +( +tž• +); + +48 +tže_li¡ +. +fœ¡ + =že_li¡. +Ï¡ + =že_li¡. +cu¼’t + = +TENULL +; + +50  +Ãxt_ÃighbÜ + !ð +NULL_TILE + + +51 && + `BÙtom_Y +( +tž• +è>ð + `TÝ_Y +( +Ãxt_ÃighbÜ +)) + +53 + `TL_ADD +( +Ãxt_ÃighbÜ +, +tže_li¡ +); + +54 +Ãxt_ÃighbÜ + = + `lb_¡™ch +(next_neighbor); + +57 ( +tže_li¡ +); + +58 + } +} + +61 +Tže_Li¡ + + +62 + $Tže_Leá_NeighbÜs +( +tž• +) + +63 +Tže + * +tž• +; + +65 +Tže_Li¡ + +tže_li¡ +; + +66 +Tže + * +Ãxt_ÃighbÜ + = + `bl_¡™ch +( +tž• +); + +68 +tže_li¡ +. +fœ¡ + =že_li¡. +Ï¡ + =že_li¡. +cu¼’t + = +TENULL +; + +69  +Ãxt_ÃighbÜ + !ð +NULL_TILE + + +70 && + `TÝ_Y +( +tž• +è<ð + `BÙtom_Y +( +Ãxt_ÃighbÜ +)) + +72 + `TL_ADD +( +Ãxt_ÃighbÜ +, +tže_li¡ +); + +73 +Ãxt_ÃighbÜ + = + `¹_¡™ch +(next_neighbor); + +76 ( +tže_li¡ +); + +77 + } +} + +80 +Tže_Li¡ + + +81 + $Tže_TÝ_NeighbÜs +( +tž• +) + +82 +Tže + * +tž• +; + +84 +Tže_Li¡ + +tže_li¡ +; + +85 +Tže + * +Ãxt_ÃighbÜ + = + `¹_¡™ch +( +tž• +); + +87 +tže_li¡ +. +fœ¡ + =že_li¡. +Ï¡ + =že_li¡. +cu¼’t + = +TENULL +; + +88  +Ãxt_ÃighbÜ + !ð +NULL_TILE + + +89 && + `Leá_X +( +tž• +è<ð + `Right_X +( +Ãxt_ÃighbÜ +)) + +91 + `TL_ADD +( +Ãxt_ÃighbÜ +, +tže_li¡ +); + +92 +Ãxt_ÃighbÜ + = + `bl_¡™ch +(next_neighbor); + +95 ( +tže_li¡ +); + +96 + } +} + +99 +Tže_Li¡ + + +100 + $Tže_BÙtom_NeighbÜs +( +tž• +) + +101 +Tže + * +tž• +; + +103 +Tže_Li¡ + +tže_li¡ +; + +104 +Tže + * +Ãxt_ÃighbÜ + = + `lb_¡™ch +( +tž• +); + +106 +tže_li¡ +. +fœ¡ + =že_li¡. +Ï¡ + =že_li¡. +cu¼’t + = +TENULL +; + +107  +Ãxt_ÃighbÜ + !ð +NULL_TILE + + +108 && + `Leá_X +( +Ãxt_ÃighbÜ +è<ð + `Right_X +( +tž• +)) + +110 + `TL_ADD +( +Ãxt_ÃighbÜ +, +tže_li¡ +); + +111 +Ãxt_ÃighbÜ + = + `Œ_¡™ch +(next_neighbor); + +114 ( +tže_li¡ +); + +115 + } +} + + @til_panic.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)til_panic.c 5.4 9/7/88"; + +28  + ~"cÝyright.h +" + +32  + ~<¡dio.h +> + +35 + $Tže_Pªic +( +¡r +) + +36 * +¡r +; + +38 + `årštf +( +¡d”r +, "Tžšg Sy¡em…ªic: %s\n", +¡r +); + +39 #ifdeà +WM_DEBUG + + +40 + `årštf +( +¡d”r +, " (going into‡n infinite†oop)\n"); + +41 + `fæush +( +¡d”r +); + +46 + `ex™ +(1); + +48 + } +} + + @til_shrink.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)til_shrink.c 5.3 9/7/88"; + +28  + ~"cÝyright.h +" + +32  + ~<¡dio.h +> + +33  + ~"tžeD.h +" + +35 +Tže + * +Tže_S¶™_Leá +(), + +36 * +Tže_S¶™_Right +(), + +37 * +Tže_S¶™_TÝ +(), + +38 * +Tže_S¶™_BÙtom +(); + +40  +Tže_D–‘e +(); + +42 #ifdeà +WM_DEBUG + + +43  +Tže_Pªic +(); + +48 + $Tže_Shršk +( +g’”iý +, +side +, +coÜd +) + +49 +Tž• + +g’”iý +; + +50 +Side + +side +; + +51 +Ba£ty³ + +coÜd +; + +53 +Tže + * +Sp +, + +54 * +tže + = ( +Tže + *è +g’”iý +; + +59  +side +) + +61  +Leá +: + +62 #ifdeà +WM_DEBUG + + +63 if( +coÜd + <ð + `Leá_X +( +tže +è|| coÜd >ð + `Right_X +(tile)) + +64 + `Tže_Pªic +("shrink out of horizontal„ange"); + +66 +Sp + = + `Tže_S¶™_Leá +( +tže +, +coÜd +); + +69  +Right +: + +70 #ifdeà +WM_DEBUG + + +71 if( +coÜd + <ð + `Leá_X +( +tže +è|| coÜd >ð + `Right_X +(tile)) + +72 + `Tže_Pªic +("shrink out of horizontal„ange"); + +74 +Sp + = + `Tže_S¶™_Right +( +tže +, +coÜd +); + +77  +TÝ +: + +78 #ifdeà +WM_DEBUG + + +79 if( +coÜd + <ð + `TÝ_Y +( +tže +è|| coÜd >ð + `BÙtom_Y +(tile)) + +80 + `Tže_Pªic +("shrink out of vertical„ange"); + +82 +Sp + = + `Tže_S¶™_TÝ +( +tže +, +coÜd +); + +85  +BÙtom +: + +86 #ifdeà +WM_DEBUG + + +87 if( +coÜd + <ð + `TÝ_Y +( +tže +è|| coÜd >ð + `BÙtom_Y +(tile)) + +88 + `Tže_Pªic +("shrink out of vertical„ange"); + +90 +Sp + = + `Tže_S¶™_BÙtom +( +tže +, +coÜd +); + +94 + `Tže_D–‘e +Ð( +Tž• +è +Sp + ); + +95 + } +} + + @tile-listP.h + +33  +tže_–em’t + + tTže_EËm’t +; + +34  + stže_–em’t +{ + +35 +Tže + * + mŒ +; + +36 +Tže_EËm’t + * + mÃxt +; + +39  +tže_li¡ + + tTže_Li¡ +; + +40  + stže_li¡ +{ + +41 +Tže_EËm’t + * + mfœ¡ +; + +42 +Tže_EËm’t + * + mÏ¡ +; + +43 +Tže_EËm’t + * + mcu¼’t +; + +46  + #TENULL + (( +Tže_EËm’t + *è0) + + ) + +57  + #TL_ADD +( +tže +, +li¡ +) \ + +59  +Tže_EËm’t + * +TE +; \ + +60 + `TE_ALLOC +( +TE +); \ + +61 +TE +-> +Œ + = +tže +; \ + +62 +TE +-> +Ãxt + = +TENULL +; \ + +63 if( +li¡ +. +fœ¡ + =ð +TENULL +) \ + +64 +li¡ +. +fœ¡ + =†i¡. +Ï¡ + = +TE +; \ + +66 +li¡ +. +Ï¡ +-> +Ãxt + = +TE +; \ + +67 +li¡ +. +Ï¡ + = +TE +; \ + +69 } + + ) + +72  + #TL_FREE +( +li¡ +) \ + +74  +Tže_EËm’t + * +TE +; \ + +75  +li¡ +. +fœ¡ + !ð +TENULL +) { \ + +76 +TE + = +li¡ +. +fœ¡ +; \ + +77 +li¡ +. +fœ¡ + = +TE +-> +Ãxt +; \ + +78 + `TE_FREE +( +TE +); \ + +80 +li¡ +. +fœ¡ + =†i¡. +Ï¡ + =†i¡. +cu¼’t + = +TENULL +; \ + +81 } + + ) + +84  + #TL_NEXT +( +tže +, +li¡ +) \ + +86 ià( +li¡ +. +fœ¡ + !ð +TENULL +) { \ + +87 if( +li¡ +. +cu¼’t + =ð +TENULL +){ \ + +88 +tže + = +li¡ +. +fœ¡ +-> +Œ +; \ + +89 +li¡ +. +cu¼’t + =†i¡. +fœ¡ +-> +Ãxt +; \ + +90 if( +li¡ +. +cu¼’t + =ð +TENULL +){ \ + +91 +li¡ +. +cu¼’t + =†i¡. +fœ¡ +; \ + +94 ià( +li¡ +. +cu¼’t + =ðli¡. +fœ¡ +) { \ + +95 +tže + = +NULL_TILE +; \ + +98 +tže + = +li¡ +. +cu¼’t +-> +Œ +; \ + +99 +li¡ +. +cu¼’t + =†i¡.cu¼’t-> +Ãxt +; \ + +100 ià( +li¡ +. +cu¼’t + =ð +TENULL +) { \ + +101 +li¡ +. +cu¼’t + =†i¡. +fœ¡ +; \ + +106 +tže + = +NULL_TILE +; \ + +108 } + + ) + +110  + #TE_ALLOC +( +–em’t +) \ + +112 ià( +‹_ä“li¡ + =ð +TENULL +) { \ + +113 ià(( +–em’t + = ( +Tže_EËm’t + *è + `m®loc +((Tže_EËm’t))è=ð +TENULL +) \ + +114 + `Tže_Pªic +("tl_alloc malloc failed."); \ + +117 +–em’t + = +‹_ä“li¡ +; \ + +118 +‹_ä“li¡ + =e_ä“li¡-> +Ãxt +; \ + +120 } + + ) + +122  + #TE_FREE +( +–em’t +) \ + +124 +–em’t +-> +Ãxt + = +‹_ä“li¡ +; \ + +125 +‹_ä“li¡ + = +–em’t +; \ + +126 +–em’t + = +TENULL +; \ + +127 } + + ) + +129 +Tže_EËm’t + * +‹_ä“li¡ +; + + @tile.h + +30 #iâdeà +TILE + + +31  + ~"tžeP.h +" + +34  + #TILE_EXTERN + + + ) + +36  +Tže_In™_Tws +(); + +40  +Tžes_In_A»a +(); + +45 +Tž• + +Tže_C»©e +(); + +48  +Tže_D–‘e +(); + +51  +Tže_EƬge +(); + +57 +Tž• + +Tže_©_Pošt +(); + +60  +Tže_Shršk +(); + +66  +Tže_Shršk_DesktÝ +(); + +71  +Tže_EƬge_DesktÝ +(); + +76  +Tže_Upd©e_Max_HÜ_SŒs +(); + +77  +Tže_Upd©e_Max_V”_SŒs +(); + +78  +Tže_C»©e_Max_HÜ_SŒs +(); + +79  +Tže_C»©e_Max_V”_SŒs +(); + +80  +Tže_C»©e_HÜ_PrÜ©e_G¿ph +(); + +81  +Tže_C»©e_V”_PrÜ©e_G¿ph +(); + + @tileD.h + +30 #iâdeà +TILE_INTERN + + +31  + ~"tžeI.h +" + +34  + #TILE_DEFINE + + + ) + +37  + #NULL_TILE + +NuÎ_Tže + + + ) + +39  + #Tže_G‘_Name +( +tž• +è(Ñž•è-> +Çme +) + + ) + +40  + #Tže_S‘_Name +( +tž• +, +a_Çme +è(Ñž•è-> +Çme + = (a_Çme)) + + ) + +42  + #Tže_G‘_CÜÃrs +( +tž• +è(Ñž•è-> +cÜÃrs +) + + ) + +43  + #Tže_S‘_CÜÃrs +( +tž• +, +»ù +è(Ñž•è-> +cÜÃrs + = (»ù)) + + ) + +45  + #Tže_G‘_Ty³ +( +tž• +è(Ñž•è-> +tže_ty³ +) + + ) + +46  + #Tže_S‘_Ty³ +( +tž• +, +ty³ +è(Ñž•è-> +tže_ty³ + = (ty³)) + + ) + +48  + #Tže_G‘_Wš +( +tž• +è(( +Tže + *èÑž•è-> +my_wš +) + + ) + +49  + #Tže_S‘_Wš +( +tž• +, +wšp +è(Ñž•è-> +my_wš + = (*è(wšp)) + + ) + +51  + #Tže_G‘_HÜ_Edge +( +tž• +è(Ñž•è-> +hÜ +) + + ) + +52  + #Tže_S‘_HÜ_Edge +( +tž• +, +edge +è(Ñž•è-> +hÜ + = (*èÓdge)) + + ) + +54  + #Tže_G‘_V”_Edge +( +tž• +è(Ñž•è-> +v” +) + + ) + +55  + #Tže_S‘_V”_Edge +( +tž• +, +edge +è(Ñž•è-> +v” + = (*èÓdge)) + + ) + +63  + #Leá_X +( +tže_±r +è(Ñže_±rè-> +cÜÃrs +. +Ëá_x +) + + ) + +64  + #Right_X +( +tže_±r +è(Ñže_±rè-> +cÜÃrs +. +right_x +) + + ) + +65  + #BÙtom_Y +( +tže_±r +è(Ñže_±rè-> +cÜÃrs +. +bÙtom_y +) + + ) + +66  + #TÝ_Y +( +tže_±r +è(Ñže_±rè-> +cÜÃrs +. +tÝ_y +) + + ) + +80  + #bl_¡™ch +( +tž• +è(Ñž•è-> +bl +è + + ) + +82  + #lb_¡™ch +( +tž• +è(Ñž•è-> +lb +è + + ) + +84  + #Œ_¡™ch +( +tž• +è(Ñž•è-> +Œ +è + + ) + +86  + #¹_¡™ch +( +tž• +è(Ñž•è-> +¹ +è + + ) + +88 #ifdeà +WM_DEBUG + + +89 +Tže + * +t_glob® +; + + @tileI.h + +33 #iâdeà +TILE + + +34  + ~"tžeP.h +" + +37  + #TILE_INTERN + + + ) + +40  +¡r_tže + + tTže +; + +41  + s¡r_tže + + +43  + mÇme +; + +45 +Tže_Ty³ + + mtže_ty³ +; + +47 +TWReùªgË + + mcÜÃrs +; + +49 +Tže + * + mŒ +, + +50 * + m¹ +, + +51 * + mbl +, + +52 * + mlb +; + +54 +poš‹r + + mmy_wš +; + +57 +poš‹r + + mhÜ +, + +58 + mv” +; + +62 #iâdeà +NULL_DEFN + + +64 +Tže + * +NuÎ_Tže +; + +65  +tže_Çme +; + + @tileP.h + +28  + ~"ba£ty³.h +" + +30  + #TILE + + + ) + +35 + mSÞid +, + mS·û + + +36 } + tTže_Ty³ +; + +39  +poš‹r + + tTž• +; + + @tilecrsr.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "%W% %H%"; + +27  + ~"cÝyright.h +" + +29  + ~"¡d_defs.h +" + +30  + ~"tžeü¤P.h +" + +31  + ~"cÚŒÞ.h +" + +32  + ~ + +33  + ~ + +34  + ~"xio.h +" + +43 +TžeCursÜ + + g¡ªd¬d_tžecursÜ +; + +44 +TžeCursÜ + + gbackground_tžecursÜ +; + +45 +TžeCursÜ + + gbody_tžecursÜ +; + +47 +TžeCursÜ + + gm’u_tžecursÜ +; + +49 +TžeCursÜ + + gque¡iÚ_tžecursÜ +; + +50 +TžeCursÜ + + gcÚfœm©iÚ_tžecursÜ +; + +52 +TžeCursÜ + + gh—d”_tžecursÜ +; + +53 +TžeCursÜ + + gicÚ_tžecursÜ +; + +55 +TžeCursÜ + + ggadg‘_tžecursÜ +; + +56 +TžeCursÜ + + gmove_gadg‘_tžecursÜ +; + +57 +TžeCursÜ + + gzoom_gadg‘_tžecursÜ +; + +59 +TžeCursÜ + + gËá_tžecursÜ +; + +60 +TžeCursÜ + + gright_tžecursÜ +; + +61 +TžeCursÜ + + gtÝ_tžecursÜ +; + +62 +TžeCursÜ + + gbÙtom_tžecursÜ +; + +64 +TžeCursÜ + + gtÝ_Ëá_tžecursÜ +; + +65 +TžeCursÜ + + gbÙtom_Ëá_tžecursÜ +; + +66 +TžeCursÜ + + gtÝ_right_tžecursÜ +; + +67 +TžeCursÜ + + gbÙtom_right_tžecursÜ +; + +69 +TžeCursÜ + + gŒack_Ý’_tžecursÜ +; + +70 +TžeCursÜ + + gcÜÃr_Ý’_tžecursÜ +; + +71 +TžeCursÜ + + gûÁ”_Ý’_tžecursÜ +; + +72 +TžeCursÜ + + gÝ’_š_icÚ_tžecursÜ +; + +74 +TžeCursÜ + + gmove_tžecursÜ +; + +75 +TžeCursÜ + + gmove_icÚ_tžecursÜ +; + +77 +TžeCursÜ + + ggood_exchªge_tžecursÜ +; + +78 +TžeCursÜ + + gbad_exchªge_tžecursÜ +; + +80 +TžeCursÜ + + gw©ch_tžecursÜ +; + +84  + $TžeCursÜ_In™ +() + +86 +XFÚtSŒuù + * +fÚt +; + +87 +GC + +gc +; + +90 +fÚt + = ( +XFÚtSŒuù + *è + `XLßdQu”yFÚt +( +dpy +, "cursor"); + +91 +gc + = + `DeçuÉGC +( +dpy +, +sün +); + +92 + `XS‘FÚt +( +dpy +, +gc +, +fÚt +-> +fid +); + +94 +¡ªd¬d_tžecursÜ + = + `XC»©eFÚtCursÜ +( +dpy +, +XC_tÝ_Ëá_¬row +); + +95 +background_tžecursÜ + = +¡ªd¬d_tžecursÜ +; + +96 +body_tžecursÜ + = +¡ªd¬d_tžecursÜ +; + +97 +m’u_tžecursÜ + = +¡ªd¬d_tžecursÜ +; + +99 +que¡iÚ_tžecursÜ + = + `XC»©eFÚtCursÜ +( +dpy +, +XC_que¡iÚ_¬row +); + +100 +cÚfœm©iÚ_tžecursÜ + = +que¡iÚ_tžecursÜ +; + +102 +h—d”_tžecursÜ + = + `XC»©eFÚtCursÜ +( +dpy +, +XC_¹l_logo +); + +103 +icÚ_tžecursÜ + = +h—d”_tžecursÜ +; + +105 +gadg‘_tžecursÜ + = + `XC»©eFÚtCursÜ +( +dpy +, +XC_œÚ_üoss +); + +106 +zoom_gadg‘_tžecursÜ + = +gadg‘_tžecursÜ +; + +108 +move_gadg‘_tžecursÜ + = + `XC»©eFÚtCursÜ +( +dpy +, +XC_d¿³d_box +); + +109 +Ý’_š_icÚ_tžecursÜ + = +move_gadg‘_tžecursÜ +; + +111 +Ëá_tžecursÜ + = + `XC»©eFÚtCursÜ +( +dpy +, +XC_Ëá_side +); + +112 +right_tžecursÜ + = + `XC»©eFÚtCursÜ +( +dpy +, +XC_right_side +); + +113 +tÝ_tžecursÜ + = + `XC»©eFÚtCursÜ +( +dpy +, +XC_tÝ_side +); + +114 +bÙtom_tžecursÜ + = + `XC»©eFÚtCursÜ +( +dpy +, +XC_bÙtom_side +); + +116 +tÝ_Ëá_tžecursÜ + = + `XC»©eFÚtCursÜ +( +dpy +, +XC_tÝ_Ëá_cÜÃr +); + +117 +bÙtom_Ëá_tžecursÜ + = + `XC»©eFÚtCursÜ +( +dpy +, +XC_bÙtom_Ëá_cÜÃr +); + +118 +tÝ_right_tžecursÜ + = + `XC»©eFÚtCursÜ +( +dpy +, +XC_tÝ_right_cÜÃr +); + +119 +bÙtom_right_tžecursÜ + = + `XC»©eFÚtCursÜ +( +dpy +, +XC_bÙtom_right_cÜÃr +); + +121 +Œack_Ý’_tžecursÜ + = + `XC»©eFÚtCursÜ +( +dpy +, +XC_dÙbox +); + +122 +cÜÃr_Ý’_tžecursÜ + = +bÙtom_right_tžecursÜ +; + +123 +ûÁ”_Ý’_tžecursÜ + = + `XC»©eFÚtCursÜ +( +dpy +, +XC_sizšg +); + +125 +move_tžecursÜ + = + `XC»©eFÚtCursÜ +( +dpy +, +XC_hªd2 +); + +126 +move_icÚ_tžecursÜ + = +move_tžecursÜ +; + +128 +good_exchªge_tžecursÜ + = + `XC»©eFÚtCursÜ +( +dpy +, +XC_exchªge +); + +129 +bad_exchªge_tžecursÜ + = +good_exchªge_tžecursÜ +; + +131 +w©ch_tžecursÜ + = + `XC»©eFÚtCursÜ +( +dpy +, +XC_w©ch +); + +133 + } +} + +138 +TžeCursÜ + + +139 + $TžeCursÜ_Make +( +fi +, +c +) + +140  +fi +, +c +; + +141 { + } +} + + @tilecrsr.h + +28 #iâdeà +TILECURSOR + + +29  + ~"tžeü¤P.h +" + +32 +TžeCursÜ + +¡ªd¬d_tžecursÜ +; + +33 +TžeCursÜ + +background_tžecursÜ +; + +34 +TžeCursÜ + +body_tžecursÜ +; + +36 +TžeCursÜ + +m’u_tžecursÜ +; + +38 +TžeCursÜ + +que¡iÚ_tžecursÜ +; + +39 +TžeCursÜ + +cÚfœm©iÚ_tžecursÜ +; + +41 +TžeCursÜ + +h—d”_tžecursÜ +; + +42 +TžeCursÜ + +icÚ_tžecursÜ +; + +44 +TžeCursÜ + +gadg‘_tžecursÜ +; + +45 +TžeCursÜ + +move_gadg‘_tžecursÜ +; + +46 +TžeCursÜ + +zoom_gadg‘_tžecursÜ +; + +48 +TžeCursÜ + +Ëá_tžecursÜ +; + +49 +TžeCursÜ + +right_tžecursÜ +; + +50 +TžeCursÜ + +tÝ_tžecursÜ +; + +51 +TžeCursÜ + +bÙtom_tžecursÜ +; + +53 +TžeCursÜ + +tÝ_Ëá_tžecursÜ +; + +54 +TžeCursÜ + +bÙtom_Ëá_tžecursÜ +; + +55 +TžeCursÜ + +tÝ_right_tžecursÜ +; + +56 +TžeCursÜ + +bÙtom_right_tžecursÜ +; + +58 +TžeCursÜ + +Œack_Ý’_tžecursÜ +; + +59 +TžeCursÜ + +cÜÃr_Ý’_tžecursÜ +; + +60 +TžeCursÜ + +ûÁ”_Ý’_tžecursÜ +; + +61 +TžeCursÜ + +Ý’_š_icÚ_tžecursÜ +; + +63 +TžeCursÜ + +move_tžecursÜ +; + +64 +TžeCursÜ + +move_icÚ_tžecursÜ +; + +66 +TžeCursÜ + +good_exchªge_tžecursÜ +; + +67 +TžeCursÜ + +bad_exchªge_tžecursÜ +; + +69 +TžeCursÜ + +w©ch_tžecursÜ +; + +73  +TžeCursÜ_In™ +(); + +75  +TžeCursÜ_S‘ +(); + +78 +TžeCursÜ + +TžeCursÜ_Make +(); + + @tilecrsrP.h + +29 #iâdeà +TILECURSOR + + +30  + #TILECURSOR + + + ) + +33  + tTžeCursÜ +; + + @tileicon.h + +30 #iâdeà +TILEICON + + +31  + ~"tžeicÚP.h +" + +34 #iâdeà +BASETYPE + + +35  + ~"ba£ty³.h +" + +38 #iâdeà +TILEMENU + + +39  + ~"tžem’uP.h +" + +42 +TžeIcÚ_In™ +(); + +45  +TžeIcÚ_C»©e +(); + +48  +TžeIcÚ_De¡roy +(); + +51  +TžeIcÚ_R‘™Ë +(); + +54 * +TžeIcÚ_G‘_T™Ë +(); + +57 +TWPošt + +TžeIcÚ_Pos™iÚ +(); + +60  +TžeIcÚ_Move +(); + +64  +TžeIcÚ_Red¿w +(); + +67  +TžeIcÚ_Com·ù +(); + +69  +TžeIcÚ_Add +(); + +72  +TžeIcÚ_Remove +(); + + @tileiconP.h + +28  + #TILEICON + + + ) + +33 +boÞ + + mev”_icÚized +; + +34 +boÞ + + micÚized +; + +35 * + micÚ¡r +; + +36 } + tTžeIcÚ +; + + @tilemenu.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "%W% %H%"; + +27  + ~"cÝyright.h +" + +30  + ~<¡dio.h +> + +32  + ~"ba£ty³.h +" + +33  + ~"bu‰ÚsP.h +" + +34  + ~"¹lm’uX.h +" + +36  + ~"cu¼’t.h +" + +38  + ~ + +40  + #DEFAULT_MENU_MASK + ( +RTLM’uO±iÚsMask +)0x0f + + ) + +42 +Di¥Ïy + * +dpy +; + +43  +sün +; + +45  +boÞ + + gš™Ÿlized + = +FALSE +; + +49 +TžeM’u + + $TžeM’u_C»©e +() + +51 ià(! +š™Ÿlized +) + +53 +š™Ÿlized + = +TRUE +; + +54 + `RTLM’u_In™Ÿlize +( +dpy +, +sün +, +DEFAULT_MENU_MASK +); + +56  ( +TžeM’u +è + `RTLM’u_C»©e +(); + +58 + } +} + +63 +poš‹r + + $TžeM’u_D©a +Ð +m’u +, +™em + ) + +64 +TžeM’u + +m’u +; + +65 +TžeM’uI‹m + +™em +; + +67 +g’”ic + +g +; + +69 +g + = + `RTLM’u_D©a +(( +RTLM’uI‹m +) +™em +); + +70  + `G‘G’Poš‹r +( +g +); + +71 + } +} + +75 +TžeM’u + + $TžeM’u_G‘_Subm’u +Ð +m’u +, +¡r + ) + +76 +TžeM’u + +m’u +; + +77 * +¡r +; + +79  + `RTLM’u_G‘_Subm’u +(( +RTLM’u +) +m’u +, +¡r +); + +80 + } +} + +84 +TžeM’uI‹m + + $TžeM’u_Aµ’d_SŒšg +Ð +m’u +, +¡r +, +¡rv® + ) + +85 +TžeM’u + +m’u +; + +86 * +¡r +; + +87 * +¡rv® +; + +89 +g’”ic + +g +; + +91 + `S‘G’Poš‹r +( +g +, +¡rv® +); + +93  ( +TžeM’uI‹m +) + +94 + `RTLM’u_Aµ’d_SŒšg +(( +RTLM’u +) +m’u +, +¡r +, +g +); + +95 + } +} + +99 +TžeM’uI‹m + + $TžeM’u_Aµ’d_C®lback +Ð +m’u +, +back´oc + ) + +100 +TžeM’u + +m’u +; + +101 +VoidFunc + +back´oc +; + +103  ( +TžeM’uI‹m +) + +104 + `RTLM’u_Aµ’d_C®lback +(( +RTLM’u +) +m’u +, +back´oc +); + +105 + } +} + +109 +TžeM’uI‹m + + $TžeM’u_Aµ’d_C®l +Ð +m’u +, +¡r +, +´oc +, +±rv® + ) + +110 +TžeM’u + +m’u +; + +111 * +¡r +; + +112 +VoidFunc + +´oc +; + +113 +poš‹r + +±rv® +; + +115 +g’”ic + +g +; + +117 + `S‘G’Poš‹r +( +g +, +±rv® +); + +119  ( +TžeM’uI‹m +) + +120 + `RTLM’u_Aµ’d_C®l +(( +RTLM’u +) +m’u +, +¡r +, +´oc +, +g +); + +121 + } +} + +125 +TžeM’uI‹m + + $TžeM’u_Aµ’d_Checkback +Ð +m’u +, +¡r +, +check´oc +, +´oc + ) + +126 +TžeM’u + +m’u +; + +127 * +¡r +; + +128 +BoÞFunc + +check´oc +; + +132 +VoidFunc + +´oc +; + +135 +g’”ic + +g +; + +137 + `S‘G’Poš‹r +( +g +, +NULL +); + +139  ( +TžeM’uI‹m +) + +140 + `RTLM’u_Aµ’d_Checkback +(( +RTLM’u +) +m’u +, +¡r +, +check´oc +, +´oc +, +g +); + +142 + } +} + +145 +TžeM’uI‹m + + $TžeM’u_Aµ’d_Subm’u +Ð +m’u +, +¡r +, +subm’u + ) + +146 +TžeM’u + +m’u +; + +147 * +¡r +; + +148 +TžeM’u + +subm’u +; + +150  ( +TžeM’uI‹m +) + +151 + `RTLM’u_Aµ’d_Subm’u +(( +RTLM’u +) +m’u +, +¡r +, (RTLM’u) +subm’u +); + +152 + } +} + +156  + $TžeM’u_R•Ïû_D©a_By_SŒšg +Ð +m’u +, +d©a +, +¡r + ) + +157 +TžeM’u + +m’u +; + +158 +poš‹r + +d©a +; + +159 * +¡r +; + +161 +g’”ic + +g +; + +163 + `S‘G’Poš‹r +( +g +, +d©a +); + +165 + `RTLM’u_R•Ïû_D©a_By_SŒšg +(( +RTLM’u +) +m’u +, +g +, +¡r +); + +166 + } +} + +170  + $TžeM’u_Aùiv©e_EÁry +Ð +m’u +, +™em + ) + +171 +TžeM’u + +m’u +; + +172 +TžeM’uI‹m + +™em +; + +174 + `RTLM’u_Aùiv©e_EÁry +(( +RTLM’u +) +m’u +, ( +RTLM’uI‹m +) +™em +); + +175 + } +} + +179  + $TžeM’u_IÇùiv©e_EÁry +Ð +m’u +, +™em + ) + +180 +TžeM’u + +m’u +; + +181 +TžeM’uI‹m + +™em +; + +183 + `RTLM’u_IÇùiv©e_EÁry +(( +RTLM’u +) +m’u +, ( +RTLM’uI‹m +) +™em +); + +184 + } +} + +188 +boÞ + + $TžeM’u_Has_D©a +Ð +m’u +, +v® + ) + +189 +TžeM’u + +m’u +; + +190 +poš‹r + +v® +; + +192 +g’”ic + +g +; + +194 + `S‘G’Poš‹r +( +g +, +v® +); + +196  + `RTLM’u_Has_D©a +(( +RTLM’u +) +m’u +, +g +); + +197 + } +} + +201  + $TžeM’u_D–‘e_EÁr›s +Ð +m’u + ) + +202 +TžeM’u + +m’u +; + +204 + `RTLM’u_D–‘e_EÁr›s +(( +RTLM’u +) +m’u +); + +205 + } +} + +209  + $TžeM’u_D–‘e_SŒšg +Ð +m’u +, +¡r + ) + +210 +TžeM’u + +m’u +; + +211 * +¡r +; + +213 + `RTLM’u_D–‘e_SŒšg +(( +RTLM’u +) +m’u +, +¡r +); + +214 + } +} + +218  + $TžeM’u_D–‘e_D©a +Ð +m’u +, +v® + ) + +219 +TžeM’u + +m’u +; + +220 +poš‹r + +v® +; + +222 +g’”ic + +g +; + +224 + `S‘G’Poš‹r +( +g +, +v® +); + +226 + `RTLM’u_D–‘e_D©a +(( +RTLM’u +) +m’u +, +g +); + +227 + } +} + +232  + $TžeM’u_Box +Ð +m’u + ) + +233 +TžeM’u + +m’u +; + +236 + } +} + +241  + $TžeM’u_EÁ” +Ð +m’u +, +buŠum +, +kšd +, +bu‰ime + ) + +242 +TžeM’u + +m’u +; + +243  +buŠum +; + +244 +ButKšd + +kšd +; + +245 +Time + +bu‰ime +; + +247 +RTLPošt + +pos +; + +249 +pos +. +x + = +cu¼’t_pos +.x; + +250 +pos +. +y + = +cu¼’t_pos +.y; + +251 + `RTLM’u_EÁ” +(( +RTLM’u +) +m’u +, () +buŠum +, +bu‰ime +, + +252 + `RoÙWšdow +( +dpy +, +sün +), +pos +); + +253 + `XSync +( +dpy +,0); + +254 + } +} + +257 +TWPošt + + $TžeM’u_EÁry_Pos +() + +259 +RTLPošt + +pos +; + +260 +TWPošt + +»tuº_pos +; + +262 +pos + = + `RTLM’u_EÁry_Pos +(); + +263 +»tuº_pos +. +x + = +pos +.x; + +264 +»tuº_pos +. +y + = +pos +.y; + +266  +»tuº_pos +; + +267 + } +} + + @tilemenu.h + +30 #iâdeà +TILEMENU + + +31  + ~"tžem’uP.h +" + +34 +TžeM’u + +TžeM’u_C»©e +(); + +36  +TžeM’u_De¡roy +(); + +41 +poš‹r + +TžeM’u_D©a +(); + +44 +TžeM’u + +TžeM’u_G‘_Subm’u +(); + +49 +TžeM’uI‹m + +TžeM’u_Aµ’d_SŒšg +(); + +52 +TžeM’uI‹m + +TžeM’u_Aµ’d_C®lback +(); + +55 +TžeM’uI‹m + +TžeM’u_Aµ’d_Checkback +(); + +58 +TžeM’uI‹m + +TžeM’u_Aµ’d_C®l +(); + +61 +TžeM’uI‹m + +TžeM’u_Aµ’d_Subm’u +(); + +66  +TžeM’u_R•Ïû_D©a_By_SŒšg +(); + +71  +TžeM’u_Aùiv©e_EÁry +(); + +74  +TžeM’u_IÇùiv©e_EÁry +(); + +79 +boÞ + +TžeM’u_Has_D©a +(); + +84  +TžeM’u_D–‘e_EÁr›s +(); + +87  +TžeM’u_D–‘e_SŒšg +(); + +90  +TžeM’u_D–‘e_D©a +(); + +95  +TžeM’u_Box +(); + +98  +TžeM’u_EÁ” +(); + +101 +TWPošt + +TžeM’u_EÁry_Pos +(); + + @tilemenuP.h + +30 #iâdeà +TILEMENU + + +31  + #TILEMENU + + + ) + +33  +poš‹r + + tTžeM’u +; + +34  +poš‹r + + tTžeM’uI‹m +; + + @tileopts.c + +23  + ~"cÝyright.h +" + +25  + ~<¡dio.h +> + +26  + ~"ba£ty³.h +" + +27  + ~"tžeÝtsP.h +" + +29 +boÞ + + gglob®s +[() +LENGTH_GLOBAL_OPTIONS +]; + +32 + $tžeÝts_nž +() + +34 + } +} + + @tileopts.h + +30 +boÞ + +ADJUST_PLACEMENT_FAIRLY +; + +31 +boÞ + +ALLOW_AUTOMATIC_CLOSE +; + +32 +boÞ + +ALLOW_AUTO_CLOSE_MORE_RECENT +; + +33 +boÞ + +ALLOW_AUTOMATIC_SHRINK +; + +34 +boÞ + +ALLOW_AUTO_SHRINK_MORE_RECENT +; + +35 +boÞ + +BEST_FIT_IS_TIGHT +; + +36 +boÞ + +BREAK_MINIMUMS_FAIRLY +; + +37 +boÞ + +ENABLE_GRAVITY +; + +38 +boÞ + +ENFORCE_MAXIMUMS +; + +39 +boÞ + +ENFORCE_MINIMUMS +; + +40 +boÞ + +FIRST_FIT +; + +41 +boÞ + +PREFER_CLOSE_TO_SEARCH +; + +42 +boÞ + +PREFER_CLOSE_TO_SHRINK +; + +43 +boÞ + +PREFER_SHRINK_TO_SEARCH +; + +44 +boÞ + +PRORATE_VERTICALLY_FIRST +; + +46  + #Tžwš_G‘_Glob®_O±iÚ +( +Ýt +) \ + +47 ( +Ýt +) + + ) + +49  + #Tžwš_S‘_Glob®_O±iÚ +( +Ýt +, +v® +) \ + +50 ( +Ýt +èð( +v® +) + + ) + + @tileoptsP.h + +32 + mADJUST_PLACEMENT_FAIRLY +, + +33 + mALLOW_AUTOMATIC_CLOSE +, + +34 + mALLOW_AUTO_CLOSE_MORE_RECENT +, + +35 + mALLOW_AUTOMATIC_SHRINK +, + +36 + mALLOW_AUTO_SHRINK_MORE_RECENT +, + +37 + mBEST_FIT_IS_TIGHT +, + +38 + mBREAK_MINIMUMS_FAIRLY +, + +39 + mENABLE_GRAVITY +, + +40 + mENFORCE_MAXIMUMS +, + +41 + mENFORCE_MINIMUMS +, + +42 + mFIRST_FIT +, + +43 + mPREFER_CLOSE_TO_SHRINK +, + +44 + mPREFER_AUTOMATIC_CLOSE_TO_SEARCH +, + +45 + mPREFER_AUTO_SHRINK_TO_SEARCH +, + +46 + mPREFER_SHRINK_TO_SEARCH +, + +47 + mPRORATE_VERTICALLY_FIRST +, + +49 + mLENGTH_GLOBAL_OPTIONS + + +50 } + tGlob®_O±iÚs +; + + @tileoptsS.h + +31 *( + gglob®_¡rs +[ +LENGTH_GLOBAL_OPTIONS +]) = { + + @tool.c + +23  + ~"cÝyright.h +" + +26  + ~<¡dio.h +> + +28  + ~"ba£ty³.h +" + +30  + ~"þ›Á.h +" + +31  + ~"tžem’u.h +" + +33 +FILE +* +O³n_R—d +(); + +39 * + mm’u_Çme +; + +40 * + mcmd_lše +; + +42 } + tToÞ +; + +44  + #ToÞMax + 60 + + ) + +46  + gnumtoÞs + = 0; + +48 +ToÞ + + gtoÞ +[ +ToÞMax +]; + +52 +boÞ + + $ToÞ_In™ +Ð +mªag”_toÞ_m’u +, +švok” + ) + +53 +TžeM’u + +mªag”_toÞ_m’u +; + +54 +VoidFunc + +švok” +; + +56 +FILE + * +¡»am +; + +57  +cmd¡r +[256], +m’u¡r +[128]; + +58 * +cmdlš +; + +60 +¡»am + = + `O³n_R—d +( ".rtl.tools" ); + +61 iàÐ +¡»am + !ð +NULL + ) + +63  + `fg‘s +Ð +m’u¡r +, 128, +¡»am + ) !ð +NULL + ) + +65 +cmdlš + = +cmd¡r +; + +66 iàÐ + `fg‘s +Ð +cmdlš +, 256, +¡»am + ) !ð +NULL + ) + +68 +m’u¡r +[ + `¡¾’ +(menustr) - 1 ] = '\0'; + +69 + `¡r_cÝy +Ð +toÞ +[ +numtoÞs +]. +m’u_Çme +, +m’u¡r + ); + +71 + `TžeM’u_Aµ’d_C®l +Ð +mªag”_toÞ_m’u +, + +72 +toÞ +[ +numtoÞs +]. +m’u_Çme +, +švok” +, + +73 ( +poš‹r +) +numtoÞs + ); + +75  (* +cmdlš + != '\0') && + +76 Ð(* +cmdlš + == ' ') || (*cmdlin == '\t') ) ) + +77 +cmdlš +++; + +78 +cmdlš +[ + `¡¾’ +(cmdlin) - 1 ] = '\0'; + +79 + `¡r_cÝy +Ð +toÞ +[ +numtoÞs +]. +cmd_lše +, +cmdlš + ); + +81 +numtoÞs +++; + +84 + `fþo£ + ( +¡»am + ); + +86  ( +numtoÞs + > 0); + +87 + } +} + +91  + $ToÞ_Invoke +Ð +num + ) + +92  +num +; + +94 iàÐ +num + < +numtoÞs + ) + +95 + `Cl›Á_Wšdow_C»©e +Ð +toÞ +[ +num +]. +cmd_lše + ); + +96 + } +} + +100  + $ToÞ_In™Ÿ‹ +() + +102 + `Cl›Á_S¹up +( ".rtl.startup" ); + +103 + } +} + + @tool.h + +30 +boÞ + +ToÞ_In™ +(); + +33  +ToÞ_Invoke +(); + +36  +ToÞ_In™Ÿ‹ +(); + + @track_menu.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "%W% %H%"; + +27  + ~"cÝyright.h +" + +36  + ~"¬row_icÚ.h +" + +37  + ~"nuÎ_icÚ.h +" + +38  + ~"¹lm’uP.h +" + +39  + ~"ev§veX.h +" + +41  + #CLICK_TIME + 290 + + ) + +42  + #CursÜLockMask + ( +Bu‰ÚR–—£Mask +) + + ) + +46  + #Ev’tG‘XCoÜd +( +»p +è(Ô•). +xmÙiÚ +. +x +) + + ) + +47  + #Ev’tG‘YCoÜd +( +»p +è(Ô•). +xmÙiÚ +. +y +) + + ) + +48  + #Ev’tTy³ +( +»p +è(Ô•). +ty³ +) + + ) + +49  + #Ev’tXWšdow +( +»p +è(Ô•). +xüossšg +. +wšdow +) + + ) + +50  + #Ev’tXTime +( +»p +è(Ô•). +xüossšg +. +time +) + + ) + +51  + #Ev’tXMode +( +»p +è(Ô•). +xüossšg +. +mode +) + + ) + +52  + #Ev’tXRoÙX +( +»p +è(Ô•). +xüossšg +. +x_roÙ +) + + ) + +53  + #Ev’tXRoÙY +( +»p +è(Ô•). +xüossšg +. +y_roÙ +) + + ) + +54  + #Ev’tXD‘až +( +»p +è(Ô•). +xüossšg +. +d‘až +) + + ) + +55  + #Ev’tMWšdow +( +»p +è(Ô•). +xmÙiÚ +. +wšdow +) + + ) + +56  + #Ev’tMTime +( +»p +è(Ô•). +xmÙiÚ +. +time +) + + ) + +57  + #Ev’tBu‰Ú +( +»p +è(Ô•). +xbu‰Ú +. +bu‰Ú +) + + ) + +58  + #Ev’tBWšdow +( +»p +è(Ô•). +xbu‰Ú +. +wšdow +) + + ) + +59  + #Ev’tBTime +( +»p +è(Ô•). +xbu‰Ú +. +time +) + + ) + +60  + #Ev’tEX +( +»p +è(Ô•). +xexpo£ +. +x +) + + ) + +61  + #Ev’tEY +( +»p +è(Ô•). +xexpo£ +. +y +) + + ) + +62  + #Ev’tEWidth +( +»p +è(Ô•). +xexpo£ +. +width +) + + ) + +63  + #Ev’tEHeight +( +»p +è(Ô•). +xexpo£ +. +height +) + + ) + +64  + #Poš‹rEv’t +( +»p +) \ + +65 (( + `Ev’tTy³ +( +»p +è=ð +Bu‰ÚP»ss +) || \ + +66 ( + `Ev’tTy³ +( +»p +è=ð +Bu‰ÚR–—£ +) || \ + +67 ( + `Ev’tTy³ +( +»p +è=ð +MÙiÚNÙify +) || \ + +68 ( + `Ev’tTy³ +( +»p +è=ð +EÁ”NÙify +) || \ + +69 ( + `Ev’tTy³ +( +»p +è=ð +L—veNÙify +) || \ + +70 ( + `Ev’tTy³ +( +»p +è=ð +FocusIn +) || \ + +71 ( + `Ev’tTy³ +( +»p +è=ð +FocusOut +)) + + ) + +72  + #KeyEv’t +( +»p +) \ + +73 (( + `Ev’tTy³ +( +»p +è=ð +KeyP»ss +è|| (Ev’tTy³Ô•è=ð +KeyR–—£ +)) + + ) + +78 + mIn™Ÿl +, + +79 + mCheckTrigg” +, + +80 + mL—f +, + +81 + mEx™ +, + +82 + mLev–CÚŒÞ + + +83 } + tS‹ +; + +87 +RTLM’u + +NewM’u +(); + +88  +Di¥o£M’u + (); + +89  +D¿w_M’u +(); + +90  +CˬIn™ŸlI‹m +(); + +91  +PÏûPoš‹r +(); + +92  +Adju¡Poš‹r +(); + +93  +S‘In™ŸlI‹m +(); + +94  +Undi¥Ïy_M’u +(); + +95  +M’uInv”t +(); + +96  +D¿w_I‹m +(); + +98 +RTLM’uI‹m + +M’uI‹mByName + (); + +99 +RTLM’uI‹m + +Di¥Ïy_M’u +(); + +100 +RTLM’uI‹m + +M’uG‘I‹m +(); + +101 +RTLM’uI‹m + +G‘In™ŸlI‹m +(); + +102 +RTLM’u + +M’uG‘M’u +(); + +104  +LockCursÜ +(); + +105  +UÆockCursÜ +(); + +106  +G‘NextSignifiÿÁEv’t +(); + +107  +PÝSubm’u +(); + +108  +Highlight +(); + +109  +Unhighlight +(); + +110  +TossExŒaMoves +(); + +111  +ProûssExpo£Ev’ts +(); + +113 +boÞ + +G¿bPoš‹r +(); + +115 +S‹ + +Lev–CÚŒÞS‹ +(); + +116 +S‹ + +G‘I‹mS‹ +(); + +117 +S‹ + +In™ŸlS‹ +(); + +118 +S‹ + +CheckTrigg”S‹ +(); + +119 +S‹ + +L—fS‹ +(); + +121  +RTLM’u + + gcu¼’t_™em +; + +122  +RTLM’u + + gcu¼’t_m’u +; + +123  +Wšdow + + groÙ_wšdow +; + +124  +Di¥Ïy + * + gdi¥Ïy +; + +125  + gËv– +; + +126  +Time + + gbu‰Ú_time +; + +127  +CursÜ + + gwa™_cursÜ + = +NÚe +; + +128  +boÞ + + gþick_®lowed +; + +129  +Ev’tStÜe + + gev_§ve +; + +130  +boÞ + + glocked + = +FALSE +; + +132 +RTLM’uI‹m + + $T¿ckM’u +( +roÙ_m’u +, +roÙ_x +, +roÙ_y +, +š™_bu‰Ú +, +roÙ +, +bu‰ime +) + +133 +RTLM’u + +roÙ_m’u +; + +134  +roÙ_x +, +roÙ_y +; + +135  +š™_bu‰Ú +; + +136 +Wšdow + +roÙ +; + +137 +Time + +bu‰ime +; + +139 +S‹ + +Cu¼’tS‹ + = +Lev–CÚŒÞ +; + +140 +XEv’t + +Ev’t_R•ly +; + +141  +Ý’_x +; + +142 +boÞ + +£Ëùed + = +FALSE +; + +143 +RTLM’uI‹m + +£Ëùed_™em +; + +147 +bu‰Ú_time + = +bu‰ime +; + +148 +roÙ_wšdow + = +roÙ +; + +149 +Ëv– + = 0; + +150 +cu¼’t_m’u + = +roÙ_m’u +; + +151 +di¥Ïy + = + `M’uDi¥Ïy +( +cu¼’t_m’u +); + +152 +þick_®lowed + = ( + `Te¡O±iÚFÏg +( +cu¼’t_m’u +, +þickokay +))? +TRUE + : +FALSE +; + +155 ià( +wa™_cursÜ + =ð +NÚe +) + +157 +Pixm­ + +wc_pixm­ +; + +158 +XCÞÜ + +fg +, +bg +; + +160 +wc_pixm­ + = + `XC»©eB™m­FromD©a + ( +di¥Ïy +, +roÙ_wšdow +, + +161 +nuÎ_icÚ_b™s +, + +162 +nuÎ_icÚ_width +, +nuÎ_icÚ_height +); + +163 +wa™_cursÜ + = + `XC»©ePixm­CursÜ + ( +di¥Ïy +, +wc_pixm­ +, wc_pixmap, + +164 & +fg +, & +bg +, 1, 1); + +170 + `Adju¡Poš‹r +( +cu¼’t_m’u +, +roÙ_x +, +roÙ_y +); + +174 + `SaveEv’ts + ( +di¥Ïy +, & +ev_§ve +, ~(è +Bu‰ÚR–—£Mask +); + +176 ià(! + `G¿bPoš‹r +() || + +177 !( +cu¼’t_™em + = + `Di¥Ïy_M’u +( +cu¼’t_m’u +, +NULLMENU +, +roÙ_x +, +roÙ_y +))) + +179 +Cu¼’tS‹ + = +Ex™ +; + +183 + `LockCursÜ +( + `I‹mWšdow +( +cu¼’t_™em +)); + +184 +Ý’_x + = +roÙ_x +; + +188  + `M’uHasIn™ŸlI‹m +( +cu¼’t_m’u +è&& ( +Cu¼’tS‹ + !ð +Ex™ +)) + +190 + `ProûssExpo£Ev’ts +(); + +191 +cu¼’t_™em + = + `G‘In™ŸlI‹m +( +cu¼’t_m’u +); + +192 + `CˬIn™ŸlI‹m +( +cu¼’t_m’u +); + +195 ià( + `I‹mIsNuÎ +( +cu¼’t_™em +è|| + `I‹mIsDi§bËd +(current_item)) + +197 +cu¼’t_™em + = + `M’uI‹ms +( +cu¼’t_m’u +); + +200 ià( + `I‹mIsL—f +( +cu¼’t_™em +)) + +204 +Ý’_x + +ð + `I‹mG‘A¼owPos™iÚ +( +cu¼’t_™em +); + +205 + `Highlight +( +cu¼’t_™em +); + +206 + `TossExŒaMoves +( + `I‹mWšdow +( +cu¼’t_™em +)); + +207 () + `PushSubm’u +( +Ý’_x +); + +210 + `ProûssExpo£Ev’ts +(); + +211 ià( +Cu¼’tS‹ + !ð +Ex™ +) + +213 +Cu¼’tS‹ + = ( + `I‹mIsL—f +( +cu¼’t_™em +))? +L—f +: +CheckTrigg” +; + +214 ià(! + `Te¡I‹mFÏg +( +cu¼’t_™em +, +™emDi§bËd +)) + +215 + `Highlight +( +cu¼’t_™em +); + +217 + `LockCursÜ +( + `I‹mWšdow +( +cu¼’t_™em +)); + +218 + `PÏûPoš‹r +( +cu¼’t_m’u +, +cu¼’t_™em +); + +219 + `Di¥o£Ev’ts +( +di¥Ïy +, ( +Mask +)( +Poš‹rMÙiÚMask + | +EÁ”WšdowMask + | + +220 +L—veWšdowMask + | +Exposu»Mask +)); + +221 + `UÆockCursÜ +(); + +225  +Cu¼’tS‹ + !ð +Ex™ +) + +227 + `G‘NextSignifiÿÁEv’t +( +di¥Ïy +, & +Ev’t_R•ly +, +š™_bu‰Ú +); + +229  +Cu¼’tS‹ +) + +231  +Lev–CÚŒÞ +: + +232 +Cu¼’tS‹ + = + `Lev–CÚŒÞS‹ +( +Ev’t_R•ly +); + +234  +In™Ÿl +: + +235 +Cu¼’tS‹ + = + `In™ŸlS‹ +( +Ev’t_R•ly +); + +237  +CheckTrigg” +: + +238 +Cu¼’tS‹ + = + `CheckTrigg”S‹ +( +Ev’t_R•ly +); + +240  +L—f +: + +241 +Cu¼’tS‹ + = + `L—fS‹ +( +Ev’t_R•ly +, & +£Ëùed +); + +244 +Cu¼’tS‹ + = +Ex™ +; + +250 +£Ëùed_™em + = ( +£Ëùed +)? +cu¼’t_™em + : +NULLITEM +; + +251  +Ëv– +) + +253 ià( +£Ëùed + && ! + `Te¡O±iÚFÏg +( +cu¼’t_m’u +, +fÜg‘Ï¡ +)) + +254 + `S‘In™ŸlI‹m +( +cu¼’t_m’u +, +cu¼’t_™em +); + +255 + `PÝSubm’u +(); + +257 ià( +£Ëùed + && ! + `Te¡O±iÚFÏg +( +cu¼’t_m’u +, +fÜg‘Ï¡ +)) + +259 + `S‘In™ŸlI‹m +( +cu¼’t_m’u +, +cu¼’t_™em +); + +261 + `Undi¥Ïy_M’u +( +cu¼’t_m’u +); + +262 + `UÆockCursÜ +(); + +263 + `XUng¿bPoš‹r +( +di¥Ïy +, +Cu¼’tTime +); + +266 + `XFlush +( +di¥Ïy +); + +267 + `Di¥o£Ev’ts +( +di¥Ïy +, + +268 ( +Mask +è( +Poš‹rMÙiÚMask + | +EÁ”WšdowMask + | + +269 +L—veWšdowMask +)); + +270 + `Re¡ÜeEv’ts +( +di¥Ïy +, & +ev_§ve +); + +271 ( +£Ëùed_™em +); + +272 + } +} + +274 +boÞ + + $G¿bPoš‹r +() + +276  +Œ›s + = 10; + +278 ( + `XG¿bPoš‹r +( +di¥Ïy +, + +279 + `RoÙWšdow +( +di¥Ïy +, + `M’uSü“n +( +cu¼’t_m’u +)), + +280 +True +, +CursÜLockMask +, +G¿bModeAsync +, + +281 +G¿bModeAsync +, +NÚe +, + +282 +wa™_cursÜ +, +Cu¼’tTime +è!ð +G¿bSucûss +) + +283 && +Œ›s +--) + +284 + `¦“p +(1); + +285 ià( +Œ›s +) + +286 ( +TRUE +); + +288 ( +FALSE +); + +289 + } +} + +294  + $LockCursÜ +( +cÚfše_wšdow +) + +295 +Wšdow + +cÚfše_wšdow +; + +297  +»suÉ +; + +299 +locked + = +TRUE +; + +300 +»suÉ + = + `XG¿bPoš‹r +( +di¥Ïy +, + +301 + `RoÙWšdow +( +di¥Ïy +, + `M’uSü“n +( +cu¼’t_m’u +)), + +302 +True +, +CursÜLockMask +, +G¿bModeAsync +, + +303 +G¿bModeAsync +, +cÚfše_wšdow +, + +304 +wa™_cursÜ +, +Cu¼’tTime +); + +306 + } +} + +309  + $UÆockCursÜ +() + +311  +»suÉ +; + +313 ià( +locked +) + +315 +locked + = +FALSE +; + +316 +»suÉ + = + `XG¿bPoš‹r +( +di¥Ïy +, + +317 + `RoÙWšdow +( +di¥Ïy +, + `M’uSü“n +( +cu¼’t_m’u +)), + +318 +True +, +M’uEv’tMask +, + +319 +G¿bModeAsync +, G¿bModeAsync, +NÚe +, + +320 + `M’uCursÜ +( +cu¼’t_m’u +), +Cu¼’tTime +); + +324 + } +} + +328  + $G‘NextSignifiÿÁEv’t +( +di¥l +, +Ev’t_R•ly +, +š™_bu‰Ú +) + +329 +Di¥Ïy + * +di¥l +; + +330 +XEv’t + * +Ev’t_R•ly +; + +331  +š™_bu‰Ú +; + +333 +XEv’t + +Next_Ev’t_R•ly +; + +334 +boÞ + +InsignifiÿÁEv’t + = +True +; + +341 + `XNextEv’t +( +di¥l +, +Ev’t_R•ly +); + +349 ià(( + `Ev’tTy³ +(* +Ev’t_R•ly +è=ð +EÁ”NÙify +) && + +350 ( + `Ev’tXMode +(* +Ev’t_R•ly +è=ð +NÙifyNÜm® +) && + +351 ( + `QL’gth +( +di¥l +) > 0) && + +352 ( + `M’uG‘M’u +( +cu¼’t_m’u +, + `Ev’tXWšdow +(* +Ev’t_R•ly +)) + +353 !ð +cu¼’t_m’u +)) + +355 + `XP“kEv’t +( +di¥l +,& +Next_Ev’t_R•ly +); + +356 ià(( + `Ev’tTy³ +( +Next_Ev’t_R•ly +è=ð +L—veNÙify +) && + +357 ( + `Ev’tXMode +( +Next_Ev’t_R•ly +è=ð +NÙifyNÜm® +) && + +358 ( + `Ev’tXWšdow +( +Next_Ev’t_R•ly +è=ðEv’tXWšdow(* +Ev’t_R•ly +))) + +360 + `XNextEv’t +( +di¥l +, +Ev’t_R•ly +); + +361 + `XNextEv’t +( +di¥l +, +Ev’t_R•ly +); + +364 ià( + `Ev’tNÙSignifiÿÁ +(* +Ev’t_R•ly +, +š™_bu‰Ú +)) + +366 ià(!( + `Poš‹rEv’t +(* +Ev’t_R•ly +è|| + `KeyEv’t +(*Event_Reply) + +367 || + `Ev’tTy³ +(* +Ev’t_R•ly +è=ð +Expo£ +)) + +370 + `AddEv’tToStÜe +(& +ev_§ve +, * +Ev’t_R•ly +); + +374 +InsignifiÿÁEv’t + = +FALSE +; + +376  +InsignifiÿÁEv’t +); + +379 + } +} + +383 +boÞ + + $Ev’tNÙSignifiÿÁ +( +Ev’t_R•ly +, +š™_bu‰Ú +) + +384 +XEv’t + +Ev’t_R•ly +; + +385  +š™_bu‰Ú +; + +388  (!(( + `Ev’tTy³ +( +Ev’t_R•ly +è=ð +Bu‰ÚR–—£ +) || + +389 ( + `Ev’tTy³ +( +Ev’t_R•ly +è=ð +MÙiÚNÙify +) || + +390 ( + `Ev’tTy³ +( +Ev’t_R•ly +è=ð +EÁ”NÙify +) || + +391 ( + `Ev’tTy³ +( +Ev’t_R•ly +è=ð +Expo£ +) || + +392 ( + `Ev’tTy³ +( +Ev’t_R•ly +è=ð +L—veNÙify +)) + +395 ((( + `Ev’tTy³ +( +Ev’t_R•ly +è=ð +L—veNÙify +) || + +396 ( + `Ev’tTy³ +( +Ev’t_R•ly +è=ð +EÁ”NÙify +)) && + +397 ( + `Ev’tXMode +( +Ev’t_R•ly +è!ð +NÙifyNÜm® +)) + +400 (( + `Ev’tTy³ +( +Ev’t_R•ly +è=ð +Bu‰ÚR–—£ +) && + +401 ( + `Ev’tBu‰Ú +( +Ev’t_R•ly +è!ð +š™_bu‰Ú +)) + +404 (( + `Ev’tTy³ +( +Ev’t_R•ly +è=ð +Expo£ +) && + +405 + `Te¡O±iÚFÏg +( +cu¼’t_m’u +, +§veb™s +)) + +408 ( +þick_®lowed + && + +409 ( + `Ev’tTy³ +( +Ev’t_R•ly +è=ð +Bu‰ÚR–—£ +) && + +410 ( + `Ev’tBTime +( +Ev’t_R•ly +è- +bu‰Ú_time + < +CLICK_TIME +)) + +412 + } +} + +414 +S‹ + + $Lev–CÚŒÞS‹ +( +»p +) + +415 +XEv’t + +»p +; + +417 +S‹ + +Ãxt_¡©e +; + +418 +RTLM’u + +’‹»d_m’u +; + +419 +RTLM’uI‹m + +’‹»d_™em +; + +421  + `Ev’tTy³ +( +»p +)) + +423  +MÙiÚNÙify +: + +424  +L—veNÙify +: + +425 +Ãxt_¡©e + = +Lev–CÚŒÞ +; + +427  +EÁ”NÙify +: + +429 +’‹»d_m’u + = + `M’uG‘M’u +( +cu¼’t_m’u +, + `Ev’tXWšdow +( +»p +)); + +430 +’‹»d_™em + = + `M’uG‘I‹m +( +cu¼’t_m’u +, + `Ev’tXWšdow +( +»p +)); + +432 ià(( + `M’uIsNuÎ +( +’‹»d_m’u +)è&& ( + `I‹mIsNuÎ +( +’‹»d_™em +))) + +434 +Ãxt_¡©e + = +Lev–CÚŒÞ +; + +435 ià(! + `I‹mIsNuÎ +( +’‹»d_™em +) && + +436 + `M’uIsDi¥Ïyed +( + `I‹mM’u +( +’‹»d_™em +))) + +441 ià( +Ëv– +) + +443 + `LockCursÜ +( + `I‹mWšdow +( +’‹»d_™em +)); + +444 + `PÝSubm’u +(); + +445 + `ProûssExpo£Ev’ts +(); + +446 + `UÆockCursÜ +(); + +447 +cu¼’t_™em + = +’‹»d_™em +; + +448 + `Highlight +( +cu¼’t_™em +); + +449 +Ãxt_¡©e + = + `G‘I‹mS‹ +( +»p +); + +453 +Ãxt_¡©e + = +Ex™ +; + +457 ià(! + `M’uIsNuÎ +( +’‹»d_m’u +)&& + +458 + `M’uIsDi¥Ïyed +( +’‹»d_m’u +)) + +461 ( +cu¼’t_m’u + !ð +’‹»d_m’u +è&& +Ëv– +) + +463 + `PÝSubm’u +(); + +464 + `ProûssExpo£Ev’ts +(); + +465 + `UÆockCursÜ +(); + +466 ià( +cu¼’t_m’u + =ð +’‹»d_m’u +) + +467 +Ãxt_¡©e + = +In™Ÿl +; + +470 +Ãxt_¡©e + = +Ex™ +; + +474 +Ãxt_¡©e + = +Lev–CÚŒÞ +; + +476  +Bu‰ÚR–—£ +: + +477 +Ãxt_¡©e + = +Ex™ +; + +480 +Ãxt_¡©e + = +Ex™ +; + +483  +Ãxt_¡©e +; + +484 + } +} + +487 +S‹ + + $G‘I‹mS‹ +( +»p +) + +488 +XEv’t + +»p +; + +490  +Ý’_x +; + +491 +S‹ + +Ãxt_¡©e +; + +493 ià( + `I‹mIsNuÎ +( +cu¼’t_™em +)) + +495 +Ãxt_¡©e + = +Ex™ +; + +497 ià( + `M’uIsNuÎ +( +cu¼’t_m’u +)) + +499 +Ãxt_¡©e + = +Ex™ +; + +501 ià( + `I‹mIsL—f +( +cu¼’t_™em +) || + +502 ( + `Te¡I‹mFÏg +( +cu¼’t_™em +, +™emDi§bËd +))) + +504 ià( + `M’uHasIn™ŸlI‹m +( +cu¼’t_m’u +)) + +505 + `CˬIn™ŸlI‹m +( +cu¼’t_m’u +); + +506 +Ãxt_¡©e + = +L—f +; + +508 ià( + `Ev’tG‘XCoÜd +( +»p +è>ð(è + `I‹mG‘A¼owPos™iÚ +( +cu¼’t_™em +)) + +511 + `LockCursÜ +( + `I‹mWšdow +( +cu¼’t_™em +)); + +512 + `TossExŒaMoves +( + `I‹mWšdow +( +cu¼’t_™em +)); + +513 ià( + `PushSubm’u +( + `Ev’tXRoÙX +( +»p +))) + +515 + `LockCursÜ +( + `I‹mWšdow +( +cu¼’t_™em +)); + +516 + `PÏûPoš‹r +( +cu¼’t_m’u +, +cu¼’t_™em +); + +517 +Ãxt_¡©e + = +Lev–CÚŒÞ +; + +518 + `ProûssExpo£Ev’ts +(); + +521 +Ãxt_¡©e + = +CheckTrigg” +; + +522 + `UÆockCursÜ +(); + +525 ià( + `M’uHasIn™ŸlI‹m +( +cu¼’t_m’u +)) + +528 +cu¼’t_™em + = + `G‘In™ŸlI‹m +( +cu¼’t_m’u +); + +529 +Ý’_x + = + `I‹mG‘A¼owPos™iÚ +( +cu¼’t_™em +) + + +530 + `Ev’tXRoÙX +( +»p +); + +531 + `CˬIn™ŸlI‹m +( +cu¼’t_m’u +); + +532 + `LockCursÜ +( + `I‹mWšdow +( +cu¼’t_™em +)); + +533 ià( + `PushSubm’u +( +Ý’_x +)) + +535 + `ProûssExpo£Ev’ts +(); + +536 + `LockCursÜ +( + `I‹mWšdow +( +cu¼’t_™em +)); + +537 + `PÏûPoš‹r +( +cu¼’t_m’u +, +cu¼’t_™em +); + +538 +Ãxt_¡©e + = +In™Ÿl +; + +540 + `UÆockCursÜ +(); + +543 +Ãxt_¡©e + = +CheckTrigg” +; + +544  +Ãxt_¡©e +; + +546 + } +} + +548 +S‹ + + $In™ŸlS‹ +Ð +»p +) + +549 +XEv’t + +»p +; + +551 +S‹ + +Ãxt_¡©e +; + +553  + `Ev’tTy³ +( +»p +)) + +555  +EÁ”NÙify +: + +556 ià( + `M’uIsNuÎ +( +cu¼’t_m’u +)) + +558 +Ãxt_¡©e + = +Ex™ +; + +560 ià( + `Ev’tXD‘až +( +»p +è=ð +NÙifyInãriÜ +) + +561 +Ãxt_¡©e + = +In™Ÿl +; + +564 +cu¼’t_™em + = + `M’uG‘I‹m +( +cu¼’t_m’u +, + `Ev’tXWšdow +( +»p +)); + +565 ià( + `I‹mIsNuÎ +( +cu¼’t_™em +)) + +567 +Ãxt_¡©e + = +Ex™ +; + +571 + `Highlight +( +cu¼’t_™em +); + +572 +Ãxt_¡©e + = + `G‘I‹mS‹ +( +»p +); + +576  +L—veNÙify +: + +580 +Ãxt_¡©e + = ( + `Ev’tXD‘až +( +»p +è=ð +NÙifyInãriÜ +)? + +581 +In™Ÿl + : +Lev–CÚŒÞ +; + +583  +Bu‰ÚR–—£ +: + +584 +Ãxt_¡©e + = +Ex™ +; + +586  +MÙiÚNÙify +: + +587 +Ãxt_¡©e + = +In™Ÿl +; + +590 +Ãxt_¡©e + = +Ex™ +; + +593  +Ãxt_¡©e +; + +595 + } +} + +597  + #NÙS‘ + -1 + + ) + +599 +S‹ + + $CheckTrigg”S‹ +( +»p +) + +600 +XEv’t + +»p +; + +602 +S‹ + +Ãxt_¡©e + = +CheckTrigg” +; + +603  +Trigg” + = +NÙS‘ +; + +604  +OldX +, +NewX +, +chždX +; + +606 ià( + `M’uIsNuÎ +( +cu¼’t_m’u +è|| + `I‹mIsNuÎ +( +cu¼’t_™em +)) + +608 +Ãxt_¡©e + = +Ex™ +; + +609  +ex™ +; + +611 ià( +Trigg” + =ð +NÙS‘ +) + +613 +Trigg” + = + `MIN +( + `Ev’tG‘XCoÜd +( +»p +è+ + `M’uD– +( +cu¼’t_m’u +), + +614 + `I‹mG‘A¼owPos™iÚ +( +cu¼’t_™em +)); + +615 +NewX + = +NÙS‘ +; + +617  + `Ev’tTy³ +( +»p +)) + +619  +L—veNÙify +: + +620 +Ãxt_¡©e + = +In™Ÿl +; + +621 + `Unhighlight +( + `M’uG‘I‹m +( +cu¼’t_m’u +, + `Ev’tXWšdow +( +»p +))); + +622 +Trigg” + = +NÙS‘ +; + +624  +EÁ”NÙify +: + +625 +Ãxt_¡©e + = +CheckTrigg” +; + +627  +Bu‰ÚR–—£ +: + +628 +Ãxt_¡©e + = +Ex™ +; + +629 +Trigg” + = +NÙS‘ +; + +632  +MÙiÚNÙify +: + +633 +Ãxt_¡©e + = +CheckTrigg” +; + +634 +OldX + = +NewX +; + +635 +NewX + = + `Ev’tG‘XCoÜd +( +»p +); + +636 ià( +NewX + >ð +Trigg” +) + +638 + `LockCursÜ +( + `I‹mWšdow +( +cu¼’t_™em +)); + +639 +chždX + = + `Te¡O±iÚFÏg +( +cu¼’t_m’u +, +fixedchžd +)? + +640 ( + `M’uX +( +cu¼’t_m’u +è+ + `I‹mG‘A¼owPos™iÚ +( +cu¼’t_™em +)): + +641 + `Ev’tXRoÙX +( +»p +); + +642 +Trigg” + = +NÙS‘ +; + +643 ià( + `PushSubm’u +( +chždX +)) + +645 +Ãxt_¡©e + = +Lev–CÚŒÞ +; + +646 + `ProûssExpo£Ev’ts +(); + +647 + `LockCursÜ +( + `I‹mWšdow +( +cu¼’t_™em +)); + +648 + `PÏûPoš‹r +( +cu¼’t_m’u +, +cu¼’t_™em +); + +650 + `UÆockCursÜ +(); + +652 ià( +NewX + < +OldX +) + +653 +Trigg” + = + `MIN +(Trigg”, +NewX + + + `M’uD– +( +cu¼’t_m’u +)); + +656 +Ãxt_¡©e + = +Ex™ +; + +659 +ex™ +: + +660  +Ãxt_¡©e +; + +661 + } +} + +663 +S‹ + + $L—fS‹ +( +»p +, +£Ëùed +) + +664 +XEv’t + +»p +; + +665 +boÞ + * +£Ëùed +; + +667 +S‹ + +Ãxt_¡©e +; + +669  + `Ev’tTy³ +( +»p +)) + +671  +L—veNÙify +: + +672 + `Unhighlight +( + `M’uG‘I‹m +( +cu¼’t_m’u +, + `Ev’tXWšdow +( +»p +))); + +673 +Ãxt_¡©e + = +In™Ÿl +; + +675  +Bu‰ÚR–—£ +: + +676 ià(! + `Te¡I‹mFÏg +( +cu¼’t_™em +, +™emDi§bËd +)) + +677 * +£Ëùed + = +TRUE +; + +678 +Ãxt_¡©e + = +Ex™ +; + +680  +EÁ”NÙify +: + +681  +MÙiÚNÙify +: + +682 +Ãxt_¡©e + = +L—f +; + +685 +Ãxt_¡©e + = +Ex™ +; + +688  +Ãxt_¡©e +; + +689 + } +} + +691 +boÞ + + $PushSubm’u +( +x +) + +692  +x +; + +694  +y +; + +695 +boÞ + +pushed +; + +696 +RTLM’uI‹m + +Ãw_cu¼’t_™em +; + +698 ià( + `I‹mIsNuÎ +( +cu¼’t_™em +)) + +700 +pushed + = +FALSE +; + +702 ià( + `M’uIsNuÎ +( + `I‹mSubm’u +( +cu¼’t_™em +))) + +704 +pushed + = +FALSE +; + +706 ià( + `I‹mIsNuÎ +( + `M’uI‹ms +( + `I‹mSubm’u +( +cu¼’t_™em +)))) + +708 +pushed + = +FALSE +; + +711 +y + = + `I‹mG‘MiddËY +( +cu¼’t_™em +); + +712 ++ +Ëv– +; + +714 ià( +Ãw_cu¼’t_™em + = + +715 + `Di¥Ïy_M’u +( + `I‹mSubm’u +( +cu¼’t_™em +), +cu¼’t_m’u +, +x +, +y +)) + +717 + `XFlush +( +di¥Ïy +); + +718 +cu¼’t_m’u + = + `I‹mSubm’u +( +cu¼’t_™em +); + +719 +cu¼’t_™em + = +Ãw_cu¼’t_™em +; + +720 +pushed + = +TRUE +; + +724 +pushed + = +FALSE +; + +727  +pushed +; + +728 + } +} + +730  + $PÝSubm’u +() + +732 +RTLM’u + +·»Á +; + +733 +RTLM’uI‹m + +™em +; + +735 -- +Ëv– +; + +736 +·»Á + = + `M’uP¬’t +( +cu¼’t_m’u +); + +737 + `Undi¥Ïy_M’u +( +cu¼’t_m’u +); + +738 +cu¼’t_m’u + = +·»Á +; + +739 ià(! + `M’uIsNuÎ +( +cu¼’t_m’u +)) + +741 +™em + = + `M’uI‹mHighligh‹d +( +cu¼’t_m’u +); + +742 ià(! + `I‹mIsNuÎ +( +™em +)) + +744 +cu¼’t_™em + = +™em +; + +750 + } +} + +752  + $Highlight +( +™em +) + +753 +RTLM’uI‹m + +™em +; + +755 +RTLM’uI‹m + +Þd_highlight +; + +758 +Þd_highlight + = + `M’uI‹mHighligh‹d +( +cu¼’t_m’u +); + +759 ià(( +™em + !ð +Þd_highlight +) && + +760 (! + `I‹mIsNuÎ +( +™em +))) + +762 ià(! + `I‹mIsNuÎ +( +Þd_highlight +)) + +763 + `Unhighlight +( +Þd_highlight +); + +764 ià(! + `Te¡I‹mFÏg +( +cu¼’t_™em +, +™emDi§bËd +)) + +766 + `M’uInv”t +( + `I‹mM’u +( +™em +), + `I‹mWšdow +(item)); + +767 + `S‘HighlightI‹m +( + `I‹mM’u +( +™em +), item); + +772 + } +} + +774  + $Unhighlight +( +™em +) + +775 +RTLM’uI‹m + +™em +; + +777 ià(! + `I‹mIsNuÎ +( +™em +)) + +779 ià( + `M’uI‹mHighligh‹d +( +cu¼’t_m’u +è=ð +™em +) + +781 + `M’uInv”t +( + `I‹mM’u +( +™em +), + `I‹mWšdow +(item)); + +782 + `Re£tHighlightI‹m +( + `I‹mM’u +( +™em +)); + +787 + } +} + +789  + $TossExŒaMoves +( +wšdow +) + +790 +Wšdow + +wšdow +; + +792 +XEv’t + +ev +; + +795  + `XCheckTy³dWšdowEv’t +( +di¥Ïy +, +wšdow +, +MÙiÚNÙify +, & +ev +)); + +799 + } +} + +801  + $ProûssExpo£Ev’ts +() + +803 +RTLM’uI‹m + +™em +; + +804 +XEv’t + +ev +; + +806 ià(! + `Te¡O±iÚFÏg +( +cu¼’t_m’u +, +§veb™s +)) + +808 + `XSync +( +di¥Ïy +,0); + +810  + `XCheckTy³dEv’t +( +di¥Ïy +, +Expo£ +, & +ev +)) + +812 +™em + = + `M’uG‘I‹m +( +cu¼’t_m’u +, + `Ev’tXWšdow +( +ev +)); + +813 ià(! + `I‹mIsNuÎ +( +™em +)) + +814 + `D¿w_I‹m +( + `I‹mM’u +( +™em +), i‹m, + `Ev’tEX +( +ev +), + `Ev’tEY +(ev), + +815 + `Ev’tEWidth +( +ev +), + `Ev’tEHeight +(ev)); + +819 + } +} + + @trial.h + +29  + ~"ŒŸlP.h +" + +31 +boÞ + +TrŸl_S©isf›d +(); + +32 +boÞ + +TrŸl_PÏû +(); + +33 +boÞ + +TrŸl_Im´ove_Grow +(); + +34 +boÞ + +TrŸl_Edge_Sw“p +(); + +35 +TWPošt + +TrŸl_Slide_N—»¡_In_A»a +(); + +36 +TWPošt + +TrŸl_Slide_N—»¡_HÜizÚl +(); + +37 +TWPošt + +TrŸl_Slide_N—»¡_V”tiÿl +(); + + @trialP.h + +28  + #MUCHO_WINDOWS + 1000 + + ) + +30  + #TrŸl_Im´ove_O³n +( +wšp +, +»ù +, +¡amp +, +b‘‹r +, +nþo£d +, +Ãx³nsive +, +Çfãùed +) \ + +31 + `TrŸl_Im´ove_Grow +( +wšp +, +»ù +, +NoSide +, ( +TWPošt + *è +NULL +, +¡amp +, \ + +32 +b‘‹r +, +nþo£d +, +Ãx³nsive +, +Çfãùed +) + + ) + + @try_grow.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)try_grow.c 5.4 9/1/88"; + +27  + ~"cÝyright.h +" + +29  + ~"ba£ty³.h +" + +30  + ~"twšD.h +" + +31  + ~"twš.h +" + +32  + ~"g¿v™y.h +" + +33  + ~"check.h +" + +34  + ~"ŒŸlP.h +" + +36 +boÞ + +Check_Grow +(); + +37 +boÞ + +TrŸl_PÏû +(); + +44 +boÞ + + +45 + $TrŸl_Im´ove_Grow +( +wšp +, +»ù +, +side +, +±p +, +¡amp +, + +46 +b‘‹r +, +nþo£d +, +Ãx³nsive +, +Çfãùed +) + +47 +Tžwš + * +wšp +; + +48 +TWReùªgË + +»ù +; + +49 +Side + +side +; + +50 +TWPošt + * +±p +; + +51 +TimeSmp + +¡amp +; + +52 +boÞ + +b‘‹r +; + +53 * +nþo£d +; + +54 * +Ãx³nsive +; + +55 * +Çfãùed +; + +57 +TWReùªgË + +ex‹nsiÚ_»ù +, + +58 +üeù +, + +59 +desk_»ù +; + +61  +side +) { + +62  +Leá +: + +63 ià( + `Is_Odd_Numb” +( + `G‘_PtX +(* +±p +)è=ð +TRUE +) + +64 + `G‘_PtX +(* +±p +)++; + +65 + `G‘_LeáX +( +ex‹nsiÚ_»ù +èð + `G‘_PtX +(* +±p +); + +66 + `G‘_RightX +( +ex‹nsiÚ_»ù +èð + `G‘_LeáX +( +»ù +) - 1; + +67 + `G‘_TÝY +( +ex‹nsiÚ_»ù +èðG‘_TÝY( +»ù +); + +68 + `G‘_BÙtomY +( +ex‹nsiÚ_»ù +èðG‘_BÙtomY( +»ù +); + +70  +Right +: + +71 ià( + `Is_Ev’_Numb” +( + `G‘_PtX +(* +±p +)è=ð +TRUE +) + +72 + `G‘_PtX +(* +±p +)--; + +73 + `G‘_LeáX +( +ex‹nsiÚ_»ù +èð + `G‘_RightX +( +»ù +) + 1; + +74 + `G‘_RightX +( +ex‹nsiÚ_»ù +èð + `G‘_PtX +(* +±p +); + +75 + `G‘_TÝY +( +ex‹nsiÚ_»ù +èðG‘_TÝY( +»ù +); + +76 + `G‘_BÙtomY +( +ex‹nsiÚ_»ù +èðG‘_BÙtomY( +»ù +); + +78  +TÝ +: + +79 ià( + `Is_Odd_Numb” +( + `G‘_PtY +(* +±p +)è=ð +TRUE +) + +80 + `G‘_PtY +(* +±p +)++; + +81 + `G‘_LeáX +( +ex‹nsiÚ_»ù +èðG‘_LeáX( +»ù +); + +82 + `G‘_RightX +( +ex‹nsiÚ_»ù +èðG‘_RightX( +»ù +); + +83 + `G‘_TÝY +( +ex‹nsiÚ_»ù +èð + `G‘_PtY +(* +±p +); + +84 + `G‘_BÙtomY +( +ex‹nsiÚ_»ù +èð + `G‘_TÝY +( +»ù +) - 1; + +86  +BÙtom +: + +87 ià( + `Is_Ev’_Numb” +( + `G‘_PtY +(* +±p +)è=ð +TRUE +) + +88 + `G‘_PtY +(* +±p +)--; + +89 + `G‘_LeáX +( +ex‹nsiÚ_»ù +èðG‘_LeáX( +»ù +); + +90 + `G‘_RightX +( +ex‹nsiÚ_»ù +èðG‘_RightX( +»ù +); + +91 + `G‘_TÝY +( +ex‹nsiÚ_»ù +èð + `G‘_BÙtomY +( +»ù +) + 1; + +92 + `G‘_BÙtomY +( +ex‹nsiÚ_»ù +èð + `G‘_PtY +(* +±p +); + +94  +NoSide +: + +95 +ex‹nsiÚ_»ù + = +»ù +; + +99 ( +FALSE +); + +104 +desk_»ù + = + `Tžwš_G‘_DesktÝ_ReùªgË +(); + +105 ià( + `G‘_LeáX +( +ex‹nsiÚ_»ù +è< G‘_LeáX( +desk_»ù +)) + +106 + `G‘_LeáX +( +ex‹nsiÚ_»ù +èðG‘_LeáX( +desk_»ù +); + +107 ià( + `G‘_RightX +( +ex‹nsiÚ_»ù +è> G‘_RightX( +desk_»ù +)) + +108 + `G‘_RightX +( +ex‹nsiÚ_»ù +èðG‘_RightX( +desk_»ù +); + +109 ià( + `G‘_TÝY +( +ex‹nsiÚ_»ù +è< G‘_TÝY( +desk_»ù +)) + +110 + `G‘_TÝY +( +ex‹nsiÚ_»ù +èðG‘_TÝY( +desk_»ù +); + +111 ià( + `G‘_BÙtomY +( +ex‹nsiÚ_»ù +è> G‘_BÙtomY( +desk_»ù +)) + +112 + `G‘_BÙtomY +( +ex‹nsiÚ_»ù +èðG‘_BÙtomY( +desk_»ù +); + +114 ià( + `Check_Grow +( +wšp +, +ex‹nsiÚ_»ù +, +side +, +±p +, +¡amp +, + +115 +b‘‹r +, +nþo£d +, +Ãx³nsive +, +Çfãùed +è=ð +FALSE +) + +116 ( +FALSE +); + +118  +side +) { + +119  +Leá +: + +120 + `G‘_LeáX +( +»ù +èð + `G‘_PtX +(* +±p +); + +122  +Right +: + +123 + `G‘_RightX +( +»ù +èð + `G‘_PtX +(* +±p +); + +125  +TÝ +: + +126 + `G‘_TÝY +( +»ù +èð + `G‘_PtY +(* +±p +); + +128  +BÙtom +: + +129 + `G‘_BÙtomY +( +»ù +èð + `G‘_PtY +(* +±p +); + +131  +NoSide +: + +138 + `Tžwš_S‘_Modify_Side +( +wšp +, +NoSide +); + +139 + `Tžwš_S‘_Modify_ReùªgË +( +wšp +, +»ù +); + +140 +üeù + = + `Tžwš_G‘_ReùªgË +( +wšp +); + +141  +side +) { + +142  +Leá +: + +143 ià( + `G‘_LeáX +( +»ù +è=ðG‘_LeáX( +üeù +)) + +144 ( +TRUE +); + +146  +Right +: + +147 ià( + `G‘_RightX +( +»ù +è=ðG‘_RightX( +üeù +)) + +148 ( +TRUE +); + +150  +TÝ +: + +151 ià( + `G‘_TÝY +( +»ù +è=ðG‘_TÝY( +üeù +)) + +152 ( +TRUE +); + +154  +BÙtom +: + +155 ià( + `G‘_BÙtomY +( +»ù +è=ðG‘_BÙtomY( +üeù +)) + +156 ( +TRUE +); + +158  +NoSide +: + +159 ià( + `G‘_LeáX +( +»ù +è=ðG‘_LeáX( +üeù +) && + +160 + `G‘_RightX +( +»ù +è=ðG‘_RightX( +üeù +) && + +161 + `G‘_TÝY +( +»ù +è=ðG‘_TÝY( +üeù +) && + +162 + `G‘_BÙtomY +( +»ù +è=ðG‘_BÙtomY( +üeù +) && + +163 + `Tžwš_Is_O³n +( +wšp +è=ð +TRUE +) + +164 ( +TRUE +); + +168 + `Tžwš_S‘_Modify_Side +( +wšp +, +side +); + +169 + `Tžwš_S‘_Modify_ReùªgË +( +wšp +, +»ù +); + +170 ( +TRUE +); + +171 + } +} + +173 +boÞ + + +174 + $TrŸl_Grow +( +wšp +, +»ù +, +side +, +±p +, +¡amp +) + +175 +Tžwš + * +wšp +; + +176 +TWReùªgË + +»ù +; + +177 +Side + +side +; + +178 +TWPošt + * +±p +; + +179 +TimeSmp + +¡amp +; + +181  +big + = +MUCHO_WINDOWS +; + +183 ( + `TrŸl_Im´ove_Grow +( +wšp +, +»ù +, +side +, +±p +, +¡amp +, +FALSE +, + +184 & +big +, &big, &big)); + +185 + } +} + +187 +boÞ + + +188 + $TrŸl_O³n +( +wšp +, +»ù +, +¡amp +) + +189 +Tžwš + * +wšp +; + +190 +TWReùªgË + +»ù +; + +191 +TimeSmp + +¡amp +; + +193  +big + = +MUCHO_WINDOWS +; + +195 ( + `TrŸl_Im´ove_Grow +( +wšp +, +»ù +, +NoSide +, ( +TWPošt + *è +NULL +, + +196 +¡amp +, +FALSE +, & +big +, &big, &big)); + +197 + } +} + + @try_place.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)try_place.c 5.3 9/1/88"; + +27  + ~"cÝyright.h +" + +29  + ~"ba£ty³.h +" + +30  + ~"twšD.h +" + +31  + ~"twš.h +" + +32  + ~"g¿v™y.h +" + +33  + ~"check.h +" + +50 +boÞ + + +51 + $TrŸl_PÏû +( +»ùp +, +side +, +wš_mš +, +wš_max +) + +52 +TWReùªgË + * +»ùp +; + +53 +Side + +side +; + +54 +Size + +wš_mš +, + +55 +wš_max +; + +57 +Size + +size +, + +58 +Üigš®_size +, + +59 +abs_mš +, +abs_max +; + +60 +TWPošt + +loÿtiÚ +; + +61 +TWReùªgË + +»ù +, + +62 +Üigš®_»ù +; + +63 +Ba£ty³ + +Ëá_diff +, +right_diff +, + +64 +tÝ_diff +, +bÙtom_diff +; + +65 +boÞ + +chªged + = +FALSE +; + +67 +»ù + = * +»ùp +; + +68 +Üigš®_»ù + = * +»ùp +; + +70 + `COMPUTE_SIZE +( +»ù +, +size +); + +71 + `COMPUTE_CENTER +( +»ù +, +loÿtiÚ +); + +74 +abs_mš + = + `Tžwš_G‘_AbsÞu‹_Mšimums +(); + +75 ià( + `G‘_Width +( +size +è< G‘_Width( +abs_mš +)){ + +76  +side +) { + +77  +Leá +: + +78  +TÝ_Leá +: + +79  +BÙtom_Leá +: + +80 + `G‘_LeáX +( +»ù +èð + `G‘_RightX +Ôeùè- ( + `G‘_Width +( +abs_mš +) - 1); + +81 + `COMPUTE_SIZE +( +»ù +, +size +); + +83  +Right +: + +84  +TÝ_Right +: + +85  +BÙtom_Right +: + +86 + `G‘_RightX +( +»ù +èð + `G‘_LeáX +Ôeùè+ ( + `G‘_Width +( +abs_mš +) - 1); + +87 + `COMPUTE_SIZE +( +»ù +, +size +); + +89  +NoSide +: + +90 + `G‘_Width +( +size +èðG‘_Width( +abs_mš +); + +91 + `MAKE_RECTANGLE +( +loÿtiÚ +, +size +, +»ù +); + +94 +chªged + = +TRUE +; + +96 ià( + `G‘_Height +( +size +è< G‘_Height( +abs_mš +)){ + +97  +side +){ + +98  +TÝ +: + +99  +TÝ_Leá +: + +100  +TÝ_Right +: + +101 + `G‘_TÝY +( +»ù +èð + `G‘_BÙtomY +Ôeùè- ( + `G‘_Height +( +abs_mš +) - 1); + +102 + `COMPUTE_SIZE +( +»ù +, +size +); + +104  +BÙtom +: + +105  +BÙtom_Leá +: + +106  +BÙtom_Right +: + +107 + `G‘_BÙtomY +( +»ù +èð + `G‘_TÝY +Ôeùè+ ( + `G‘_Height +( +abs_mš +) - 1); + +108 + `COMPUTE_SIZE +( +»ù +, +size +); + +110  +NoSide +: + +111 + `G‘_Height +( +size +èðG‘_Height( +abs_mš +); + +112 + `MAKE_RECTANGLE +( +loÿtiÚ +, +size +, +»ù +); + +115 +chªged + = +TRUE +; + +119 ià( + `Tžwš_G‘_Glob®_O±iÚ +( +ENFORCE_MINIMUMS +è=ð +TRUE +){ + +120 ià( + `G‘_Width +( +size +è< G‘_Width( +wš_mš +)){ + +121  +side +) { + +122  +Leá +: + +123  +TÝ_Leá +: + +124  +BÙtom_Leá +: + +125 + `G‘_LeáX +( +»ù +èð + `G‘_RightX +Ôeùè- ( + `G‘_Width +( +wš_mš +) - 1); + +126 + `COMPUTE_SIZE +( +»ù +, +size +); + +128  +Right +: + +129  +TÝ_Right +: + +130  +BÙtom_Right +: + +131 + `G‘_RightX +( +»ù +èð + `G‘_LeáX +Ôeùè+ ( + `G‘_Width +( +wš_mš +) - 1); + +132 + `COMPUTE_SIZE +( +»ù +, +size +); + +134  +NoSide +: + +135 + `G‘_Width +( +size +èðG‘_Width( +wš_mš +); + +136 + `MAKE_RECTANGLE +( +loÿtiÚ +, +size +, +»ù +); + +139 +chªged + = +TRUE +; + +141 ià( + `G‘_Height +( +size +è< G‘_Height( +wš_mš +)){ + +142  +side +){ + +143  +TÝ +: + +144  +TÝ_Leá +: + +145  +TÝ_Right +: + +146 + `G‘_TÝY +( +»ù +èð + `G‘_BÙtomY +Ôeùè- ( + `G‘_Height +( +wš_mš +) - 1); + +147 + `COMPUTE_SIZE +( +»ù +, +size +); + +149  +BÙtom +: + +150  +BÙtom_Leá +: + +151  +BÙtom_Right +: + +152 + `G‘_BÙtomY +( +»ù +èð + `G‘_TÝY +Ôeùè+ ( + `G‘_Height +( +wš_mš +) - 1); + +153 + `COMPUTE_SIZE +( +»ù +, +size +); + +155  +NoSide +: + +156 + `G‘_Height +( +size +èðG‘_Height( +wš_mš +); + +157 + `MAKE_RECTANGLE +( +loÿtiÚ +, +size +, +»ù +); + +160 +chªged + = +TRUE +; + +165 +abs_max + = + `Tžwš_G‘_DesktÝ_Size +(); + +166 ià( + `G‘_Width +( +size +è> G‘_Width( +abs_max +)){ + +167  +side +) { + +168  +Leá +: + +169  +TÝ_Leá +: + +170  +BÙtom_Leá +: + +171 + `G‘_LeáX +( +»ù +èð + `G‘_RightX +Ôeùè- ( + `G‘_Width +( +abs_max +) - 1); + +172 + `COMPUTE_SIZE +( +»ù +, +size +); + +174  +Right +: + +175  +TÝ_Right +: + +176  +BÙtom_Right +: + +177 + `G‘_RightX +( +»ù +èð + `G‘_LeáX +Ôeùè+ ( + `G‘_Width +( +abs_max +) - 1); + +178 + `COMPUTE_SIZE +( +»ù +, +size +); + +180  +NoSide +: + +181 + `G‘_Width +( +size +èðG‘_Width( +abs_max +); + +182 + `MAKE_RECTANGLE +( +loÿtiÚ +, +size +, +»ù +); + +185 +chªged + = +TRUE +; + +187 ià( + `G‘_Height +( +size +è> G‘_Height( +abs_max +)){ + +188  +side +){ + +189  +TÝ +: + +190  +TÝ_Leá +: + +191  +TÝ_Right +: + +192 + `G‘_TÝY +( +»ù +èð + `G‘_BÙtomY +Ôeùè- ( + `G‘_Height +( +abs_max +) - 1); + +193 + `COMPUTE_SIZE +( +»ù +, +size +); + +195  +BÙtom +: + +196  +BÙtom_Leá +: + +197  +BÙtom_Right +: + +198 + `G‘_BÙtomY +( +»ù +èð + `G‘_TÝY +Ôeùè+ ( + `G‘_Height +( +abs_max +) - 1); + +199 + `COMPUTE_SIZE +( +»ù +, +size +); + +201  +NoSide +: + +202 + `G‘_Height +( +size +èðG‘_Height( +abs_max +); + +203 + `MAKE_RECTANGLE +( +loÿtiÚ +, +size +, +»ù +); + +206 +chªged + = +TRUE +; + +210 ià( + `Tžwš_G‘_Glob®_O±iÚ +( +ENFORCE_MAXIMUMS +è=ð +TRUE +){ + +211 ià( + `G‘_Width +( +size +è> G‘_Width( +wš_max +)){ + +212  +side +) { + +213  +Leá +: + +214  +TÝ_Leá +: + +215  +BÙtom_Leá +: + +216 + `G‘_LeáX +( +»ù +èð + `G‘_RightX +Ôeùè- ( + `G‘_Width +( +wš_max +) - 1); + +217 + `COMPUTE_SIZE +( +»ù +, +size +); + +219  +Right +: + +220  +TÝ_Right +: + +221  +BÙtom_Right +: + +222 + `G‘_RightX +( +»ù +èð + `G‘_LeáX +Ôeùè+ ( + `G‘_Width +( +wš_max +) - 1); + +223 + `COMPUTE_SIZE +( +»ù +, +size +); + +225  +NoSide +: + +226 + `G‘_Width +( +size +èðG‘_Width( +wš_max +); + +227 + `MAKE_RECTANGLE +( +loÿtiÚ +, +size +, +»ù +); + +230 +chªged + = +TRUE +; + +232 ià( + `G‘_Height +( +size +è> G‘_Height( +wš_max +)){ + +233  +side +){ + +234  +TÝ +: + +235  +TÝ_Leá +: + +236  +TÝ_Right +: + +237 + `G‘_TÝY +( +»ù +èð + `G‘_BÙtomY +Ôeùè- ( + `G‘_Height +( +wš_max +) - 1); + +238 + `COMPUTE_SIZE +( +»ù +, +size +); + +240  +BÙtom +: + +241  +BÙtom_Leá +: + +242  +BÙtom_Right +: + +243 + `G‘_BÙtomY +( +»ù +èð + `G‘_TÝY +Ôeùè+ ( + `G‘_Height +( +wš_max +) - 1); + +244 + `COMPUTE_SIZE +( +»ù +, +size +); + +246  +NoSide +: + +247 + `G‘_Height +( +size +èðG‘_Height( +wš_max +); + +248 + `MAKE_RECTANGLE +( +loÿtiÚ +, +size +, +»ù +); + +251 +chªged + = +TRUE +; + +256 ià( +side + =ð +Leá + || sid=ð +TÝ_Leá + || sid=ð +BÙtom_Leá +) + +257 + `G‘_LeáX +( +»ù +èð + `G¿v™y_Adju¡_Edge +(G‘_LeáXÔeù), +Leá +); + +258 ià( +side + =ð +Right + || sid=ð +TÝ_Right + || sid=ð +BÙtom_Right +) + +259 + `G‘_RightX +( +»ù +èð + `G¿v™y_Adju¡_Edge +(G‘_RightXÔeù), +Right +); + +261 ià( +side + =ð +TÝ + || sid=ð +TÝ_Leá + || sid=ð +TÝ_Right +) + +262 + `G‘_TÝY +( +»ù +èð + `G¿v™y_Adju¡_Edge +(G‘_TÝYÔeù), +TÝ +); + +263 ià( +side + =ð +BÙtom + || sid=ð +BÙtom_Leá + || sid=ð +BÙtom_Right +) + +264 + `G‘_BÙtomY +( +»ù +èð + `G¿v™y_Adju¡_Edge +(G‘_BÙtomYÔeù), +BÙtom +); + +266 ià( +side + =ð +NoSide +) { + +268 + `COMPUTE_SIZE +( +»ù +, +Üigš®_size +); + +269 + `G¿v™y_Adju¡ +(& +»ù +); + +275 + `COMPUTE_SIZE +( +»ù +, +size +); + +276 ià( + `G‘_Width +( +size +è!ðG‘_Width( +Üigš®_size +)) { + +277 +Ëá_diff + = + `G¿v™y_Difã»nû +( + `G‘_LeáX +( +Üigš®_»ù +), +Leá +); + +278 +right_diff + = + `G¿v™y_Difã»nû +( + `G‘_RightX +( +Üigš®_»ù +), +Right +); + +279 ià( +Ëá_diff + <ð +right_diff +) + +280 + `G‘_RightX +( +»ù +èð + `G‘_LeáX +Ôeùè+ ( + `G‘_Width +( +Üigš®_size +) - 1); + +282 + `G‘_LeáX +( +»ù +èð + `G‘_RightX +Ôeùè- ( + `G‘_Width +( +Üigš®_size +) - 1); + +284 ià( + `G‘_Height +( +size +è!ðG‘_Height( +Üigš®_size +)) { + +285 +tÝ_diff + = + `G¿v™y_Difã»nû +( + `G‘_TÝY +( +Üigš®_»ù +), +TÝ +); + +286 +bÙtom_diff + = + `G¿v™y_Difã»nû +( + `G‘_BÙtomY +( +Üigš®_»ù +), +BÙtom +); + +287 ià( +tÝ_diff + <ð +bÙtom_diff +) + +288 + `G‘_BÙtomY +( +»ù +èð + `G‘_TÝY +Ôeùè+ ( + `G‘_Height +( +Üigš®_size +) - 1); + +290 + `G‘_TÝY +( +»ù +èð + `G‘_BÙtomY +Ôeùè- ( + `G‘_Height +( +Üigš®_size +) - 1); + +299 + `COMPUTE_SIZE +( +»ù +, +size +); + +301 +abs_mš + = + `Tžwš_G‘_AbsÞu‹_Mšimums +(); + +302 ià( + `G‘_Width +( +size +è< G‘_Width( +abs_mš +)){ + +303  +side +) { + +304  +Leá +: + +305  +TÝ_Leá +: + +306  +BÙtom_Leá +: + +307 + `G‘_LeáX +( +»ù +èð + `G‘_RightX +Ôeùè- ( + `G‘_Width +( +abs_mš +) - 1); + +309  +Right +: + +310  +TÝ_Right +: + +311  +BÙtom_Right +: + +312 + `G‘_RightX +( +»ù +èð + `G‘_LeáX +Ôeùè+ ( + `G‘_Width +( +abs_mš +) - 1); + +314  +NoSide +: + +317 + `COMPUTE_SIZE +( +»ù +, +size +); + +318 +chªged + = +TRUE +; + +320 ià( + `G‘_Height +( +size +è< G‘_Height( +abs_mš +)){ + +321  +side +){ + +322  +TÝ +: + +323  +TÝ_Leá +: + +324  +TÝ_Right +: + +325 + `G‘_TÝY +( +»ù +èð + `G‘_BÙtomY +Ôeùè- ( + `G‘_Height +( +abs_mš +) - 1); + +327  +BÙtom +: + +328  +BÙtom_Leá +: + +329  +BÙtom_Right +: + +330 + `G‘_BÙtomY +( +»ù +èð + `G‘_TÝY +Ôeùè+ ( + `G‘_Height +( +abs_mš +) - 1); + +332  +NoSide +: + +335 + `COMPUTE_SIZE +( +»ù +, +size +); + +336 +chªged + = +TRUE +; + +340 ià( + `Tžwš_G‘_Glob®_O±iÚ +( +ENFORCE_MINIMUMS +è=ð +TRUE +){ + +341 ià( + `G‘_Width +( +size +è< G‘_Width( +wš_mš +)){ + +342  +side +) { + +343  +Leá +: + +344  +TÝ_Leá +: + +345  +BÙtom_Leá +: + +346 + `G‘_LeáX +( +»ù +èð + `G‘_RightX +Ôeùè- ( + `G‘_Width +( +wš_mš +) - 1); + +348  +Right +: + +349  +TÝ_Right +: + +350  +BÙtom_Right +: + +351 + `G‘_RightX +( +»ù +èð + `G‘_LeáX +Ôeùè+ ( + `G‘_Width +( +wš_mš +) - 1); + +353  +NoSide +: + +356 + `COMPUTE_SIZE +( +»ù +, +size +); + +357 +chªged + = +TRUE +; + +359 ià( + `G‘_Height +( +size +è< G‘_Height( +wš_mš +)){ + +360  +side +){ + +361  +TÝ +: + +362  +TÝ_Leá +: + +363  +TÝ_Right +: + +364 + `G‘_TÝY +( +»ù +èð + `G‘_BÙtomY +Ôeùè- ( + `G‘_Height +( +wš_mš +) - 1); + +366  +BÙtom +: + +367  +BÙtom_Leá +: + +368  +BÙtom_Right +: + +369 + `G‘_BÙtomY +( +»ù +èð + `G‘_TÝY +Ôeùè+ ( + `G‘_Height +( +wš_mš +) - 1); + +371  +NoSide +: + +374 + `COMPUTE_SIZE +( +»ù +, +size +); + +375 +chªged + = +TRUE +; + +379 +abs_max + = + `Tžwš_G‘_DesktÝ_Size +(); + +380 ià( + `G‘_Width +( +size +è> G‘_Width( +abs_max +)){ + +381  +side +) { + +382  +Leá +: + +383  +TÝ_Leá +: + +384  +BÙtom_Leá +: + +385 + `G‘_LeáX +( +»ù +èð + `G‘_RightX +Ôeùè- ( + `G‘_Width +( +abs_max +) - 1); + +387  +Right +: + +388  +TÝ_Right +: + +389  +BÙtom_Right +: + +390 + `G‘_RightX +( +»ù +èð + `G‘_LeáX +Ôeùè+ ( + `G‘_Width +( +abs_max +) - 1); + +392  +NoSide +: + +395 + `COMPUTE_SIZE +( +»ù +, +size +); + +396 +chªged + = +TRUE +; + +398 ià( + `G‘_Height +( +size +è> G‘_Height( +abs_max +)){ + +399  +side +){ + +400  +TÝ +: + +401  +TÝ_Leá +: + +402  +TÝ_Right +: + +403 + `G‘_TÝY +( +»ù +èð + `G‘_BÙtomY +Ôeùè- ( + `G‘_Height +( +abs_max +) - 1); + +405  +BÙtom +: + +406  +BÙtom_Leá +: + +407  +BÙtom_Right +: + +408 + `G‘_BÙtomY +( +»ù +èð + `G‘_TÝY +Ôeùè+ ( + `G‘_Height +( +abs_max +) - 1); + +410  +NoSide +: + +413 + `COMPUTE_SIZE +( +»ù +, +size +); + +414 +chªged + = +TRUE +; + +417 ià( + `Tžwš_G‘_Glob®_O±iÚ +( +ENFORCE_MAXIMUMS +è=ð +TRUE +){ + +418 ià( + `G‘_Width +( +size +è> G‘_Width( +wš_max +)){ + +419  +side +) { + +420  +Leá +: + +421  +TÝ_Leá +: + +422  +BÙtom_Leá +: + +423 + `G‘_LeáX +( +»ù +èð + `G‘_RightX +Ôeùè- ( + `G‘_Width +( +wš_max +) - 1); + +425  +Right +: + +426  +TÝ_Right +: + +427  +BÙtom_Right +: + +428 + `G‘_RightX +( +»ù +èð + `G‘_LeáX +Ôeùè+ ( + `G‘_Width +( +wš_max +) - 1); + +430  +NoSide +: + +433 +chªged + = +TRUE +; + +435 ià( + `G‘_Height +( +size +è> G‘_Height( +wš_max +)){ + +436  +side +){ + +437  +TÝ +: + +438  +TÝ_Leá +: + +439  +TÝ_Right +: + +440 + `G‘_TÝY +( +»ù +èð + `G‘_BÙtomY +Ôeùè- ( + `G‘_Height +( +wš_max +) - 1); + +442  +BÙtom +: + +443  +BÙtom_Leá +: + +444  +BÙtom_Right +: + +445 + `G‘_BÙtomY +( +»ù +èð + `G‘_TÝY +Ôeùè+ ( + `G‘_Height +( +wš_max +) - 1); + +447  +NoSide +: + +450 +chªged + = +TRUE +; + +454 #ifdeà +WM_DEBUG + + +455 + `COMPUTE_SIZE +( +»ù +, +size +); + +459 * +»ùp + = +»ù +; + +460 ( +chªged +); + +461 + } +} + + @try_sat.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)try_sat.c 5.3 9/1/88"; + +27  + ~"cÝyright.h +" + +29  + ~"ba£ty³.h +" + +30  + ~"twšD.h +" + +31  + ~"twš.h +" + +32  + ~"g¿v™y.h +" + +33  + ~"check.h +" + +35 +boÞ + + +36 + $TrŸl_S©isf›d +( +wšp +, +siz• +) + +37 +Tžwš + * +wšp +; + +38 +Size + * +siz• +; + +40 +Size + +mš_size +, + +41 +max_size +, + +42 +Üigš®_size +; + +43 +boÞ + +nÙ_chªged + = +TRUE +; + +45 +Üigš®_size + = * +siz• +; + +48 +mš_size + = + `Tžwš_G‘_AbsÞu‹_Mšimums +(); + +49 ià( + `G‘_Width +(* +siz• +è< G‘_Width( +mš_size +)) + +50 + `G‘_Width +(* +siz• +èðG‘_Width( +mš_size +); + +51 ià( + `G‘_Height +(* +siz• +è< G‘_Height( +mš_size +)) + +52 + `G‘_Height +(* +siz• +èðG‘_Height( +mš_size +); + +55 ià( + `Tžwš_G‘_Glob®_O±iÚ +( +ENFORCE_MINIMUMS +è=ð +TRUE +) { + +56 +mš_size + = + `Tžwš_G‘_Mš +( +wšp +); + +57 ià( + `G‘_Width +(* +siz• +è< G‘_Width( +mš_size +)) + +58 + `G‘_Width +(* +siz• +èðG‘_Width( +mš_size +); + +59 ià( + `G‘_Height +(* +siz• +è< G‘_Height( +mš_size +)) + +60 + `G‘_Height +(* +siz• +èðG‘_Height( +mš_size +); + +63 +max_size + = + `Tžwš_G‘_DesktÝ_Size +(); + +64 ià( + `G‘_Width +(* +siz• +è> G‘_Width( +max_size +)) + +65 + `G‘_Width +(* +siz• +èðG‘_Width( +max_size +); + +66 ià( + `G‘_Height +(* +siz• +è> G‘_Height( +max_size +)) + +67 + `G‘_Height +(* +siz• +èðG‘_Height( +max_size +); + +69 ià( + `Tžwš_G‘_Glob®_O±iÚ +( +ENFORCE_MAXIMUMS +è=ð +TRUE +) { + +70 +mš_size + = + `Tžwš_G‘_Max +( +wšp +); + +71 ià( + `G‘_Width +(* +siz• +è> G‘_Width( +mš_size +)) + +72 + `G‘_Width +(* +siz• +èðG‘_Width( +mš_size +); + +73 ià( + `G‘_Height +(* +siz• +è> G‘_Height( +mš_size +)) + +74 + `G‘_Height +(* +siz• +èðG‘_Height( +mš_size +); + +77 ià( + `G‘_Width +( +Üigš®_size +è!ðG‘_Width(* +siz• +) || + +78 + `G‘_Height +( +Üigš®_size +è!ðG‘_Height(* +siz• +)) + +79 +nÙ_chªged + = +FALSE +; + +81 ( +nÙ_chªged +); + +82 + } +} + + @try_slide.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)try_slide.c 5.3 9/1/88"; + +27  + ~"cÝyright.h +" + +37  + ~"ba£ty³.h +" + +38  + ~"twšD.h +" + +39  + ~"twš.h +" + +40  + ~"ŒŸl.h +" + +42  + #MAX_TRIES + 5 + + ) + +43  + #MAX_EQ +( +x +, +y +è(((xè>ð(y))? x:y) + + ) + +44  + #MIN_EQ +( +x +, +y +è(((xè<ð(y))? x:y) + + ) + +45  + #Equ®Pošts +( +a +, +b +) \ + +46 (( + `G‘_PtX +( +a +è=ðG‘_PtX( +b +)è&& ( + `G‘_PtY +×è=ðG‘_PtY(b))) + + ) + +48 +TWPošt + +TrŸl_Slide_N—»¡_HÜizÚl +(), +TrŸl_Slide_N—»¡_V”tiÿl +(); + +77 +TWPošt + + $TrŸl_Slide_N—»¡_In_A»a +( +Œy +, +¬— +, +úŒ +, +± +, +sz +) + +78 +TWReùªgË + +Œy +, +¬— +; + +79 +TWPošt + +úŒ +, +± +; + +80 +Size + +sz +; + +82 +boÞ + +¡uck + = +FALSE +, +found + = FALSE; + +83 +TWPošt + +Ãw_úŒ +; + +84 +TWReùªgË + +Ãw_Œy +; + +86 ! +found + && ! +¡uck +) + +88 +Ãw_úŒ + = + `TrŸl_Slide_N—»¡_HÜizÚl +( +Œy +, +¬— +, +úŒ +, +± +, +sz +); + +89 + `MAKE_RECTANGLE +( +Ãw_úŒ +, +sz +, +Ãw_Œy +); + +90 +Ãw_úŒ + = + `TrŸl_Slide_N—»¡_V”tiÿl +( +Ãw_Œy +, +¬— +,‚ew_úŒ, +± +, +sz +); + +91 +¡uck + = + `Equ®Pošts +( +úŒ +, +Ãw_úŒ +); + +92 +found + = + `Equ®Pošts +( +Ãw_úŒ +, +± +); + +93 +úŒ + = +Ãw_úŒ +; + +94 + `MAKE_RECTANGLE +( +úŒ +, +sz +, +Œy +); + +96  +úŒ +; + +97 + } +} + +99 +TWPošt + + $TrŸl_Slide_N—»¡_HÜizÚl +( +Œy +, +¬— +, +úŒ +, +± +, +sz +) + +100 +TWReùªgË + +Œy +, +¬— +; + +101 +TWPošt + +úŒ +, +± +; + +102 +Size + +sz +; + +104 +Ba£ty³ + +ex‹Á +; + +105 +TWPošt + +p1 +, +p2 +; + +107 ià( + `G‘_PtX +( +± +è< G‘_PtX( +úŒ +)) + +109 + `G‘_PtX +( +p1 +èðG‘_PtX( +p2 +èð + `G‘_LeáX +( +Œy +); + +110 + `G‘_PtY +( +p1 +èð + `G‘_TÝY +( +Œy +); + +111 + `G‘_PtY +( +p2 +èð + `G‘_BÙtomY +( +Œy +); + +112 + `TrŸl_Edge_Sw“p +( +p1 +, +p2 +, +Leá +,& +ex‹Á +); + +113 ià( +ex‹Á + !ð + `G‘_PtX +( +p1 +)) + +116 + `G‘_LeáX +( +Œy +èð + `MAX_EQ +( +ex‹Á +, G‘_LeáX( +¬— +)); + +117 + `G‘_RightX +( +Œy +èð + `G‘_LeáX +Ñryè+ ( + `G‘_Width +( +sz +) - 1); + +119 + `COMPUTE_CENTER +( +Œy +, +úŒ +); + +120 + `G‘_PtX +( +úŒ +èð + `MAX_EQ +(G‘_PtX(úŒ), G‘_PtX( +± +)); + +121 + `MAKE_RECTANGLE +( +úŒ +, +sz +, +Œy +); + +124 ià( + `G‘_PtX +( +± +è> G‘_PtX( +úŒ +)) + +126 + `G‘_PtX +( +p1 +èðG‘_PtX( +p2 +èð + `G‘_RightX +( +Œy +); + +127 + `G‘_PtY +( +p1 +èð + `G‘_TÝY +( +Œy +); + +128 + `G‘_PtY +( +p2 +èð + `G‘_BÙtomY +( +Œy +); + +129 + `TrŸl_Edge_Sw“p +( +p1 +, +p2 +, +Right +,& +ex‹Á +); + +130 ià( +ex‹Á + !ð + `G‘_PtX +( +p1 +)) + +133 + `G‘_RightX +( +Œy +èð + `MIN_EQ +( +ex‹Á +, G‘_RightX( +¬— +)); + +134 + `G‘_LeáX +( +Œy +èð + `G‘_RightX +Ñryè- ( + `G‘_Width +( +sz +) - 1); + +136 + `COMPUTE_CENTER +( +Œy +, +úŒ +); + +137 + `G‘_PtX +( +úŒ +èð + `MIN_EQ +(G‘_PtX(úŒ), G‘_PtX( +± +)); + +138 + `MAKE_RECTANGLE +( +úŒ +, +sz +, +Œy +); + +141  +úŒ +; + +142 + } +} + +144 +TWPošt + + $TrŸl_Slide_N—»¡_V”tiÿl +( +Œy +, +¬— +, +úŒ +, +± +, +sz +) + +145 +TWReùªgË + +Œy +, +¬— +; + +146 +TWPošt + +úŒ +, +± +; + +147 +Size + +sz +; + +149 +Ba£ty³ + +ex‹Á +; + +150 +TWPošt + +p1 +, +p2 +; + +152 ià( + `G‘_PtY +( +± +è< G‘_PtY( +úŒ +)) + +154 + `G‘_PtY +( +p1 +èðG‘_PtY( +p2 +èð + `G‘_TÝY +( +Œy +); + +155 + `G‘_PtX +( +p1 +èð + `G‘_LeáX +( +Œy +); + +156 + `G‘_PtX +( +p2 +èð + `G‘_RightX +( +Œy +); + +157 + `TrŸl_Edge_Sw“p +( +p1 +, +p2 +, +TÝ +,& +ex‹Á +); + +158 ià( +ex‹Á + !ð + `G‘_PtY +( +p1 +)) + +161 + `G‘_TÝY +( +Œy +èð + `MAX_EQ +( +ex‹Á +, G‘_TÝY( +¬— +)); + +162 + `G‘_BÙtomY +( +Œy +èð + `G‘_TÝY +Ñryè+ ( + `G‘_Height +( +sz +) - 1); + +164 + `COMPUTE_CENTER +( +Œy +, +úŒ +); + +165 + `G‘_PtY +( +úŒ +èð + `MAX_EQ +(G‘_PtY(úŒ), G‘_PtY( +± +)); + +166 + `MAKE_RECTANGLE +( +úŒ +, +sz +, +Œy +); + +169 ià( + `G‘_PtY +( +± +è> G‘_PtY( +úŒ +)) + +171 + `G‘_PtY +( +p1 +èðG‘_PtY( +p2 +èð + `G‘_BÙtomY +( +Œy +); + +172 + `G‘_PtX +( +p1 +èð + `G‘_LeáX +( +Œy +); + +173 + `G‘_PtX +( +p2 +èð + `G‘_RightX +( +Œy +); + +174 + `TrŸl_Edge_Sw“p +( +p1 +, +p2 +, +BÙtom +,& +ex‹Á +); + +175 ià( +ex‹Á + !ð + `G‘_PtY +( +p1 +)) + +178 + `G‘_BÙtomY +( +Œy +èð + `MIN_EQ +( +ex‹Á +, G‘_BÙtomY( +¬— +)); + +179 + `G‘_TÝY +( +Œy +èð + `G‘_BÙtomY +Ñryè- ( + `G‘_Height +( +sz +) - 1); + +181 + `COMPUTE_CENTER +( +Œy +, +úŒ +); + +182 + `G‘_PtY +( +úŒ +èð + `MIN_EQ +(G‘_PtY(úŒ), G‘_PtY( +± +)); + +183 + `MAKE_RECTANGLE +( +úŒ +, +sz +, +Œy +); + +186  +úŒ +; + +187 + } +} + + @try_sweep.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)try_sweep.c 5.3 9/1/88"; + +27  + ~"cÝyright.h +" + +36  + ~"tžeD.h +" + +37  + ~"tže.h +" + +38  + ~"twš.h +" + +40  + #SPLIT_RECT +( +r +èr. +Ëá_x +,r. +tÝ_y +,r. +right_x +,r. +bÙtom_y + + + ) + +72 +Ba£ty³ + + gcu¼’t_ex‹Á +; + +73 +Side + + gglob®_dœ +; + +74 +boÞ + + gtouched_sÞid_tže +; + +76  + #ASSERT +( +a +, +m +) \ + +78 ià(!( +a +)) \ + +79 + `´štf +("YOW! % \n", +m +);\ + +80 } + + ) + +82  +Enum_HÜiz_Ex‹Á +(); + +83 +boÞ + +V”t_Sw“p +(), +HÜiz_Sw“p +(); + +85 +boÞ + + +86 + $TrŸl_Edge_Sw“p +( +p1 +, +p2 +, +dœ +, +ex‹Á +) + +87 +TWPošt + +p1 +, +p2 +; + +88 +Side + +dœ +; + +89 +Ba£ty³ + * +ex‹Á +; + +91 ià(( +dœ + =ð +TÝ +è|| (dœ =ð +BÙtom +)) + +92 ( + `V”t_Sw“p +( +p1 +, +p2 +, +dœ +, +ex‹Á +)); + +93 ià(( +dœ + =ð +Leá +è|| (dœ =ð +Right +)) + +94 ( + `HÜiz_Sw“p +( +p1 +, +p2 +, +dœ +, +ex‹Á +)); + +96 ( +FALSE +); + +97 + } +} + +98 +boÞ + + +99 + $HÜiz_Sw“p +( +p1 +, +p2 +, +dœ +, +ex‹Á +) + +100 +TWPošt + +p1 +, +p2 +; + +101 +Side + +dœ +; + +102 +Ba£ty³ + * +ex‹Á +; + +151 +TWReùªgË + +DesktÝ_V›w +, +r +; + +153 ià( +p1 +. +x + !ð +p2 +.x) + +154 ( +FALSE +); + +155 +r +. +tÝ_y + = +p1 +. +y +; + +156 +r +. +bÙtom_y + = +p2 +. +y +; + +157 ià( +r +. +tÝ_y + >„. +bÙtom_y +) + +158 ( +FALSE +); + +159 +DesktÝ_V›w + = + `Tžwš_G‘_DesktÝ_ReùªgË +(); + +160  +dœ +) + +162  +Leá +: + +163 ià(! + `Is_Ev’_Numb” +( +p1 +. +x +)) + +164 ( +FALSE +); + +167 +cu¼’t_ex‹Á + = +DesktÝ_V›w +. +Ëá_x +; + +168 +r +. +Ëá_x + = +p1 +. +x + - 2; + +169 +r +. +right_x + =„. +Ëá_x + + 1; + +172  +Right +: + +173 ià( + `Is_Ev’_Numb” +( +p1 +. +x +)) + +174 ( +FALSE +); + +177 +cu¼’t_ex‹Á + = +DesktÝ_V›w +. +right_x +; + +178 +r +. +right_x + = +p1 +. +x + + 2; + +179 +r +. +Ëá_x + =„. +right_x + - 1; + +183 ( +FALSE +); + +185 +glob®_dœ + = +dœ +; + +186 +touched_sÞid_tže + = +FALSE +; + +187 + `Tžes_In_A»a +( + `SPLIT_RECT +( +r +), +Enum_HÜiz_Ex‹Á +); + +188 * +ex‹Á + = ( +touched_sÞid_tže +)? +p1 +. +x + : +cu¼’t_ex‹Á +; + +189 + `ASSERT +(( + `Is_Ev’_Numb” +( +cu¼’t_ex‹Á +è&& +dœ + =ð +Leá +) || + +190 (!( + `Is_Ev’_Numb” +( +cu¼’t_ex‹Á +)è&& +dœ + =ð +Right +), + +192 ( +TRUE +); + +193 + } +} + +195 +boÞ + + +196 + $V”t_Sw“p +( +p1 +, +p2 +, +dœ +, +ex‹Á +) + +197 +TWPošt + +p1 +, +p2 +; + +198 +Side + +dœ +; + +199 +Ba£ty³ + * +ex‹Á +; + +246 +Tže + * +l +, * +r +; + +247 +TWReùªgË + +r +; + +248 +Ba£ty³ + +y_ex‹Á +; + +250 ià( +p1 +. +y + !ð +p2 +.y) + +251 ( +FALSE +); + +252 +r +. +Ëá_x + = +p1 +. +x +; + +253 +r +. +right_x + = +p2 +. +x +; + +254 ià( +r +. +Ëá_x + >„. +right_x +) + +255 ( +FALSE +); + +256 ià( +dœ + =ð +TÝ +) + +258 ià(! + `Is_Ev’_Numb” +( +p1 +. +y +)) + +259 ( +FALSE +); + +261 ià( +dœ + =ð +BÙtom +) + +263 ià( + `Is_Ev’_Numb” +( +p1 +. +y +)) + +264 ( +FALSE +); + +267 ( +FALSE +); + +268 +y_ex‹Á + = ( +dœ + =ð +TÝ +)? +p1 +. +y + - 1:…1.y + 1; + +269 +l + = ( +Tže + *) + `Tže_©_Pošt +( +p1 +. +x +, +y_ex‹Á +); + +270 +r + = ( +Tže + *) + `Tže_©_Pošt +( +p2 +. +x +, +y_ex‹Á +); + +272 ( +l + =ð +r +) && + +273 ( +l + !ð +NULL_TILE +) && + +274 ( + `Tže_G‘_Ty³ +( +l +è=ð +S·û +)) + +276 +y_ex‹Á + = ( +dœ + =ð +TÝ +)? + `Tže_G‘_CÜÃrs +( +l +). +tÝ_y + - 1: + +277 + `Tže_G‘_CÜÃrs +( +l +). +bÙtom_y + + 1; + +278 +l + = ( +Tže + *) + `Tže_©_Pošt +( +p1 +. +x +, +y_ex‹Á +); + +279 +r + = ( +Tže + *) + `Tže_©_Pošt +( +p2 +. +x +, +y_ex‹Á +); + +281 +y_ex‹Á + = ( +dœ + =ð +TÝ +)? y_extent + 1 : y_extent - 1; + +282 + `ASSERT +(( + `Is_Ev’_Numb” +( +y_ex‹Á +è&& +dœ + =ð +TÝ +) || + +283 (!( + `Is_Ev’_Numb” +( +y_ex‹Á +)è&& +dœ + =ð +BÙtom +), + +285 * +ex‹Á + = +y_ex‹Á +; + +286 ( +TRUE +); + +287 + } +} + +290 + $Enum_HÜiz_Ex‹Á +( + +) + +291 +Tže + * + +; + +321 ià(! +touched_sÞid_tže +) + +322 ià( + `Tže_G‘_Ty³ +( + +è=ð +S·û +) + +324 ià( +glob®_dœ + =ð +Leá +) + +326 ià( + `Leá_X +( + +è> +cu¼’t_ex‹Á +) + +328 +cu¼’t_ex‹Á + = + `Leá_X +( + +); + +333 ià( + `Right_X +( + +è< +cu¼’t_ex‹Á +) + +335 +cu¼’t_ex‹Á + = + `Right_X +( + +); + +340 +touched_sÞid_tže + = +TRUE +; + +341 + } +} + + @twin.h + +29 #iâdeà +TILWIN + + +30  + ~"twšP.h +" + +33  + ~"¡©e.h +" + +37 +Size + +desktÝ_size +; + +38 +TWReùªgË + +desktÝ_»ù +; + +39 +TWPošt + +desktÝ_ûÁ” +; + +41 +Size + +absÞu‹_mšs +; + +42  +g¿v™y +; + +46  + #Tžwš_G‘_DesktÝ_Size +() \ + +47 Ð +desktÝ_size + ) + + ) + +48  + #Tžwš_G‘_DesktÝ_ReùªgË +() \ + +49 Ð +desktÝ_»ù + ) + + ) + +50  + #Tžwš_G‘_DesktÝ_C’‹r +() \ + +51 Ð +desktÝ_ûÁ” + ) + + ) + +53  +Tžwš_S‘_DesktÝ_Size +(); + +59 +Tžwšp + +Tžwš_C»©e_Wšdow +(); + +61  +Tžwš_De¡roy_Wšdow +(); + +64 +Tžwšp + +Tžwš_Loÿ‹ +(); + +69 +boÞ + +Tžwš_Check_C’‹r_O³n +(); + +74 +boÞ + +Tžwš_Check_CÜÃr_O³n +(); + +82 +boÞ + +Tžwš_Check_Resize +(); + +91 +boÞ + +Tžwš_O³n +(); + +96  +Tžwš_Clo£ +(); + +99  +Tžwš_Auto_Clo£ +(); + +104 +boÞ + +Tžwš_S‘ +(); + +109 +boÞ + +Tžwš_S‘_Size +(); + +115 +boÞ + +Tžwš_Is_S©isf›d +(); + +120 +boÞ + +Tžwš_Resize +(); + +125 +boÞ + +Tžwš_EƬge_N—»¡ +(); + +130 +boÞ + +Tžwš_EƬge_F¬the¡ +(); + +137  +Tžwš_EƬge_N—»¡_In_A»a +(); + +143  +Tžwš_EƬge_F¬the¡_In_A»a +(); + +151 +boÞ + +Tžwš_O³n_N—»¡_In_A»a +(); + +157 +boÞ + +Tžwš_O³n_F¬the¡_In_A»a +(); + +163 +boÞ + +Tžwš_O³n_Be¡_In_A»a +(); + +170  +Tžwš_PrÜ©e +(); + +174  +Tžwš_G’_O³n_Wšdows +(); + +176  +Tžwš_G’_Clo£d_Wšdows +(); + +178  +Tžwš_G’_Ju¡_O³Ãd_Wšdows +(); + +180  +Tžwš_G’_Ju¡_Modif›d_Wšdows +(); + +182  +Tžwš_G’_Ju¡_Clo£d_Wšdows +(); + +184 +Tžwšp + +Tžwš_Next_Wšdow +(); + +186  +Tžwš_Modify_Cov”ed_Wšdows +(); + +188 +boÞ + +Tžwš_Is_Cov”ed +(); + +192  +Tžwš_Undo +(); + +193  +Tžwš_AbÜt_T¿n§ùiÚ +(); + +195  + #Tžwš_S¹_T¿n§ùiÚ +() \ + +196 + `S‹_S¹_T¿n§ùiÚ +() + + ) + +198  + #Tžwš_Comm™_T¿n§ùiÚ +() \ + +199 + `S‹_Comm™_T¿n§ùiÚ +() + + ) + +201  + #Tžwš_CÚtšue_T¿n§ùiÚ +() \ + +202 + `S‹_CÚtšue_T¿n§ùiÚ +() + + ) + +204  + #Tžwš_T¿n§ùiÚ_D•th +() \ + +205 + `S‹_T¿n§ùiÚ_D•th +() + + ) + +209  + #Tžwš_G‘_Time¡amp +() \ + +210 + `S‹_G‘_Time¡amp +() + + ) + +212  + #Tžwš_S‘_Wšdow_Time¡amp +( +wšp +, +¡amp +) \ + +213 + `S‹_S‘_Wšdow_Time¡amp +( +wšp +, +¡amp +) + + ) + +215  + #Tžwš_NÙe_U£ +( +wšp +) \ + +216 + `S‹_NÙe_U£ +( +wšp +) + + ) + +218  + #Tžwš_Aù_Modif›d +( +wšp +) \ + +219 + `S‹_Aù_Modif›d +( +wšp +) + + ) + +223  + #Tžwš_Was_Ju¡_Modif›d +( +wšp +) \ + +224 + `S‹_Was_Ju¡_Modif›d +( +wšp +) + + ) + +226  + #Tžwš_Was_Ju¡_Chªged +( +wšp +) \ + +227 + `S‹_Was_Ju¡_Chªged +( +wšp +) + + ) + +231  + #Tžwš_G‘_AbsÞu‹_Mšimums +() \ + +232 Ð +absÞu‹_mšs + ) + + ) + +233  + #Tžwš_S‘_AbsÞu‹_Mšimums +( +siz +) \ + +234 +absÞu‹_mšs + = ( +siz +) + + ) + +236  + #Tžwš_G‘_G¿v™y +() \ + +237 Ð +g¿v™y + ) + + ) + +238  + #Tžwš_S‘_G¿v™y +( +g¿v +) \ + +239 Ð +g¿v™y + = ( +g¿v +è) + + ) + +241 +boÞ + +Tžwš_Slide_N—»¡ +(); + +242 +boÞ + +Tžwš_Slide_F¬the¡ +(); + +243 +boÞ + +Tžwš_Slide_N—»¡_In_A»a +(); + +244 +boÞ + +Tžwš_Slide_F¬the¡_In_A»a +(); + +246  +Tžwš_Slide_HÜizly_F¬the¡ +(); + +247  +Tžwš_Slide_V”Žy_F¬the¡ +(); + +248  +Tžwš_Slide_HÜizly_N—»¡ +(); + +249  +Tžwš_Slide_V”Žy_N—»¡ +(); + +251 +Tžwšp + +Tžwš_Th»ad_N—»¡ +(); + +252 +Tžwšp + +Tžwš_Th»ad_F¬the¡ +(); + +253 +Tžwšp + +Tžwš_Rev”£_Th»ad +(); + +255 +Tžwšp + +Tžwš_Th»ad_N—»¡_Pos™iÚ +(); + +257 +Tžwšp + +Tžwš_Th»ad_V”Žy_N—»¡ +(); + +258 +Tžwšp + +Tžwš_Th»ad_HÜizly_N—»¡ +(); + +259 +Tžwšp + +Tžwš_Th»ad_V”Žy_F¬the¡ +(); + +260 +Tžwšp + +Tžwš_Th»ad_HÜizly_F¬the¡ +(); + +264 +TWPošt + +Tžwš_C’‹r_Of_G¿v™y +(); + +265 +TWPošt + +Tžwš_Pos™iÚ_CŒ_Of_G¿v™y +(); + +267 +Size + +Tžwš_Good_Size +(); + +268 +Size + +Tžwš_Checked_Size +(); + +269 +Size + +Tžwš_Checked_P»vious_Size +(); + +270 +Size + +Tžwš_Checked_Mš_Size +(); + +271 +Size + +Tžwš_Checked_Desœed_Size +(); + +272 +Size + +Tžwš_Checked_Good_Desœed_Size +(); + +273 +Size + +Tžwš_Checked_Max_Size +(); + +274 +Size + +Tžwš_Checked_Good_Max_Size +(); + +278 +Tžwšp + +Tžwš_G‘_L©e¡_Height +(); + +279 +Tžwšp + +Tžwš_G‘_L©e¡_Width +(); + + @twinD.h + +30 #iâdeà +TILWIN_DEFINE + + +31  + #TILWIN_DEFINE + + + ) + +34 #iâdeà +TILWIN_INTERN + + +35  + ~"twšI.h +" + +38  + ~"tžeÝtsP.h +" + +40  + #Tžwš_G‘_Wšdow_Id +( +wšp +) \ + +41 Ð(( +wšp +è=ð +WIN_NULL +è? ( +poš‹r +) +NULL + : ((( +Tžwš + *)(wšp))-> +id +è) + + ) + +42  + #Tžwš_S‘_Wšdow_Id +( +wšp +, +id +) \ + +43 ((( +Tžwš + *è( +wšp +)è-> +id +èð( +poš‹r +è(id) + + ) + +45  + #Tžwš_G‘_D©a +( +wšp +) \ + +46 ((( +Tžwš + *)( +wšp +))-> +d©a +) + + ) + +47  + #Tžwš_Put_D©a +( +wšp +, +v® +) \ + +48 ((( +Tžwš + *)( +wšp +))-> +d©a +èð( +poš‹r +)( +v® +) + + ) + +50  + #Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +Ýt +) \ + +51 Ð(( +Tžwš + *)( +wšp +)è-> +ÝtiÚs +[ (è +Ýt + ] ) + + ) + +53  + #Tžwš_S‘_Wšdow_O±iÚ +( +wšp +, +Ýt +, +v® +) \ + +54 Ð(( +Tžwš + *)( +wšp +)è-> +ÝtiÚs +[ (è +Ýt + ] ) = ( +v® +) + + ) + +56  + #Tžwš_G‘_ReùªgË +( +wšp +) \ + +57 ((( +Tžwš + *)( +wšp +)è-> +»ù +) + + ) + +59  + #Tžwš_G‘_Modify_Side +( +wšp +) \ + +60 ((( +Tžwš + *)( +wšp +)è-> +modify_side +) + + ) + +61  + #Tžwš_S‘_Modify_Side +( +wšp +, +side +) \ + +62 ((( +Tžwš + *è( +wšp +)è-> +modify_side +èð( +side +) + + ) + +64  + #Tžwš_G‘_Modify_ReùªgË +( +wšp +) \ + +65 ((( +Tžwš + *)( +wšp +)è-> +modify_»ù +) + + ) + +66  + #Tžwš_S‘_Modify_ReùªgË +( +wšp +, +»ù +) \ + +67 ((( +Tžwš + *)( +wšp +)è-> +modify_»ù +èð( +»ù +) + + ) + +69  + #Tžwš_G‘_Size +( +wšp +) \ + +70 ((( +Tžwš + *)( +wšp +)è-> +size +) + + ) + +71  + #Tžwš_G‘_C’‹r +( +wšp +) \ + +72 ((( +Tžwš + *)( +wšp +))-> +ûÁ” +) + + ) + +74  + #Tžwš_G‘_Mš +( +wšp +) \ + +75 ((( +Tžwš + *)( +wšp +)è-> +mš_size +) + + ) + +76  + #Tžwš_S‘_Mš +( +wšp +, +size +) \ + +78 ((( +Tžwš + *)( +wšp +)è-> +mš_size +). +height + = (1+ ( +size +).height ) & (~1); \ + +79 ((( +Tžwš + *)( +wšp +)è-> +mš_size +). +width + = (1+ ( +size +).width ) & (~1); \ + +80 } + + ) + +82  + #Tžwš_G‘_Max +( +wšp +) \ + +83 ((( +Tžwš + *)( +wšp +)è-> +max_size +) + + ) + +84  + #Tžwš_S‘_Max +( +wšp +, +size +) \ + +86 ((( +Tžwš + *)( +wšp +)è-> +max_size +). +height + = (1+ ( +size +).height ) & (~1); \ + +87 ((( +Tžwš + *)( +wšp +)è-> +max_size +). +width + = (1+ ( +size +).width ) & (~1); \ + +88 } + + ) + +90  + #Tžwš_G‘_Desœed +( +wšp +) \ + +91 ((( +Tžwš + *)( +wšp +)è-> +desœed_size +) + + ) + +92  + #Tžwš_S‘_Desœed +( +wšp +, +size +) \ + +94 ((( +Tžwš + *)( +wšp +)è-> +desœed_size +). +height + = ( ( +size +).height ) & (~1); \ + +95 ((( +Tžwš + *)( +wšp +)è-> +desœed_size +). +width + = ( ( +size +).width ) & (~1); \ + +96 } + + ) + +99  + #Tžwš_Is_O³n +( +wšp +) \ + +100 ((( +Tžwš + *)( +wšp +)è-> +Am_I_O³n +) + + ) + +101  + #Tžwš_Was_P»viou¦y_O³n +( +wšp +) \ + +102 ((( +Tžwš + *)( +wšp +)è-> +´ev_Am_I_O³n +) + + ) + +104  + #Tžwš_Was_Autom©iÿÎy_Clo£d +( +wšp +) \ + +105 ((( +Tžwš + *)( +wšp +)è-> +Was_Auto_Clo£d +) + + ) + +107  + #Tžwš_G‘_P»vious_ReùªgË +( +wšp +) \ + +108 ((( +Tžwš + *)( +wšp +)è-> +´ev_»ù +) + + ) + +109  + #Tžwš_G‘_P»vious_Size +( +wšp +) \ + +110 ((( +Tžwš + *)( +wšp +)è-> +´ev_size +) + + ) + +111  + #Tžwš_G‘_P»vious_C’‹r +( +wšp +) \ + +112 ((( +Tžwš + *)( +wšp +)è-> +´ev_ûÁ” +) + + ) + +114  + #Tžwš_G‘_Wšdow_Time¡amp +( +wšp +) \ + +115 ((( +Tžwš + *)( +wšp +)è-> +time¡amp +) + + ) + +117  + #Tžwš_Ju¡_C»©ed +( +wšp +) \ + +118 Ð + `Tžwš_G‘_Wšdow_Time¡amp +( +wšp +è=ð0 ) + + ) + +120  + #Tžwš_Was_Aùu®ly_Modif›d +( +wšp +) \ + +121 (! + `Same_Reù +Ð(( +Tžwš + *)( +wšp +))-> +»ù +, ((Tžwš *)(wšp))-> +´ev_»ù + ) ) + + ) + +123  + #Tžwš_Size_Chªged +( +wšp +) \ + +124 ÐÐ(( +Tžwš + *) +wšp +)-> +size +. +width + != \ + +125 (( +Tžwš + *) +wšp +)-> +´ev_size +. +width + ) \ + +127 Ð(( +Tžwš + *) +wšp +)-> +size +. +height + != \ + +128 (( +Tžwš + *) +wšp +)-> +´ev_size +. +height + ) ) + + ) + +132  + #Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +Ýt +) \ + +133 Ð(( +Tžwš + *)( +wšp +)è-> +ÝtiÚs +[ (è +Ýt + ] ) + + ) + +135  + #Tžwš_S‘_Wšdow_O±iÚ +( +wšp +, +Ýt +, +v® +) \ + +136 Ð(( +Tžwš + *)( +wšp +)è-> +ÝtiÚs +[ (è +Ýt + ] ) = ( +v® +) + + ) + +138 +boÞ + +glob®s +[]; + +140  + #Tžwš_S‘_Glob®_O±iÚ +( +Ýt +, +v® +) \ + +141 +glob®s +[()( +Ýt +)] = ( +v® +) + + ) + +143  + #Tžwš_G‘_Glob®_O±iÚ +( +Ýt +) \ + +144 Ð +glob®s +[()( +Ýt +)] ) + + ) + +146  + #Tžwš_G‘_Tže +( +wšp +) \ + +147 ((( +Tžwš + *)( +wšp +)è-> +tž• +) + + ) + +149  + #Tžwš_G‘_Pos™iÚ +( +wšp +) \ + +150 ((( +Tžwš + *)( +wšp +)è-> +pos™iÚ +) + + ) + +152  + #Tžwš_S‘_Pos™iÚ +( +wšp +, +± +) \ + +153 ((( +Tžwš + *)( +wšp +)è-> +pos™iÚ + = ( +± +)) + + ) + +155  + #Tžwš_G‘_O³n_PriÜ™y +( +wšp +) \ + +156 ((( +Tžwš + *)( +wšp +)è-> +Ý’_´iÜ™y +) + + ) + +158  + #Tžwš_S‘_O³n_PriÜ™y +( +wšp +, +´i +) \ + +159 ((( +Tžwš + *è( +wšp +)è-> +Ý’_´iÜ™y + = ( +´i +)) + + ) + +161  + #Tžwš_G‘_Size_PriÜ™y +( +wšp +) \ + +162 ((( +Tžwš + *)( +wšp +)è-> +size_´iÜ™y +) + + ) + +164  + #Tžwš_S‘_Size_PriÜ™y +( +wšp +, +´i +) \ + +165 ((( +Tžwš + *è( +wšp +)è-> +size_´iÜ™y + = ( +´i +)) + + ) + +167  + #Tžwš_NÙe_Desœed_Height +( +wšp +) \ + +168 (( +Tžwš + *)( +wšp +))-> +height_¡amp + = + `Tžwš_G‘_Time¡amp +() + + ) + +169  + #Tžwš_NÙe_Desœed_Width +( +wšp +) \ + +170 (( +Tžwš + *)( +wšp +))-> +width_¡amp + = + `Tžwš_G‘_Time¡amp +() + + ) + +172 #ifdeà +WM_DEBUG + + +173 +Tžwš + * +tw_glob® +; + + @twinI.h + +28  + #TILWIN_INTERN + + + ) + +30  + ~"ba£ty³.h +" + +32 #iâdeà +TILWIN + + +33  + ~"twšP.h +" + +36  +¡r_wšdow + + tTžwš +; + +38  + #WINP_NULL + ( +Tžwš + *) +NULL + + + ) + +40  + s¡r_wšdow + + +42 +poš‹r + + mid +; + +43 +poš‹r + + md©a +; + +46 +TWReùªgË + + m»ù +, + +47 + m´ev_»ù +, + +48 + mmodify_»ù +; + +50 +Size + + mmš_size +, + +51 + mmax_size +, + +52 + msize +, + +54 + mmodify_size +, + +55 + mÝ’_size +, + +56 + m´ev_size +, + +58 + mdesœed_size +; + +60 +Side + + mmodify_side +; + +62 +TWPošt + + mûÁ” +, + +63 + m´ev_ûÁ” +; + +65 +TWPošt + + mpos™iÚ +; + +67 +boÞ + + mÝtiÚs +[ (è +LENGTH_WINDOW_OPTIONS + ]; + +69 +boÞ + + mAm_I_O³n +; + +70 +boÞ + + m´ev_Am_I_O³n +; + +72 +boÞ + + mWas_Auto_Clo£d +; + +74  + mafãù_¡amp +; + +75  + mmodify_¡amp +; + +77  + mtime¡amp +, + +78 + m´ev_time¡amp +; + +80  + mÝ’_´iÜ™y +; + +81  + msize_´iÜ™y +; + +83 +poš‹r + + mtž• +; + +85 +Tžwš + * + mÝ’p +; + +86 +Tžwš + * + mþo£dp +; + +88 +Tžwš + * + mju¡p +; + +91 +Tžwš + * + mpÙ’tmp +; + +92 +Tžwš + * + mpÙ’tý +; + +94  + mheight_¡amp +; + +95  + mwidth_¡amp +; + + @twinP.h + +31 #iâdeà +TILWIN + + +32  + #TILWIN + + + ) + +35 #iâdeà +BASETYPE + + +36  + ~"ba£ty³.h +" + +39  + ~"twšÝtsP.h +" + +41  + tTimeSmp +; + +42  + tPriÜ™y +; + +44  +poš‹r + + tTžwšp +; + +46  + #WIN_NULL + ( +Tžwšp +) +NULL + + + ) + + @twin_close.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)twin_close.c 5.3 9/1/88"; + +27  + ~"cÝyright.h +" + +29  + ~"ba£ty³.h +" + +30  + ~"twšD.h +" + +31  + ~"wš.h +" + +32  + ~"¡©e.h +" + +34  + $Tžwš_Clo£ +( +wšp +) + +35 +Tžwšp + +wšp +; + +37 +Tžwš + * +twšp + = (Tžwš *) +wšp +; + +39 + `S‹_S¹_O³¿tiÚ +(); + +41 ià( + `Tžwš_Is_O³n +( +twšp +è!ð +TRUE +) + +44 + `S‹_Mªu®_Clo£ +( +twšp +); + +45 + `Wš_Clo£ +( +twšp +); + +46 + } +} + +49  + $Tžwš_Auto_Clo£ +( +wšp +) + +50 +Tžwšp + +wšp +; + +52 +Tžwš + * +twšp + = (Tžwš *) +wšp +; + +54 + `S‹_S¹_O³¿tiÚ +(); + +56 ià( + `Tžwš_Is_O³n +( +twšp +è!ð +TRUE +) + +58 + `Tžwš_Was_Autom©iÿÎy_Clo£d +( +twšp +èð +TRUE +; + +62 + `S‹_Auto_Clo£ +( +twšp +); + +63 + `Wš_Clo£ +( +twšp +); + +64 + } +} + + @twin_creat.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)twin_creat.c 5.3 9/1/88"; + +27  + ~"cÝyright.h +" + +29  + ~"ba£ty³.h +" + +30  + ~"twšD.h +" + +31  + ~"¡©e.h +" + +32  + ~"mem.h +" + +34 +Tžwšp + + +35 + $Tžwš_C»©e_Wšdow +( +id +) + +36 +poš‹r + +id +; + +38 +Tžwš + * +wšp +; + +40 +wšp + = + `Mem_AÎoÿ‹ +(); + +41 + `Tžwš_S‘_Wšdow_Id +( +wšp +, +id +); + +42 + `S‹_C»©e +(( +Tžwš + *) +wšp +); + +44 +wšp +-> +width_¡amp + = 0; + +45 +wšp +-> +height_¡amp + = 0; + +46 +wšp +-> +Was_Auto_Clo£d + = +FALSE +; + +48  (( +Tžwšp +è +wšp +); + +49 + } +} + +52 + $Tžwš_De¡roy_Wšdow +( +wšp +) + +53 +Tžwšp + +wšp +; + +55 ià( + `Tžwš_Is_O³n +( +wšp +è!ð +TRUE +) { + +56 + `S‹_De¡roy +(( +Tžwš + *è +wšp +); + +57 + `Mem_D—Îoÿ‹ +(( +Tžwš + *è +wšp +); + +59 + } +} + + @twin_desk.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)twin_desk.c 5.3 9/1/88"; + +27  + ~"cÝyright.h +" + +29  + ~"ba£ty³.h +" + +30  + ~"twš.h +" + +31  + ~"tže.h +" + +32  + ~"g¿v™y.h +" + +34  +boÞ + + gdesktÝ_š™Ÿlized + = +FALSE +; + +37 + $Tžwš_S‘_DesktÝ_Size +( +size +) + +38 +Size + +size +; + +40 +TWReùªgË + +Þd_desktÝ_»ù +; + +42 ià( + `Is_Odd_Numb” +( + `G‘_Width +( +size +)è=ð +TRUE +) + +43 + `G‘_Width +( +size +)++; + +44 ià( + `Is_Odd_Numb” +( + `G‘_Height +( +size +)è=ð +TRUE +) + +45 + `G‘_Height +( +size +)++; + +47 +desktÝ_size + = +size +; + +49 +Þd_desktÝ_»ù + = +desktÝ_»ù +; + +50 + `G‘_RightX +( +desktÝ_»ù +èð + `G‘_Width +( +desktÝ_size +) - 1; + +51 + `G‘_BÙtomY +( +desktÝ_»ù +èð + `G‘_Height +( +desktÝ_size +) - 1; + +53 ià( +desktÝ_š™Ÿlized + =ð +FALSE +){ + +54 +desktÝ_š™Ÿlized + = +TRUE +; + +56 + `G‘_LeáX +( +desktÝ_»ù +èð( +Ba£ty³ +) 0; + +57 + `G‘_TÝY +( +desktÝ_»ù +èð( +Ba£ty³ +) 0; + +59 + `G¿v™y_In™ +(); + +60 + `G¿v™y_In£¹_Edge +( + `G‘_LeáX +( +desktÝ_»ù +), +Leá +); + +61 + `G¿v™y_In£¹_Edge +( + `G‘_TÝY +( +desktÝ_»ù +), +TÝ +); + +62 + `G¿v™y_In£¹_Edge +( + `G‘_RightX +( +desktÝ_»ù +), +Right +); + +63 + `G¿v™y_In£¹_Edge +( + `G‘_BÙtomY +( +desktÝ_»ù +), +BÙtom +); + +66 + `G¿v™y_D–‘e_Edge +( + `G‘_RightX +( +Þd_desktÝ_»ù +), +Right +); + +67 + `G¿v™y_D–‘e_Edge +( + `G‘_BÙtomY +( +Þd_desktÝ_»ù +), +BÙtom +); + +68 + `G¿v™y_In£¹_Edge +( + `G‘_RightX +( +desktÝ_»ù +), +Right +); + +69 + `G¿v™y_In£¹_Edge +( + `G‘_BÙtomY +( +desktÝ_»ù +), +BÙtom +); + +72 + `COMPUTE_CENTER +( +desktÝ_»ù +, +desktÝ_ûÁ” +); + +74 + `Tže_In™_Tws +( + `G‘_LeáX +( +desktÝ_»ù +), + `G‘_RightX +(desktop_rect), + +75 + `G‘_BÙtomY +( +desktÝ_»ù +), + `G‘_TÝY +(desktop_rect)); + +78 + } +} + + @twin_dump.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)twin_dump.c 5.4 9/1/88"; + +27  + ~"cÝyright.h +" + +29  + ~<¡dio.h +> + +30  + ~"tžeD.h +" + +31  + ~"tže.h +" + +32  + ~"twšD.h +" + +33  + ~"twš.h +" + +34  + ~"wš.h +" + +36  + #TAG_TILE + -1 + + ) + +38 +FILE + * + gdump_fže + = (FILE *è +NULL +; + +40  +Tže + + gdum³e +; + +41  +Tže + * + gdum³r + = & +dum³e +; + +49 + $Tžwš_Tže_Dump +( +a_tže +) + +50 +Tže + * +a_tže +; + +52 ià( + `Tže_G‘_Name +( +a_tže +è!ð +TAG_TILE +) + +54 + `Tže_S‘_Name +( +dum³r +, + `Tže_G‘_Name +( +a_tže +)); + +55 + `Tže_S‘_Ty³ +( +dum³r +, + `Tže_G‘_Ty³ +( +a_tže +)); + +57 + `Leá_X +( +dum³r +èðLeá_X( +a_tže +); + +58 + `Right_X +( +dum³r +èðRight_X( +a_tže +); + +59 + `TÝ_Y +( +dum³r +èðTÝ_Y( +a_tže +); + +60 + `BÙtom_Y +( +dum³r +èðBÙtom_Y( +a_tže +); + +65 + `bl_¡™ch +( +dum³r +èð( +Tže + *) + `Tže_G‘_Name +(bl_¡™ch( +a_tže +)); + +66 + `lb_¡™ch +( +dum³r +èð( +Tže + *) + `Tže_G‘_Name +Öb_¡™ch( +a_tže +)); + +67 + `Œ_¡™ch +( +dum³r +èð( +Tže + *) + `Tže_G‘_Name +Ñr_¡™ch( +a_tže +)); + +68 + `¹_¡™ch +( +dum³r +èð( +Tže + *) + `Tže_G‘_Name +Ôt_¡™ch( +a_tže +)); + +70 (è + `fwr™e +((*è +dum³r +, ( +Tže +), 1, +dump_fže +); + +74 (è + `fwr™e +((*è +a_tže +, ( +Tže +), 1, +dump_fže +); + +76 + } +} + +81 + $Tžwš_Dump +() + +83  + `Tžwš_Tže_Dump +(); + +84 * + `mk‹mp +(); + +85 +FILE + * + `fÝ’ +(); + +86 +Tže + * +Tže_©_CP +; + +87 +Tže + * +CP_poš‹r +; + +88 * +dump_Çme + = (*è +NULL +; + +89 +Tže + +g +; + +93 +CP_poš‹r + = +Tže_©_CP +; + +95 ià( +dump_Çme + =ð(*è +NULL +) + +97 +dump_Çme + = + `mk‹mp +("DumpXXXXXX"); + +99 iàÐ( +dump_fže + = + `fÝ’ +( +dump_Çme +, "a")è=ð( +FILE + *è +NULL + ) + +101 + `³¼Ü +("Onquit"); + +106 +g +. +Çme + = +TAG_TILE +; + +108 + `Tžwš_Tže_Dump +(& +g +); + +109 + `Tžes_In_A»a +(0, 0, +desktÝ_size +. +width +-1, + +110 +desktÝ_size +. +height +-1, +Tžwš_Tže_Dump +); + +112 (è + `fæush +( +dump_fže +); + +115 +Tže_©_CP + = +CP_poš‹r +; + +117 + } +} + + @twin_init.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)twin_init.c 5.3 9/1/88"; + +27  + ~"cÝyright.h +" + +29  + ~"ba£ty³.h +" + +30  + ~"twšP.h +" + +32 +TWPošt + + gdesktÝ_ûÁ” +; + +33 +Size + + gdesktÝ_size +; + +34 +TWReùªgË + + gdesktÝ_»ù +; + +36 +Size + + gabsÞu‹_mšs +; + +37  + gg¿v™y + = 10; + +39 #ifdeà +WM_DEBUG + + +40  + ~"twšI.h +" + +41  + ~"tžeI.h +" + +42 +Tžwš + * + gtw_glob® +; + +43 +Tže + * + gt_glob® +; + + @twin_list.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)twin_list.c 5.3 9/1/88"; + +27  + ~"cÝyright.h +" + +29  + ~"ba£ty³.h +" + +30  + ~"twšD.h +" + +31  + ~"¡©e.h +" + +33  +WšpHªdË + + gcurhªdË +; + +35  + $Tžwš_G’_O³n_Wšdows +() + +37 +curhªdË + = + `S‹_G’_O³n_Wšdows +(); + +38 + } +} + +40  + $Tžwš_G’_Clo£d_Wšdows +() + +42 +curhªdË + = + `S‹_G’_Clo£d_Wšdows +(); + +43 + } +} + +45  + $Tžwš_G’_Ju¡_O³Ãd_Wšdows +() + +47 +curhªdË + = + `S‹_G’_Ju¡_O³Ãd_Wšdows +(); + +48 + } +} + +50  + $Tžwš_G’_Ju¡_Modif›d_Wšdows +() + +52 +curhªdË + = + `S‹_G’_Ju¡_Modif›d_Wšdows +(); + +53 + } +} + +55  + $Tžwš_G’_Ju¡_Clo£d_Wšdows +() + +57 +curhªdË + = + `S‹_G’_Ju¡_Clo£d_Wšdows +(); + +58 + } +} + +60 +Tžwšp + + $Tžwš_Next_Wšdow +() + +62 +Tžwš + * +wšp +; + +64 +wšp + = + `S‹_CÛrû +( +curhªdË +); + +65 + `S‹_Next_Wšdow +(& +curhªdË +); + +66  ( +Tžwšp +è +wšp +; + +67 + } +} + + @twin_ltst.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)twin_ltst.c 5.5 9/1/88"; + +27  + ~"cÝyright.h +" + +29  + ~"ba£ty³.h +" + +30  + ~"¡©e.h +" + +31  + ~"twšD.h +" + +33  + #MAXKTH + 20 + + ) + +37 +Tžwšp + + $Tžwš_G‘_L©e¡_Height +Ð +kth + ) + +38  +kth +; + +40 +WšpHªdË + +hªdË +; + +41 +Tžwš + * +wšp +; + +42  +curkth + = 0; + +43 +Tžwš + *( +wšps +[ +MAXKTH ++1]); + +44  +i +; + +46 iàÐ +kth + > +MAXKTH + ) + +47 +kth + = +MAXKTH +; + +49 +hªdË + = + `S‹_G’_O³n_Wšdows +(); + +50 ( +wšp + = + `S‹_CÛrû +( +hªdË +)è!ð +WINP_NULL +) + +52 +i + = +curkth +; + +53  ( +i + > 0 ) && + +54 Ð +wšps +[ +i +-1]-> +height_¡amp + < + +55 +wšp +-> +height_¡amp + ) ) + +57 +wšps +[ +i +] = winps[i-1]; + +58 +i +--; + +61 iàÐ +i + < +kth + ) + +63 +wšps +[ +i +] = +wšp +; + +64 iàÐ +curkth + < +kth + ) + +65 +curkth +++; + +68 + `S‹_Next_Wšdow +(& +hªdË +); + +71 iàÐÐ +curkth + =ð +kth + ) && ( +wšps +[kth-1]-> +height_¡amp + > 0 ) ) + +72  ( +Tžwšp +)( +wšps +[ +kth +-1]); + +74  +WIN_NULL +; + +75 + } +} + +79 +Tžwšp + + $Tžwš_G‘_L©e¡_Width +Ð +kth + ) + +80  +kth +; + +82 +WšpHªdË + +hªdË +; + +83 +Tžwš + * +wšp +; + +84  +curkth + = 0; + +85 +Tžwš + *( +wšps +[ +MAXKTH ++1]); + +86  +i +; + +88 iàÐ +kth + > +MAXKTH + ) + +89 +kth + = +MAXKTH +; + +91 +hªdË + = + `S‹_G’_O³n_Wšdows +(); + +92 ( +wšp + = + `S‹_CÛrû +( +hªdË +)è!ð +WINP_NULL +) + +94 +i + = +curkth +; + +95  ( +i + > 0 ) && + +96 Ð +wšps +[ +i +-1]-> +width_¡amp + < + +97 +wšp +-> +width_¡amp + ) ) + +99 +wšps +[ +i +] = winps[i-1]; + +100 +i +--; + +103 iàÐ +i + < +kth + ) + +105 +wšps +[ +i +] = +wšp +; + +106 iàÐ +curkth + < +kth + ) + +107 +curkth +++; + +110 + `S‹_Next_Wšdow +(& +hªdË +); + +113 iàÐÐ +curkth + =ð +kth + ) && ( +wšps +[kth-1]-> +width_¡amp + > 0 ) ) + +114  ( +Tžwšp +)( +wšps +[ +kth +-1]); + +116  +WIN_NULL +; + +117 + } +} + + @twin_misc.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)twin_misc.c 5.3 9/1/88"; + +27  + ~"cÝyright.h +" + +29  + ~"twšD.h +" + +30  + ~"¡©e.h +" + +31  + ~"tžeD.h +" + +32  + ~"tže.h +" + +33  + ~"wš.h +" + +35 +Tžwšp + + +36 + $Tžwš_Loÿ‹ +( +± +) + +37 +TWPošt + +± +; + +39 +Tž• + +tž• +; + +41 +tž• + = + `Tže_©_Pošt +( + `G‘_PtX +( +± +), + `G‘_PtY +(pt)); + +43 #ifdeà +WM_DEBUG + + +44 +t_glob® + = ( +Tže + *è +tž• +; + +45 ià( +tž• + !ð( +Tž• +è +NULL +) + +46 +tw_glob® + = ( +Tžwš + *è + `Tže_G‘_Wš +(( +Tže + *è +tž• +); + +48 +tw_glob® + = ( +Tžwš + *è +NULL +; + +51 ià( +tž• + =ð( +Tž• +è +NULL_TILE + || + +52 + `Tže_G‘_Ty³ +(( +Tže + *è +tž• +è=ð +S·û +) + +53 ( +WIN_NULL +); + +55 Ð( +Tžwšp +è + `Tže_G‘_Wš +(( +Tže + *è +tž• +)); + +56 + } +} + +58 +Tžwšp + + +59 + $Tžwš_Loÿ‹_Wšdow +( +id +) + +60 +poš‹r + +id +; + +62 +Tžwš + * +wšp +; + +63 +WšpHªdË + +hªdË +; + +65 +hªdË + = + `S‹_G’_O³n_Wšdows +(); + +66 ( +wšp + = + `S‹_CÛrû +( +hªdË +)è!ð +WINP_NULL +) { + +67 ià( + `Tžwš_G‘_Wšdow_Id +((( +Tžwšp +è +wšp +)è=ð +id +) + +68 (( +Tžwšp +) +wšp +); + +69 + `S‹_Next_Wšdow +(& +hªdË +); + +72 +hªdË + = + `S‹_G’_Clo£d_Wšdows +(); + +73 ( +wšp + = + `S‹_CÛrû +( +hªdË +)è!ð +WINP_NULL +) { + +74 ià( + `Tžwš_G‘_Wšdow_Id +((( +Tžwšp +) +wšp +)è=ð +id +) + +75 (( +Tžwšp +) +wšp +); + +76 + `S‹_Next_Wšdow +(& +hªdË +); + +79 ( +WIN_NULL +); + +80 + } +} + +83 + $Tžwš_Modify_Cov”ed_Wšdows +( +»ù +) + +84 +TWReùªgË + +»ù +; + +87 + `Tžes_In_A»a +( + `G‘_LeáX +( +»ù +), + `G‘_TÝY +(rect), + +88 + `G‘_RightX +( +»ù +), + `G‘_BÙtomY +(rect), + +89 +Wš_Add_Modif›d +); + +90 + } +} + +97 +boÞ + + gno_¥aû_tže_š_¬— +; + +99 +boÞ + + +100 + $Tžwš_Is_Cov”ed +( +»ù +) + +101 +TWReùªgË + +»ù +; + +104 +no_¥aû_tže_š_¬— + = +TRUE +; + +105 + `Tžes_In_A»a +( + `G‘_LeáX +( +»ù +), + `G‘_TÝY +(rect), + +106 + `G‘_RightX +( +»ù +), + `G‘_BÙtomY +(rect), + +107 +Wš_Is_Cov”ed +); + +109 ( +no_¥aû_tže_š_¬— +); + +111 + } +} + +114 + $Tžwš_PrÜ©e +() + +116 + } +} + + @twin_open.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)twin_open.c 5.3 9/1/88"; + +27  + ~"cÝyright.h +" + +29  + ~"ba£ty³.h +" + +30  + ~"twšD.h +" + +31  + ~"¡©e.h +" + +32  + ~"ŒŸl.h +" + +33  + ~"comm™.h +" + +34  + ~"g¿v™y.h +" + +35  + ~"wš.h +" + +37 +TWReùªgË + +desktÝ_»ù +; + +39 +boÞ + + +40 + $Tžwš_O³n +( +wšp +, +loÿtiÚ +, +size +) + +41 +Tžwšp + +wšp +; + +42 +TWPošt + +loÿtiÚ +; + +43 +Size + +size +; + +45 +Tžwš + * +twšp + = (Tžwš *) +wšp +; + +46 +TWReùªgË + +»ù +, + +47 +cu¼’t_»ù +, + +48 +g»ù +, + +49 +¬eù +; + +51 + `S‹_S¹_O³¿tiÚ +(); + +56 ià( + `Tžwš_Is_O³n +( +twšp +è=ð +TRUE +){ + +57 +g»ù + = + `Tžwš_G‘_ReùªgË +( +twšp +); + +58 + `G¿v™y_D–‘e_Edge +( + `G‘_LeáX +( +g»ù +), +Leá +); + +59 + `G¿v™y_D–‘e_Edge +( + `G‘_RightX +( +g»ù +), +Right +); + +60 + `G¿v™y_D–‘e_Edge +( + `G‘_TÝY +( +g»ù +), +TÝ +); + +61 + `G¿v™y_D–‘e_Edge +( + `G‘_BÙtomY +( +g»ù +), +BÙtom +); + +65 ià( + `Is_Odd_Numb” +( + `G‘_Width +( +size +)è=ð +TRUE +) + +66 + `G‘_Width +( +size +)--; + +67 ià( + `Is_Odd_Numb” +( + `G‘_Height +( +size +)è=ð +TRUE +) + +68 + `G‘_Height +( +size +)--; + +70 + `MAKE_RECTANGLE +( +loÿtiÚ +, +size +, +»ù +); + +71 +cu¼’t_»ù + = + `Tžwš_G‘_ReùªgË +( +twšp +); + +76 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_LEFT_EDGE +è=ð +TRUE +){ + +77 + `G‘_LeáX +( +»ù +èðG‘_LeáX( +cu¼’t_»ù +); + +78 + `G‘_RightX +( +»ù +èð + `G‘_LeáX +Ôeùè+ ( + `G‘_Width +( +size +) - 1); + +80 (è + `TrŸl_PÏû +(& +»ù +, +Right +, + `Tžwš_G‘_Mš +( +twšp +), + +81 + `Tžwš_G‘_Max +( +twšp +)); + +83 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_RIGHT_EDGE +è=ð +TRUE +){ + +84 + `G‘_RightX +( +»ù +èðG‘_RightX( +cu¼’t_»ù +); + +85 + `G‘_LeáX +( +»ù +èð + `G‘_RightX +Ôeùè- ( + `G‘_Width +( +size +) - 1); + +86 (è + `TrŸl_PÏû +(& +»ù +, +Leá +, + `Tžwš_G‘_Mš +( +twšp +), + +87 + `Tžwš_G‘_Max +( +twšp +)); + +94 +¬eù + = +»ù +; + +95 (è + `TrŸl_PÏû +(& +¬eù +, +NoSide +, + `Tžwš_G‘_Mš +( +twšp +), + +96 + `Tžwš_G‘_Max +( +twšp +)); + +97 + `G‘_LeáX +( +»ù +èðG‘_LeáX( +¬eù +); + +98 + `G‘_RightX +( +»ù +èðG‘_RightX( +¬eù +); + +101 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_TOP_EDGE +è=ð +TRUE +) { + +102 + `G‘_TÝY +( +»ù +èðG‘_TÝY( +cu¼’t_»ù +); + +103 + `G‘_BÙtomY +( +»ù +èð + `G‘_TÝY +Ôeùè+ ( + `G‘_Height +( +size +) - 1); + +104 (è + `TrŸl_PÏû +(& +»ù +, +BÙtom +, + `Tžwš_G‘_Mš +( +twšp +), + +105 + `Tžwš_G‘_Max +( +twšp +)); + +107 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_BOTTOM_EDGE +è=ð +TRUE +) { + +108 + `G‘_BÙtomY +( +»ù +èðG‘_BÙtomY( +cu¼’t_»ù +); + +109 + `G‘_TÝY +( +»ù +èð + `G‘_BÙtomY +Ôeùè- ( + `G‘_Height +( +size +) - 1); + +110 (è + `TrŸl_PÏû +(& +»ù +, +TÝ +, + `Tžwš_G‘_Mš +( +twšp +), + +111 + `Tžwš_G‘_Max +( +twšp +)); + +118 +¬eù + = +»ù +; + +119 (è + `TrŸl_PÏû +(& +¬eù +, +NoSide +, + `Tžwš_G‘_Mš +( +twšp +), + +120 + `Tžwš_G‘_Max +( +twšp +)); + +121 + `G‘_TÝY +( +»ù +èðG‘_TÝY( +¬eù +); + +122 + `G‘_BÙtomY +( +»ù +èðG‘_BÙtomY( +¬eù +); + +126 ià( + `Tžwš_Is_O³n +( +twšp +è=ð +TRUE +) { + +127 + `G¿v™y_In£¹_Edge +( + `G‘_LeáX +( +g»ù +), +Leá +); + +128 + `G¿v™y_In£¹_Edge +( + `G‘_RightX +( +g»ù +), +Right +); + +129 + `G¿v™y_In£¹_Edge +( + `G‘_TÝY +( +g»ù +), +TÝ +); + +130 + `G¿v™y_In£¹_Edge +( + `G‘_BÙtomY +( +g»ù +), +BÙtom +); + +134 ià( + `G‘_LeáX +( +»ù +è< G‘_LeáX( +desktÝ_»ù +) || + +135 + `G‘_RightX +( +»ù +è> G‘_RightX( +desktÝ_»ù +) || + +136 + `G‘_TÝY +( +»ù +è< G‘_TÝY( +desktÝ_»ù +) || + +137 + `G‘_BÙtomY +( +»ù +è> G‘_BÙtomY( +desktÝ_»ù +)) { + +138 ( +FALSE +); + +142 ià( + `TrŸl_O³n +( +twšp +, +»ù +, + `S‹_G‘_Time¡amp +()è=ð +TRUE +) { + +143 + `Comm™_O³¿tiÚ +( +twšp +); + +144 ( +TRUE +); + +147 ( +FALSE +); + +149 + } +} + +151 +boÞ + + +152 + $Tžwš_Check_CÜÃr_O³n +( +wšp +, +¡¬t_± +, +adr_± +, +cÜÃr +, +mš_size +, +max_size +) + +153 +Tžwšp + +wšp +; + +154 +TWPošt + * +¡¬t_± +; + +155 +TWPošt + * +adr_± +; + +156 +Side + +cÜÃr +; + +157 +Size + +mš_size +, + +158 +max_size +; + +160 +Tžwš + * +twšp + = (Tžwš *) +wšp +; + +161 +TWReùªgË + +»ù +, + +162 +g»ù +; + +163 +Side + +Ýp_cÜÃr +; + +168 ià( + `Is_Odd_Numb” +( + `G‘_Width +( +mš_size +)è=ð +TRUE +) + +169 + `G‘_Width +( +mš_size +)++; + +170 ià( + `Is_Odd_Numb” +( + `G‘_Height +( +mš_size +)è=ð +TRUE +) + +171 + `G‘_Height +( +mš_size +)++; + +172 ià( + `Is_Odd_Numb” +( + `G‘_Width +( +max_size +)è=ð +TRUE +) + +173 + `G‘_Width +( +max_size +)++; + +174 ià( + `Is_Odd_Numb” +( + `G‘_Height +( +max_size +)è=ð +TRUE +) + +175 + `G‘_Height +( +max_size +)++; + +181 ià( + `Tžwš_Is_O³n +( +twšp +è=ð +TRUE +){ + +182 +g»ù + = + `Tžwš_G‘_ReùªgË +( +twšp +); + +183 + `G¿v™y_D–‘e_Edge +( + `G‘_LeáX +( +g»ù +), +Leá +); + +184 + `G¿v™y_D–‘e_Edge +( + `G‘_RightX +( +g»ù +), +Right +); + +185 + `G¿v™y_D–‘e_Edge +( + `G‘_TÝY +( +g»ù +), +TÝ +); + +186 + `G¿v™y_D–‘e_Edge +( + `G‘_BÙtomY +( +g»ù +), +BÙtom +); + +189  +cÜÃr +) { + +190  +TÝ_Leá +: + +191 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_LEFT_EDGE +è=ð +TRUE +) + +192 + `G‘_PtX +(* +¡¬t_± +èð + `G‘_LeáX +( + `Tžwš_G‘_ReùªgË +( +twšp +)); + +194 + `G‘_PtX +(* +¡¬t_± +èð + `G¿v™y_Adju¡_Edge +(G‘_PtX(*¡¬t_±), +Leá +); + +195 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_TOP_EDGE +è=ð +TRUE +) + +196 + `G‘_PtY +(* +¡¬t_± +èð + `G‘_TÝY +( + `Tžwš_G‘_ReùªgË +( +twšp +)); + +198 + `G‘_PtY +(* +¡¬t_± +èð + `G¿v™y_Adju¡_Edge +(G‘_PtY(*¡¬t_±), +TÝ +); + +200 + `G‘_LeáX +( +»ù +èð + `G‘_PtX +(* +¡¬t_± +); + +201 + `G‘_TÝY +( +»ù +èð + `G‘_PtY +(* +¡¬t_± +); + +202 + `G‘_RightX +( +»ù +èð + `G‘_PtX +(* +adr_± +); + +203 + `G‘_BÙtomY +( +»ù +èð + `G‘_PtY +(* +adr_± +); + +204 +Ýp_cÜÃr + = +BÙtom_Right +; + +206  +TÝ_Right +: + +207 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_RIGHT_EDGE +è=ð +TRUE +) + +208 + `G‘_PtX +(* +¡¬t_± +èð + `G‘_RightX +( + `Tžwš_G‘_ReùªgË +( +twšp +)); + +210 + `G‘_PtX +(* +¡¬t_± +èð + `G¿v™y_Adju¡_Edge +(G‘_PtX(*¡¬t_±), +Right +); + +211 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_TOP_EDGE +è=ð +TRUE +) + +212 + `G‘_PtY +(* +¡¬t_± +èð + `G‘_TÝY +( + `Tžwš_G‘_ReùªgË +( +twšp +)); + +214 + `G‘_PtY +(* +¡¬t_± +èð + `G¿v™y_Adju¡_Edge +(G‘_PtY(*¡¬t_±), +TÝ +); + +216 + `G‘_LeáX +( +»ù +èð + `G‘_PtX +(* +adr_± +); + +217 + `G‘_TÝY +( +»ù +èð + `G‘_PtY +(* +¡¬t_± +); + +218 + `G‘_RightX +( +»ù +èð + `G‘_PtX +(* +¡¬t_± +); + +219 + `G‘_BÙtomY +( +»ù +èð + `G‘_PtY +(* +adr_± +); + +220 +Ýp_cÜÃr + = +BÙtom_Leá +; + +222  +BÙtom_Leá +: + +223 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_LEFT_EDGE +è=ð +TRUE +) + +224 + `G‘_PtX +(* +¡¬t_± +èð + `G‘_LeáX +( + `Tžwš_G‘_ReùªgË +( +twšp +)); + +226 + `G‘_PtX +(* +¡¬t_± +èð + `G¿v™y_Adju¡_Edge +(G‘_PtX(*¡¬t_±), +Leá +); + +227 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_BOTTOM_EDGE +è=ð +TRUE +) + +228 + `G‘_PtY +(* +¡¬t_± +èð + `G‘_BÙtomY +( + `Tžwš_G‘_ReùªgË +( +twšp +)); + +230 + `G‘_PtY +(* +¡¬t_± +èð + `G¿v™y_Adju¡_Edge +(G‘_PtY(*¡¬t_±), +BÙtom +); + +232 + `G‘_LeáX +( +»ù +èð + `G‘_PtX +(* +¡¬t_± +); + +233 + `G‘_TÝY +( +»ù +èð + `G‘_PtY +(* +adr_± +); + +234 + `G‘_RightX +( +»ù +èð + `G‘_PtX +(* +adr_± +); + +235 + `G‘_BÙtomY +( +»ù +èð + `G‘_PtY +(* +¡¬t_± +); + +236 +Ýp_cÜÃr + = +TÝ_Right +; + +238  +BÙtom_Right +: + +239 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_RIGHT_EDGE +è=ð +TRUE +) + +240 + `G‘_PtX +(* +¡¬t_± +èð + `G‘_RightX +( + `Tžwš_G‘_ReùªgË +( +twšp +)); + +242 + `G‘_PtX +(* +¡¬t_± +èð + `G¿v™y_Adju¡_Edge +(G‘_PtX(*¡¬t_±), +Leá +); + +243 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_BOTTOM_EDGE +è=ð +TRUE +) + +244 + `G‘_PtY +(* +¡¬t_± +èð + `G‘_BÙtomY +( + `Tžwš_G‘_ReùªgË +( +twšp +)); + +246 + `G‘_PtY +(* +¡¬t_± +èð + `G¿v™y_Adju¡_Edge +(G‘_PtY(*¡¬t_±), +BÙtom +); + +248 + `G‘_LeáX +( +»ù +èð + `G‘_PtX +(* +adr_± +); + +249 + `G‘_TÝY +( +»ù +èð + `G‘_PtY +(* +adr_± +); + +250 + `G‘_RightX +( +»ù +èð + `G‘_PtX +(* +¡¬t_± +); + +251 + `G‘_BÙtomY +( +»ù +èð + `G‘_PtY +(* +¡¬t_± +); + +252 +Ýp_cÜÃr + = +TÝ_Leá +; + +259 (è + `TrŸl_PÏû +(& +»ù +, +Ýp_cÜÃr +, +mš_size +, +max_size +); + +260  +cÜÃr +) { + +261  +TÝ_Leá +: + +262 + `G‘_PtX +(* +¡¬t_± +èð + `G‘_LeáX +( +»ù +); + +263 + `G‘_PtY +(* +¡¬t_± +èð + `G‘_TÝY +( +»ù +); + +264 + `G‘_PtX +(* +adr_± +èð + `G‘_RightX +( +»ù +); + +265 + `G‘_PtY +(* +adr_± +èð + `G‘_BÙtomY +( +»ù +); + +267  +TÝ_Right +: + +268 + `G‘_PtX +(* +¡¬t_± +èð + `G‘_RightX +( +»ù +); + +269 + `G‘_PtY +(* +¡¬t_± +èð + `G‘_TÝY +( +»ù +); + +270 + `G‘_PtX +(* +adr_± +èð + `G‘_LeáX +( +»ù +); + +271 + `G‘_PtY +(* +adr_± +èð + `G‘_BÙtomY +( +»ù +); + +273  +BÙtom_Leá +: + +274 + `G‘_PtX +(* +¡¬t_± +èð + `G‘_LeáX +( +»ù +); + +275 + `G‘_PtY +(* +¡¬t_± +èð + `G‘_BÙtomY +( +»ù +); + +276 + `G‘_PtX +(* +adr_± +èð + `G‘_RightX +( +»ù +); + +277 + `G‘_PtY +(* +adr_± +èð + `G‘_TÝY +( +»ù +); + +279  +BÙtom_Right +: + +280 + `G‘_PtX +(* +¡¬t_± +èð + `G‘_RightX +( +»ù +); + +281 + `G‘_PtY +(* +¡¬t_± +èð + `G‘_BÙtomY +( +»ù +); + +282 + `G‘_PtX +(* +adr_± +èð + `G‘_LeáX +( +»ù +); + +283 + `G‘_PtY +(* +adr_± +èð + `G‘_TÝY +( +»ù +); + +287 ià( + `Tžwš_Is_O³n +( +twšp +è=ð +TRUE +){ + +288 + `G¿v™y_In£¹_Edge +( + `G‘_LeáX +( +g»ù +), +Leá +); + +289 + `G¿v™y_In£¹_Edge +( + `G‘_RightX +( +g»ù +), +Right +); + +290 + `G¿v™y_In£¹_Edge +( + `G‘_TÝY +( +g»ù +), +TÝ +); + +291 + `G¿v™y_In£¹_Edge +( + `G‘_BÙtomY +( +g»ù +), +BÙtom +); + +294 ( +TRUE +); + +295 + } +} + +297 +boÞ + + +298 + $Tžwš_Check_C’‹r_O³n +( +wšp +, +adr_± +, +siz• +) + +299 +Tžwšp + +wšp +; + +300 +TWPošt + * +adr_± +; + +301 +Size + * +siz• +; + +303 +Tžwš + * +twšp + = (Tžwš *è +wšp +; + +304 +TWReùªgË + +»ù +, + +305 +g»ù +; + +310 ià( + `Tžwš_Is_O³n +( +twšp +è=ð +TRUE +){ + +311 +g»ù + = + `Tžwš_G‘_ReùªgË +( +twšp +); + +312 + `G¿v™y_D–‘e_Edge +( + `G‘_LeáX +( +g»ù +), +Leá +); + +313 + `G¿v™y_D–‘e_Edge +( + `G‘_RightX +( +g»ù +), +Right +); + +314 + `G¿v™y_D–‘e_Edge +( + `G‘_TÝY +( +g»ù +), +TÝ +); + +315 + `G¿v™y_D–‘e_Edge +( + `G‘_BÙtomY +( +g»ù +), +BÙtom +); + +318 * +siz• + = + `Tžwš_G‘_Size +( +twšp +); + +319 (è + `TrŸl_S©isf›d +( +twšp +, +siz• +); + +320 + `MAKE_RECTANGLE +(* +adr_± +, * +siz• +, +»ù +); + +322 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_LEFT_EDGE +è=ð +TRUE +){ + +323 + `G‘_LeáX +( +»ù +èðG‘_LeáX( + `Tžwš_G‘_ReùªgË +( +twšp +)); + +324 + `G‘_RightX +( +»ù +èð + `G‘_LeáX +Ôeùè+ ( + `G‘_Width +(* +siz• +) - 1); + +326 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_RIGHT_EDGE +è=ð +TRUE +){ + +327 + `G‘_RightX +( +»ù +èðG‘_RightX( + `Tžwš_G‘_ReùªgË +( +twšp +)); + +328 + `G‘_LeáX +( +»ù +èð + `G‘_RightX +Ôeùè- ( + `G‘_Width +(* +siz• +) - 1); + +331 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_TOP_EDGE +è=ð +TRUE +){ + +332 + `G‘_TÝY +( +»ù +èðG‘_TÝY( + `Tžwš_G‘_ReùªgË +( +twšp +)); + +333 + `G‘_BÙtomY +( +»ù +èð + `G‘_TÝY +Ôeùè+ ( + `G‘_Height +(* +siz• +) - 1); + +335 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_BOTTOM_EDGE +è=ð +TRUE +){ + +336 + `G‘_BÙtomY +( +»ù +èðG‘_BÙtomY( + `Tžwš_G‘_ReùªgË +( +twšp +)); + +337 + `G‘_TÝY +( +»ù +èð + `G‘_BÙtomY +Ôeùè- ( + `G‘_Height +(* +siz• +) - 1); + +343 (è + `TrŸl_PÏû +(& +»ù +, +NoSide +, * +siz• +, *sizep); + +345 + `COMPUTE_CENTER +( +»ù +, * +adr_± +); + +347 ià( + `Tžwš_Is_O³n +( +twšp +è=ð +TRUE +){ + +348 + `G¿v™y_In£¹_Edge +( + `G‘_LeáX +( +g»ù +), +Leá +); + +349 + `G¿v™y_In£¹_Edge +( + `G‘_RightX +( +g»ù +), +Right +); + +350 + `G¿v™y_In£¹_Edge +( + `G‘_TÝY +( +g»ù +), +TÝ +); + +351 + `G¿v™y_In£¹_Edge +( + `G‘_BÙtomY +( +g»ù +), +BÙtom +); + +354 ( +TRUE +); + +355 + } +} + + @twin_resat.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)twin_resat.c 5.3 9/1/88"; + +27  + ~"cÝyright.h +" + +29  + ~"ba£ty³.h +" + +30  + ~"twšD.h +" + +31  + ~"¡©e.h +" + +32  + ~"ŒŸl.h +" + +33  + ~"comm™.h +" + +34  + ~"wš.h +" + +36 +boÞ + + +37 + $Tžwš_Is_S©isf›d +( +wšp +) + +38 +Tžwšp + +wšp +; + +40 +Tžwš + * +twšp + = (Tžwš *) +wšp +; + +41 +Size + +size +; + +43 +size + = + `Tžwš_G‘_Size +( +twšp +); + +44 ( + `TrŸl_S©isf›d +( +twšp +, & +size +)); + +45 + } +} + +47 +boÞ + + $Tžwš_S©isf›d_By_Size +( +wšp +, +size +) + +48 +Tžwšp + +wšp +; + +49 +Size + +size +; + +51 +Tžwš + * +twšp + = (Tžwš *) +wšp +; + +53 ( + `TrŸl_S©isf›d +( +twšp +, & +size +)); + +54 + } +} + + @twin_rsz.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)twin_rsz.c 5.3 9/1/88"; + +27  + ~"cÝyright.h +" + +29  + ~"ba£ty³.h +" + +30  + ~"twšD.h +" + +31  + ~"¡©e.h +" + +32  + ~"ŒŸl.h +" + +33  + ~"comm™.h +" + +34  + ~"wš.h +" + +35  + ~"g¿v™y.h +" + +37 +boÞ + +Tžwš_O³n_Be¡_In_A»a +(); + +38 +TWReùªgË + +desktÝ_»ù +; + +40 +boÞ + + +41 + $Tžwš_Check_Resize +( +wšp +, +adr_± +, +dœ +, +mš_size +, +max_size +) + +42 +Tžwšp + +wšp +; + +43 +TWPošt + * +adr_± +; + +44 +Side + +dœ +; + +45 +Size + +mš_size +, + +46 +max_size +; + +48 +Tžwš + * +twšp + = (Tžwš *) +wšp +; + +49 +TWReùªgË + +»ù +, + +50 +g»ù +; + +55 ià( + `Is_Odd_Numb” +( + `G‘_Width +( +mš_size +)è=ð +TRUE +) + +56 + `G‘_Width +( +mš_size +)++; + +57 ià( + `Is_Odd_Numb” +( + `G‘_Height +( +mš_size +)è=ð +TRUE +) + +58 + `G‘_Height +( +mš_size +)++; + +59 ià( + `Is_Odd_Numb” +( + `G‘_Width +( +max_size +)è=ð +TRUE +) + +60 + `G‘_Width +( +max_size +)++; + +61 ià( + `Is_Odd_Numb” +( + `G‘_Height +( +max_size +)è=ð +TRUE +) + +62 + `G‘_Height +( +max_size +)++; + +67 ià( + `Tžwš_Is_O³n +( +twšp +è=ð +TRUE +){ + +68 +g»ù + = + `Tžwš_G‘_ReùªgË +( +twšp +); + +69 + `G¿v™y_D–‘e_Edge +( + `G‘_LeáX +( +g»ù +), +Leá +); + +70 + `G¿v™y_D–‘e_Edge +( + `G‘_RightX +( +g»ù +), +Right +); + +71 + `G¿v™y_D–‘e_Edge +( + `G‘_TÝY +( +g»ù +), +TÝ +); + +72 + `G¿v™y_D–‘e_Edge +( + `G‘_BÙtomY +( +g»ù +), +BÙtom +); + +75 +»ù + = + `Tžwš_G‘_ReùªgË +( +twšp +); + +77 ià( +dœ + =ð +Leá + || dœ =ð +TÝ_Leá + || dœ =ð +BÙtom_Leá +) + +78 + `G‘_LeáX +( +»ù +èð + `G‘_PtX +(* +adr_± +); + +79 ià( +dœ + =ð +Right + || dœ =ð +TÝ_Right + || dœ =ð +BÙtom_Right +) + +80 + `G‘_RightX +( +»ù +èð + `G‘_PtX +(* +adr_± +); + +81 ià( +dœ + =ð +TÝ + || dœ =ð +TÝ_Leá + || dœ =ð +TÝ_Right +) + +82 + `G‘_TÝY +( +»ù +èð + `G‘_PtY +(* +adr_± +); + +83 ià( +dœ + =ð +BÙtom + || dœ =ð +BÙtom_Leá + || dœ =ð +BÙtom_Right +) + +84 + `G‘_BÙtomY +( +»ù +èð + `G‘_PtY +(* +adr_± +); + +86 (è + `TrŸl_PÏû +(& +»ù +, +dœ +, +mš_size +, +max_size +); + +88 ià( +dœ + =ð +Leá + || dœ =ð +TÝ_Leá + || dœ =ð +BÙtom_Leá +) + +89 + `G‘_PtX +(* +adr_± +èð + `G‘_LeáX +( +»ù +); + +90 ià( +dœ + =ð +Right + || dœ =ð +TÝ_Right + || dœ =ð +BÙtom_Right +) + +91 + `G‘_PtX +(* +adr_± +èð + `G‘_RightX +( +»ù +); + +92 ià( +dœ + =ð +TÝ + || dœ =ð +TÝ_Leá + || dœ =ð +TÝ_Right +) + +93 + `G‘_PtY +(* +adr_± +èð + `G‘_TÝY +( +»ù +); + +94 ià( +dœ + =ð +BÙtom + || dœ =ð +BÙtom_Leá + || dœ =ð +BÙtom_Right +) + +95 + `G‘_PtY +(* +adr_± +èð + `G‘_BÙtomY +( +»ù +); + +98 ià( + `Tžwš_Is_O³n +( +twšp +è=ð +TRUE +){ + +99 + `G¿v™y_In£¹_Edge +( + `G‘_LeáX +( +g»ù +), +Leá +); + +100 + `G¿v™y_In£¹_Edge +( + `G‘_RightX +( +g»ù +), +Right +); + +101 + `G¿v™y_In£¹_Edge +( + `G‘_TÝY +( +g»ù +), +TÝ +); + +102 + `G¿v™y_In£¹_Edge +( + `G‘_BÙtomY +( +g»ù +), +BÙtom +); + +105 ( +TRUE +); + +107 + } +} + +109  + #SWAP_VALUE +( +ÝtiÚ +, +v®ue +, +hÞd +)\ + +111 +hÞd + = + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +ÝtiÚ +);\ + +112 + `Tžwš_S‘_Wšdow_O±iÚ +( +wšp +, +ÝtiÚ +, +v®ue +);\ + +113 } + + ) + +115 +boÞ + + +116 + $Tžwš_Resize +( +wšp +, +siz +, +dœ +) + +117 +Tžwšp + +wšp +; + +118 +Size + +siz +; + +119 +Side + +dœ +; + +121 +Tžwš + * +twšp + = (Tžwš *) +wšp +; + +122 +TWReùªgË + +»ù +, + +123 +desœed_»ù +, + +124 +cu¼’t_»ù +; + +125 +TWPošt + +be¡_± +, + +126 +± +; + +127 +Side + +width_side +, + +128 +height_side +; + +129 +boÞ + +fixed_width +, +fixed_height +, + +130 +Þd_Ëá +, +Þd_right +, +Þd_tÝ +, +Þd_bÙtom +, + +131 +»t_v® +; + +132 +Size + +size +, + +133 +Üg_size +; + +137 ià( + `Is_Odd_Numb” +( + `G‘_Width +( +siz +)è=ð +TRUE +) + +138 + `G‘_Width +( +siz +)--; + +139 ià( + `Is_Odd_Numb” +( + `G‘_Height +( +siz +)è=ð +TRUE +) + +140 + `G‘_Height +( +siz +)--; + +142 +»ù + = + `Tžwš_G‘_ReùªgË +( +twšp +); + +144  +dœ +){ + +145  +Leá +: + +146 + `G‘_LeáX +( +»ù +èð + `G‘_RightX +Ôeùè- ( + `G‘_Width +( +siz +) - 1); + +148  +Right +: + +149 + `G‘_RightX +( +»ù +èð + `G‘_LeáX +Ôeùè+ ( + `G‘_Width +( +siz +) - 1); + +151  +TÝ +: + +152 + `G‘_TÝY +( +»ù +èð + `G‘_BÙtomY +Ôeùè- ( + `G‘_Height +( +siz +) - 1); + +154  +BÙtom +: + +155 + `G‘_BÙtomY +( +»ù +èð + `G‘_TÝY +Ôeùè+ ( + `G‘_Height +( +siz +) - 1); + +157  +TÝ_Leá +: + +158 + `G‘_TÝY +( +»ù +èð + `G‘_BÙtomY +Ôeùè- ( + `G‘_Height +( +siz +) - 1); + +159 + `G‘_LeáX +( +»ù +èð + `G‘_RightX +Ôeùè- ( + `G‘_Width +( +siz +) - 1); + +161  +TÝ_Right +: + +162 + `G‘_TÝY +( +»ù +èð + `G‘_BÙtomY +Ôeùè- ( + `G‘_Height +( +siz +) - 1); + +163 + `G‘_RightX +( +»ù +èð + `G‘_LeáX +Ôeùè+ ( + `G‘_Width +( +siz +) - 1); + +165  +BÙtom_Leá +: + +166 + `G‘_BÙtomY +( +»ù +èð + `G‘_TÝY +Ôeùè+ ( + `G‘_Height +( +siz +) - 1); + +167 + `G‘_LeáX +( +»ù +èð + `G‘_RightX +Ôeùè- ( + `G‘_Width +( +siz +) - 1); + +169  +BÙtom_Right +: + +170 + `G‘_BÙtomY +( +»ù +èð + `G‘_TÝY +Ôeùè+ ( + `G‘_Height +( +siz +) - 1); + +171 + `G‘_RightX +( +»ù +èð + `G‘_LeáX +Ôeùè+ ( + `G‘_Width +( +siz +) - 1); + +174 ( +FALSE +); + +177 +width_side + = +height_side + = +NoSide +; + +180 ià( +dœ + !ð +TÝ + && dœ !ð +BÙtom +){ + +181 +fixed_width + = + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_SIZE +) || + +182 + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_WIDTH +); + +185 ià( + `G‘_LeáX +( +»ù +è< G‘_LeáX( +desktÝ_»ù +)){ + +186 ià( +fixed_width +) + +187 ( +FALSE +); + +189 + `G‘_LeáX +( +»ù +èðG‘_LeáX( +desktÝ_»ù +); + +191 ià( + `G‘_RightX +( +»ù +è> G‘_RightX( +desktÝ_»ù +)){ + +192 ià( +fixed_width +) + +193 ( +FALSE +); + +195 + `G‘_RightX +( +»ù +èðG‘_RightX( +desktÝ_»ù +); + +199 ià( +dœ + =ð +Leá + || dœ =ð +TÝ_Leá + || dœ =ð +BÙtom_Leá +){ + +200 +width_side + = +Leá +; + +202 ià( +dœ + =ð +Right + || dœ =ð +TÝ_Right + || dœ =ð +BÙtom_Right +){ + +203 +width_side + = +Right +; + +209 ià( +fixed_width + =ð +TRUE +){ + +210 + `COMPUTE_SIZE +( +»ù +, +size +); + +211 +Üg_size + = +size +; + +212 ià( + `TrŸl_S©isf›d +( +twšp +, & +size +è=ð +FALSE +) + +213 ià( + `G‘_Width +( +size +è!ðG‘_Width( +Üg_size +)) + +214 ( +FALSE +); + +220 (è + `TrŸl_PÏû +(& +»ù +, +width_side +, + `Tžwš_G‘_Mš +( +twšp +), + +221 + `Tžwš_G‘_Max +( +twšp +)); + +225 ià( + `G‘_LeáX +( +»ù +è< G‘_LeáX( +desktÝ_»ù +) || + +226 + `G‘_RightX +( +»ù +è> G‘_RightX( +desktÝ_»ù +)) + +227 ( +FALSE +); + +229 ià( +width_side + =ð +Leá +) + +230 + `G‘_PtX +( +± +èð + `G‘_LeáX +( +»ù +); + +232 + `G‘_PtX +( +± +èð + `G‘_RightX +( +»ù +); + +237 ià( +dœ + !ð +Leá + && dœ !ð +Right +){ + +238 +fixed_height + = + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_SIZE +) || + +239 + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_HEIGHT +); + +241 ià( + `G‘_TÝY +( +»ù +è< G‘_TÝY( +desktÝ_»ù +)){ + +242 ià( +fixed_height +) + +243 ( +FALSE +); + +245 + `G‘_TÝY +( +»ù +èðG‘_TÝY( +desktÝ_»ù +); + +247 ià( + `G‘_BÙtomY +( +»ù +è> G‘_BÙtomY( +desktÝ_»ù +)){ + +248 ià( +fixed_height +) + +249 ( +FALSE +); + +251 + `G‘_BÙtomY +( +»ù +èðG‘_BÙtomY( +desktÝ_»ù +); + +255 ià( +dœ + =ð +TÝ + || dœ =ð +TÝ_Leá + || dœ =ð +TÝ_Right +){ + +256 +height_side + = +TÝ +; + +258 ià( +dœ + =ð +BÙtom + || dœ =ð +BÙtom_Leá + || dœ =ð +BÙtom_Right +){ + +259 +height_side + = +BÙtom +; + +265 ià( +fixed_height + =ð +TRUE +){ + +266 + `COMPUTE_SIZE +( +»ù +, +size +); + +267 +Üg_size + = +size +; + +268 ià( + `TrŸl_S©isf›d +( +twšp +, & +size +è=ð +FALSE +) + +269 ià( + `G‘_Height +( +size +è!ðG‘_Height( +Üg_size +)) + +270 ( +FALSE +); + +276 (è + `TrŸl_PÏû +(& +»ù +, +height_side +, + `Tžwš_G‘_Mš +( +twšp +), + +277 + `Tžwš_G‘_Max +( +twšp +)); + +281 ià( + `G‘_TÝY +( +»ù +è< G‘_TÝY( +desktÝ_»ù +) || + +282 + `G‘_BÙtomY +( +»ù +è> G‘_BÙtomY( +desktÝ_»ù +)) + +283 ( +FALSE +); + +285 ià( +height_side + =ð +TÝ +) + +286 + `G‘_PtY +( +± +èð + `G‘_TÝY +( +»ù +); + +288 + `G‘_PtY +( +± +èð + `G‘_BÙtomY +( +»ù +); + +292 +desœed_»ù + = +»ù +; + +293 +cu¼’t_»ù + = + `Tžwš_G‘_ReùªgË +( +twšp +); + +294 +be¡_± + = +± +; + +296  +dœ +) { + +297  +Leá +: + +301 ià( +fixed_width + =ð +TRUE +) + +302 +»t_v® + = + `TrŸl_O³n +( +twšp +, +desœed_»ù +, + `S‹_G‘_Time¡amp +()); + +307 (è + `TrŸl_Grow +( +twšp +, +cu¼’t_»ù +, +dœ +, & +be¡_± +, + `S‹_G‘_Time¡amp +()); + +308 + `G‘_LeáX +( +cu¼’t_»ù +èð + `G‘_PtX +( +be¡_± +); + +309 (è + `TrŸl_O³n +( +twšp +, +cu¼’t_»ù +, + `S‹_G‘_Time¡amp +()); + +310 +»t_v® + = +TRUE +; + +313 ià( +»t_v® + =ð +TRUE +) + +314 + `Comm™_O³¿tiÚ +( +twšp +); + +316  +Right +: + +317 ià( +fixed_width + =ð +TRUE +) + +318 +»t_v® + = + `TrŸl_O³n +( +twšp +, +desœed_»ù +, + `S‹_G‘_Time¡amp +()); + +320 (è + `TrŸl_Grow +( +twšp +, +cu¼’t_»ù +, +dœ +, & +be¡_± +, + `S‹_G‘_Time¡amp +()); + +321 + `G‘_RightX +( +cu¼’t_»ù +èð + `G‘_PtX +( +be¡_± +); + +322 (è + `TrŸl_O³n +( +twšp +, +cu¼’t_»ù +, + `S‹_G‘_Time¡amp +()); + +323 +»t_v® + = +TRUE +; + +325 ià( +»t_v® + =ð +TRUE +) + +326 + `Comm™_O³¿tiÚ +( +twšp +); + +328  +TÝ +: + +329 ià( +fixed_height + =ð +TRUE +) + +330 +»t_v® + = + `TrŸl_O³n +( +twšp +, +desœed_»ù +, + `S‹_G‘_Time¡amp +()); + +332 (è + `TrŸl_Grow +( +twšp +, +cu¼’t_»ù +, +dœ +, & +be¡_± +, + `S‹_G‘_Time¡amp +()); + +333 + `G‘_TÝY +( +cu¼’t_»ù +èð + `G‘_PtY +( +be¡_± +); + +334 (è + `TrŸl_O³n +( +twšp +, +cu¼’t_»ù +, + `S‹_G‘_Time¡amp +()); + +335 +»t_v® + = +TRUE +; + +337 ià( +»t_v® + =ð +TRUE +) + +338 + `Comm™_O³¿tiÚ +( +twšp +); + +340  +BÙtom +: + +341 ià( +fixed_height + =ð +TRUE +) + +342 +»t_v® + = + `TrŸl_O³n +( +twšp +, +desœed_»ù +, + `S‹_G‘_Time¡amp +()); + +344 (è + `TrŸl_Grow +( +twšp +, +cu¼’t_»ù +, +dœ +, & +be¡_± +, + `S‹_G‘_Time¡amp +()); + +345 + `G‘_BÙtomY +( +cu¼’t_»ù +èð + `G‘_PtY +( +be¡_± +); + +346 (è + `TrŸl_O³n +( +twšp +, +cu¼’t_»ù +, + `S‹_G‘_Time¡amp +()); + +347 +»t_v® + = +TRUE +; + +349 ià( +»t_v® + =ð +TRUE +) + +350 + `Comm™_O³¿tiÚ +( +twšp +); + +352  +TÝ_Leá +: + +354 ià( +fixed_width + =ð +TRUE + && +fixed_height + == TRUE){ + +355 ià(( +»t_v® + = + `TrŸl_O³n +( +twšp +, +desœed_»ù +, + `S‹_G‘_Time¡amp +())è=ð +TRUE +) + +356 + `Comm™_O³¿tiÚ +( +twšp +); + +360 ià( +fixed_width + =ð +TRUE +){ + +361 + `G‘_LeáX +( +cu¼’t_»ù +èðG‘_LeáX( +desœed_»ù +); + +362 ià(( +»t_v® + = + `TrŸl_O³n +( +twšp +, +cu¼’t_»ù +, + `S‹_G‘_Time¡amp +())è=ð +TRUE +){ + +363 (è + `TrŸl_Grow +( +twšp +, +cu¼’t_»ù +, +TÝ +, & +be¡_± +, + `S‹_G‘_Time¡amp +()); + +364 + `G‘_TÝY +( +cu¼’t_»ù +èð + `G‘_PtY +( +be¡_± +); + +365 (è + `TrŸl_O³n +( +twšp +, +cu¼’t_»ù +, + `S‹_G‘_Time¡amp +()); + +366 + `Comm™_O³¿tiÚ +( +twšp +); + +371 ià( +fixed_height + =ð +TRUE +){ + +372 + `G‘_TÝY +( +cu¼’t_»ù +èðG‘_TÝY( +desœed_»ù +); + +373 ià(( +»t_v® + = + `TrŸl_O³n +( +twšp +, +cu¼’t_»ù +, + `S‹_G‘_Time¡amp +())è=ð +TRUE +){ + +374 (è + `TrŸl_Grow +( +twšp +, +cu¼’t_»ù +, +Leá +, & +be¡_± +, + `S‹_G‘_Time¡amp +()); + +375 + `G‘_LeáX +( +cu¼’t_»ù +èð + `G‘_PtX +( +be¡_± +); + +376 (è + `TrŸl_O³n +( +twšp +, +cu¼’t_»ù +, + `S‹_G‘_Time¡amp +()); + +377 + `Comm™_O³¿tiÚ +( +twšp +); + +383 ià(( +»t_v® + = + `TrŸl_O³n +( +twšp +, +desœed_»ù +, + `S‹_G‘_Time¡amp +())è=ð +TRUE +) + +384 + `Comm™_O³¿tiÚ +( +twšp +); + +386 + `SWAP_VALUE +( +FIXED_LEFT_EDGE +, +FALSE +, +Þd_Ëá +); + +387 + `SWAP_VALUE +( +FIXED_RIGHT_EDGE +, +TRUE +, +Þd_right +); + +388 + `SWAP_VALUE +( +FIXED_TOP_EDGE +, +FALSE +, +Þd_tÝ +); + +389 + `SWAP_VALUE +( +FIXED_BOTTOM_EDGE +, +TRUE +, +Þd_bÙtom +); + +390 + `COMPUTE_SIZE +( +»ù +, +size +); + +391 ià(( +»t_v® + = + `Tžwš_O³n_Be¡_In_A»a +( +wšp +, +desœed_»ù +, +size +)è=ð +TRUE +) + +392 + `Comm™_O³¿tiÚ +( +twšp +); + +393 + `SWAP_VALUE +( +FIXED_LEFT_EDGE +, +Þd_Ëá +, old_left); + +394 + `SWAP_VALUE +( +FIXED_RIGHT_EDGE +, +Þd_right +, old_right); + +395 + `SWAP_VALUE +( +FIXED_TOP_EDGE +, +Þd_tÝ +, old_top); + +396 + `SWAP_VALUE +( +FIXED_BOTTOM_EDGE +, +Þd_bÙtom +, old_bottom); + +400  +TÝ_Right +: + +402 ià( +fixed_width + =ð +TRUE + && +fixed_height + == TRUE){ + +403 ià(( +»t_v® + = + `TrŸl_O³n +( +twšp +, +desœed_»ù +, + `S‹_G‘_Time¡amp +())è=ð +TRUE +) + +404 + `Comm™_O³¿tiÚ +( +twšp +); + +408 ià( +fixed_width + =ð +TRUE +){ + +409 + `G‘_RightX +( +cu¼’t_»ù +èðG‘_RightX( +desœed_»ù +); + +410 ià(( +»t_v® + = + `TrŸl_O³n +( +twšp +, +cu¼’t_»ù +, + `S‹_G‘_Time¡amp +())è=ð +TRUE +){ + +411 (è + `TrŸl_Grow +( +twšp +, +cu¼’t_»ù +, +TÝ +, & +be¡_± +, + `S‹_G‘_Time¡amp +()); + +412 + `G‘_TÝY +( +cu¼’t_»ù +èð + `G‘_PtY +( +be¡_± +); + +413 (è + `TrŸl_O³n +( +twšp +, +cu¼’t_»ù +, + `S‹_G‘_Time¡amp +()); + +414 + `Comm™_O³¿tiÚ +( +twšp +); + +419 ià( +fixed_height + =ð +TRUE +){ + +420 + `G‘_TÝY +( +cu¼’t_»ù +èðG‘_TÝY( +desœed_»ù +); + +421 ià(( +»t_v® + = + `TrŸl_O³n +( +twšp +, +cu¼’t_»ù +, + `S‹_G‘_Time¡amp +())è=ð +TRUE +){ + +422 (è + `TrŸl_Grow +( +twšp +, +cu¼’t_»ù +, +Right +, & +be¡_± +, + `S‹_G‘_Time¡amp +()); + +423 + `G‘_RightX +( +cu¼’t_»ù +èð + `G‘_PtX +( +be¡_± +); + +424 (è + `TrŸl_O³n +( +twšp +, +cu¼’t_»ù +, + `S‹_G‘_Time¡amp +()); + +425 + `Comm™_O³¿tiÚ +( +twšp +); + +431 ià(( +»t_v® + = + `TrŸl_O³n +( +twšp +, +desœed_»ù +, + `S‹_G‘_Time¡amp +())è=ð +TRUE +) + +432 + `Comm™_O³¿tiÚ +( +twšp +); + +434 + `SWAP_VALUE +( +FIXED_LEFT_EDGE +, +TRUE +, +Þd_Ëá +); + +435 + `SWAP_VALUE +( +FIXED_RIGHT_EDGE +, +FALSE +, +Þd_right +); + +436 + `SWAP_VALUE +( +FIXED_TOP_EDGE +, +FALSE +, +Þd_tÝ +); + +437 + `SWAP_VALUE +( +FIXED_BOTTOM_EDGE +, +TRUE +, +Þd_bÙtom +); + +438 + `COMPUTE_SIZE +( +»ù +, +size +); + +439 ià(( +»t_v® + = + `Tžwš_O³n_Be¡_In_A»a +( +wšp +, +desœed_»ù +, +size +)è=ð +TRUE +) + +440 + `Comm™_O³¿tiÚ +( +twšp +); + +441 + `SWAP_VALUE +( +FIXED_LEFT_EDGE +, +Þd_Ëá +, old_left); + +442 + `SWAP_VALUE +( +FIXED_RIGHT_EDGE +, +Þd_right +, old_right); + +443 + `SWAP_VALUE +( +FIXED_TOP_EDGE +, +Þd_tÝ +, old_top); + +444 + `SWAP_VALUE +( +FIXED_BOTTOM_EDGE +, +Þd_bÙtom +, old_bottom); + +448  +BÙtom_Leá +: + +450 ià( +fixed_width + =ð +TRUE + && +fixed_height + == TRUE){ + +451 ià(( +»t_v® + = + `TrŸl_O³n +( +twšp +, +desœed_»ù +, + `S‹_G‘_Time¡amp +())è=ð +TRUE +) + +452 + `Comm™_O³¿tiÚ +( +twšp +); + +456 ià( +fixed_width + =ð +TRUE +){ + +457 + `G‘_LeáX +( +cu¼’t_»ù +èðG‘_LeáX( +desœed_»ù +); + +458 ià(( +»t_v® + = + `TrŸl_O³n +( +twšp +, +cu¼’t_»ù +, + `S‹_G‘_Time¡amp +())è=ð +TRUE +){ + +459 (è + `TrŸl_Grow +( +twšp +, +cu¼’t_»ù +, +BÙtom +, & +be¡_± +, + `S‹_G‘_Time¡amp +()); + +460 + `G‘_BÙtomY +( +cu¼’t_»ù +èð + `G‘_PtY +( +be¡_± +); + +461 (è + `TrŸl_O³n +( +twšp +, +cu¼’t_»ù +, + `S‹_G‘_Time¡amp +()); + +462 + `Comm™_O³¿tiÚ +( +twšp +); + +467 ià( +fixed_height + =ð +TRUE +){ + +468 + `G‘_BÙtomY +( +cu¼’t_»ù +èðG‘_BÙtomY( +desœed_»ù +); + +469 ià(( +»t_v® + = + `TrŸl_O³n +( +twšp +, +cu¼’t_»ù +, + `S‹_G‘_Time¡amp +())è=ð +TRUE +){ + +470 (è + `TrŸl_Grow +( +twšp +, +cu¼’t_»ù +, +Leá +, & +be¡_± +, + `S‹_G‘_Time¡amp +()); + +471 + `G‘_LeáX +( +cu¼’t_»ù +èð + `G‘_PtX +( +be¡_± +); + +472 (è + `TrŸl_O³n +( +twšp +, +cu¼’t_»ù +, + `S‹_G‘_Time¡amp +()); + +473 + `Comm™_O³¿tiÚ +( +twšp +); + +479 ià(( +»t_v® + = + `TrŸl_O³n +( +twšp +, +desœed_»ù +, + `S‹_G‘_Time¡amp +())è=ð +TRUE +) + +480 + `Comm™_O³¿tiÚ +( +twšp +); + +482 + `SWAP_VALUE +( +FIXED_LEFT_EDGE +, +FALSE +, +Þd_Ëá +); + +483 + `SWAP_VALUE +( +FIXED_RIGHT_EDGE +, +TRUE +, +Þd_right +); + +484 + `SWAP_VALUE +( +FIXED_TOP_EDGE +, +TRUE +, +Þd_tÝ +); + +485 + `SWAP_VALUE +( +FIXED_BOTTOM_EDGE +, +FALSE +, +Þd_bÙtom +); + +486 + `COMPUTE_SIZE +( +»ù +, +size +); + +487 ià(( +»t_v® + = + `Tžwš_O³n_Be¡_In_A»a +( +wšp +, +desœed_»ù +, +size +)è=ð +TRUE +) + +488 + `Comm™_O³¿tiÚ +( +twšp +); + +489 + `SWAP_VALUE +( +FIXED_LEFT_EDGE +, +Þd_Ëá +, old_left); + +490 + `SWAP_VALUE +( +FIXED_RIGHT_EDGE +, +Þd_right +, old_right); + +491 + `SWAP_VALUE +( +FIXED_TOP_EDGE +, +Þd_tÝ +, old_top); + +492 + `SWAP_VALUE +( +FIXED_BOTTOM_EDGE +, +Þd_bÙtom +, old_bottom); + +496  +BÙtom_Right +: + +498 ià( +fixed_width + =ð +TRUE + && +fixed_height + == TRUE){ + +499 ià(( +»t_v® + = + `TrŸl_O³n +( +twšp +, +desœed_»ù +, + `S‹_G‘_Time¡amp +())è=ð +TRUE +) + +500 + `Comm™_O³¿tiÚ +( +twšp +); + +504 ià( +fixed_width + =ð +TRUE +){ + +505 + `G‘_RightX +( +cu¼’t_»ù +èðG‘_RightX( +desœed_»ù +); + +506 ià(( +»t_v® + = + `TrŸl_O³n +( +twšp +, +cu¼’t_»ù +, + `S‹_G‘_Time¡amp +())è=ð +TRUE +){ + +507 (è + `TrŸl_Grow +( +twšp +, +cu¼’t_»ù +, +BÙtom +, & +be¡_± +, + `S‹_G‘_Time¡amp +()); + +508 + `G‘_BÙtomY +( +cu¼’t_»ù +èð + `G‘_PtY +( +be¡_± +); + +509 (è + `TrŸl_O³n +( +twšp +, +cu¼’t_»ù +, + `S‹_G‘_Time¡amp +()); + +510 + `Comm™_O³¿tiÚ +( +twšp +); + +515 ià( +fixed_height + =ð +TRUE +){ + +516 + `G‘_BÙtomY +( +cu¼’t_»ù +èðG‘_BÙtomY( +desœed_»ù +); + +517 ià(( +»t_v® + = + `TrŸl_O³n +( +twšp +, +cu¼’t_»ù +, + `S‹_G‘_Time¡amp +())è=ð +TRUE +){ + +518 (è + `TrŸl_Grow +( +twšp +, +cu¼’t_»ù +, +Right +, & +be¡_± +, + `S‹_G‘_Time¡amp +()); + +519 + `G‘_RightX +( +cu¼’t_»ù +èð + `G‘_PtX +( +be¡_± +); + +520 (è + `TrŸl_O³n +( +twšp +, +cu¼’t_»ù +, + `S‹_G‘_Time¡amp +()); + +521 + `Comm™_O³¿tiÚ +( +twšp +); + +527 ià(( +»t_v® + = + `TrŸl_O³n +( +twšp +, +desœed_»ù +, + `S‹_G‘_Time¡amp +())è=ð +TRUE +) + +528 + `Comm™_O³¿tiÚ +( +twšp +); + +530 + `SWAP_VALUE +( +FIXED_LEFT_EDGE +, +TRUE +, +Þd_Ëá +); + +531 + `SWAP_VALUE +( +FIXED_RIGHT_EDGE +, +FALSE +, +Þd_right +); + +532 + `SWAP_VALUE +( +FIXED_TOP_EDGE +, +TRUE +, +Þd_tÝ +); + +533 + `SWAP_VALUE +( +FIXED_BOTTOM_EDGE +, +FALSE +, +Þd_bÙtom +); + +534 + `COMPUTE_SIZE +( +»ù +, +size +); + +535 ià(( +»t_v® + = + `Tžwš_O³n_Be¡_In_A»a +( +wšp +, +desœed_»ù +, +size +)è=ð +TRUE +) + +536 + `Comm™_O³¿tiÚ +( +twšp +); + +537 + `SWAP_VALUE +( +FIXED_LEFT_EDGE +, +Þd_Ëá +, old_left); + +538 + `SWAP_VALUE +( +FIXED_RIGHT_EDGE +, +Þd_right +, old_right); + +539 + `SWAP_VALUE +( +FIXED_TOP_EDGE +, +Þd_tÝ +, old_top); + +540 + `SWAP_VALUE +( +FIXED_BOTTOM_EDGE +, +Þd_bÙtom +, old_bottom); + +546 ( +»t_v® +); + +547 + } +} + + @twin_set.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)twin_set.c 5.3 9/1/88"; + +27  + ~"cÝyright.h +" + +29  + ~"ba£ty³.h +" + +30  + ~"twšD.h +" + +31  + ~"¡©e.h +" + +32  + ~"ŒŸl.h +" + +34 +boÞ + +Tžwš_O³n +(); + +36 +boÞ + + +37 + $Tžwš_S‘ +( +wšp +, +loÿtiÚ +, +size +) + +38 +Tžwšp + +wšp +; + +39 +TWPošt + +loÿtiÚ +; + +40 +Size + +size +; + +42 +Tžwš + * +twšp + = (Tžwš *) +wšp +; + +43 +TWReùªgË + +»ù +, + +44 +cu¼’t_»ù +; + +46 ià( + `Is_Odd_Numb” +( + `G‘_Width +( +size +)è=ð +TRUE +) + +47 + `G‘_Width +( +size +)--; + +48 ià( + `Is_Odd_Numb” +( + `G‘_Height +( +size +)è=ð +TRUE +) + +49 + `G‘_Height +( +size +)--; + +51 ià( + `Tžwš_Is_O³n +( +twšp +è=ð +TRUE +) + +52 ( + `Tžwš_O³n +( +wšp +, +loÿtiÚ +, +size +)); + +54 + `S‹_S¹_O³¿tiÚ +(); + +57 ià( + `TrŸl_S©isf›d +( +twšp +, & +size +è=ð +FALSE +) + +58 ( +FALSE +); + +60 + `MAKE_RECTANGLE +( +loÿtiÚ +, +size +, +»ù +); + +61 +cu¼’t_»ù + = + `Tžwš_G‘_ReùªgË +( +twšp +); + +66 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_LEFT_EDGE +è=ð +TRUE +){ + +67 + `G‘_LeáX +( +»ù +èðG‘_LeáX( +cu¼’t_»ù +); + +68 + `G‘_RightX +( +»ù +èð + `G‘_LeáX +Ôeùè+ ( + `G‘_Width +( +size +) - 1); + +70 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_RIGHT_EDGE +è=ð +TRUE +){ + +71 + `G‘_RightX +( +»ù +èðG‘_RightX( +cu¼’t_»ù +); + +72 + `G‘_LeáX +( +»ù +èð + `G‘_RightX +Ôeùè- ( + `G‘_Width +( +size +) - 1); + +75 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_TOP_EDGE +è=ð +TRUE +) { + +76 + `G‘_TÝY +( +»ù +èðG‘_TÝY( +cu¼’t_»ù +); + +77 + `G‘_BÙtomY +( +»ù +èð + `G‘_TÝY +Ôeùè+ ( + `G‘_Height +( +size +) - 1); + +79 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_BOTTOM_EDGE +è=ð +TRUE +) { + +80 + `G‘_BÙtomY +( +»ù +èðG‘_BÙtomY( +cu¼’t_»ù +); + +81 + `G‘_TÝY +( +»ù +èð + `G‘_BÙtomY +Ôeùè- ( + `G‘_Height +( +size +) - 1); + +84 + `COMPUTE_CENTER +( +»ù +, + `Tžwš_G‘_C’‹r +( +wšp +)); + +85 + `Tžwš_G‘_Size +( +wšp +èð +size +; + +86 + `Tžwš_G‘_ReùªgË +( +wšp +èð +»ù +; + +87 ( +TRUE +); + +89 + } +} + +91 +boÞ + + +92 + $Tžwš_S‘_Size +( +wšp +, +size +) + +93 +Tžwšp + +wšp +; + +94 +Size + +size +; + +96 +Tžwš + * +twšp + = (Tžwš *) +wšp +; + +97 +TWReùªgË + +»ù +, + +98 +cu¼’t_»ù +, + +99 +¬eù +; + +100 +TWPošt + +loÿtiÚ +; + +102 ià( + `Is_Odd_Numb” +( + `G‘_Width +( +size +)è=ð +TRUE +) Get_Width(size)--; + +103 ià( + `Is_Odd_Numb” +( + `G‘_Height +( +size +)è=ð +TRUE +) Get_Height(size)--; + +105 ià( + `TrŸl_S©isf›d +( +twšp +, & +size +è=ð +FALSE +) + +106 ( +FALSE +); + +108 +cu¼’t_»ù + = + `Tžwš_G‘_ReùªgË +( +twšp +); + +109 +loÿtiÚ + = + `Tžwš_G‘_C’‹r +( +twšp +); + +111 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_LEFT_EDGE +è=ð +TRUE +){ + +112 + `G‘_LeáX +( +»ù +èðG‘_LeáX( +cu¼’t_»ù +); + +113 + `G‘_RightX +( +»ù +èð + `G‘_LeáX +Ôeùè+ ( + `G‘_Width +( +size +) - 1); + +115 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_RIGHT_EDGE +è=ð +TRUE +){ + +116 + `G‘_RightX +( +»ù +èðG‘_RightX( +cu¼’t_»ù +); + +117 + `G‘_LeáX +( +»ù +èð + `G‘_RightX +Ôeùè- ( + `G‘_Width +( +size +) - 1); + +120 + `MAKE_RECTANGLE +( +loÿtiÚ +, +size +, +¬eù +); + +121 + `G‘_LeáX +( +»ù +èðG‘_LeáX( +¬eù +); + +122 + `G‘_RightX +( +»ù +èðG‘_RightX( +¬eù +); + +125 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_RIGHT_EDGE +è=ð +TRUE +){ + +126 + `G‘_TÝY +( +»ù +èðG‘_TÝY( +cu¼’t_»ù +); + +127 + `G‘_BÙtomY +( +»ù +èð + `G‘_TÝY +Ôeùè+ ( + `G‘_Height +( +size +) - 1); + +129 ià( + `Tžwš_G‘_Wšdow_O±iÚ +( +twšp +, +FIXED_BOTTOM_EDGE +è=ð +TRUE +){ + +130 + `G‘_BÙtomY +( +»ù +èðG‘_BÙtomY( +cu¼’t_»ù +); + +131 + `G‘_TÝY +( +»ù +èð + `G‘_BÙtomY +Ôeùè- ( + `G‘_Height +( +size +) - 1); + +134 + `MAKE_RECTANGLE +( +loÿtiÚ +, +size +, +¬eù +); + +135 + `G‘_TÝY +( +»ù +èðG‘_TÝY( +¬eù +); + +136 + `G‘_BÙtomY +( +»ù +èðG‘_BÙtomY( +¬eù +); + +139 + `COMPUTE_CENTER +( +»ù +, +loÿtiÚ +); + +141 ( + `Tžwš_S‘ +( +wšp +, +loÿtiÚ +, +size +)); + +142 + } +} + + @twin_slide.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)twin_slide.c 5.3 9/1/88"; + +27  + ~"cÝyright.h +" + +41  + ~"ba£ty³.h +" + +42  + ~"twšD.h +" + +43  + ~"twš.h +" + +44  + ~"ŒŸl.h +" + +46  + #SPLIT_RECT +( +r +èr. +Ëá_x +,r. +tÝ_y +,r. +right_x +,r. +bÙtom_y + + + ) + +48  + #ASSERT +( +a +, +m +) \ + +50 ià(!( +a +)) \ + +52 + `´štf +("YOW! % \n", +m +);\ + +54 } + + ) + +56  + #Is_XY_In_ReùªgË +( +»ù +, +x +, +y +) \ + +57 (( +x + <ð + `G‘_RightX +( +»ù +)è&& (x >ð + `G‘_LeáX +(rect)) && \ + +58 ( +y + <ð + `G‘_BÙtomY +( +»ù +)è&& (y >ð + `G‘_TÝY +Ôeù))) + + ) + +60  + #Is_ReùªgË_In_ReùªgË +( +»ù1 +, +»ù2 +) \ + +61 ( + `Is_XY_In_ReùªgË +( +»ù2 +, + `G‘_LeáX +( +»ù1 +), + `G‘_TÝY +(rect1)) && \ + +62 + `Is_XY_In_ReùªgË +( +»ù2 +, + `G‘_LeáX +( +»ù1 +), + `G‘_BÙtomY +(rect1)) && \ + +63 + `Is_XY_In_ReùªgË +( +»ù2 +, + `G‘_RightX +( +»ù1 +), + `G‘_TÝY +(rect1)) && \ + +64 + `Is_XY_In_ReùªgË +( +»ù2 +, + `G‘_RightX +( +»ù1 +), + `G‘_BÙtomY +Ôeù1))) + + ) + +66 +boÞ + +Tžwš_Slide_F¬the¡_In_A»a +(); + +101 +boÞ + + $Tžwš_Slide_F¬the¡ +( +wšp +, +± +) + +102 +Tžwš + * +wšp +; + +103 +TWPošt + +± +; + +105 +TWReùªgË + +DesktÝ +; + +107 +DesktÝ + = + `Tžwš_G‘_DesktÝ_ReùªgË +(); + +108  + `Tžwš_Slide_F¬the¡_In_A»a +( +wšp +, +DesktÝ +, +± +); + +109 + } +} + +112 +boÞ + + $Tžwš_Slide_F¬the¡_In_A»a +( +wšp +, +»ù +, +± +) + +113 +Tžwš + * +wšp +; + +114 +TWReùªgË + +»ù +; + +115 +TWPošt + +± +; + +134 +TWPošt + +cÜÃr +, +WšdowC’‹r +; + +138 + `COMPUTE_CENTER +( + `Tžwš_G‘_ReùªgË +( +wšp +), +WšdowC’‹r +); + +139 + `G‘_PtX +( +cÜÃr +èð(G‘_PtX( +WšdowC’‹r +è< G‘_PtX( +± +))? + +140 + `G‘_LeáX +( +»ù +è: + `G‘_RightX +(rect); + +141 + `G‘_PtY +( +cÜÃr +èð(G‘_PtY( +WšdowC’‹r +è< G‘_PtY( +± +))? + +142 + `G‘_TÝY +( +»ù +è: + `G‘_BÙtomY +(rect); + +143 ià( + `ABS +( + `G‘_PtY +( +WšdowC’‹r +è- G‘_PtY( +± +)) > + +144 + `ABS +( + `G‘_PtX +( +WšdowC’‹r +è- G‘_PtX( +± +))) + +145 + `Tžwš_Slide_V”t_N—r_In_A»a +( +wšp +, +»ù +, +cÜÃr +); + +146  + `Tžwš_Slide_N—»¡_In_A»a +( +wšp +, +»ù +, +cÜÃr +); + +147 + } +} + +152 +boÞ + + +153 + $Tžwš_Slide_N—»¡ +( +wšp +, +± +) + +154 +Tžwš + * +wšp +; + +155 +TWPošt + +± +; + +157 +TWReùªgË + +DesktÝ +; + +159 +DesktÝ + = + `Tžwš_G‘_DesktÝ_ReùªgË +(); + +160  + `Tžwš_Slide_N—»¡_In_A»a +( +wšp +, +DesktÝ +, +± +); + +161 + } +} + +163 +boÞ + + +164 + $Tžwš_Slide_N—»¡_In_A»a +( +wšp +, +»ù +, +± +) + +165 +Tžwš + * +wšp +; + +166 +TWReùªgË + +»ù +; + +167 +TWPošt + +± +; + +169 +TWReùªgË + +Œy +, +check_»ù +; + +170 +TWPošt + +úŒ +, +¦ide_to_± +, +Ý’_úŒ +; + +171 +Size + +sz +; + +173 +sz + = + `Tžwš_G‘_Size +( +wšp +); + +179 + `MAKE_RECTANGLE +( +± +, +sz +, +check_»ù +); + +180 ià(! + `Is_ReùªgË_In_ReùªgË +( +check_»ù +, +»ù +)) + +182 ià( + `G‘_LeáX +( +check_»ù +è< G‘_LeáX( +»ù +)) + +184 + `G‘_LeáX +( +check_»ù +èðG‘_LeáX( +»ù +); + +185 + `G‘_RightX +( +check_»ù +) = + +186 + `G‘_LeáX +( +check_»ù +è+ ( + `G‘_Width +( +sz +) - 1); + +188 ià( + `G‘_RightX +( +check_»ù +è> G‘_RightX( +»ù +)) + +190 + `G‘_RightX +( +check_»ù +èðG‘_RightX( +»ù +); + +191 + `G‘_LeáX +( +check_»ù +) = + +192 + `G‘_RightX +( +check_»ù +è- ( + `G‘_Width +( +sz +) - 1); + +194 ià( + `G‘_TÝY +( +check_»ù +è< G‘_TÝY( +»ù +)) + +196 + `G‘_TÝY +( +check_»ù +èðG‘_TÝY( +»ù +); + +197 + `G‘_BÙtomY +( +check_»ù +) = + +198 + `G‘_TÝY +( +check_»ù +è+ ( + `G‘_Height +( +sz +) - 1); + +200 ià( + `G‘_BÙtomY +( +check_»ù +è> G‘_BÙtomY( +»ù +)) + +202 + `G‘_BÙtomY +( +check_»ù +èðG‘_BÙtomY( +»ù +); + +203 + `G‘_TÝY +( +check_»ù +) = + +204 + `G‘_BÙtomY +( +check_»ù +è- ( + `G‘_Height +( +sz +) - 1); + +206 + `ASSERT +(!(( + `G‘_LeáX +( +check_»ù +è< G‘_LeáX( +»ù +)) && + +207 ( + `G‘_RightX +( +check_»ù +è> G‘_RightX( +»ù +))), + +209 + `ASSERT +(!(( + `G‘_TÝY +( +check_»ù +è< G‘_TÝY( +»ù +)) && + +210 ( + `G‘_BÙtomY +( +check_»ù +è> G‘_BÙtomY( +»ù +))), + +212 + `COMPUTE_CENTER +( +check_»ù +, +¦ide_to_± +); + +215 +¦ide_to_± + = +± +; + +216 +Œy + = + `Tžwš_G‘_ReùªgË +( +wšp +); + +217 +úŒ + = + `Tžwš_G‘_C’‹r +( +wšp +); + +219 +Ý’_úŒ + = + `TrŸl_Slide_N—»¡_In_A»a +( +Œy +, +»ù +, +úŒ +, +¦ide_to_± +, +sz +); + +220  + `Tžwš_O³n +(( +Tžwšp +) +wšp +, +Ý’_úŒ +, + `Tžwš_G‘_Size +(winp)); + +221 + } +} + +223 +boÞ + + +224 + $Tžwš_Slide_HÜiz_N—r_In_A»a +( +wšp +, +»ù +, +± +) + +225 +Tžwš + * +wšp +; + +226 +TWReùªgË + +»ù +; + +227 +TWPošt + +± +; + +229 +TWReùªgË + +Œy +, +check_»ù +; + +230 +TWPošt + +úŒ +, +¦ide_to_± +, +Ý’_úŒ +; + +231 +Size + +sz +; + +233 +sz + = + `Tžwš_G‘_Size +( +wšp +); + +239 + `MAKE_RECTANGLE +( +± +, +sz +, +check_»ù +); + +240 ià(! + `Is_ReùªgË_In_ReùªgË +( +check_»ù +, +»ù +)) + +242 ià( + `G‘_LeáX +( +check_»ù +è< G‘_LeáX( +»ù +)) + +244 + `G‘_LeáX +( +check_»ù +èðG‘_LeáX( +»ù +); + +245 + `G‘_RightX +( +check_»ù +) = + +246 + `G‘_LeáX +( +check_»ù +è+ ( + `G‘_Width +( +sz +) - 1); + +248 ià( + `G‘_RightX +( +check_»ù +è> G‘_RightX( +»ù +)) + +250 + `G‘_RightX +( +check_»ù +èðG‘_RightX( +»ù +); + +251 + `G‘_LeáX +( +check_»ù +) = + +252 + `G‘_RightX +( +check_»ù +è- ( + `G‘_Width +( +sz +) - 1); + +254 + `ASSERT +(!(( + `G‘_LeáX +( +check_»ù +è< G‘_LeáX( +»ù +)) && + +255 ( + `G‘_RightX +( +check_»ù +è> G‘_RightX( +»ù +))), + +257 + `COMPUTE_CENTER +( +check_»ù +, +¦ide_to_± +); + +260 +¦ide_to_± + = +± +; + +261 +Œy + = + `Tžwš_G‘_ReùªgË +( +wšp +); + +262 +úŒ + = + `Tžwš_G‘_C’‹r +( +wšp +); + +264 +Ý’_úŒ + = + +265 + `TrŸl_Slide_N—»¡_HÜizÚl +( +Œy +, +»ù +, +úŒ +, +¦ide_to_± +, +sz +); + +266  + `Tžwš_O³n +(( +Tžwšp +) +wšp +, +Ý’_úŒ +, + `Tžwš_G‘_Size +(winp)); + +267 + } +} + +268 +boÞ + + +269 + $Tžwš_Slide_V”t_N—r_In_A»a +( +wšp +, +»ù +, +± +) + +270 +Tžwš + * +wšp +; + +271 +TWReùªgË + +»ù +; + +272 +TWPošt + +± +; + +274 +TWReùªgË + +Œy +, +check_»ù +; + +275 +TWPošt + +úŒ +, +¦ide_to_± +, +Ý’_úŒ +; + +276 +Size + +sz +; + +278 +sz + = + `Tžwš_G‘_Size +( +wšp +); + +284 + `MAKE_RECTANGLE +( +± +, +sz +, +check_»ù +); + +285 ià(! + `Is_ReùªgË_In_ReùªgË +( +check_»ù +, +»ù +)) + +287 ià( + `G‘_TÝY +( +check_»ù +è< G‘_TÝY( +»ù +)) + +289 + `G‘_TÝY +( +check_»ù +èðG‘_TÝY( +»ù +); + +290 + `G‘_BÙtomY +( +check_»ù +) = + +291 + `G‘_TÝY +( +check_»ù +è+ ( + `G‘_Height +( +sz +) - 1); + +293 ià( + `G‘_BÙtomY +( +check_»ù +è> G‘_BÙtomY( +»ù +)) + +295 + `G‘_BÙtomY +( +check_»ù +èðG‘_BÙtomY( +»ù +); + +296 + `G‘_TÝY +( +check_»ù +) = + +297 + `G‘_BÙtomY +( +check_»ù +è- ( + `G‘_Height +( +sz +) - 1); + +299 + `ASSERT +(!(( + `G‘_TÝY +( +check_»ù +è< G‘_TÝY( +»ù +)) && + +300 ( + `G‘_BÙtomY +( +check_»ù +è> G‘_BÙtomY( +»ù +))), + +302 + `COMPUTE_CENTER +( +check_»ù +, +¦ide_to_± +); + +305 +¦ide_to_± + = +± +; + +306 +Œy + = + `Tžwš_G‘_ReùªgË +( +wšp +); + +307 +úŒ + = + `Tžwš_G‘_C’‹r +( +wšp +); + +309 +Ý’_úŒ + = + `TrŸl_Slide_N—»¡_V”tiÿl +( +Œy +, +»ù +, +úŒ +, +¦ide_to_± +, +sz +); + +310  + `Tžwš_O³n +(( +Tžwšp +) +wšp +, +Ý’_úŒ +, + `Tžwš_G‘_Size +(winp)); + +311 + } +} + + @twin_thrd.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)twin_thrd.c 5.3 9/1/88"; + +27  + ~"cÝyright.h +" + +29  + ~"ba£ty³.h +" + +30  + ~"twšD.h +" + +32  + ~"¡©e.h +" + +36  + #Di¡ +( +±1 +, +±2 +) \ + +37 ÐÐ(( +±1 +). +x + - ( +±2 +).x)*((pt1).x - (pt2).x) ) + \ + +38 Ð(( +±1 +). +y + - ( +±2 +).y)*(Õt1).y - (±2).yèè) + + ) + +42 +Tžwšp + + $Tžwš_Th»ad_N—»¡ +Ð +± + ) + +43 +TWPošt + +± +; + +45 +Tžwš + * +h—d +, * +wšp +, * +´ev +, * +cur +; + +46 +WšpHªdË + +hªdË +; + +47  +di¡ +; + +49 +h—d + = +WINP_NULL +; + +51 +hªdË + = + `S‹_G’_O³n_Wšdows +(); + +52  ( +wšp + = + `S‹_CÛrû +( +hªdË +)è!ð +WINP_NULL + ) + +54 +di¡ + = + `Di¡ +Ð +± +, +wšp +-> +ûÁ” + ); + +56 +´ev + = +WINP_NULL +; + +57 +cur + = +h—d +; + +58  ( +cur + !ð +WINP_NULL + ) && + +59 Ð +di¡ + > + `Di¡ +Ð +± +, +cur +-> +ûÁ” + ) ) ) + +61 +´ev + = +cur +; + +62 +cur + = ( +Tžwš + *) + `Tžwš_G‘_D©a +(cur); + +65 + `Tžwš_Put_D©a +Ð +wšp +, +cur + ); + +66 iàÐ +´ev + =ð +WINP_NULL + ) + +67 +h—d + = +wšp +; + +69 + `Tžwš_Put_D©a +Ð +´ev +, +wšp + ); + +71 + `S‹_Next_Wšdow +(& +hªdË +); + +73  ( +Tžwšp +) +h—d +; + +75 + } +} + +79 +Tžwšp + + $Tžwš_Th»ad_V”Žy_N—»¡ +Ð +± + ) + +80 +TWPošt + +± +; + +82 +Tžwš + * +h—d +, * +wšp +, * +´ev +, * +cur +; + +83 +WšpHªdË + +hªdË +; + +84  +di¡ +; + +86 +h—d + = +WINP_NULL +; + +88 +hªdË + = + `S‹_G’_O³n_Wšdows +(); + +89  ( +wšp + = + `S‹_CÛrû +( +hªdË +)è!ð +WINP_NULL + ) + +91 +di¡ + = + `ABS +Ð +± +. +y + - +wšp +-> +ûÁ” +.y ); + +93 +´ev + = +WINP_NULL +; + +94 +cur + = +h—d +; + +95  ( +cur + !ð +WINP_NULL + ) && + +96 Ð +di¡ + > + `ABS +Ð +± +. +y + - +cur +-> +ûÁ” +.y ) ) ) + +98 +´ev + = +cur +; + +99 +cur + = ( +Tžwš + *) + `Tžwš_G‘_D©a +(cur); + +102 + `Tžwš_Put_D©a +Ð +wšp +, +cur + ); + +103 iàÐ +´ev + =ð +WINP_NULL + ) + +104 +h—d + = +wšp +; + +106 + `Tžwš_Put_D©a +Ð +´ev +, +wšp + ); + +108 + `S‹_Next_Wšdow +(& +hªdË +); + +110  ( +Tžwšp +) +h—d +; + +112 + } +} + +116 +Tžwšp + + $Tžwš_Th»ad_HÜizly_N—»¡ +Ð +± + ) + +117 +TWPošt + +± +; + +119 +Tžwš + * +h—d +, * +wšp +, * +´ev +, * +cur +; + +120 +WšpHªdË + +hªdË +; + +121  +di¡ +; + +123 +h—d + = +WINP_NULL +; + +125 +hªdË + = + `S‹_G’_O³n_Wšdows +(); + +126  ( +wšp + = + `S‹_CÛrû +( +hªdË +)è!ð +WINP_NULL + ) + +128 +di¡ + = + `ABS +Ð +± +. +x + - +wšp +-> +ûÁ” +.x ); + +130 +´ev + = +WINP_NULL +; + +131 +cur + = +h—d +; + +132  ( +cur + !ð +WINP_NULL + ) && + +133 Ð +di¡ + > + `ABS +Ð +± +. +x + - +cur +-> +ûÁ” +.x ) ) ) + +135 +´ev + = +cur +; + +136 +cur + = ( +Tžwš + *) + `Tžwš_G‘_D©a +(cur); + +139 + `Tžwš_Put_D©a +Ð +wšp +, +cur + ); + +140 iàÐ +´ev + =ð +WINP_NULL + ) + +141 +h—d + = +wšp +; + +143 + `Tžwš_Put_D©a +Ð +´ev +, +wšp + ); + +145 + `S‹_Next_Wšdow +(& +hªdË +); + +147  ( +Tžwšp +) +h—d +; + +149 + } +} + +153 +Tžwšp + + $Tžwš_Th»ad_F¬the¡ +Ð +± + ) + +154 +TWPošt + +± +; + +156 +Tžwš + * +h—d +, * +wšp +, * +´ev +, * +cur +; + +157 +WšpHªdË + +hªdË +; + +158  +di¡ +; + +160 +h—d + = +WINP_NULL +; + +162 +hªdË + = + `S‹_G’_O³n_Wšdows +(); + +163  ( +wšp + = + `S‹_CÛrû +( +hªdË +)è!ð +WINP_NULL + ) + +165 +di¡ + = + `Di¡ +Ð +± +, +wšp +-> +ûÁ” + ); + +167 +´ev + = +WINP_NULL +; + +168 +cur + = +h—d +; + +169  ( +cur + !ð +WINP_NULL + ) && + +170 Ð +di¡ + < + `Di¡ +Ð +± +, +cur +-> +ûÁ” + ) ) ) + +172 +´ev + = +cur +; + +173 +cur + = ( +Tžwš + *) + `Tžwš_G‘_D©a +(cur); + +176 + `Tžwš_Put_D©a +Ð +wšp +, +cur + ); + +177 iàÐ +´ev + =ð +WINP_NULL + ) + +178 +h—d + = +wšp +; + +180 + `Tžwš_Put_D©a +Ð +´ev +, +wšp + ); + +182 + `S‹_Next_Wšdow +(& +hªdË +); + +184  ( +Tžwšp +) +h—d +; + +186 + } +} + +190 +Tžwšp + + $Tžwš_Th»ad_V”Žy_F¬the¡ +Ð +± + ) + +191 +TWPošt + +± +; + +193 +Tžwš + * +h—d +, * +wšp +, * +´ev +, * +cur +; + +194 +WšpHªdË + +hªdË +; + +195  +di¡ +; + +197 +h—d + = +WINP_NULL +; + +199 +hªdË + = + `S‹_G’_O³n_Wšdows +(); + +200  ( +wšp + = + `S‹_CÛrû +( +hªdË +)è!ð +WINP_NULL + ) + +202 +di¡ + = + `ABS +Ð +± +. +y + - +wšp +-> +ûÁ” +.y ); + +204 +´ev + = +WINP_NULL +; + +205 +cur + = +h—d +; + +206  ( +cur + !ð +WINP_NULL + ) && + +207 Ð +di¡ + < + `ABS +Ð +± +. +y + - +cur +-> +ûÁ” +.y ) ) ) + +209 +´ev + = +cur +; + +210 +cur + = ( +Tžwš + *) + `Tžwš_G‘_D©a +(cur); + +213 + `Tžwš_Put_D©a +Ð +wšp +, +cur + ); + +214 iàÐ +´ev + =ð +WINP_NULL + ) + +215 +h—d + = +wšp +; + +217 + `Tžwš_Put_D©a +Ð +´ev +, +wšp + ); + +219 + `S‹_Next_Wšdow +(& +hªdË +); + +221  ( +Tžwšp +) +h—d +; + +223 + } +} + +227 +Tžwšp + + $Tžwš_Th»ad_HÜizly_F¬the¡ +Ð +± + ) + +228 +TWPošt + +± +; + +230 +Tžwš + * +h—d +, * +wšp +, * +´ev +, * +cur +; + +231 +WšpHªdË + +hªdË +; + +232  +di¡ +; + +234 +h—d + = +WINP_NULL +; + +236 +hªdË + = + `S‹_G’_O³n_Wšdows +(); + +237  ( +wšp + = + `S‹_CÛrû +( +hªdË +)è!ð +WINP_NULL + ) + +239 +di¡ + = + `ABS +Ð +± +. +x + - +wšp +-> +ûÁ” +.x ); + +241 +´ev + = +WINP_NULL +; + +242 +cur + = +h—d +; + +243  ( +cur + !ð +WINP_NULL + ) && + +244 Ð +di¡ + < + `ABS +Ð +± +. +x + - +cur +-> +ûÁ” +.x ) ) ) + +246 +´ev + = +cur +; + +247 +cur + = ( +Tžwš + *) + `Tžwš_G‘_D©a +(cur); + +250 + `Tžwš_Put_D©a +Ð +wšp +, +cur + ); + +251 iàÐ +´ev + =ð +WINP_NULL + ) + +252 +h—d + = +wšp +; + +254 + `Tžwš_Put_D©a +Ð +´ev +, +wšp + ); + +256 + `S‹_Next_Wšdow +(& +hªdË +); + +258  ( +Tžwšp +) +h—d +; + +260 + } +} + +264 +Tžwšp + + $Tžwš_Th»ad_N—»¡_Pos™iÚ +() + +266 +Tžwš + * +h—d +, * +wšp +, * +´ev +, * +cur +; + +267 +WšpHªdË + +hªdË +; + +268  +di¡ +; + +270 +h—d + = +WINP_NULL +; + +272 +hªdË + = + `S‹_G’_O³n_Wšdows +(); + +273  ( +wšp + = + `S‹_CÛrû +( +hªdË +)è!ð +WINP_NULL + ) + +275 +di¡ + = + `Di¡ +Ð +wšp +-> +pos™iÚ +, wšp-> +ûÁ” + ); + +277 +´ev + = +WINP_NULL +; + +278 +cur + = +h—d +; + +279  ( +cur + !ð +WINP_NULL + ) && + +280 Ð +di¡ + > + `Di¡ +Ð +cur +-> +pos™iÚ +, cur-> +ûÁ” + ) ) ) + +282 +´ev + = +cur +; + +283 +cur + = ( +Tžwš + *) + `Tžwš_G‘_D©a +(cur); + +286 + `Tžwš_Put_D©a +Ð +wšp +, +cur + ); + +287 iàÐ +´ev + =ð +WINP_NULL + ) + +288 +h—d + = +wšp +; + +290 + `Tžwš_Put_D©a +Ð +´ev +, +wšp + ); + +292 + `S‹_Next_Wšdow +(& +hªdË +); + +294  ( +Tžwšp +) +h—d +; + +296 + } +} + +300 +Tžwšp + + $Tžwš_Rev”£_Th»ad +Ð +h—d + ) + +301 +Tžwšp + +h—d +; + +303 +Tžwš + * +´ev +, * +cur +, * +Ãxt +; + +305 +´ev + = +WINP_NULL +; + +306 +cur + = ( +Tžwš + *) +h—d +; + +307  +cur + !ð +WINP_NULL + ) + +309 +Ãxt + = ( +Tžwš + *) + `Tžwš_G‘_D©a +Ð +cur + ); + +310 + `Tžwš_Put_D©a +Ð +cur +, +´ev + ); + +311 +´ev + = +cur +; + +312 +cur + = +Ãxt +; + +314  ( +Tžwšp +) +´ev +; + +315 + } +} + + @twin_tmp.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)twin_tmp.c 5.4 9/1/88"; + +27  + ~"cÝyright.h +" + +29  + ~"ba£ty³.h +" + +30  + ~"twšD.h +" + +31  + ~"ŒŸl.h +" + +32  + ~"¡©e.h +" + +34 +TWPošt + +desktÝ_ûÁ” +; + +36  + #glob®_excursiÚ +( +Ýt +, +v® +, +code +) \ + +38 +boÞ + +‹mp_v® +; \ + +39 +‹mp_v® + = + `Tžwš_G‘_Glob®_O±iÚ +( +Ýt +); \ + +40 + `Tžwš_S‘_Glob®_O±iÚ +( +Ýt +, +v® +); \ + +41 +code +; \ + +42 + `Tžwš_S‘_Glob®_O±iÚ +( +Ýt +, +‹mp_v® +); \ + +43 } + + ) + +45  + #Tžwš_C®c_LoÿtiÚ_Size +( +loÿtiÚ +, +size +, +»ù +) \ + +47 +TWReùªgË + +rù +; \ + +48 +rù +. +Ëá_x + = (( +»ù +).left_x + 1) & (~1); \ + +49 +rù +. +right_x + = (( +»ù +).right_x - 1) | 1; \ + +50 +rù +. +tÝ_y + = (( +»ù +).top_y + 1) & (~1); \ + +51 +rù +. +bÙtom_y + = (( +»ù +).bottom_y - 1) | 1; \ + +52 + `COMPUTE_CENTER +( +»ù +, +loÿtiÚ +); \ + +53 + `COMPUTE_SIZE +( +»ù +, +size +); \ + +54 } + + ) + +56 +TWReùªgË + +desktÝ_»ù +; + +57 +boÞ + +Tžwš_Resize +(); + +58 +boÞ + +Tžwš_O³n +(); + +59 +boÞ + +Tžwš_Cª_O³n +(); + +63  +TWReùªgË + + +64 + $Tžwš_SŒ‘ch +( +wš +, +»ù +, +side +) + +65 +Tžwš + * +wš +; + +66 +TWReùªgË + +»ù +; + +67 +Side + +side +; + +70 +Tžwš + * +twšp + = +wš +; + +71 +TWPošt + +± +; + +72 +TWReùªgË + +cu¼’t_»ù +; + +74 iàÐ +»ù +. +tÝ_y + < +desktÝ_»ù +.top_y ) + +75 +»ù +. +tÝ_y + = +desktÝ_»ù +.top_y; + +76 iàÐ +»ù +. +bÙtom_y + > +desktÝ_»ù +.bottom_y ) + +77 +»ù +. +bÙtom_y + = +desktÝ_»ù +.bottom_y; + +78 iàÐ +»ù +. +Ëá_x + < +desktÝ_»ù +.left_x ) + +79 +»ù +. +Ëá_x + = +desktÝ_»ù +.left_x; + +80 iàÐ +»ù +. +right_x + > +desktÝ_»ù +.right_x ) + +81 +»ù +. +right_x + = +desktÝ_»ù +.right_x; + +83 +cu¼’t_»ù + = + `Tžwš_G‘_ReùªgË +( +twšp +); + +85  +side +){ + +86  +Leá +: + +87 + `G‘_PtX +( +± +èð + `G‘_LeáX +( +»ù +); + +88 + `G‘_LeáX +( +»ù +èðG‘_LeáX( +cu¼’t_»ù +); + +90  +Right +: + +91 + `G‘_PtX +( +± +èð + `G‘_RightX +( +»ù +); + +92 + `G‘_RightX +( +»ù +èðG‘_RightX( +cu¼’t_»ù +); + +94  +TÝ +: + +95 + `G‘_PtY +( +± +èð + `G‘_TÝY +( +»ù +); + +96 + `G‘_TÝY +( +»ù +èðG‘_TÝY( +cu¼’t_»ù +); + +98  +BÙtom +: + +99 + `G‘_PtY +( +± +èð + `G‘_BÙtomY +( +»ù +); + +100 + `G‘_BÙtomY +( +»ù +èðG‘_BÙtomY( +cu¼’t_»ù +); + +104 (è + `TrŸl_Grow +( +twšp +, +»ù +, +side +, & +± +, + `S‹_G‘_Time¡amp +()); + +106  +side +){ + +107  +Leá +: + +108 + `G‘_LeáX +( +»ù +èð + `G‘_PtX +( +± +); + +110  +Right +: + +111 + `G‘_RightX +( +»ù +èð + `G‘_PtX +( +± +); + +113  +TÝ +: + +114 + `G‘_TÝY +( +»ù +èð + `G‘_PtY +( +± +); + +116  +BÙtom +: + +117 + `G‘_BÙtomY +( +»ù +èð + `G‘_PtY +( +± +); + +121 ( +»ù +); + +122 + } +} + +126  +TWReùªgË + + $Tžwš_SŒ‘ch_TÝ_BÙtom +Ð +wš +, +»ù +, +siz + ) + +127 +Tžwš + * +wš +; + +128 +TWReùªgË + +»ù +; + +129 +Size + +siz +; + +131 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +( +wš +, +FIXED_TOP_EDGE +)) + +133 +»ù +. +tÝ_y + =„eù. +bÙtom_y + - ( +siz +. +height + - 1); + +134 +»ù + = + `Tžwš_SŒ‘ch +Ð +wš +,„eù, +TÝ + ); + +136 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +( +wš +, +FIXED_BOTTOM_EDGE +)) + +138 +»ù +. +bÙtom_y + =„eù. +tÝ_y + + ( +siz +. +height + - 1); + +139 +»ù + = + `Tžwš_SŒ‘ch +Ð +wš +,„eù, +BÙtom + ); + +141  +»ù +; + +142 + } +} + +146  +TWReùªgË + + $Tžwš_SŒ‘ch_BÙtom_TÝ +Ð +wš +, +»ù +, +siz + ) + +147 +Tžwš + * +wš +; + +148 +TWReùªgË + +»ù +; + +149 +Size + +siz +; + +151 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +( +wš +, +FIXED_BOTTOM_EDGE +)) + +153 +»ù +. +bÙtom_y + =„eù. +tÝ_y + + ( +siz +. +height + - 1); + +154 +»ù + = + `Tžwš_SŒ‘ch +Ð +wš +,„eù, +BÙtom + ); + +156 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +( +wš +, +FIXED_TOP_EDGE +)) + +158 +»ù +. +tÝ_y + =„eù. +bÙtom_y + - ( +siz +. +height + - 1); + +159 +»ù + = + `Tžwš_SŒ‘ch +Ð +wš +,„eù, +TÝ + ); + +161  +»ù +; + +162 + } +} + +166  +TWReùªgË + + $Tžwš_SŒ‘ch_Leá_Right +Ð +wš +, +»ù +, +siz + ) + +167 +Tžwš + * +wš +; + +168 +TWReùªgË + +»ù +; + +169 +Size + +siz +; + +171 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +( +wš +, +FIXED_LEFT_EDGE +)) + +173 +»ù +. +Ëá_x + =„eù. +right_x + - ( +siz +. +width + - 1); + +174 +»ù + = + `Tžwš_SŒ‘ch +Ð +wš +,„eù, +Leá + ); + +176 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +( +wš +, +FIXED_RIGHT_EDGE +)) + +178 +»ù +. +right_x + =„eù. +Ëá_x + + ( +siz +. +width + - 1); + +179 +»ù + = + `Tžwš_SŒ‘ch +Ð +wš +,„eù, +Right + ); + +181  +»ù +; + +182 + } +} + +186  +TWReùªgË + + $Tžwš_SŒ‘ch_Right_Leá +Ð +wš +, +»ù +, +siz + ) + +187 +Tžwš + * +wš +; + +188 +TWReùªgË + +»ù +; + +189 +Size + +siz +; + +191 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +( +wš +, +FIXED_RIGHT_EDGE +)) + +193 +»ù +. +right_x + =„eù. +Ëá_x + + ( +siz +. +width + - 1); + +194 +»ù + = + `Tžwš_SŒ‘ch +Ð +wš +,„eù, +Right + ); + +196 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +( +wš +, +FIXED_LEFT_EDGE +)) + +198 +»ù +. +Ëá_x + =„eù. +right_x + - ( +siz +. +width + - 1); + +199 +»ù + = + `Tžwš_SŒ‘ch +Ð +wš +,„eù, +Leá + ); + +201  +»ù +; + +202 + } +} + +206  +TWReùªgË + + $Tžwš_SŒ‘ch_N—»¡ +Ð +wšp +, +»ù +, +siz +, +± + ) + +207 +Tžwš + * +wšp +; + +208 +TWReùªgË + +»ù +; + +209 +Size + +siz +; + +210 +TWPošt + +± +; + +212 +TWPošt + +ûÁ” +; + +213 +boÞ + +v”t_fœ¡ +; + +214 +Size + +Œy_siz +, +»ù_siz +; + +216 + `Tžwš_C®c_LoÿtiÚ_Size +Ð +ûÁ” +, +»ù_siz +, +»ù +); + +218 iàÐ +siz +. +height + <ð +»ù_siz +.height ) + +219 +v”t_fœ¡ + = +TRUE +; + +220 iàÐ +siz +. +width + <ð +»ù_siz +.width ) + +221 +v”t_fœ¡ + = +FALSE +; + +222 iàÐ + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_HEIGHT + ) && + +223 (! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_WIDTH + ) ) ) + +224 +v”t_fœ¡ + = +TRUE +; + +225 iàÐ + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_WIDTH + ) && + +226 (! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_HEIGHT + ) ) ) + +227 +v”t_fœ¡ + = +FALSE +; + +229 +v”t_fœ¡ + = + `Tžwš_G‘_Glob®_O±iÚ +( +PRORATE_VERTICALLY_FIRST +); + +231 iàÐ +v”t_fœ¡ + ) + +233 +Œy_siz + = +siz +; + +234 iàÐ +± +. +y + < +ûÁ” +.y ) + +236 +Œy_siz +. +height + = ( ( +siz +.heighˆ+ +»ù_siz +.height)/2 + +ûÁ” +. +y + - +± +.y ) & (~1); + +237 iàÐ +Œy_siz +. +height + > +siz +.height ) + +238 +Œy_siz +. +height + = +siz +.height; + +239 +»ù + = + `Tžwš_SŒ‘ch_TÝ_BÙtom +Ð +wšp +,„eù, +Œy_siz + ); + +240 +»ù + = + `Tžwš_SŒ‘ch_BÙtom_TÝ +Ð +wšp +,„eù, +siz + ); + +244 +Œy_siz +. +height + = ( ( +siz +.heighˆ+ +»ù_siz +.height)/2 + +± +. +y + - +ûÁ” +.y ) & (~1); + +245 iàÐ +Œy_siz +. +height + > +siz +.height ) + +246 +Œy_siz +. +height + = +siz +.height; + +247 +»ù + = + `Tžwš_SŒ‘ch_BÙtom_TÝ +Ð +wšp +,„eù, +Œy_siz + ); + +248 +»ù + = + `Tžwš_SŒ‘ch_TÝ_BÙtom +Ð +wšp +,„eù, +siz + ); + +251 +Œy_siz + = +siz +; + +252 iàÐ +± +. +x + < +ûÁ” +.x ) + +254 +Œy_siz +. +width + = ( ( +siz +.width + +»ù_siz +.width)/2 + +ûÁ” +. +x + - +± +.x ) & (~1); + +255 iàÐ +Œy_siz +. +width + > +siz +.width ) + +256 +Œy_siz +. +width + = +siz +.width; + +257 +»ù + = + `Tžwš_SŒ‘ch_Leá_Right +Ð +wšp +,„eù, +Œy_siz + ); + +258 +»ù + = + `Tžwš_SŒ‘ch_Right_Leá +Ð +wšp +,„eù, +siz + ); + +262 +Œy_siz +. +width + = ( ( +siz +.width + +»ù_siz +.width)/2 + +± +. +x + - +ûÁ” +.x ) & (~1); + +263 iàÐ +Œy_siz +. +width + > +siz +.width ) + +264 +Œy_siz +. +width + = +siz +.width; + +265 +»ù + = + `Tžwš_SŒ‘ch_Right_Leá +Ð +wšp +,„eù, +Œy_siz + ); + +266 +»ù + = + `Tžwš_SŒ‘ch_Leá_Right +Ð +wšp +,„eù, +siz + ); + +271 +Œy_siz + = +siz +; + +272 iàÐ +± +. +x + < +ûÁ” +.x ) + +274 +Œy_siz +. +width + = ( ( +siz +.width + +»ù_siz +.width)/2 + +ûÁ” +. +x + - +± +.x ) & (~1); + +275 iàÐ +Œy_siz +. +width + > +siz +.width ) + +276 +Œy_siz +. +width + = +siz +.width; + +277 +»ù + = + `Tžwš_SŒ‘ch_Leá_Right +Ð +wšp +,„eù, +Œy_siz + ); + +278 +»ù + = + `Tžwš_SŒ‘ch_Right_Leá +Ð +wšp +,„eù, +siz + ); + +282 +Œy_siz +. +width + = ( ( +siz +.width + +»ù_siz +.width)/2 + +± +. +x + - +ûÁ” +.x ) & (~1); + +283 iàÐ +Œy_siz +. +width + > +siz +.width ) + +284 +Œy_siz +. +width + = +siz +.width; + +285 +»ù + = + `Tžwš_SŒ‘ch_Right_Leá +Ð +wšp +,„eù, +Œy_siz + ); + +286 +»ù + = + `Tžwš_SŒ‘ch_Leá_Right +Ð +wšp +,„eù, +siz + ); + +289 +Œy_siz + = +siz +; + +290 iàÐ +± +. +y + < +ûÁ” +.y ) + +292 +Œy_siz +. +height + = ( ( +siz +.heighˆ+ +»ù_siz +.height)/2 + +ûÁ” +. +y + - +± +.y ) & (~1); + +293 iàÐ +Œy_siz +. +height + > +siz +.height ) + +294 +Œy_siz +. +height + = +siz +.height; + +295 +»ù + = + `Tžwš_SŒ‘ch_TÝ_BÙtom +Ð +wšp +,„eù, +Œy_siz + ); + +296 +»ù + = + `Tžwš_SŒ‘ch_BÙtom_TÝ +Ð +wšp +,„eù, +siz + ); + +300 +Œy_siz +. +height + = ( ( +siz +.heighˆ+ +»ù_siz +.height)/2 + +± +. +y + - +ûÁ” +.y ) & (~1); + +301 iàÐ +Œy_siz +. +height + > +siz +.height ) + +302 +Œy_siz +. +height + = +siz +.height; + +303 +»ù + = + `Tžwš_SŒ‘ch_BÙtom_TÝ +Ð +wšp +,„eù, +Œy_siz + ); + +304 +»ù + = + `Tžwš_SŒ‘ch_TÝ_BÙtom +Ð +wšp +,„eù, +siz + ); + +308  +»ù +; + +309 + } +} + +313  +TWReùªgË + + $Tžwš_SŒ‘ch_F¬the¡ +Ð +wšp +, +»ù +, +siz +, +± + ) + +314 +Tžwš + * +wšp +; + +315 +TWReùªgË + +»ù +; + +316 +Size + +siz +; + +317 +TWPošt + +± +; + +319 +TWPošt + +ûÁ” +; + +320 +boÞ + +v”t_fœ¡ +; + +322 iàÐ +siz +. +height + <ð + `Tžwš_G‘_Size +( +wšp +).height ) + +323 +v”t_fœ¡ + = +TRUE +; + +324 iàÐ +siz +. +width + <ð + `Tžwš_G‘_Size +( +wšp +).width ) + +325 +v”t_fœ¡ + = +FALSE +; + +326 iàÐ + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_HEIGHT + ) && + +327 (! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_WIDTH + ) ) ) + +328 +v”t_fœ¡ + = +TRUE +; + +329 iàÐ + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_WIDTH + ) && + +330 (! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_HEIGHT + ) ) ) + +331 +v”t_fœ¡ + = +FALSE +; + +333 +v”t_fœ¡ + = + `Tžwš_G‘_Glob®_O±iÚ +( +PRORATE_VERTICALLY_FIRST +); + +335 +ûÁ” + = + `Tžwš_G‘_C’‹r +( +wšp +); + +337 iàÐ +v”t_fœ¡ + ) + +339 iàÐ +± +. +y + > +ûÁ” +.y ) + +340 +»ù + = + `Tžwš_SŒ‘ch_TÝ_BÙtom +Ð +wšp +,„eù, +siz + ); + +342 +»ù + = + `Tžwš_SŒ‘ch_BÙtom_TÝ +Ð +wšp +,„eù, +siz + ); + +343 iàÐ +± +. +x + > +ûÁ” +.x ) + +344 +»ù + = + `Tžwš_SŒ‘ch_Leá_Right +Ð +wšp +,„eù, +siz + ); + +346 +»ù + = + `Tžwš_SŒ‘ch_Right_Leá +Ð +wšp +,„eù, +siz + ); + +350 iàÐ +± +. +x + > +ûÁ” +.x ) + +351 +»ù + = + `Tžwš_SŒ‘ch_Leá_Right +Ð +wšp +,„eù, +siz + ); + +353 +»ù + = + `Tžwš_SŒ‘ch_Right_Leá +Ð +wšp +,„eù, +siz + ); + +354 iàÐ +± +. +y + > +ûÁ” +.y ) + +355 +»ù + = + `Tžwš_SŒ‘ch_TÝ_BÙtom +Ð +wšp +,„eù, +siz + ); + +357 +»ù + = + `Tžwš_SŒ‘ch_BÙtom_TÝ +Ð +wšp +,„eù, +siz + ); + +360  +»ù +; + +361 + } +} + +365 +boÞ + + $Tžwš_EƬge_N—»¡ +Ð +twšp +, +± +, +siz + ) + +366 +Tžwšp + +twšp +; + +367 +TWPošt + +± +; + +368 +Size + +siz +; + +370 +Tžwš + * +wšp + = (Tžwš *è +twšp +; + +371 +TWReùªgË + +»ù +; + +372 +Size + +¡»tch_siz +; + +373 +TWPošt + +ûÁ” +; + +374 +boÞ + +»suÉ +; + +376 +siz +. +width + = siz.width & (~1); + +377 +siz +. +height + = siz.height & (~1); + +379 iàÐÐ +siz +. +width + =ð + `Tžwš_G‘_Size +( +wšp +).width ) && + +380 Ð +siz +. +height + =ð + `Tžwš_G‘_Size +( +wšp +).height ) ) + +381  +TRUE +; + +383 +»ù + = + `Tžwš_G‘_ReùªgË +( +wšp +); + +385 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +387 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +389 +»ù + = + `Tžwš_SŒ‘ch_N—»¡ +Ð +wšp +,„eù, +siz +, +± + ); + +391 iàÐ + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTOMATIC_SHRINK +) ) + +393 +»ù + = + `Tžwš_SŒ‘ch_N—»¡ +Ð +wšp +,„eù, +siz +, +± + ); + +396 iàÐ + `Tžwš_G‘_Glob®_O±iÚ +( +PREFER_CLOSE_TO_SHRINK +) && + +397 + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTOMATIC_CLOSE +) ) + +399 +»ù + = + `Tžwš_SŒ‘ch_N—»¡ +Ð +wšp +,„eù, +siz +, +± + ); + +402 + `Tžwš_C®c_LoÿtiÚ_Size +Ð +ûÁ” +, +¡»tch_siz +, +»ù + ); + +404 iàÐÐ + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_SIZE + ) || + +405 + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_HEIGHT + ) ) && + +406 Ð +¡»tch_siz +. +height + !ð +siz +.height ) ) + +407  +FALSE +; + +408 iàÐÐ + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_SIZE + ) || + +409 + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_WIDTH + ) ) && + +410 Ð +¡»tch_siz +. +width + !ð +siz +.width ) ) + +411  +FALSE +; + +413 + `glob®_excursiÚ +Ð +ENABLE_GRAVITY +, +FALSE +, + +415 +»suÉ + = + `Tžwš_O³n +Ð( +Tžwšp +) +wšp +, +ûÁ” +, +¡»tch_siz + ); + +418  +»suÉ +; + +419 + } +} + +423 +boÞ + + $Tžwš_EƬge_F¬the¡ +Ð +twšp +, +± +, +siz + ) + +424 +Tžwšp + +twšp +; + +425 +TWPošt + +± +; + +426 +Size + +siz +; + +428 +Tžwš + * +wšp + = (Tžwš *) +twšp +; + +429 +TWReùªgË + +»ù +; + +430 +Size + +¡»tch_siz +; + +431 +TWPošt + +ûÁ” +; + +432 +boÞ + +»suÉ +; + +434 +siz +. +width + = siz.width & (~1); + +435 +siz +. +height + = siz.height & (~1); + +437 iàÐÐ +siz +. +width + =ð + `Tžwš_G‘_Size +( +wšp +).width ) && + +438 Ð +siz +. +height + =ð + `Tžwš_G‘_Size +( +wšp +).height ) ) + +439  +TRUE +; + +441 +»ù + = + `Tžwš_G‘_ReùªgË +( +wšp +); + +443 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +445 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +447 +»ù + = + `Tžwš_SŒ‘ch_F¬the¡ +Ð +wšp +,„eù, +siz +, +± + ); + +449 iàÐ + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTOMATIC_SHRINK +) ) + +451 +»ù + = + `Tžwš_SŒ‘ch_F¬the¡ +Ð +wšp +,„eù, +siz +, +± + ); + +454 iàÐ + `Tžwš_G‘_Glob®_O±iÚ +( +PREFER_CLOSE_TO_SHRINK +) && + +455 + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTOMATIC_CLOSE +) ) + +457 +»ù + = + `Tžwš_SŒ‘ch_F¬the¡ +Ð +wšp +,„eù, +siz +, +± + ); + +460 + `Tžwš_C®c_LoÿtiÚ_Size +Ð +ûÁ” +, +¡»tch_siz +, +»ù + ); + +462 iàÐÐ + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_SIZE + ) || + +463 + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_HEIGHT + ) ) && + +464 Ð +¡»tch_siz +. +height + !ð +siz +.height ) ) + +465  +FALSE +; + +466 iàÐÐ + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_SIZE + ) || + +467 + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_WIDTH + ) ) && + +468 Ð +¡»tch_siz +. +width + !ð +siz +.width ) ) + +469  +FALSE +; + +472 + `glob®_excursiÚ +Ð +ENABLE_GRAVITY +, +FALSE +, + +474 +»suÉ + = + `Tžwš_O³n +Ð( +Tžwšp +) +wšp +, +ûÁ” +, +¡»tch_siz + ); + +477  +»suÉ +; + +478 + } +} + +482  + $Tžwš_EƬge_N—»¡_In_A»a +Ð +wšp +, +»ù +, +± +, +siz + ) + +483 +Tžwš + * +wšp +; + +484 +TWReùªgË + +»ù +; + +485 +TWPošt + +± +; + +486 +Size + +siz +; + +488 +TWReùªgË + +Þd_desktÝ_»ù +; + +490 +Þd_desktÝ_»ù + = +desktÝ_»ù +; + +492 iàÐ +»ù +. +Ëá_x + > +desktÝ_»ù +.left_x ) + +493 +desktÝ_»ù +. +Ëá_x + = +»ù +.left_x; + +494 iàÐ +»ù +. +right_x + < +desktÝ_»ù +.right_x ) + +495 +desktÝ_»ù +. +right_x + = +»ù +.right_x; + +496 iàÐ +»ù +. +tÝ_y + > +desktÝ_»ù +.top_y ) + +497 +desktÝ_»ù +. +tÝ_y + = +»ù +.top_y; + +498 iàÐ +»ù +. +bÙtom_y + < +desktÝ_»ù +.bottom_y ) + +499 +desktÝ_»ù +. +bÙtom_y + = +»ù +.bottom_y; + +501 + `Tžwš_EƬge_N—»¡ +Ð( +Tžwšp +) +wšp +, +± +, +siz + ); + +503 +desktÝ_»ù + = +Þd_desktÝ_»ù +; + +504 + } +} + +508  + $Tžwš_EƬge_F¬the¡_In_A»a +Ð +wšp +, +»ù +, +± +, +siz + ) + +509 +Tžwš + * +wšp +; + +510 +TWReùªgË + +»ù +; + +511 +TWPošt + +± +; + +512 +Size + +siz +; + +514 +TWReùªgË + +Þd_desktÝ_»ù +; + +516 +Þd_desktÝ_»ù + = +desktÝ_»ù +; + +518 iàÐ +»ù +. +Ëá_x + > +desktÝ_»ù +.left_x ) + +519 +desktÝ_»ù +. +Ëá_x + = +»ù +.left_x; + +520 iàÐ +»ù +. +right_x + < +desktÝ_»ù +.right_x ) + +521 +desktÝ_»ù +. +right_x + = +»ù +.right_x; + +522 iàÐ +»ù +. +tÝ_y + > +desktÝ_»ù +.top_y ) + +523 +desktÝ_»ù +. +tÝ_y + = +»ù +.top_y; + +524 iàÐ +»ù +. +bÙtom_y + < +desktÝ_»ù +.bottom_y ) + +525 +desktÝ_»ù +. +bÙtom_y + = +»ù +.bottom_y; + +527 + `Tžwš_EƬge_F¬the¡ +Ð( +Tžwšp +) +wšp +, +± +, +siz + ); + +529 +desktÝ_»ù + = +Þd_desktÝ_»ù +; + +530 + } +} + +534  + #grid_muÉ + 2 + + ) + +535  + #grid_mš + 3 + + ) + +539  +boÞ + + $Tžwš_O³n_Grid_N—»¡ +Ð +wšp +, +»ù +, +± +, +siz + ) + +540 +Tžwš + * +wšp +; + +541 +TWReùªgË + +»ù +; + +542 +TWPošt + +± +; + +543 +Size + +siz +; + +545  +i +, +j +; + +546  +g¿n_tÝ +, +g¿n_bÙtom +, +g¿n_Ëá +, +g¿n_right +; + +547  +max_tÝ +, +max_bÙtom +, +max_Ëá +, +max_right +; + +548  +diff_tÝ +, +diff_bÙtom +, +diff_Ëá +, +diff_right +; + +549 +boÞ + +found +, +dÚe +; + +550 +TWPošt + +ûÁ” +; + +551 +TWPošt + +cur_ûÁ” +; + +552 +TWPošt + +be¡_± +; + +553 +TWPošt + +max_± +; + +554  +dcur +; + +555  +dmš +; + +556  +exŒa_x +, +exŒa_y +; + +557 +TWReùªgË + +max_»ù +; + +558 +boÞ + +b‘‹r +; + +559  +num_þo£d +; + +560  +num_ex³nsive +; + +561  +num_afãùed +; + +562  +¡amp +; + +564 +¡amp + = + `S‹_G‘_Time¡amp +(); + +566 +num_þo£d + = +MUCHO_WINDOWS +; + +567 +num_ex³nsive + = +MUCHO_WINDOWS +; + +568 +num_afãùed + = +MUCHO_WINDOWS +; + +570 +cur_ûÁ” + = + `Tžwš_G‘_C’‹r +( +wšp +); + +572 iàÐ + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_TOP_EDGE +) ) + +574 +g¿n_tÝ + = 0; + +575 +g¿n_bÙtom + = 0; + +577 + `G‘_LeáX +( +max_»ù +èð + `G‘_RightX +(max_rect) = 0; + +578 + `G‘_TÝY +( +max_»ù +èðG‘_TÝY( +»ù +); + +579 + `G‘_BÙtomY +( +max_»ù +èð + `G‘_TÝY +( +»ù +è+ ( + `G‘_Height +( +siz +) - 1); + +580 + `COMPUTE_CENTER +( +max_»ù +, +max_± +); + +581 + `G‘_PtY +( +± +èðG‘_PtY( +max_± +); + +583 +exŒa_y + = 0; + +585 iàÐ + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_BOTTOM_EDGE +) ) + +587 +g¿n_tÝ + = 0; + +588 +g¿n_bÙtom + = 0; + +590 + `G‘_LeáX +( +max_»ù +èð + `G‘_RightX +(max_rect) = 0; + +591 + `G‘_BÙtomY +( +max_»ù +èðG‘_BÙtomY( +»ù +); + +592 + `G‘_TÝY +( +max_»ù +èð + `G‘_BÙtomY +( +»ù +è- ( + `G‘_Height +( +siz +) - 1); + +593 + `COMPUTE_CENTER +( +max_»ù +, +max_± +); + +594 + `G‘_PtY +( +± +èðG‘_PtY( +max_± +); + +596 +exŒa_y + = 0; + +600 + `G‘_LeáX +( +max_»ù +èð + `G‘_RightX +(max_rect) = 0; + +601 + `G‘_TÝY +( +max_»ù +èðG‘_TÝY( +»ù +); + +602 + `G‘_BÙtomY +( +max_»ù +èð + `G‘_TÝY +( +»ù +è+ ( + `G‘_Height +( +siz +) - 1); + +603 + `COMPUTE_CENTER +( +max_»ù +, +max_± +); + +604 +max_tÝ + = (è + `G‘_PtY +( +max_± +); + +606 + `G‘_LeáX +( +max_»ù +èð + `G‘_RightX +(max_rect) = 0; + +607 + `G‘_BÙtomY +( +max_»ù +èðG‘_BÙtomY( +»ù +); + +608 + `G‘_TÝY +( +max_»ù +èð + `G‘_BÙtomY +( +»ù +è- ( + `G‘_Height +( +siz +) - 1); + +609 + `COMPUTE_CENTER +( +max_»ù +, +max_± +); + +610 +max_bÙtom + = (è + `G‘_PtY +( +max_± +); + +612 iàÐ +± +. +y + < +max_tÝ + ) + +613 +± +. +y + = +max_tÝ +; + +614 iàÐ +± +. +y + > +max_bÙtom + ) + +615 +± +. +y + = +max_bÙtom +; + +616 +diff_tÝ + = +± +. +y + - +max_tÝ +; + +617 +diff_bÙtom + = +max_bÙtom + - +± +. +y +; + +619 iàÐ +diff_tÝ + == 0 ) + +620 +g¿n_tÝ + = 0; + +623 +g¿n_tÝ + = ( +grid_muÉ + * +diff_tÝ + ) / +siz +. +height +; + +624 iàÐ +g¿n_tÝ + < +grid_mš + ) gran_top = grid_min; + +627 iàÐ +diff_bÙtom + == 0 ) + +628 +g¿n_bÙtom + = 0; + +631 +g¿n_bÙtom + = ( +grid_muÉ + * +diff_bÙtom + ) / +siz +. +height +; + +632 iàÐ +g¿n_bÙtom + < +grid_mš + ) gran_bottom = grid_min; + +634 +exŒa_y + = ( +cur_ûÁ” +. +y + >ð +max_tÝ + ) && + +635 Ð +cur_ûÁ” +. +y + <ð +max_bÙtom + ); + +638 iàÐ + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_LEFT_EDGE +) ) + +640 +g¿n_Ëá + = 0; + +641 +g¿n_right + = 0; + +643 + `G‘_TÝY +( +max_»ù +èð + `G‘_BÙtomY +(max_rect) = 0; + +644 + `G‘_LeáX +( +max_»ù +èðG‘_LeáX( +»ù +); + +645 + `G‘_RightX +( +max_»ù +èð + `G‘_LeáX +( +»ù +è+ ( + `G‘_Width +( +siz +) - 1); + +646 + `COMPUTE_CENTER +( +max_»ù +, +max_± +); + +647 + `G‘_PtX +( +± +èðG‘_PtX( +max_± +); + +649 +exŒa_x + = 0; + +651 iàÐ + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_RIGHT_EDGE +) ) + +653 +g¿n_Ëá + = 0; + +654 +g¿n_right + = 0; + +656 + `G‘_TÝY +( +max_»ù +èð + `G‘_BÙtomY +(max_rect) = 0; + +657 + `G‘_RightX +( +max_»ù +èðG‘_RightX( +»ù +); + +658 + `G‘_LeáX +( +max_»ù +èð + `G‘_RightX +( +»ù +è- ( + `G‘_Width +( +siz +) - 1); + +659 + `COMPUTE_CENTER +( +max_»ù +, +max_± +); + +660 + `G‘_PtX +( +± +èðG‘_PtX( +max_± +); + +662 +exŒa_x + = 0; + +666 + `G‘_TÝY +( +max_»ù +èð + `G‘_BÙtomY +(max_rect) = 0; + +667 + `G‘_LeáX +( +max_»ù +èðG‘_LeáX( +»ù +); + +668 + `G‘_RightX +( +max_»ù +èð + `G‘_LeáX +( +»ù +è+ ( + `G‘_Width +( +siz +) - 1); + +669 + `COMPUTE_CENTER +( +max_»ù +, +max_± +); + +670 +max_Ëá + = (è + `G‘_PtX +( +max_± +); + +672 + `G‘_TÝY +( +max_»ù +èð + `G‘_BÙtomY +(max_rect) = 0; + +673 + `G‘_RightX +( +max_»ù +èðG‘_RightX( +»ù +); + +674 + `G‘_LeáX +( +max_»ù +èð + `G‘_RightX +( +»ù +è- ( + `G‘_Width +( +siz +) - 1); + +675 + `COMPUTE_CENTER +( +max_»ù +, +max_± +); + +676 +max_right + = (è + `G‘_PtX +( +max_± +); + +678 iàÐ +± +. +x + < +max_Ëá + ) + +679 +± +. +x + = +max_Ëá +; + +680 iàÐ +± +. +x + > +max_right + ) + +681 +± +. +x + = +max_right +; + +682 +diff_Ëá + = +± +. +x + - +max_Ëá +; + +683 +diff_right + = +max_right + - +± +. +x +; + +685 iàÐ +diff_Ëá + == 0 ) + +686 +g¿n_Ëá + = 0; + +689 +g¿n_Ëá + = ( +grid_muÉ + * +diff_Ëá + ) / +siz +. +height +; + +690 iàÐ +g¿n_Ëá + < +grid_mš + ) gran_left = grid_min; + +693 iàÐ +diff_right + == 0 ) + +694 +g¿n_right + = 0; + +697 +g¿n_right + = ( +grid_muÉ + * +diff_right + ) / +siz +. +height +; + +698 iàÐ +g¿n_right + < +grid_mš + ) gran_right = grid_min; + +700 +exŒa_x + = ( +cur_ûÁ” +. +x + >ð +max_Ëá + ) && + +701 Ð +cur_ûÁ” +. +x + <ð +max_right + ); + +704 +found + = +FALSE +; + +705 +dÚe + = +FALSE +; + +707  +i + = - +g¿n_Ëá +; i <ð( +g¿n_right + + +exŒa_x +); i++ ) + +709 iàÐ +dÚe + ) ; + +710 iàÐ +i + < 0 ) + +711 +ûÁ” +. +x + = +± +.x + ( ( +i + * +diff_Ëá + ) / +g¿n_Ëá + ); + +712 iàÐ +i + == 0 ) + +713 +ûÁ” +. +x + = +± +.x; + +714 iàÐ +i + > +g¿n_right + ) + +715 +ûÁ” +. +x + = +cur_ûÁ” +.x; + +717 +ûÁ” +. +x + = +± +.x + ( ( +i + * +diff_right + ) / +g¿n_right + ); + +719  +j + = - +g¿n_tÝ +; j <ð( +g¿n_bÙtom + + +exŒa_y +); j++ ) + +721 iàÐ +dÚe + ) ; + +722 iàÐ +j + < 0 ) + +723 +ûÁ” +. +y + = +± +.y + ( ( +j + * +diff_tÝ + ) / +g¿n_tÝ + ); + +724 iàÐ +j + == 0 ) + +725 +ûÁ” +. +y + = +± +.y; + +726 iàÐ +j + > +g¿n_bÙtom + ) + +727 +ûÁ” +. +y + = +cur_ûÁ” +.y; + +729 +ûÁ” +. +y + = +± +.y + ( ( +j + * +diff_bÙtom + ) / +g¿n_bÙtom + ); + +731 +dcur + = ( ( +ûÁ” +. +y + - +± +.y) * (center.y -…t.y) ) + + +732 Ð( +ûÁ” +. +x + - +± +.x) * (center.x -…t.x) ); + +734 iàÐÐ +num_afãùed + > 0 ) || ( +dcur + < +dmš + ) ) + +736 +b‘‹r + = +found + && ( +dcur + >ð +dmš + ); + +738 + `MAKE_RECTANGLE +Ð +ûÁ” +, +siz +, +»ù + ); + +740 iàÐ + `TrŸl_Im´ove_O³n +Ð +wšp +, +»ù +, +¡amp +, +b‘‹r +, + +741 & +num_þo£d +, & +num_ex³nsive +, & +num_afãùed + ) ) + +743 +found + = +TRUE +; + +744 +be¡_± + = +ûÁ” +; + +745 +dmš + = +dcur +; + +746 iàÐ + `Tžwš_G‘_Glob®_O±iÚ +Ð +FIRST_FIT + ) ) + +747 +dÚe + = +TRUE +; + +753 iàÐ +found + ) + +754  + `Tžwš_O³n +Ð( +Tžwšp +) +wšp +, +be¡_± +, +siz + ); + +756  +FALSE +; + +758 + } +} + +762  +boÞ + + $Tžwš_O³n_Grid_F¬the¡ +Ð +wšp +, +»ù +, +± +, +siz + ) + +763 +Tžwš + * +wšp +; + +764 +TWReùªgË + +»ù +; + +765 +TWPošt + +± +; + +766 +Size + +siz +; + +768  +i +, +j +; + +769  +g¿n_tÝ +, +g¿n_bÙtom +, +g¿n_Ëá +, +g¿n_right +; + +770  +max_tÝ +, +max_bÙtom +, +max_Ëá +, +max_right +; + +771  +diff_tÝ +, +diff_bÙtom +, +diff_Ëá +, +diff_right +; + +772 +boÞ + +found +, +dÚe +; + +773 +TWPošt + +ûÁ” +; + +774 +TWPošt + +cur_ûÁ” +; + +775 +TWPošt + +be¡_± +; + +776 +TWPošt + +max_± +; + +777  +dcur +; + +778  +dmax +; + +779  +exŒa_x +, +exŒa_y +; + +780 +TWReùªgË + +max_»ù +; + +781 +boÞ + +b‘‹r +; + +782  +num_þo£d +; + +783  +num_ex³nsive +; + +784  +num_afãùed +; + +785  +¡amp +; + +787 +¡amp + = + `S‹_G‘_Time¡amp +(); + +789 +num_þo£d + = +MUCHO_WINDOWS +; + +790 +num_ex³nsive + = +MUCHO_WINDOWS +; + +791 +num_afãùed + = +MUCHO_WINDOWS +; + +793 +cur_ûÁ” + = + `Tžwš_G‘_C’‹r +( +wšp +); + +795 iàÐ + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_TOP_EDGE +) ) + +797 +g¿n_tÝ + = 0; + +798 +g¿n_bÙtom + = 0; + +800 + `G‘_LeáX +( +max_»ù +èð + `G‘_RightX +(max_rect) = 0; + +801 + `G‘_TÝY +( +max_»ù +èðG‘_TÝY( +»ù +); + +802 + `G‘_BÙtomY +( +max_»ù +èð + `G‘_TÝY +( +»ù +è+ ( + `G‘_Height +( +siz +) - 1); + +803 + `COMPUTE_CENTER +( +max_»ù +, +max_± +); + +804 + `G‘_PtY +( +± +èðG‘_PtY( +max_± +); + +806 +exŒa_y + = 0; + +808 iàÐ + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_BOTTOM_EDGE +) ) + +810 +g¿n_tÝ + = 0; + +811 +g¿n_bÙtom + = 0; + +813 + `G‘_LeáX +( +max_»ù +èð + `G‘_RightX +(max_rect) = 0; + +814 + `G‘_BÙtomY +( +max_»ù +èðG‘_BÙtomY( +»ù +); + +815 + `G‘_TÝY +( +max_»ù +èð + `G‘_BÙtomY +( +»ù +è- ( + `G‘_Height +( +siz +) - 1); + +816 + `COMPUTE_CENTER +( +max_»ù +, +max_± +); + +817 + `G‘_PtY +( +± +èðG‘_PtY( +max_± +); + +819 +exŒa_y + = 0; + +823 + `G‘_LeáX +( +max_»ù +èð + `G‘_RightX +(max_rect) = 0; + +824 + `G‘_TÝY +( +max_»ù +èðG‘_TÝY( +»ù +); + +825 + `G‘_BÙtomY +( +max_»ù +èð + `G‘_TÝY +( +»ù +è+ ( + `G‘_Height +( +siz +) - 1); + +826 + `COMPUTE_CENTER +( +max_»ù +, +max_± +); + +827 +max_tÝ + = (è + `G‘_PtY +( +max_± +); + +829 + `G‘_LeáX +( +max_»ù +èð + `G‘_RightX +(max_rect) = 0; + +830 + `G‘_BÙtomY +( +max_»ù +èðG‘_BÙtomY( +»ù +); + +831 + `G‘_TÝY +( +max_»ù +èð + `G‘_BÙtomY +( +»ù +è- ( + `G‘_Height +( +siz +) - 1); + +832 + `COMPUTE_CENTER +( +max_»ù +, +max_± +); + +833 +max_bÙtom + = (è + `G‘_PtY +( +max_± +); + +835 iàÐ +± +. +y + < +max_tÝ + ) + +836 +± +. +y + = +max_tÝ +; + +837 iàÐ +± +. +y + > +max_bÙtom + ) + +838 +± +. +y + = +max_bÙtom +; + +839 +diff_tÝ + = +± +. +y + - +max_tÝ +; + +840 +diff_bÙtom + = +max_bÙtom + - +± +. +y +; + +842 iàÐ +diff_tÝ + == 0 ) + +843 +g¿n_tÝ + = 0; + +846 +g¿n_tÝ + = ( +grid_muÉ + * +diff_tÝ + ) / +siz +. +height +; + +847 iàÐ +g¿n_tÝ + < +grid_mš + ) gran_top = grid_min; + +850 iàÐ +diff_bÙtom + == 0 ) + +851 +g¿n_bÙtom + = 0; + +854 +g¿n_bÙtom + = ( +grid_muÉ + * +diff_bÙtom + ) / +siz +. +height +; + +855 iàÐ +g¿n_bÙtom + < +grid_mš + ) gran_bottom = grid_min; + +857 +exŒa_y + = ( +cur_ûÁ” +. +y + >ð +max_tÝ + ) && + +858 Ð +cur_ûÁ” +. +y + <ð +max_bÙtom + ); + +861 iàÐ + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_LEFT_EDGE +) ) + +863 +g¿n_Ëá + = 0; + +864 +g¿n_right + = 0; + +866 + `G‘_TÝY +( +max_»ù +èð + `G‘_BÙtomY +(max_rect) = 0; + +867 + `G‘_LeáX +( +max_»ù +èðG‘_LeáX( +»ù +); + +868 + `G‘_RightX +( +max_»ù +èð + `G‘_LeáX +( +»ù +è+ ( + `G‘_Width +( +siz +) - 1); + +869 + `COMPUTE_CENTER +( +max_»ù +, +max_± +); + +870 + `G‘_PtX +( +± +èðG‘_PtX( +max_± +); + +872 +exŒa_x + = 0; + +874 iàÐ + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_RIGHT_EDGE +) ) + +876 +g¿n_Ëá + = 0; + +877 +g¿n_right + = 0; + +879 + `G‘_TÝY +( +max_»ù +èð + `G‘_BÙtomY +(max_rect) = 0; + +880 + `G‘_RightX +( +max_»ù +èðG‘_RightX( +»ù +); + +881 + `G‘_LeáX +( +max_»ù +èð + `G‘_RightX +( +»ù +è- ( + `G‘_Width +( +siz +) - 1); + +882 + `COMPUTE_CENTER +( +max_»ù +, +max_± +); + +883 + `G‘_PtX +( +± +èðG‘_PtX( +max_± +); + +885 +exŒa_x + = 0; + +889 + `G‘_TÝY +( +max_»ù +èð + `G‘_BÙtomY +(max_rect) = 0; + +890 + `G‘_LeáX +( +max_»ù +èðG‘_LeáX( +»ù +); + +891 + `G‘_RightX +( +max_»ù +èð + `G‘_LeáX +( +»ù +è+ ( + `G‘_Width +( +siz +) - 1); + +892 + `COMPUTE_CENTER +( +max_»ù +, +max_± +); + +893 +max_Ëá + = (è + `G‘_PtX +( +max_± +); + +895 + `G‘_TÝY +( +max_»ù +èð + `G‘_BÙtomY +(max_rect) = 0; + +896 + `G‘_RightX +( +max_»ù +èðG‘_RightX( +»ù +); + +897 + `G‘_LeáX +( +max_»ù +èð + `G‘_RightX +( +»ù +è- ( + `G‘_Width +( +siz +) - 1); + +898 + `COMPUTE_CENTER +( +max_»ù +, +max_± +); + +899 +max_right + = (è + `G‘_PtX +( +max_± +); + +901 iàÐ +± +. +x + < +max_Ëá + ) + +902 +± +. +x + = +max_Ëá +; + +903 iàÐ +± +. +x + > +max_right + ) + +904 +± +. +x + = +max_right +; + +905 +diff_Ëá + = +± +. +x + - +max_Ëá +; + +906 +diff_right + = +max_right + - +± +. +x +; + +908 iàÐ +diff_Ëá + == 0 ) + +909 +g¿n_Ëá + = 0; + +912 +g¿n_Ëá + = ( +grid_muÉ + * +diff_Ëá + ) / +siz +. +height +; + +913 iàÐ +g¿n_Ëá + < +grid_mš + ) gran_left = grid_min; + +916 iàÐ +diff_right + == 0 ) + +917 +g¿n_right + = 0; + +920 +g¿n_right + = ( +grid_muÉ + * +diff_right + ) / +siz +. +height +; + +921 iàÐ +g¿n_right + < +grid_mš + ) gran_right = grid_min; + +923 +exŒa_x + = ( +cur_ûÁ” +. +x + >ð +max_Ëá + ) && + +924 Ð +cur_ûÁ” +. +x + <ð +max_right + ); + +927 +found + = +FALSE +; + +928 +dÚe + = +FALSE +; + +930  +i + = - +g¿n_Ëá +; i <ð( +g¿n_right + + +exŒa_x +); i++ ) + +932 iàÐ +dÚe + ) ; + +933 iàÐ +i + < 0 ) + +934 +ûÁ” +. +x + = +± +.x + ( ( +i + * +diff_Ëá + ) / +g¿n_Ëá + ); + +935 iàÐ +i + == 0 ) + +936 +ûÁ” +. +x + = +± +.x; + +937 iàÐ +i + > +g¿n_right + ) + +938 +ûÁ” +. +x + = +cur_ûÁ” +.x; + +940 +ûÁ” +. +x + = +± +.x + ( ( +i + * +diff_right + ) / +g¿n_right + ); + +942  +j + = - +g¿n_tÝ +; j <ð( +g¿n_bÙtom + + +exŒa_y +); j++ ) + +944 iàÐ +dÚe + ) ; + +945 iàÐ +j + < 0 ) + +946 +ûÁ” +. +y + = +± +.y + ( ( +j + * +diff_tÝ + ) / +g¿n_tÝ + ); + +947 iàÐ +j + == 0 ) + +948 +ûÁ” +. +y + = +± +.y; + +949 iàÐ +j + > +g¿n_bÙtom + ) + +950 +ûÁ” +. +y + = +cur_ûÁ” +.y; + +952 +ûÁ” +. +y + = +± +.y + ( ( +j + * +diff_bÙtom + ) / +g¿n_bÙtom + ); + +954 +dcur + = ( ( +ûÁ” +. +y + - +± +.y) * (center.y -…t.y) ) + + +955 Ð( +ûÁ” +. +x + - +± +.x) * (center.x -…t.x) ); + +957 iàÐÐ +num_afãùed + > 0 ) || ( +dcur + > +dmax + ) ) + +959 +b‘‹r + = +found + && ( +dcur + <ð +dmax + ); + +961 + `MAKE_RECTANGLE +Ð +ûÁ” +, +siz +, +»ù + ); + +963 iàÐ + `TrŸl_Im´ove_O³n +Ð +wšp +, +»ù +, +¡amp +, +b‘‹r +, + +964 & +num_þo£d +, & +num_ex³nsive +, & +num_afãùed + ) ) + +966 +found + = +TRUE +; + +967 +be¡_± + = +ûÁ” +; + +968 +dmax + = +dcur +; + +969 iàÐ + `Tžwš_G‘_Glob®_O±iÚ +Ð +FIRST_FIT + ) ) + +970 +dÚe + = +TRUE +; + +976 iàÐ +found + ) + +977  + `Tžwš_O³n +Ð( +Tžwšp +) +wšp +, +be¡_± +, +siz + ); + +979  +FALSE +; + +981 + } +} + +985 +boÞ + + $Tžwš_O³n_N—»¡_In_A»a +Ð +twšp +, +»ù +, +± +, +siz + ) + +986 +Tžwšp + +twšp +; + +987 +TWReùªgË + +»ù +; + +988 +TWPošt + +± +; + +989 +Size + +siz +; + +991 +Tžwš + * +wšp + = (Tžwš *) +twšp +; + +992 +boÞ + +»suÉ +; + +993 +Size + +mšsiz +; + +995 iàÐ +»ù +. +tÝ_y + < +desktÝ_»ù +.top_y ) + +996 +»ù +. +tÝ_y + = +desktÝ_»ù +.top_y; + +997 iàÐ +»ù +. +bÙtom_y + > +desktÝ_»ù +.bottom_y ) + +998 +»ù +. +bÙtom_y + = +desktÝ_»ù +.bottom_y; + +999 iàÐ +»ù +. +Ëá_x + < +desktÝ_»ù +.left_x ) + +1000 +»ù +. +Ëá_x + = +desktÝ_»ù +.left_x; + +1001 iàÐ +»ù +. +right_x + > +desktÝ_»ù +.right_x ) + +1002 +»ù +. +right_x + = +desktÝ_»ù +.right_x; + +1004 +siz +. +width + = siz.width & (~1); + +1005 +siz +. +height + = siz.height & (~1); + +1007 +mšsiz + = +siz +; + +1009 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_SIZE +) ) + +1011 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_WIDTH +)) + +1012 +mšsiz +. +width + = +wšp +-> +mš_size +.width; + +1013 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_HEIGHT +)) + +1014 +mšsiz +. +height + = +wšp +-> +mš_size +.height; + +1017 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +1019 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +1021 +»suÉ + = + `Tžwš_O³n_Grid_N—»¡ +Ð +wšp +, +»ù +, +± +, +siz + ); + +1023 iàÐ(! +»suÉ +è&& + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTOMATIC_SHRINK +) ) + +1024 +»suÉ + = + `Tžwš_O³n_Grid_N—»¡ +Ð +wšp +, +»ù +, +± +, +siz + ); + +1027 ià(! +»suÉ +) + +1029 iàÐ + `Tžwš_G‘_Glob®_O±iÚ +( +PREFER_CLOSE_TO_SHRINK +) ) + +1031 iàÐ + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTOMATIC_CLOSE +) ) + +1032 +»suÉ + = + `Tžwš_O³n_Grid_N—»¡ +Ð +wšp +, +»ù +, +± +, +siz + ); + +1034 iàÐ(! +»suÉ +è&& (! + `Same_Size +( +siz +, +mšsiz +)) ) + +1036 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +1038 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +1040 +»suÉ + = + `Tžwš_O³n_Grid_N—»¡ +Ð +wšp +, +»ù +, +± +, +mšsiz + ); + +1042 iàÐ(! +»suÉ +è&& + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTOMATIC_SHRINK +) ) + +1043 +»suÉ + = + `Tžwš_O³n_Grid_N—»¡ +Ð +wšp +, +»ù +, +± +, +mšsiz + ); + +1045 iàÐ +»suÉ + ) + +1046 + `Tžwš_EƬge_N—»¡_In_A»a +Ð +wšp +, +»ù +, +± +, +siz + ); + +1051 ià(! + `Same_Size +( +siz +, +mšsiz +)) + +1053 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +1055 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +1057 +»suÉ + = + `Tžwš_O³n_Grid_N—»¡ +Ð +wšp +, +»ù +, +± +, +mšsiz + ); + +1059 iàÐ(! +»suÉ +è&& + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTOMATIC_SHRINK +) ) + +1060 +»suÉ + = + `Tžwš_O³n_Grid_N—»¡ +Ð +wšp +, +»ù +, +± +, +mšsiz + ); + +1062 iàÐ +»suÉ + ) + +1063 + `Tžwš_EƬge_N—»¡_In_A»a +Ð +wšp +, +»ù +, +± +, +siz + ); + +1066 iàÐ(! +»suÉ +) && + +1067 + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTOMATIC_CLOSE +) ) + +1068 +»suÉ + = + `Tžwš_O³n_Grid_N—»¡ +Ð +wšp +, +»ù +, +± +, +siz + ); + +1072 iàÐ(! +»suÉ +è&& (! + `Same_Size +( +siz +, +mšsiz +)) && + +1073 + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTOMATIC_CLOSE +) ) + +1075 +»suÉ + = + `Tžwš_O³n_Grid_N—»¡ +Ð +wšp +, +»ù +, +± +, +mšsiz + ); + +1076 iàÐ +»suÉ + ) + +1077 + `Tžwš_EƬge_N—»¡_In_A»a +Ð +wšp +, +»ù +, +± +, +siz + ); + +1080 iàÐ +»suÉ + ) + +1081 + `Tžwš_Slide_N—»¡_In_A»a +Ð +wšp +, +»ù +, +± + ); + +1083  +»suÉ +; + +1085 + } +} + +1089 +boÞ + + $Tžwš_O³n_F¬the¡_In_A»a +Ð +twšp +, +»ù +, +± +, +siz + ) + +1090 +Tžwšp + +twšp +; + +1091 +TWReùªgË + +»ù +; + +1092 +TWPošt + +± +; + +1093 +Size + +siz +; + +1095 +Tžwš + * +wšp + = (Tžwš *) +twšp +; + +1096 +boÞ + +»suÉ +; + +1097 +Size + +mšsiz +; + +1099 iàÐ +»ù +. +tÝ_y + < +desktÝ_»ù +.top_y ) + +1100 +»ù +. +tÝ_y + = +desktÝ_»ù +.top_y; + +1101 iàÐ +»ù +. +bÙtom_y + > +desktÝ_»ù +.bottom_y ) + +1102 +»ù +. +bÙtom_y + = +desktÝ_»ù +.bottom_y; + +1103 iàÐ +»ù +. +Ëá_x + < +desktÝ_»ù +.left_x ) + +1104 +»ù +. +Ëá_x + = +desktÝ_»ù +.left_x; + +1105 iàÐ +»ù +. +right_x + > +desktÝ_»ù +.right_x ) + +1106 +»ù +. +right_x + = +desktÝ_»ù +.right_x; + +1108 +siz +. +width + = siz.width & (~1); + +1109 +siz +. +height + = siz.height & (~1); + +1111 +mšsiz + = +siz +; + +1113 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_SIZE +) ) + +1115 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_WIDTH +)) + +1116 +mšsiz +. +width + = +wšp +-> +mš_size +.width; + +1117 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +( +wšp +, +FIXED_HEIGHT +)) + +1118 +mšsiz +. +height + = +wšp +-> +mš_size +.height; + +1121 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +1123 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +1125 +»suÉ + = + `Tžwš_O³n_Grid_F¬the¡ +Ð +wšp +, +»ù +, +± +, +siz + ); + +1127 iàÐ(! +»suÉ +è&& + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTOMATIC_SHRINK +) ) + +1128 +»suÉ + = + `Tžwš_O³n_Grid_F¬the¡ +Ð +wšp +, +»ù +, +± +, +siz + ); + +1131 ià(! +»suÉ +) + +1133 iàÐ + `Tžwš_G‘_Glob®_O±iÚ +( +PREFER_CLOSE_TO_SHRINK +) ) + +1135 iàÐ + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTOMATIC_CLOSE +) ) + +1136 +»suÉ + = + `Tžwš_O³n_Grid_F¬the¡ +Ð +wšp +, +»ù +, +± +, +siz + ); + +1138 iàÐ(! +»suÉ +è&& (! + `Same_Size +( +siz +, +mšsiz +)) ) + +1140 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +1142 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +1144 +»suÉ + = + `Tžwš_O³n_Grid_F¬the¡ +Ð +wšp +, +»ù +, +± +, +mšsiz + ); + +1146 iàÐ(! +»suÉ +è&& + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTOMATIC_SHRINK +) ) + +1147 +»suÉ + = + `Tžwš_O³n_Grid_F¬the¡ +Ð +wšp +, +»ù +, +± +, +mšsiz + ); + +1149 iàÐ +»suÉ + ) + +1150 + `Tžwš_EƬge_F¬the¡_In_A»a +Ð +wšp +, +»ù +, +± +, +siz + ); + +1155 ià(! + `Same_Size +( +siz +, +mšsiz +)) + +1157 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +FALSE +, + +1159 + `glob®_excursiÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, +FALSE +, + +1161 +»suÉ + = + `Tžwš_O³n_Grid_F¬the¡ +Ð +wšp +, +»ù +, +± +, +mšsiz + ); + +1163 iàÐ(! +»suÉ +è&& + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTOMATIC_SHRINK +) ) + +1164 +»suÉ + = + `Tžwš_O³n_Grid_F¬the¡ +Ð +wšp +, +»ù +, +± +, +mšsiz + ); + +1166 iàÐ +»suÉ + ) + +1167 + `Tžwš_EƬge_F¬the¡_In_A»a +Ð +wšp +, +»ù +, +± +, +siz + ); + +1170 iàÐ(! +»suÉ +) && + +1171 + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTOMATIC_CLOSE +) ) + +1172 +»suÉ + = + `Tžwš_O³n_Grid_F¬the¡ +Ð +wšp +, +»ù +, +± +, +siz + ); + +1176 iàÐ(! +»suÉ +è&& (! + `Same_Size +( +siz +, +mšsiz +)) && + +1177 + `Tžwš_G‘_Glob®_O±iÚ +( +ALLOW_AUTOMATIC_CLOSE +) ) + +1179 +»suÉ + = + `Tžwš_O³n_Grid_F¬the¡ +Ð +wšp +, +»ù +, +± +, +mšsiz + ); + +1180 iàÐ +»suÉ + ) + +1181 + `Tžwš_EƬge_F¬the¡_In_A»a +Ð +wšp +, +»ù +, +± +, +siz + ); + +1184 iàÐ +»suÉ + ) + +1185 + `Tžwš_Slide_F¬the¡_In_A»a +Ð +wšp +, +»ù +, +± + ); + +1187  +»suÉ +; + +1189 + } +} + +1193 +boÞ + + $Tžwš_O³n_Be¡_In_A»a +Ð +twšp +, +»ù +, +siz + ) + +1194 +Tžwšp + +twšp +; + +1195 +TWReùªgË + +»ù +; + +1196 +Size + +siz +; + +1198  + `Tžwš_O³n_F¬the¡_In_A»a +Ð +twšp +, +»ù +, + +1199 +desktÝ_ûÁ” +, +siz + ); + +1200 + } +} + + @twin_undo.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)twin_undo.c 5.3 9/1/88"; + +27  + ~"cÝyright.h +" + +29  + ~"ba£ty³.h +" + +30  + ~"twšD.h +" + +31  + ~"¡©e.h +" + +32  + ~"wš.h +" + +35 + $Tžwš_Do_Undo +() + +37 +Tžwš + * +wšp +; + +38 +WšpHªdË + +hªdË +; + +43 +hªdË + = + `S‹_G’_Ju¡_O³Ãd_Wšdows +(); + +44 ( +wšp + = + `S‹_CÛrû +( +hªdË +)è!ð +WINP_NULL +){ + +45 + `Wš_Clo£ +(( +Tžwš + *) +wšp +); + +46 + `S‹_Next_Wšdow +(& +hªdË +); + +52 +hªdË + = + `S‹_G’_Ju¡_Modif›d_Wšdows +(); + +53 ( +wšp + = + `S‹_CÛrû +( +hªdË +)è!ð +WINP_NULL +) { + +54 + `Wš_Clo£ +(( +Tžwš + *) +wšp +); + +55 + `S‹_Next_Wšdow +(& +hªdË +); + +62 + `S‹_Undo +(); + +67 +hªdË + = + `S‹_G’_Ju¡_Modif›d_Wšdows +(); + +68 ( +wšp + = + `S‹_CÛrû +( +hªdË +)è!ð +WINP_NULL +) { + +69 + `Wš_O³n +(( +Tžwš + *) +wšp +, + `Tžwš_G‘_ReùªgË +(winp)); + +70 + `S‹_Next_Wšdow +(& +hªdË +); + +76 +hªdË + = + `S‹_G’_Ju¡_O³Ãd_Wšdows +(); + +77 ( +wšp + = + `S‹_CÛrû +( +hªdË +)è!ð +WINP_NULL +) { + +78 + `Wš_O³n +(( +Tžwš + *) +wšp +, + `Tžwš_G‘_ReùªgË +(winp)); + +79 + `S‹_Next_Wšdow +(& +hªdË +); + +82 + } +} + +85 + $Tžwš_Undo +() + +87 ià( + `S‹_T¿n§ùiÚ_D•th +() == 0) + +88 + `Tžwš_Do_Undo +(); + +90 + } +} + +92  + $Tžwš_AbÜt_T¿n§ùiÚ +() + +94 + `Tžwš_Do_Undo +(); + +95 + `S‹_AbÜt_T¿n§ùiÚ +(); + +96 + } +} + + @twin_util.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)twin_util.c 5.3 9/1/88"; + +27  + ~"cÝyright.h +" + +29  + ~"ba£ty³.h +" + +31  + ~"twš.h +" + +32  + ~"twšD.h +" + +36 +TWPošt + + $Tžwš_C’‹r_Of_G¿v™y +() + +38 +TWPošt + +ûÁ” +; + +39 +Tžwšp + +wšp +; + +40  +kÁ + = 0; + +42 +ûÁ” +. +x + = 0; + +43 +ûÁ” +. +y + = 0; + +45 + `Tžwš_G’_O³n_Wšdows +(); + +46  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +48 +ûÁ” +. +x + +ð + `Tžwš_G‘_C’‹r +( +wšp +).x; + +49 +ûÁ” +. +y + +ð + `Tžwš_G‘_C’‹r +( +wšp +).y; + +50 +kÁ +++; + +53 iàÐ +kÁ + == 0 ) + +54  + `Tžwš_G‘_DesktÝ_C’‹r +(); + +56 +ûÁ” +. +x + = c’‹r.x / +kÁ +; + +57 +ûÁ” +. +y + = c’‹r.y / +kÁ +; + +59  +ûÁ” +; + +60 + } +} + +64 +TWPošt + + $Tžwš_Pos™iÚ_CŒ_Of_G¿v™y +() + +66 +TWPošt + +ûÁ” +; + +67 +Tžwšp + +wšp +; + +68  +kÁ + = 0; + +70 +ûÁ” +. +x + = 0; + +71 +ûÁ” +. +y + = 0; + +73 + `Tžwš_G’_O³n_Wšdows +(); + +74  ( +wšp + = + `Tžwš_Next_Wšdow +()è!ð +WIN_NULL + ) + +76 +ûÁ” +. +x + +ð + `Tžwš_G‘_Pos™iÚ +( +wšp +).x; + +77 +ûÁ” +. +y + +ð + `Tžwš_G‘_Pos™iÚ +( +wšp +).y; + +78 +kÁ +++; + +81 iàÐ +kÁ + == 0 ) + +82  + `Tžwš_G‘_DesktÝ_C’‹r +(); + +84 +ûÁ” +. +x + = c’‹r.x / +kÁ +; + +85 +ûÁ” +. +y + = c’‹r.y / +kÁ +; + +87  +ûÁ” +; + +88 + } +} + +92 +Size + + $Tžwš_Checked_Size +Ð +wšp +, +chksiz + ) + +93 +Tžwšp + +wšp +; + +94 +Size + +chksiz +; + +96 +Size + +siz +; + +97 +siz + = + `Tžwš_G‘_Size +Ð +wšp + ); + +98 iàÐ(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +99 && (! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_SIZE + ) ) ) + +101 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_WIDTH + ) ) + +102 +siz +. +width + = +chksiz +.width; + +103 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_HEIGHT + ) ) + +104 +siz +. +height + = +chksiz +.height; + +106  +siz +; + +107 + } +} + +111 +Size + + $Tžwš_Checked_P»vious_Size +Ð +wšp + ) + +112 +Tžwšp + +wšp +; + +114 +Size + +siz +; + +115 +siz + = + `Tžwš_G‘_Size +Ð +wšp + ); + +116 iàÐ(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +117 && (! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_SIZE + ) ) ) + +119 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_WIDTH + ) ) + +120 +siz +. +width + = + `Tžwš_G‘_P»vious_Size +( +wšp +).width; + +121 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_HEIGHT + ) ) + +122 +siz +. +height + = + `Tžwš_G‘_P»vious_Size +( +wšp +).height; + +124  +siz +; + +125 + } +} + +129 +Size + + $Tžwš_Good_Size +Ð +wšp +, +siz + ) + +130 +Tžwšp + +wšp +; + +131 +Size + +siz +; + +133 +Size + +desœed +, +mšsiz +; + +134  +gwidth +, +gheight +; + +136 +siz + = + `Tžwš_G‘_Size +Ð +wšp + ); + +137 iàÐ + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) + +138 || + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_SIZE + ) ) + +139  +siz +; + +141 +desœed + = + `Tžwš_G‘_Desœed +( +wšp +); + +142 +mšsiz + = + `Tžwš_G‘_Mš +( +wšp +); + +144 iàÐ +desœed +. +width + =ð +mšsiz +.width ) + +145 +gwidth + = 1; + +147 +gwidth + = ( +siz +. +width + - +mšsiz +.width ) / + +148 Ð +desœed +. +width + - +mšsiz +.width ); + +150 iàÐ +desœed +. +height + =ð +mšsiz +.height ) + +151 +gheight + = 1; + +153 +gheight + = ( +siz +. +height + - +mšsiz +.height ) / + +154 Ð +desœed +. +height + - +mšsiz +.height ); + +156 iàÐ +gwidth + < +gheight + ) + +158 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_HEIGHT + ) ) + +159 +siz +. +height + = +mšsiz +.height + + +160 +gwidth + * ( +desœed +. +height + - +mšsiz +.height ); + +162 iàÐ +gwidth + > +gheight + ) + +164 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_WIDTH + ) ) + +165 +siz +. +width + = +mšsiz +.width + + +166 +gheight + * ( +desœed +. +width + - +mšsiz +.width ); + +169  +siz +; + +170 + } +} + +174 +Size + + $Tžwš_Checked_Mš_Size +Ð +wšp + ) + +175 +Tžwšp + +wšp +; + +177 +Size + +siz +; + +178 +siz + = + `Tžwš_G‘_Size +Ð +wšp + ); + +179 iàÐ(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +180 && (! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_SIZE + ) ) ) + +182 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_WIDTH + ) ) + +183 +siz +. +width + = + `Tžwš_G‘_Mš +( +wšp +).width; + +184 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_HEIGHT + ) ) + +185 +siz +. +height + = + `Tžwš_G‘_Mš +( +wšp +).height; + +187  +siz +; + +188 + } +} + +192 +Size + + $Tžwš_Checked_Desœed_Size +Ð +wšp + ) + +193 +Tžwšp + +wšp +; + +195 +Size + +siz +; + +196 +siz + = + `Tžwš_G‘_Size +Ð +wšp + ); + +197 iàÐ(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +198 && (! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_SIZE + ) ) ) + +200 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_WIDTH + ) ) + +201 +siz +. +width + = + `Tžwš_G‘_Desœed +( +wšp +).width; + +202 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_HEIGHT + ) ) + +203 +siz +. +height + = + `Tžwš_G‘_Desœed +( +wšp +).height; + +205  +siz +; + +206 + } +} + +210 +Size + + $Tžwš_Checked_Good_Desœed_Size +Ð +wšp +, +good + ) + +211 +Tžwšp + +wšp +; + +212  +good +; + +214 +Size + +siz +; + +215 +siz + = + `Tžwš_G‘_Size +Ð +wšp + ); + +216 iàÐ(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +217 && (! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_SIZE + ) ) ) + +219 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_WIDTH + ) ) + +220 +siz +. +width + = +good + * + `Tžwš_G‘_Desœed +( +wšp +).width + + +221 (1- +good +)* + `Tžwš_G‘_Mš +( +wšp +). +width +; + +222 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_HEIGHT + ) ) + +223 +siz +. +height + = +good + * + `Tžwš_G‘_Desœed +( +wšp +).height + + +224 (1- +good +)* + `Tžwš_G‘_Mš +( +wšp +). +height +; + +226  +siz +; + +227 + } +} + +231 +Size + + $Tžwš_Checked_Max_Size +Ð +wšp + ) + +232 +Tžwšp + +wšp +; + +234 +Size + +siz +; + +235 +siz + = + `Tžwš_G‘_Size +Ð +wšp + ); + +236 iàÐ(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +237 && (! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_SIZE + ) ) ) + +239 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_WIDTH + ) ) + +240 +siz +. +width + = + `Tžwš_G‘_Max +Ð +wšp + ).width; + +241 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_HEIGHT + ) ) + +242 +siz +. +height + = + `Tžwš_G‘_Max +Ð +wšp + ).height; + +244  +siz +; + +245 + } +} + +249 +Size + + $Tžwš_Checked_Good_Max_Size +Ð +wšp +, +good + ) + +250 +Tžwšp + +wšp +; + +251  +good +; + +253 +Size + +siz +; + +254 +siz + = + `Tžwš_G‘_Size +Ð +wšp + ); + +255 iàÐ(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_COMPLETELY + ) ) + +256 && (! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_SIZE + ) ) ) + +258 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_WIDTH + ) ) + +259 +siz +. +width + = +good + * + `Tžwš_G‘_Max +( +wšp +).width + + +260 (1- +good +)* + `Tžwš_G‘_Desœed +( +wšp +). +width +; + +261 ià(! + `Tžwš_G‘_Wšdow_O±iÚ +Ð +wšp +, +FIXED_HEIGHT + ) ) + +262 +siz +. +height + = +good + * + `Tžwš_G‘_Max +( +wšp +).height + + +263 (1- +good +)* + `Tžwš_G‘_Desœed +( +wšp +). +height +; + +265  +siz +; + +266 + } +} + +270  + $Tžwš_Slide_V”Žy_F¬the¡ +Ð +wšp +, +± + ) + +271 +Tžwšp + +wšp +; + +272 +TWPošt + +± +; + +274 +TWPošt + +ûÁ” +; + +276 +ûÁ” + = + `Tžwš_G‘_C’‹r +( +wšp +); + +277 +± +. +x + = +ûÁ” +.x; + +279 iàÐ +ûÁ” +. +y + =ð +± +.y ) + +280 +ûÁ” +. +y + = + `Tžwš_G‘_Pos™iÚ +( +wšp +).y; + +282 iàÐ +ûÁ” +. +y + < +± +.y ) + +283 +± +. +y + = + `Tžwš_G‘_DesktÝ_ReùªgË +(). +tÝ_y +; + +285 +± +. +y + = + `Tžwš_G‘_DesktÝ_ReùªgË +(). +bÙtom_y +; + +287 + `Tžwš_Slide_N—»¡ +Ð +wšp +, +± + ); + +288 + } +} + +292  + $Tžwš_Slide_HÜizly_F¬the¡ +Ð +wšp +, +± + ) + +293 +Tžwšp + +wšp +; + +294 +TWPošt + +± +; + +296 +TWPošt + +ûÁ” +; + +298 +ûÁ” + = + `Tžwš_G‘_C’‹r +( +wšp +); + +299 +± +. +y + = +ûÁ” +.y; + +301 iàÐ +ûÁ” +. +x + =ð +± +.x ) + +302 +ûÁ” +. +x + = + `Tžwš_G‘_Pos™iÚ +( +wšp +).x; + +304 iàÐ +ûÁ” +. +x + < +± +.x ) + +305 +± +. +x + = + `Tžwš_G‘_DesktÝ_ReùªgË +(). +Ëá_x +; + +307 +± +. +x + = + `Tžwš_G‘_DesktÝ_ReùªgË +(). +right_x +; + +309 + `Tžwš_Slide_N—»¡ +Ð +wšp +, +± + ); + +310 + } +} + +314  + $Tžwš_Slide_V”Žy_N—»¡ +Ð +wšp +, +± + ) + +315 +Tžwšp + +wšp +; + +316 +TWPošt + +± +; + +318 +± +. +x + = + `Tžwš_G‘_C’‹r +( +wšp +).x; + +319 + `Tžwš_Slide_N—»¡ +Ð +wšp +, +± + ); + +320 + } +} + +324  + $Tžwš_Slide_HÜizly_N—»¡ +Ð +wšp +, +± + ) + +325 +Tžwšp + +wšp +; + +326 +TWPošt + +± +; + +328 +± +. +y + = + `Tžwš_G‘_C’‹r +( +wšp +).y; + +329 + `Tžwš_Slide_N—»¡ +Ð +wšp +, +± + ); + +330 + } +} + + @twinoptsP.h + +32 + mEXPENSIVE_TO_REDRAW +, + +33 + mFIXED_COMPLETELY +, + +34 + mFIXED_BOTTOM_EDGE +, + +35 + mFIXED_TOP_EDGE +, + +36 + mFIXED_LEFT_EDGE +, + +37 + mFIXED_RIGHT_EDGE +, + +38 + mFIXED_SIZE +, + +39 + mFIXED_HEIGHT +, + +40 + mFIXED_WIDTH +, + +41 + mREQUIRE_MANUAL_CLOSE +, + +42 + mSHRINK_BASED_ON_CURRENT_SIZE +, + +43 + mWEIGHTED_SHRINK +, + +44 + mLENGTH_WINDOW_OPTIONS + + +45 } + tWšdow_O±iÚs +; + + @twinoptsS.h + +31 *( + gwšdow_¡rs +[() +LENGTH_WINDOW_OPTIONS +]) = { + + @userglob.c + +23  + ~"cÝyright.h +" + +26  + ~"ba£ty³.h +" + +27  + ~"u£rÝtsP.h +" + +28  + ~"u£rv®sP.h +" + +29  + ~"ex¶ÝtsP.h +" + +31 +boÞ + + gu£r_glob®_ÝtiÚs +[() +LENGTH_USER_GLOBAL_OPTIONS +]; + +33  + gu£r_glob®_v®ues +[() +LENGTH_USER_GLOBAL_VALUES +]; + +35 +boÞ + + gex¶ic™ +[() +LENGTH_EXPLICIT_GLOBAL_OPTIONS +]; + +38 + $u£rglob®s_nž +() + +40 + } +} + + @userglobD.h + +30 #iâdeà +USERGLOBALS + + +31  + #USERGLOBALS + + + ) + +34  + ~"u£rv®sP.h +" + +35  + ~"u£rÝtsP.h +" + +36  + ~"ex¶ÝtsP.h +" + +40 +boÞ + +u£r_glob®_ÝtiÚs +[]; + +42  + #U£rGlob®s_S‘_O±iÚ +( +Ýt +, +v® +) \ + +43 +u£r_glob®_ÝtiÚs +[()( +Ýt +)] = ( +v® +) + + ) + +45  + #U£rGlob®s_G‘_O±iÚ +( +Ýt +) \ + +46 Ð +u£r_glob®_ÝtiÚs +[()( +Ýt +)] ) + + ) + +50  +u£r_glob®_v®ues +[]; + +52  + #U£rGlob®s_S‘_V®ue +( +Ýt +, +v® +) \ + +53 +u£r_glob®_v®ues +[()( +Ýt +)] = ( +v® +) + + ) + +55  + #U£rGlob®s_G‘_V®ue +( +Ýt +) \ + +56 Ð +u£r_glob®_v®ues +[()( +Ýt +)] ) + + ) + +58  + #BORDER_SIZE_VAL + + `U£rGlob®s_G‘_V®ue +Ð +BORDER_SIZE + ) + + ) + +59  + #GADGET_WIDTH_VAL + + `U£rGlob®s_G‘_V®ue +Ð +GADGET_WIDTH + ) + + ) + +60  + #OUTER_BORDER_LINEWIDTH_VAL + + `U£rGlob®s_G‘_V®ue +Ð +OUTER_BORDER_LINEWIDTH + ) + + ) + +61  + #INNER_BORDER_LINEWIDTH_VAL + + `U£rGlob®s_G‘_V®ue +Ð +INNER_BORDER_LINEWIDTH + ) + + ) + +65 +boÞ + +ex¶ic™ +[]; + +67  + #Ex¶ic™_Glob®_G‘ +( +Ýt +) \ + +68 Ð +ex¶ic™ +[()( +Ýt +)] ) + + ) + +70  + #Ex¶ic™_Glob®_S‘ +( +Ýt +) \ + +71 ( +ex¶ic™ +[()( +Ýt +)]èð +TRUE + + + ) + +73  + #Ex¶ic™_Glob®_Cˬ +( +Ýt +) \ + +74 ( +ex¶ic™ +[()( +Ýt +)]èð +FALSE + + + ) + + @useropts.c + +23  + ~"cÝyright.h +" + +26  + ~"ba£ty³.h +" + +28 +boÞ + + gACCEPT_NON_LISTENER_IN_BODY +; + +29 +boÞ + + gACCEPT_NON_LISTENER_IN_BORDER +; + +30 +boÞ + + gACCEPT_NON_LISTENER_IN_GADGET +; + +31 +boÞ + + gACCEPT_NON_LISTENER_IN_HEADER +; + +33 +boÞ + + gALLOW_AGGRESIVE_REPOPULATION +; + +35 +boÞ + + gALLOW_ANY_SHRINK_ON_AUTO_REPOP +; + +36 +boÞ + + gALLOW_ANY_SHRINK_ON_EXPL_REPOP +; + +38 +boÞ + + gALLOW_AUTOMATIC_SHRINK_BY_CLIENT +; + +39 +boÞ + + gALLOW_AUTOMATIC_CLOSE_BY_CLIENT +; + +41 +boÞ + + gALLOW_LISTENER_TO_CLOSE +; + +42 +boÞ + + gALLOW_LSNR_TO_CHANGE_BY_CLIENT +; + +43 +boÞ + + gALLOW_LSNR_TO_CLOSE_BY_CLIENT +; + +45 +boÞ + + gAUTO_DESIRED_ENLARGE +; + +47 +boÞ + + gAUTO_PLACE_ON_ICON_OPEN +; + +48 +boÞ + + gAUTO_PLACE_ON_MENU_OPEN +; + +49 +boÞ + + gAUTO_PLACE_ON_UNSIZED_OPEN +; + +51 +boÞ + + gAUTO_PRORATE +; + +52 +boÞ + + gAUTO_PRORATE_LOCALLY +; + +54 +boÞ + + gAUTO_REPOPULATE_LAST +; + +55 +boÞ + + gAUTO_REPOPULATE_ON_AUTO_UNZOOM +; + +56 +boÞ + + gAUTO_REPOPULATE_ON_CLOSE +; + +57 +boÞ + + gAUTO_REPOP_ON_DESKTOP_RESIZE +; + +58 +boÞ + + gAUTO_REPOP_ON_EXPLICIT_UNZOOM +; + +60 +boÞ + + gALLOW_SHRINK_ON_AUTO_OPEN +; + +61 +boÞ + + gALLOW_SHRINK_ON_CENTER_OPEN +; + +62 +boÞ + + gALLOW_SHRINK_ON_CORNER_OPEN +; + +63 +boÞ + + gALLOW_SHRINK_ON_RESIZE +; + +65 +boÞ + + gBEST_FIT +; + +67 +boÞ + + gBUTTON_MAKES_LISTENER_IN_BODY +; + +68 +boÞ + + gBUTTON_MAKES_LISTENER_IN_HEADER +; + +70 +boÞ + + gCENTER_CURSOR_ON_MOVE +; + +71 +boÞ + + gCENTER_CURSOR_ON_RELOCATE +; + +73 +boÞ + + gCLEAR_BODY_ON_REDRAW +; + +75 +boÞ + + gCLOSE_IN_HEADER +; + +76 +boÞ + + gCLOSE_IN_CORNER_BORDER +; + +77 +boÞ + + gCLOSE_IN_SIDE_BORDER +; + +78 +boÞ + + gCLOSE_IN_MOVE_GADGET +; + +79 +boÞ + + gCLOSE_IN_ZOOM_GADGET +; + +81 +boÞ + + gDISTINGUISH_CORNER_BORDERS +; + +82 +boÞ + + gDISTNGSH_CORNER_BORDERS_BY_INV +; + +84 +boÞ + + gDRAW_INNER_BORDERS +; + +85 +boÞ + + gDRAW_OUTER_BORDERS +; + +87 +boÞ + + gDRAW_X_ON_MOVE +; + +88 +boÞ + + gDRAW_X_ON_OPEN +; + +89 +boÞ + + gDRAW_X_ON_RESIZE +; + +91 +boÞ + + gEXCHANGE_IN_HEADER +; + +92 +boÞ + + gEXCHANGE_IN_CORNER_BORDER +; + +93 +boÞ + + gEXCHANGE_IN_SIDE_BORDER +; + +94 +boÞ + + gEXCHANGE_IN_ZOOM_GADGET +; + +96 +boÞ + + gEXCHANGE_SIZES_IF_POSSIBLE +; + +98 +boÞ + + gFULL_SCREEN +; + +100 +Side + + gICON_PLACEMENT +; + +102 +boÞ + + gINCL_BGRND_MENU_IN_WINDOW_MENU +; + +104 +boÞ + + gKEY_MAKES_LISTENER_IN_BODY +; + +105 +boÞ + + gKEY_MAKES_LISTENER_IN_BORDER +; + +106 +boÞ + + gKEY_MAKES_LISTENER_IN_GADGET +; + +107 +boÞ + + gKEY_MAKES_LISTENER_IN_HEADER +; + +109 +boÞ + + gFOCUS_FOLLOWS_CURSOR +; + +111 +boÞ + + gLOCAL_AUTO_PRORATE_BIASED +; + +112 +boÞ + + gLOCAL_EXPLICIT_PRORATE_BIASED +; + +114 +boÞ + + gMANAGER_MENU_IN_BODY +; + +115 +boÞ + + gMANAGER_MENU_IN_CORNER_BORDER +; + +116 +boÞ + + gMANAGER_MENU_IN_HEADER +; + +117 +boÞ + + gMANAGER_MENU_IN_ICON +; + +118 +boÞ + + gMANAGER_MENU_IN_SIDE_BORDER +; + +120 +boÞ + + gMIDDLE_MENU +; + +122 +boÞ + + gMOVE_CURSOR_ON_CLIENT_OPEN +; + +123 +boÞ + + gMOVE_CURSOR_ON_MANUAL_OPEN +; + +124 +boÞ + + gMOVE_CURSOR_TO_ICON_ON_CLOSE +; + +126 +boÞ + + gMOVE_IN_HEADER +; + +127 +boÞ + + gMOVE_IN_CORNER_BORDER +; + +128 +boÞ + + gMOVE_IN_SIDE_BORDER +; + +129 +boÞ + + gMOVE_IN_ZOOM_GADGET +; + +131 +boÞ + + gONLY_REPOP_SINCE_ON_AUTO_UNZOOM +; + +132 +boÞ + + gONLY_REPOPULATE_SINCE_ON_CLOSE +; + +133 +boÞ + + gONLY_REPOP_SINCE_ON_EXPL_UNZOOM +; + +135 +boÞ + + gPLACE_CSR_IN_BODY_NOT_GADGET +; + +137 +boÞ + + gPLACE_CSR_GDGT_AFT_CL_AUTO_OPEN +; + +138 +boÞ + + gPLACE_CSR_GDGT_AFT_US_AUTO_OPEN +; + +139 +boÞ + + gPLACE_CSR_IN_GADGET_AFT_MAN_OPEN +; + +141 +boÞ + + gPLACE_CSR_IN_GADGET_AFT_EXCHANGE +; + +142 +boÞ + + gPLACE_CSR_IN_GADGET_AFT_MOVE +; + +144 +boÞ + + gPLACE_CSR_BACK_ON_CANCEL +; + +146 +boÞ + + gPREFER_CL_TO_SHR_ON_AUTO_OPEN +; + +147 +boÞ + + gPREFER_CL_TO_SHR_ON_CENTER_OPEN +; + +148 +boÞ + + gPREFER_CL_TO_SHR_ON_CORNER_OPEN +; + +149 +boÞ + + gPREFER_CL_TO_SHR_ON_RESIZE +; + +151 +boÞ + + gPREFER_PREV_POS_ON_AUTO_REPOP +; + +152 +boÞ + + gPREFER_PREV_POS_ON_EXPL_REPOP +; + +154 +boÞ + + gPF_CTR_NBR_2_CLOSE_ON_OPEN +; + +155 +boÞ + + gPF_CTR_NBR_2_SHRINK_ON_OPEN +; + +156 +boÞ + + gPF_CTR_NBR_2_ANY_SHR_ON_OPEN +; + +157 +boÞ + + gPF_EDGE_NBR_2_CLOSE_ON_OPEN +; + +158 +boÞ + + gPF_EDGE_NBR_2_SHRINK_ON_OPEN +; + +159 +boÞ + + gPF_EDGE_NBR_2_ANY_SHR_ON_OPEN +; + +161 +boÞ + + gPF_DTOP_2_CLOSE_ON_AUTO_OPEN +; + +162 +boÞ + + gPF_DTOP_2_SHRINK_ON_AUTO_OPEN +; + +163 +boÞ + + gPF_DTOP_2_ANY_SHR_ON_AUTO_OPEN +; + +165 +boÞ + + gPREF_SLD_TO_CLOSE_ON_RESIZE +; + +166 +boÞ + + gPREF_SLD_TO_SHRINK_ON_RESIZE +; + +167 +boÞ + + gPREF_SLD_TO_ANY_SHR_ON_RESIZE +; + +168 +boÞ + + gPF_CTR_NBR_2_CLOSE_ON_RESIZE +; + +169 +boÞ + + gPF_CTR_NBR_2_SHRINK_ON_RESIZE +; + +170 +boÞ + + gPF_CTR_NBR_2_ANY_SHR_ON_RESIZE +; + +171 +boÞ + + gPF_EDGE_NBR_2_CLOSE_ON_RESIZE +; + +172 +boÞ + + gPF_EDGE_NBR_2_SHRINK_ON_RESIZE +; + +173 +boÞ + + gPF_EDGE_NBR_2_ANY_SHR_ON_RESIZE +; + +175 +boÞ + + gPREFER_UNZOOM_TO_CLOSE +; + +177 +boÞ + + gPRORATE_LOCALLY +; + +179 +boÞ + + gREDRAW_IN_HEADER +; + +180 +boÞ + + gREDRAW_IN_CORNER_BORDER +; + +181 +boÞ + + gREDRAW_IN_SIDE_BORDER +; + +182 +boÞ + + gREDRAW_IN_MOVE_GADGET +; + +183 +boÞ + + gREDRAW_IN_ZOOM_GADGET +; + +185 +boÞ + + gRELOCATE_IN_HEADER +; + +186 +boÞ + + gRELOCATE_IN_CORNER_BORDER +; + +187 +boÞ + + gRELOCATE_IN_SIDE_BORDER +; + +188 +boÞ + + gRELOCATE_IN_ZOOM_GADGET +; + +190 +boÞ + + gREQUIRE_PREV_POS_ON_AUTO_REPOP +; + +191 +boÞ + + gREQUIRE_PREV_POS_ON_EXPL_REPOP +; + +193 +boÞ + + gRESET_MAX_ON_INCREASE +; + +194 +boÞ + + gRESET_MAX_ON_SHRINK +; + +196 +boÞ + + gRESET_MIN_ON_DECREASE +; + +197 +boÞ + + gRESET_MIN_ON_ENLARGE +; + +198 +boÞ + + gRESET_MIN_MAX_ON_UNSZD_MAN_OPEN +; + +199 +boÞ + + gRESET_TIED_ZOOMED_MIN_ON_ENLARGE +; + +201 +boÞ + + gRESIZE_IN_HEADER +; + +202 +boÞ + + gRESIZE_IN_CORNER_BORDER +; + +203 +boÞ + + gRESIZE_IN_SIDE_BORDER +; + +204 +boÞ + + gRESIZE_IN_MOVE_GADGET +; + +205 +boÞ + + gRESIZE_IN_ZOOM_GADGET +; + +207 +boÞ + + gSHOW_LISTENER_IN_BORDERS +; + +208 +boÞ + + gSHOW_LISTENER_IN_HEADER +; + +209 +boÞ + + gSHOW_FOCUS_IN_BORDERS +; + +210 +boÞ + + gSHOW_FOCUS_IN_HEADER +; + +212 +boÞ + + gTREAT_MOVE_LIKE_RELOCATE +; + +214 +boÞ + + gTRY_CTR_NBRHD_ON_OPEN +; + +215 +boÞ + + gTRY_EDGE_NEIGHBORHOOD_ON_OPEN +; + +217 +boÞ + + gTRY_SLIDING_ON_RESIZE +; + +218 +boÞ + + gTRY_CTR_NBRHD_ON_RESIZE +; + +219 +boÞ + + gTRY_EDGE_NEIGHBORHOOD_ON_RESIZE +; + +221 +boÞ + + gTRY_REPOP_AGAIN_AFT_AUTO_PRORATE +; + +223 +boÞ + + gUNZOOM_TIED_LSNR_IF_NECESSARY +; + +225 +boÞ + + gUSE_CORNER_BORDERS +; + +227 +boÞ + + gUSE_ICONS +; + +228 +boÞ + + gUSE_RTL_ICON +; + +230 +boÞ + + gUSER_MENU_IN_BODY +; + +231 +boÞ + + gUSER_MENU_IN_HEADER +; + +232 +boÞ + + gUSER_MENU_IN_SIDE_BORDER +; + +233 +boÞ + + gUSER_MENU_IN_CORNER_BORDER +; + +234 +boÞ + + gUSER_MENU_IN_ICON +; + +236 +boÞ + + gZOOM_IN_HEADER +; + +237 +boÞ + + gZOOM_IN_CORNER_BORDER +; + +238 +boÞ + + gZOOM_IN_SIDE_BORDER +; + +240 +boÞ + + gZOOM_ON_CREATE +; + + @useropts.h + +29 #iâdeà +BASETYPE + + +30  + ~"ba£ty³.h +" + +33 +boÞ + +ACCEPT_NON_LISTENER_IN_BODY +; + +34 +boÞ + +ACCEPT_NON_LISTENER_IN_BORDER +; + +35 +boÞ + +ACCEPT_NON_LISTENER_IN_GADGET +; + +36 +boÞ + +ACCEPT_NON_LISTENER_IN_HEADER +; + +38 +boÞ + +ALLOW_AGGRESIVE_REPOPULATION +; + +40 +boÞ + +ALLOW_ANY_SHRINK_ON_AUTO_REPOP +; + +41 +boÞ + +ALLOW_ANY_SHRINK_ON_EXPL_REPOP +; + +43 +boÞ + +ALLOW_AUTOMATIC_SHRINK_BY_CLIENT +; + +44 +boÞ + +ALLOW_AUTOMATIC_CLOSE_BY_CLIENT +; + +46 +boÞ + +ALLOW_LISTENER_TO_CLOSE +; + +47 +boÞ + +ALLOW_LSNR_TO_CHANGE_BY_CLIENT +; + +48 +boÞ + +ALLOW_LSNR_TO_CLOSE_BY_CLIENT +; + +50 +boÞ + +AUTO_DESIRED_ENLARGE +; + +52 +boÞ + +AUTO_PLACE_ON_ICON_OPEN +; + +53 +boÞ + +AUTO_PLACE_ON_MENU_OPEN +; + +54 +boÞ + +AUTO_PLACE_ON_UNSIZED_OPEN +; + +56 +boÞ + +AUTO_PRORATE +; + +57 +boÞ + +AUTO_PRORATE_LOCALLY +; + +59 +boÞ + +AUTO_REPOPULATE_LAST +; + +60 +boÞ + +AUTO_REPOPULATE_ON_AUTO_UNZOOM +; + +61 +boÞ + +AUTO_REPOPULATE_ON_CLOSE +; + +62 +boÞ + +AUTO_REPOP_ON_DESKTOP_RESIZE +; + +63 +boÞ + +AUTO_REPOP_ON_EXPLICIT_UNZOOM +; + +65 +boÞ + +ALLOW_SHRINK_ON_AUTO_OPEN +; + +66 +boÞ + +ALLOW_SHRINK_ON_CENTER_OPEN +; + +67 +boÞ + +ALLOW_SHRINK_ON_CORNER_OPEN +; + +68 +boÞ + +ALLOW_SHRINK_ON_RESIZE +; + +70 +boÞ + +BEST_FIT +; + +72 +boÞ + +BUTTON_MAKES_LISTENER_IN_BODY +; + +73 +boÞ + +BUTTON_MAKES_LISTENER_IN_HEADER +; + +75 +boÞ + +CENTER_CURSOR_ON_MOVE +; + +76 +boÞ + +CENTER_CURSOR_ON_RELOCATE +; + +78 +boÞ + +CLEAR_BODY_ON_REDRAW +; + +80 +boÞ + +CLOSE_IN_HEADER +; + +81 +boÞ + +CLOSE_IN_CORNER_BORDER +; + +82 +boÞ + +CLOSE_IN_SIDE_BORDER +; + +83 +boÞ + +CLOSE_IN_MOVE_GADGET +; + +84 +boÞ + +CLOSE_IN_ZOOM_GADGET +; + +86 +boÞ + +DISTINGUISH_CORNER_BORDERS +; + +87 +boÞ + +DISTNGSH_CORNER_BORDERS_BY_INV +; + +89 +boÞ + +DRAW_INNER_BORDERS +; + +90 +boÞ + +DRAW_OUTER_BORDERS +; + +92 +boÞ + +DRAW_X_ON_MOVE +; + +93 +boÞ + +DRAW_X_ON_OPEN +; + +94 +boÞ + +DRAW_X_ON_RESIZE +; + +96 +boÞ + +EXCHANGE_IN_HEADER +; + +97 +boÞ + +EXCHANGE_IN_CORNER_BORDER +; + +98 +boÞ + +EXCHANGE_IN_SIDE_BORDER +; + +99 +boÞ + +EXCHANGE_IN_ZOOM_GADGET +; + +101 +boÞ + +EXCHANGE_SIZES_IF_POSSIBLE +; + +103 +boÞ + +FULL_SCREEN +; + +105 +Side + +ICON_PLACEMENT +; + +107 +boÞ + +INCL_BGRND_MENU_IN_WINDOW_MENU +; + +109 +boÞ + +KEY_MAKES_LISTENER_IN_BODY +; + +110 +boÞ + +KEY_MAKES_LISTENER_IN_BORDER +; + +111 +boÞ + +KEY_MAKES_LISTENER_IN_GADGET +; + +112 +boÞ + +KEY_MAKES_LISTENER_IN_HEADER +; + +114 +boÞ + +FOCUS_FOLLOWS_CURSOR +; + +116 +boÞ + +LOCAL_AUTO_PRORATE_BIASED +; + +117 +boÞ + +LOCAL_EXPLICIT_PRORATE_BIASED +; + +119 +boÞ + +MANAGER_MENU_IN_BODY +; + +120 +boÞ + +MANAGER_MENU_IN_CORNER_BORDER +; + +121 +boÞ + +MANAGER_MENU_IN_HEADER +; + +122 +boÞ + +MANAGER_MENU_IN_ICON +; + +123 +boÞ + +MANAGER_MENU_IN_SIDE_BORDER +; + +125 +boÞ + +MIDDLE_MENU +; + +127 +boÞ + +MOVE_CURSOR_ON_CLIENT_OPEN +; + +128 +boÞ + +MOVE_CURSOR_ON_MANUAL_OPEN +; + +129 +boÞ + +MOVE_CURSOR_TO_ICON_ON_CLOSE +; + +131 +boÞ + +MOVE_IN_HEADER +; + +132 +boÞ + +MOVE_IN_CORNER_BORDER +; + +133 +boÞ + +MOVE_IN_SIDE_BORDER +; + +134 +boÞ + +MOVE_IN_ZOOM_GADGET +; + +136 +boÞ + +ONLY_REPOP_SINCE_ON_AUTO_UNZOOM +; + +137 +boÞ + +ONLY_REPOPULATE_SINCE_ON_CLOSE +; + +138 +boÞ + +ONLY_REPOP_SINCE_ON_EXPL_UNZOOM +; + +140 +boÞ + +PLACE_CSR_IN_BODY_NOT_GADGET +; + +142 +boÞ + +PLACE_CSR_GDGT_AFT_CL_AUTO_OPEN +; + +143 +boÞ + +PLACE_CSR_GDGT_AFT_US_AUTO_OPEN +; + +144 +boÞ + +PLACE_CSR_IN_GADGET_AFT_MAN_OPEN +; + +146 +boÞ + +PLACE_CSR_IN_GADGET_AFT_EXCHANGE +; + +147 +boÞ + +PLACE_CSR_IN_GADGET_AFT_MOVE +; + +149 +boÞ + +PLACE_CSR_BACK_ON_CANCEL +; + +151 +boÞ + +PREFER_CL_TO_SHR_ON_AUTO_OPEN +; + +152 +boÞ + +PREFER_CL_TO_SHR_ON_CENTER_OPEN +; + +153 +boÞ + +PREFER_CL_TO_SHR_ON_CORNER_OPEN +; + +154 +boÞ + +PREFER_CL_TO_SHR_ON_RESIZE +; + +156 +boÞ + +PREFER_PREV_POS_ON_AUTO_REPOP +; + +157 +boÞ + +PREFER_PREV_POS_ON_EXPL_REPOP +; + +159 +boÞ + +PF_CTR_NBR_2_CLOSE_ON_OPEN +; + +160 +boÞ + +PF_CTR_NBR_2_SHRINK_ON_OPEN +; + +161 +boÞ + +PF_CTR_NBR_2_ANY_SHR_ON_OPEN +; + +162 +boÞ + +PF_EDGE_NBR_2_CLOSE_ON_OPEN +; + +163 +boÞ + +PF_EDGE_NBR_2_SHRINK_ON_OPEN +; + +164 +boÞ + +PF_EDGE_NBR_2_ANY_SHR_ON_OPEN +; + +166 +boÞ + +PF_DTOP_2_CLOSE_ON_AUTO_OPEN +; + +167 +boÞ + +PF_DTOP_2_SHRINK_ON_AUTO_OPEN +; + +168 +boÞ + +PF_DTOP_2_ANY_SHR_ON_AUTO_OPEN +; + +170 +boÞ + +PREF_SLD_TO_CLOSE_ON_RESIZE +; + +171 +boÞ + +PREF_SLD_TO_SHRINK_ON_RESIZE +; + +172 +boÞ + +PREF_SLD_TO_ANY_SHR_ON_RESIZE +; + +173 +boÞ + +PF_CTR_NBR_2_CLOSE_ON_RESIZE +; + +174 +boÞ + +PF_CTR_NBR_2_SHRINK_ON_RESIZE +; + +175 +boÞ + +PF_CTR_NBR_2_ANY_SHR_ON_RESIZE +; + +176 +boÞ + +PF_EDGE_NBR_2_CLOSE_ON_RESIZE +; + +177 +boÞ + +PF_EDGE_NBR_2_SHRINK_ON_RESIZE +; + +178 +boÞ + +PF_EDGE_NBR_2_ANY_SHR_ON_RESIZE +; + +180 +boÞ + +PREFER_UNZOOM_TO_CLOSE +; + +182 +boÞ + +PRORATE_LOCALLY +; + +184 +boÞ + +REDRAW_IN_HEADER +; + +185 +boÞ + +REDRAW_IN_CORNER_BORDER +; + +186 +boÞ + +REDRAW_IN_SIDE_BORDER +; + +187 +boÞ + +REDRAW_IN_MOVE_GADGET +; + +188 +boÞ + +REDRAW_IN_ZOOM_GADGET +; + +190 +boÞ + +RELOCATE_IN_HEADER +; + +191 +boÞ + +RELOCATE_IN_CORNER_BORDER +; + +192 +boÞ + +RELOCATE_IN_SIDE_BORDER +; + +193 +boÞ + +RELOCATE_IN_ZOOM_GADGET +; + +195 +boÞ + +REQUIRE_PREV_POS_ON_AUTO_REPOP +; + +196 +boÞ + +REQUIRE_PREV_POS_ON_EXPL_REPOP +; + +198 +boÞ + +RESET_MAX_ON_INCREASE +; + +199 +boÞ + +RESET_MAX_ON_SHRINK +; + +201 +boÞ + +RESET_MIN_ON_DECREASE +; + +202 +boÞ + +RESET_MIN_ON_ENLARGE +; + +203 +boÞ + +RESET_MIN_MAX_ON_UNSZD_MAN_OPEN +; + +204 +boÞ + +RESET_TIED_ZOOMED_MIN_ON_ENLARGE +; + +206 +boÞ + +RESIZE_IN_HEADER +; + +207 +boÞ + +RESIZE_IN_CORNER_BORDER +; + +208 +boÞ + +RESIZE_IN_SIDE_BORDER +; + +209 +boÞ + +RESIZE_IN_MOVE_GADGET +; + +210 +boÞ + +RESIZE_IN_ZOOM_GADGET +; + +212 +boÞ + +SHOW_LISTENER_IN_BORDERS +; + +213 +boÞ + +SHOW_LISTENER_IN_HEADER +; + +214 +boÞ + +SHOW_FOCUS_IN_BORDERS +; + +215 +boÞ + +SHOW_FOCUS_IN_HEADER +; + +217 +boÞ + +TREAT_MOVE_LIKE_RELOCATE +; + +219 +boÞ + +TRY_CTR_NBRHD_ON_OPEN +; + +220 +boÞ + +TRY_EDGE_NEIGHBORHOOD_ON_OPEN +; + +222 +boÞ + +TRY_SLIDING_ON_RESIZE +; + +223 +boÞ + +TRY_CTR_NBRHD_ON_RESIZE +; + +224 +boÞ + +TRY_EDGE_NEIGHBORHOOD_ON_RESIZE +; + +226 +boÞ + +TRY_REPOP_AGAIN_AFT_AUTO_PRORATE +; + +228 +boÞ + +UNZOOM_TIED_LSNR_IF_NECESSARY +; + +230 +boÞ + +USE_CORNER_BORDERS +; + +232 +boÞ + +USE_ICONS +; + +233 +boÞ + +USE_RTL_ICON +; + +235 +boÞ + +USER_MENU_IN_BODY +; + +236 +boÞ + +USER_MENU_IN_HEADER +; + +237 +boÞ + +USER_MENU_IN_SIDE_BORDER +; + +238 +boÞ + +USER_MENU_IN_CORNER_BORDER +; + +239 +boÞ + +USER_MENU_IN_ICON +; + +241 +boÞ + +ZOOM_IN_HEADER +; + +242 +boÞ + +ZOOM_IN_CORNER_BORDER +; + +243 +boÞ + +ZOOM_IN_SIDE_BORDER +; + +245 +boÞ + +ZOOM_ON_CREATE +; + +247  + #U£rwš_G‘_Glob®_O±iÚ +( +Ýt +) \ + +248 Ð +Ýt + ) + + ) + +250  + #U£rwš_S‘_Glob®_O±iÚ +( +Ýt +, +v® +) \ + +251 Ð( +Ýt +èð( +v® +è) + + ) + + @useroptsP.h + +31 + mACCEPT_NON_LISTENER_IN_BODY +, + +32 + mACCEPT_NON_LISTENER_IN_BORDER +, + +33 + mACCEPT_NON_LISTENER_IN_GADGET +, + +34 + mACCEPT_NON_LISTENER_IN_HEADER +, + +36 + mALLOW_AGGRESSIVE_REPOPULATION +, + +38 + mALLOW_AUTO_SHRINK_ON_AUTO_REPOP +, + +39 + mALLOW_AUTO_SHRINK_ON_EXPL_REPOP +, + +41 + mALLOW_AUTO_SHRINK_ON_EXCHANGE +, + +42 + mALLOW_AUTO_CLOSE_ON_EXCHANGE +, + +44 + mALLOW_AUTOMATIC_SHRINK_BY_CLIENT +, + +45 + mALLOW_AUTOMATIC_CLOSE_BY_CLIENT +, + +47 + mALLOW_LISTENER_TO_CLOSE +, + +48 + mALLOW_LSNR_TO_CHANGE_BY_CLIENT +, + +49 + mALLOW_LSNR_TO_CLOSE_BY_CLIENT +, + +51 + mALLOW_SHRINK_ON_AUTO_OPEN +, + +52 + mALLOW_SHRINK_ON_CENTER_OPEN +, + +53 + mALLOW_SHRINK_ON_CORNER_OPEN +, + +54 + mALLOW_SHRINK_ON_RESIZE +, + +56 + mAUTO_DESIRED_ENLARGE +, + +58 + mAUTO_PLACE_ON_ICON_OPEN +, + +59 + mAUTO_PLACE_ON_MENU_OPEN +, + +60 + mAUTO_PLACE_ON_UNSIZED_OPEN +, + +62 + mAUTO_PRORATE +, + +63 + mAUTO_PRORATE_LOCALLY +, + +65 + mAUTO_REPOPULATE_LAST +, + +66 + mAUTO_REPOPULATE_ON_AUTO_UNZOOM +, + +67 + mAUTO_REPOPULATE_ON_CLOSE +, + +68 + mAUTO_REPOP_ON_DESKTOP_RESIZE +, + +69 + mAUTO_REPOP_ON_EXPLICIT_UNZOOM +, + +71 + mBIASED_AUTO_PRORATE +, + +72 + mBIASED_EXPLICIT_PRORATE +, + +74 + mBUTTON_MAKES_LISTENER_IN_BODY +, + +75 + mBUTTON_MAKES_LISTENER_IN_HEADER +, + +77 + mCENTER_CURSOR_ON_MOVE +, + +78 + mCENTER_CURSOR_ON_RELOCATE +, + +80 + mCLEAR_BODY_ON_REDRAW +, + +82 + mCLOSE_IN_HEADER +, + +83 + mCLOSE_IN_CORNER_BORDER +, + +84 + mCLOSE_IN_SIDE_BORDER +, + +85 + mCLOSE_IN_MOVE_GADGET +, + +86 + mCLOSE_IN_ZOOM_GADGET +, + +88 + mDESIRE_IN_HEADER +, + +89 + mDESIRE_IN_CORNER_BORDER +, + +90 + mDESIRE_IN_SIDE_BORDER +, + +91 + mDESIRE_IN_MOVE_GADGET +, + +92 + mDESIRE_IN_ZOOM_GADGET +, + +94 + mDISTINGUISH_CORNER_BORDERS +, + +95 + mDISTNGSH_CORNER_BORDERS_BY_INV +, + +97 + mDRAW_X_ON_MOVE +, + +98 + mDRAW_X_ON_OPEN +, + +99 + mDRAW_X_ON_RESIZE +, + +101 + mENABLE_AUTO_REPOP_DURING_LAYOUT +, + +102 + mENABLE_AUTO_SIZING_DURING_LAYOUT +, + +104 + mENLARGE_IN_HEADER +, + +105 + mENLARGE_IN_CORNER_BORDER +, + +106 + mENLARGE_IN_SIDE_BORDER +, + +107 + mENLARGE_IN_MOVE_GADGET +, + +108 + mENLARGE_IN_ZOOM_GADGET +, + +110 + mEXCHANGE_IN_HEADER +, + +111 + mEXCHANGE_IN_ICON +, + +112 + mEXCHANGE_IN_CORNER_BORDER +, + +113 + mEXCHANGE_IN_SIDE_BORDER +, + +114 + mEXCHANGE_IN_MOVE_GADGET +, + +115 + mEXCHANGE_IN_ZOOM_GADGET +, + +117 + mFULL_SCREEN +, + +119 + mINCL_BGRND_MENU_IN_WINDOW_MENU +, + +121 + mKEY_MAKES_LISTENER_IN_BODY +, + +122 + mKEY_MAKES_LISTENER_IN_BORDER +, + +123 + mKEY_MAKES_LISTENER_IN_GADGET +, + +124 + mKEY_MAKES_LISTENER_IN_HEADER +, + +126 + mFOCUS_FOLLOWS_CURSOR +, + +128 + mMANAGER_MENU_IN_BODY +, + +129 + mMANAGER_MENU_IN_CORNER_BORDER +, + +130 + mMANAGER_MENU_IN_HEADER +, + +131 + mMANAGER_MENU_IN_ICON +, + +132 + mMANAGER_MENU_IN_SIDE_BORDER +, + +133 + mMANAGER_MENU_IN_MOVE_GADGET +, + +134 + mMANAGER_MENU_IN_ZOOM_GADGET +, + +136 + mMIDDLE_MENU +, + +138 + mMOVE_CURSOR_ON_CLIENT_OPEN +, + +139 + mMOVE_CURSOR_ON_MANUAL_OPEN +, + +140 + mMOVE_CURSOR_TO_ICON_ON_CLOSE +, + +142 + mMOVE_IN_HEADER +, + +143 + mMOVE_IN_ICON +, + +144 + mMOVE_IN_CORNER_BORDER +, + +145 + mMOVE_IN_SIDE_BORDER +, + +146 + mMOVE_IN_MOVE_GADGET +, + +147 + mMOVE_IN_ZOOM_GADGET +, + +149 + mONLY_REPOP_SINCE_ON_AUTO_UNZOOM +, + +150 + mONLY_REPOPULATE_SINCE_ON_CLOSE +, + +151 + mONLY_REPOP_SINCE_ON_EXPL_UNZOOM +, + +153 + mPLACE_CSR_IN_BODY_NOT_BORDER +, + +154 + mPLACE_CSR_IN_BODY_NOT_GADGET +, + +156 + mPLACE_CSR_IN_BORDER_AFTER_RESIZE +, + +158 + mPLACE_CSR_GDGT_AFT_CL_AUTO_OPEN +, + +159 + mPLACE_CSR_GDGT_AFT_US_AUTO_OPEN +, + +160 + mPLACE_CSR_IN_GADGET_AFT_MAN_OPEN +, + +162 + mPLACE_CSR_IN_GADGET_AFT_EXCHANGE +, + +163 + mPLACE_CSR_IN_GADGET_AFT_MOVE +, + +165 + mPLACE_CSR_IN_ICON_AFTER_CLOSE +, + +167 + mPLACE_CSR_BACK_AFTER_MENU_OP +, + +168 + mPLACE_CSR_BACK_ON_CANCEL +, + +170 + mPREFER_CL_TO_SHR_ON_AUTO_OPEN +, + +171 + mPREFER_CL_TO_SHR_ON_CENTER_OPEN +, + +172 + mPREFER_CL_TO_SHR_ON_CORNER_OPEN +, + +173 + mPREFER_CL_TO_SHR_ON_EXCHANGE +, + +174 + mPREFER_CL_TO_SHR_ON_RESIZE +, + +176 + mPREFER_EXC_LOC_ON_ICONIZING +, + +177 + mPREFER_EXCHANGED_LOC_ON_OPENING +, + +179 + mPREFER_PREV_POS_ON_AUTO_REPOP +, + +180 + mPREFER_PREV_POS_ON_EXPL_REPOP +, + +182 + mPF_CTR_NBR_2_AUTO_CL_ON_OPEN +, + +183 + mPF_CTR_NBR_2_AUTO_SHR_ON_OPEN +, + +184 + mPF_CTR_NBR_2_SHRINK_ON_OPEN +, + +185 + mPF_EDGE_NBR_2_AUTO_CL_ON_OPEN +, + +186 + mPF_EDGE_NBR_2_AUTO_SHR_ON_OPEN +, + +187 + mPF_EDGE_NBR_2_SHRINK_ON_OPEN +, + +189 + mPF_DTOP_2_AUTO_CL_ON_AUTO_OPEN +, + +190 + mPF_DTOP_2_AUTO_SHR_ON_AUTO_OPEN +, + +191 + mPF_DTOP_2_SHRINK_ON_AUTO_OPEN +, + +193 + mPREF_SLD_TO_AUTO_CL_ON_RESIZE +, + +194 + mPREF_SLD_TO_AUTO_SHR_ON_RESIZE +, + +195 + mPREF_SLD_TO_SHRINK_ON_RESIZE +, + +196 + mPF_CTR_NBR_2_AUTO_CL_ON_RESIZE +, + +197 + mPF_CTR_NBR_2_AUTO_SHR_ON_RESIZE +, + +198 + mPF_CTR_NBR_2_SHRINK_ON_RESIZE +, + +199 + mPF_EDGE_NBR_2_AUTO_CL_ON_RESIZE +, + +200 + mPF_EDGE_NBR_2_AUTO_SHR_ON_RESIZE +, + +201 + mPF_EDGE_NBR_2_SHRINK_ON_RESIZE +, + +203 + mPREFER_UNZOOM_TO_CLOSE +, + +205 + mPRORATE_LOCALLY +, + +207 + mREDRAW_IN_HEADER +, + +208 + mREDRAW_IN_ICON +, + +209 + mREDRAW_IN_CORNER_BORDER +, + +210 + mREDRAW_IN_SIDE_BORDER +, + +211 + mREDRAW_IN_MOVE_GADGET +, + +212 + mREDRAW_IN_ZOOM_GADGET +, + +214 + mRELOCATE_IN_HEADER +, + +215 + mRELOCATE_IN_CORNER_BORDER +, + +216 + mRELOCATE_IN_SIDE_BORDER +, + +217 + mRELOCATE_IN_MOVE_GADGET +, + +218 + mRELOCATE_IN_ZOOM_GADGET +, + +220 + mREPOPULATE_STRICTLY +, + +221 + mREPOPULATE_AUTO_CLOSED_ONLY +, + +223 + mREQUIRE_PREV_POS_ON_AUTO_REPOP +, + +224 + mREQUIRE_PREV_POS_ON_EXPL_REPOP +, + +226 + mRESET_MAX_ON_INCREASE +, + +227 + mRESET_MAX_ON_SHRINK +, + +229 + mRESET_MIN_ON_DECREASE +, + +230 + mRESET_MIN_ON_ENLARGE +, + +231 + mRESET_MIN_MAX_ON_UNSZD_MAN_OPEN +, + +232 + mRESET_TIED_ZOOMED_MIN_ON_ENLARGE +, + +234 + mRESET_ZOOM_MIN +, + +235 + mRESET_ZOOM_MIN_ALLOWS_DECREASE +, + +236 + mRESET_ZOOM_MIN_USES_DESIRE +, + +238 + mRESIZE_IN_HEADER +, + +239 + mRESIZE_IN_CORNER_BORDER +, + +240 + mRESIZE_IN_SIDE_BORDER +, + +241 + mRESIZE_IN_MOVE_GADGET +, + +242 + mRESIZE_IN_ZOOM_GADGET +, + +244 + mSHOW_LISTENER_IN_BORDERS +, + +245 + mSHOW_LISTENER_IN_HEADER +, + +246 + mSHOW_FOCUS_IN_BORDERS +, + +247 + mSHOW_FOCUS_IN_HEADER +, + +249 + mTREAT_MOVE_LIKE_RELOCATE +, + +251 + mTRY_CTR_NBRHD_ON_EXCHANGE +, + +253 + mTRY_CTR_NBRHD_ON_OPEN +, + +254 + mTRY_EDGE_NEIGHBORHOOD_ON_OPEN +, + +256 + mTRY_SLIDING_ON_RESIZE +, + +257 + mTRY_CTR_NBRHD_ON_RESIZE +, + +258 + mTRY_EDGE_NEIGHBORHOOD_ON_RESIZE +, + +260 + mTRY_REPOP_AGAIN_AFT_AUTO_PRORATE +, + +262 + mUNZOOM_TIED_LSNR_IF_NECESSARY +, + +264 + mUSE_CORNER_BORDERS +, + +266 + mUSE_ICON_AREA +, + +267 + mUSE_ICONS +, + +268 + mUSE_RTL_ICON +, + +270 + mUSER_MENU_IN_BODY +, + +271 + mUSER_MENU_IN_HEADER +, + +272 + mUSER_MENU_IN_SIDE_BORDER +, + +273 + mUSER_MENU_IN_CORNER_BORDER +, + +274 + mUSER_MENU_IN_ICON +, + +275 + mUSER_MENU_IN_MOVE_GADGET +, + +276 + mUSER_MENU_IN_ZOOM_GADGET +, + +278 + mZOOM_IN_HEADER +, + +279 + mZOOM_IN_CORNER_BORDER +, + +280 + mZOOM_IN_SIDE_BORDER +, + +281 + mZOOM_IN_MOVE_GADGET +, + +282 + mZOOM_IN_ZOOM_GADGET +, + +284 + mZOOM_ON_CREATE +, + +286 + mLENGTH_USER_GLOBAL_OPTIONS + + +287 } + tU£r_Glob®_O±iÚs +; + + @useroptsS.h + +28 *( + gu£r_glob®_¡rs +[() +LENGTH_USER_GLOBAL_OPTIONS +]) = { + + @uservalsP.h + +32 + mIcÚ_NÚe +, + +33 + mIcÚ_TÝ +, + mIcÚ_BÙtom +, + +34 + mIcÚ_Leá +, + mIcÚ_Right +, + +35 + mIcÚ_MiddË + + +36 } + tIcÚ_Pos™iÚ +; + +41 + mABS_MIN_WIDTH +, + +42 + mABS_MIN_HEIGHT +, + +44 + mRTL_LEFT_X +, + +45 + mRTL_TOP_Y +, + +47 + mFULL_WIDTH +, + +48 + mFULL_HEIGHT +, + +50 + mRTL_WIDTH +, + +51 + mRTL_HEIGHT +, + +53 + mICON_AREA_TOP +, + +54 + mICON_AREA_BOTTOM +, + +55 + mICON_AREA_LEFT +, + +56 + mICON_AREA_RIGHT +, + +58 + mBORDER_SIZE +, + +59 + mOUTER_BORDER_LINEWIDTH +, + +60 + mINNER_BORDER_LINEWIDTH +, + +62 + mGADGET_WIDTH +, + +64 + mGRAVITY +, + +66 + mICON_PLACEMENT +, + +67 + mSECONDARY_ICON_PLACEMENT +, + +69 + mNEIGHBORHOOD_SHRINK_FACTOR +, + +71 + mLENGTH_USER_GLOBAL_VALUES + + +72 } + tU£r_Glob®_V®ues +; + + @uservalsS.h + +30 *( + gu£r_glob®_v®ue_¡rs +[() +LENGTH_USER_GLOBAL_VALUES +]) = { + + @uwin.c + +23  + ~"cÝyright.h +" + +25  + ~"ba£ty³.h +" + +27  + ~"uwšD.h +" + +29  + ~"»giÚ.h +" + +31 +boÞ + + gu£r_deçuÉs +[() +LENGTH_USER_WINDOW_OPTIONS +]; + +35  + $U£rwš_S‘up_Sizes +Ð +uwšp + ) + +36 +U£rwš + * +uwšp +; + +38 iàÐ +uwšp +-> +zoomed + ) + +40 +uwšp +-> +zoom_mš + = + `Tžwš_G‘_Mš +(uwšp-> +wšp +); + +41 +uwšp +-> +zoom_size + = + `Tžwš_G‘_Desœed +(uwšp-> +wšp +); + +45 +uwšp +-> +»guÏr_mš + = + `Tžwš_G‘_Mš +(uwšp-> +wšp +); + +46 +uwšp +-> +»guÏr_size + = + `Tžwš_G‘_Desœed +(uwšp-> +wšp +); + +48 + } +} + +52  + $U£rwš_FÞlowup_Sizes +Ð +uwšp + ) + +53 +U£rwš + * +uwšp +; + +55 iàÐ +uwšp +-> +zoomed + ) + +57 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, uwšp-> +zoom_mš + ); + +58 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, uwšp-> +zoom_size + ); + +62 + `Tžwš_S‘_Mš +Ð +uwšp +-> +wšp +, uwšp-> +»guÏr_mš + ); + +63 + `Tžwš_S‘_Desœed +Ð +uwšp +-> +wšp +, uwšp-> +»guÏr_size + ); + +65 + } +} + +69  + $U£rwš_EnfÜû_Cl›Á_Mš +Ð +uwšp + ) + +70 +U£rwš + * +uwšp +; + +72 +Size + +max_size +; + +74 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, + +75 +ENFORCE_CLIENT_MINIMUMS + ) ) + +77 + `S‘_Max_Size +Ð +uwšp +-> +»guÏr_mš +, uwinp->regular_min, + +78 +uwšp +-> +þ›Á_mš + ) + +79 + `S‘_Max_Size +Ð +uwšp +-> +»guÏr_size +, uwinp->regular_size, + +80 +uwšp +-> +þ›Á_mš + ) + +81 + `S‘_Max_Size +Ð +uwšp +-> +zoom_mš +, uwinp->zoom_min, + +82 +uwšp +-> +þ›Á_mš + ) + +83 + `S‘_Max_Size +Ð +uwšp +-> +zoom_size +, uwinp->zoom_size, + +84 +uwšp +-> +þ›Á_mš + ) + +85 + `S‘_Max_Size +Ð +max_size +, + `Tžwš_G‘_Max +Ð +uwšp +-> +wšp + ), + +86 +uwšp +-> +þ›Á_mš + ) + +87 + `Tžwš_S‘_Max +Ð +uwšp +-> +wšp +, +max_size + ); + +89 + } +} + +93  + $U£rwš_EnfÜû_Cl›Á_Max +Ð +uwšp + ) + +94 +U£rwš + * +uwšp +; + +96 +Size + +max_size +; + +98 iàÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, + +99 +ENFORCE_CLIENT_MAXIMUMS + ) ) + +101 + `S‘_Mš_Size +Ð +max_size +, + `Tžwš_G‘_Max +Ð +uwšp +-> +wšp + ), + +102 +uwšp +-> +þ›Á_max + ) + +103 + `Tžwš_S‘_Max +Ð +uwšp +-> +wšp +, +max_size + ); + +104 + `S‘_Mš_Size +Ð +uwšp +-> +»guÏr_size +, uwinp->regular_size, + +105 +uwšp +-> +þ›Á_max + ) + +106 + `S‘_Mš_Size +Ð +uwšp +-> +»guÏr_mš +, uwinp->regular_min, + +107 +uwšp +-> +þ›Á_max + ) + +108 + `S‘_Mš_Size +Ð +uwšp +-> +zoom_size +, uwinp->zoom_size, + +109 +uwšp +-> +þ›Á_max + ) + +110 + `S‘_Mš_Size +Ð +uwšp +-> +zoom_mš +, uwinp->zoom_min, + +111 +uwšp +-> +þ›Á_max + ) + +113 + } +} + +117  + $U£rwš_EnfÜû_Cl›Á_Sizes +Ð +uwšp + ) + +118 +U£rwš + * +uwšp +; + +120 + `U£rwš_EnfÜû_Cl›Á_Max +Ð +uwšp + ); + +121 + `U£rwš_EnfÜû_Cl›Á_Mš +Ð +uwšp + ); + +122 + } +} + +126  + $U£rwš_Cl›Á_Mš_Max +Ð +uwšp + ) + +127 +U£rwš + * +uwšp +; + +129 +Size + +siz +; + +131 +uwšp +-> +þ›Á_max + = + +132 + `RegiÚ_Adju¡_Size +Ð +uwšp +, uwšp-> +body_max + ); + +133 +uwšp +-> +þ›Á_mš + = + +134 + `RegiÚ_Adju¡_Size +Ð +uwšp +, uwšp-> +body_mš + ); + +136 +siz +. +width + = + `U£rGlob®s_G‘_V®ue +Ð +FULL_WIDTH + ); + +137 +siz +. +height + = + `U£rGlob®s_G‘_V®ue +Ð +FULL_HEIGHT + ); + +138 + `S‘_Mš_Size +Ð +uwšp +-> +þ›Á_max +, + +139 +uwšp +-> +þ›Á_max +, +siz + ); + +141 +siz +. +width + = + `U£rGlob®s_G‘_V®ue +Ð +ABS_MIN_WIDTH + ); + +142 +siz +. +height + = + `U£rGlob®s_G‘_V®ue +Ð +ABS_MIN_HEIGHT + ); + +143 + `S‘_Max_Size +Ð +uwšp +-> +þ›Á_mš +, + +144 +uwšp +-> +þ›Á_mš +, +siz + ); + +146 + `S‘_Max_Size +Ð +uwšp +-> +þ›Á_max +, + +147 +uwšp +-> +þ›Á_max +, uwšp-> +þ›Á_mš + ); + +148 + } +} + +152  + $U£rwš_Body_Mš +Ð +uwšp + ) + +153 +U£rwš + * +uwšp +; + +155 + `U£rwš_Cl›Á_Mš_Max +Ð +uwšp + ); + +157 + `S‘_Max_Size +Ð +uwšp +-> +þ›Á_max +, + +158 +uwšp +-> +þ›Á_max +, uwšp-> +þ›Á_mš + ); + +159 + } +} + +163  + $U£rwš_Body_Max +Ð +uwšp + ) + +164 +U£rwš + * +uwšp +; + +166 + `U£rwš_Cl›Á_Mš_Max +Ð +uwšp + ); + +168 + `S‘_Mš_Size +Ð +uwšp +-> +þ›Á_mš +, + +169 +uwšp +-> +þ›Á_mš +, uwšp-> +þ›Á_max + ); + +170 + } +} + +174  + $U£rwš_Body_Mš_Max +Ð +uwšp + ) + +175 +U£rwš + * +uwšp +; + +177 + `U£rwš_Cl›Á_Mš_Max +Ð +uwšp + ); + +179 + `S‘_Max_Size +Ð +uwšp +-> +þ›Á_max +, + +180 +uwšp +-> +þ›Á_max +, uwšp-> +þ›Á_mš + ); + +181 + } +} + +185  + $U£rwš_Check_Sizes +Ð +uwšp + ) + +186 +U£rwš + * +uwšp +; + +188 +Size + +max_size +; + +190 + `S‘_Max_Size +Ð +max_size +, +uwšp +-> +»guÏr_mš +, uwšp-> +zoom_mš + ); + +191 + `S‘_Max_Size +Ð +max_size +, max_size, + `Tžwš_G‘_Max +Ð +uwšp +-> +wšp + ) ); + +192 + `Tžwš_S‘_Max +Ð +uwšp +-> +wšp +, +max_size + ); + +194 + `S‘_Max_Size +Ð +uwšp +-> +»guÏr_size +, uwinp->regular_size, + +195 +uwšp +-> +»guÏr_mš + ); + +196 + `S‘_Mš_Size +Ð +uwšp +-> +»guÏr_size +, uwinp->regular_size, + +197 +max_size + ); + +199 + `S‘_Max_Size +Ð +uwšp +-> +zoom_mš +, uwšp->zoom_mš, uwšp-> +»guÏr_mš + ); + +200 + `S‘_Max_Size +Ð +uwšp +-> +zoom_size +, uwšp->zoom_size, uwšp-> +»guÏr_size + ); + +202 + `S‘_Max_Size +Ð +uwšp +-> +zoom_size +, uwšp->zoom_size, uwšp-> +zoom_mš + ); + +203 + `S‘_Mš_Size +Ð +uwšp +-> +zoom_size +, uwšp->zoom_size, +max_size + ); + +204 + } +} + +208  + $U£rwš_Bound_Size +Ð +uwšp + ) + +209 +U£rwš + * +uwšp +; + +211 +Size + +siz +; + +213 +siz + = + `Tžwš_G‘_Size +Ð +uwšp +-> +wšp + ); + +214 + `S‘_Mš_Size +Ð +siz +, siz, + `Tžwš_G‘_Max +( +uwšp +-> +wšp +) ); + +215 + `S‘_Max_Size +Ð +siz +, siz, + `Tžwš_G‘_Mš +( +uwšp +-> +wšp +) ); + +216 + `Tžwš_S‘_Size +Ð +uwšp +-> +wšp +, +siz + ); + +217 + } +} + + @uwin.h + +2  +U£rwš_S‘up_Sizes +(); + +3  +U£rwš_FÞlowup_Sizes +(); + +4  +U£rwš_EnfÜû_Cl›Á_Mš +(); + +5  +U£rwš_EnfÜû_Cl›Á_Max +(); + +6  +U£rwš_EnfÜû_Cl›Á_Sizes +(); + +7  +U£rwš_Body_Mš +(); + +8  +U£rwš_Body_Max +(); + +9  +U£rwš_Body_Mš_Max +(); + +10  +U£rwš_Check_Sizes +(); + +11  +U£rwš_Bound_Size +(); + + @uwinD.h + +28  + #USERWIN_DEFINE + + + ) + +30 #iâdeà +USERWIN + + +31  + ~"uwšP.h +" + +34 #iâdeà +TILWIN_DEFINE + + +35  + ~"twšD.h +" + +38 #iâdeà +USERGLOBALS + + +39  + ~"u£rglobD.h +" + +42  + ~"twš.h +" + +46  + #GroupS‹ + -3 + + ) + +47  + #Nev”S‹ + -2 + + ) + +48  + #NoS‹ + -1 + + ) + +49  + #DÚtC¬eS‹ + 0 + + ) + +50  + #NÜm®S‹ + 1 + + ) + +51  + #Cl›ÁIcÚS‹ + 2 + + ) + +52  + #IcÚicS‹ + 3 + + ) + +53  + #IÇùiveS‹ + 4 + + ) + +54  + #IgnÜeS‹ + 5 + + ) + +56  + #U£rwš_AÎoÿ‹ + \ + +57 Ð + `®loÿ‹ +( +U£rwš +,1è) + + ) + +59  + #U£rwš_D—Îoÿ‹ +( +uwšp +) \ + +60 + `ä“ +Ð +uwšp + ) + + ) + +62  + #U£rwš_G‘ +( +wšp +) \ + +63 (( +U£rwš + *)( + `Tžwš_G‘_Wšdow_Id +( +wšp +))) + + ) + +65  + #U£rwš_G‘_Wšdow_O±iÚ +( +uwšp +, +Ýt +) \ + +66 Ð( +uwšp +)-> +ÝtiÚs +[()( +Ýt +)] ) + + ) + +68  + #U£rwš_S‘_Wšdow_O±iÚ +( +uwšp +, +Ýt +, +v® +) \ + +69 (( +uwšp +)-> +ÝtiÚs +[()( +Ýt +)]èð( +v® +) + + ) + +71  + #Ex¶ic™_Wšdow_G‘ +( +uwšp +, +Ýt +) \ + +72 Ð( +uwšp +)-> +ex¶ic™ +[()( +Ýt +)] ) + + ) + +74  + #Ex¶ic™_Wšdow_S‘ +( +uwšp +, +Ýt +) \ + +75 (( +uwšp +)-> +ex¶ic™ +[()( +Ýt +)]èð +TRUE + + + ) + +77  + #Ex¶ic™_Wšdow_Cˬ +( +uwšp +, +Ýt +) \ + +78 (( +uwšp +)-> +ex¶ic™ +[()( +Ýt +)]èð +FALSE + + + ) + +82 +Size + +abs_mš_siz +, +abs_max_siz +; + +84  + #U£rwš_Check_Mš +( +uwšp +) \ + +85 Ð(! + `U£rGlob®s_G‘_O±iÚ +Ð +RESET_MIN_ON_DECREASE + ) ) ? \ + +86 + `Tžwš_G‘_Mš +Ð( +uwšp +)-> +wšp + ) : \ + +87 + `U£rwš_G‘_Wšdow_O±iÚ +Ð( +uwšp +), +ENFORCE_CLIENT_MINIMUMS + ) ? \ + +88 ( +uwšp +)-> +þ›Á_mš + : +abs_mš_siz + ) + + ) + +90  + #U£rwš_Check_Max +( +uwšp +) \ + +91 Ð(! + `U£rGlob®s_G‘_O±iÚ +Ð +RESET_MAX_ON_INCREASE + ) ) ? \ + +92 + `Tžwš_G‘_Max +Ð( +uwšp +)-> +wšp + ) : \ + +93 + `U£rwš_G‘_Wšdow_O±iÚ +Ð( +uwšp +), +ENFORCE_CLIENT_MAXIMUMS + ) ? \ + +94 ( +uwšp +)-> +þ›Á_max + : +abs_max_siz + ) + + ) + +96  + #U£rwš_Check_C’‹r_O³n +( +uwšp +, +pos +) \ + +97 + `Tžwš_Check_CÜÃr_O³n +(( +uwšp +)-> +wšp +, +pos +) + + ) + +99  + #U£rwš_Check_Move +( +uwšp +, +po¥ +, +sizp +) \ + +100 + `Tžwš_Check_C’‹r_O³n +(( +uwšp +)-> +wšp +, +po¥ +, +sizp +) + + ) + +102  + #U£rwš_Check_CÜÃr_O³n +( +uwšp +, +¥o¥ +, +ýo¥ +, +side +) \ + +103 + `Tžwš_Check_CÜÃr_O³n +Ð( +uwšp +)-> +wšp +, +¥o¥ +, +ýo¥ +, +side +, \ + +104 + `U£rwš_Check_Mš +( +uwšp +), + `U£rwš_Check_Max +(uwšpè) + + ) + +106  + #U£rwš_Check_Edge_Resize +( +uwšp +, +po¥ +, +side +) \ + +107 + `Tžwš_Check_Resize +(( +uwšp +)-> +wšp +, +po¥ +, +side +, \ + +108 + `U£rwš_Check_Mš +( +uwšp +), + `U£rwš_Check_Max +(uwšpè) + + ) + +110  + #U£rwš_Check_CÜÃr_Resize +( +uwšp +, +po¥ +, +side +) \ + +111 + `Tžwš_Check_Resize +(( +uwšp +)-> +wšp +, +po¥ +, +side +, \ + +112 + `U£rwš_Check_Mš +( +uwšp +), + `U£rwš_Check_Max +(uwšpè) + + ) + +116  + #U£rwš_G‘_C’‹r +( +uwšp +) \ + +117 + `Tžwš_G‘_C’‹r +(( +uwšp +)-> +wšp +) + + ) + +119  + #U£rwš_G‘_Size +( +uwšp +) \ + +120 + `Tžwš_G‘_Size +(( +uwšp +)-> +wšp +) + + ) + +122  + #U£rwš_G‘_ReùªgË +( +uwšp +) \ + +123 + `Tžwš_G‘_ReùªgË +(( +uwšp +)-> +wšp +) + + ) + +125  + #U£rwš_G‘_P»vious_ReùªgË +( +uwšp +) \ + +126 + `Tžwš_G‘_P»vious_ReùªgË +(( +uwšp +)-> +wšp +) + + ) + +128  + #U£rwš_Is_O³n +( +uwšp +) \ + +129 + `Tžwš_Is_O³n +(( +uwšp +)-> +wšp +) + + ) + +131  + #U£rwš_Syed_Stžl +( +uwšp +) \ + +132 Ð(! + `Tžwš_Was_Ju¡_Chªged +(( +uwšp +)-> +wšp +)) || \ + +133 (! + `Tžwš_Was_Aùu®ly_Modif›d +(( +uwšp +)-> +wšp +)è) + + ) + +135  + #U£rwš_Size_Chªged +( +uwšp +) \ + +136 + `Tžwš_Size_Chªged +(( +uwšp +)-> +wšp +) + + ) + +140  + #U£rwš_Is_IcÚic +( +uwšp +) \ + +141 + `Tžwš_Is_O³n +Ð( +uwšp +)-> +icÚp + ) + + ) + +143  + #U£rwš_Check_IcÚ_Move +( +uwšp +, +po¥ +, +sizp +) \ + +144 + `Tžwš_Check_C’‹r_O³n +(( +uwšp +)-> +icÚp +, +po¥ +, +sizp +) + + ) + +146  + #U£rwš_G‘_IcÚ_C’‹r +( +uwšp +) \ + +147 + `Tžwš_G‘_C’‹r +(( +uwšp +)-> +icÚp +) + + ) + +149  + #U£rwš_IcÚ_Syed_Stžl +( +uwšp +) \ + +150 Ð(! + `Tžwš_Was_Ju¡_Chªged +(( +uwšp +)-> +icÚp +)) || \ + +151 (! + `Tžwš_Was_Aùu®ly_Modif›d +(( +uwšp +)-> +icÚp +)è) + + ) + +155  + #U£rwš_EÇbË_IÅut +( +uwšp +) \ + +156 (( +uwšp +)-> +šput_’abËd +èð +TRUE + + + ) + +158  + #U£rwš_Di§bË_IÅut +( +uwšp +) \ + +159 (( +uwšp +)-> +šput_’abËd +èð +FALSE + + + ) + +161  + #U£rwš_IÅut_EÇbËd +( +uwšp +) \ + +162 Ð(( +uwšp +è!ð +UWIN_NULL +è&& ((uwšp)-> +šput_’abËd +)) + + ) + +164  + #U£rwš_Is_Zoomed +( +uwšp +) \ + +165 Ð( +uwšp +)-> +zoomed + ) + + ) + +167  + #U£rwš_S‹ +( +uwšp +) \ + +168 Ð( +uwšp +)-> +þ›Á_¡©e + ) + + ) + +170  + #U£rwš_Wm_S‹ +( +uwšp +) \ + +171 Ð( +uwšp +)-> +wm_¡©e +) + + ) + +173  + #U£rwš_S¹up_S‹ +( +uwšp +) \ + +174 Ð( +uwšp +)-> +¡¬tup_¡©e +) + + ) + +175  + #U£rwš_Group_Clo£d +( +uwšp +) \ + +176 Ð( +uwšp +)-> +group_¡©e + !ð +GroupS‹ + ) + + ) + +178  + #U£rwš_Sized +( +uwšp +) \ + +179 Ð( +uwšp +)-> +sized + ) + + ) + +181  + #U£rwš_Pos™iÚed +( +uwšp +) \ + +182 Ð( +uwšp +)-> +pos™iÚed + ) + + ) + +184  + #U£rwš_Ev”_O³Ãd +( +uwšp +) \ + +185 Ð( +uwšp +)-> +ev”_Ý’ed + ) + + ) + +187  + #U£rwš_Laid_Out +( +uwšp +) \ + +188 Ð( +uwšp +)-> +Ïyout_found + ) + + ) + +190  + #U£rwš_Savšg_S‹ +( +uwšp +) \ + +191 Ð( +uwšp +)-> +§všg_¡©e + ) + + ) + +193  + #U£rwš_Commªd_Efãù +( +uwšp +) \ + +194 Ð( +uwšp +)-> +soá_kžl + ) + + ) + +196  + #U£rwš_T™Ë +( +uwšp +) \ + +197 Ð( +uwšp +)-> +t™Ë + ) + + ) + +199  + #U£rwš_Aù_C»©ed_O³n +( +uwšp +) \ + +200 ÐÐ + `U£rwš_G‘_Wšdow_O±iÚ +Ð( +uwšp +), +AUTO_OPEN_ON_CREATE + ) ) || \ + +201 Ð + `U£rGlob®s_G‘_O±iÚ +( +USE_ICONS +) && \ + +202 + `U£rwš_G‘_Wšdow_O±iÚ +Ð( +uwšp +), +CLIENT_DRAWS_ICON + ) ) ) + + ) + +204  + #U£rwš_C»©es_D¿w_IcÚic +( +uwšp +) \ + +205 Ð(! + `U£rwš_G‘_Wšdow_O±iÚ +Ð( +uwšp +), +AUTO_OPEN_ON_CREATE + ) ) && \ + +206 + `U£rGlob®s_G‘_O±iÚ +( +USE_ICONS +) && \ + +207 + `U£rwš_G‘_Wšdow_O±iÚ +Ð( +uwšp +), +CLIENT_DRAWS_ICON + ) ) + + ) + +211  + #U£rwš_D’›s_CÚfigu» +( +uwšp +) \ + +212 ÐÐ(( +uwšp +)-> +mes§ges +è& (1L << 0èè!ð0 ) + + ) + +214  + #U£rwš_NÙes_Wšdow_Moved +( +uwšp +) \ + +215 ÐÐ(( +uwšp +)-> +mes§ges +è& (1L << 1èè!ð0 ) + + ) + +217  + #U£rwš_Bªgs +( +uwšp +) \ + +218 ÐÐ(( +uwšp +)-> +mes§ges +è& (1L << 2èè!ð0 ) + + ) + +220  + #U£rwš_Takes_Focus +( +uwšp +) \ + +221 ÐÐ( +uwšp +è!ð +UWIN_NULL + ) && \ + +222 ÐÐ(( +uwšp +)-> +mes§ges +è& (1L << 3èè!ð0 ) ) + + ) + +224  + #U£rwš_D–‘es_Wšdow +( +uwšp +) \ + +225 ÐÐ(( +uwšp +)-> +mes§ges +è& (1L << 4èè!ð0 ) + + ) + +227  + #U£rwš_NÙif›s_IcÚ +( +uwšp +) \ + +228 ÐÐ(( +uwšp +)-> +mes§ges +è& (1L << 5èè!ð0 ) + + ) + +230  + #U£rwš_In™ŸÎy_M­³d +( +uwšp +) \ + +231 ( +uwšp +)-> +š™ŸÎy_m­³d + + + ) + +233  + #U£rwš_In™ŸÎy_IcÚ_M­³d +( +uwšp +) \ + +234 ( +uwšp +)-> +š™ŸÎy_icÚ_m­³d + + + ) + + @uwinL.h + +28 #iâdeà +USERWIN_DEFINE + + +29  + ~"uwšD.h +" + +34  + #U£rwš_AÎows_Clo£ +( +uwšp +) \ + +35 (! + `Tžwš_G‘_Wšdow_O±iÚ +Ð( +uwšp +)-> +wšp +, +REQUIRE_MANUAL_CLOSE + ) ) + + ) + +37  + #U£rwš_DÚt_Clo£ +( +uwšp +) \ + +39 + `Tžwš_S‘_Wšdow_O±iÚ +Ð( +uwšp +)-> +wšp +, +REQUIRE_MANUAL_CLOSE +, +TRUE + ); \ + +40 + `Ex¶ic™_Wšdow_S‘ +Ð +uwšp +, +EXPLICIT_REQUIRE_MANUAL_CLOSE + ); \ + +41 Ð( +uwšp +)-> +»guÏr_mªu®_þo£ + ) = +TRUE +; \ + +42 } + + ) + +44  + #U£rwš_AÎow_Clo£ +( +uwšp +) \ + +46 + `Tžwš_S‘_Wšdow_O±iÚ +Ð( +uwšp +)-> +wšp +, +REQUIRE_MANUAL_CLOSE +, +FALSE + ); \ + +47 ( +uwšp +)-> +»guÏr_mªu®_þo£ + = +FALSE +; \ + +48 + `Ex¶ic™_Wšdow_S‘ +Ð +uwšp +, +EXPLICIT_REQUIRE_MANUAL_CLOSE + ); \ + +49 } + + ) + +53  + #U£rwš_AÎows_Chªge_Size +( +uwšp +) \ + +54 (! + `Tžwš_G‘_Wšdow_O±iÚ +Ð( +uwšp +)-> +wšp +, +FIXED_SIZE + ) ) + + ) + +56  + #U£rwš_DÚt_Chªge_Size +( +uwšp +) \ + +58 + `Tžwš_S‘_Wšdow_O±iÚ +Ð( +uwšp +)-> +wšp +, +FIXED_SIZE +, +TRUE + ); \ + +59 + `Ex¶ic™_Wšdow_S‘ +Ð +uwšp +, +EXPLICIT_FIXED_SIZE + ); \ + +60 } + + ) + +62  + #U£rwš_AÎow_Chªge_Size +( +uwšp +) \ + +64 + `Tžwš_S‘_Wšdow_O±iÚ +Ð( +uwšp +)-> +wšp +, +FIXED_SIZE +, +FALSE + ); \ + +65 + `Ex¶ic™_Wšdow_S‘ +Ð +uwšp +, +EXPLICIT_FIXED_SIZE + ); \ + +66 } + + ) + +70  + #U£rwš_AÎows_Chªge_Width +( +uwšp +) \ + +71 (! + `Tžwš_G‘_Wšdow_O±iÚ +Ð( +uwšp +)-> +wšp +, +FIXED_WIDTH + ) ) + + ) + +73  + #U£rwš_DÚt_Chªge_Width +( +uwšp +) \ + +75 + `Tžwš_S‘_Wšdow_O±iÚ +Ð( +uwšp +)-> +wšp +, +FIXED_WIDTH +, +TRUE + ); \ + +76 + `Ex¶ic™_Wšdow_S‘ +Ð +uwšp +, +EXPLICIT_FIXED_WIDTH + ); \ + +77 } + + ) + +79  + #U£rwš_AÎow_Chªge_Width +( +uwšp +) \ + +81 + `Tžwš_S‘_Wšdow_O±iÚ +Ð( +uwšp +)-> +wšp +, +FIXED_WIDTH +, +FALSE + ); \ + +82 + `Ex¶ic™_Wšdow_S‘ +Ð +uwšp +, +EXPLICIT_FIXED_WIDTH + ); \ + +83 } + + ) + +87  + #U£rwš_AÎows_Chªge_Height +( +uwšp +) \ + +88 (! + `Tžwš_G‘_Wšdow_O±iÚ +Ð( +uwšp +)-> +wšp +, +FIXED_HEIGHT + ) ) + + ) + +90  + #U£rwš_DÚt_Chªge_Height +( +uwšp +) \ + +92 + `Tžwš_S‘_Wšdow_O±iÚ +Ð( +uwšp +)-> +wšp +, +FIXED_HEIGHT +, +TRUE + ); \ + +93 + `Ex¶ic™_Wšdow_S‘ +Ð +uwšp +, +EXPLICIT_FIXED_HEIGHT + ); \ + +94 } + + ) + +96  + #U£rwš_AÎow_Chªge_Height +( +uwšp +) \ + +98 + `Tžwš_S‘_Wšdow_O±iÚ +Ð( +uwšp +)-> +wšp +, +FIXED_HEIGHT +, +FALSE + ); \ + +99 + `Ex¶ic™_Wšdow_S‘ +Ð +uwšp +, +EXPLICIT_FIXED_HEIGHT + ); \ + +100 } + + ) + +104  + #U£rwš_AÎows_Chªge +( +uwšp +) \ + +105 (! + `Tžwš_G‘_Wšdow_O±iÚ +Ð( +uwšp +)-> +wšp +, +FIXED_COMPLETELY + ) ) + + ) + +107  + #U£rwš_DÚt_Chªge +( +uwšp +) \ + +109 + `Tžwš_S‘_Wšdow_O±iÚ +Ð( +uwšp +)-> +wšp +, +FIXED_COMPLETELY +, +TRUE + ); \ + +110 + `Ex¶ic™_Wšdow_S‘ +Ð +uwšp +, +EXPLICIT_FIXED_COMPLETELY + ); \ + +111 } + + ) + +113  + #U£rwš_AÎow_Chªge +( +uwšp +) \ + +115 + `Tžwš_S‘_Wšdow_O±iÚ +Ð( +uwšp +)-> +wšp +, +FIXED_COMPLETELY +, +FALSE + ); \ + +116 + `Ex¶ic™_Wšdow_S‘ +Ð +uwšp +, +EXPLICIT_FIXED_COMPLETELY + ); \ + +117 } + + ) + +121  + #U£rwš_T›d_Li¡’” +( +uwšp +) \ + +122 Ð + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +LISTENER_TIED_TO_ZOOM + ) ) + + ) + +124  + #U£rwš_DÚt_T›_Li¡’” +( +uwšp +) \ + +126 + `U£rwš_S‘_Wšdow_O±iÚ +Ð +uwšp +, +LISTENER_TIED_TO_ZOOM +, +FALSE + ); \ + +127 + `Ex¶ic™_Wšdow_S‘ +Ð +uwšp +, +EXPLICIT_LISTENER_TIED_TO_ZOOM + ); \ + +128 } + + ) + +130  + #U£rwš_AÎow_T›_Li¡’” +( +uwšp +) \ + +132 + `U£rwš_S‘_Wšdow_O±iÚ +Ð +uwšp +, +LISTENER_TIED_TO_ZOOM +, +TRUE + ); \ + +133 + `Ex¶ic™_Wšdow_S‘ +Ð +uwšp +, +EXPLICIT_LISTENER_TIED_TO_ZOOM + ); \ + +134 } + + ) + +138  + #U£rwš_T›d_Desœe +( +uwšp +) \ + +139 Ð + `U£rwš_G‘_Wšdow_O±iÚ +Ð +uwšp +, +ZOOM_TIED_TO_DESIRE + ) ) + + ) + +141  + #U£rwš_DÚt_T›_Desœe +( +uwšp +) \ + +143 + `U£rwš_S‘_Wšdow_O±iÚ +Ð +uwšp +, +ZOOM_TIED_TO_DESIRE +, +FALSE + ); \ + +144 + `Ex¶ic™_Wšdow_S‘ +Ð +uwšp +, +EXPLICIT_ZOOM_TIED_TO_DESIRE + ); \ + +145 } + + ) + +147  + #U£rwš_AÎow_T›_Desœe +( +uwšp +) \ + +149 + `U£rwš_S‘_Wšdow_O±iÚ +Ð +uwšp +, +ZOOM_TIED_TO_DESIRE +, +TRUE + ); \ + +150 + `Ex¶ic™_Wšdow_S‘ +Ð +uwšp +, +EXPLICIT_ZOOM_TIED_TO_DESIRE + ); \ + +151 } + + ) + + @uwinP.h + +28  + #USERWIN + + + ) + +30 #iâdeà +BASETYPE + + +31  + ~"ba£ty³.h +" + +34 #iâdeà +REGION + + +35  + ~"»giÚP.h +" + +38 #iâdeà +TILWIN_DEFINE + + +39  + ~"twšD.h +" + +42  + ~"uwšÝtP.h +" + +43  + ~"ex¶wÝtsP.h +" + +45  + ~"¶©fÜmP.h +" + +47  +¡r_u£rwš + + tU£rwš +; + +49  + #UWIN_NULL + ( +U£rwš + *) +NULL + + + ) + +51  + s¡r_u£rwš + { + +53 +Tžwšp + + mwšp +; + +54 +Tžwšp + + micÚp +; + +56 +RegiÚ_Enum + + mcu¼’t_ty³ +; + +58  + mwšnum +; + +59 +poš‹r + + md©a +; + +61 * + mho¡Çme +; + +62 * + m»s_þass +; + +63 * + m»s_Çme +; + +64 * + mwmÇme +; + +65 * + micÚÇme +; + +66 * + mcommªd +; + +67 * + mid’t™y +; + +68 * + mt™Ë +; + +70 +boÞ + + mÝtiÚs +[() +LENGTH_USER_WINDOW_OPTIONS +]; + +71 +boÞ + + mex¶ic™ +[() +LENGTH_EXPLICIT_WINDOW_OPTIONS +]; + +73 +boÞ + + m´•¬ed +; + +74 +boÞ + + mÏyout +; + +75 +boÞ + + mÏyout_found +; + +76 +boÞ + + mpos™iÚed +; + +77 +boÞ + + mev”_Ý’ed +; + +78 +boÞ + + msized +; + +79 +boÞ + + mli¡’” +; + +80 +boÞ + + m»guÏr_mªu®_þo£ +; + +82 +boÞ + + micÚ_pos™iÚed +; + +84 +boÞ + + mfocus +; + +85  + mþ›Á_¡©e +; + +86  + mwm_¡©e +; + +87  + m¡¬tup_¡©e +; + +88  + mgroup_¡©e +; + +90 +TimeSmp + + mÝ’_¡amp +; + +91 +TimeSmp + + mzoom_¡amp +; + +92 +boÞ + + mzoomed +; + +93 +TWReùªgË + + m»zoom_»ù +; + +94 +Size + + m»guÏr_mš +; + +95 +Size + + m»guÏr_size +; + +96 +Size + + mzoom_mš +; + +97 +Size + + mzoom_size +; + +99 +boÞ + + m´ev_pos™iÚed +; + +100 +boÞ + + m´ev_sized +; + +101 +boÞ + + m´ev_zoomed +; + +102  + m´ev_group_¡©e +; + +103 +TWReùªgË + + m´ev_»zoom_»ù +; + +104 +Size + + m´ev_mš +; + +105 +Size + + m´ev_max +; + +106 +Size + + m´ev_desœe +; + +107 +TimeSmp + + mundo_¡amp +; + +109 +Size + + mbody_mš +; + +110 +Size + + mbody_max +; + +112 +Size + + mþ›Á_mš +; + +113 +Size + + mþ›Á_max +; + +115  + mh—d”_height +; + +117 +boÞ + + mšput_’abËd +; + +118 +boÞ + + mouut_£Á +; + +119 +boÞ + + m§všg_¡©e +; + +120 +boÞ + + msoá_kžl +; + +122  + mcÚÃùiÚ +; + +123 +U£rwš + * + mgroup +; + +124  + mmes§ges +; + +126 +TWReùªgË + + micÚ_»s_»ù +; + +127 +TWReùªgË + + micÚ_ho¡_»ù +; + +128 +TWReùªgË + + micÚ_Çme_»ù +; + +129 +TWReùªgË + + micÚ_body_»ù +; + +131 +boÞ + + mš™ŸÎy_m­³d +; + +132 +boÞ + + mš™ŸÎy_icÚ_m­³d +; + +135 + m¶©fÜm_f›lds + + + @uwinXD.h + +28 #iâdeà +USERWIN + + +29  + ~"uwšP.h +" + +32  + #U£rwš_XP¬’tWš +( +uwšp +èuwšp-> +xäame +. +·»Á + + + ) + +33  + #U£rwš_XTÝBÜd” +( +uwšp +èuwšp-> +xäame +. +tÝ_bÜd” + + + ) + +34  + #U£rwš_XLeáBÜd” +( +uwšp +èuwšp-> +xäame +. +Ëá_bÜd” + + + ) + +35  + #U£rwš_XRightBÜd” +( +uwšp +èuwšp-> +xäame +. +right_bÜd” + + + ) + +36  + #U£rwš_XBÙtomBÜd” +( +uwšp +èuwšp-> +xäame +. +bÙtom_bÜd” + + + ) + +37  + #U£rwš_XTÝLeáCÜÃr +( +uwšp +è(uwšp)-> +xäame +. +tÝ_Ëá + + + ) + +38  + #U£rwš_XTÝRightCÜÃr +( +uwšp +è(uwšp)-> +xäame +. +tÝ_right + + + ) + +39  + #U£rwš_XBÙtomLeáCÜÃr +( +uwšp +è(uwšp)-> +xäame +. +bÙtom_Ëá + + + ) + +40  + #U£rwš_XBÙtomRightCÜÃr +( +uwšp +è(uwšp)-> +xäame +. +bÙtom_right + + + ) + +41  + #U£rwš_XH—d” +( +uwšp +è(uwšp)-> +xäame +. +h—d” + + + ) + +42  + #U£rwš_XZoomGadg‘ +( +uwšp +è(uwšp)-> +xäame +. +zoom_gadg‘ + + + ) + +43  + #U£rwš_XMoveGadg‘ +( +uwšp +è(uwšp)-> +xäame +. +move_gadg‘ + + + ) + +44  + #U£rwš_XCl›Á +( +uwšp +è(uwšp)-> +xäame +. +þ›Á + + + ) + +45  + #U£rwš_XIcÚ +( +uwšp +è(uwšp)-> +xäame +. +icÚ + + + ) + +46  + #U£rwš_XCl›Á_IcÚ +( +uwšp +è(uwšp)-> +xäame +. +þ›Á_icÚ + + + ) + +47  + #U£rwš_XT¿ns›Á_FÜ +( +uwšp +è(uwšp)-> +xäame +. +Œªs›Á_fÜ + + + ) + +48  + #U£rwš_BÜd”_Width +( +uwšp +è(uwšp)-> +bÜd”_width + + + ) + + @uwinoptP.h + +31 + mACCEPT_BUTTON_IN_BODY +, + +32 + mACCEPT_BUTTON_IN_HEADER +, + +33 + mACCEPT_BUTTON_IN_ICON +, + +35 + mACCEPT_KEY_IN_BODY +, + +36 + mACCEPT_KEY_IN_HEADER +, + +37 + mACCEPT_KEY_IN_GADGET +, + +38 + mACCEPT_KEY_IN_BORDER +, + +39 + mACCEPT_KEY_IN_ICON +, + +41 + mAGGRESSIVELY_REPOPULATE +, + +43 + mALLOW_SHRINK_ON_UNZOOM +, + +44 + mALLOW_SHRINK_ON_AUTO_UNZOOM +, + +46 + mALLOW_ZOOM_CLOSE +, + +48 + mAUTO_OPEN_ON_CREATE +, + +49 + mAUTO_OPEN_ON_WRITE +, + +51 + mAUTO_PLACE_ON_CLIENT_OPEN +, + +53 + mAUTO_RESATISFY_ON_RESET_MINMAX +, + +55 + mCLIENT_DRAWS_ICON +, + +56 + mCLIENT_PROVIDES_HEADER +, + +58 + mCONSIDER_FOR_REPOPULATION +, + +60 + mENFORCE_CLIENT_MINIMUMS +, + +61 + mENFORCE_CLIENT_MAXIMUMS +, + +63 + mLISTENER_TIED_TO_ZOOM +, + +65 + mFORCE_SHRINK_ON_UNZOOM +, + +66 + mFORCE_SHRINK_ON_AUTO_UNZOOM +, + +68 + mGLASS_CLIENT +, + +70 + mICON_DRAWN_BY_CLIENT +, + +72 + mIGNORE_INITIAL_POSITION_HINTS +, + +73 + mIGNORE_INITIAL_SIZE_HINTS +, + +74 + mIGNORE_POSITION_HINTS +, + +75 + mIGNORE_SIZE_HINTS +, + +77 + mINCLUDE_RES_CLASS_IN_TITLE +, + +78 + mINCLUDE_RES_CLASS_IN_ICON_TITLE +, + +79 + mINCLUDE_RES_NAME_IN_TITLE +, + +80 + mINCLUDE_RES_NAME_IN_ICON_TITLE +, + +81 + mINCLUDE_NAME_IN_TITLE +, + +82 + mINCLUDE_NAME_IN_ICON_TITLE +, + +83 + mINCLUDE_HOST_IN_TITLE +, + +84 + mINCLUDE_HOST_IN_ICON_TITLE +, + +86 + mINCLUDE_TITLE_IN_HEADER +, + +87 + mINCLUDE_TITLE_IN_PIXMAP_ICON +, + +88 + mINCLUDE_TITLE_IN_CLIENT_ICON +, + +90 + mINVERT_ICON_WHEN_PENDING +, + +92 + mNOTE_LISTENER +, + +93 + mNOTE_LISTENER_INPUT +, + +94 + mNOTE_CLOSED_INPUT +, + +95 + mNOTE_OPEN_INPUT +, + +96 + mNOTE_CLOSED_OUTPUT +, + +97 + mNOTE_OPEN_OUTPUT +, + +99 + mPREFER_PREVIOUS_ICON_POSITION +, + +100 + mPREFER_PREV_POS +, + +101 + mREQUIRE_PREVIOUS_ICON_POSITION +, + +102 + mREQUIRE_PREV_POS +, + +104 + mSAVE_IN_LAYOUT +, + +106 + mSHOW_ICON +, + +108 + mUSE_BORDERS +, + +109 + mUSE_GADGETS +, + +110 + mUSE_HEADER +, + +111 + mUSE_MOVE_GADGET +, + +113 + mZOOM_FULL_EXPLICIT +, + +114 + mZOOM_FULL_HEIGHT +, + +115 + mZOOM_FULL_WIDTH +, + +117 + mZOOM_ON_OPEN +, + +119 + mZOOM_TIED_TO_DESIRE +, + +121 + mLENGTH_USER_WINDOW_OPTIONS + + +122 } + tU£r_Wšdow_O±iÚs +; + + @uwinoptS.h + +30 *( + gu£r_wšdow_¡rs +[() +LENGTH_USER_WINDOW_OPTIONS +]) = { + + @uwinstrP.h + +31 + mICON_PIXMAP_FILE +, + +33 + mLENGTH_USER_WINDOW_STRINGS + + +34 } + tU£r_Wšdow_SŒšgs +; + + @uwinstrS.h + +28 *( + gu£r_wšdow_¡ršg_¡rs +[() +LENGTH_USER_WINDOW_STRINGS +]) = { + + @uwinvalP.h + +31 + mHEADER_HEIGHT +, + +33 + mICON_WIDTH +, + +34 + mICON_HEIGHT +, + +36 + mICON_BODY_TOP +, + +37 + mICON_BODY_BOTTOM +, + +38 + mICON_BODY_LEFT +, + +39 + mICON_BODY_RIGHT +, + +41 + mICON_RES_TOP +, + +42 + mICON_RES_BOTTOM +, + +43 + mICON_RES_LEFT +, + +44 + mICON_RES_RIGHT +, + +46 + mICON_HOST_TOP +, + +47 + mICON_HOST_BOTTOM +, + +48 + mICON_HOST_LEFT +, + +49 + mICON_HOST_RIGHT +, + +51 + mICON_NAME_TOP +, + +52 + mICON_NAME_BOTTOM +, + +53 + mICON_NAME_LEFT +, + +54 + mICON_NAME_RIGHT +, + +56 + mCLIENT_MIN_WIDTH +, + +57 + mCLIENT_MIN_HEIGHT +, + +58 + mCLIENT_MAX_WIDTH +, + +59 + mCLIENT_MAX_HEIGHT +, + +61 + mNORMAL_DESIRED_WIDTH +, + +62 + mNORMAL_DESIRED_HEIGHT +, + +63 + mZOOM_DESIRED_WIDTH +, + +64 + mZOOM_DESIRED_HEIGHT +, + +66 + mUSER_NORMAL_MIN_WIDTH +, + +67 + mUSER_NORMAL_MIN_HEIGHT +, + +68 + mUSER_ZOOM_MIN_WIDTH +, + +69 + mUSER_ZOOM_MIN_HEIGHT +, + +71 + mUSER_MAX_WIDTH +, + +72 + mUSER_MAX_HEIGHT +, + +74 + mLENGTH_USER_WINDOW_VALUES + + +75 } + tU£r_Wšdow_V®ues +; + + @uwinvalS.h + +28 *( + gu£r_wšdow_v®ue_¡rs +[() +LENGTH_USER_WINDOW_VALUES +]) = { + + @win.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "@(#)win.c 5.3 9/1/88"; + +27  + ~"cÝyright.h +" + +29  + ~"ba£ty³.h +" + +30  + ~"twšD.h +" + +31  + ~"tže.h +" + +32  + ~"tžeD.h +" + +33  + ~"¡©e.h +" + +34  + ~"g¿v™y.h +" + +37 + $Wš_O³n +( +wšp +, +»ù +) + +38 +Tžwš + * +wšp +; + +39 +TWReùªgË + +»ù +; + +41 +TWPošt + +loÿtiÚ +; + +42 +Size + +size +; + +44 + `G¿v™y_In£¹_Edge +( + `G‘_LeáX +( +»ù +), +Leá +); + +45 + `G¿v™y_In£¹_Edge +( + `G‘_RightX +( +»ù +), +Right +); + +46 + `G¿v™y_In£¹_Edge +( + `G‘_TÝY +( +»ù +), +TÝ +); + +47 + `G¿v™y_In£¹_Edge +( + `G‘_BÙtomY +( +»ù +), +BÙtom +); + +49 + `Tžwš_G‘_ReùªgË +( +wšp +èð +»ù +; + +50 + `COMPUTE_CENTER +( +»ù +, +loÿtiÚ +); + +51 + `Tžwš_G‘_C’‹r +( +wšp +èð +loÿtiÚ +; + +52 + `COMPUTE_SIZE +( +»ù +, +size +); + +53 + `Tžwš_G‘_Size +( +wšp +èð +size +; + +55 + `Tžwš_G‘_Tže +( +wšp +èð + `Tže_C»©e +( + `G‘_LeáX +( +»ù +), + +56 + `G‘_TÝY +( +»ù +), + `G‘_RightX +Ôeù), + `G‘_BÙtomY +(rect)); + +57 + `Tže_S‘_Wš +(( +Tže + *è + `Tžwš_G‘_Tže +( +wšp +), ( +poš‹r +) winp); + +59 + } +} + +62 + $Wš_Shršk +( +wšp +, +side +, +coÜd +) + +63 +Tžwš + * +wšp +; + +64 +Side + +side +; + +65 +Ba£ty³ + +coÜd +; + +67 +TWPošt + +loÿtiÚ +; + +68 +Size + +size +; + +70  +side +) { + +71  +TÝ +: + +72 + `G¿v™y_D–‘e_Edge +( + `G‘_TÝY +( + `Tžwš_G‘_ReùªgË +( +wšp +)), +TÝ +); + +73 + `G‘_TÝY +( + `Tžwš_G‘_ReùªgË +( +wšp +)èð +coÜd +; + +75  +BÙtom +: + +76 + `G¿v™y_D–‘e_Edge +( + `G‘_BÙtomY +( + `Tžwš_G‘_ReùªgË +( +wšp +)), +BÙtom +); + +77 + `G‘_BÙtomY +( + `Tžwš_G‘_ReùªgË +( +wšp +)èð +coÜd +; + +79  +Leá +: + +80 + `G¿v™y_D–‘e_Edge +( + `G‘_LeáX +( + `Tžwš_G‘_ReùªgË +( +wšp +)), +Leá +); + +81 + `G‘_LeáX +( + `Tžwš_G‘_ReùªgË +( +wšp +)èð +coÜd +; + +83  +Right +: + +84 + `G¿v™y_D–‘e_Edge +( + `G‘_RightX +( + `Tžwš_G‘_ReùªgË +( +wšp +)), +Right +); + +85 + `G‘_RightX +( + `Tžwš_G‘_ReùªgË +( +wšp +)èð +coÜd +; + +89 + `G¿v™y_In£¹_Edge +( +coÜd +, +side +); + +91 + `COMPUTE_CENTER +( + `Tžwš_G‘_ReùªgË +( +wšp +), +loÿtiÚ +); + +92 + `Tžwš_G‘_C’‹r +( +wšp +èð +loÿtiÚ +; + +93 + `COMPUTE_SIZE +( + `Tžwš_G‘_ReùªgË +( +wšp +), +size +); + +94 + `Tžwš_G‘_Size +( +wšp +èð +size +; + +96 + `Tže_Shršk +( + `Tžwš_G‘_Tže +( +wšp +), +side +, +coÜd +); + +98 + } +} + +101 + $Wš_EƬge +( +wšp +, +side +, +coÜd +) + +102 +Tžwš + * +wšp +; + +103 +Side + +side +; + +104 +Ba£ty³ + +coÜd +; + +106 +TWPošt + +loÿtiÚ +; + +107 +Size + +size +; + +109  +side +) { + +110  +TÝ +: + +111 + `G¿v™y_D–‘e_Edge +( + `G‘_TÝY +( + `Tžwš_G‘_ReùªgË +( +wšp +)), +TÝ +); + +112 + `G‘_TÝY +( + `Tžwš_G‘_ReùªgË +( +wšp +)èð +coÜd +; + +114  +BÙtom +: + +115 + `G¿v™y_D–‘e_Edge +( + `G‘_BÙtomY +( + `Tžwš_G‘_ReùªgË +( +wšp +)), +BÙtom +); + +116 + `G‘_BÙtomY +( + `Tžwš_G‘_ReùªgË +( +wšp +)èð +coÜd +; + +118  +Leá +: + +119 + `G¿v™y_D–‘e_Edge +( + `G‘_LeáX +( + `Tžwš_G‘_ReùªgË +( +wšp +)), +Leá +); + +120 + `G‘_LeáX +( + `Tžwš_G‘_ReùªgË +( +wšp +)èð +coÜd +; + +122  +Right +: + +123 + `G¿v™y_D–‘e_Edge +( + `G‘_RightX +( + `Tžwš_G‘_ReùªgË +( +wšp +)), +Right +); + +124 + `G‘_RightX +( + `Tžwš_G‘_ReùªgË +( +wšp +)èð +coÜd +; + +128 + `G¿v™y_In£¹_Edge +( +coÜd +, +side +); + +130 + `COMPUTE_CENTER +( + `Tžwš_G‘_ReùªgË +( +wšp +), +loÿtiÚ +); + +131 + `Tžwš_G‘_C’‹r +( +wšp +èð +loÿtiÚ +; + +132 + `COMPUTE_SIZE +( + `Tžwš_G‘_ReùªgË +( +wšp +), +size +); + +133 + `Tžwš_G‘_Size +( +wšp +èð +size +; + +135 + `Tže_EƬge +( + `Tžwš_G‘_Tže +( +wšp +), +side +, +coÜd +); + +137 + } +} + +140 + $Wš_Clo£ +( +wšp +) + +141 +Tžwš + * +wšp +; + +143 +TWReùªgË + +»ù +; + +145 +»ù + = + `Tžwš_G‘_ReùªgË +( +wšp +); + +147 + `G¿v™y_D–‘e_Edge +( + `G‘_LeáX +( +»ù +), +Leá +); + +148 + `G¿v™y_D–‘e_Edge +( + `G‘_RightX +( +»ù +), +Right +); + +149 + `G¿v™y_D–‘e_Edge +( + `G‘_TÝY +( +»ù +), +TÝ +); + +150 + `G¿v™y_D–‘e_Edge +( + `G‘_BÙtomY +( +»ù +), +BÙtom +); + +152 + `Tže_D–‘e +( + `Tžwš_G‘_Tže +( +wšp +)); + +153 + `Tžwš_G‘_Tže +( +wšp +èð( +Tž• +è +NULL +; + +154 + } +} + +160 + $Wš_Add_Li¡ +( +tž• +) + +161 +Tž• + +tž• +; + +163 ià( + `Tže_G‘_Ty³ +(( +Tže + *) +tž• +è=ð +SÞid +) + +164 + `S‹_In£¹_PÙ’tŸÎy_Modfd +(( +Tžwš + *) + `Tže_G‘_Wš +(( +Tže + *) +tž• +)); + +165 + } +} + +168 + $Wš_Add_Modif›d +( +tž• +) + +169 +Tž• + +tž• +; + +171 ià( + `Tže_G‘_Ty³ +(( +Tže + *) +tž• +è=ð +SÞid +) + +172 + `S‹_In£¹_Ju¡_Modif›d +(( +Tžwš + *) + `Tže_G‘_Wš +(( +Tže + *) +tž• +)); + +173 + } +} + +179 +boÞ + +no_¥aû_tže_š_¬— +; + +182 + $Wš_Is_Cov”ed +( +tž• +) + +183 +Tž• + +tž• +; + +185 ià( + `Tže_G‘_Ty³ +(( +Tže + *) +tž• +è=ð +S·û +) + +186 +no_¥aû_tže_š_¬— + = +FALSE +; + +187 + } +} + + @win.h + +29  +Wš_O³n +(); + +30  +Wš_Clo£ +(); + +32  +Wš_Shršk +(); + +33  +Wš_EƬge +(); + +34  +Wš_Clo£ +(); + +35  +Wš_Add_Li¡ +(); + +36  +Wš_Add_Modif›d +(); + +37  +Wš_Is_Cov”ed +(); + + @wsys.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "%W% %H%"; + +27  + ~"cÝyright.h +" + +32  + ~"uwšD.h +" + +33  + ~"uwšXD.h +" + +34  + ~"mªage.h +" + +35  + ~"š‹rf.h +" + +37  + ~ + +38  + ~ + +39  + ~ + +41  + ~"assoc.h +" + +42  + ~"xio.h +" + +43  + ~"cÚŒÞ.h +" + +45  + #NoS‹ + -1 + + ) + +46  + #Cl›ÁIcÚS‹ + 2 + + ) + +47  + #IgnÜeS‹ + 5 + + ) + +49  + #CLIENT_SELECT + + + ) + +53 #ifdeà +CLIENT_SELECT + + +54  + #nÙify + +SŒuùu»NÙifyMask + | + + ) + +55  + #subnÙify + +Sub¡ruùu»NÙifyMask + | + + ) + +58 #iâdeà +CLIENT_SELECT + + +59  + #nÙify + + + ) + +60  + #subnÙify + + + ) + +65  + $Wsys_In™Ÿl_Geom‘ry +Ð +uwšp +, +x +, +y +, +width +, +height +) + +66 +U£rwš + * +uwšp +; + +67  +x +, +y +, +width +, +height +; + +69 +TWPošt + +± +; + +70 +Size + +size +; + +72 +± +. +x + = x; + +73 +± +. +y + = y; + +74 +size +. +width + = width; + +75 +size +. +height + = height; + +77 + `Mªage_In™Ÿl_Geom‘ry +( +uwšp +, +± +, +size +); + +78 + } +} + +85  + $Wsys_M­ +Ð +uwšp + ) + +86 +U£rwš + * +uwšp +; + +88 + `IÁ”f_Cl›Á_O³n +( +uwšp +); + +89 + } +} + +96 +U£rwš + * + $Wsys_P»·» +( +þ›Á +) + +97 +Wšdow + +þ›Á +; + +99 +U£rwš + * +uwšp +; + +100 +XWšdowChªges + +wc +; + +102 +uwšp + = + `Mªage_C»©e_Wšdow +(); + +103 + `U£rwš_XCl›Á +( +uwšp +èð +þ›Á +; + +104 + `U£rwš_XCl›Á_IcÚ +( +uwšp +èð( +Wšdow +è +NULL +; + +105 + `U£rwš_BÜd”_Width +( +uwšp +) = 0; + +107 + `Assoc_Put +((*è +uwšp +, +þ›Á +); + +109 +uwšp +-> +icÚpix + = +NÚe +; + +110 + `PrÝ”ty_G‘_Wšdow_CÏss +( +uwšp +); + +111 + `PrÝ”ty_G‘_T™Ë +( +uwšp +); + +112 + `PrÝ”ty_G‘_Commªd_Lše +( +uwšp +); + +113 + `PrÝ”ty_G‘_Ho¡Çme +( +uwšp +); + +114 + `PrÝ”ty_G‘_IcÚ_T™Ë +( +uwšp +); + +115 + `PrÝ”ty_G‘_NÜm®_Size_Hšts +( +uwšp +); + +116 + `PrÝ”ty_G‘_Wm_Hšts +( +uwšp +); + +117 + `PrÝ”ty_G‘_Wm_S‹ +( +uwšp +); + +118 + `PrÝ”ty_G‘_DŸlogue_P¬’t +( +uwšp +); + +120 ià( + `U£rwš_XT¿ns›Á_FÜ +( +uwšp +è=ð +NÚe +) + +122 + `Assoc_AddDecÜ©iÚs +( +uwšp +); + +124 +wc +. +bÜd”_width + = 0; + +125 + `XCÚfigu»Wšdow +( +dpy +, +þ›Á +, +CWBÜd”Width +, & +wc +); + +127 + `XS–eùIÅut +( +dpy +, + `U£rwš_XP¬’tWš +( +uwšp +), + +128 +subnÙify + + +129 +Sub¡ruùu»RedœeùMask + | + +130 +FocusChªgeMask + | +L—veWšdowMask + | +Exposu»Mask +); + +132 + `XS–eùIÅut +( +dpy +, +þ›Á +, + +133 +nÙify + + +134 +EÁ”WšdowMask + | +PrÝ”tyChªgeMask +); + +136 + `IÁ”f_EÇbË_IÅut +( +uwšp +); + +137 + `CÚŒÞ_G¿b_IÅut +( + `U£rwš_XP¬’tWš +( +uwšp +)); + +140 ( +uwšp +); + +141 + } +} + +148  + $Wsys_C»©e +Ð +þ›Á +, +©Œs +) + +149 +Wšdow + +þ›Á +; + +150 +XWšdowA‰ribu‹s + +©Œs +; + +152 +U£rwš + * +uwšp +; + +154 +uwšp + = + `Wsys_P»·» +( +þ›Á +); + +156 if( + `U£rwš_XT¿ns›Á_FÜ +( +uwšp +è=ð +NÚe +) + +158 + `U£rwš_BÜd”_Width +( +uwšp +èð +©Œs +. +bÜd”_width +; + +159 + `Wsys_In™Ÿl_Geom‘ry +Ð +uwšp +, +©Œs +. +x +,‡‰rs. +y +, + +160 +©Œs +. +width +,‡‰rs. +height + ); + +161 + `PrÝ”ty_G‘_Geom‘ry_Hšts +( +uwšp +); + +163 + } +} + +170  + $Wsys_O³n +Ð +þ›Á +, +©Œs + ) + +171 +Wšdow + +þ›Á +; + +172 +XWšdowA‰ribu‹s + +©Œs +; + +174 +U£rwš + * +uwšp +; + +176 +uwšp + = + `Wsys_P»·» +( +þ›Á +); + +178 if( + `U£rwš_XT¿ns›Á_FÜ +( +uwšp +è=ð +NÚe +) + +180 + `U£rwš_BÜd”_Width +( +uwšp +èð +©Œs +. +bÜd”_width +; + +182 + `U£rwš_In™ŸÎy_M­³d +( +uwšp +èð( +©Œs +. +m­_¡©e + !ð +IsUnm­³d +); + +183 ià( + `U£rwš_XCl›Á_IcÚ +( +uwšp +è!ð( +Wšdow +è +NULL +) + +185 +XWšdowA‰ribu‹s + +icÚ_©Œs +; + +187 + `XG‘WšdowA‰ribu‹s +( +dpy +, + +188 + `U£rwš_XCl›Á_IcÚ +( +uwšp +), + +189 & +icÚ_©Œs +); + +191 + `U£rwš_In™ŸÎy_IcÚ_M­³d +( +uwšp +) = + +192 ( +icÚ_©Œs +. +m­_¡©e + !ð +IsUnm­³d +); + +195 + `U£rwš_In™ŸÎy_IcÚ_M­³d +( +uwšp +èð +FALSE +; + +197 + `Mªage_D‘”mše_S¹up_S‹ +( +uwšp +); + +199 + `Wsys_In™Ÿl_Geom‘ry +( +uwšp +, +©Œs +. +x +,‡‰rs. +y +, + +200 +©Œs +. +width +,‡‰rs. +height +); + +203 ià( + `U£rwš_S¹up_S‹ +( +uwšp +è!ð +IgnÜeS‹ +) + +204 + `Mªage_S¹up_O³n +( +uwšp +); + +206 + `Mªage_Elimš©e_Wšdow +( +uwšp +); + +208 + } +} + +213 + $Wsys_G‘_S¹up_P¬am‘”s +( +w +, +icÚ +, +¡©e +) + +214 +Wšdow + +w +; + +215 +Wšdow + * +icÚ +; + +216 * +¡©e +; + +218 +XWMHšts + * +ph +; + +220 * +¡©e + = +NoS‹ +; + +221 * +icÚ + = ( +Wšdow +è +NULL +; + +223 ià(( +ph + = + `XG‘WMHšts +( +dpy +, +w +)è!ð( +XWMHšts + *è +NULL + ) + +225 ià( +ph +-> +æags + & +IcÚWšdowHšt +) + +227 * +icÚ + = +ph +-> +icÚ_wšdow +; + +229 ià( +ph +-> +æags + & +S‹Hšt +) + +231 * +¡©e + = +ph +-> +š™Ÿl_¡©e +; + +233 + `XF»e +Ð(*è +ph + ); + +235 + } +} + +241  + $Wsys_S¹up +() + +243 +Wšdow + +·»Á +; + +244 +Wšdow + * +chžd»n +; + +245 +Wšdow + +icÚ +; + +246 +Wšdow + +w +; + +247 +XWšdowA‰ribu‹s + +©Œs +; + +248  +nchžd»n +; + +249  +¡©e +; + +250  +ix +; + +252 + `Assoc_Xid_In™TabË +(); + +254 ià( + `XQu”yT»e +( +dpy +, +roÙ +, &roÙ, & +·»Á +, & +chžd»n +, & +nchžd»n +)) + +256  +ix +=0; ix < +nchžd»n +; ix++) + +258 +w + = +chžd»n +[ +ix +]; + +259 + `Wsys_G‘_S¹up_P¬am‘”s +( +w +, & +icÚ +, & +¡©e +); + +261 ià( +icÚ + !ð( +Wšdow +è +NULL +) + +262 + `Assoc_Xid_Put +(( +XID +) +w +, (XIDè +icÚ +); + +265  +ix +=0; ix < +nchžd»n +; ix++) + +267 +w + = +chžd»n +[ +ix +]; + +269 + `XG‘WšdowA‰ribu‹s +( +dpy +, +w +, & +©Œs +); + +271 ià( +©Œs +. +ov”ride_»dœeù + =ð +F®£ +) + +273 ià( + `Assoc_Xid_G‘ +(( +XID +è +w +è=ð(XIDè +NULL +) + +274 + `Wsys_O³n +( +w +, +©Œs +); + +277 + `Assoc_Xid_Remove +(( +XID +è +w +); + +278 + `XUnm­Wšdow +( +dpy +, +w +); + +282 + `D¿w_S‘_Background +(); + +284 + `IÁ”f_Cl›Á_S¹up +(); + +287 + `XF»e +( +chžd»n +); + +288 + `XFlush +( +dpy +); + +289 + } +} + + @xerror.c + +1 #iâdeà +lšt + + +2  + gsccs_id +[] = "%W% %H%"; + +27  + ~"cÝyright.h +" + +29  + ~<¡dio.h +> + +30  + ~ + +32  + g”rÜStus + = +F®£ +; + +33  + gx”rÜ_fÜûCÜeDump + = +F®£ +; + +40 + $E¼Ü_HªdËr +( +dpy +, +”rÜ +) + +41 +Di¥Ïy + * +dpy +; + +42 +XE¼ÜEv’t + * +”rÜ +; + +44  +bufãr +[ +BUFSIZ +]; + +47 + `XG‘E¼ÜText +( +dpy +, +”rÜ +-> +”rÜ_code +, +bufãr +, +BUFSIZ +); + +49 (è + `årštf +( +¡d”r +, "RTL: X E¼Ü <%s>\n", +bufãr +); + +50 (è + `årštf +( +¡d”r +, " Reque¡ MajÜ code: %d\n", +”rÜ +-> +»que¡_code +); + +51 (è + `årštf +( +¡d”r +, " Reque¡ MšÜ code: %d\n", +”rÜ +-> +mšÜ_code +); + +52 (è + `årštf +( +¡d”r +, " ResourûId: %d\n", +”rÜ +-> +»sourûid +); + +53 (è + `årštf +( +¡d”r +, " E¼Ü S”ŸÈ#%d\n", +”rÜ +-> +£rŸl +); + +54 (è + `årštf +( +¡d”r +, " Cu¼’ˆS”ŸÈ#%d\n", +dpy +-> +»que¡ +); + +56 +”rÜStus + = +True +; + +58 ià( +x”rÜ_fÜûCÜeDump +) { + +59 * +foo + = (*) 0; + +61 + `årštf + ( +¡d”r +, "Forcing core dump.\n"); + +63 * +foo + = 50; + +67 + } +} + + @xio.h + +31 #iâdeà +STD_DEFS + + +32  + ~"¡d_defs.h +" + +35 +Wšdow + +roÙ +; + +36 +Di¥Ïy + * +dpy +; + +37  +sün +; + +38 +poš‹r + +¡ackp +; + +39 +Wšdow + +Œªs›Á_¶ªe +; + + @/usr/include/X11/X.h + +3 #iâdeà +X_H + + +4  + #X_H + + + ) + +53  + #X_PROTOCOL + 11 + + ) + +54  + #X_PROTOCOL_REVISION + 0 + + ) + +63 #iâdeà +_XSERVER64 + + +64 #iâdeà +_XTYPEDEF_XID + + +65  + #_XTYPEDEF_XID + + + ) + +66  + tXID +; + +68 #iâdeà +_XTYPEDEF_MASK + + +69  + #_XTYPEDEF_MASK + + + ) + +70  + tMask +; + +72 #iâdeà +_XTYPEDEF_ATOM + + +73  + #_XTYPEDEF_ATOM + + + ) + +74  + tAtom +; + +76  + tVisu®ID +; + +77  + tTime +; + +79  + ~ + +80 #iâdeà +_XTYPEDEF_XID + + +81  + #_XTYPEDEF_XID + + + ) + +82  +CARD32 + + tXID +; + +84 #iâdeà +_XTYPEDEF_MASK + + +85  + #_XTYPEDEF_MASK + + + ) + +86  +CARD32 + + tMask +; + +88 #iâdeà +_XTYPEDEF_ATOM + + +89  + #_XTYPEDEF_ATOM + + + ) + +90  +CARD32 + + tAtom +; + +92  +CARD32 + + tVisu®ID +; + +93  +CARD32 + + tTime +; + +96  +XID + + tWšdow +; + +97  +XID + + tD¿wabË +; + +98 #iâdeà +_XTYPEDEF_FONT + + +99  + #_XTYPEDEF_FONT + + + ) + +100  +XID + + tFÚt +; + +102  +XID + + tPixm­ +; + +103  +XID + + tCursÜ +; + +104  +XID + + tCÞÜm­ +; + +105  +XID + + tGCÚ‹xt +; + +106  +XID + + tKeySym +; + +108  + tKeyCode +; + +114 #iâdeà +NÚe + + +115  + #NÚe + 0L + + ) + +118  + #P¬’tR–©ive + 1L + + ) + +121  + #CÝyFromP¬’t + 0L + + ) + +126  + #Poš‹rWšdow + 0L + + ) + +127  + #IÅutFocus + 1L + + ) + +129  + #Poš‹rRoÙ + 1L + + ) + +131  + #AnyPrÝ”tyTy³ + 0L + + ) + +133  + #AnyKey + 0L + + ) + +135  + #AnyBu‰Ú + 0L + + ) + +137  + #AÎTempܬy + 0L + + ) + +139  + #Cu¼’tTime + 0L + + ) + +141  + #NoSymbÞ + 0L + + ) + +150  + #NoEv’tMask + 0L + + ) + +151  + #KeyP»ssMask + (1L<<0) + + ) + +152  + #KeyR–—£Mask + (1L<<1) + + ) + +153  + #Bu‰ÚP»ssMask + (1L<<2) + + ) + +154  + #Bu‰ÚR–—£Mask + (1L<<3) + + ) + +155  + #EÁ”WšdowMask + (1L<<4) + + ) + +156  + #L—veWšdowMask + (1L<<5) + + ) + +157  + #Poš‹rMÙiÚMask + (1L<<6) + + ) + +158  + #Poš‹rMÙiÚHštMask + (1L<<7) + + ) + +159  + #Bu‰Ú1MÙiÚMask + (1L<<8) + + ) + +160  + #Bu‰Ú2MÙiÚMask + (1L<<9) + + ) + +161  + #Bu‰Ú3MÙiÚMask + (1L<<10) + + ) + +162  + #Bu‰Ú4MÙiÚMask + (1L<<11) + + ) + +163  + #Bu‰Ú5MÙiÚMask + (1L<<12) + + ) + +164  + #Bu‰ÚMÙiÚMask + (1L<<13) + + ) + +165  + #Keym­S‹Mask + (1L<<14) + + ) + +166  + #Exposu»Mask + (1L<<15) + + ) + +167  + #Visibž™yChªgeMask + (1L<<16) + + ) + +168  + #SŒuùu»NÙifyMask + (1L<<17) + + ) + +169  + #ResizeRedœeùMask + (1L<<18) + + ) + +170  + #Sub¡ruùu»NÙifyMask + (1L<<19) + + ) + +171  + #Sub¡ruùu»RedœeùMask + (1L<<20) + + ) + +172  + #FocusChªgeMask + (1L<<21) + + ) + +173  + #PrÝ”tyChªgeMask + (1L<<22) + + ) + +174  + #CÞÜm­ChªgeMask + (1L<<23) + + ) + +175  + #OwÃrG¿bBu‰ÚMask + (1L<<24) + + ) + +181  + #KeyP»ss + 2 + + ) + +182  + #KeyR–—£ + 3 + + ) + +183  + #Bu‰ÚP»ss + 4 + + ) + +184  + #Bu‰ÚR–—£ + 5 + + ) + +185  + #MÙiÚNÙify + 6 + + ) + +186  + #EÁ”NÙify + 7 + + ) + +187  + #L—veNÙify + 8 + + ) + +188  + #FocusIn + 9 + + ) + +189  + #FocusOut + 10 + + ) + +190  + #Keym­NÙify + 11 + + ) + +191  + #Expo£ + 12 + + ) + +192  + #G¿phicsExpo£ + 13 + + ) + +193  + #NoExpo£ + 14 + + ) + +194  + #Visibž™yNÙify + 15 + + ) + +195  + #C»©eNÙify + 16 + + ) + +196  + #De¡royNÙify + 17 + + ) + +197  + #Unm­NÙify + 18 + + ) + +198  + #M­NÙify + 19 + + ) + +199  + #M­Reque¡ + 20 + + ) + +200  + #R•¬’tNÙify + 21 + + ) + +201  + #CÚfigu»NÙify + 22 + + ) + +202  + #CÚfigu»Reque¡ + 23 + + ) + +203  + #G¿v™yNÙify + 24 + + ) + +204  + #ResizeReque¡ + 25 + + ) + +205  + #CœcuÏ‹NÙify + 26 + + ) + +206  + #CœcuÏ‹Reque¡ + 27 + + ) + +207  + #PrÝ”tyNÙify + 28 + + ) + +208  + #S–eùiÚCˬ + 29 + + ) + +209  + #S–eùiÚReque¡ + 30 + + ) + +210  + #S–eùiÚNÙify + 31 + + ) + +211  + #CÞÜm­NÙify + 32 + + ) + +212  + #Cl›ÁMes§ge + 33 + + ) + +213  + #M­pšgNÙify + 34 + + ) + +214  + #G’”icEv’t + 35 + + ) + +215  + #LASTEv’t + 36 + + ) + +221  + #ShiáMask + (1<<0) + + ) + +222  + #LockMask + (1<<1) + + ) + +223  + #CÚŒÞMask + (1<<2) + + ) + +224  + #Mod1Mask + (1<<3) + + ) + +225  + #Mod2Mask + (1<<4) + + ) + +226  + #Mod3Mask + (1<<5) + + ) + +227  + #Mod4Mask + (1<<6) + + ) + +228  + #Mod5Mask + (1<<7) + + ) + +233  + #ShiáM­Index + 0 + + ) + +234  + #LockM­Index + 1 + + ) + +235  + #CÚŒÞM­Index + 2 + + ) + +236  + #Mod1M­Index + 3 + + ) + +237  + #Mod2M­Index + 4 + + ) + +238  + #Mod3M­Index + 5 + + ) + +239  + #Mod4M­Index + 6 + + ) + +240  + #Mod5M­Index + 7 + + ) + +246  + #Bu‰Ú1Mask + (1<<8) + + ) + +247  + #Bu‰Ú2Mask + (1<<9) + + ) + +248  + #Bu‰Ú3Mask + (1<<10) + + ) + +249  + #Bu‰Ú4Mask + (1<<11) + + ) + +250  + #Bu‰Ú5Mask + (1<<12) + + ) + +252  + #AnyModif›r + (1<<15è + + ) + +259  + #Bu‰Ú1 + 1 + + ) + +260  + #Bu‰Ú2 + 2 + + ) + +261  + #Bu‰Ú3 + 3 + + ) + +262  + #Bu‰Ú4 + 4 + + ) + +263  + #Bu‰Ú5 + 5 + + ) + +267  + #NÙifyNÜm® + 0 + + ) + +268  + #NÙifyG¿b + 1 + + ) + +269  + #NÙifyUng¿b + 2 + + ) + +270  + #NÙifyWhžeG¿bbed + 3 + + ) + +272  + #NÙifyHšt + 1 + + ) + +276  + #NÙifyAnû¡Ü + 0 + + ) + +277  + #NÙifyVœtu® + 1 + + ) + +278  + #NÙifyInãriÜ + 2 + + ) + +279  + #NÙifyNÚlš—r + 3 + + ) + +280  + #NÙifyNÚlš—rVœtu® + 4 + + ) + +281  + #NÙifyPoš‹r + 5 + + ) + +282  + #NÙifyPoš‹rRoÙ + 6 + + ) + +283  + #NÙifyD‘ažNÚe + 7 + + ) + +287  + #Visibž™yUnobscu»d + 0 + + ) + +288  + #Visibž™yP¬tŸÎyObscu»d + 1 + + ) + +289  + #Visibž™yFuÎyObscu»d + 2 + + ) + +293  + #PÏûOnTÝ + 0 + + ) + +294  + #PÏûOnBÙtom + 1 + + ) + +298  + #FamžyIÁ”Ãt + 0 + + ) + +299  + #FamžyDECÃt + 1 + + ) + +300  + #FamžyChaos + 2 + + ) + +301  + #FamžyIÁ”Ãt6 + 6 + + ) + +304  + #FamžyS”v”IÁ”´‘ed + 5 + + ) + +308  + #PrÝ”tyNewV®ue + 0 + + ) + +309  + #PrÝ”tyD–‘e + 1 + + ) + +313  + #CÞÜm­Unš¡®Ëd + 0 + + ) + +314  + #CÞÜm­In¡®Ëd + 1 + + ) + +318  + #G¿bModeSync + 0 + + ) + +319  + #G¿bModeAsync + 1 + + ) + +323  + #G¿bSucûss + 0 + + ) + +324  + #AÌ—dyG¿bbed + 1 + + ) + +325  + #G¿bInv®idTime + 2 + + ) + +326  + #G¿bNÙV›wabË + 3 + + ) + +327  + #G¿bFroz’ + 4 + + ) + +331  + #AsyncPoš‹r + 0 + + ) + +332  + #SyncPoš‹r + 1 + + ) + +333  + #R•ÏyPoš‹r + 2 + + ) + +334  + #AsyncKeybßrd + 3 + + ) + +335  + #SyncKeybßrd + 4 + + ) + +336  + #R•ÏyKeybßrd + 5 + + ) + +337  + #AsyncBÙh + 6 + + ) + +338  + #SyncBÙh + 7 + + ) + +342  + #Rev”tToNÚe + () +NÚe + + + ) + +343  + #Rev”tToPoš‹rRoÙ + () +Poš‹rRoÙ + + + ) + +344  + #Rev”tToP¬’t + 2 + + ) + +350  + #Sucûss + 0 + + ) + +351  + #BadReque¡ + 1 + + ) + +352  + #BadV®ue + 2 + + ) + +353  + #BadWšdow + 3 + + ) + +354  + #BadPixm­ + 4 + + ) + +355  + #BadAtom + 5 + + ) + +356  + #BadCursÜ + 6 + + ) + +357  + #BadFÚt + 7 + + ) + +358  + #BadM©ch + 8 + + ) + +359  + #BadD¿wabË + 9 + + ) + +360  + #BadAcûss + 10 + + ) + +369  + #BadAÎoc + 11 + + ) + +370  + #BadCÞÜ + 12 + + ) + +371  + #BadGC + 13 + + ) + +372  + #BadIDChoiû + 14 + + ) + +373  + #BadName + 15 + + ) + +374  + #BadL’gth + 16 + + ) + +375  + #BadIm¶em’tiÚ + 17 + + ) + +377  + #Fœ¡Ex‹nsiÚE¼Ü + 128 + + ) + +378  + #La¡Ex‹nsiÚE¼Ü + 255 + + ) + +387  + #IÅutOuut + 1 + + ) + +388  + #IÅutOÆy + 2 + + ) + +392  + #CWBackPixm­ + (1L<<0) + + ) + +393  + #CWBackPix– + (1L<<1) + + ) + +394  + #CWBÜd”Pixm­ + (1L<<2) + + ) + +395  + #CWBÜd”Pix– + (1L<<3) + + ) + +396  + #CWB™G¿v™y + (1L<<4) + + ) + +397  + #CWWšG¿v™y + (1L<<5) + + ) + +398  + #CWBackšgStÜe + (1L<<6) + + ) + +399  + #CWBackšgPÏÃs + (1L<<7) + + ) + +400  + #CWBackšgPix– + (1L<<8) + + ) + +401  + #CWOv”rideRedœeù + (1L<<9) + + ) + +402  + #CWSaveUnd” + (1L<<10) + + ) + +403  + #CWEv’tMask + (1L<<11) + + ) + +404  + #CWDÚtPrÝag©e + (1L<<12) + + ) + +405  + #CWCÞÜm­ + (1L<<13) + + ) + +406  + #CWCursÜ + (1L<<14) + + ) + +410  + #CWX + (1<<0) + + ) + +411  + #CWY + (1<<1) + + ) + +412  + #CWWidth + (1<<2) + + ) + +413  + #CWHeight + (1<<3) + + ) + +414  + #CWBÜd”Width + (1<<4) + + ) + +415  + #CWSiblšg + (1<<5) + + ) + +416  + #CWSckMode + (1<<6) + + ) + +421  + #FÜg‘G¿v™y + 0 + + ) + +422  + #NÜthWe¡G¿v™y + 1 + + ) + +423  + #NÜthG¿v™y + 2 + + ) + +424  + #NÜthEa¡G¿v™y + 3 + + ) + +425  + #We¡G¿v™y + 4 + + ) + +426  + #C’‹rG¿v™y + 5 + + ) + +427  + #Ea¡G¿v™y + 6 + + ) + +428  + #SouthWe¡G¿v™y + 7 + + ) + +429  + #SouthG¿v™y + 8 + + ) + +430  + #SouthEa¡G¿v™y + 9 + + ) + +431  + #SticG¿v™y + 10 + + ) + +435  + #Unm­G¿v™y + 0 + + ) + +439  + #NÙU£ful + 0 + + ) + +440  + #Wh’M­³d + 1 + + ) + +441  + #Always + 2 + + ) + +445  + #IsUnm­³d + 0 + + ) + +446  + #IsUnv›wabË + 1 + + ) + +447  + #IsV›wabË + 2 + + ) + +451  + #S‘ModeIn£¹ + 0 + + ) + +452  + #S‘ModeD–‘e + 1 + + ) + +456  + #De¡royAÎ + 0 + + ) + +457  + #R‘ašP”mª’t + 1 + + ) + +458  + #R‘ašTempܬy + 2 + + ) + +462  + #Above + 0 + + ) + +463  + #B–ow + 1 + + ) + +464  + #TÝIf + 2 + + ) + +465  + #BÙtomIf + 3 + + ) + +466  + #Oµos™e + 4 + + ) + +470  + #Rai£Lowe¡ + 0 + + ) + +471  + #Low”Highe¡ + 1 + + ) + +475  + #PrÝModeR•Ïû + 0 + + ) + +476  + #PrÝModeP»³nd + 1 + + ) + +477  + #PrÝModeAµ’d + 2 + + ) + +485  + #GXþ—r + 0x0 + + ) + +486  + #GXªd + 0x1 + + ) + +487  + #GXªdRev”£ + 0x2 + + ) + +488  + #GXcÝy + 0x3 + + ) + +489  + #GXªdInv”‹d + 0x4 + + ) + +490  + #GXnoÝ + 0x5 + + ) + +491  + #GXxÜ + 0x6 + + ) + +492  + #GXÜ + 0x7 + + ) + +493  + #GXnÜ + 0x8 + + ) + +494  + #GXequiv + 0x9 + + ) + +495  + #GXšv”t + 0x¨ + + ) + +496  + #GXÜRev”£ + 0xb + + ) + +497  + #GXcÝyInv”‹d + 0xø + + ) + +498  + #GXÜInv”‹d + 0xd + + ) + +499  + #GXÇnd + 0x + + ) + +500  + #GX£t + 0xà + + ) + +504  + #LšeSÞid + 0 + + ) + +505  + #LšeOnOffDash + 1 + + ) + +506  + #LšeDoubËDash + 2 + + ) + +510  + #C­NÙLa¡ + 0 + + ) + +511  + #C­Bu‰ + 1 + + ) + +512  + #C­Round + 2 + + ) + +513  + #C­Projeùšg + 3 + + ) + +517  + #JošM™” + 0 + + ) + +518  + #JošRound + 1 + + ) + +519  + #JošBev– + 2 + + ) + +523  + #FžlSÞid + 0 + + ) + +524  + #FžlTžed + 1 + + ) + +525  + #FžlSt¶ed + 2 + + ) + +526  + #FžlO·queSt¶ed + 3 + + ) + +530  + #Ev’OddRuË + 0 + + ) + +531  + #WšdšgRuË + 1 + + ) + +535  + #ClByChžd»n + 0 + + ) + +536  + #InþudeInãriÜs + 1 + + ) + +540  + #UnsÜ‹d + 0 + + ) + +541  + #YSÜ‹d + 1 + + ) + +542  + #YXSÜ‹d + 2 + + ) + +543  + #YXBªded + 3 + + ) + +547  + #CoÜdModeOrigš + 0 + + ) + +548  + #CoÜdModeP»vious + 1 + + ) + +552  + #Com¶ex + 0 + + ) + +553  + #NÚcÚvex + 1 + + ) + +554  + #CÚvex + 2 + + ) + +558  + #ArcChÜd + 0 + + ) + +559  + #ArcP›Sliû + 1 + + ) + +564  + #GCFunùiÚ + (1L<<0) + + ) + +565  + #GCPÏÃMask + (1L<<1) + + ) + +566  + #GCFÜeground + (1L<<2) + + ) + +567  + #GCBackground + (1L<<3) + + ) + +568  + #GCLšeWidth + (1L<<4) + + ) + +569  + #GCLšeStyË + (1L<<5) + + ) + +570  + #GCC­StyË + (1L<<6) + + ) + +571  + #GCJošStyË + (1L<<7) + + ) + +572  + #GCFžlStyË + (1L<<8) + + ) + +573  + #GCFžlRuË + (1L<<9) + + ) + +574  + #GCTže + (1L<<10) + + ) + +575  + #GCSt¶e + (1L<<11) + + ) + +576  + #GCTžeStXOrigš + (1L<<12) + + ) + +577  + #GCTžeStYOrigš + (1L<<13) + + ) + +578  + #GCFÚt + (1L<<14) + + ) + +579  + #GCSubwšdowMode + (1L<<15) + + ) + +580  + #GCG¿phicsExposu»s + (1L<<16) + + ) + +581  + #GCClXOrigš + (1L<<17) + + ) + +582  + #GCClYOrigš + (1L<<18) + + ) + +583  + #GCClMask + (1L<<19) + + ) + +584  + #GCDashOff£t + (1L<<20) + + ) + +585  + #GCDashLi¡ + (1L<<21) + + ) + +586  + #GCArcMode + (1L<<22) + + ) + +588  + #GCLa¡B™ + 22 + + ) + +595  + #FÚtLeáToRight + 0 + + ) + +596  + #FÚtRightToLeá + 1 + + ) + +598  + #FÚtChªge + 255 + + ) + +606  + #XYB™m­ + 0 + + ) + +607  + #XYPixm­ + 1 + + ) + +608  + #ZPixm­ + 2 + + ) + +616  + #AÎocNÚe + 0 + + ) + +617  + #AÎocAÎ + 1 + + ) + +622  + #DoRed + (1<<0) + + ) + +623  + #DoG»’ + (1<<1) + + ) + +624  + #DoBlue + (1<<2) + + ) + +632  + #CursÜSh­e + 0 + + ) + +633  + #TžeSh­e + 1 + + ) + +634  + #St¶eSh­e + 2 + + ) + +640  + #AutoR•—tModeOff + 0 + + ) + +641  + #AutoR•—tModeOn + 1 + + ) + +642  + #AutoR•—tModeDeçuÉ + 2 + + ) + +644  + #LedModeOff + 0 + + ) + +645  + #LedModeOn + 1 + + ) + +649  + #KBKeyClickP”ûÁ + (1L<<0) + + ) + +650  + #KBB–lP”ûÁ + (1L<<1) + + ) + +651  + #KBB–lP™ch + (1L<<2) + + ) + +652  + #KBB–lDu¿tiÚ + (1L<<3) + + ) + +653  + #KBLed + (1L<<4) + + ) + +654  + #KBLedMode + (1L<<5) + + ) + +655  + #KBKey + (1L<<6) + + ) + +656  + #KBAutoR•—tMode + (1L<<7) + + ) + +658  + #M­pšgSucûss + 0 + + ) + +659  + #M­pšgBusy + 1 + + ) + +660  + #M­pšgFažed + 2 + + ) + +662  + #M­pšgModif›r + 0 + + ) + +663  + #M­pšgKeybßrd + 1 + + ) + +664  + #M­pšgPoš‹r + 2 + + ) + +670  + #DÚtP»ãrBÏnkšg + 0 + + ) + +671  + #P»ãrBÏnkšg + 1 + + ) + +672  + #DeçuÉBÏnkšg + 2 + + ) + +674  + #Di§bËSü“nSav” + 0 + + ) + +675  + #Di§bËSü“nIÁ”v® + 0 + + ) + +677  + #DÚtAÎowExposu»s + 0 + + ) + +678  + #AÎowExposu»s + 1 + + ) + +679  + #DeçuÉExposu»s + 2 + + ) + +683  + #Sü“nSav”Re£t + 0 + + ) + +684  + #Sü“nSav”Aùive + 1 + + ) + +692  + #Ho¡In£¹ + 0 + + ) + +693  + #Ho¡D–‘e + 1 + + ) + +697  + #EÇbËAcûss + 1 + + ) + +698  + #Di§bËAcûss + 0 + + ) + +704  + #SticG¿y + 0 + + ) + +705  + #G¿ySÿË + 1 + + ) + +706  + #SticCÞÜ + 2 + + ) + +707  + #P£udoCÞÜ + 3 + + ) + +708  + #TrueCÞÜ + 4 + + ) + +709  + #DœeùCÞÜ + 5 + + ) + +714  + #LSBFœ¡ + 0 + + ) + +715  + #MSBFœ¡ + 1 + + ) + + @/usr/include/X11/X10.h + +35 #iâdeà +_X10_H_ + + +36  + #_X10_H_ + + + ) + +41  + mx +, + my +; + +42  + mæags +; + +43 } + tV”‹x +; + +47  + #V”‹xR–©ive + 0x0001 + + ) + +48  + #V”‹xDÚtD¿w + 0x0002 + + ) + +49  + #V”‹xCurved + 0x0004 + + ) + +50  + #V”‹xS¹Clo£d + 0x0008 + + ) + +51  + #V”‹xEndClo£d + 0x0010 + + ) + +64  + s_XAssoc + { + +65  +_XAssoc + * + mÃxt +; + +66  +_XAssoc + * + m´ev +; + +67 +Di¥Ïy + * + mdi¥Ïy +; + +68 +XID + + mx_id +; + +69 * + md©a +; + +70 } + tXAssoc +; + +82 +XAssoc + * + mbuck‘s +; + +83  + msize +; + +84 } + tXAssocTabË +; + +86 +Stus + +XD¿w +( +Di¥Ïy + * +dpy +, +D¿wabË + +d +, +GC + +gc +, + +87 +V”‹x + * +vli¡ +,  +vcouÁ +); + +88 +Stus + +XD¿wFžËd +( +Di¥Ïy + * +dpy +, +D¿wabË + +d +, +GC + +gc +, + +89 +V”‹x + * +vli¡ +,  +vcouÁ +); + +91 +XAssocTabË + * +XC»©eAssocTabË +( +size +); + +92  +XD–‘eAssoc +( +Di¥Ïy + * +dpy +, +XAssocTabË + * +bË +, +XID + +x_id +); + +93  +XDe¡royAssocTabË +( +XAssocTabË + * +bË +); + +94 * +XLookUpAssoc +( +Di¥Ïy + * +dpy +, +XAssocTabË + * +bË +, +XID + +x_id +); + +95  +XMakeAssoc +( +Di¥Ïy + * +dpy +, +XAssocTabË + * +bË +, +XID + +x_id +, + +96 +XPoš‹r + +d©a +); + + @/usr/include/X11/Xatom.h + +1 #iâdeà +XATOM_H + + +2  + #XATOM_H + 1 + + ) + +9  + #XA_PRIMARY + (( +Atom +è1) + + ) + +10  + #XA_SECONDARY + (( +Atom +è2) + + ) + +11  + #XA_ARC + (( +Atom +è3) + + ) + +12  + #XA_ATOM + (( +Atom +è4) + + ) + +13  + #XA_BITMAP + (( +Atom +è5) + + ) + +14  + #XA_CARDINAL + (( +Atom +è6) + + ) + +15  + #XA_COLORMAP + (( +Atom +è7) + + ) + +16  + #XA_CURSOR + (( +Atom +è8) + + ) + +17  + #XA_CUT_BUFFER0 + (( +Atom +è9) + + ) + +18  + #XA_CUT_BUFFER1 + (( +Atom +è10) + + ) + +19  + #XA_CUT_BUFFER2 + (( +Atom +è11) + + ) + +20  + #XA_CUT_BUFFER3 + (( +Atom +è12) + + ) + +21  + #XA_CUT_BUFFER4 + (( +Atom +è13) + + ) + +22  + #XA_CUT_BUFFER5 + (( +Atom +è14) + + ) + +23  + #XA_CUT_BUFFER6 + (( +Atom +è15) + + ) + +24  + #XA_CUT_BUFFER7 + (( +Atom +è16) + + ) + +25  + #XA_DRAWABLE + (( +Atom +è17) + + ) + +26  + #XA_FONT + (( +Atom +è18) + + ) + +27  + #XA_INTEGER + (( +Atom +è19) + + ) + +28  + #XA_PIXMAP + (( +Atom +è20) + + ) + +29  + #XA_POINT + (( +Atom +è21) + + ) + +30  + #XA_RECTANGLE + (( +Atom +è22) + + ) + +31  + #XA_RESOURCE_MANAGER + (( +Atom +è23) + + ) + +32  + #XA_RGB_COLOR_MAP + (( +Atom +è24) + + ) + +33  + #XA_RGB_BEST_MAP + (( +Atom +è25) + + ) + +34  + #XA_RGB_BLUE_MAP + (( +Atom +è26) + + ) + +35  + #XA_RGB_DEFAULT_MAP + (( +Atom +è27) + + ) + +36  + #XA_RGB_GRAY_MAP + (( +Atom +è28) + + ) + +37  + #XA_RGB_GREEN_MAP + (( +Atom +è29) + + ) + +38  + #XA_RGB_RED_MAP + (( +Atom +è30) + + ) + +39  + #XA_STRING + (( +Atom +è31) + + ) + +40  + #XA_VISUALID + (( +Atom +è32) + + ) + +41  + #XA_WINDOW + (( +Atom +è33) + + ) + +42  + #XA_WM_COMMAND + (( +Atom +è34) + + ) + +43  + #XA_WM_HINTS + (( +Atom +è35) + + ) + +44  + #XA_WM_CLIENT_MACHINE + (( +Atom +è36) + + ) + +45  + #XA_WM_ICON_NAME + (( +Atom +è37) + + ) + +46  + #XA_WM_ICON_SIZE + (( +Atom +è38) + + ) + +47  + #XA_WM_NAME + (( +Atom +è39) + + ) + +48  + #XA_WM_NORMAL_HINTS + (( +Atom +è40) + + ) + +49  + #XA_WM_SIZE_HINTS + (( +Atom +è41) + + ) + +50  + #XA_WM_ZOOM_HINTS + (( +Atom +è42) + + ) + +51  + #XA_MIN_SPACE + (( +Atom +è43) + + ) + +52  + #XA_NORM_SPACE + (( +Atom +è44) + + ) + +53  + #XA_MAX_SPACE + (( +Atom +è45) + + ) + +54  + #XA_END_SPACE + (( +Atom +è46) + + ) + +55  + #XA_SUPERSCRIPT_X + (( +Atom +è47) + + ) + +56  + #XA_SUPERSCRIPT_Y + (( +Atom +è48) + + ) + +57  + #XA_SUBSCRIPT_X + (( +Atom +è49) + + ) + +58  + #XA_SUBSCRIPT_Y + (( +Atom +è50) + + ) + +59  + #XA_UNDERLINE_POSITION + (( +Atom +è51) + + ) + +60  + #XA_UNDERLINE_THICKNESS + (( +Atom +è52) + + ) + +61  + #XA_STRIKEOUT_ASCENT + (( +Atom +è53) + + ) + +62  + #XA_STRIKEOUT_DESCENT + (( +Atom +è54) + + ) + +63  + #XA_ITALIC_ANGLE + (( +Atom +è55) + + ) + +64  + #XA_X_HEIGHT + (( +Atom +è56) + + ) + +65  + #XA_QUAD_WIDTH + (( +Atom +è57) + + ) + +66  + #XA_WEIGHT + (( +Atom +è58) + + ) + +67  + #XA_POINT_SIZE + (( +Atom +è59) + + ) + +68  + #XA_RESOLUTION + (( +Atom +è60) + + ) + +69  + #XA_COPYRIGHT + (( +Atom +è61) + + ) + +70  + #XA_NOTICE + (( +Atom +è62) + + ) + +71  + #XA_FONT_NAME + (( +Atom +è63) + + ) + +72  + #XA_FAMILY_NAME + (( +Atom +è64) + + ) + +73  + #XA_FULL_NAME + (( +Atom +è65) + + ) + +74  + #XA_CAP_HEIGHT + (( +Atom +è66) + + ) + +75  + #XA_WM_CLASS + (( +Atom +è67) + + ) + +76  + #XA_WM_TRANSIENT_FOR + (( +Atom +è68) + + ) + +78  + #XA_LAST_PREDEFINED + (( +Atom +è68) + + ) + + @/usr/include/X11/Xlib.h + +33 #iâdeà +_X11_XLIB_H_ + + +34  + #_X11_XLIB_H_ + + + ) + +36  + #XlibS³cifiÿtiÚR–—£ + 6 + + ) + +38  + ~ + +40 #ià +defšed +( +__SCO__ +è|| defšed( +__UNIXWARE__ +) + +41  + ~<¡dšt.h +> + +44  + ~ + +47  + ~ + +48  + ~ + +50 #iâdeà +X_WCHAR + + +51  + ~<¡ddef.h +> + +53 #ifdeà +__UNIXOS2__ + + +54  + ~<¡dlib.h +> + +57  + twch¬_t +; + +61 #ià +defšed +( +ISC +è&& defšed( +USE_XMBTOWC +) + +62  + #wùomb +( +a +, +b +è + `_Xwùomb +×,b) + + ) + +63  + #mbËn +( +a +, +b +è + `_XmbËn +×,b) + + ) + +64 #iâdeà +USE_XWCHAR_STRING + + +65  + #mbtowc +( +a +, +b +, +c +è + `_Xmbtowc +×,b,c) + + ) + +70 +_XmbËn +( + +71 #ifdeà +ISC + + +72 cÚ¡ * +¡r +, + +73 +size_t + +Ën + + +75 * +¡r +, + +76  +Ën + + +82  + #X_HAVE_UTF8_STRING + 1 + + ) + +84 * + tXPoš‹r +; + +86  + #BoÞ +  + + ) + +87  + #Stus +  + + ) + +88  + #True + 1 + + ) + +89  + #F®£ + 0 + + ) + +91  + #QueuedAÌ—dy + 0 + + ) + +92  + #QueuedAá”R—dšg + 1 + + ) + +93  + #QueuedAá”Flush + 2 + + ) + +95  + #CÚÃùiÚNumb” +( +dpy +è((( +_XPrivDi¥Ïy +)dpy)-> +fd +) + + ) + +96  + #RoÙWšdow +( +dpy +, +sü +è( + `Sü“nOfDi¥Ïy +(dpy,sü)-> +roÙ +) + + ) + +97  + #DeçuÉSü“n +( +dpy +è((( +_XPrivDi¥Ïy +)dpy)-> +deçuÉ_sü“n +) + + ) + +98  + #DeçuÉRoÙWšdow +( +dpy +è( + `Sü“nOfDi¥Ïy +(dpy, + `DeçuÉSü“n +(dpy))-> +roÙ +) + + ) + +99  + #DeçuÉVisu® +( +dpy +, +sü +è( + `Sü“nOfDi¥Ïy +(dpy,sü)-> +roÙ_visu® +) + + ) + +100  + #DeçuÉGC +( +dpy +, +sü +è( + `Sü“nOfDi¥Ïy +(dpy,sü)-> +deçuÉ_gc +) + + ) + +101  + #BÏckPix– +( +dpy +, +sü +è( + `Sü“nOfDi¥Ïy +(dpy,sü)-> +bÏck_pix– +) + + ) + +102  + #Wh™ePix– +( +dpy +, +sü +è( + `Sü“nOfDi¥Ïy +(dpy,sü)-> +wh™e_pix– +) + + ) + +103  + #AÎPÏÃs + (()~0L) + + ) + +104  + #QL’gth +( +dpy +è((( +_XPrivDi¥Ïy +)dpy)-> +qËn +) + + ) + +105  + #Di¥ÏyWidth +( +dpy +, +sü +è( + `Sü“nOfDi¥Ïy +(dpy,sü)-> +width +) + + ) + +106  + #Di¥ÏyHeight +( +dpy +, +sü +è( + `Sü“nOfDi¥Ïy +(dpy,sü)-> +height +) + + ) + +107  + #Di¥ÏyWidthMM +( +dpy +, +sü +)( + `Sü“nOfDi¥Ïy +(dpy,sü)-> +mwidth +) + + ) + +108  + #Di¥ÏyHeightMM +( +dpy +, +sü +)( + `Sü“nOfDi¥Ïy +(dpy,sü)-> +mheight +) + + ) + +109  + #Di¥ÏyPÏÃs +( +dpy +, +sü +è( + `Sü“nOfDi¥Ïy +(dpy,sü)-> +roÙ_d•th +) + + ) + +110  + #Di¥ÏyC–ls +( +dpy +, +sü +è( + `DeçuÉVisu® +(dpy,sü)-> +m­_’Œ›s +) + + ) + +111  + #Sü“nCouÁ +( +dpy +è((( +_XPrivDi¥Ïy +)dpy)-> +nsü“ns +) + + ) + +112  + #S”v”V’dÜ +( +dpy +è((( +_XPrivDi¥Ïy +)dpy)-> +v’dÜ +) + + ) + +113  + #PrÙocÞV”siÚ +( +dpy +è((( +_XPrivDi¥Ïy +)dpy)-> +´Ùo_majÜ_v”siÚ +) + + ) + +114  + #PrÙocÞRevisiÚ +( +dpy +è((( +_XPrivDi¥Ïy +)dpy)-> +´Ùo_mšÜ_v”siÚ +) + + ) + +115  + #V’dÜR–—£ +( +dpy +è((( +_XPrivDi¥Ïy +)dpy)-> +»Ëa£ +) + + ) + +116  + #Di¥ÏySŒšg +( +dpy +è((( +_XPrivDi¥Ïy +)dpy)-> +di¥Ïy_Çme +) + + ) + +117  + #DeçuÉD•th +( +dpy +, +sü +è( + `Sü“nOfDi¥Ïy +(dpy,sü)-> +roÙ_d•th +) + + ) + +118  + #DeçuÉCÞÜm­ +( +dpy +, +sü +)( + `Sü“nOfDi¥Ïy +(dpy,sü)-> +cm­ +) + + ) + +119  + #B™m­Un™ +( +dpy +è((( +_XPrivDi¥Ïy +)dpy)-> +b™m­_un™ +) + + ) + +120  + #B™m­B™Ord” +( +dpy +è((( +_XPrivDi¥Ïy +)dpy)-> +b™m­_b™_Üd” +) + + ) + +121  + #B™m­Pad +( +dpy +è((( +_XPrivDi¥Ïy +)dpy)-> +b™m­_·d +) + + ) + +122  + #ImageBy‹Ord” +( +dpy +è((( +_XPrivDi¥Ïy +)dpy)-> +by‹_Üd” +) + + ) + +123 #ifdeà +CRAY + + +124  + #NextReque¡ +( +dpy +è + `XNextReque¡ +(dpy) + + ) + +126  + #NextReque¡ +( +dpy +è((( +_XPrivDi¥Ïy +)dpy)-> +»que¡ + + 1) + + ) + +128  + #La¡KnownReque¡Proûs£d +( +dpy +è((( +_XPrivDi¥Ïy +)dpy)-> +Ï¡_»que¡_»ad +) + + ) + +131  + #Sü“nOfDi¥Ïy +( +dpy +, +sü +)(&(( +_XPrivDi¥Ïy +)dpy)-> +sü“ns +[sü]) + + ) + +132  + #DeçuÉSü“nOfDi¥Ïy +( +dpy +è + `Sü“nOfDi¥Ïy +(dpy, + `DeçuÉSü“n +(dpy)) + + ) + +133  + #Di¥ÏyOfSü“n +( +s +è((s)-> +di¥Ïy +) + + ) + +134  + #RoÙWšdowOfSü“n +( +s +è((s)-> +roÙ +) + + ) + +135  + #BÏckPix–OfSü“n +( +s +è((s)-> +bÏck_pix– +) + + ) + +136  + #Wh™ePix–OfSü“n +( +s +è((s)-> +wh™e_pix– +) + + ) + +137  + #DeçuÉCÞÜm­OfSü“n +( +s +)((s)-> +cm­ +) + + ) + +138  + #DeçuÉD•thOfSü“n +( +s +è((s)-> +roÙ_d•th +) + + ) + +139  + #DeçuÉGCOfSü“n +( +s +è((s)-> +deçuÉ_gc +) + + ) + +140  + #DeçuÉVisu®OfSü“n +( +s +)((s)-> +roÙ_visu® +) + + ) + +141  + #WidthOfSü“n +( +s +è((s)-> +width +) + + ) + +142  + #HeightOfSü“n +( +s +è((s)-> +height +) + + ) + +143  + #WidthMMOfSü“n +( +s +è((s)-> +mwidth +) + + ) + +144  + #HeightMMOfSü“n +( +s +è((s)-> +mheight +) + + ) + +145  + #PÏÃsOfSü“n +( +s +è((s)-> +roÙ_d•th +) + + ) + +146  + #C–lsOfSü“n +( +s +è( + `DeçuÉVisu®OfSü“n +((s))-> +m­_’Œ›s +) + + ) + +147  + #MšCm­sOfSü“n +( +s +è((s)-> +mš_m­s +) + + ) + +148  + #MaxCm­sOfSü“n +( +s +è((s)-> +max_m­s +) + + ) + +149  + #DÛsSaveUnd”s +( +s +è((s)-> +§ve_und”s +) + + ) + +150  + #DÛsBackšgStÜe +( +s +è((s)-> +backšg_¡Üe +) + + ) + +151  + #Ev’tMaskOfSü“n +( +s +è((s)-> +roÙ_šput_mask +) + + ) + +156  + s_XExtD©a + { + +157  + mnumb” +; + +158  +_XExtD©a + * + mÃxt +; + +159 (* + mä“_´iv©e +)( + +160  +_XExtD©a + * + mex‹nsiÚ + + +162 +XPoš‹r + + m´iv©e_d©a +; + +163 } + tXExtD©a +; + +169  + mex‹nsiÚ +; + +170  + mmajÜ_Ýcode +; + +171  + mfœ¡_ev’t +; + +172  + mfœ¡_”rÜ +; + +173 } + tXExtCodes +; + +180  + md•th +; + +181  + mb™s_³r_pix– +; + +182  + msÿÆše_·d +; + +183 } + tXPixm­FÜm©V®ues +; + +190  + mfunùiÚ +; + +191  + m¶ªe_mask +; + +192  + mfÜeground +; + +193  + mbackground +; + +194  + mlše_width +; + +195  + mlše_¡yË +; + +196  + mÿp_¡yË +; + +198  + mjoš_¡yË +; + +199  + mfžl_¡yË +; + +201  + mfžl_ruË +; + +202  + m¬c_mode +; + +203 +Pixm­ + + mtže +; + +204 +Pixm­ + + m¡¶e +; + +205  + mts_x_Üigš +; + +206  + mts_y_Üigš +; + +207 +FÚt + + mfÚt +; + +208  + msubwšdow_mode +; + +209 +BoÞ + + mg¿phics_exposu»s +; + +210  + mþ_x_Üigš +; + +211  + mþ_y_Üigš +; + +212 +Pixm­ + + mþ_mask +; + +213  + mdash_off£t +; + +214  + mdashes +; + +215 } + tXGCV®ues +; + +222  + g_XGC + + +223 #ifdeà + tXLIB_ILLEGAL_ACCESS + + +225 +XExtD©a + * + gext_d©a +; + +226 +GCÚ‹xt + + ggid +; + +230 * + tGC +; + +236 +XExtD©a + * + mext_d©a +; + +237 +Visu®ID + + mvisu®id +; + +238 #ià +defšed +( +__ýlu¥lus +è|| defšed( +c_¶u¥lus +) + +239  + mc_þass +; + +241  + mþass +; + +243  + m»d_mask +, + mg»’_mask +, + mblue_mask +; + +244  + mb™s_³r_rgb +; + +245  + mm­_’Œ›s +; + +246 } + tVisu® +; + +252  + md•th +; + +253  + mnvisu®s +; + +254 +Visu® + * + mvisu®s +; + +255 } + tD•th +; + +263  + g_XDi¥Ïy +; + +266 +XExtD©a + * + mext_d©a +; + +267  +_XDi¥Ïy + * + mdi¥Ïy +; + +268 +Wšdow + + mroÙ +; + +269  + mwidth +, + mheight +; + +270  + mmwidth +, + mmheight +; + +271  + mnd•ths +; + +272 +D•th + * + md•ths +; + +273  + mroÙ_d•th +; + +274 +Visu® + * + mroÙ_visu® +; + +275 +GC + + mdeçuÉ_gc +; + +276 +CÞÜm­ + + mcm­ +; + +277  + mwh™e_pix– +; + +278  + mbÏck_pix– +; + +279  + mmax_m­s +, + mmš_m­s +; + +280  + mbackšg_¡Üe +; + +281 +BoÞ + + m§ve_und”s +; + +282  + mroÙ_šput_mask +; + +283 } + tSü“n +; + +289 +XExtD©a + * + mext_d©a +; + +290  + md•th +; + +291  + mb™s_³r_pix– +; + +292  + msÿÆše_·d +; + +293 } + tSü“nFÜm© +; + +299 +Pixm­ + + mbackground_pixm­ +; + +300  + mbackground_pix– +; + +301 +Pixm­ + + mbÜd”_pixm­ +; + +302  + mbÜd”_pix– +; + +303  + mb™_g¿v™y +; + +304  + mwš_g¿v™y +; + +305  + mbackšg_¡Üe +; + +306  + mbackšg_¶ªes +; + +307  + mbackšg_pix– +; + +308 +BoÞ + + m§ve_und” +; + +309  + mev’t_mask +; + +310  + mdo_nÙ_´Ýag©e_mask +; + +311 +BoÞ + + mov”ride_»dœeù +; + +312 +CÞÜm­ + + mcÞÜm­ +; + +313 +CursÜ + + mcursÜ +; + +314 } + tXS‘WšdowA‰ribu‹s +; + +317  + mx +, + my +; + +318  + mwidth +, + mheight +; + +319  + mbÜd”_width +; + +320  + md•th +; + +321 +Visu® + * + mvisu® +; + +322 +Wšdow + + mroÙ +; + +323 #ià +defšed +( +__ýlu¥lus +è|| defšed( +c_¶u¥lus +) + +324  + mc_þass +; + +326  + mþass +; + +328  + mb™_g¿v™y +; + +329  + mwš_g¿v™y +; + +330  + mbackšg_¡Üe +; + +331  + mbackšg_¶ªes +; + +332  + mbackšg_pix– +; + +333 +BoÞ + + m§ve_und” +; + +334 +CÞÜm­ + + mcÞÜm­ +; + +335 +BoÞ + + mm­_š¡®Ëd +; + +336  + mm­_¡©e +; + +337  + m®l_ev’t_masks +; + +338  + myour_ev’t_mask +; + +339  + mdo_nÙ_´Ýag©e_mask +; + +340 +BoÞ + + mov”ride_»dœeù +; + +341 +Sü“n + * + msü“n +; + +342 } + tXWšdowA‰ribu‹s +; + +350  + mçmžy +; + +351  + mËngth +; + +352 * + madd»ss +; + +353 } + tXHo¡Add»ss +; + +359  + mty³Ëngth +; + +360  + mv®u–’gth +; + +361 * + mty³ +; + +362 * + mv®ue +; + +363 } + tXS”v”IÁ”´‘edAdd»ss +; + +368  + s_XImage + { + +369  + mwidth +, + mheight +; + +370  + mxoff£t +; + +371  + mfÜm© +; + +372 * + md©a +; + +373  + mby‹_Üd” +; + +374  + mb™m­_un™ +; + +375  + mb™m­_b™_Üd” +; + +376  + mb™m­_·d +; + +377  + md•th +; + +378  + mby‹s_³r_lše +; + +379  + mb™s_³r_pix– +; + +380  + m»d_mask +; + +381  + mg»’_mask +; + +382  + mblue_mask +; + +383 +XPoš‹r + + mobd©a +; + +384  + sfuncs + { + +385  + m_XImage + *(* + mü—‹_image +)( + +386  + m_XDi¥Ïy +* , + +387 + mVisu® +* , + +396 (* + mde¡roy_image +è( + m_XImage + *); + +397 (* + mg‘_pix– +è( + m_XImage + *, , ); + +398 (* + mput_pix– +è( + m_XImage + *, , , ); + +399  + m_XImage + *(* + msub_image +)(_XImage *, , , , ); + +400 (* + madd_pix– +è( + m_XImage + *, ); + +401 } + mf +; + +402 } + tXImage +; + +408  + mx +, + my +; + +409  + mwidth +, + mheight +; + +410  + mbÜd”_width +; + +411 +Wšdow + + msiblšg +; + +412  + m¡ack_mode +; + +413 } + tXWšdowChªges +; + +419  + mpix– +; + +420  + m»d +, + mg»’ +, + mblue +; + +421  + mæags +; + +422  + m·d +; + +423 } + tXCÞÜ +; + +431  + mx1 +, + my1 +, + mx2 +, + my2 +; + +432 } + tXSegm’t +; + +435  + mx +, + my +; + +436 } + tXPošt +; + +439  + mx +, + my +; + +440  + mwidth +, + mheight +; + +441 } + tXReùªgË +; + +444  + mx +, + my +; + +445  + mwidth +, + mheight +; + +446  + mªgË1 +, + mªgË2 +; + +447 } + tXArc +; + +453  + mkey_þick_³rûÁ +; + +454  + mb–l_³rûÁ +; + +455  + mb–l_p™ch +; + +456  + mb–l_du¿tiÚ +; + +457  + mËd +; + +458  + mËd_mode +; + +459  + mkey +; + +460  + mauto_»³©_mode +; + +461 } + tXKeybßrdCÚŒÞ +; + +466  + mkey_þick_³rûÁ +; + +467  + mb–l_³rûÁ +; + +468  + mb–l_p™ch +, + mb–l_du¿tiÚ +; + +469  + mËd_mask +; + +470  + mglob®_auto_»³© +; + +471  + mauto_»³©s +[32]; + +472 } + tXKeybßrdS‹ +; + +477 +Time + + mtime +; + +478  + mx +, + my +; + +479 } + tXTimeCoÜd +; + +484  + mmax_key³rmod +; + +485 +KeyCode + * + mmodif›rm­ +; + +486 } + tXModif›rKeym­ +; + +494 #iâdeà +XLIB_ILLEGAL_ACCESS + + +495  +_XDi¥Ïy + + tDi¥Ïy +; + +498  + g_XPriv©e +; + +499  + g_XrmHashBuck‘Rec +; + +502 #ifdeà +XLIB_ILLEGAL_ACCESS + + +503 + t_XDi¥Ïy + + +506 +XExtD©a + * + gext_d©a +; + +507  +_XPriv©e + * + g´iv©e1 +; + +508  + gfd +; + +509  + g´iv©e2 +; + +510  + g´Ùo_majÜ_v”siÚ +; + +511  + g´Ùo_mšÜ_v”siÚ +; + +512 * + gv’dÜ +; + +513 +XID + + g´iv©e3 +; + +514 +XID + + g´iv©e4 +; + +515 +XID + + g´iv©e5 +; + +516  + g´iv©e6 +; + +517 +XID + (* +»sourû_®loc +)( + +518  + g_XDi¥Ïy +* + +520  + gby‹_Üd” +; + +521  + gb™m­_un™ +; + +522  + gb™m­_·d +; + +523  + gb™m­_b™_Üd” +; + +524  + gnfÜm©s +; + +525 +Sü“nFÜm© + * + gpixm­_fÜm© +; + +526  + g´iv©e8 +; + +527  + g»Ëa£ +; + +528  +_XPriv©e + * + g´iv©e9 +, * + g´iv©e10 +; + +529  + gqËn +; + +530  + gÏ¡_»que¡_»ad +; + +531  + g»que¡ +; + +532 +XPoš‹r + + g´iv©e11 +; + +533 +XPoš‹r + + g´iv©e12 +; + +534 +XPoš‹r + + g´iv©e13 +; + +535 +XPoš‹r + + g´iv©e14 +; + +536  + gmax_»que¡_size +; + +537  +_XrmHashBuck‘Rec + * + gdb +; + +538 (* + g´iv©e15 +)( + +539  + g_XDi¥Ïy +* + +541 * + gdi¥Ïy_Çme +; + +542  + gdeçuÉ_sü“n +; + +543  + gnsü“ns +; + +544 +Sü“n + * + gsü“ns +; + +545  + gmÙiÚ_bufãr +; + +546  + g´iv©e16 +; + +547  + gmš_keycode +; + +548  + gmax_keycode +; + +549 +XPoš‹r + + g´iv©e17 +; + +550 +XPoš‹r + + g´iv©e18 +; + +551  + g´iv©e19 +; + +552 * + gxdeçuÉs +; + +555 #ifdeà + tXLIB_ILLEGAL_ACCESS + + +556 + tDi¥Ïy +, + +558 * + t_XPrivDi¥Ïy +; + +560 #undeà +_XEVENT_ + + +561 #iâdeà +_XEVENT_ + + +566  + mty³ +; + +567  + m£rŸl +; + +568 +BoÞ + + m£nd_ev’t +; + +569 +Di¥Ïy + * + mdi¥Ïy +; + +570 +Wšdow + + mwšdow +; + +571 +Wšdow + + mroÙ +; + +572 +Wšdow + + msubwšdow +; + +573 +Time + + mtime +; + +574  + mx +, + my +; + +575  + mx_roÙ +, + my_roÙ +; + +576  + m¡©e +; + +577  + mkeycode +; + +578 +BoÞ + + m§me_sü“n +; + +579 } + tXKeyEv’t +; + +580  +XKeyEv’t + + tXKeyP»s£dEv’t +; + +581  +XKeyEv’t + + tXKeyR–—£dEv’t +; + +584  + mty³ +; + +585  + m£rŸl +; + +586 +BoÞ + + m£nd_ev’t +; + +587 +Di¥Ïy + * + mdi¥Ïy +; + +588 +Wšdow + + mwšdow +; + +589 +Wšdow + + mroÙ +; + +590 +Wšdow + + msubwšdow +; + +591 +Time + + mtime +; + +592  + mx +, + my +; + +593  + mx_roÙ +, + my_roÙ +; + +594  + m¡©e +; + +595  + mbu‰Ú +; + +596 +BoÞ + + m§me_sü“n +; + +597 } + tXBu‰ÚEv’t +; + +598  +XBu‰ÚEv’t + + tXBu‰ÚP»s£dEv’t +; + +599  +XBu‰ÚEv’t + + tXBu‰ÚR–—£dEv’t +; + +602  + mty³ +; + +603  + m£rŸl +; + +604 +BoÞ + + m£nd_ev’t +; + +605 +Di¥Ïy + * + mdi¥Ïy +; + +606 +Wšdow + + mwšdow +; + +607 +Wšdow + + mroÙ +; + +608 +Wšdow + + msubwšdow +; + +609 +Time + + mtime +; + +610  + mx +, + my +; + +611  + mx_roÙ +, + my_roÙ +; + +612  + m¡©e +; + +613  + mis_hšt +; + +614 +BoÞ + + m§me_sü“n +; + +615 } + tXMÙiÚEv’t +; + +616  +XMÙiÚEv’t + + tXPoš‹rMovedEv’t +; + +619  + mty³ +; + +620  + m£rŸl +; + +621 +BoÞ + + m£nd_ev’t +; + +622 +Di¥Ïy + * + mdi¥Ïy +; + +623 +Wšdow + + mwšdow +; + +624 +Wšdow + + mroÙ +; + +625 +Wšdow + + msubwšdow +; + +626 +Time + + mtime +; + +627  + mx +, + my +; + +628  + mx_roÙ +, + my_roÙ +; + +629  + mmode +; + +630  + md‘až +; + +635 +BoÞ + + m§me_sü“n +; + +636 +BoÞ + + mfocus +; + +637  + m¡©e +; + +638 } + tXCrossšgEv’t +; + +639  +XCrossšgEv’t + + tXEÁ”WšdowEv’t +; + +640  +XCrossšgEv’t + + tXL—veWšdowEv’t +; + +643  + mty³ +; + +644  + m£rŸl +; + +645 +BoÞ + + m£nd_ev’t +; + +646 +Di¥Ïy + * + mdi¥Ïy +; + +647 +Wšdow + + mwšdow +; + +648  + mmode +; + +650  + md‘až +; + +656 } + tXFocusChªgeEv’t +; + +657  +XFocusChªgeEv’t + + tXFocusInEv’t +; + +658  +XFocusChªgeEv’t + + tXFocusOutEv’t +; + +662  + mty³ +; + +663  + m£rŸl +; + +664 +BoÞ + + m£nd_ev’t +; + +665 +Di¥Ïy + * + mdi¥Ïy +; + +666 +Wšdow + + mwšdow +; + +667  + mkey_veùÜ +[32]; + +668 } + tXKeym­Ev’t +; + +671  + mty³ +; + +672  + m£rŸl +; + +673 +BoÞ + + m£nd_ev’t +; + +674 +Di¥Ïy + * + mdi¥Ïy +; + +675 +Wšdow + + mwšdow +; + +676  + mx +, + my +; + +677  + mwidth +, + mheight +; + +678  + mcouÁ +; + +679 } + tXExpo£Ev’t +; + +682  + mty³ +; + +683  + m£rŸl +; + +684 +BoÞ + + m£nd_ev’t +; + +685 +Di¥Ïy + * + mdi¥Ïy +; + +686 +D¿wabË + + md¿wabË +; + +687  + mx +, + my +; + +688  + mwidth +, + mheight +; + +689  + mcouÁ +; + +690  + mmajÜ_code +; + +691  + mmšÜ_code +; + +692 } + tXG¿phicsExpo£Ev’t +; + +695  + mty³ +; + +696  + m£rŸl +; + +697 +BoÞ + + m£nd_ev’t +; + +698 +Di¥Ïy + * + mdi¥Ïy +; + +699 +D¿wabË + + md¿wabË +; + +700  + mmajÜ_code +; + +701  + mmšÜ_code +; + +702 } + tXNoExpo£Ev’t +; + +705  + mty³ +; + +706  + m£rŸl +; + +707 +BoÞ + + m£nd_ev’t +; + +708 +Di¥Ïy + * + mdi¥Ïy +; + +709 +Wšdow + + mwšdow +; + +710  + m¡©e +; + +711 } + tXVisibž™yEv’t +; + +714  + mty³ +; + +715  + m£rŸl +; + +716 +BoÞ + + m£nd_ev’t +; + +717 +Di¥Ïy + * + mdi¥Ïy +; + +718 +Wšdow + + m·»Á +; + +719 +Wšdow + + mwšdow +; + +720  + mx +, + my +; + +721  + mwidth +, + mheight +; + +722  + mbÜd”_width +; + +723 +BoÞ + + mov”ride_»dœeù +; + +724 } + tXC»©eWšdowEv’t +; + +727  + mty³ +; + +728  + m£rŸl +; + +729 +BoÞ + + m£nd_ev’t +; + +730 +Di¥Ïy + * + mdi¥Ïy +; + +731 +Wšdow + + mev’t +; + +732 +Wšdow + + mwšdow +; + +733 } + tXDe¡royWšdowEv’t +; + +736  + mty³ +; + +737  + m£rŸl +; + +738 +BoÞ + + m£nd_ev’t +; + +739 +Di¥Ïy + * + mdi¥Ïy +; + +740 +Wšdow + + mev’t +; + +741 +Wšdow + + mwšdow +; + +742 +BoÞ + + mäom_cÚfigu» +; + +743 } + tXUnm­Ev’t +; + +746  + mty³ +; + +747  + m£rŸl +; + +748 +BoÞ + + m£nd_ev’t +; + +749 +Di¥Ïy + * + mdi¥Ïy +; + +750 +Wšdow + + mev’t +; + +751 +Wšdow + + mwšdow +; + +752 +BoÞ + + mov”ride_»dœeù +; + +753 } + tXM­Ev’t +; + +756  + mty³ +; + +757  + m£rŸl +; + +758 +BoÞ + + m£nd_ev’t +; + +759 +Di¥Ïy + * + mdi¥Ïy +; + +760 +Wšdow + + m·»Á +; + +761 +Wšdow + + mwšdow +; + +762 } + tXM­Reque¡Ev’t +; + +765  + mty³ +; + +766  + m£rŸl +; + +767 +BoÞ + + m£nd_ev’t +; + +768 +Di¥Ïy + * + mdi¥Ïy +; + +769 +Wšdow + + mev’t +; + +770 +Wšdow + + mwšdow +; + +771 +Wšdow + + m·»Á +; + +772  + mx +, + my +; + +773 +BoÞ + + mov”ride_»dœeù +; + +774 } + tXR•¬’tEv’t +; + +777  + mty³ +; + +778  + m£rŸl +; + +779 +BoÞ + + m£nd_ev’t +; + +780 +Di¥Ïy + * + mdi¥Ïy +; + +781 +Wšdow + + mev’t +; + +782 +Wšdow + + mwšdow +; + +783  + mx +, + my +; + +784  + mwidth +, + mheight +; + +785  + mbÜd”_width +; + +786 +Wšdow + + mabove +; + +787 +BoÞ + + mov”ride_»dœeù +; + +788 } + tXCÚfigu»Ev’t +; + +791  + mty³ +; + +792  + m£rŸl +; + +793 +BoÞ + + m£nd_ev’t +; + +794 +Di¥Ïy + * + mdi¥Ïy +; + +795 +Wšdow + + mev’t +; + +796 +Wšdow + + mwšdow +; + +797  + mx +, + my +; + +798 } + tXG¿v™yEv’t +; + +801  + mty³ +; + +802  + m£rŸl +; + +803 +BoÞ + + m£nd_ev’t +; + +804 +Di¥Ïy + * + mdi¥Ïy +; + +805 +Wšdow + + mwšdow +; + +806  + mwidth +, + mheight +; + +807 } + tXResizeReque¡Ev’t +; + +810  + mty³ +; + +811  + m£rŸl +; + +812 +BoÞ + + m£nd_ev’t +; + +813 +Di¥Ïy + * + mdi¥Ïy +; + +814 +Wšdow + + m·»Á +; + +815 +Wšdow + + mwšdow +; + +816  + mx +, + my +; + +817  + mwidth +, + mheight +; + +818  + mbÜd”_width +; + +819 +Wšdow + + mabove +; + +820  + md‘až +; + +821  + mv®ue_mask +; + +822 } + tXCÚfigu»Reque¡Ev’t +; + +825  + mty³ +; + +826  + m£rŸl +; + +827 +BoÞ + + m£nd_ev’t +; + +828 +Di¥Ïy + * + mdi¥Ïy +; + +829 +Wšdow + + mev’t +; + +830 +Wšdow + + mwšdow +; + +831  + m¶aû +; + +832 } + tXCœcuÏ‹Ev’t +; + +835  + mty³ +; + +836  + m£rŸl +; + +837 +BoÞ + + m£nd_ev’t +; + +838 +Di¥Ïy + * + mdi¥Ïy +; + +839 +Wšdow + + m·»Á +; + +840 +Wšdow + + mwšdow +; + +841  + m¶aû +; + +842 } + tXCœcuÏ‹Reque¡Ev’t +; + +845  + mty³ +; + +846  + m£rŸl +; + +847 +BoÞ + + m£nd_ev’t +; + +848 +Di¥Ïy + * + mdi¥Ïy +; + +849 +Wšdow + + mwšdow +; + +850 +Atom + + m©om +; + +851 +Time + + mtime +; + +852  + m¡©e +; + +853 } + tXPrÝ”tyEv’t +; + +856  + mty³ +; + +857  + m£rŸl +; + +858 +BoÞ + + m£nd_ev’t +; + +859 +Di¥Ïy + * + mdi¥Ïy +; + +860 +Wšdow + + mwšdow +; + +861 +Atom + + m£ËùiÚ +; + +862 +Time + + mtime +; + +863 } + tXS–eùiÚCˬEv’t +; + +866  + mty³ +; + +867  + m£rŸl +; + +868 +BoÞ + + m£nd_ev’t +; + +869 +Di¥Ïy + * + mdi¥Ïy +; + +870 +Wšdow + + mowÃr +; + +871 +Wšdow + + m»que¡Ü +; + +872 +Atom + + m£ËùiÚ +; + +873 +Atom + + mrg‘ +; + +874 +Atom + + m´Ý”ty +; + +875 +Time + + mtime +; + +876 } + tXS–eùiÚReque¡Ev’t +; + +879  + mty³ +; + +880  + m£rŸl +; + +881 +BoÞ + + m£nd_ev’t +; + +882 +Di¥Ïy + * + mdi¥Ïy +; + +883 +Wšdow + + m»que¡Ü +; + +884 +Atom + + m£ËùiÚ +; + +885 +Atom + + mrg‘ +; + +886 +Atom + + m´Ý”ty +; + +887 +Time + + mtime +; + +888 } + tXS–eùiÚEv’t +; + +891  + mty³ +; + +892  + m£rŸl +; + +893 +BoÞ + + m£nd_ev’t +; + +894 +Di¥Ïy + * + mdi¥Ïy +; + +895 +Wšdow + + mwšdow +; + +896 +CÞÜm­ + + mcÞÜm­ +; + +897 #ià +defšed +( +__ýlu¥lus +è|| defšed( +c_¶u¥lus +) + +898 +BoÞ + + mc_Ãw +; + +900 +BoÞ + + mÃw +; + +902  + m¡©e +; + +903 } + tXCÞÜm­Ev’t +; + +906  + mty³ +; + +907  + m£rŸl +; + +908 +BoÞ + + m£nd_ev’t +; + +909 +Di¥Ïy + * + mdi¥Ïy +; + +910 +Wšdow + + mwšdow +; + +911 +Atom + + mmes§ge_ty³ +; + +912  + mfÜm© +; + +914  + mb +[20]; + +915  + ms +[10]; + +916  + ml +[5]; + +917 } + md©a +; + +918 } + tXCl›ÁMes§geEv’t +; + +921  + mty³ +; + +922  + m£rŸl +; + +923 +BoÞ + + m£nd_ev’t +; + +924 +Di¥Ïy + * + mdi¥Ïy +; + +925 +Wšdow + + mwšdow +; + +926  + m»que¡ +; + +928  + mfœ¡_keycode +; + +929  + mcouÁ +; + +930 } + tXM­pšgEv’t +; + +933  + mty³ +; + +934 +Di¥Ïy + * + mdi¥Ïy +; + +935 +XID + + m»sourûid +; + +936  + m£rŸl +; + +937  + m”rÜ_code +; + +938  + m»que¡_code +; + +939  + mmšÜ_code +; + +940 } + tXE¼ÜEv’t +; + +943  + mty³ +; + +944  + m£rŸl +; + +945 +BoÞ + + m£nd_ev’t +; + +946 +Di¥Ïy + * + mdi¥Ïy +; + +947 +Wšdow + + mwšdow +; + +948 } + tXAnyEv’t +; + +958  + mty³ +; + +959  + m£rŸl +; + +960 +BoÞ + + m£nd_ev’t +; + +961 +Di¥Ïy + * + mdi¥Ïy +; + +962  + mex‹nsiÚ +; + +963  + mevty³ +; + +964 } + tXG’”icEv’t +; + +967  + mty³ +; + +968  + m£rŸl +; + +969 +BoÞ + + m£nd_ev’t +; + +970 +Di¥Ïy + * + mdi¥Ïy +; + +971  + mex‹nsiÚ +; + +972  + mevty³ +; + +973  + mcook› +; + +974 * + md©a +; + +975 } + tXG’”icEv’tCook› +; + +981  + u_XEv’t + { + +982  + mty³ +; + +983 +XAnyEv’t + + mxªy +; + +984 +XKeyEv’t + + mxkey +; + +985 +XBu‰ÚEv’t + + mxbu‰Ú +; + +986 +XMÙiÚEv’t + + mxmÙiÚ +; + +987 +XCrossšgEv’t + + mxüossšg +; + +988 +XFocusChªgeEv’t + + mxfocus +; + +989 +XExpo£Ev’t + + mxexpo£ +; + +990 +XG¿phicsExpo£Ev’t + + mxg¿phic£xpo£ +; + +991 +XNoExpo£Ev’t + + mxnÛxpo£ +; + +992 +XVisibž™yEv’t + + mxvisibž™y +; + +993 +XC»©eWšdowEv’t + + mxü—‹wšdow +; + +994 +XDe¡royWšdowEv’t + + mxde¡roywšdow +; + +995 +XUnm­Ev’t + + mxunm­ +; + +996 +XM­Ev’t + + mxm­ +; + +997 +XM­Reque¡Ev’t + + mxm­»que¡ +; + +998 +XR•¬’tEv’t + + mx»·»Á +; + +999 +XCÚfigu»Ev’t + + mxcÚfigu» +; + +1000 +XG¿v™yEv’t + + mxg¿v™y +; + +1001 +XResizeReque¡Ev’t + + mx»siz”eque¡ +; + +1002 +XCÚfigu»Reque¡Ev’t + + mxcÚfigu»»que¡ +; + +1003 +XCœcuÏ‹Ev’t + + mxcœcuÏ‹ +; + +1004 +XCœcuÏ‹Reque¡Ev’t + + mxcœcuÏ‹»que¡ +; + +1005 +XPrÝ”tyEv’t + + mx´Ý”ty +; + +1006 +XS–eùiÚCˬEv’t + + mx£ËùiÚþ—r +; + +1007 +XS–eùiÚReque¡Ev’t + + mx£ËùiÚ»que¡ +; + +1008 +XS–eùiÚEv’t + + mx£ËùiÚ +; + +1009 +XCÞÜm­Ev’t + + mxcÞÜm­ +; + +1010 +XCl›ÁMes§geEv’t + + mxþ›Á +; + +1011 +XM­pšgEv’t + + mxm­pšg +; + +1012 +XE¼ÜEv’t + + mx”rÜ +; + +1013 +XKeym­Ev’t + + mxkeym­ +; + +1014 +XG’”icEv’t + + mxg’”ic +; + +1015 +XG’”icEv’tCook› + + mxcook› +; + +1016  + m·d +[24]; + +1017 } + tXEv’t +; + +1020  + #XAÎocID +( +dpy +è((*(( +_XPrivDi¥Ïy +)dpy)-> +»sourû_®loc +)((dpy))) + + ) + +1026  + mlb—ršg +; + +1027  + mrb—ršg +; + +1028  + mwidth +; + +1029  + masûÁ +; + +1030  + mdesûÁ +; + +1031  + m©Œibu‹s +; + +1032 } + tXCh¬SŒuù +; + +1039 +Atom + + mÇme +; + +1040  + mÿrd32 +; + +1041 } + tXFÚtPrÝ +; + +1044 +XExtD©a + * + mext_d©a +; + +1045 +FÚt + + mfid +; + +1046  + mdœeùiÚ +; + +1047  + mmš_ch¬_Ü_by‹2 +; + +1048  + mmax_ch¬_Ü_by‹2 +; + +1049  + mmš_by‹1 +; + +1050  + mmax_by‹1 +; + +1051 +BoÞ + + m®l_ch¬s_exi¡ +; + +1052  + mdeçuÉ_ch¬ +; + +1053  + mn_´Ý”t›s +; + +1054 +XFÚtPrÝ + * + m´Ý”t›s +; + +1055 +XCh¬SŒuù + + mmš_bounds +; + +1056 +XCh¬SŒuù + + mmax_bounds +; + +1057 +XCh¬SŒuù + * + m³r_ch¬ +; + +1058  + masûÁ +; + +1059  + mdesûÁ +; + +1060 } + tXFÚtSŒuù +; + +1066 * + mch¬s +; + +1067  + mnch¬s +; + +1068  + md– +; + +1069 +FÚt + + mfÚt +; + +1070 } + tXTextI‹m +; + +1073  + mby‹1 +; + +1074  + mby‹2 +; + +1075 } + tXCh¬2b +; + +1078 +XCh¬2b + * + mch¬s +; + +1079  + mnch¬s +; + +1080  + md– +; + +1081 +FÚt + + mfÚt +; + +1082 } + tXTextI‹m16 +; + +1085 uniÚ { +Di¥Ïy + * + mdi¥Ïy +; + +1086 +GC + + mgc +; + +1087 +Visu® + * + mvisu® +; + +1088 +Sü“n + * + msü“n +; + +1089 +Sü“nFÜm© + * + mpixm­_fÜm© +; + +1090 +XFÚtSŒuù + * + mfÚt +; } + tXED©aObjeù +; + +1093 +XReùªgË + + mmax_šk_ex‹Á +; + +1094 +XReùªgË + + mmax_logiÿl_ex‹Á +; + +1095 } + tXFÚtS‘Ex‹Ás +; + +1101  +_XOM + * + tXOM +; + +1102  +_XOC + * + tXOC +, * + tXFÚtS‘ +; + +1105 * + mch¬s +; + +1106  + mnch¬s +; + +1107  + md– +; + +1108 +XFÚtS‘ + + mfÚt_£t +; + +1109 } + tXmbTextI‹m +; + +1112 +wch¬_t + * + mch¬s +; + +1113  + mnch¬s +; + +1114  + md– +; + +1115 +XFÚtS‘ + + mfÚt_£t +; + +1116 } + tXwcTextI‹m +; + +1118  + #XNRequœedCh¬S‘ + "»quœedCh¬S‘" + + ) + +1119  + #XNQu”yOr›Á©iÚ + "qu”yOr›Á©iÚ" + + ) + +1120  + #XNBa£FÚtName + "ba£FÚtName" + + ) + +1121  + #XNOMAutom©ic + "omAutom©ic" + + ) + +1122  + #XNMissšgCh¬S‘ + "missšgCh¬S‘" + + ) + +1123  + #XNDeçuÉSŒšg + "deçuÉSŒšg" + + ) + +1124  + #XNOr›Á©iÚ + "Ü›Á©iÚ" + + ) + +1125  + #XNDœeùiÚ®D•’d’tD¿wšg + "dœeùiÚ®D•’d’tD¿wšg" + + ) + +1126  + #XNCÚ‹xtu®D¿wšg + "cÚ‹xtu®D¿wšg" + + ) + +1127  + #XNFÚtInfo + "fÚtInfo" + + ) + +1130  + mch¬£t_couÁ +; + +1131 ** + mch¬£t_li¡ +; + +1132 } + tXOMCh¬S‘Li¡ +; + +1135 + mXOMOr›Á©iÚ_LTR_TTB +, + +1136 + mXOMOr›Á©iÚ_RTL_TTB +, + +1137 + mXOMOr›Á©iÚ_TTB_LTR +, + +1138 + mXOMOr›Á©iÚ_TTB_RTL +, + +1139 + mXOMOr›Á©iÚ_CÚ‹xt + + +1140 } + tXOr›Á©iÚ +; + +1143  + mnum_Ü›Á©iÚ +; + +1144 +XOr›Á©iÚ + * + mÜ›Á©iÚ +; + +1145 } + tXOMOr›Á©iÚ +; + +1148  + mnum_fÚt +; + +1149 +XFÚtSŒuù + ** + mfÚt_¡ruù_li¡ +; + +1150 ** + mfÚt_Çme_li¡ +; + +1151 } + tXOMFÚtInfo +; + +1153  +_XIM + * + tXIM +; + +1154  +_XIC + * + tXIC +; + +1156 (* + tXIMProc +)( + +1157 + tXIM +, + +1158 + tXPoš‹r +, + +1159 + tXPoš‹r + + +1162  + $BoÞ + (* + tXICProc +)( + +1163 + tXIC +, + +1164 + tXPoš‹r +, + +1165 + tXPoš‹r + + +1168 (* + tXIDProc +)( + +1169 + tDi¥Ïy +*, + +1170 + tXPoš‹r +, + +1171 + tXPoš‹r + + +1174  + tXIMStyË +; + +1177  +couÁ_¡yËs +; + +1178 +XIMStyË + * +suµÜ‹d_¡yËs +; + +1179 } + tXIMStyËs +; + +1181  + #XIMP»ed™A»a + 0x0001L + + ) + +1182  + #XIMP»ed™C®lbacks + 0x0002L + + ) + +1183  + #XIMP»ed™Pos™iÚ + 0x0004L + + ) + +1184  + #XIMP»ed™NÙhšg + 0x0008L + + ) + +1185  + #XIMP»ed™NÚe + 0x0010L + + ) + +1186  + #XIMStusA»a + 0x0100L + + ) + +1187  + #XIMStusC®lbacks + 0x0200L + + ) + +1188  + #XIMStusNÙhšg + 0x0400L + + ) + +1189  + #XIMStusNÚe + 0x0800L + + ) + +1191  + #XNVaNe¡edLi¡ + "XNVaNe¡edLi¡" + + ) + +1192  + #XNQu”yIÅutStyË + "qu”yIÅutStyË" + + ) + +1193  + #XNCl›ÁWšdow + "þ›ÁWšdow" + + ) + +1194  + #XNIÅutStyË + "šputStyË" + + ) + +1195  + #XNFocusWšdow + "focusWšdow" + + ) + +1196  + #XNResourûName + "»sourûName" + + ) + +1197  + #XNResourûCÏss + "»sourûCÏss" + + ) + +1198  + #XNGeom‘ryC®lback + "geom‘ryC®lback" + + ) + +1199  + #XNDe¡royC®lback + "de¡royC®lback" + + ) + +1200  + #XNFž‹rEv’ts + "fž‹rEv’ts" + + ) + +1201  + #XNP»ed™S¹C®lback + "´“d™S¹C®lback" + + ) + +1202  + #XNP»ed™DÚeC®lback + "´“d™DÚeC®lback" + + ) + +1203  + #XNP»ed™D¿wC®lback + "´“d™D¿wC®lback" + + ) + +1204  + #XNP»ed™C¬‘C®lback + "´“d™C¬‘C®lback" + + ) + +1205  + #XNP»ed™S‹NÙifyC®lback + "´“d™S‹NÙifyC®lback" + + ) + +1206  + #XNP»ed™A‰ribu‹s + "´“d™A‰ribu‹s" + + ) + +1207  + #XNStusS¹C®lback + "¡©usS¹C®lback" + + ) + +1208  + #XNStusDÚeC®lback + "¡©usDÚeC®lback" + + ) + +1209  + #XNStusD¿wC®lback + "¡©usD¿wC®lback" + + ) + +1210  + #XNStusA‰ribu‹s + "¡©usA‰ribu‹s" + + ) + +1211  + #XNA»a + "¬—" + + ) + +1212  + #XNA»aN“ded + "¬—N“ded" + + ) + +1213  + #XNSpÙLoÿtiÚ + "¥ÙLoÿtiÚ" + + ) + +1214  + #XNCÞÜm­ + "cÞÜM­" + + ) + +1215  + #XNStdCÞÜm­ + "¡dCÞÜM­" + + ) + +1216  + #XNFÜeground + "fÜeground" + + ) + +1217  + #XNBackground + "background" + + ) + +1218  + #XNBackgroundPixm­ + "backgroundPixm­" + + ) + +1219  + #XNFÚtS‘ + "fÚtS‘" + + ) + +1220  + #XNLšeS·û + "lšeS·û" + + ) + +1221  + #XNCursÜ + "cursÜ" + + ) + +1223  + #XNQu”yIMV®uesLi¡ + "qu”yIMV®uesLi¡" + + ) + +1224  + #XNQu”yICV®uesLi¡ + "qu”yICV®uesLi¡" + + ) + +1225  + #XNVisibËPos™iÚ + "visibËPos™iÚ" + + ) + +1226  + #XNR6P»ed™C®lback + "r6P»ed™C®lback" + + ) + +1227  + #XNSŒšgCÚv”siÚC®lback + "¡ršgCÚv”siÚC®lback" + + ) + +1228  + #XNSŒšgCÚv”siÚ + "¡ršgCÚv”siÚ" + + ) + +1229  + #XNRe£tS‹ + "»£tS‹" + + ) + +1230  + #XNHÙKey + "hÙKey" + + ) + +1231  + #XNHÙKeyS‹ + "hÙKeyS‹" + + ) + +1232  + #XNP»ed™S‹ + "´“d™S‹" + + ) + +1233  + #XNS•¬©ÜofNe¡edLi¡ + "£·¿tÜofNe¡edLi¡" + + ) + +1235  + #XBufãrOv”æow + -1 + + ) + +1236  + #XLookupNÚe + 1 + + ) + +1237  + #XLookupCh¬s + 2 + + ) + +1238  + #XLookupKeySym + 3 + + ) + +1239  + #XLookupBÙh + 4 + + ) + +1241 * + tXVaNe¡edLi¡ +; + +1244 +XPoš‹r + +þ›Á_d©a +; + +1245 +XIMProc + +ÿÎback +; + +1246 } + tXIMC®lback +; + +1249 +XPoš‹r + +þ›Á_d©a +; + +1250 +XICProc + +ÿÎback +; + +1251 } + tXICC®lback +; + +1253  + tXIMF“dback +; + +1255  + #XIMRev”£ + 1L + + ) + +1256  + #XIMUnd”lše + (1L<<1) + + ) + +1257  + #XIMHighlight + (1L<<2) + + ) + +1258  + #XIMPrim¬y + (1L<<5) + + ) + +1259  + #XIMSecÚd¬y + (1L<<6) + + ) + +1260  + #XIMT”tŸry + (1L<<7) + + ) + +1261  + #XIMVisibËToFÜw¬d + (1L<<8) + + ) + +1262  + #XIMVisibËToBackwÜd + (1L<<9) + + ) + +1263  + #XIMVisibËToC’‹r + (1L<<10) + + ) + +1265  + s_XIMText + { + +1266  +Ëngth +; + +1267 +XIMF“dback + * +ãedback +; + +1268 +BoÞ + +’codšg_is_wch¬ +; + +1270 * +muÉi_by‹ +; + +1271 +wch¬_t + * +wide_ch¬ +; + +1272 } +¡ršg +; + +1273 } + tXIMText +; + +1275  + tXIMP»ed™S‹ +; + +1277  + #XIMP»ed™UnKnown + 0L + + ) + +1278  + #XIMP»ed™EÇbË + 1L + + ) + +1279  + #XIMP»ed™Di§bË + (1L<<1) + + ) + +1281  + s_XIMP»ed™S‹NÙifyC®lbackSŒuù + { + +1282 +XIMP»ed™S‹ + +¡©e +; + +1283 } + tXIMP»ed™S‹NÙifyC®lbackSŒuù +; + +1285  + tXIMRe£tS‹ +; + +1287  + #XIMIn™ŸlS‹ + 1L + + ) + +1288  + #XIMP»£rveS‹ + (1L<<1) + + ) + +1290  + tXIMSŒšgCÚv”siÚF“dback +; + +1292  + #XIMSŒšgCÚv”siÚLeáEdge + (0x00000001) + + ) + +1293  + #XIMSŒšgCÚv”siÚRightEdge + (0x00000002) + + ) + +1294  + #XIMSŒšgCÚv”siÚTÝEdge + (0x00000004) + + ) + +1295  + #XIMSŒšgCÚv”siÚBÙtomEdge + (0x00000008) + + ) + +1296  + #XIMSŒšgCÚv”siÚCÚû®ed + (0x00000010) + + ) + +1297  + #XIMSŒšgCÚv”siÚW¿µed + (0x00000020) + + ) + +1299  + s_XIMSŒšgCÚv”siÚText + { + +1300  +Ëngth +; + +1301 +XIMSŒšgCÚv”siÚF“dback + * +ãedback +; + +1302 +BoÞ + +’codšg_is_wch¬ +; + +1304 * +mbs +; + +1305 +wch¬_t + * +wcs +; + +1306 } +¡ršg +; + +1307 } + tXIMSŒšgCÚv”siÚText +; + +1309  + tXIMSŒšgCÚv”siÚPos™iÚ +; + +1311  + tXIMSŒšgCÚv”siÚTy³ +; + +1313  + #XIMSŒšgCÚv”siÚBufãr + (0x0001) + + ) + +1314  + #XIMSŒšgCÚv”siÚLše + (0x0002) + + ) + +1315  + #XIMSŒšgCÚv”siÚWÜd + (0x0003) + + ) + +1316  + #XIMSŒšgCÚv”siÚCh¬ + (0x0004) + + ) + +1318  + tXIMSŒšgCÚv”siÚO³¿tiÚ +; + +1320  + #XIMSŒšgCÚv”siÚSub¡™utiÚ + (0x0001) + + ) + +1321  + #XIMSŒšgCÚv”siÚR‘r›v® + (0x0002) + + ) + +1324 +XIMFÜw¬dCh¬ +, +XIMBackw¬dCh¬ +, + +1325 +XIMFÜw¬dWÜd +, +XIMBackw¬dWÜd +, + +1326 +XIMC¬‘Up +, +XIMC¬‘Down +, + +1327 +XIMNextLše +, +XIMP»viousLše +, + +1328 +XIMLšeS¹ +, +XIMLšeEnd +, + +1329 +XIMAbsÞu‹Pos™iÚ +, + +1330 +XIMDÚtChªge + + +1331 } + tXIMC¬‘DœeùiÚ +; + +1333  + s_XIMSŒšgCÚv”siÚC®lbackSŒuù + { + +1334 +XIMSŒšgCÚv”siÚPos™iÚ + +pos™iÚ +; + +1335 +XIMC¬‘DœeùiÚ + +dœeùiÚ +; + +1336 +XIMSŒšgCÚv”siÚO³¿tiÚ + +Ý”©iÚ +; + +1337  +çùÜ +; + +1338 +XIMSŒšgCÚv”siÚText + * +‹xt +; + +1339 } + tXIMSŒšgCÚv”siÚC®lbackSŒuù +; + +1341  + s_XIMP»ed™D¿wC®lbackSŒuù + { + +1342  +ÿ»t +; + +1343  +chg_fœ¡ +; + +1344  +chg_Ëngth +; + +1345 +XIMText + * +‹xt +; + +1346 } + tXIMP»ed™D¿wC®lbackSŒuù +; + +1349 +XIMIsInvisibË +, + +1350 +XIMIsPrim¬y +, + +1351 +XIMIsSecÚd¬y + + +1352 } + tXIMC¬‘StyË +; + +1354  + s_XIMP»ed™C¬‘C®lbackSŒuù + { + +1355  +pos™iÚ +; + +1356 +XIMC¬‘DœeùiÚ + +dœeùiÚ +; + +1357 +XIMC¬‘StyË + +¡yË +; + +1358 } + tXIMP»ed™C¬‘C®lbackSŒuù +; + +1361 +XIMTextTy³ +, + +1362 +XIMB™m­Ty³ + + +1363 } + tXIMStusD©aTy³ +; + +1365  + s_XIMStusD¿wC®lbackSŒuù + { + +1366 +XIMStusD©aTy³ + +ty³ +; + +1368 +XIMText + * +‹xt +; + +1369 +Pixm­ + +b™m­ +; + +1370 } +d©a +; + +1371 } + tXIMStusD¿wC®lbackSŒuù +; + +1373  + s_XIMHÙKeyTrigg” + { + +1374 +KeySym + +keysym +; + +1375  +modif›r +; + +1376  +modif›r_mask +; + +1377 } + tXIMHÙKeyTrigg” +; + +1379  + s_XIMHÙKeyTrigg”s + { + +1380  +num_hÙ_key +; + +1381 +XIMHÙKeyTrigg” + * +key +; + +1382 } + tXIMHÙKeyTrigg”s +; + +1384  + tXIMHÙKeyS‹ +; + +1386  + #XIMHÙKeyS‹ON + (0x0001L) + + ) + +1387  + #XIMHÙKeyS‹OFF + (0x0002L) + + ) + +1390  +couÁ_v®ues +; + +1391 ** +suµÜ‹d_v®ues +; + +1392 } + tXIMV®uesLi¡ +; + +1394 +_XFUNCPROTOBEGIN + + +1396 #ià + `defšed +( +WIN32 +è&& !defšed( +_XLIBINT_ +) + +1397  + #_Xdebug + (* +_Xdebug_p +) + + ) + +1400  +_Xdebug +; + +1402 +XFÚtSŒuù + * + `XLßdQu”yFÚt +( + +1403 +Di¥Ïy +* , + +1404 +_XcÚ¡ + * + +1407 +XFÚtSŒuù + * + `XQu”yFÚt +( + +1408 +Di¥Ïy +* , + +1409 +XID + + +1413 +XTimeCoÜd + * + `XG‘MÙiÚEv’ts +( + +1414 +Di¥Ïy +* , + +1415 +Wšdow + , + +1416 +Time + , + +1417 +Time + , + +1421 +XModif›rKeym­ + * + `XD–‘eModif›rm­EÁry +( + +1422 +XModif›rKeym­ +* , + +1423 #ià +N“dWidePrÙÙy³s + + +1426 +KeyCode + , + +1431 +XModif›rKeym­ + * + `XG‘Modif›rM­pšg +( + +1432 +Di¥Ïy +* + +1435 +XModif›rKeym­ + * + `XIn£¹Modif›rm­EÁry +( + +1436 +XModif›rKeym­ +* , + +1437 #ià +N“dWidePrÙÙy³s + + +1440 +KeyCode + , + +1445 +XModif›rKeym­ + * + `XNewModif›rm­ +( + +1449 +XImage + * + `XC»©eImage +( + +1450 +Di¥Ïy +* , + +1451 +Visu® +* , + +1461 +Stus + + `XIn™Image +( + +1462 +XImage +* + +1464 +XImage + * + `XG‘Image +( + +1465 +Di¥Ïy +* , + +1466 +D¿wabË + , + +1474 +XImage + * + `XG‘SubImage +( + +1475 +Di¥Ïy +* , + +1476 +D¿wabË + , + +1483 +XImage +* , + +1491 +Di¥Ïy + * + `XO³nDi¥Ïy +( + +1492 +_XcÚ¡ + * + +1495  + `XrmIn™Ÿlize +( + +1499 * + `XF‘chBy‹s +( + +1500 +Di¥Ïy +* , + +1503 * + `XF‘chBufãr +( + +1504 +Di¥Ïy +* , + +1508 * + `XG‘AtomName +( + +1509 +Di¥Ïy +* , + +1510 +Atom + + +1512 +Stus + + `XG‘AtomNames +( + +1513 +Di¥Ïy +* , + +1514 +Atom +* , + +1518 * + `XG‘DeçuÉ +( + +1519 +Di¥Ïy +* , + +1520 +_XcÚ¡ + * , + +1521 +_XcÚ¡ + * + +1523 * + `XDi¥ÏyName +( + +1524 +_XcÚ¡ + * + +1526 * + `XKeysymToSŒšg +( + +1527 +KeySym + + +1530 (* + $XSynchrÚize +( + +1531 +Di¥Ïy +* , + +1532 +BoÞ + + +1534 +Di¥Ïy +* + +1536 (* + `XS‘Aá”FunùiÚ +( + +1537 +Di¥Ïy +* , + +1539 +Di¥Ïy +* + +1542 +Di¥Ïy +* + +1544 +Atom + + `XIÁ”nAtom +( + +1545 +Di¥Ïy +* , + +1546 +_XcÚ¡ + * , + +1547 +BoÞ + + +1549 +Stus + + `XIÁ”nAtoms +( + +1550 +Di¥Ïy +* , + +1553 +BoÞ + , + +1554 +Atom +* + +1556 +CÞÜm­ + + `XCÝyCÞÜm­AndF»e +( + +1557 +Di¥Ïy +* , + +1558 +CÞÜm­ + + +1560 +CÞÜm­ + + `XC»©eCÞÜm­ +( + +1561 +Di¥Ïy +* , + +1562 +Wšdow + , + +1563 +Visu® +* , + +1566 +CursÜ + + `XC»©ePixm­CursÜ +( + +1567 +Di¥Ïy +* , + +1568 +Pixm­ + , + +1569 +Pixm­ + , + +1570 +XCÞÜ +* , + +1571 +XCÞÜ +* , + +1575 +CursÜ + + `XC»©eGlyphCursÜ +( + +1576 +Di¥Ïy +* , + +1577 +FÚt + , + +1578 +FÚt + , + +1581 +XCÞÜ + +_XcÚ¡ + * , + +1582 +XCÞÜ + +_XcÚ¡ + * + +1584 +CursÜ + + `XC»©eFÚtCursÜ +( + +1585 +Di¥Ïy +* , + +1588 +FÚt + + `XLßdFÚt +( + +1589 +Di¥Ïy +* , + +1590 +_XcÚ¡ + * + +1592 +GC + + `XC»©eGC +( + +1593 +Di¥Ïy +* , + +1594 +D¿wabË + , + +1596 +XGCV®ues +* + +1598 +GCÚ‹xt + + `XGCÚ‹xtFromGC +( + +1599 +GC + + +1601  + `XFlushGC +( + +1602 +Di¥Ïy +* , + +1603 +GC + + +1605 +Pixm­ + + `XC»©ePixm­ +( + +1606 +Di¥Ïy +* , + +1607 +D¿wabË + , + +1612 +Pixm­ + + `XC»©eB™m­FromD©a +( + +1613 +Di¥Ïy +* , + +1614 +D¿wabË + , + +1615 +_XcÚ¡ + * , + +1619 +Pixm­ + + `XC»©ePixm­FromB™m­D©a +( + +1620 +Di¥Ïy +* , + +1621 +D¿wabË + , + +1629 +Wšdow + + `XC»©eSim¶eWšdow +( + +1630 +Di¥Ïy +* , + +1631 +Wšdow + , + +1640 +Wšdow + + `XG‘S–eùiÚOwÃr +( + +1641 +Di¥Ïy +* , + +1642 +Atom + + +1644 +Wšdow + + `XC»©eWšdow +( + +1645 +Di¥Ïy +* , + +1646 +Wšdow + , + +1654 +Visu® +* , + +1656 +XS‘WšdowA‰ribu‹s +* + +1658 +CÞÜm­ + * + `XLi¡In¡®ËdCÞÜm­s +( + +1659 +Di¥Ïy +* , + +1660 +Wšdow + , + +1663 ** + `XLi¡FÚts +( + +1664 +Di¥Ïy +* , + +1665 +_XcÚ¡ + * , + +1669 ** + `XLi¡FÚtsW™hInfo +( + +1670 +Di¥Ïy +* , + +1671 +_XcÚ¡ + * , + +1674 +XFÚtSŒuù +** + +1676 ** + `XG‘FÚtP©h +( + +1677 +Di¥Ïy +* , + +1680 ** + `XLi¡Ex‹nsiÚs +( + +1681 +Di¥Ïy +* , + +1684 +Atom + * + `XLi¡PrÝ”t›s +( + +1685 +Di¥Ïy +* , + +1686 +Wšdow + , + +1689 +XHo¡Add»ss + * + `XLi¡Ho¡s +( + +1690 +Di¥Ïy +* , + +1692 +BoÞ +* + +1694 +KeySym + + `XKeycodeToKeysym +( + +1695 +Di¥Ïy +* , + +1696 #ià +N“dWidePrÙÙy³s + + +1699 +KeyCode + , + +1703 +KeySym + + `XLookupKeysym +( + +1704 +XKeyEv’t +* , + +1707 +KeySym + * + `XG‘KeybßrdM­pšg +( + +1708 +Di¥Ïy +* , + +1709 #ià +N“dWidePrÙÙy³s + + +1712 +KeyCode + , + +1717 +KeySym + + `XSŒšgToKeysym +( + +1718 +_XcÚ¡ + * + +1720  + `XMaxReque¡Size +( + +1721 +Di¥Ïy +* + +1723  + `XEx‹ndedMaxReque¡Size +( + +1724 +Di¥Ïy +* + +1726 * + `XResourûMªag”SŒšg +( + +1727 +Di¥Ïy +* + +1729 * + `XSü“nResourûSŒšg +( + +1730 +Sü“n +* + +1732  + `XDi¥ÏyMÙiÚBufãrSize +( + +1733 +Di¥Ïy +* + +1735 +Visu®ID + + `XVisu®IDFromVisu® +( + +1736 +Visu® +* + +1741 +Stus + + `XIn™Th»ads +( + +1745  + `XLockDi¥Ïy +( + +1746 +Di¥Ïy +* + +1749  + `XUÆockDi¥Ïy +( + +1750 +Di¥Ïy +* + +1755 +XExtCodes + * + `XIn™Ex‹nsiÚ +( + +1756 +Di¥Ïy +* , + +1757 +_XcÚ¡ + * + +1760 +XExtCodes + * + `XAddEx‹nsiÚ +( + +1761 +Di¥Ïy +* + +1763 +XExtD©a + * + `XFšdOnEx‹nsiÚLi¡ +( + +1764 +XExtD©a +** , + +1767 +XExtD©a + ** + `XEH—dOfEx‹nsiÚLi¡ +( + +1768 +XED©aObjeù + + +1772 +Wšdow + + `XRoÙWšdow +( + +1773 +Di¥Ïy +* , + +1776 +Wšdow + + `XDeçuÉRoÙWšdow +( + +1777 +Di¥Ïy +* + +1779 +Wšdow + + `XRoÙWšdowOfSü“n +( + +1780 +Sü“n +* + +1782 +Visu® + * + `XDeçuÉVisu® +( + +1783 +Di¥Ïy +* , + +1786 +Visu® + * + `XDeçuÉVisu®OfSü“n +( + +1787 +Sü“n +* + +1789 +GC + + `XDeçuÉGC +( + +1790 +Di¥Ïy +* , + +1793 +GC + + `XDeçuÉGCOfSü“n +( + +1794 +Sü“n +* + +1796  + `XBÏckPix– +( + +1797 +Di¥Ïy +* , + +1800  + `XWh™ePix– +( + +1801 +Di¥Ïy +* , + +1804  + `XAÎPÏÃs +( + +1807  + `XBÏckPix–OfSü“n +( + +1808 +Sü“n +* + +1810  + `XWh™ePix–OfSü“n +( + +1811 +Sü“n +* + +1813  + `XNextReque¡ +( + +1814 +Di¥Ïy +* + +1816  + `XLa¡KnownReque¡Proûs£d +( + +1817 +Di¥Ïy +* + +1819 * + `XS”v”V’dÜ +( + +1820 +Di¥Ïy +* + +1822 * + `XDi¥ÏySŒšg +( + +1823 +Di¥Ïy +* + +1825 +CÞÜm­ + + `XDeçuÉCÞÜm­ +( + +1826 +Di¥Ïy +* , + +1829 +CÞÜm­ + + `XDeçuÉCÞÜm­OfSü“n +( + +1830 +Sü“n +* + +1832 +Di¥Ïy + * + `XDi¥ÏyOfSü“n +( + +1833 +Sü“n +* + +1835 +Sü“n + * + `XSü“nOfDi¥Ïy +( + +1836 +Di¥Ïy +* , + +1839 +Sü“n + * + `XDeçuÉSü“nOfDi¥Ïy +( + +1840 +Di¥Ïy +* + +1842  + `XEv’tMaskOfSü“n +( + +1843 +Sü“n +* + +1846  + `XSü“nNumb”OfSü“n +( + +1847 +Sü“n +* + +1850 (* + tXE¼ÜHªdËr +) ( + +1851 + tDi¥Ïy +* , + +1852 + tXE¼ÜEv’t +* + +1855 +XE¼ÜHªdËr + + `XS‘E¼ÜHªdËr + ( + +1856 +XE¼ÜHªdËr + + +1860 (* + tXIOE¼ÜHªdËr +) ( + +1861 + tDi¥Ïy +* + +1864 +XIOE¼ÜHªdËr + + `XS‘IOE¼ÜHªdËr + ( + +1865 +XIOE¼ÜHªdËr + + +1869 +XPixm­FÜm©V®ues + * + `XLi¡Pixm­FÜm©s +( + +1870 +Di¥Ïy +* , + +1873 * + `XLi¡D•ths +( + +1874 +Di¥Ïy +* , + +1881 +Stus + + `XRecÚfigu»WMWšdow +( + +1882 +Di¥Ïy +* , + +1883 +Wšdow + , + +1886 +XWšdowChªges +* + +1889 +Stus + + `XG‘WMPrÙocÞs +( + +1890 +Di¥Ïy +* , + +1891 +Wšdow + , + +1892 +Atom +** , + +1895 +Stus + + `XS‘WMPrÙocÞs +( + +1896 +Di¥Ïy +* , + +1897 +Wšdow + , + +1898 +Atom +* , + +1901 +Stus + + `XIcÚifyWšdow +( + +1902 +Di¥Ïy +* , + +1903 +Wšdow + , + +1906 +Stus + + `XW™hd¿wWšdow +( + +1907 +Di¥Ïy +* , + +1908 +Wšdow + , + +1911 +Stus + + `XG‘Commªd +( + +1912 +Di¥Ïy +* , + +1913 +Wšdow + , + +1917 +Stus + + `XG‘WMCÞÜm­Wšdows +( + +1918 +Di¥Ïy +* , + +1919 +Wšdow + , + +1920 +Wšdow +** , + +1923 +Stus + + `XS‘WMCÞÜm­Wšdows +( + +1924 +Di¥Ïy +* , + +1925 +Wšdow + , + +1926 +Wšdow +* , + +1929  + `XF»eSŒšgLi¡ +( + +1932  + `XS‘T¿ns›ÁFÜHšt +( + +1933 +Di¥Ïy +* , + +1934 +Wšdow + , + +1935 +Wšdow + + +1940  + `XAùiv©eSü“nSav” +( + +1941 +Di¥Ïy +* + +1944  + `XAddHo¡ +( + +1945 +Di¥Ïy +* , + +1946 +XHo¡Add»ss +* + +1949  + `XAddHo¡s +( + +1950 +Di¥Ïy +* , + +1951 +XHo¡Add»ss +* , + +1955  + `XAddToEx‹nsiÚLi¡ +( + +1956  +_XExtD©a +** , + +1957 +XExtD©a +* + +1960  + `XAddToSaveS‘ +( + +1961 +Di¥Ïy +* , + +1962 +Wšdow + + +1965 +Stus + + `XAÎocCÞÜ +( + +1966 +Di¥Ïy +* , + +1967 +CÞÜm­ + , + +1968 +XCÞÜ +* + +1971 +Stus + + `XAÎocCÞÜC–ls +( + +1972 +Di¥Ïy +* , + +1973 +CÞÜm­ + , + +1974 +BoÞ + , + +1981 +Stus + + `XAÎocCÞÜPÏÃs +( + +1982 +Di¥Ïy +* , + +1983 +CÞÜm­ + , + +1984 +BoÞ + , + +1995 +Stus + + `XAÎocNamedCÞÜ +( + +1996 +Di¥Ïy +* , + +1997 +CÞÜm­ + , + +1998 +_XcÚ¡ + * , + +1999 +XCÞÜ +* , + +2000 +XCÞÜ +* + +2003  + `XAÎowEv’ts +( + +2004 +Di¥Ïy +* , + +2006 +Time + + +2009  + `XAutoR•—tOff +( + +2010 +Di¥Ïy +* + +2013  + `XAutoR•—tOn +( + +2014 +Di¥Ïy +* + +2017  + `XB–l +( + +2018 +Di¥Ïy +* , + +2022  + `XB™m­B™Ord” +( + +2023 +Di¥Ïy +* + +2026  + `XB™m­Pad +( + +2027 +Di¥Ïy +* + +2030  + `XB™m­Un™ +( + +2031 +Di¥Ïy +* + +2034  + `XC–lsOfSü“n +( + +2035 +Sü“n +* + +2038  + `XChªgeAùivePoš‹rG¿b +( + +2039 +Di¥Ïy +* , + +2041 +CursÜ + , + +2042 +Time + + +2045  + `XChªgeGC +( + +2046 +Di¥Ïy +* , + +2047 +GC + , + +2049 +XGCV®ues +* + +2052  + `XChªgeKeybßrdCÚŒÞ +( + +2053 +Di¥Ïy +* , + +2055 +XKeybßrdCÚŒÞ +* + +2058  + `XChªgeKeybßrdM­pšg +( + +2059 +Di¥Ïy +* , + +2062 +KeySym +* , + +2066  + `XChªgePoš‹rCÚŒÞ +( + +2067 +Di¥Ïy +* , + +2068 +BoÞ + , + +2069 +BoÞ + , + +2075  + `XChªgePrÝ”ty +( + +2076 +Di¥Ïy +* , + +2077 +Wšdow + , + +2078 +Atom + , + +2079 +Atom + , + +2082 +_XcÚ¡ + * , + +2086  + `XChªgeSaveS‘ +( + +2087 +Di¥Ïy +* , + +2088 +Wšdow + , + +2092  + `XChªgeWšdowA‰ribu‹s +( + +2093 +Di¥Ïy +* , + +2094 +Wšdow + , + +2096 +XS‘WšdowA‰ribu‹s +* + +2099 +BoÞ + + `XCheckIfEv’t +( + +2100 +Di¥Ïy +* , + +2101 +XEv’t +* , + +2102 + $BoÞ + (*) ( + +2103 +Di¥Ïy +* , + +2104 +XEv’t +* , + +2105 +XPoš‹r + + +2107 +XPoš‹r + + +2110 +BoÞ + + `XCheckMaskEv’t +( + +2111 +Di¥Ïy +* , + +2113 +XEv’t +* + +2116 +BoÞ + + `XCheckTy³dEv’t +( + +2117 +Di¥Ïy +* , + +2119 +XEv’t +* + +2122 +BoÞ + + `XCheckTy³dWšdowEv’t +( + +2123 +Di¥Ïy +* , + +2124 +Wšdow + , + +2126 +XEv’t +* + +2129 +BoÞ + + `XCheckWšdowEv’t +( + +2130 +Di¥Ïy +* , + +2131 +Wšdow + , + +2133 +XEv’t +* + +2136  + `XCœcuÏ‹Subwšdows +( + +2137 +Di¥Ïy +* , + +2138 +Wšdow + , + +2142  + `XCœcuÏ‹SubwšdowsDown +( + +2143 +Di¥Ïy +* , + +2144 +Wšdow + + +2147  + `XCœcuÏ‹SubwšdowsUp +( + +2148 +Di¥Ïy +* , + +2149 +Wšdow + + +2152  + `XCˬA»a +( + +2153 +Di¥Ïy +* , + +2154 +Wšdow + , + +2159 +BoÞ + + +2162  + `XCˬWšdow +( + +2163 +Di¥Ïy +* , + +2164 +Wšdow + + +2167  + `XClo£Di¥Ïy +( + +2168 +Di¥Ïy +* + +2171  + `XCÚfigu»Wšdow +( + +2172 +Di¥Ïy +* , + +2173 +Wšdow + , + +2175 +XWšdowChªges +* + +2178  + `XCÚÃùiÚNumb” +( + +2179 +Di¥Ïy +* + +2182  + `XCÚv”tS–eùiÚ +( + +2183 +Di¥Ïy +* , + +2184 +Atom + , + +2185 +Atom + , + +2186 +Atom + , + +2187 +Wšdow + , + +2188 +Time + + +2191  + `XCÝyA»a +( + +2192 +Di¥Ïy +* , + +2193 +D¿wabË + , + +2194 +D¿wabË + , + +2195 +GC + , + +2204  + `XCÝyGC +( + +2205 +Di¥Ïy +* , + +2206 +GC + , + +2208 +GC + + +2211  + `XCÝyPÏà +( + +2212 +Di¥Ïy +* , + +2213 +D¿wabË + , + +2214 +D¿wabË + , + +2215 +GC + , + +2225  + `XDeçuÉD•th +( + +2226 +Di¥Ïy +* , + +2230  + `XDeçuÉD•thOfSü“n +( + +2231 +Sü“n +* + +2234  + `XDeçuÉSü“n +( + +2235 +Di¥Ïy +* + +2238  + `XDefšeCursÜ +( + +2239 +Di¥Ïy +* , + +2240 +Wšdow + , + +2241 +CursÜ + + +2244  + `XD–‘ePrÝ”ty +( + +2245 +Di¥Ïy +* , + +2246 +Wšdow + , + +2247 +Atom + + +2250  + `XDe¡royWšdow +( + +2251 +Di¥Ïy +* , + +2252 +Wšdow + + +2255  + `XDe¡roySubwšdows +( + +2256 +Di¥Ïy +* , + +2257 +Wšdow + + +2260  + `XDÛsBackšgStÜe +( + +2261 +Sü“n +* + +2264 +BoÞ + + `XDÛsSaveUnd”s +( + +2265 +Sü“n +* + +2268  + `XDi§bËAcûssCÚŒÞ +( + +2269 +Di¥Ïy +* + +2273  + `XDi¥ÏyC–ls +( + +2274 +Di¥Ïy +* , + +2278  + `XDi¥ÏyHeight +( + +2279 +Di¥Ïy +* , + +2283  + `XDi¥ÏyHeightMM +( + +2284 +Di¥Ïy +* , + +2288  + `XDi¥ÏyKeycodes +( + +2289 +Di¥Ïy +* , + +2294  + `XDi¥ÏyPÏÃs +( + +2295 +Di¥Ïy +* , + +2299  + `XDi¥ÏyWidth +( + +2300 +Di¥Ïy +* , + +2304  + `XDi¥ÏyWidthMM +( + +2305 +Di¥Ïy +* , + +2309  + `XD¿wArc +( + +2310 +Di¥Ïy +* , + +2311 +D¿wabË + , + +2312 +GC + , + +2321  + `XD¿wArcs +( + +2322 +Di¥Ïy +* , + +2323 +D¿wabË + , + +2324 +GC + , + +2325 +XArc +* , + +2329  + `XD¿wImageSŒšg +( + +2330 +Di¥Ïy +* , + +2331 +D¿wabË + , + +2332 +GC + , + +2335 +_XcÚ¡ + * , + +2339  + `XD¿wImageSŒšg16 +( + +2340 +Di¥Ïy +* , + +2341 +D¿wabË + , + +2342 +GC + , + +2345 +_XcÚ¡ + +XCh¬2b +* , + +2349  + `XD¿wLše +( + +2350 +Di¥Ïy +* , + +2351 +D¿wabË + , + +2352 +GC + , + +2359  + `XD¿wLšes +( + +2360 +Di¥Ïy +* , + +2361 +D¿wabË + , + +2362 +GC + , + +2363 +XPošt +* , + +2368  + `XD¿wPošt +( + +2369 +Di¥Ïy +* , + +2370 +D¿wabË + , + +2371 +GC + , + +2376  + `XD¿wPošts +( + +2377 +Di¥Ïy +* , + +2378 +D¿wabË + , + +2379 +GC + , + +2380 +XPošt +* , + +2385  + `XD¿wReùªgË +( + +2386 +Di¥Ïy +* , + +2387 +D¿wabË + , + +2388 +GC + , + +2395  + `XD¿wReùªgËs +( + +2396 +Di¥Ïy +* , + +2397 +D¿wabË + , + +2398 +GC + , + +2399 +XReùªgË +* , + +2403  + `XD¿wSegm’ts +( + +2404 +Di¥Ïy +* , + +2405 +D¿wabË + , + +2406 +GC + , + +2407 +XSegm’t +* , + +2411  + `XD¿wSŒšg +( + +2412 +Di¥Ïy +* , + +2413 +D¿wabË + , + +2414 +GC + , + +2417 +_XcÚ¡ + * , + +2421  + `XD¿wSŒšg16 +( + +2422 +Di¥Ïy +* , + +2423 +D¿wabË + , + +2424 +GC + , + +2427 +_XcÚ¡ + +XCh¬2b +* , + +2431  + `XD¿wText +( + +2432 +Di¥Ïy +* , + +2433 +D¿wabË + , + +2434 +GC + , + +2437 +XTextI‹m +* , + +2441  + `XD¿wText16 +( + +2442 +Di¥Ïy +* , + +2443 +D¿wabË + , + +2444 +GC + , + +2447 +XTextI‹m16 +* , + +2451  + `XEÇbËAcûssCÚŒÞ +( + +2452 +Di¥Ïy +* + +2455  + `XEv’tsQueued +( + +2456 +Di¥Ïy +* , + +2460 +Stus + + `XF‘chName +( + +2461 +Di¥Ïy +* , + +2462 +Wšdow + , + +2466  + `XFžlArc +( + +2467 +Di¥Ïy +* , + +2468 +D¿wabË + , + +2469 +GC + , + +2478  + `XFžlArcs +( + +2479 +Di¥Ïy +* , + +2480 +D¿wabË + , + +2481 +GC + , + +2482 +XArc +* , + +2486  + `XFžlPÞygÚ +( + +2487 +Di¥Ïy +* , + +2488 +D¿wabË + , + +2489 +GC + , + +2490 +XPošt +* , + +2496  + `XFžlReùªgË +( + +2497 +Di¥Ïy +* , + +2498 +D¿wabË + , + +2499 +GC + , + +2506  + `XFžlReùªgËs +( + +2507 +Di¥Ïy +* , + +2508 +D¿wabË + , + +2509 +GC + , + +2510 +XReùªgË +* , + +2514  + `XFlush +( + +2515 +Di¥Ïy +* + +2518  + `XFÜûSü“nSav” +( + +2519 +Di¥Ïy +* , + +2523  + `XF»e +( + +2527  + `XF»eCÞÜm­ +( + +2528 +Di¥Ïy +* , + +2529 +CÞÜm­ + + +2532  + `XF»eCÞÜs +( + +2533 +Di¥Ïy +* , + +2534 +CÞÜm­ + , + +2540  + `XF»eCursÜ +( + +2541 +Di¥Ïy +* , + +2542 +CursÜ + + +2545  + `XF»eEx‹nsiÚLi¡ +( + +2549  + `XF»eFÚt +( + +2550 +Di¥Ïy +* , + +2551 +XFÚtSŒuù +* + +2554  + `XF»eFÚtInfo +( + +2556 +XFÚtSŒuù +* , + +2560  + `XF»eFÚtNames +( + +2564  + `XF»eFÚtP©h +( + +2568  + `XF»eGC +( + +2569 +Di¥Ïy +* , + +2570 +GC + + +2573  + `XF»eModif›rm­ +( + +2574 +XModif›rKeym­ +* + +2577  + `XF»ePixm­ +( + +2578 +Di¥Ïy +* , + +2579 +Pixm­ + + +2582  + `XGeom‘ry +( + +2583 +Di¥Ïy +* , + +2585 +_XcÚ¡ + * , + +2586 +_XcÚ¡ + * , + +2598  + `XG‘E¼ÜD©aba£Text +( + +2599 +Di¥Ïy +* , + +2600 +_XcÚ¡ + * , + +2601 +_XcÚ¡ + * , + +2602 +_XcÚ¡ + * , + +2607  + `XG‘E¼ÜText +( + +2608 +Di¥Ïy +* , + +2614 +BoÞ + + `XG‘FÚtPrÝ”ty +( + +2615 +XFÚtSŒuù +* , + +2616 +Atom + , + +2620 +Stus + + `XG‘GCV®ues +( + +2621 +Di¥Ïy +* , + +2622 +GC + , + +2624 +XGCV®ues +* + +2627 +Stus + + `XG‘Geom‘ry +( + +2628 +Di¥Ïy +* , + +2629 +D¿wabË + , + +2630 +Wšdow +* , + +2639 +Stus + + `XG‘IcÚName +( + +2640 +Di¥Ïy +* , + +2641 +Wšdow + , + +2645  + `XG‘IÅutFocus +( + +2646 +Di¥Ïy +* , + +2647 +Wšdow +* , + +2651  + `XG‘KeybßrdCÚŒÞ +( + +2652 +Di¥Ïy +* , + +2653 +XKeybßrdS‹ +* + +2656  + `XG‘Poš‹rCÚŒÞ +( + +2657 +Di¥Ïy +* , + +2663  + `XG‘Poš‹rM­pšg +( + +2664 +Di¥Ïy +* , + +2669  + `XG‘Sü“nSav” +( + +2670 +Di¥Ïy +* , + +2677 +Stus + + `XG‘T¿ns›ÁFÜHšt +( + +2678 +Di¥Ïy +* , + +2679 +Wšdow + , + +2680 +Wšdow +* + +2683  + `XG‘WšdowPrÝ”ty +( + +2684 +Di¥Ïy +* , + +2685 +Wšdow + , + +2686 +Atom + , + +2689 +BoÞ + , + +2690 +Atom + , + +2691 +Atom +* , + +2698 +Stus + + `XG‘WšdowA‰ribu‹s +( + +2699 +Di¥Ïy +* , + +2700 +Wšdow + , + +2701 +XWšdowA‰ribu‹s +* + +2704  + `XG¿bBu‰Ú +( + +2705 +Di¥Ïy +* , + +2708 +Wšdow + , + +2709 +BoÞ + , + +2713 +Wšdow + , + +2714 +CursÜ + + +2717  + `XG¿bKey +( + +2718 +Di¥Ïy +* , + +2721 +Wšdow + , + +2722 +BoÞ + , + +2727  + `XG¿bKeybßrd +( + +2728 +Di¥Ïy +* , + +2729 +Wšdow + , + +2730 +BoÞ + , + +2733 +Time + + +2736  + `XG¿bPoš‹r +( + +2737 +Di¥Ïy +* , + +2738 +Wšdow + , + +2739 +BoÞ + , + +2743 +Wšdow + , + +2744 +CursÜ + , + +2745 +Time + + +2748  + `XG¿bS”v” +( + +2749 +Di¥Ïy +* + +2752  + `XHeightMMOfSü“n +( + +2753 +Sü“n +* + +2756  + `XHeightOfSü“n +( + +2757 +Sü“n +* + +2760  + `XIfEv’t +( + +2761 +Di¥Ïy +* , + +2762 +XEv’t +* , + +2763 + $BoÞ + (*) ( + +2764 +Di¥Ïy +* , + +2765 +XEv’t +* , + +2766 +XPoš‹r + + +2768 +XPoš‹r + + +2771  + `XImageBy‹Ord” +( + +2772 +Di¥Ïy +* + +2775  + `XIn¡®lCÞÜm­ +( + +2776 +Di¥Ïy +* , + +2777 +CÞÜm­ + + +2780 +KeyCode + + `XKeysymToKeycode +( + +2781 +Di¥Ïy +* , + +2782 +KeySym + + +2785  + `XKžlCl›Á +( + +2786 +Di¥Ïy +* , + +2787 +XID + + +2790 +Stus + + `XLookupCÞÜ +( + +2791 +Di¥Ïy +* , + +2792 +CÞÜm­ + , + +2793 +_XcÚ¡ + * , + +2794 +XCÞÜ +* , + +2795 +XCÞÜ +* + +2798  + `XLow”Wšdow +( + +2799 +Di¥Ïy +* , + +2800 +Wšdow + + +2803  + `XM­Rai£d +( + +2804 +Di¥Ïy +* , + +2805 +Wšdow + + +2808  + `XM­Subwšdows +( + +2809 +Di¥Ïy +* , + +2810 +Wšdow + + +2813  + `XM­Wšdow +( + +2814 +Di¥Ïy +* , + +2815 +Wšdow + + +2818  + `XMaskEv’t +( + +2819 +Di¥Ïy +* , + +2821 +XEv’t +* + +2824  + `XMaxCm­sOfSü“n +( + +2825 +Sü“n +* + +2828  + `XMšCm­sOfSü“n +( + +2829 +Sü“n +* + +2832  + `XMoveResizeWšdow +( + +2833 +Di¥Ïy +* , + +2834 +Wšdow + , + +2841  + `XMoveWšdow +( + +2842 +Di¥Ïy +* , + +2843 +Wšdow + , + +2848  + `XNextEv’t +( + +2849 +Di¥Ïy +* , + +2850 +XEv’t +* + +2853  + `XNoOp +( + +2854 +Di¥Ïy +* + +2857 +Stus + + `XP¬£CÞÜ +( + +2858 +Di¥Ïy +* , + +2859 +CÞÜm­ + , + +2860 +_XcÚ¡ + * , + +2861 +XCÞÜ +* + +2864  + `XP¬£Geom‘ry +( + +2865 +_XcÚ¡ + * , + +2872  + `XP“kEv’t +( + +2873 +Di¥Ïy +* , + +2874 +XEv’t +* + +2877  + `XP“kIfEv’t +( + +2878 +Di¥Ïy +* , + +2879 +XEv’t +* , + +2880 + $BoÞ + (*) ( + +2881 +Di¥Ïy +* , + +2882 +XEv’t +* , + +2883 +XPoš‹r + + +2885 +XPoš‹r + + +2888  + `XP’dšg +( + +2889 +Di¥Ïy +* + +2892  + `XPÏÃsOfSü“n +( + +2893 +Sü“n +* + +2896  + `XPrÙocÞRevisiÚ +( + +2897 +Di¥Ïy +* + +2900  + `XPrÙocÞV”siÚ +( + +2901 +Di¥Ïy +* + +2905  + `XPutBackEv’t +( + +2906 +Di¥Ïy +* , + +2907 +XEv’t +* + +2910  + `XPutImage +( + +2911 +Di¥Ïy +* , + +2912 +D¿wabË + , + +2913 +GC + , + +2914 +XImage +* , + +2923  + `XQL’gth +( + +2924 +Di¥Ïy +* + +2927 +Stus + + `XQu”yBe¡CursÜ +( + +2928 +Di¥Ïy +* , + +2929 +D¿wabË + , + +2936 +Stus + + `XQu”yBe¡Size +( + +2937 +Di¥Ïy +* , + +2939 +D¿wabË + , + +2946 +Stus + + `XQu”yBe¡St¶e +( + +2947 +Di¥Ïy +* , + +2948 +D¿wabË + , + +2955 +Stus + + `XQu”yBe¡Tže +( + +2956 +Di¥Ïy +* , + +2957 +D¿wabË + , + +2964  + `XQu”yCÞÜ +( + +2965 +Di¥Ïy +* , + +2966 +CÞÜm­ + , + +2967 +XCÞÜ +* + +2970  + `XQu”yCÞÜs +( + +2971 +Di¥Ïy +* , + +2972 +CÞÜm­ + , + +2973 +XCÞÜ +* , + +2977 +BoÞ + + `XQu”yEx‹nsiÚ +( + +2978 +Di¥Ïy +* , + +2979 +_XcÚ¡ + * , + +2985  + `XQu”yKeym­ +( + +2986 +Di¥Ïy +* , + +2990 +BoÞ + + `XQu”yPoš‹r +( + +2991 +Di¥Ïy +* , + +2992 +Wšdow + , + +2993 +Wšdow +* , + +2994 +Wšdow +* , + +3002  + `XQu”yTextEx‹Ás +( + +3003 +Di¥Ïy +* , + +3004 +XID + , + +3005 +_XcÚ¡ + * , + +3010 +XCh¬SŒuù +* + +3013  + `XQu”yTextEx‹Ás16 +( + +3014 +Di¥Ïy +* , + +3015 +XID + , + +3016 +_XcÚ¡ + +XCh¬2b +* , + +3021 +XCh¬SŒuù +* + +3024 +Stus + + `XQu”yT»e +( + +3025 +Di¥Ïy +* , + +3026 +Wšdow + , + +3027 +Wšdow +* , + +3028 +Wšdow +* , + +3029 +Wšdow +** , + +3033  + `XRai£Wšdow +( + +3034 +Di¥Ïy +* , + +3035 +Wšdow + + +3038  + `XR—dB™m­Fže +( + +3039 +Di¥Ïy +* , + +3040 +D¿wabË + , + +3041 +_XcÚ¡ + * , + +3044 +Pixm­ +* , + +3049  + `XR—dB™m­FžeD©a +( + +3050 +_XcÚ¡ + * , + +3058  + `XRebšdKeysym +( + +3059 +Di¥Ïy +* , + +3060 +KeySym + , + +3061 +KeySym +* , + +3063 +_XcÚ¡ + * , + +3067  + `XRecÞÜCursÜ +( + +3068 +Di¥Ïy +* , + +3069 +CursÜ + , + +3070 +XCÞÜ +* , + +3071 +XCÞÜ +* + +3074  + `XReäeshKeybßrdM­pšg +( + +3075 +XM­pšgEv’t +* + +3078  + `XRemoveFromSaveS‘ +( + +3079 +Di¥Ïy +* , + +3080 +Wšdow + + +3083  + `XRemoveHo¡ +( + +3084 +Di¥Ïy +* , + +3085 +XHo¡Add»ss +* + +3088  + `XRemoveHo¡s +( + +3089 +Di¥Ïy +* , + +3090 +XHo¡Add»ss +* , + +3094  + `XR•¬’tWšdow +( + +3095 +Di¥Ïy +* , + +3096 +Wšdow + , + +3097 +Wšdow + , + +3102  + `XRe£tSü“nSav” +( + +3103 +Di¥Ïy +* + +3106  + `XResizeWšdow +( + +3107 +Di¥Ïy +* , + +3108 +Wšdow + , + +3113  + `XRe¡ackWšdows +( + +3114 +Di¥Ïy +* , + +3115 +Wšdow +* , + +3119  + `XRÙ©eBufãrs +( + +3120 +Di¥Ïy +* , + +3124  + `XRÙ©eWšdowPrÝ”t›s +( + +3125 +Di¥Ïy +* , + +3126 +Wšdow + , + +3127 +Atom +* , + +3132  + `XSü“nCouÁ +( + +3133 +Di¥Ïy +* + +3136  + `XS–eùIÅut +( + +3137 +Di¥Ïy +* , + +3138 +Wšdow + , + +3142 +Stus + + `XS’dEv’t +( + +3143 +Di¥Ïy +* , + +3144 +Wšdow + , + +3145 +BoÞ + , + +3147 +XEv’t +* + +3150  + `XS‘AcûssCÚŒÞ +( + +3151 +Di¥Ïy +* , + +3155  + `XS‘ArcMode +( + +3156 +Di¥Ïy +* , + +3157 +GC + , + +3161  + `XS‘Background +( + +3162 +Di¥Ïy +* , + +3163 +GC + , + +3167  + `XS‘ClMask +( + +3168 +Di¥Ïy +* , + +3169 +GC + , + +3170 +Pixm­ + + +3173  + `XS‘ClOrigš +( + +3174 +Di¥Ïy +* , + +3175 +GC + , + +3180  + `XS‘ClReùªgËs +( + +3181 +Di¥Ïy +* , + +3182 +GC + , + +3185 +XReùªgË +* , + +3190  + `XS‘Clo£DownMode +( + +3191 +Di¥Ïy +* , + +3195  + `XS‘Commªd +( + +3196 +Di¥Ïy +* , + +3197 +Wšdow + , + +3202  + `XS‘Dashes +( + +3203 +Di¥Ïy +* , + +3204 +GC + , + +3206 +_XcÚ¡ + * , + +3210  + `XS‘FžlRuË +( + +3211 +Di¥Ïy +* , + +3212 +GC + , + +3216  + `XS‘FžlStyË +( + +3217 +Di¥Ïy +* , + +3218 +GC + , + +3222  + `XS‘FÚt +( + +3223 +Di¥Ïy +* , + +3224 +GC + , + +3225 +FÚt + + +3228  + `XS‘FÚtP©h +( + +3229 +Di¥Ïy +* , + +3234  + `XS‘FÜeground +( + +3235 +Di¥Ïy +* , + +3236 +GC + , + +3240  + `XS‘FunùiÚ +( + +3241 +Di¥Ïy +* , + +3242 +GC + , + +3246  + `XS‘G¿phicsExposu»s +( + +3247 +Di¥Ïy +* , + +3248 +GC + , + +3249 +BoÞ + + +3252  + `XS‘IcÚName +( + +3253 +Di¥Ïy +* , + +3254 +Wšdow + , + +3255 +_XcÚ¡ + * + +3258  + `XS‘IÅutFocus +( + +3259 +Di¥Ïy +* , + +3260 +Wšdow + , + +3262 +Time + + +3265  + `XS‘LšeA‰ribu‹s +( + +3266 +Di¥Ïy +* , + +3267 +GC + , + +3274  + `XS‘Modif›rM­pšg +( + +3275 +Di¥Ïy +* , + +3276 +XModif›rKeym­ +* + +3279  + `XS‘PÏÃMask +( + +3280 +Di¥Ïy +* , + +3281 +GC + , + +3285  + `XS‘Poš‹rM­pšg +( + +3286 +Di¥Ïy +* , + +3287 +_XcÚ¡ + * , + +3291  + `XS‘Sü“nSav” +( + +3292 +Di¥Ïy +* , + +3299  + `XS‘S–eùiÚOwÃr +( + +3300 +Di¥Ïy +* , + +3301 +Atom + , + +3302 +Wšdow + , + +3303 +Time + + +3306  + `XS‘S‹ +( + +3307 +Di¥Ïy +* , + +3308 +GC + , + +3315  + `XS‘St¶e +( + +3316 +Di¥Ïy +* , + +3317 +GC + , + +3318 +Pixm­ + + +3321  + `XS‘SubwšdowMode +( + +3322 +Di¥Ïy +* , + +3323 +GC + , + +3327  + `XS‘TSOrigš +( + +3328 +Di¥Ïy +* , + +3329 +GC + , + +3334  + `XS‘Tže +( + +3335 +Di¥Ïy +* , + +3336 +GC + , + +3337 +Pixm­ + + +3340  + `XS‘WšdowBackground +( + +3341 +Di¥Ïy +* , + +3342 +Wšdow + , + +3346  + `XS‘WšdowBackgroundPixm­ +( + +3347 +Di¥Ïy +* , + +3348 +Wšdow + , + +3349 +Pixm­ + + +3352  + `XS‘WšdowBÜd” +( + +3353 +Di¥Ïy +* , + +3354 +Wšdow + , + +3358  + `XS‘WšdowBÜd”Pixm­ +( + +3359 +Di¥Ïy +* , + +3360 +Wšdow + , + +3361 +Pixm­ + + +3364  + `XS‘WšdowBÜd”Width +( + +3365 +Di¥Ïy +* , + +3366 +Wšdow + , + +3370  + `XS‘WšdowCÞÜm­ +( + +3371 +Di¥Ïy +* , + +3372 +Wšdow + , + +3373 +CÞÜm­ + + +3376  + `XStÜeBufãr +( + +3377 +Di¥Ïy +* , + +3378 +_XcÚ¡ + * , + +3383  + `XStÜeBy‹s +( + +3384 +Di¥Ïy +* , + +3385 +_XcÚ¡ + * , + +3389  + `XStÜeCÞÜ +( + +3390 +Di¥Ïy +* , + +3391 +CÞÜm­ + , + +3392 +XCÞÜ +* + +3395  + `XStÜeCÞÜs +( + +3396 +Di¥Ïy +* , + +3397 +CÞÜm­ + , + +3398 +XCÞÜ +* , + +3402  + `XStÜeName +( + +3403 +Di¥Ïy +* , + +3404 +Wšdow + , + +3405 +_XcÚ¡ + * + +3408  + `XStÜeNamedCÞÜ +( + +3409 +Di¥Ïy +* , + +3410 +CÞÜm­ + , + +3411 +_XcÚ¡ + * , + +3416  + `XSync +( + +3417 +Di¥Ïy +* , + +3418 +BoÞ + + +3421  + `XTextEx‹Ás +( + +3422 +XFÚtSŒuù +* , + +3423 +_XcÚ¡ + * , + +3428 +XCh¬SŒuù +* + +3431  + `XTextEx‹Ás16 +( + +3432 +XFÚtSŒuù +* , + +3433 +_XcÚ¡ + +XCh¬2b +* , + +3438 +XCh¬SŒuù +* + +3441  + `XTextWidth +( + +3442 +XFÚtSŒuù +* , + +3443 +_XcÚ¡ + * , + +3447  + `XTextWidth16 +( + +3448 +XFÚtSŒuù +* , + +3449 +_XcÚ¡ + +XCh¬2b +* , + +3453 +BoÞ + + `XT¿n¦©eCoÜdš©es +( + +3454 +Di¥Ïy +* , + +3455 +Wšdow + , + +3456 +Wšdow + , + +3461 +Wšdow +* + +3464  + `XUndefšeCursÜ +( + +3465 +Di¥Ïy +* , + +3466 +Wšdow + + +3469  + `XUng¿bBu‰Ú +( + +3470 +Di¥Ïy +* , + +3473 +Wšdow + + +3476  + `XUng¿bKey +( + +3477 +Di¥Ïy +* , + +3480 +Wšdow + + +3483  + `XUng¿bKeybßrd +( + +3484 +Di¥Ïy +* , + +3485 +Time + + +3488  + `XUng¿bPoš‹r +( + +3489 +Di¥Ïy +* , + +3490 +Time + + +3493  + `XUng¿bS”v” +( + +3494 +Di¥Ïy +* + +3497  + `XUnš¡®lCÞÜm­ +( + +3498 +Di¥Ïy +* , + +3499 +CÞÜm­ + + +3502  + `XUÆßdFÚt +( + +3503 +Di¥Ïy +* , + +3504 +FÚt + + +3507  + `XUnm­Subwšdows +( + +3508 +Di¥Ïy +* , + +3509 +Wšdow + + +3512  + `XUnm­Wšdow +( + +3513 +Di¥Ïy +* , + +3514 +Wšdow + + +3517  + `XV’dÜR–—£ +( + +3518 +Di¥Ïy +* + +3521  + `XW¬pPoš‹r +( + +3522 +Di¥Ïy +* , + +3523 +Wšdow + , + +3524 +Wšdow + , + +3533  + `XWidthMMOfSü“n +( + +3534 +Sü“n +* + +3537  + `XWidthOfSü“n +( + +3538 +Sü“n +* + +3541  + `XWšdowEv’t +( + +3542 +Di¥Ïy +* , + +3543 +Wšdow + , + +3545 +XEv’t +* + +3548  + `XWr™eB™m­Fže +( + +3549 +Di¥Ïy +* , + +3550 +_XcÚ¡ + * , + +3551 +Pixm­ + , + +3558 +BoÞ + + `XSuµÜtsLoÿË + (); + +3560 * + `XS‘LoÿËModif›rs +( + +3564 +XOM + + `XO³nOM +( + +3565 +Di¥Ïy +* , + +3566  +_XrmHashBuck‘Rec +* , + +3567 +_XcÚ¡ + * , + +3568 +_XcÚ¡ + * + +3571 +Stus + + `XClo£OM +( + +3572 +XOM + + +3575 * + $XS‘OMV®ues +( + +3576 +XOM + , + +3578 è + `_X_SENTINEL +(0); + +3580 * + $XG‘OMV®ues +( + +3581 +XOM + , + +3583 è + `_X_SENTINEL +(0); + +3585 +Di¥Ïy + * + `XDi¥ÏyOfOM +( + +3586 +XOM + + +3589 * + `XLoÿËOfOM +( + +3590 +XOM + + +3593 +XOC + + $XC»©eOC +( + +3594 +XOM + , + +3596 è + `_X_SENTINEL +(0); + +3598  + `XDe¡royOC +( + +3599 +XOC + + +3602 +XOM + + `XOMOfOC +( + +3603 +XOC + + +3606 * + $XS‘OCV®ues +( + +3607 +XOC + , + +3609 è + `_X_SENTINEL +(0); + +3611 * + $XG‘OCV®ues +( + +3612 +XOC + , + +3614 è + `_X_SENTINEL +(0); + +3616 +XFÚtS‘ + + `XC»©eFÚtS‘ +( + +3617 +Di¥Ïy +* , + +3618 +_XcÚ¡ + * , + +3624  + `XF»eFÚtS‘ +( + +3625 +Di¥Ïy +* , + +3626 +XFÚtS‘ + + +3629  + `XFÚtsOfFÚtS‘ +( + +3630 +XFÚtS‘ + , + +3631 +XFÚtSŒuù +*** , + +3635 * + `XBa£FÚtNameLi¡OfFÚtS‘ +( + +3636 +XFÚtS‘ + + +3639 * + `XLoÿËOfFÚtS‘ +( + +3640 +XFÚtS‘ + + +3643 +BoÞ + + `XCÚ‹xtD•’d’tD¿wšg +( + +3644 +XFÚtS‘ + + +3647 +BoÞ + + `XDœeùiÚ®D•’d’tD¿wšg +( + +3648 +XFÚtS‘ + + +3651 +BoÞ + + `XCÚ‹xtu®D¿wšg +( + +3652 +XFÚtS‘ + + +3655 +XFÚtS‘Ex‹Ás + * + `XEx‹ÁsOfFÚtS‘ +( + +3656 +XFÚtS‘ + + +3659  + `XmbTextEsÿ³m’t +( + +3660 +XFÚtS‘ + , + +3661 +_XcÚ¡ + * , + +3665  + `XwcTextEsÿ³m’t +( + +3666 +XFÚtS‘ + , + +3667 +_XcÚ¡ + +wch¬_t +* , + +3671  + `Xutf8TextEsÿ³m’t +( + +3672 +XFÚtS‘ + , + +3673 +_XcÚ¡ + * , + +3677  + `XmbTextEx‹Ás +( + +3678 +XFÚtS‘ + , + +3679 +_XcÚ¡ + * , + +3681 +XReùªgË +* , + +3682 +XReùªgË +* + +3685  + `XwcTextEx‹Ás +( + +3686 +XFÚtS‘ + , + +3687 +_XcÚ¡ + +wch¬_t +* , + +3689 +XReùªgË +* , + +3690 +XReùªgË +* + +3693  + `Xutf8TextEx‹Ás +( + +3694 +XFÚtS‘ + , + +3695 +_XcÚ¡ + * , + +3697 +XReùªgË +* , + +3698 +XReùªgË +* + +3701 +Stus + + `XmbTextP”Ch¬Ex‹Ás +( + +3702 +XFÚtS‘ + , + +3703 +_XcÚ¡ + * , + +3705 +XReùªgË +* , + +3706 +XReùªgË +* , + +3709 +XReùªgË +* , + +3710 +XReùªgË +* + +3713 +Stus + + `XwcTextP”Ch¬Ex‹Ás +( + +3714 +XFÚtS‘ + , + +3715 +_XcÚ¡ + +wch¬_t +* , + +3717 +XReùªgË +* , + +3718 +XReùªgË +* , + +3721 +XReùªgË +* , + +3722 +XReùªgË +* + +3725 +Stus + + `Xutf8TextP”Ch¬Ex‹Ás +( + +3726 +XFÚtS‘ + , + +3727 +_XcÚ¡ + * , + +3729 +XReùªgË +* , + +3730 +XReùªgË +* , + +3733 +XReùªgË +* , + +3734 +XReùªgË +* + +3737  + `XmbD¿wText +( + +3738 +Di¥Ïy +* , + +3739 +D¿wabË + , + +3740 +GC + , + +3743 +XmbTextI‹m +* , + +3747  + `XwcD¿wText +( + +3748 +Di¥Ïy +* , + +3749 +D¿wabË + , + +3750 +GC + , + +3753 +XwcTextI‹m +* , + +3757  + `Xutf8D¿wText +( + +3758 +Di¥Ïy +* , + +3759 +D¿wabË + , + +3760 +GC + , + +3763 +XmbTextI‹m +* , + +3767  + `XmbD¿wSŒšg +( + +3768 +Di¥Ïy +* , + +3769 +D¿wabË + , + +3770 +XFÚtS‘ + , + +3771 +GC + , + +3774 +_XcÚ¡ + * , + +3778  + `XwcD¿wSŒšg +( + +3779 +Di¥Ïy +* , + +3780 +D¿wabË + , + +3781 +XFÚtS‘ + , + +3782 +GC + , + +3785 +_XcÚ¡ + +wch¬_t +* , + +3789  + `Xutf8D¿wSŒšg +( + +3790 +Di¥Ïy +* , + +3791 +D¿wabË + , + +3792 +XFÚtS‘ + , + +3793 +GC + , + +3796 +_XcÚ¡ + * , + +3800  + `XmbD¿wImageSŒšg +( + +3801 +Di¥Ïy +* , + +3802 +D¿wabË + , + +3803 +XFÚtS‘ + , + +3804 +GC + , + +3807 +_XcÚ¡ + * , + +3811  + `XwcD¿wImageSŒšg +( + +3812 +Di¥Ïy +* , + +3813 +D¿wabË + , + +3814 +XFÚtS‘ + , + +3815 +GC + , + +3818 +_XcÚ¡ + +wch¬_t +* , + +3822  + `Xutf8D¿wImageSŒšg +( + +3823 +Di¥Ïy +* , + +3824 +D¿wabË + , + +3825 +XFÚtS‘ + , + +3826 +GC + , + +3829 +_XcÚ¡ + * , + +3833 +XIM + + `XO³nIM +( + +3834 +Di¥Ïy +* , + +3835  +_XrmHashBuck‘Rec +* , + +3840 +Stus + + `XClo£IM +( + +3841 +XIM + + +3844 * + $XG‘IMV®ues +( + +3845 +XIM + , ... + +3846 è + `_X_SENTINEL +(0); + +3848 * + $XS‘IMV®ues +( + +3849 +XIM + , ... + +3850 è + `_X_SENTINEL +(0); + +3852 +Di¥Ïy + * + `XDi¥ÏyOfIM +( + +3853 +XIM + + +3856 * + `XLoÿËOfIM +( + +3857 +XIM + + +3860 +XIC + + $XC»©eIC +( + +3861 +XIM + , ... + +3862 è + `_X_SENTINEL +(0); + +3864  + `XDe¡royIC +( + +3865 +XIC + + +3868  + `XS‘ICFocus +( + +3869 +XIC + + +3872  + `XUn£tICFocus +( + +3873 +XIC + + +3876 +wch¬_t + * + `XwcRe£tIC +( + +3877 +XIC + + +3880 * + `XmbRe£tIC +( + +3881 +XIC + + +3884 * + `Xutf8Re£tIC +( + +3885 +XIC + + +3888 * + $XS‘ICV®ues +( + +3889 +XIC + , ... + +3890 è + `_X_SENTINEL +(0); + +3892 * + $XG‘ICV®ues +( + +3893 +XIC + , ... + +3894 è + `_X_SENTINEL +(0); + +3896 +XIM + + `XIMOfIC +( + +3897 +XIC + + +3900 +BoÞ + + `XFž‹rEv’t +( + +3901 +XEv’t +* , + +3902 +Wšdow + + +3905  + `XmbLookupSŒšg +( + +3906 +XIC + , + +3907 +XKeyP»s£dEv’t +* , + +3910 +KeySym +* , + +3911 +Stus +* + +3914  + `XwcLookupSŒšg +( + +3915 +XIC + , + +3916 +XKeyP»s£dEv’t +* , + +3917 +wch¬_t +* , + +3919 +KeySym +* , + +3920 +Stus +* + +3923  + `Xutf8LookupSŒšg +( + +3924 +XIC + , + +3925 +XKeyP»s£dEv’t +* , + +3928 +KeySym +* , + +3929 +Stus +* + +3932 +XVaNe¡edLi¡ + + $XVaC»©eNe¡edLi¡ +( + +3934 è + `_X_SENTINEL +(0); + +3938 +BoÞ + + `XRegi¡”IMIn¡ªtŸ‹C®lback +( + +3939 +Di¥Ïy +* , + +3940  +_XrmHashBuck‘Rec +* , + +3943 +XIDProc + , + +3944 +XPoš‹r + + +3947 +BoÞ + + `XUÄegi¡”IMIn¡ªtŸ‹C®lback +( + +3948 +Di¥Ïy +* , + +3949  +_XrmHashBuck‘Rec +* , + +3952 +XIDProc + , + +3953 +XPoš‹r + + +3956 (* + tXCÚÃùiÚW©chProc +)( + +3957 + tDi¥Ïy +* , + +3958 + tXPoš‹r + , + +3960 + tBoÞ + , + +3961 + tXPoš‹r +* + +3965 +Stus + + `XIÁ”ÇlCÚÃùiÚNumb”s +( + +3966 +Di¥Ïy +* , + +3971  + `XProûssIÁ”ÇlCÚÃùiÚ +( + +3972 +Di¥Ïy +* , + +3976 +Stus + + `XAddCÚÃùiÚW©ch +( + +3977 +Di¥Ïy +* , + +3978 +XCÚÃùiÚW©chProc + , + +3979 +XPoš‹r + + +3982  + `XRemoveCÚÃùiÚW©ch +( + +3983 +Di¥Ïy +* , + +3984 +XCÚÃùiÚW©chProc + , + +3985 +XPoš‹r + + +3988  + `XS‘AuthÜiz©iÚ +( + +3995  + `_Xmbtowc +( + +3996 +wch¬_t + * , + +3997 #ifdeà +ISC + + +3999 +size_t + + +4006  + `_Xwùomb +( + +4008 +wch¬_t + + +4011 +BoÞ + + `XG‘Ev’tD©a +( + +4012 +Di¥Ïy +* , + +4013 +XG’”icEv’tCook› +* + +4016  + `XF»eEv’tD©a +( + +4017 +Di¥Ïy +* , + +4018 +XG’”icEv’tCook› +* + +4021 +_XFUNCPROTOEND + + + @/usr/include/X11/Xos.h + +33 #iâdeà +_XOS_H_ + + +34  + #_XOS_H_ + + + ) + +36  + ~ + +42  + ~ + +44 #ià +defšed +( +__SCO__ +è|| defšed( +__UNIXWARE__ +) + +45  + ~<¡dšt.h +> + +62  + ~<¡ršg.h +> + +63 #ià +defšed +( +__SCO__ +è|| defšed( +__UNIXWARE__ +è|| defšed( +__sun +) + +64  + ~<¡ršgs.h +> + +66 #iâdeà +šdex + + +67  + #šdex +( +s +, +c +è( + `¡rchr +((s),(c))) + + ) + +69 #iâdeà +ršdex + + +70  + #ršdex +( +s +, +c +è( + `¡¼chr +((s),(c))) + + ) + +77 #ià +defšed +( +X_NOT_POSIX +) + +78  + ~ + +79 #ià +defšed +( +USL +è|| defšed( +__i386__ +è&& (defšed( +SYSV +è|| defšed( +SVR4 +)) + +80  + ~ + +82 #ifdeà +WIN32 + + +83  + ~ + +85  + ~ + +88  + ~ + +89  + ~ + +96 #ià +defšed +( +_POSIX_SOURCE +è&& defšed( +SVR4 +) + +98 #undeà +_POSIX_SOURCE + + +99  + ~ + +100  + #_POSIX_SOURCE + + + ) + +101 #–ià +defšed +( +WIN32 +) + +102  + ~ + +103 #ià! +defšed +( +_WINSOCKAPI_ +è&& !defšed( +_WILLWINSOCK_ +è&& !defšed( +_TIMEVAL_DEFINED +è&& !defšed( +_STRUCT_TIMEVAL +) + +104  + stimev® + { + +105  + mtv_£c +; + +106  + mtv_u£c +; + +108  + #_TIMEVAL_DEFINED + + + ) + +110  + ~ + +111  + #g‘timeofday +( +t +) \ + +113  +_timeb + +_gtodtmp +; \ + +114 + `_áime + (& +_gtodtmp +); \ + +115 ( +t +)-> +tv_£c + = +_gtodtmp +. +time +; \ + +116 ( +t +)-> +tv_u£c + = +_gtodtmp +. +mžl™m + * 1000; \ + +117 } + + ) + +119  + ~ + +120  + ~ + +124 #ià +defšed +( +_XOPEN_XPG4 +è|| defšed( +_XOPEN_UNIX +) + +125  + #X_GETTIMEOFDAY +( +t +è + `g‘timeofday +Ñ, ( +timezÚe +*)0) + + ) + +127 #ià +defšed +( +SVR4 +è|| defšed( +__SVR4 +è|| defšed( +WIN32 +) + +128  + #X_GETTIMEOFDAY +( +t +è + `g‘timeofday +Ñ) + + ) + +130  + #X_GETTIMEOFDAY +( +t +è + `g‘timeofday +Ñ, ( +timezÚe +*)0) + + ) + +135 #ifdeà +__GNU__ + + +136  + #PATH_MAX + 4096 + + ) + +137  + #MAXPATHLEN + 4096 + + ) + +138  + #OPEN_MAX + 256 + + ) + +142 #ià +defšed +( +X_NOT_POSIX +è&& defšed( +SYSV +è&& !defšed( +SIGCHLD +) + +143  + #SIGCHLD + +SIGCLD + + + ) + +146  + ~ + + @/usr/include/X11/Xutil.h + +49 #iâdeà +_X11_XUTIL_H_ + + +50  + #_X11_XUTIL_H_ + + + ) + +53  + ~ + +54  + ~ + +60  + #NoV®ue + 0x0000 + + ) + +61  + #XV®ue + 0x0001 + + ) + +62  + #YV®ue + 0x0002 + + ) + +63  + #WidthV®ue + 0x0004 + + ) + +64  + #HeightV®ue + 0x0008 + + ) + +65  + #AÎV®ues + 0x000F + + ) + +66  + #XNeg©ive + 0x0010 + + ) + +67  + #YNeg©ive + 0x0020 + + ) + +74  + mæags +; + +75  + mx +, + my +; + +76  + mwidth +, + mheight +; + +77  + mmš_width +, + mmš_height +; + +78  + mmax_width +, + mmax_height +; + +79  + mwidth_šc +, + mheight_šc +; + +81  + mx +; + +82  + my +; + +83 } + mmš_a¥eù +, + mmax_a¥eù +; + +84  + mba£_width +, + mba£_height +; + +85  + mwš_g¿v™y +; + +86 } + tXSizeHšts +; + +94  + #USPos™iÚ + (1L << 0è + + ) + +95  + #USSize + (1L << 1è + + ) + +97  + #PPos™iÚ + (1L << 2è + + ) + +98  + #PSize + (1L << 3è + + ) + +99  + #PMšSize + (1L << 4è + + ) + +100  + #PMaxSize + (1L << 5è + + ) + +101  + #PResizeInc + (1L << 6è + + ) + +102  + #PA¥eù + (1L << 7è + + ) + +103  + #PBa£Size + (1L << 8è + + ) + +104  + #PWšG¿v™y + (1L << 9è + + ) + +107  + #PAÎHšts + ( +PPos™iÚ +| +PSize +| +PMšSize +| +PMaxSize +| +PResizeInc +| +PA¥eù +) + + ) + +112  + mæags +; + +113 +BoÞ + + mšput +; + +115  + mš™Ÿl_¡©e +; + +116 +Pixm­ + + micÚ_pixm­ +; + +117 +Wšdow + + micÚ_wšdow +; + +118  + micÚ_x +, + micÚ_y +; + +119 +Pixm­ + + micÚ_mask +; + +120 +XID + + mwšdow_group +; + +122 } + tXWMHšts +; + +126  + #IÅutHšt + (1L << 0) + + ) + +127  + #S‹Hšt + (1L << 1) + + ) + +128  + #IcÚPixm­Hšt + (1L << 2) + + ) + +129  + #IcÚWšdowHšt + (1L << 3) + + ) + +130  + #IcÚPos™iÚHšt + (1L << 4) + + ) + +131  + #IcÚMaskHšt + (1L << 5) + + ) + +132  + #WšdowGroupHšt + (1L << 6) + + ) + +133  + #AÎHšts + ( +IÅutHšt +| +S‹Hšt +| +IcÚPixm­Hšt +| +IcÚWšdowHšt +| \ + +134 +IcÚPos™iÚHšt +| +IcÚMaskHšt +| +WšdowGroupHšt +) + + ) + +135  + #XUrg’cyHšt + (1L << 8) + + ) + +138  + #W™hd¿wnS‹ + 0 + + ) + +139  + #NÜm®S‹ + 1 + + ) + +140  + #IcÚicS‹ + 3 + + ) + +145  + #DÚtC¬eS‹ + 0 + + ) + +146  + #ZoomS‹ + 2 + + ) + +147  + #IÇùiveS‹ + 4 + + ) + +156 * + mv®ue +; + +157 +Atom + + m’codšg +; + +158  + mfÜm© +; + +159  + mn™ems +; + +160 } + tXTextPrÝ”ty +; + +162  + #XNoMemÜy + -1 + + ) + +163  + #XLoÿËNÙSuµÜ‹d + -2 + + ) + +164  + #XCÚv”‹rNÙFound + -3 + + ) + +167 + mXSŒšgStyË +, + +168 + mXCompoundTextStyË +, + +169 + mXTextStyË +, + +170 + mXStdICCTextStyË +, + +172 + mXUTF8SŒšgStyË + + +173 } + tXICCEncodšgStyË +; + +176  + mmš_width +, + mmš_height +; + +177  + mmax_width +, + mmax_height +; + +178  + mwidth_šc +, + mheight_šc +; + +179 } + tXIcÚSize +; + +182 * + m»s_Çme +; + +183 * + m»s_þass +; + +184 } + tXCÏssHšt +; + +186 #ifdeà +XUTIL_DEFINE_FUNCTIONS + + +187  +XDe¡royImage +( + +188 +XImage + * +ximage +); + +189  +XG‘Pix– +( + +190 +XImage + * +ximage +, + +191  +x +,  +y +); + +192  +XPutPix– +( + +193 +XImage + * +ximage +, + +194  +x +,  +y +, + +195  +pix– +); + +196 +XImage + * +XSubImage +( + +197 +XImage + * +ximage +, + +198  +x +,  +y +, + +199  +width +,  +height +); + +200  +XAddPix– +( + +201 +XImage + * +ximage +, + +202  +v®ue +); + +208  + #XDe¡royImage +( +ximage +) \ + +209 ((*(( +ximage +)-> +f +. +de¡roy_image +))((ximage))) + + ) + +210  + #XG‘Pix– +( +ximage +, +x +, +y +) \ + +211 ((*(( +ximage +)-> +f +. +g‘_pix– +))((ximage), ( +x +), ( +y +))) + + ) + +212  + #XPutPix– +( +ximage +, +x +, +y +, +pix– +) \ + +213 ((*(( +ximage +)-> +f +. +put_pix– +))((ximage), ( +x +), ( +y +), ( +pix– +))) + + ) + +214  + #XSubImage +( +ximage +, +x +, +y +, +width +, +height +) \ + +215 ((*(( +ximage +)-> +f +. +sub_image +))((ximage), ( +x +), ( +y +), ( +width +), ( +height +))) + + ) + +216  + #XAddPix– +( +ximage +, +v®ue +) \ + +217 ((*(( +ximage +)-> +f +. +add_pix– +))((ximage), ( +v®ue +))) + + ) + +223  + s_XCompo£Stus + { + +224 +XPoš‹r + + mcompo£_±r +; + +225  + mch¬s_m©ched +; + +226 } + tXCompo£Stus +; + +231  + #IsKey·dKey +( +keysym +) \ + +232 ((( +KeySym +)( +keysym +è>ð +XK_KP_S·û +è&& ((KeySym)(keysymè<ð +XK_KP_Equ® +)) + + ) + +234  + #IsPriv©eKey·dKey +( +keysym +) \ + +235 ((( +KeySym +)( +keysym +è>ð0x11000000è&& ((KeySym)(keysymè<ð0x1100FFFF)) + + ) + +237  + #IsCursÜKey +( +keysym +) \ + +238 ((( +KeySym +)( +keysym +è>ð +XK_Home +è&& ((KeySym)(keysymè< +XK_S–eù +)) + + ) + +240  + #IsPFKey +( +keysym +) \ + +241 ((( +KeySym +)( +keysym +è>ð +XK_KP_F1 +è&& ((KeySym)(keysymè<ð +XK_KP_F4 +)) + + ) + +243  + #IsFunùiÚKey +( +keysym +) \ + +244 ((( +KeySym +)( +keysym +è>ð +XK_F1 +è&& ((KeySym)(keysymè<ð +XK_F35 +)) + + ) + +246  + #IsMiscFunùiÚKey +( +keysym +) \ + +247 ((( +KeySym +)( +keysym +è>ð +XK_S–eù +è&& ((KeySym)(keysymè<ð +XK_B»ak +)) + + ) + +249 #ifdeà +XK_XKB_KEYS + + +250  + #IsModif›rKey +( +keysym +) \ + +251 (((( +KeySym +)( +keysym +è>ð +XK_Shiá_L +è&& ((KeySym)(keysymè<ð +XK_Hy³r_R +)) \ + +252 || ((( +KeySym +)( +keysym +è>ð +XK_ISO_Lock +) && \ + +253 (( +KeySym +)( +keysym +è<ð +XK_ISO_La¡_Group_Lock +)) \ + +254 || (( +KeySym +)( +keysym +è=ð +XK_Mode_sw™ch +) \ + +255 || (( +KeySym +)( +keysym +è=ð +XK_Num_Lock +)) + + ) + +257  + #IsModif›rKey +( +keysym +) \ + +258 (((( +KeySym +)( +keysym +è>ð +XK_Shiá_L +è&& ((KeySym)(keysymè<ð +XK_Hy³r_R +)) \ + +259 || (( +KeySym +)( +keysym +è=ð +XK_Mode_sw™ch +) \ + +260 || (( +KeySym +)( +keysym +è=ð +XK_Num_Lock +)) + + ) + +265  +_XRegiÚ + * + tRegiÚ +; + +269  + #ReùªgËOut + 0 + + ) + +270  + #ReùªgËIn + 1 + + ) + +271  + #ReùªgËP¬t + 2 + + ) + +280 +Visu® + * + mvisu® +; + +281 +Visu®ID + + mvisu®id +; + +282  + msü“n +; + +283  + md•th +; + +284 #ià +defšed +( +__ýlu¥lus +è|| defšed( +c_¶u¥lus +) + +285  + mc_þass +; + +287  + mþass +; + +289  + m»d_mask +; + +290  + mg»’_mask +; + +291  + mblue_mask +; + +292  + mcÞÜm­_size +; + +293  + mb™s_³r_rgb +; + +294 } + tXVisu®Info +; + +296  + #Visu®NoMask + 0x0 + + ) + +297  + #Visu®IDMask + 0x1 + + ) + +298  + #Visu®Sü“nMask + 0x2 + + ) + +299  + #Visu®D•thMask + 0x4 + + ) + +300  + #Visu®CÏssMask + 0x8 + + ) + +301  + #Visu®RedMaskMask + 0x10 + + ) + +302  + #Visu®G»’MaskMask + 0x20 + + ) + +303  + #Visu®BlueMaskMask + 0x40 + + ) + +304  + #Visu®CÞÜm­SizeMask + 0x80 + + ) + +305  + #Visu®B™sP”RGBMask + 0x100 + + ) + +306  + #Visu®AÎMask + 0x1FF + + ) + +313 +CÞÜm­ + + mcÞÜm­ +; + +314  + m»d_max +; + +315  + m»d_muÉ +; + +316  + mg»’_max +; + +317  + mg»’_muÉ +; + +318  + mblue_max +; + +319  + mblue_muÉ +; + +320  + mba£_pix– +; + +321 +Visu®ID + + mvisu®id +; + +322 +XID + + mkžlid +; + +323 } + tXSnd¬dCÞÜm­ +; + +325  + #R–—£ByF»ešgCÞÜm­ + (( +XID +è1Lè + + ) + +331  + #B™m­Sucûss + 0 + + ) + +332  + #B™m­O³nFažed + 1 + + ) + +333  + #B™m­FžeInv®id + 2 + + ) + +334  + #B™m­NoMemÜy + 3 + + ) + +345  + #XCSUCCESS + 0 + + ) + +346  + #XCNOMEM + 1 + + ) + +347  + #XCNOENT + 2 + + ) + +349  + tXCÚ‹xt +; + +351  + #XUniqueCÚ‹xt +(è(( +XCÚ‹xt +è + `XrmUniqueQu¬k +()) + + ) + +352  + #XSŒšgToCÚ‹xt +( +¡ršg +è(( +XCÚ‹xt +è + `XrmSŒšgToQu¬k +(¡ršg)) + + ) + +354 +_XFUNCPROTOBEGIN + + +358 +XCÏssHšt + * +XAÎocCÏssHšt + ( + +362 +XIcÚSize + * +XAÎocIcÚSize + ( + +366 +XSizeHšts + * +XAÎocSizeHšts + ( + +370 +XSnd¬dCÞÜm­ + * +XAÎocSnd¬dCÞÜm­ + ( + +374 +XWMHšts + * +XAÎocWMHšts + ( + +378  +XClBox +( + +379 +RegiÚ + , + +380 +XReùªgË +* + +383 +RegiÚ + +XC»©eRegiÚ +( + +387 cÚ¡ * +XDeçuÉSŒšg + (); + +389  +XD–‘eCÚ‹xt +( + +390 +Di¥Ïy +* , + +391 +XID + , + +392 +XCÚ‹xt + + +395  +XDe¡royRegiÚ +( + +396 +RegiÚ + + +399  +XEm±yRegiÚ +( + +400 +RegiÚ + + +403  +XEqu®RegiÚ +( + +404 +RegiÚ + , + +405 +RegiÚ + + +408  +XFšdCÚ‹xt +( + +409 +Di¥Ïy +* , + +410 +XID + , + +411 +XCÚ‹xt + , + +412 +XPoš‹r +* + +415 +Stus + +XG‘CÏssHšt +( + +416 +Di¥Ïy +* , + +417 +Wšdow + , + +418 +XCÏssHšt +* + +421 +Stus + +XG‘IcÚSizes +( + +422 +Di¥Ïy +* , + +423 +Wšdow + , + +424 +XIcÚSize +** , + +428 +Stus + +XG‘NÜm®Hšts +( + +429 +Di¥Ïy +* , + +430 +Wšdow + , + +431 +XSizeHšts +* + +434 +Stus + +XG‘RGBCÞÜm­s +( + +435 +Di¥Ïy +* , + +436 +Wšdow + , + +437 +XSnd¬dCÞÜm­ +** , + +439 +Atom + + +442 +Stus + +XG‘SizeHšts +( + +443 +Di¥Ïy +* , + +444 +Wšdow + , + +445 +XSizeHšts +* , + +446 +Atom + + +449 +Stus + +XG‘Snd¬dCÞÜm­ +( + +450 +Di¥Ïy +* , + +451 +Wšdow + , + +452 +XSnd¬dCÞÜm­ +* , + +453 +Atom + + +456 +Stus + +XG‘TextPrÝ”ty +( + +457 +Di¥Ïy +* , + +458 +Wšdow + , + +459 +XTextPrÝ”ty +* , + +460 +Atom + + +463 +XVisu®Info + * +XG‘Visu®Info +( + +464 +Di¥Ïy +* , + +466 +XVisu®Info +* , + +470 +Stus + +XG‘WMCl›ÁMachše +( + +471 +Di¥Ïy +* , + +472 +Wšdow + , + +473 +XTextPrÝ”ty +* + +476 +XWMHšts + * +XG‘WMHšts +( + +477 +Di¥Ïy +* , + +478 +Wšdow + + +481 +Stus + +XG‘WMIcÚName +( + +482 +Di¥Ïy +* , + +483 +Wšdow + , + +484 +XTextPrÝ”ty +* + +487 +Stus + +XG‘WMName +( + +488 +Di¥Ïy +* , + +489 +Wšdow + , + +490 +XTextPrÝ”ty +* + +493 +Stus + +XG‘WMNÜm®Hšts +( + +494 +Di¥Ïy +* , + +495 +Wšdow + , + +496 +XSizeHšts +* , + +500 +Stus + +XG‘WMSizeHšts +( + +501 +Di¥Ïy +* , + +502 +Wšdow + , + +503 +XSizeHšts +* , + +505 +Atom + + +508 +Stus + +XG‘ZoomHšts +( + +509 +Di¥Ïy +* , + +510 +Wšdow + , + +511 +XSizeHšts +* + +514  +XIÁ”£ùRegiÚ +( + +515 +RegiÚ + , + +516 +RegiÚ + , + +517 +RegiÚ + + +520  +XCÚv”tCa£ +( + +521 +KeySym + , + +522 +KeySym +* , + +523 +KeySym +* + +526  +XLookupSŒšg +( + +527 +XKeyEv’t +* , + +530 +KeySym +* , + +531 +XCompo£Stus +* + +534 +Stus + +XM©chVisu®Info +( + +535 +Di¥Ïy +* , + +539 +XVisu®Info +* + +542  +XOff£tRegiÚ +( + +543 +RegiÚ + , + +548 +BoÞ + +XPoštInRegiÚ +( + +549 +RegiÚ + , + +554 +RegiÚ + +XPÞygÚRegiÚ +( + +555 +XPošt +* , + +560  +XReùInRegiÚ +( + +561 +RegiÚ + , + +568  +XSaveCÚ‹xt +( + +569 +Di¥Ïy +* , + +570 +XID + , + +571 +XCÚ‹xt + , + +572 +_XcÚ¡ + * + +575  +XS‘CÏssHšt +( + +576 +Di¥Ïy +* , + +577 +Wšdow + , + +578 +XCÏssHšt +* + +581  +XS‘IcÚSizes +( + +582 +Di¥Ïy +* , + +583 +Wšdow + , + +584 +XIcÚSize +* , + +588  +XS‘NÜm®Hšts +( + +589 +Di¥Ïy +* , + +590 +Wšdow + , + +591 +XSizeHšts +* + +594  +XS‘RGBCÞÜm­s +( + +595 +Di¥Ïy +* , + +596 +Wšdow + , + +597 +XSnd¬dCÞÜm­ +* , + +599 +Atom + + +602  +XS‘SizeHšts +( + +603 +Di¥Ïy +* , + +604 +Wšdow + , + +605 +XSizeHšts +* , + +606 +Atom + + +609  +XS‘Snd¬dPrÝ”t›s +( + +610 +Di¥Ïy +* , + +611 +Wšdow + , + +612 +_XcÚ¡ + * , + +613 +_XcÚ¡ + * , + +614 +Pixm­ + , + +617 +XSizeHšts +* + +620  +XS‘TextPrÝ”ty +( + +621 +Di¥Ïy +* , + +622 +Wšdow + , + +623 +XTextPrÝ”ty +* , + +624 +Atom + + +627  +XS‘WMCl›ÁMachše +( + +628 +Di¥Ïy +* , + +629 +Wšdow + , + +630 +XTextPrÝ”ty +* + +633  +XS‘WMHšts +( + +634 +Di¥Ïy +* , + +635 +Wšdow + , + +636 +XWMHšts +* + +639  +XS‘WMIcÚName +( + +640 +Di¥Ïy +* , + +641 +Wšdow + , + +642 +XTextPrÝ”ty +* + +645  +XS‘WMName +( + +646 +Di¥Ïy +* , + +647 +Wšdow + , + +648 +XTextPrÝ”ty +* + +651  +XS‘WMNÜm®Hšts +( + +652 +Di¥Ïy +* , + +653 +Wšdow + , + +654 +XSizeHšts +* + +657  +XS‘WMPrÝ”t›s +( + +658 +Di¥Ïy +* , + +659 +Wšdow + , + +660 +XTextPrÝ”ty +* , + +661 +XTextPrÝ”ty +* , + +664 +XSizeHšts +* , + +665 +XWMHšts +* , + +666 +XCÏssHšt +* + +669  +XmbS‘WMPrÝ”t›s +( + +670 +Di¥Ïy +* , + +671 +Wšdow + , + +672 +_XcÚ¡ + * , + +673 +_XcÚ¡ + * , + +676 +XSizeHšts +* , + +677 +XWMHšts +* , + +678 +XCÏssHšt +* + +681  +Xutf8S‘WMPrÝ”t›s +( + +682 +Di¥Ïy +* , + +683 +Wšdow + , + +684 +_XcÚ¡ + * , + +685 +_XcÚ¡ + * , + +688 +XSizeHšts +* , + +689 +XWMHšts +* , + +690 +XCÏssHšt +* + +693  +XS‘WMSizeHšts +( + +694 +Di¥Ïy +* , + +695 +Wšdow + , + +696 +XSizeHšts +* , + +697 +Atom + + +700  +XS‘RegiÚ +( + +701 +Di¥Ïy +* , + +702 +GC + , + +703 +RegiÚ + + +706  +XS‘Snd¬dCÞÜm­ +( + +707 +Di¥Ïy +* , + +708 +Wšdow + , + +709 +XSnd¬dCÞÜm­ +* , + +710 +Atom + + +713  +XS‘ZoomHšts +( + +714 +Di¥Ïy +* , + +715 +Wšdow + , + +716 +XSizeHšts +* + +719  +XShrškRegiÚ +( + +720 +RegiÚ + , + +725 +Stus + +XSŒšgLi¡ToTextPrÝ”ty +( + +728 +XTextPrÝ”ty +* + +731  +XSubŒaùRegiÚ +( + +732 +RegiÚ + , + +733 +RegiÚ + , + +734 +RegiÚ + + +737  +XmbTextLi¡ToTextPrÝ”ty +( + +738 +Di¥Ïy +* +di¥Ïy +, + +739 ** +li¡ +, + +740  +couÁ +, + +741 +XICCEncodšgStyË + +¡yË +, + +742 +XTextPrÝ”ty +* +‹xt_´Ý_»tuº + + +745  +XwcTextLi¡ToTextPrÝ”ty +( + +746 +Di¥Ïy +* +di¥Ïy +, + +747 +wch¬_t +** +li¡ +, + +748  +couÁ +, + +749 +XICCEncodšgStyË + +¡yË +, + +750 +XTextPrÝ”ty +* +‹xt_´Ý_»tuº + + +753  +Xutf8TextLi¡ToTextPrÝ”ty +( + +754 +Di¥Ïy +* +di¥Ïy +, + +755 ** +li¡ +, + +756  +couÁ +, + +757 +XICCEncodšgStyË + +¡yË +, + +758 +XTextPrÝ”ty +* +‹xt_´Ý_»tuº + + +761  +XwcF»eSŒšgLi¡ +( + +762 +wch¬_t +** +li¡ + + +765 +Stus + +XTextPrÝ”tyToSŒšgLi¡ +( + +766 +XTextPrÝ”ty +* , + +771  +XmbTextPrÝ”tyToTextLi¡ +( + +772 +Di¥Ïy +* +di¥Ïy +, + +773 cÚ¡ +XTextPrÝ”ty +* +‹xt_´Ý +, + +774 *** +li¡_»tuº +, + +775 * +couÁ_»tuº + + +778  +XwcTextPrÝ”tyToTextLi¡ +( + +779 +Di¥Ïy +* +di¥Ïy +, + +780 cÚ¡ +XTextPrÝ”ty +* +‹xt_´Ý +, + +781 +wch¬_t +*** +li¡_»tuº +, + +782 * +couÁ_»tuº + + +785  +Xutf8TextPrÝ”tyToTextLi¡ +( + +786 +Di¥Ïy +* +di¥Ïy +, + +787 cÚ¡ +XTextPrÝ”ty +* +‹xt_´Ý +, + +788 *** +li¡_»tuº +, + +789 * +couÁ_»tuº + + +792  +XUniÚReùW™hRegiÚ +( + +793 +XReùªgË +* , + +794 +RegiÚ + , + +795 +RegiÚ + + +798  +XUniÚRegiÚ +( + +799 +RegiÚ + , + +800 +RegiÚ + , + +801 +RegiÚ + + +804  +XWMGeom‘ry +( + +805 +Di¥Ïy +* , + +807 +_XcÚ¡ + * , + +808 +_XcÚ¡ + * , + +810 +XSizeHšts +* , + +818  +XXÜRegiÚ +( + +819 +RegiÚ + , + +820 +RegiÚ + , + +821 +RegiÚ + + +824 + g_XFUNCPROTOEND + + + @/usr/include/X11/cursorfont.h + +29 #iâdeà +_X11_CURSORFONT_H_ + + +30  + #_X11_CURSORFONT_H_ + + + ) + +32  + #XC_num_glyphs + 154 + + ) + +33  + #XC_X_cursÜ + 0 + + ) + +34  + #XC_¬row + 2 + + ) + +35  + #XC_ba£d_¬row_down + 4 + + ) + +36  + #XC_ba£d_¬row_up + 6 + + ) + +37  + #XC_bßt + 8 + + ) + +38  + #XC_bogos™y + 10 + + ) + +39  + #XC_bÙtom_Ëá_cÜÃr + 12 + + ) + +40  + #XC_bÙtom_right_cÜÃr + 14 + + ) + +41  + #XC_bÙtom_side + 16 + + ) + +42  + #XC_bÙtom_‹e + 18 + + ) + +43  + #XC_box_¥œ® + 20 + + ) + +44  + #XC_ûÁ”_±r + 22 + + ) + +45  + #XC_cœþe + 24 + + ) + +46  + #XC_þock + 26 + + ) + +47  + #XC_cofãe_mug + 28 + + ) + +48  + #XC_üoss + 30 + + ) + +49  + #XC_üoss_»v”£ + 32 + + ) + +50  + #XC_üosshaœ + 34 + + ) + +51  + #XC_dŸmÚd_üoss + 36 + + ) + +52  + #XC_dÙ + 38 + + ) + +53  + #XC_dÙbox + 40 + + ) + +54  + #XC_doubË_¬row + 42 + + ) + +55  + #XC_d¿á_Ïrge + 44 + + ) + +56  + #XC_d¿á_sm®l + 46 + + ) + +57  + #XC_d¿³d_box + 48 + + ) + +58  + #XC_exchªge + 50 + + ) + +59  + #XC_æeur + 52 + + ) + +60  + #XC_gobbËr + 54 + + ) + +61  + #XC_gumby + 56 + + ) + +62  + #XC_hªd1 + 58 + + ) + +63  + #XC_hªd2 + 60 + + ) + +64  + #XC_h—¹ + 62 + + ) + +65  + #XC_icÚ + 64 + + ) + +66  + #XC_œÚ_üoss + 66 + + ) + +67  + #XC_Ëá_±r + 68 + + ) + +68  + #XC_Ëá_side + 70 + + ) + +69  + #XC_Ëá_‹e + 72 + + ) + +70  + #XC_Ëábu‰Ú + 74 + + ) + +71  + #XC_Î_ªgË + 76 + + ) + +72  + #XC_Ì_ªgË + 78 + + ) + +73  + #XC_mª + 80 + + ) + +74  + #XC_middËbu‰Ú + 82 + + ) + +75  + #XC_mou£ + 84 + + ) + +76  + #XC_³ncž + 86 + + ) + +77  + #XC_pœ©e + 88 + + ) + +78  + #XC_¶us + 90 + + ) + +79  + #XC_que¡iÚ_¬row + 92 + + ) + +80  + #XC_right_±r + 94 + + ) + +81  + #XC_right_side + 96 + + ) + +82  + #XC_right_‹e + 98 + + ) + +83  + #XC_rightbu‰Ú + 100 + + ) + +84  + #XC_¹l_logo + 102 + + ) + +85  + #XC_§žbßt + 104 + + ) + +86  + #XC_sb_down_¬row + 106 + + ) + +87  + #XC_sb_h_doubË_¬row + 108 + + ) + +88  + #XC_sb_Ëá_¬row + 110 + + ) + +89  + #XC_sb_right_¬row + 112 + + ) + +90  + #XC_sb_up_¬row + 114 + + ) + +91  + #XC_sb_v_doubË_¬row + 116 + + ) + +92  + #XC_shu‰Ë + 118 + + ) + +93  + #XC_sizšg + 120 + + ) + +94  + #XC_¥id” + 122 + + ) + +95  + #XC_¥¿yÿn + 124 + + ) + +96  + #XC_¡¬ + 126 + + ) + +97  + #XC_rg‘ + 128 + + ) + +98  + #XC_tüoss + 130 + + ) + +99  + #XC_tÝ_Ëá_¬row + 132 + + ) + +100  + #XC_tÝ_Ëá_cÜÃr + 134 + + ) + +101  + #XC_tÝ_right_cÜÃr + 136 + + ) + +102  + #XC_tÝ_side + 138 + + ) + +103  + #XC_tÝ_‹e + 140 + + ) + +104  + #XC_Œek + 142 + + ) + +105  + #XC_ul_ªgË + 144 + + ) + +106  + #XC_umb»Îa + 146 + + ) + +107  + #XC_ur_ªgË + 148 + + ) + +108  + #XC_w©ch + 150 + + ) + +109  + #XC_x‹rm + 152 + + ) + + @/usr/include/math.h + +25 #iâdef +_MATH_H + + +26  + #_MATH_H + 1 + + ) + +28  + ~<ã©u»s.h +> + +30 + g__BEGIN_DECLS + + +34  + ~ + +35 #ifdeà +__USE_ISOC99 + + +36  + ~ + +37  + ~ + +40  + ~ + +43  + ~ + +47  + ~ + +54  + #__MATHCALL +( +funùiÚ +, +suffix +, +¬gs +) \ + +55 + `__MATHDECL + ( +_MdoubË_ +, +funùiÚ +, +suffix +, +¬gs +) + + ) + +56  + #__MATHDECL +( +ty³ +, +funùiÚ +, +suffix +, +¬gs +) \ + +57 + `__MATHDECL_1 +( +ty³ +, +funùiÚ +, +suffix +, +¬gs +); \ + +58 + `__MATHDECL_1 +( +ty³ +, + `__CONCAT +( +__ +, +funùiÚ +), +suffix +, +¬gs +) + + ) + +59  + #__MATHCALLX +( +funùiÚ +, +suffix +, +¬gs +, +©Œib +) \ + +60 + `__MATHDECLX + ( +_MdoubË_ +, +funùiÚ +, +suffix +, +¬gs +, +©Œib +) + + ) + +61  + #__MATHDECLX +( +ty³ +, +funùiÚ +, +suffix +, +¬gs +, +©Œib +) \ + +62 + `__MATHDECL_1 +( +ty³ +, +funùiÚ +, +suffix +, +¬gs +è + `__©Œibu‹__ + ( +©Œib +); \ + +63 + `__MATHDECL_1 +( +ty³ +, + `__CONCAT +( +__ +, +funùiÚ +), +suffix +, +¬gs +è + `__©Œibu‹__ + ( +©Œib +) + + ) + +64  + #__MATHDECL_1 +( +ty³ +, +funùiÚ +, +suffix +, +¬gs +) \ + +65 +ty³ + + `__MATH_PRECNAME +( +funùiÚ +, +suffix +è +¬gs + +__THROW + + + ) + +67  + #_MdoubË_ +  + + ) + +68  + #__MATH_PRECNAME +( +Çme +, +r +è + `__CONCAT +Òame,r) + + ) + +69  + #_MdoubË_BEGIN_NAMESPACE + +__BEGIN_NAMESPACE_STD + + + ) + +70  + #_MdoubË_END_NAMESPACE + +__END_NAMESPACE_STD + + + ) + +71  + ~ + +72 #undeà +_MdoubË_ + + +73 #undeà +_MdoubË_BEGIN_NAMESPACE + + +74 #undeà +_MdoubË_END_NAMESPACE + + +75 #undeà +__MATH_PRECNAME + + +77 #ià +defšed + +__USE_MISC + || defšed +__USE_ISOC99 + + +83 #iâdeà +_Mæßt_ + + +84  + #_Mæßt_ +  + + ) + +86  + #_MdoubË_ + +_Mæßt_ + + + ) + +87 #ifdeà +__STDC__ + + +88  + #__MATH_PRECNAME +( +Çme +, +r +èÇme## +f +## + ) +r + +90  + #__MATH_PRECNAME +( +Çme +, +r +èÇm +f + + ) +r + +92  + #_MdoubË_BEGIN_NAMESPACE + +__BEGIN_NAMESPACE_C99 + + + ) + +93  + #_MdoubË_END_NAMESPACE + +__END_NAMESPACE_C99 + + + ) + +94  + ~ + +95 #undeà +_MdoubË_ + + +96 #undeà +_MdoubË_BEGIN_NAMESPACE + + +97 #undeà +_MdoubË_END_NAMESPACE + + +98 #undeà +__MATH_PRECNAME + + +100 #ià( +__STDC__ + - 0 || +__GNUC__ + - 0) \ + +101 && (! +defšed + +__NO_LONG_DOUBLE_MATH + || defšed +__LDBL_COMPAT +) + +102 #ifdeà +__LDBL_COMPAT + + +104 #ifdeà +__USE_ISOC99 + + +105  + $__Ædbl_Ãx‰ow¬df + ( +__x +,  +__y +) + +106 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +107 #ifdeà +__REDIRECT_NTH + + +108  + `__REDIRECT_NTH + ( +Ãx‰ow¬df +, ( +__x +,  +__y +), + +109 +__Ædbl_Ãx‰ow¬df +) + +110 + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +111  + `__REDIRECT_NTH + ( +Ãx‰ow¬d +, ( +__x +,  +__y +), + +112 +Ãxá” +è + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +113  + `__REDIRECT_NTH + ( +Ãx‰ow¬dl +, + +114 ( +__x +,  +__y +), + +115 +Ãxá” +è + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +122 #undeà +__MATHDECL_1 + + +123  + #__MATHDECL_2 +( +ty³ +, +funùiÚ +, +suffix +, +¬gs +, +®Ÿs +) \ + +124 +ty³ + + `__REDIRECT_NTH +( + `__MATH_PRECNAME +( +funùiÚ +, +suffix +), \ + +125 +¬gs +, +®Ÿs +) + + ) + +126  + #__MATHDECL_1 +( +ty³ +, +funùiÚ +, +suffix +, +¬gs +) \ + +127 + `__MATHDECL_2 +( +ty³ +, +funùiÚ +, +suffix +, +¬gs +, + `__CONCAT +(funùiÚ,suffix)) + + ) + +130 #iâdeà +_MlÚg_doubË_ + + +131  + #_MlÚg_doubË_ +  + + ) + +133  + #_MdoubË_ + +_MlÚg_doubË_ + + + ) + +134 #ifdeà +__STDC__ + + +135  + #__MATH_PRECNAME +( +Çme +, +r +èÇme## +l +## + ) +r + +137  + #__MATH_PRECNAME +( +Çme +, +r +èÇm +l + + ) +r + +139  + #_MdoubË_BEGIN_NAMESPACE + +__BEGIN_NAMESPACE_C99 + + + ) + +140  + #_MdoubË_END_NAMESPACE + +__END_NAMESPACE_C99 + + + ) + +141  + ~ + +142 #undeà +_MdoubË_ + + +143 #undeà +_MdoubË_BEGIN_NAMESPACE + + +144 #undeà +_MdoubË_END_NAMESPACE + + +145 #undeà +__MATH_PRECNAME + + +150 #undeà +__MATHDECL_1 + + +151 #undeà +__MATHDECL + + +152 #undeà +__MATHCALL + + +155 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN + + +157  +signgam +; + +162 #ifdeà +__USE_ISOC99 + + +200 +FP_NAN +, + +201  + #FP_NAN + +FP_NAN + + + ) + +202 +FP_INFINITE +, + +203  + #FP_INFINITE + +FP_INFINITE + + + ) + +204 +FP_ZERO +, + +205  + #FP_ZERO + +FP_ZERO + + + ) + +206 +FP_SUBNORMAL +, + +207  + #FP_SUBNORMAL + +FP_SUBNORMAL + + + ) + +208 +FP_NORMAL + + +209  + #FP_NORMAL + +FP_NORMAL + + + ) + +213 #ifdeà +__NO_LONG_DOUBLE_MATH + + +214  + #åþassify +( +x +) \ + +215 ( ( +x +è=ð (è? + `__åþassifyf + (xè: + `__åþassify + (x)) + + ) + +217  + #åþassify +( +x +) \ + +218 ( ( +x +) ==  () \ + +219 ? + `__åþassifyf + ( +x +) \ + +220 :  ( +x +) ==  () \ + +221 ? + `__åþassify + ( +x +è: + `__åþassifyl + (x)) + + ) + +225 #ifdeà +__NO_LONG_DOUBLE_MATH + + +226  + #signb™ +( +x +) \ + +227 ( ( +x +è=ð (è? + `__signb™f + (xè: + `__signb™ + (x)) + + ) + +229  + #signb™ +( +x +) \ + +230 ( ( +x +) ==  () \ + +231 ? + `__signb™f + ( +x +) \ + +232 :  ( +x +) ==  () \ + +233 ? + `__signb™ + ( +x +è: + `__signb™l + (x)) + + ) + +237 #ifdeà +__NO_LONG_DOUBLE_MATH + + +238  + #isfš™e +( +x +) \ + +239 ( ( +x +è=ð (è? + `__fš™ef + (xè: + `__fš™e + (x)) + + ) + +241  + #isfš™e +( +x +) \ + +242 ( ( +x +) ==  () \ + +243 ? + `__fš™ef + ( +x +) \ + +244 :  ( +x +) ==  () \ + +245 ? + `__fš™e + ( +x +è: + `__fš™– + (x)) + + ) + +249  + #i¢Üm® +( +x +è( + `åþassify + (xè=ð +FP_NORMAL +) + + ) + +253 #ifdeà +__NO_LONG_DOUBLE_MATH + + +254  + #i¢ª +( +x +) \ + +255 ( ( +x +è=ð (è? + `__i¢ªf + (xè: + `__i¢ª + (x)) + + ) + +257  + #i¢ª +( +x +) \ + +258 ( ( +x +) ==  () \ + +259 ? + `__i¢ªf + ( +x +) \ + +260 :  ( +x +) ==  () \ + +261 ? + `__i¢ª + ( +x +è: + `__i¢ªl + (x)) + + ) + +265 #ifdeà +__NO_LONG_DOUBLE_MATH + + +266  + #isšf +( +x +) \ + +267 ( ( +x +è=ð (è? + `__isšff + (xè: + `__isšf + (x)) + + ) + +269  + #isšf +( +x +) \ + +270 ( ( +x +) ==  () \ + +271 ? + `__isšff + ( +x +) \ + +272 :  ( +x +) ==  () \ + +273 ? + `__isšf + ( +x +è: + `__isšæ + (x)) + + ) + +277  + #MATH_ERRNO + 1 + + ) + +278  + #MATH_ERREXCEPT + 2 + + ) + +283 #iâdeà +__FAST_MATH__ + + +284  + #m©h_”rhªdlšg + ( +MATH_ERRNO + | +MATH_ERREXCEPT +) + + ) + +289 #ifdef +__USE_MISC + + +293 +_IEEE_ + = -1, + +294 +_SVID_ +, + +295 +_XOPEN_ +, + +296 +_POSIX_ +, + +297 +_ISOC_ + + +298 } + t_LIB_VERSION_TYPE +; + +303 +_LIB_VERSION_TYPE + +_LIB_VERSION +; + +307 #ifdeà +__USE_SVID + + +313 #ifdeà +__ýlu¥lus + + +314  +__exû±iÚ + + +316  +exû±iÚ + + +319  +ty³ +; + +320 * +Çme +; + +321  +¬g1 +; + +322  +¬g2 +; + +323  +»tv® +; + +324 + } +}; + +326 #ifdeà +__ýlu¥lus + + +327  + $m©h”r + ( +__exû±iÚ + * +__exc +è + `throw + (); + +329  + `m©h”r + ( +exû±iÚ + * +__exc +); + +332  + #X_TLOSS + 1.41484755040568800000e+16 + + ) + +335  + #DOMAIN + 1 + + ) + +336  + #SING + 2 + + ) + +337  + #OVERFLOW + 3 + + ) + +338  + #UNDERFLOW + 4 + + ) + +339  + #TLOSS + 5 + + ) + +340  + #PLOSS + 6 + + ) + +343  + #HUGE + 3.40282347e+38F + + ) + +347 #ifdeà +__USE_XOPEN + + +349  + #MAXFLOAT + 3.40282347e+38F + + ) + +356 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN + + +357  + #M_E + 2.7182818284590452354 + + ) + +358  + #M_LOG2E + 1.4426950408889634074 + + ) + +359  + #M_LOG10E + 0.43429448190325182765 + + ) + +360  + #M_LN2 + 0.69314718055994530942 + + ) + +361  + #M_LN10 + 2.30258509299404568402 + + ) + +362  + #M_PI + 3.14159265358979323846 + + ) + +363  + #M_PI_2 + 1.57079632679489661923 + + ) + +364  + #M_PI_4 + 0.78539816339744830962 + + ) + +365  + #M_1_PI + 0.31830988618379067154 + + ) + +366  + #M_2_PI + 0.63661977236758134308 + + ) + +367  + #M_2_SQRTPI + 1.12837916709551257390 + + ) + +368  + #M_SQRT2 + 1.41421356237309504880 + + ) + +369  + #M_SQRT1_2 + 0.70710678118654752440 + + ) + +375 #ifdeà +__USE_GNU + + +376  + #M_El + 2.7182818284590452353602874713526625L + + ) + +377  + #M_LOG2El + 1.4426950408889634073599246810018921L + + ) + +378  + #M_LOG10El + 0.4342944819032518276511289189166051L + + ) + +379  + #M_LN2l + 0.6931471805599453094172321214581766L + + ) + +380  + #M_LN10l + 2.3025850929940456840179914546843642L + + ) + +381  + #M_PIl + 3.1415926535897932384626433832795029L + + ) + +382  + #M_PI_2l + 1.5707963267948966192313216916397514L + + ) + +383  + #M_PI_4l + 0.7853981633974483096156608458198757L + + ) + +384  + #M_1_PIl + 0.3183098861837906715377675267450287L + + ) + +385  + #M_2_PIl + 0.6366197723675813430755350534900574L + + ) + +386  + #M_2_SQRTPIl + 1.1283791670955125738961589031215452L + + ) + +387  + #M_SQRT2l + 1.4142135623730950488016887242096981L + + ) + +388  + #M_SQRT1_2l + 0.7071067811865475244008443621048490L + + ) + +395 #ià +defšed + +__STRICT_ANSI__ + && !defšed +__NO_MATH_INLINES + + +396  + #__NO_MATH_INLINES + 1 + + ) + +399 #ià +defšed + +__USE_ISOC99 + && + `__GNUC_PREREQ +(2,97) + +406  + #isg»©” +( +x +, +y +è + `__bužtš_isg»©” +(x, y) + + ) + +407  + #isg»©”equ® +( +x +, +y +è + `__bužtš_isg»©”equ® +(x, y) + + ) + +408  + #i¦ess +( +x +, +y +è + `__bužtš_i¦ess +(x, y) + + ) + +409  + #i¦es£qu® +( +x +, +y +è + `__bužtš_i¦es£qu® +(x, y) + + ) + +410  + #i¦essg»©” +( +x +, +y +è + `__bužtš_i¦essg»©” +(x, y) + + ) + +411  + #isunÜd”ed +( +u +, +v +è + `__bužtš_isunÜd”ed +(u, v) + + ) + +415 #ifdeà +__USE_EXTERN_INLINES + + +416  + ~ + +419 #ifdeà +__USE_ISOC99 + + +423 #iâdeà +isg»©” + + +424  + #isg»©” +( +x +, +y +) \ + +425 ( +__ex‹nsiÚ__ + \ + +426 ({ + `__ty³of__ +( +x +è +__x + = (x); __ty³of__( +y +è +__y + = (y); \ + +427 ! + `isunÜd”ed + ( +__x +, +__y +è&& __x > __y; + } +})) + + ) + +431 #iâdeà +isg»©”equ® + + +432  + #isg»©”equ® +( +x +, +y +) \ + +433 ( +__ex‹nsiÚ__ + \ + +434 ({ + `__ty³of__ +( +x +è +__x + = (x); __ty³of__( +y +è +__y + = (y); \ + +435 ! + `isunÜd”ed + ( +__x +, +__y +è&& __x >ð__y; })) + + ) + +439 #iâdeà +i¦ess + + +440  + #i¦ess +( +x +, +y +) \ + +441 ( +__ex‹nsiÚ__ + \ + +442 ({ + `__ty³of__ +( +x +è +__x + = (x); __ty³of__( +y +è +__y + = (y); \ + +443 ! + `isunÜd”ed + ( +__x +, +__y +è&& __x < __y; })) + + ) + +447 #iâdeà +i¦es£qu® + + +448  + #i¦es£qu® +( +x +, +y +) \ + +449 ( +__ex‹nsiÚ__ + \ + +450 ({ + `__ty³of__ +( +x +è +__x + = (x); __ty³of__( +y +è +__y + = (y); \ + +451 ! + `isunÜd”ed + ( +__x +, +__y +è&& __x <ð__y; })) + + ) + +455 #iâdeà +i¦essg»©” + + +456  + #i¦essg»©” +( +x +, +y +) \ + +457 ( +__ex‹nsiÚ__ + \ + +458 ({ + `__ty³of__ +( +x +è +__x + = (x); __ty³of__( +y +è +__y + = (y); \ + +459 ! + `isunÜd”ed + ( +__x +, +__y +è&& (__x < __y || __y < __x); })) + + ) + +463 #iâdeà +isunÜd”ed + + +464  + #isunÜd”ed +( +u +, +v +) \ + +465 ( +__ex‹nsiÚ__ + \ + +466 ({ + `__ty³of__ +( +u +è +__u + = (u); __ty³of__( +v +è +__v + = (v); \ + +467 + `åþassify + ( +__u +è=ð +FP_NAN + || fpþassify ( +__v +è=ðFP_NAN; })) + + ) + +472 + g__END_DECLS + + + @/usr/include/pwd.h + +23 #iâdef +_PWD_H + + +24  + #_PWD_H + 1 + + ) + +26  + ~<ã©u»s.h +> + +28 + g__BEGIN_DECLS + + +30  + ~ + +32  + #__Ãed_size_t + + + ) + +33  + ~<¡ddef.h +> + +35 #ià +defšed + +__USE_XOPEN + || defšed +__USE_XOPEN2K + + +38 #iâdeà +__gid_t_defšed + + +39  +__gid_t + + tgid_t +; + +40  + #__gid_t_defšed + + + ) + +43 #iâdeà +__uid_t_defšed + + +44  +__uid_t + + tuid_t +; + +45  + #__uid_t_defšed + + + ) + +50  + s·sswd + + +52 * + mpw_Çme +; + +53 * + mpw_·sswd +; + +54 +__uid_t + + mpw_uid +; + +55 +__gid_t + + mpw_gid +; + +56 * + mpw_gecos +; + +57 * + mpw_dœ +; + +58 * + mpw_sh–l +; + +62 #ià +defšed + +__USE_SVID + || defšed +__USE_GNU + + +63  + #__Ãed_FILE + + + ) + +64  + ~<¡dio.h +> + +68 #ià +defšed + +__USE_SVID + || defšed +__USE_MISC + || defšed +__USE_XOPEN_EXTENDED + + +73  +£w’t + (); + +79  +’dpw’t + (); + +85  +·sswd + * +g‘pw’t + (); + +88 #ifdef +__USE_SVID + + +95  +·sswd + * +fg‘pw’t + ( +FILE + * +__¡»am +); + +103  +puw’t + ( +__cÚ¡ +  +·sswd + * +__»¡riù + +__p +, + +104 +FILE + * +__»¡riù + +__f +); + +111  +·sswd + * +g‘pwuid + ( +__uid_t + +__uid +); + +117  +·sswd + * +g‘pwÇm + ( +__cÚ¡ + * +__Çme +); + +119 #ià +defšed + +__USE_POSIX + || defšed +__USE_MISC + + +121 #ifdeà +__USE_MISC + + +124  + #NSS_BUFLEN_PASSWD + 1024 + + ) + +135 #ià +defšed + +__USE_SVID + || defšed +__USE_MISC + + +140  +g‘pw’t_r + ( +·sswd + * +__»¡riù + +__»suÉbuf +, + +141 * +__»¡riù + +__bufãr +, +size_t + +__buæ’ +, + +142  +·sswd + ** +__»¡riù + +__»suÉ +); + +145  +g‘pwuid_r + ( +__uid_t + +__uid +, + +146  +·sswd + * +__»¡riù + +__»suÉbuf +, + +147 * +__»¡riù + +__bufãr +, +size_t + +__buæ’ +, + +148  +·sswd + ** +__»¡riù + +__»suÉ +); + +150  +g‘pwÇm_r + ( +__cÚ¡ + * +__»¡riù + +__Çme +, + +151  +·sswd + * +__»¡riù + +__»suÉbuf +, + +152 * +__»¡riù + +__bufãr +, +size_t + +__buæ’ +, + +153  +·sswd + ** +__»¡riù + +__»suÉ +); + +156 #ifdef +__USE_SVID + + +164  +fg‘pw’t_r + ( +FILE + * +__»¡riù + +__¡»am +, + +165  +·sswd + * +__»¡riù + +__»suÉbuf +, + +166 * +__»¡riù + +__bufãr +, +size_t + +__buæ’ +, + +167  +·sswd + ** +__»¡riù + +__»suÉ +); + +172 #ifdeà +__USE_GNU + + +181  +g‘pw + ( +__uid_t + +__uid +, * +__bufãr +); + +184 + g__END_DECLS + + + @/usr/include/signal.h + +23 #iâdef +_SIGNAL_H + + +25 #ià! +defšed + +__Ãed_sig_©omic_t + && !defšed +__Ãed_sig£t_t + + +26  + #_SIGNAL_H + + + ) + +29  + ~<ã©u»s.h +> + +31 + g__BEGIN_DECLS + + +33  + ~ + +37 #ià +defšed + +__Ãed_sig_©omic_t + || defšed +_SIGNAL_H + + +38 #iâdeà +__sig_©omic_t_defšed + + +39  + #__sig_©omic_t_defšed + + + ) + +40 +__BEGIN_NAMESPACE_STD + + +41  +__sig_©omic_t + + tsig_©omic_t +; + +42 + g__END_NAMESPACE_STD + + +44 #undeà +__Ãed_sig_©omic_t + + +47 #ià +defšed + +__Ãed_sig£t_t + || (defšed +_SIGNAL_H + && defšed +__USE_POSIX +) + +48 #iâdeà +__sig£t_t_defšed + + +49  + #__sig£t_t_defšed + + + ) + +50  +__sig£t_t + + tsig£t_t +; + +52 #undeà +__Ãed_sig£t_t + + +55 #ifdeà +_SIGNAL_H + + +57  + ~ + +58  + ~ + +60 #ià +defšed + +__USE_XOPEN + || defšed +__USE_XOPEN2K + + +61 #iâdeà +__pid_t_defšed + + +62  +__pid_t + + tpid_t +; + +63  + #__pid_t_defšed + + + ) + +65 #ifdeà +__USE_XOPEN + + +67 #iâdeà +__uid_t_defšed + + +68  +__uid_t + + tuid_t +; + +69  + #__uid_t_defšed + + + ) + +73 #ifdeà +__USE_POSIX199309 + + +75  + #__Ãed_time¥ec + + + ) + +76  + ~ + +79  + ~ + +84 (* + t__sighªdËr_t +) (); + +89 +__sighªdËr_t + + $__sysv_sigÇl + ( +__sig +, +__sighªdËr_t + +__hªdËr +) + +90 +__THROW +; + +91 #ifdeà +__USE_GNU + + +92 +__sighªdËr_t + + $sysv_sigÇl + ( +__sig +, +__sighªdËr_t + +__hªdËr +) + +93 +__THROW +; + +99 +__BEGIN_NAMESPACE_STD + + +100 #ifdeà +__USE_BSD + + +101 +__sighªdËr_t + + $sigÇl + ( +__sig +, +__sighªdËr_t + +__hªdËr +) + +102 +__THROW +; + +105 #ifdeà +__REDIRECT_NTH + + +106 +__sighªdËr_t + + `__REDIRECT_NTH + ( +sigÇl +, + +107 ( +__sig +, +__sighªdËr_t + +__hªdËr +), + +108 +__sysv_sigÇl +); + +110  + #sigÇl + +__sysv_sigÇl + + + ) + +113 +__END_NAMESPACE_STD + + +115 #ifdeà +__USE_XOPEN + + +118 +__sighªdËr_t + + $bsd_sigÇl + ( +__sig +, +__sighªdËr_t + +__hªdËr +) + +119 +__THROW +; + +125 #ifdeà +__USE_POSIX + + +126  + $kžl + ( +__pid_t + +__pid +,  +__sig +è +__THROW +; + +129 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + + +133  + $kžÍg + ( +__pid_t + +__pg½ +,  +__sig +è +__THROW +; + +136 +__BEGIN_NAMESPACE_STD + + +138  + $¿i£ + ( +__sig +è +__THROW +; + +139 +__END_NAMESPACE_STD + + +141 #ifdeà +__USE_SVID + + +143 +__sighªdËr_t + + $ssigÇl + ( +__sig +, +__sighªdËr_t + +__hªdËr +) + +144 +__THROW +; + +145  + $gsigÇl + ( +__sig +è +__THROW +; + +148 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN2K + + +150  + `psigÇl + ( +__sig +, +__cÚ¡ + * +__s +); + +153 #ifdeà +__USE_XOPEN2K + + +155  + `psigšfo + ( +__cÚ¡ + +sigšfo_t + * +__pšfo +, __cÚ¡ * +__s +); + +168  + `__sig·u£ + ( +__sig_Ü_mask +,  +__is_sig +); + +170 #ifdeà +__FAVOR_BSD + + +173  + $sig·u£ + ( +__mask +è +__THROW + +__©Œibu‹_d•»ÿ‹d__ +; + +175 #ifdeà +__USE_XOPEN + + +176 #ifdeà +__GNUC__ + + +177  + $sig·u£ + ( +__sig +è + `__asm__ + ("__xpg_sigpause"); + +180  + #sig·u£ +( +sig +è + `__sig·u£ + ((sig), 1) + + ) + +186 #ifdeà +__USE_BSD + + +193  + #sigmask +( +sig +è + `__sigmask +(sig) + + ) + +196  + $sigblock + ( +__mask +è +__THROW + +__©Œibu‹_d•»ÿ‹d__ +; + +199  + $sig£tmask + ( +__mask +è +__THROW + +__©Œibu‹_d•»ÿ‹d__ +; + +202  + $sigg‘mask + (è +__THROW + +__©Œibu‹_d•»ÿ‹d__ +; + +206 #ifdeà +__USE_MISC + + +207  + #NSIG + +_NSIG + + + ) + +210 #ifdeà +__USE_GNU + + +211  +__sighªdËr_t + + tsighªdËr_t +; + +215 #ifdeà +__USE_BSD + + +216  +__sighªdËr_t + + tsig_t +; + +219 #ifdeà +__USE_POSIX + + +222  + $sigem±y£t + ( +sig£t_t + * +__£t +è +__THROW + + `__nÚnuÎ + ((1)); + +225  + $sigfžl£t + ( +sig£t_t + * +__£t +è +__THROW + + `__nÚnuÎ + ((1)); + +228  + $sigadd£t + ( +sig£t_t + * +__£t +,  +__signo +è +__THROW + + `__nÚnuÎ + ((1)); + +231  + $sigd–£t + ( +sig£t_t + * +__£t +,  +__signo +è +__THROW + + `__nÚnuÎ + ((1)); + +234  + $sigismemb” + ( +__cÚ¡ + +sig£t_t + * +__£t +,  +__signo +) + +235 +__THROW + + `__nÚnuÎ + ((1)); + +237 #ifdeà +__USE_GNU + + +239  + $sigi£m±y£t + ( +__cÚ¡ + +sig£t_t + * +__£t +è +__THROW + + `__nÚnuÎ + ((1)); + +242  + $sigªd£t + ( +sig£t_t + * +__£t +, +__cÚ¡ + sig£t_ˆ* +__Ëá +, + +243 +__cÚ¡ + +sig£t_t + * +__right +è +__THROW + + `__nÚnuÎ + ((1, 2, 3)); + +246  + $sigÜ£t + ( +sig£t_t + * +__£t +, +__cÚ¡ + sig£t_ˆ* +__Ëá +, + +247 +__cÚ¡ + +sig£t_t + * +__right +è +__THROW + + `__nÚnuÎ + ((1, 2, 3)); + +252  + ~ + +255  + $sig´ocmask + ( +__how +, +__cÚ¡ + +sig£t_t + * +__»¡riù + +__£t +, + +256 +sig£t_t + * +__»¡riù + +__o£t +è +__THROW +; + +263  + $sigsu¥’d + ( +__cÚ¡ + +sig£t_t + * +__£t +è + `__nÚnuÎ + ((1)); + +266  + $sigaùiÚ + ( +__sig +, +__cÚ¡ +  +sigaùiÚ + * +__»¡riù + +__aù +, + +267  +sigaùiÚ + * +__»¡riù + +__ßù +è +__THROW +; + +270  + $sig³ndšg + ( +sig£t_t + * +__£t +è +__THROW + + `__nÚnuÎ + ((1)); + +277  + $sigwa™ + ( +__cÚ¡ + +sig£t_t + * +__»¡riù + +__£t +, *__»¡riù +__sig +) + +278 + `__nÚnuÎ + ((1, 2)); + +280 #ifdeà +__USE_POSIX199309 + + +285  + $sigwa™šfo + ( +__cÚ¡ + +sig£t_t + * +__»¡riù + +__£t +, + +286 +sigšfo_t + * +__»¡riù + +__šfo +è + `__nÚnuÎ + ((1)); + +293  + $sigtimedwa™ + ( +__cÚ¡ + +sig£t_t + * +__»¡riù + +__£t +, + +294 +sigšfo_t + * +__»¡riù + +__šfo +, + +295 +__cÚ¡ +  +time¥ec + * +__»¡riù + +__timeout +) + +296 + `__nÚnuÎ + ((1)); + +300  + $sigqueue + ( +__pid_t + +__pid +,  +__sig +, +__cÚ¡ +  +sigv® + +__v® +) + +301 +__THROW +; + +306 #ifdeà +__USE_BSD + + +310 +__cÚ¡ + *__cÚ¡ +_sys_sigli¡ +[ +_NSIG +]; + +311 +__cÚ¡ + *__cÚ¡ +sys_sigli¡ +[ +_NSIG +]; + +314  + ssigvec + + +316 +__sighªdËr_t + +sv_hªdËr +; + +317  +sv_mask +; + +319  +sv_æags +; + +320  + #sv_Ú¡ack + +sv_æags + + + ) + +324  + #SV_ONSTACK + (1 << 0) + + ) + +325  + #SV_INTERRUPT + (1 << 1) + + ) + +326  + #SV_RESETHAND + (1 << 2) + + ) + +334  + $sigvec + ( +__sig +, +__cÚ¡ +  +sigvec + * +__vec +, + +335  +sigvec + * +__ovec +è +__THROW +; + +339  + ~ + +342  + $sig»tuº + ( +sigcÚ‹xt + * +__sý +è +__THROW +; + +347 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + || defšed +__USE_XOPEN2K8 + + +348  + #__Ãed_size_t + + + ) + +349  + ~<¡ddef.h +> + +354  + $sigš‹¼u± + ( +__sig +,  +__š‹¼u± +è +__THROW +; + +356  + ~ + +357 #ià +defšed + +__USE_XOPEN + || defšed +__USE_XOPEN2K8 + + +359  + ~ + +365  + $sig¡ack + ( +sig¡ack + * +__ss +, sig¡ack * +__oss +) + +366 +__THROW + +__©Œibu‹_d•»ÿ‹d__ +; + +370  + $sig®t¡ack + ( +__cÚ¡ +  +sig®t¡ack + * +__»¡riù + +__ss +, + +371  +sig®t¡ack + * +__»¡riù + +__oss +è +__THROW +; + +375 #ifdeà +__USE_XOPEN_EXTENDED + + +379  + $sighÞd + ( +__sig +è +__THROW +; + +382  + $sig»l£ + ( +__sig +è +__THROW +; + +385  + $sigignÜe + ( +__sig +è +__THROW +; + +388 +__sighªdËr_t + + $sig£t + ( +__sig +, +__sighªdËr_t + +__di¥ +è +__THROW +; + +391 #ià +defšed + +__USE_POSIX199506 + || defšed +__USE_UNIX98 + + +394  + ~ + +395  + ~ + +402  + $__libc_cu¼’t_sig¹mš + (è +__THROW +; + +404  + $__libc_cu¼’t_sig¹max + (è +__THROW +; + +408 +__END_DECLS + + + @/usr/include/stdio.h + +24 #iâdeà +_STDIO_H + + +26 #ià! +defšed + +__Ãed_FILE + && !defšed +__Ãed___FILE + + +27  + #_STDIO_H + 1 + + ) + +28  + ~<ã©u»s.h +> + +30 + g__BEGIN_DECLS + + +32  + #__Ãed_size_t + + + ) + +33  + #__Ãed_NULL + + + ) + +34  + ~<¡ddef.h +> + +36  + ~ + +37  + #__Ãed_FILE + + + ) + +38  + #__Ãed___FILE + + + ) + +42 #ià! +defšed + +__FILE_defšed + && defšed +__Ãed_FILE + + +45  + g_IO_FILE +; + +47 +__BEGIN_NAMESPACE_STD + + +49  +_IO_FILE + + tFILE +; + +50 + g__END_NAMESPACE_STD + + +51 #ià +defšed + +__USE_LARGEFILE64 + || defšed +__USE_SVID + || defšed +__USE_POSIX + \ + +52 || +defšed + + g__USE_BSD + || defšed + g__USE_ISOC99 + || defšed + g__USE_XOPEN + \ + +53 || +defšed + +__USE_POSIX2 + + +54 + $__USING_NAMESPACE_STD +( +FILE +) + +57  + #__FILE_defšed + 1 + + ) + +59 #undeà +__Ãed_FILE + + +62 #ià! +defšed + +____FILE_defšed + && defšed +__Ãed___FILE + + +65  +_IO_FILE + + t__FILE +; + +67  + #____FILE_defšed + 1 + + ) + +69 #undeà +__Ãed___FILE + + +72 #ifdef +_STDIO_H + + +73  + #_STDIO_USES_IOSTREAM + + + ) + +75  + ~ + +77 #ià +defšed + +__USE_XOPEN + || defšed +__USE_XOPEN2K8 + + +78 #ifdeà +__GNUC__ + + +79 #iâdeà +_VA_LIST_DEFINED + + +80  +_G_va_li¡ + + tva_li¡ +; + +81  + #_VA_LIST_DEFINED + + + ) + +84  + ~<¡d¬g.h +> + +88 #ifdeà +__USE_XOPEN2K8 + + +89 #iâdeà +__off_t_defšed + + +90 #iâdeà +__USE_FILE_OFFSET64 + + +91  +__off_t + + toff_t +; + +93  +__off64_t + + toff_t +; + +95  + #__off_t_defšed + + + ) + +97 #ià +defšed + +__USE_LARGEFILE64 + && !defšed +__off64_t_defšed + + +98  +__off64_t + + toff64_t +; + +99  + #__off64_t_defšed + + + ) + +102 #iâdeà +__ssize_t_defšed + + +103  +__ssize_t + + tssize_t +; + +104  + #__ssize_t_defšed + + + ) + +109 +__BEGIN_NAMESPACE_STD + + +110 #iâdeà +__USE_FILE_OFFSET64 + + +111  +_G_åos_t + + tåos_t +; + +113  +_G_åos64_t + + tåos_t +; + +115 +__END_NAMESPACE_STD + + +116 #ifdeà +__USE_LARGEFILE64 + + +117  +_G_åos64_t + + tåos64_t +; + +121  + #_IOFBF + 0 + + ) + +122  + #_IOLBF + 1 + + ) + +123  + #_IONBF + 2 + + ) + +127 #iâdeà +BUFSIZ + + +128  + #BUFSIZ + +_IO_BUFSIZ + + + ) + +134 #iâdeà +EOF + + +135  + #EOF + (-1) + + ) + +141  + #SEEK_SET + 0 + + ) + +142  + #SEEK_CUR + 1 + + ) + +143  + #SEEK_END + 2 + + ) + +146 #ià +defšed + +__USE_SVID + || defšed +__USE_XOPEN + + +148  + #P_tmpdœ + "/tmp" + + ) + +161  + ~ + +165  +_IO_FILE + * +¡dš +; + +166  +_IO_FILE + * +¡dout +; + +167  +_IO_FILE + * +¡d”r +; + +169  + #¡dš + +¡dš + + + ) + +170  + #¡dout + +¡dout + + + ) + +171  + #¡d”r + +¡d”r + + + ) + +173 +__BEGIN_NAMESPACE_STD + + +175  + $»move + ( +__cÚ¡ + * +__fž’ame +è +__THROW +; + +177  + $»Çme + ( +__cÚ¡ + * +__Þd +, __cÚ¡ * +__Ãw +è +__THROW +; + +178 +__END_NAMESPACE_STD + + +180 #ifdeà +__USE_ATFILE + + +182  + $»Çm—t + ( +__Þdfd +, +__cÚ¡ + * +__Þd +,  +__Ãwfd +, + +183 +__cÚ¡ + * +__Ãw +è +__THROW +; + +186 +__BEGIN_NAMESPACE_STD + + +191 #iâdeà +__USE_FILE_OFFSET64 + + +192 +FILE + * + $tmpfže + (è +__wur +; + +194 #ifdeà +__REDIRECT + + +195 +FILE + * + `__REDIRECT + ( +tmpfže +, (), +tmpfže64 +è +__wur +; + +197  + #tmpfže + +tmpfže64 + + + ) + +201 #ifdeà +__USE_LARGEFILE64 + + +202 +FILE + * + $tmpfže64 + (è +__wur +; + +206 * + $tm²am + (* +__s +è +__THROW + +__wur +; + +207 +__END_NAMESPACE_STD + + +209 #ifdeà +__USE_MISC + + +212 * + $tm²am_r + (* +__s +è +__THROW + +__wur +; + +216 #ià +defšed + +__USE_SVID + || defšed +__USE_XOPEN + + +224 * + $‹m²am + ( +__cÚ¡ + * +__dœ +, __cÚ¡ * +__pfx +) + +225 +__THROW + +__©Œibu‹_m®loc__ + +__wur +; + +229 +__BEGIN_NAMESPACE_STD + + +234  + `fþo£ + ( +FILE + * +__¡»am +); + +239  + `fæush + ( +FILE + * +__¡»am +); + +240 +__END_NAMESPACE_STD + + +242 #ifdeà +__USE_MISC + + +249  + `fæush_uÆocked + ( +FILE + * +__¡»am +); + +252 #ifdeà +__USE_GNU + + +259  + `fþo£®l + (); + +263 +__BEGIN_NAMESPACE_STD + + +264 #iâdeà +__USE_FILE_OFFSET64 + + +269 +FILE + * + $fÝ’ + ( +__cÚ¡ + * +__»¡riù + +__fž’ame +, + +270 +__cÚ¡ + * +__»¡riù + +__modes +è +__wur +; + +275 +FILE + * + $äeÝ’ + ( +__cÚ¡ + * +__»¡riù + +__fž’ame +, + +276 +__cÚ¡ + * +__»¡riù + +__modes +, + +277 +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +279 #ifdeà +__REDIRECT + + +280 +FILE + * + `__REDIRECT + ( +fÝ’ +, ( +__cÚ¡ + * +__»¡riù + +__fž’ame +, + +281 +__cÚ¡ + * +__»¡riù + +__modes +), +fÝ’64 +) + +282 +__wur +; + +283 +FILE + * + `__REDIRECT + ( +äeÝ’ +, ( +__cÚ¡ + * +__»¡riù + +__fž’ame +, + +284 +__cÚ¡ + * +__»¡riù + +__modes +, + +285 +FILE + * +__»¡riù + +__¡»am +), +äeÝ’64 +) + +286 +__wur +; + +288  + #fÝ’ + +fÝ’64 + + + ) + +289  + #äeÝ’ + +äeÝ’64 + + + ) + +292 +__END_NAMESPACE_STD + + +293 #ifdeà +__USE_LARGEFILE64 + + +294 +FILE + * + $fÝ’64 + ( +__cÚ¡ + * +__»¡riù + +__fž’ame +, + +295 +__cÚ¡ + * +__»¡riù + +__modes +è +__wur +; + +296 +FILE + * + $äeÝ’64 + ( +__cÚ¡ + * +__»¡riù + +__fž’ame +, + +297 +__cÚ¡ + * +__»¡riù + +__modes +, + +298 +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +301 #ifdef +__USE_POSIX + + +303 +FILE + * + $fdÝ’ + ( +__fd +, +__cÚ¡ + * +__modes +è +__THROW + +__wur +; + +306 #ifdef +__USE_GNU + + +309 +FILE + * + $fÝ’cook› + (* +__»¡riù + +__magic_cook› +, + +310 +__cÚ¡ + * +__»¡riù + +__modes +, + +311 +_IO_cook›_io_funùiÚs_t + +__io_funcs +è +__THROW + +__wur +; + +314 #ifdeà +__USE_XOPEN2K8 + + +316 +FILE + * + $fmemÝ’ + (* +__s +, +size_t + +__Ën +, +__cÚ¡ + * +__modes +) + +317 +__THROW + +__wur +; + +322 +FILE + * + $Ý’_mem¡»am + (** +__buæoc +, +size_t + * +__siz–oc +è +__THROW + +__wur +; + +326 +__BEGIN_NAMESPACE_STD + + +329  + $£tbuf + ( +FILE + * +__»¡riù + +__¡»am +, *__»¡riù +__buf +è +__THROW +; + +333  + $£tvbuf + ( +FILE + * +__»¡riù + +__¡»am +, *__»¡riù +__buf +, + +334  +__modes +, +size_t + +__n +è +__THROW +; + +335 +__END_NAMESPACE_STD + + +337 #ifdef +__USE_BSD + + +340  + $£tbufãr + ( +FILE + * +__»¡riù + +__¡»am +, *__»¡riù +__buf +, + +341 +size_t + +__size +è +__THROW +; + +344  + $£Žšebuf + ( +FILE + * +__¡»am +è +__THROW +; + +348 +__BEGIN_NAMESPACE_STD + + +353  + `årštf + ( +FILE + * +__»¡riù + +__¡»am +, + +354 +__cÚ¡ + * +__»¡riù + +__fÜm© +, ...); + +359  + `´štf + ( +__cÚ¡ + * +__»¡riù + +__fÜm© +, ...); + +361  + $¥rštf + (* +__»¡riù + +__s +, + +362 +__cÚ¡ + * +__»¡riù + +__fÜm© +, ...è +__THROW +; + +368  + `vårštf + ( +FILE + * +__»¡riù + +__s +, +__cÚ¡ + *__»¡riù +__fÜm© +, + +369 +_G_va_li¡ + +__¬g +); + +374  + `v´štf + ( +__cÚ¡ + * +__»¡riù + +__fÜm© +, +_G_va_li¡ + +__¬g +); + +376  + $v¥rštf + (* +__»¡riù + +__s +, +__cÚ¡ + *__»¡riù +__fÜm© +, + +377 +_G_va_li¡ + +__¬g +è +__THROW +; + +378 +__END_NAMESPACE_STD + + +380 #ià +defšed + +__USE_BSD + || defšed +__USE_ISOC99 + || defšed +__USE_UNIX98 + + +381 +__BEGIN_NAMESPACE_C99 + + +383  + $¢´štf + (* +__»¡riù + +__s +, +size_t + +__maxËn +, + +384 +__cÚ¡ + * +__»¡riù + +__fÜm© +, ...) + +385 +__THROW + + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__´štf__ +, 3, 4))); + +387  + $v¢´štf + (* +__»¡riù + +__s +, +size_t + +__maxËn +, + +388 +__cÚ¡ + * +__»¡riù + +__fÜm© +, +_G_va_li¡ + +__¬g +) + +389 +__THROW + + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__´štf__ +, 3, 0))); + +390 +__END_NAMESPACE_C99 + + +393 #ifdeà +__USE_GNU + + +396  + $va¥rštf + (** +__»¡riù + +__±r +, +__cÚ¡ + *__»¡riù +__f +, + +397 +_G_va_li¡ + +__¬g +) + +398 +__THROW + + `__©Œibu‹__ + (( + $__fÜm©__ + ( +__´štf__ +, 2, 0))è +__wur +; + +399  + $__a¥rštf + (** +__»¡riù + +__±r +, + +400 +__cÚ¡ + * +__»¡riù + +__fmt +, ...) + +401 +__THROW + + `__©Œibu‹__ + (( + $__fÜm©__ + ( +__´štf__ +, 2, 3))è +__wur +; + +402  + $a¥rštf + (** +__»¡riù + +__±r +, + +403 +__cÚ¡ + * +__»¡riù + +__fmt +, ...) + +404 +__THROW + + `__©Œibu‹__ + (( + $__fÜm©__ + ( +__´štf__ +, 2, 3))è +__wur +; + +407 #ifdeà +__USE_XOPEN2K8 + + +414  + $vd´štf + ( +__fd +, +__cÚ¡ + * +__»¡riù + +__fmt +, + +415 +_G_va_li¡ + +__¬g +) + +416 + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__´štf__ +, 2, 0))); + +417  + $d´štf + ( +__fd +, +__cÚ¡ + * +__»¡riù + +__fmt +, ...) + +418 + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__´štf__ +, 2, 3))); + +422 +__BEGIN_NAMESPACE_STD + + +427  + $fsÿnf + ( +FILE + * +__»¡riù + +__¡»am +, + +428 +__cÚ¡ + * +__»¡riù + +__fÜm© +, ...è +__wur +; + +433  + $sÿnf + ( +__cÚ¡ + * +__»¡riù + +__fÜm© +, ...è +__wur +; + +435  + $ssÿnf + ( +__cÚ¡ + * +__»¡riù + +__s +, + +436 +__cÚ¡ + * +__»¡riù + +__fÜm© +, ...è +__THROW +; + +438 #ià +defšed + +__USE_ISOC99 + && !defšed +__USE_GNU + \ + +439 && (! +defšed + +__LDBL_COMPAT + || !defšed +__REDIRECT +) \ + +440 && ( +defšed + +__STRICT_ANSI__ + || defšed +__USE_XOPEN2K +) + +441 #ifdeà +__REDIRECT + + +445  + `__REDIRECT + ( +fsÿnf +, ( +FILE + * +__»¡riù + +__¡»am +, + +446 +__cÚ¡ + * +__»¡riù + +__fÜm© +, ...), + +447 +__isoc99_fsÿnf +è +__wur +; + +448  + `__REDIRECT + ( +sÿnf +, ( +__cÚ¡ + * +__»¡riù + +__fÜm© +, ...), + +449 +__isoc99_sÿnf +è +__wur +; + +450  + `__REDIRECT_NTH + ( +ssÿnf +, ( +__cÚ¡ + * +__»¡riù + +__s +, + +451 +__cÚ¡ + * +__»¡riù + +__fÜm© +, ...), + +452 +__isoc99_ssÿnf +); + +454  + $__isoc99_fsÿnf + ( +FILE + * +__»¡riù + +__¡»am +, + +455 +__cÚ¡ + * +__»¡riù + +__fÜm© +, ...è +__wur +; + +456  + $__isoc99_sÿnf + ( +__cÚ¡ + * +__»¡riù + +__fÜm© +, ...è +__wur +; + +457  + $__isoc99_ssÿnf + ( +__cÚ¡ + * +__»¡riù + +__s +, + +458 +__cÚ¡ + * +__»¡riù + +__fÜm© +, ...è +__THROW +; + +459  + #fsÿnf + +__isoc99_fsÿnf + + + ) + +460  + #sÿnf + +__isoc99_sÿnf + + + ) + +461  + #ssÿnf + +__isoc99_ssÿnf + + + ) + +465 +__END_NAMESPACE_STD + + +467 #ifdef +__USE_ISOC99 + + +468 +__BEGIN_NAMESPACE_C99 + + +473  + $vfsÿnf + ( +FILE + * +__»¡riù + +__s +, +__cÚ¡ + *__»¡riù +__fÜm© +, + +474 +_G_va_li¡ + +__¬g +) + +475 + `__©Œibu‹__ + (( + $__fÜm©__ + ( +__sÿnf__ +, 2, 0))è +__wur +; + +481  + $vsÿnf + ( +__cÚ¡ + * +__»¡riù + +__fÜm© +, +_G_va_li¡ + +__¬g +) + +482 + `__©Œibu‹__ + (( + $__fÜm©__ + ( +__sÿnf__ +, 1, 0))è +__wur +; + +485  + $vssÿnf + ( +__cÚ¡ + * +__»¡riù + +__s +, + +486 +__cÚ¡ + * +__»¡riù + +__fÜm© +, +_G_va_li¡ + +__¬g +) + +487 +__THROW + + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__sÿnf__ +, 2, 0))); + +489 #ià! +defšed + +__USE_GNU + \ + +490 && (! +defšed + +__LDBL_COMPAT + || !defšed +__REDIRECT +) \ + +491 && ( +defšed + +__STRICT_ANSI__ + || defšed +__USE_XOPEN2K +) + +492 #ifdeà +__REDIRECT + + +496  + `__REDIRECT + ( +vfsÿnf +, + +497 ( +FILE + * +__»¡riù + +__s +, + +498 +__cÚ¡ + * +__»¡riù + +__fÜm© +, +_G_va_li¡ + +__¬g +), + +499 +__isoc99_vfsÿnf +) + +500 + `__©Œibu‹__ + (( + $__fÜm©__ + ( +__sÿnf__ +, 2, 0))è +__wur +; + +501  + `__REDIRECT + ( +vsÿnf +, ( +__cÚ¡ + * +__»¡riù + +__fÜm© +, + +502 +_G_va_li¡ + +__¬g +), +__isoc99_vsÿnf +) + +503 + `__©Œibu‹__ + (( + $__fÜm©__ + ( +__sÿnf__ +, 1, 0))è +__wur +; + +504  + `__REDIRECT_NTH + ( +vssÿnf +, + +505 ( +__cÚ¡ + * +__»¡riù + +__s +, + +506 +__cÚ¡ + * +__»¡riù + +__fÜm© +, + +507 +_G_va_li¡ + +__¬g +), +__isoc99_vssÿnf +) + +508 + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__sÿnf__ +, 2, 0))); + +510  + $__isoc99_vfsÿnf + ( +FILE + * +__»¡riù + +__s +, + +511 +__cÚ¡ + * +__»¡riù + +__fÜm© +, + +512 +_G_va_li¡ + +__¬g +è +__wur +; + +513  + $__isoc99_vsÿnf + ( +__cÚ¡ + * +__»¡riù + +__fÜm© +, + +514 +_G_va_li¡ + +__¬g +è +__wur +; + +515  + $__isoc99_vssÿnf + ( +__cÚ¡ + * +__»¡riù + +__s +, + +516 +__cÚ¡ + * +__»¡riù + +__fÜm© +, + +517 +_G_va_li¡ + +__¬g +è +__THROW +; + +518  + #vfsÿnf + +__isoc99_vfsÿnf + + + ) + +519  + #vsÿnf + +__isoc99_vsÿnf + + + ) + +520  + #vssÿnf + +__isoc99_vssÿnf + + + ) + +524 +__END_NAMESPACE_C99 + + +528 +__BEGIN_NAMESPACE_STD + + +533  + `fg‘c + ( +FILE + * +__¡»am +); + +534  + `g‘c + ( +FILE + * +__¡»am +); + +540  + `g‘ch¬ + (); + +541 +__END_NAMESPACE_STD + + +545  + #g‘c +( +_å +è + `_IO_g‘c + (_å) + + ) + +547 #ià +defšed + +__USE_POSIX + || defšed +__USE_MISC + + +552  + `g‘c_uÆocked + ( +FILE + * +__¡»am +); + +553  + `g‘ch¬_uÆocked + (); + +556 #ifdeà +__USE_MISC + + +563  + `fg‘c_uÆocked + ( +FILE + * +__¡»am +); + +567 +__BEGIN_NAMESPACE_STD + + +575  + `åutc + ( +__c +, +FILE + * +__¡»am +); + +576  + `putc + ( +__c +, +FILE + * +__¡»am +); + +582  + `putch¬ + ( +__c +); + +583 +__END_NAMESPACE_STD + + +587  + #putc +( +_ch +, +_å +è + `_IO_putc + (_ch, _å) + + ) + +589 #ifdeà +__USE_MISC + + +596  + `åutc_uÆocked + ( +__c +, +FILE + * +__¡»am +); + +599 #ià +defšed + +__USE_POSIX + || defšed +__USE_MISC + + +604  + `putc_uÆocked + ( +__c +, +FILE + * +__¡»am +); + +605  + `putch¬_uÆocked + ( +__c +); + +609 #ià +defšed + +__USE_SVID + || defšed +__USE_MISC + \ + +610 || ( +defšed + +__USE_XOPEN + && !defšed +__USE_XOPEN2K +) + +612  + `g‘w + ( +FILE + * +__¡»am +); + +615  + `putw + ( +__w +, +FILE + * +__¡»am +); + +619 +__BEGIN_NAMESPACE_STD + + +624 * + $fg‘s + (* +__»¡riù + +__s +,  +__n +, +FILE + *__»¡riù +__¡»am +) + +625 +__wur +; + +632 * + $g‘s + (* +__s +è +__wur +; + +633 +__END_NAMESPACE_STD + + +635 #ifdeà +__USE_GNU + + +642 * + $fg‘s_uÆocked + (* +__»¡riù + +__s +,  +__n +, + +643 +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +647 #ifdef +__USE_XOPEN2K8 + + +658 +_IO_ssize_t + + $__g‘d–im + (** +__»¡riù + +__lš•Œ +, + +659 +size_t + * +__»¡riù + +__n +,  +__d–im™” +, + +660 +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +661 +_IO_ssize_t + + $g‘d–im + (** +__»¡riù + +__lš•Œ +, + +662 +size_t + * +__»¡riù + +__n +,  +__d–im™” +, + +663 +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +671 +_IO_ssize_t + + $g‘lše + (** +__»¡riù + +__lš•Œ +, + +672 +size_t + * +__»¡riù + +__n +, + +673 +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +677 +__BEGIN_NAMESPACE_STD + + +682  + `åuts + ( +__cÚ¡ + * +__»¡riù + +__s +, +FILE + *__»¡riù +__¡»am +); + +688  + `puts + ( +__cÚ¡ + * +__s +); + +695  + `ung‘c + ( +__c +, +FILE + * +__¡»am +); + +702 +size_t + + $ä—d + (* +__»¡riù + +__±r +, +size_t + +__size +, + +703 +size_t + +__n +, +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +708 +size_t + + $fwr™e + ( +__cÚ¡ + * +__»¡riù + +__±r +, +size_t + +__size +, + +709 +size_t + +__n +, +FILE + * +__»¡riù + +__s +è +__wur +; + +710 +__END_NAMESPACE_STD + + +712 #ifdeà +__USE_GNU + + +719  + `åuts_uÆocked + ( +__cÚ¡ + * +__»¡riù + +__s +, + +720 +FILE + * +__»¡riù + +__¡»am +); + +723 #ifdeà +__USE_MISC + + +730 +size_t + + $ä—d_uÆocked + (* +__»¡riù + +__±r +, +size_t + +__size +, + +731 +size_t + +__n +, +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +732 +size_t + + $fwr™e_uÆocked + ( +__cÚ¡ + * +__»¡riù + +__±r +, +size_t + +__size +, + +733 +size_t + +__n +, +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +737 +__BEGIN_NAMESPACE_STD + + +742  + `f£ek + ( +FILE + * +__¡»am +,  +__off +,  +__wh’û +); + +747  + $á–l + ( +FILE + * +__¡»am +è +__wur +; + +752  + `»wšd + ( +FILE + * +__¡»am +); + +753 +__END_NAMESPACE_STD + + +760 #ià +defšed + +__USE_LARGEFILE + || defšed +__USE_XOPEN2K + + +761 #iâdeà +__USE_FILE_OFFSET64 + + +766  + `f£eko + ( +FILE + * +__¡»am +, +__off_t + +__off +,  +__wh’û +); + +771 +__off_t + + $á–lo + ( +FILE + * +__¡»am +è +__wur +; + +773 #ifdeà +__REDIRECT + + +774  + `__REDIRECT + ( +f£eko +, + +775 ( +FILE + * +__¡»am +, +__off64_t + +__off +,  +__wh’û +), + +776 +f£eko64 +); + +777 +__off64_t + + `__REDIRECT + ( +á–lo +, ( +FILE + * +__¡»am +), +á–lo64 +); + +779  + #f£eko + +f£eko64 + + + ) + +780  + #á–lo + +á–lo64 + + + ) + +785 +__BEGIN_NAMESPACE_STD + + +786 #iâdeà +__USE_FILE_OFFSET64 + + +791  + `fg‘pos + ( +FILE + * +__»¡riù + +__¡»am +, +åos_t + *__»¡riù +__pos +); + +796  + `f£os + ( +FILE + * +__¡»am +, +__cÚ¡ + +åos_t + * +__pos +); + +798 #ifdeà +__REDIRECT + + +799  + `__REDIRECT + ( +fg‘pos +, ( +FILE + * +__»¡riù + +__¡»am +, + +800 +åos_t + * +__»¡riù + +__pos +), +fg‘pos64 +); + +801  + `__REDIRECT + ( +f£os +, + +802 ( +FILE + * +__¡»am +, +__cÚ¡ + +åos_t + * +__pos +), +f£os64 +); + +804  + #fg‘pos + +fg‘pos64 + + + ) + +805  + #f£os + +f£os64 + + + ) + +808 +__END_NAMESPACE_STD + + +810 #ifdeà +__USE_LARGEFILE64 + + +811  + `f£eko64 + ( +FILE + * +__¡»am +, +__off64_t + +__off +,  +__wh’û +); + +812 +__off64_t + + $á–lo64 + ( +FILE + * +__¡»am +è +__wur +; + +813  + `fg‘pos64 + ( +FILE + * +__»¡riù + +__¡»am +, +åos64_t + *__»¡riù +__pos +); + +814  + `f£os64 + ( +FILE + * +__¡»am +, +__cÚ¡ + +åos64_t + * +__pos +); + +817 +__BEGIN_NAMESPACE_STD + + +819  + $þ—»¼ + ( +FILE + * +__¡»am +è +__THROW +; + +821  + $ãof + ( +FILE + * +__¡»am +è +__THROW + +__wur +; + +823  + $ã¼Ü + ( +FILE + * +__¡»am +è +__THROW + +__wur +; + +824 +__END_NAMESPACE_STD + + +826 #ifdeà +__USE_MISC + + +828  + $þ—»¼_uÆocked + ( +FILE + * +__¡»am +è +__THROW +; + +829  + $ãof_uÆocked + ( +FILE + * +__¡»am +è +__THROW + +__wur +; + +830  + $ã¼Ü_uÆocked + ( +FILE + * +__¡»am +è +__THROW + +__wur +; + +834 +__BEGIN_NAMESPACE_STD + + +839  + `³¼Ü + ( +__cÚ¡ + * +__s +); + +840 +__END_NAMESPACE_STD + + +846  + ~ + +849 #ifdef +__USE_POSIX + + +851  + $fž’o + ( +FILE + * +__¡»am +è +__THROW + +__wur +; + +854 #ifdeà +__USE_MISC + + +856  + $fž’o_uÆocked + ( +FILE + * +__¡»am +è +__THROW + +__wur +; + +860 #ià( +defšed + +__USE_POSIX2 + || defšed +__USE_SVID + || defšed +__USE_BSD + || \ + +861 +defšed + +__USE_MISC +) + +866 +FILE + * + $pÝ’ + ( +__cÚ¡ + * +__commªd +, __cÚ¡ * +__modes +è +__wur +; + +872  + `pþo£ + ( +FILE + * +__¡»am +); + +876 #ifdef +__USE_POSIX + + +878 * + $ù”mid + (* +__s +è +__THROW +; + +882 #ifdeà +__USE_XOPEN + + +884 * + `cu£rid + (* +__s +); + +888 #ifdef +__USE_GNU + + +889  +ob¡ack +; + +892  + $ob¡ack_´štf + ( +ob¡ack + * +__»¡riù + +__ob¡ack +, + +893 +__cÚ¡ + * +__»¡riù + +__fÜm© +, ...) + +894 +__THROW + + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__´štf__ +, 2, 3))); + +895  + $ob¡ack_v´štf + ( +ob¡ack + * +__»¡riù + +__ob¡ack +, + +896 +__cÚ¡ + * +__»¡riù + +__fÜm© +, + +897 +_G_va_li¡ + +__¬gs +) + +898 +__THROW + + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__´štf__ +, 2, 0))); + +902 #ià +defšed + +__USE_POSIX + || defšed +__USE_MISC + + +906  + $æockfže + ( +FILE + * +__¡»am +è +__THROW +; + +910  + $árylockfže + ( +FILE + * +__¡»am +è +__THROW + +__wur +; + +913  + $fuÆockfže + ( +FILE + * +__¡»am +è +__THROW +; + +916 #ià +defšed + +__USE_XOPEN + && !defšed +__USE_XOPEN2K + && !defšed +__USE_GNU + + +920  + #__Ãed_g‘Ýt + + + ) + +921  + ~ + +926 #ifdeà +__USE_EXTERN_INLINES + + +927  + ~ + +929 #ià +__USE_FORTIFY_LEVEL + > 0 && +defšed + +__ex‹º_®ways_šlše + + +930  + ~ + +932 #ifdeà +__LDBL_COMPAT + + +933  + ~ + +936 +__END_DECLS + + + @/usr/include/stdlib.h + +23 #iâdef +_STDLIB_H + + +25  + ~<ã©u»s.h +> + +28  + #__Ãed_size_t + + + ) + +29 #iâdeà +__Ãed_m®loc_ªd_ÿÎoc + + +30  + #__Ãed_wch¬_t + + + ) + +31  + #__Ãed_NULL + + + ) + +33  + ~<¡ddef.h +> + +35 + g__BEGIN_DECLS + + +37 #iâdeà +__Ãed_m®loc_ªd_ÿÎoc + + +38  + #_STDLIB_H + 1 + + ) + +40 #ià( +defšed + +__USE_XOPEN + || defšed +__USE_XOPEN2K8 +è&& !defšed +_SYS_WAIT_H + + +42  + ~ + +43  + ~ + +45 #ifdeà +__USE_BSD + + +50 #ià +defšed + +__GNUC__ + && !defšed +__ýlu¥lus + + +51  + #__WAIT_INT +( +¡©us +) \ + +52 ( + `__ex‹nsiÚ__ + (((uniÚ { + `__ty³of +( +¡©us +è +__š +;  +__i +; }) \ + +53 { . +__š + = ( +¡©us +è}). +__i +)) + + ) + +55  + #__WAIT_INT +( +¡©us +è(*(*è&(¡©us)) + + ) + +63 #ià! +defšed + +__GNUC__ + || __GNUC__ < 2 || defšed +__ýlu¥lus + + +64  + #__WAIT_STATUS + * + + ) + +65  + #__WAIT_STATUS_DEFN + * + + ) + +70  +wa™ + * + m__u±r +; + +71 * + m__Œ +; + +72 } + t__WAIT_STATUS + + t__©Œibu‹__ + (( + t__Œª¥¬’t_uniÚ__ +)); + +73  + #__WAIT_STATUS_DEFN + * + + ) + +78  + #__WAIT_INT +( +¡©us +è(¡©us) + + ) + +79  + #__WAIT_STATUS + * + + ) + +80  + #__WAIT_STATUS_DEFN + * + + ) + +85  + #WEXITSTATUS +( +¡©us +è + `__WEXITSTATUS + ( + `__WAIT_INT + (¡©us)) + + ) + +86  + #WTERMSIG +( +¡©us +è + `__WTERMSIG + ( + `__WAIT_INT + (¡©us)) + + ) + +87  + #WSTOPSIG +( +¡©us +è + `__WSTOPSIG + ( + `__WAIT_INT + (¡©us)) + + ) + +88  + #WIFEXITED +( +¡©us +è + `__WIFEXITED + ( + `__WAIT_INT + (¡©us)) + + ) + +89  + #WIFSIGNALED +( +¡©us +è + `__WIFSIGNALED + ( + `__WAIT_INT + (¡©us)) + + ) + +90  + #WIFSTOPPED +( +¡©us +è + `__WIFSTOPPED + ( + `__WAIT_INT + (¡©us)) + + ) + +91 #ifdeà +__WIFCONTINUED + + +92  + #WIFCONTINUED +( +¡©us +è + `__WIFCONTINUED + ( + `__WAIT_INT + (¡©us)) + + ) + +96 +__BEGIN_NAMESPACE_STD + + +100  + mquÙ +; + +101  + m»m +; + +102 } + tdiv_t +; + +105 #iâdeà +__ldiv_t_defšed + + +108  + mquÙ +; + +109  + m»m +; + +110 } + tldiv_t +; + +111  + #__ldiv_t_defšed + 1 + + ) + +113 + g__END_NAMESPACE_STD + + +115 #ià +defšed + +__USE_ISOC99 + && !defšed +__Îdiv_t_defšed + + +116 +__BEGIN_NAMESPACE_C99 + + +118 +__ex‹nsiÚ__ + struct + +120  + mquÙ +; + +121  + m»m +; + +122 } + tÎdiv_t +; + +123  + #__Îdiv_t_defšed + 1 + + ) + +124 + g__END_NAMESPACE_C99 + + +129  + #RAND_MAX + 2147483647 + + ) + +134  + #EXIT_FAILURE + 1 + + ) + +135  + #EXIT_SUCCESS + 0 + + ) + +139  + #MB_CUR_MAX + ( + `__ùy³_g‘_mb_cur_max + ()) + + ) + +140 +size_t + + $__ùy³_g‘_mb_cur_max + (è +__THROW + +__wur +; + +143 +__BEGIN_NAMESPACE_STD + + +145  + $©of + ( +__cÚ¡ + * +__ÅŒ +) + +146 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)è +__wur +; + +148  + $©oi + ( +__cÚ¡ + * +__ÅŒ +) + +149 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)è +__wur +; + +151  + $©Þ + ( +__cÚ¡ + * +__ÅŒ +) + +152 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)è +__wur +; + +153 +__END_NAMESPACE_STD + + +155 #ià +defšed + +__USE_ISOC99 + || (defšed +__GLIBC_HAVE_LONG_LONG + && defšed +__USE_MISC +) + +156 +__BEGIN_NAMESPACE_C99 + + +158 +__ex‹nsiÚ__ +  + $©Þl + ( +__cÚ¡ + * +__ÅŒ +) + +159 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)è +__wur +; + +160 +__END_NAMESPACE_C99 + + +163 +__BEGIN_NAMESPACE_STD + + +165  + $¡¹od + ( +__cÚ¡ + * +__»¡riù + +__ÅŒ +, + +166 ** +__»¡riù + +__’d±r +) + +167 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +168 +__END_NAMESPACE_STD + + +170 #ifdef +__USE_ISOC99 + + +171 +__BEGIN_NAMESPACE_C99 + + +173  + $¡¹of + ( +__cÚ¡ + * +__»¡riù + +__ÅŒ +, + +174 ** +__»¡riù + +__’d±r +è +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +176  + $¡¹Þd + ( +__cÚ¡ + * +__»¡riù + +__ÅŒ +, + +177 ** +__»¡riù + +__’d±r +) + +178 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +179 +__END_NAMESPACE_C99 + + +182 +__BEGIN_NAMESPACE_STD + + +184  + $¡¹Þ + ( +__cÚ¡ + * +__»¡riù + +__ÅŒ +, + +185 ** +__»¡riù + +__’d±r +,  +__ba£ +) + +186 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +188  + $¡¹oul + ( +__cÚ¡ + * +__»¡riù + +__ÅŒ +, + +189 ** +__»¡riù + +__’d±r +,  +__ba£ +) + +190 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +191 +__END_NAMESPACE_STD + + +193 #ià +defšed + +__GLIBC_HAVE_LONG_LONG + && defšed +__USE_BSD + + +195 +__ex‹nsiÚ__ + + +196  + $¡¹oq + ( +__cÚ¡ + * +__»¡riù + +__ÅŒ +, + +197 ** +__»¡riù + +__’d±r +,  +__ba£ +) + +198 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +200 +__ex‹nsiÚ__ + + +201  + $¡¹ouq + ( +__cÚ¡ + * +__»¡riù + +__ÅŒ +, + +202 ** +__»¡riù + +__’d±r +,  +__ba£ +) + +203 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +206 #ià +defšed + +__USE_ISOC99 + || (defšed +__GLIBC_HAVE_LONG_LONG + && defšed +__USE_MISC +) + +207 +__BEGIN_NAMESPACE_C99 + + +209 +__ex‹nsiÚ__ + + +210  + $¡¹Þl + ( +__cÚ¡ + * +__»¡riù + +__ÅŒ +, + +211 ** +__»¡riù + +__’d±r +,  +__ba£ +) + +212 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +214 +__ex‹nsiÚ__ + + +215  + $¡¹ouÎ + ( +__cÚ¡ + * +__»¡riù + +__ÅŒ +, + +216 ** +__»¡riù + +__’d±r +,  +__ba£ +) + +217 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +218 +__END_NAMESPACE_C99 + + +222 #ifdeà +__USE_GNU + + +236  + ~ + +240  + $¡¹Þ_l + ( +__cÚ¡ + * +__»¡riù + +__ÅŒ +, + +241 ** +__»¡riù + +__’d±r +,  +__ba£ +, + +242 +__loÿË_t + +__loc +è +__THROW + + `__nÚnuÎ + ((1, 4)è +__wur +; + +244  + $¡¹oul_l + ( +__cÚ¡ + * +__»¡riù + +__ÅŒ +, + +245 ** +__»¡riù + +__’d±r +, + +246  +__ba£ +, +__loÿË_t + +__loc +) + +247 +__THROW + + `__nÚnuÎ + ((1, 4)è +__wur +; + +249 +__ex‹nsiÚ__ + + +250  + $¡¹Þl_l + ( +__cÚ¡ + * +__»¡riù + +__ÅŒ +, + +251 ** +__»¡riù + +__’d±r +,  +__ba£ +, + +252 +__loÿË_t + +__loc +) + +253 +__THROW + + `__nÚnuÎ + ((1, 4)è +__wur +; + +255 +__ex‹nsiÚ__ + + +256  + $¡¹ouÎ_l + ( +__cÚ¡ + * +__»¡riù + +__ÅŒ +, + +257 ** +__»¡riù + +__’d±r +, + +258  +__ba£ +, +__loÿË_t + +__loc +) + +259 +__THROW + + `__nÚnuÎ + ((1, 4)è +__wur +; + +261  + $¡¹od_l + ( +__cÚ¡ + * +__»¡riù + +__ÅŒ +, + +262 ** +__»¡riù + +__’d±r +, +__loÿË_t + +__loc +) + +263 +__THROW + + `__nÚnuÎ + ((1, 3)è +__wur +; + +265  + $¡¹of_l + ( +__cÚ¡ + * +__»¡riù + +__ÅŒ +, + +266 ** +__»¡riù + +__’d±r +, +__loÿË_t + +__loc +) + +267 +__THROW + + `__nÚnuÎ + ((1, 3)è +__wur +; + +269  + $¡¹Þd_l + ( +__cÚ¡ + * +__»¡riù + +__ÅŒ +, + +270 ** +__»¡riù + +__’d±r +, + +271 +__loÿË_t + +__loc +) + +272 +__THROW + + `__nÚnuÎ + ((1, 3)è +__wur +; + +276 #ifdeà +__USE_EXTERN_INLINES + + +277 +__BEGIN_NAMESPACE_STD + + +278 +__ex‹º_šlše +  + +279 + `__NTH + ( + $©of + ( +__cÚ¡ + * +__ÅŒ +)) + +281  + `¡¹od + ( +__ÅŒ +, (**è +NULL +); + +282 + } +} + +283 +__ex‹º_šlše +  + +284 +__NTH + ( + $©oi + ( +__cÚ¡ + * +__ÅŒ +)) + +286  (è + `¡¹Þ + ( +__ÅŒ +, (**è +NULL +, 10); + +287 + } +} + +288 +__ex‹º_šlše +  + +289 +__NTH + ( + $©Þ + ( +__cÚ¡ + * +__ÅŒ +)) + +291  + `¡¹Þ + ( +__ÅŒ +, (**è +NULL +, 10); + +292 + } +} + +293 + g__END_NAMESPACE_STD + + +295 #ià +defšed + +__USE_MISC + || defšed +__USE_ISOC99 + + +296 +__BEGIN_NAMESPACE_C99 + + +297 +__ex‹nsiÚ__ + +__ex‹º_šlše +  + +298 +__NTH + ( + $©Þl + ( +__cÚ¡ + * +__ÅŒ +)) + +300  + `¡¹Þl + ( +__ÅŒ +, (**è +NULL +, 10); + +301 + } +} + +302 + g__END_NAMESPACE_C99 + + +307 #ià +defšed + +__USE_SVID + || defšed +__USE_XOPEN_EXTENDED + + +311 * + $l64a + ( +__n +è +__THROW + +__wur +; + +314  + $a64l + ( +__cÚ¡ + * +__s +) + +315 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)è +__wur +; + +319 #ià +defšed + +__USE_SVID + || defšed +__USE_XOPEN_EXTENDED + || defšed +__USE_BSD + + +320  + ~ + +327  + $¿ndom + (è +__THROW +; + +330  + $¤ªdom + ( +__£ed +è +__THROW +; + +336 * + $š™¡©e + ( +__£ed +, * +__¡©ebuf +, + +337 +size_t + +__¡©–’ +è +__THROW + + `__nÚnuÎ + ((2)); + +341 * + $£t¡©e + (* +__¡©ebuf +è +__THROW + + `__nÚnuÎ + ((1)); + +344 #ifdeà +__USE_MISC + + +349  + s¿ndom_d©a + + +351 +št32_t + * +åŒ +; + +352 +št32_t + * +½Œ +; + +353 +št32_t + * +¡©e +; + +354  +¿nd_ty³ +; + +355  +¿nd_deg +; + +356  +¿nd_£p +; + +357 +št32_t + * +’d_±r +; + +360  + $¿ndom_r + ( +¿ndom_d©a + * +__»¡riù + +__buf +, + +361 +št32_t + * +__»¡riù + +__»suÉ +è +__THROW + + `__nÚnuÎ + ((1, 2)); + +363  + $¤ªdom_r + ( +__£ed +,  +¿ndom_d©a + * +__buf +) + +364 +__THROW + + `__nÚnuÎ + ((2)); + +366  + $š™¡©e_r + ( +__£ed +, * +__»¡riù + +__¡©ebuf +, + +367 +size_t + +__¡©–’ +, + +368  +¿ndom_d©a + * +__»¡riù + +__buf +) + +369 +__THROW + + `__nÚnuÎ + ((2, 4)); + +371  + $£t¡©e_r + (* +__»¡riù + +__¡©ebuf +, + +372  +¿ndom_d©a + * +__»¡riù + +__buf +) + +373 +__THROW + + `__nÚnuÎ + ((1, 2)); + +378 +__BEGIN_NAMESPACE_STD + + +380  + $¿nd + (è +__THROW +; + +382  + $¤ªd + ( +__£ed +è +__THROW +; + +383 +__END_NAMESPACE_STD + + +385 #ifdeà +__USE_POSIX + + +387  + $¿nd_r + (* +__£ed +è +__THROW +; + +391 #ià +defšed + +__USE_SVID + || defšed +__USE_XOPEN + + +395  + $d¿nd48 + (è +__THROW +; + +396  + $”ªd48 + ( +__xsubi +[3]è +__THROW + + `__nÚnuÎ + ((1)); + +399  + $̪d48 + (è +__THROW +; + +400  + $Īd48 + ( +__xsubi +[3]) + +401 +__THROW + + `__nÚnuÎ + ((1)); + +404  + $m¿nd48 + (è +__THROW +; + +405  + $j¿nd48 + ( +__xsubi +[3]) + +406 +__THROW + + `__nÚnuÎ + ((1)); + +409  + $¤ªd48 + ( +__£edv® +è +__THROW +; + +410 * + $£ed48 + ( +__£ed16v +[3]) + +411 +__THROW + + `__nÚnuÎ + ((1)); + +412  + $lcÚg48 + ( +__·¿m +[7]è +__THROW + + `__nÚnuÎ + ((1)); + +414 #ifdeà +__USE_MISC + + +418  + sd¿nd48_d©a + + +420  +__x +[3]; + +421  +__Þd_x +[3]; + +422  +__c +; + +423  +__š™ +; + +424  +__a +; + +428  + $d¿nd48_r + ( +d¿nd48_d©a + * +__»¡riù + +__bufãr +, + +429 * +__»¡riù + +__»suÉ +è +__THROW + + `__nÚnuÎ + ((1, 2)); + +430  + $”ªd48_r + ( +__xsubi +[3], + +431  +d¿nd48_d©a + * +__»¡riù + +__bufãr +, + +432 * +__»¡riù + +__»suÉ +è +__THROW + + `__nÚnuÎ + ((1, 2)); + +435  + $̪d48_r + ( +d¿nd48_d©a + * +__»¡riù + +__bufãr +, + +436 * +__»¡riù + +__»suÉ +) + +437 +__THROW + + `__nÚnuÎ + ((1, 2)); + +438  + $Īd48_r + ( +__xsubi +[3], + +439  +d¿nd48_d©a + * +__»¡riù + +__bufãr +, + +440 * +__»¡riù + +__»suÉ +) + +441 +__THROW + + `__nÚnuÎ + ((1, 2)); + +444  + $m¿nd48_r + ( +d¿nd48_d©a + * +__»¡riù + +__bufãr +, + +445 * +__»¡riù + +__»suÉ +) + +446 +__THROW + + `__nÚnuÎ + ((1, 2)); + +447  + $j¿nd48_r + ( +__xsubi +[3], + +448  +d¿nd48_d©a + * +__»¡riù + +__bufãr +, + +449 * +__»¡riù + +__»suÉ +) + +450 +__THROW + + `__nÚnuÎ + ((1, 2)); + +453  + $¤ªd48_r + ( +__£edv® +,  +d¿nd48_d©a + * +__bufãr +) + +454 +__THROW + + `__nÚnuÎ + ((2)); + +456  + $£ed48_r + ( +__£ed16v +[3], + +457  +d¿nd48_d©a + * +__bufãr +è +__THROW + + `__nÚnuÎ + ((1, 2)); + +459  + $lcÚg48_r + ( +__·¿m +[7], + +460  +d¿nd48_d©a + * +__bufãr +) + +461 +__THROW + + `__nÚnuÎ + ((1, 2)); + +467 #iâdeà +__m®loc_ªd_ÿÎoc_defšed + + +468  + #__m®loc_ªd_ÿÎoc_defšed + + + ) + +469 +__BEGIN_NAMESPACE_STD + + +471 * + $m®loc + ( +size_t + +__size +è +__THROW + +__©Œibu‹_m®loc__ + +__wur +; + +473 * + $ÿÎoc + ( +size_t + +__nmemb +, size_ˆ +__size +) + +474 +__THROW + +__©Œibu‹_m®loc__ + +__wur +; + +475 +__END_NAMESPACE_STD + + +478 #iâdeà +__Ãed_m®loc_ªd_ÿÎoc + + +479 +__BEGIN_NAMESPACE_STD + + +485 * + $»®loc + (* +__±r +, +size_t + +__size +) + +486 +__THROW + +__©Œibu‹_w¬n_unu£d_»suÉ__ +; + +488  + $ä“ + (* +__±r +è +__THROW +; + +489 +__END_NAMESPACE_STD + + +491 #ifdef +__USE_MISC + + +493  + $cä“ + (* +__±r +è +__THROW +; + +496 #ià +defšed + +__USE_GNU + || defšed +__USE_BSD + || defšed +__USE_MISC + + +497  + ~<®loÿ.h +> + +500 #ià( +defšed + +__USE_XOPEN_EXTENDED + && !defšed +__USE_XOPEN2K +) \ + +501 || +defšed + +__USE_BSD + + +503 * + $v®loc + ( +size_t + +__size +è +__THROW + +__©Œibu‹_m®loc__ + +__wur +; + +506 #ifdeà +__USE_XOPEN2K + + +508  + $posix_mem®ign + (** +__mem±r +, +size_t + +__®ignm’t +, size_ˆ +__size +) + +509 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +512 +__BEGIN_NAMESPACE_STD + + +514  + $abÜt + (è +__THROW + + `__©Œibu‹__ + (( +__nÜ‘uº__ +)); + +518  + `©ex™ + ((* +__func +è()è +__THROW + + `__nÚnuÎ + ((1)); + +520 #ifdeà +__USE_GNU + + +524 #ifdeà +__ýlu¥lus + + +525 "C++"  + `©_quick_ex™ + ((* +__func +) ()) + +526 +__THROW + + `__asm + ("©_quick_ex™"è + `__nÚnuÎ + ((1)); + +528  + `©_quick_ex™ + ((* +__func +è()è +__THROW + + `__nÚnuÎ + ((1)); + +531 +__END_NAMESPACE_STD + + +533 #ifdef +__USE_MISC + + +536  + `Ú_ex™ + ((* +__func +è( +__¡©us +, * +__¬g +), *__arg) + +537 +__THROW + + `__nÚnuÎ + ((1)); + +540 +__BEGIN_NAMESPACE_STD + + +544  + $ex™ + ( +__¡©us +è +__THROW + + `__©Œibu‹__ + (( +__nÜ‘uº__ +)); + +546 #ifdeà +__USE_GNU + + +552  + $quick_ex™ + ( +__¡©us +è +__THROW + + `__©Œibu‹__ + (( +__nÜ‘uº__ +)); + +554 +__END_NAMESPACE_STD + + +556 #ifdeà +__USE_ISOC99 + + +557 +__BEGIN_NAMESPACE_C99 + + +560  + $_Ex™ + ( +__¡©us +è +__THROW + + `__©Œibu‹__ + (( +__nÜ‘uº__ +)); + +561 +__END_NAMESPACE_C99 + + +565 +__BEGIN_NAMESPACE_STD + + +567 * + $g‘’v + ( +__cÚ¡ + * +__Çme +è +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +568 +__END_NAMESPACE_STD + + +572 * + $__£cu»_g‘’v + ( +__cÚ¡ + * +__Çme +) + +573 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +575 #ià +defšed + +__USE_SVID + || defšed +__USE_XOPEN + + +579  + $pu‹nv + (* +__¡ršg +è +__THROW + + `__nÚnuÎ + ((1)); + +582 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN2K + + +585  + $£‹nv + ( +__cÚ¡ + * +__Çme +, __cÚ¡ * +__v®ue +,  +__»¶aû +) + +586 +__THROW + + `__nÚnuÎ + ((2)); + +589  + $un£‹nv + ( +__cÚ¡ + * +__Çme +è +__THROW + + `__nÚnuÎ + ((1)); + +592 #ifdef +__USE_MISC + + +596  + $þ—»nv + (è +__THROW +; + +600 #ià +defšed + +__USE_MISC + \ + +601 || ( +defšed + +__USE_XOPEN_EXTENDED + && !defšed +__USE_XOPEN2K +) + +606 * + $mk‹mp + (* +__‹m¶©e +è +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +609 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN_EXTENDED + \ + +610 || +defšed + +__USE_XOPEN2K8 + + +619 #iâdeà +__USE_FILE_OFFSET64 + + +620  + $mk¡emp + (* +__‹m¶©e +è + `__nÚnuÎ + ((1)è +__wur +; + +622 #ifdeà +__REDIRECT + + +623  + `__REDIRECT + ( +mk¡emp +, (* +__‹m¶©e +), +mk¡emp64 +) + +624 + `__nÚnuÎ + ((1)è +__wur +; + +626  + #mk¡emp + +mk¡emp64 + + + ) + +629 #ifdeà +__USE_LARGEFILE64 + + +630  + $mk¡emp64 + (* +__‹m¶©e +è + `__nÚnuÎ + ((1)è +__wur +; + +634 #ifdeà +__USE_MISC + + +641 #iâdeà +__USE_FILE_OFFSET64 + + +642  + $mk¡emps + (* +__‹m¶©e +,  +__suffixËn +è + `__nÚnuÎ + ((1)è +__wur +; + +644 #ifdeà +__REDIRECT + + +645  + `__REDIRECT + ( +mk¡emps +, (* +__‹m¶©e +,  +__suffixËn +), + +646 +mk¡emps64 +è + `__nÚnuÎ + ((1)è +__wur +; + +648  + #mk¡emps + +mk¡emps64 + + + ) + +651 #ifdeà +__USE_LARGEFILE64 + + +652  + $mk¡emps64 + (* +__‹m¶©e +,  +__suffixËn +) + +653 + `__nÚnuÎ + ((1)è +__wur +; + +657 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN2K8 + + +663 * + $mkd‹mp + (* +__‹m¶©e +è +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +666 #ifdeà +__USE_GNU + + +673 #iâdeà +__USE_FILE_OFFSET64 + + +674  + $mko¡emp + (* +__‹m¶©e +,  +__æags +è + `__nÚnuÎ + ((1)è +__wur +; + +676 #ifdeà +__REDIRECT + + +677  + `__REDIRECT + ( +mko¡emp +, (* +__‹m¶©e +,  +__æags +), +mko¡emp64 +) + +678 + `__nÚnuÎ + ((1)è +__wur +; + +680  + #mko¡emp + +mko¡emp64 + + + ) + +683 #ifdeà +__USE_LARGEFILE64 + + +684  + $mko¡emp64 + (* +__‹m¶©e +,  +__æags +è + `__nÚnuÎ + ((1)è +__wur +; + +693 #iâdeà +__USE_FILE_OFFSET64 + + +694  + $mko¡emps + (* +__‹m¶©e +,  +__suffixËn +,  +__æags +) + +695 + `__nÚnuÎ + ((1)è +__wur +; + +697 #ifdeà +__REDIRECT + + +698  + `__REDIRECT + ( +mko¡emps +, (* +__‹m¶©e +,  +__suffixËn +, + +699  +__æags +), +mko¡emps64 +) + +700 + `__nÚnuÎ + ((1)è +__wur +; + +702  + #mko¡emps + +mko¡emps64 + + + ) + +705 #ifdeà +__USE_LARGEFILE64 + + +706  + $mko¡emps64 + (* +__‹m¶©e +,  +__suffixËn +,  +__æags +) + +707 + `__nÚnuÎ + ((1)è +__wur +; + +712 +__BEGIN_NAMESPACE_STD + + +717  + $sy¡em + ( +__cÚ¡ + * +__commªd +è +__wur +; + +718 +__END_NAMESPACE_STD + + +721 #ifdef +__USE_GNU + + +724 * + $ÿnÚiÿlize_fže_Çme + ( +__cÚ¡ + * +__Çme +) + +725 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +728 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + + +734 * + $»®·th + ( +__cÚ¡ + * +__»¡riù + +__Çme +, + +735 * +__»¡riù + +__»sÞved +è +__THROW + +__wur +; + +740 #iâdeà +__COMPAR_FN_T + + +741  + #__COMPAR_FN_T + + + ) + +742 (* + t__com·r_â_t +è( + t__cÚ¡ + *, __const *); + +744 #ifdef +__USE_GNU + + +745  +__com·r_â_t + + tcom·risÚ_â_t +; + +748 #ifdeà +__USE_GNU + + +749 (* + t__com·r_d_â_t +è( + t__cÚ¡ + *, __const *, *); + +752 +__BEGIN_NAMESPACE_STD + + +755 * + $b£¬ch + ( +__cÚ¡ + * +__key +, __cÚ¡ * +__ba£ +, + +756 +size_t + +__nmemb +, size_ˆ +__size +, +__com·r_â_t + +__com·r +) + +757 + `__nÚnuÎ + ((1, 2, 5)è +__wur +; + +761  + $qsÜt + (* +__ba£ +, +size_t + +__nmemb +, size_ˆ +__size +, + +762 +__com·r_â_t + +__com·r +è + `__nÚnuÎ + ((1, 4)); + +763 #ifdeà +__USE_GNU + + +764  + $qsÜt_r + (* +__ba£ +, +size_t + +__nmemb +, size_ˆ +__size +, + +765 +__com·r_d_â_t + +__com·r +, * +__¬g +) + +766 + `__nÚnuÎ + ((1, 4)); + +771  + $abs + ( +__x +è +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)è +__wur +; + +772  + $Ïbs + ( +__x +è +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)è +__wur +; + +773 +__END_NAMESPACE_STD + + +775 #ifdeà +__USE_ISOC99 + + +776 +__ex‹nsiÚ__ +  + $Îabs + ( +__x +) + +777 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)è +__wur +; + +781 +__BEGIN_NAMESPACE_STD + + +785 +div_t + + $div + ( +__num” +,  +__d’om +) + +786 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)è +__wur +; + +787 +ldiv_t + + $ldiv + ( +__num” +,  +__d’om +) + +788 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)è +__wur +; + +789 +__END_NAMESPACE_STD + + +791 #ifdeà +__USE_ISOC99 + + +792 +__BEGIN_NAMESPACE_C99 + + +793 +__ex‹nsiÚ__ + +Îdiv_t + + $Îdiv + ( +__num” +, + +794  +__d’om +) + +795 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)è +__wur +; + +796 +__END_NAMESPACE_C99 + + +800 #ià( +defšed + +__USE_XOPEN_EXTENDED + && !defšed +__USE_XOPEN2K +) \ + +801 || +defšed + +__USE_SVID + + +808 * + $ecvt + ( +__v®ue +,  +__ndig™ +, * +__»¡riù + +__deýt +, + +809 * +__»¡riù + +__sign +è +__THROW + + `__nÚnuÎ + ((3, 4)è +__wur +; + +814 * + $fcvt + ( +__v®ue +,  +__ndig™ +, * +__»¡riù + +__deýt +, + +815 * +__»¡riù + +__sign +è +__THROW + + `__nÚnuÎ + ((3, 4)è +__wur +; + +820 * + $gcvt + ( +__v®ue +,  +__ndig™ +, * +__buf +) + +821 +__THROW + + `__nÚnuÎ + ((3)è +__wur +; + +824 #ifdeà +__USE_MISC + + +826 * + $qecvt + ( +__v®ue +,  +__ndig™ +, + +827 * +__»¡riù + +__deýt +, *__»¡riù +__sign +) + +828 +__THROW + + `__nÚnuÎ + ((3, 4)è +__wur +; + +829 * + $qfcvt + ( +__v®ue +,  +__ndig™ +, + +830 * +__»¡riù + +__deýt +, *__»¡riù +__sign +) + +831 +__THROW + + `__nÚnuÎ + ((3, 4)è +__wur +; + +832 * + $qgcvt + ( +__v®ue +,  +__ndig™ +, * +__buf +) + +833 +__THROW + + `__nÚnuÎ + ((3)è +__wur +; + +838  + $ecvt_r + ( +__v®ue +,  +__ndig™ +, * +__»¡riù + +__deýt +, + +839 * +__»¡riù + +__sign +, *__»¡riù +__buf +, + +840 +size_t + +__Ën +è +__THROW + + `__nÚnuÎ + ((3, 4, 5)); + +841  + $fcvt_r + ( +__v®ue +,  +__ndig™ +, * +__»¡riù + +__deýt +, + +842 * +__»¡riù + +__sign +, *__»¡riù +__buf +, + +843 +size_t + +__Ën +è +__THROW + + `__nÚnuÎ + ((3, 4, 5)); + +845  + $qecvt_r + ( +__v®ue +,  +__ndig™ +, + +846 * +__»¡riù + +__deýt +, *__»¡riù +__sign +, + +847 * +__»¡riù + +__buf +, +size_t + +__Ën +) + +848 +__THROW + + `__nÚnuÎ + ((3, 4, 5)); + +849  + $qfcvt_r + ( +__v®ue +,  +__ndig™ +, + +850 * +__»¡riù + +__deýt +, *__»¡riù +__sign +, + +851 * +__»¡riù + +__buf +, +size_t + +__Ën +) + +852 +__THROW + + `__nÚnuÎ + ((3, 4, 5)); + +857 +__BEGIN_NAMESPACE_STD + + +860  + $mbËn + ( +__cÚ¡ + * +__s +, +size_t + +__n +è +__THROW + +__wur +; + +863  + $mbtowc + ( +wch¬_t + * +__»¡riù + +__pwc +, + +864 +__cÚ¡ + * +__»¡riù + +__s +, +size_t + +__n +è +__THROW + +__wur +; + +867  + $wùomb + (* +__s +, +wch¬_t + +__wch¬ +è +__THROW + +__wur +; + +871 +size_t + + $mb¡owcs + ( +wch¬_t + * +__»¡riù + +__pwcs +, + +872 +__cÚ¡ + * +__»¡riù + +__s +, +size_t + +__n +è +__THROW +; + +874 +size_t + + $wc¡ombs + (* +__»¡riù + +__s +, + +875 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__pwcs +, +size_t + +__n +) + +876 +__THROW +; + +877 +__END_NAMESPACE_STD + + +880 #ifdeà +__USE_SVID + + +885  + $½m©ch + ( +__cÚ¡ + * +__»¥Ú£ +è +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +889 #ià +defšed + +__USE_XOPEN_EXTENDED + || defšed +__USE_XOPEN2K8 + + +896  + $g‘subÝt + (** +__»¡riù + +__ÝtiÚp +, + +897 * +__cÚ¡ + * +__»¡riù + +__tok’s +, + +898 ** +__»¡riù + +__v®u• +) + +899 +__THROW + + `__nÚnuÎ + ((1, 2, 3)è +__wur +; + +903 #ifdeà +__USE_XOPEN + + +905  + $£tkey + ( +__cÚ¡ + * +__key +è +__THROW + + `__nÚnuÎ + ((1)); + +911 #ifdeà +__USE_XOPEN2KXSI + + +913  + $posix_Ý’± + ( +__oæag +è +__wur +; + +916 #ifdeà +__USE_XOPEN + + +921  + $g¿Á± + ( +__fd +è +__THROW +; + +925  + $uÆock± + ( +__fd +è +__THROW +; + +930 * + $±¢ame + ( +__fd +è +__THROW + +__wur +; + +933 #ifdeà +__USE_GNU + + +937  + $±¢ame_r + ( +__fd +, * +__buf +, +size_t + +__buæ’ +) + +938 +__THROW + + `__nÚnuÎ + ((2)); + +941  + `g‘± + (); + +944 #ifdeà +__USE_BSD + + +948  + $g‘lßdavg + ( +__lßdavg +[],  +__ÃËm +) + +949 +__THROW + + `__nÚnuÎ + ((1)); + +954 #ià +__USE_FORTIFY_LEVEL + > 0 && +defšed + +__ex‹º_®ways_šlše + + +955  + ~ + +957 #ifdeà +__LDBL_COMPAT + + +958  + ~ + +962 #undeà +__Ãed_m®loc_ªd_ÿÎoc + + +964 +__END_DECLS + + + @/usr/include/string.h + +24 #iâdef +_STRING_H + + +25  + #_STRING_H + 1 + + ) + +27  + ~<ã©u»s.h +> + +29 + g__BEGIN_DECLS + + +32  + #__Ãed_size_t + + + ) + +33  + #__Ãed_NULL + + + ) + +34  + ~<¡ddef.h +> + +37 #ià +defšed + +__ýlu¥lus + && +__GNUC_PREREQ + (4, 4) + +38  + #__CORRECT_ISO_CPP_STRING_H_PROTO + + + ) + +42 +__BEGIN_NAMESPACE_STD + + +44 * + $memýy + (* +__»¡riù + +__de¡ +, + +45 +__cÚ¡ + * +__»¡riù + +__¤c +, +size_t + +__n +) + +46 +__THROW + + `__nÚnuÎ + ((1, 2)); + +49 * + $memmove + (* +__de¡ +, +__cÚ¡ + * +__¤c +, +size_t + +__n +) + +50 +__THROW + + `__nÚnuÎ + ((1, 2)); + +51 +__END_NAMESPACE_STD + + +56 #ià +defšed + +__USE_SVID + || defšed +__USE_BSD + || defšed +__USE_XOPEN + + +57 * + $memcýy + (* +__»¡riù + +__de¡ +, +__cÚ¡ + *__»¡riù +__¤c +, + +58  +__c +, +size_t + +__n +) + +59 +__THROW + + `__nÚnuÎ + ((1, 2)); + +63 +__BEGIN_NAMESPACE_STD + + +65 * + $mem£t + (* +__s +,  +__c +, +size_t + +__n +è +__THROW + + `__nÚnuÎ + ((1)); + +68  + $memcmp + ( +__cÚ¡ + * +__s1 +, __cÚ¡ * +__s2 +, +size_t + +__n +) + +69 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +72 #ifdeà +__CORRECT_ISO_CPP_STRING_H_PROTO + + +75 * + `memchr + (* +__s +,  +__c +, +size_t + +__n +) + +76 +__THROW + + `__asm + ("memchr"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +77 +__cÚ¡ + * + `memchr + (__cÚ¡ * +__s +,  +__c +, +size_t + +__n +) + +78 +__THROW + + `__asm + ("memchr"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +80 #ifdeà +__OPTIMIZE__ + + +81 +__ex‹º_®ways_šlše + * + +82 + `memchr + (* +__s +,  +__c +, +size_t + +__n +è +__THROW + + +84  + `__bužtš_memchr + ( +__s +, +__c +, +__n +); + +87 +__ex‹º_®ways_šlše + +__cÚ¡ + * + +88 + `memchr + ( +__cÚ¡ + * +__s +,  +__c +, +size_t + +__n +è +__THROW + + +90  + `__bužtš_memchr + ( +__s +, +__c +, +__n +); + +93 + } +} + +95 * + $memchr + ( +__cÚ¡ + * +__s +,  +__c +, +size_t + +__n +) + +96 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +98 +__END_NAMESPACE_STD + + +100 #ifdeà +__USE_GNU + + +103 #ifdeà +__CORRECT_ISO_CPP_STRING_H_PROTO + + +104 "C++" * + $¿wmemchr + (* +__s +,  +__c +) + +105 +__THROW + + `__asm + ("¿wmemchr"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +106 "C++" +__cÚ¡ + * + $¿wmemchr + ( +__cÚ¡ + * +__s +,  +__c +) + +107 +__THROW + + `__asm + ("¿wmemchr"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +109 * + $¿wmemchr + ( +__cÚ¡ + * +__s +,  +__c +) + +110 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +114 #ifdeà +__CORRECT_ISO_CPP_STRING_H_PROTO + + +115 "C++" * + $memrchr + (* +__s +,  +__c +, +size_t + +__n +) + +116 +__THROW + + `__asm + ("memrchr"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +117 "C++" +__cÚ¡ + * + $memrchr + ( +__cÚ¡ + * +__s +,  +__c +, +size_t + +__n +) + +118 +__THROW + + `__asm + ("memrchr"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +120 * + $memrchr + ( +__cÚ¡ + * +__s +,  +__c +, +size_t + +__n +) + +121 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +126 +__BEGIN_NAMESPACE_STD + + +128 * + $¡rýy + (* +__»¡riù + +__de¡ +, +__cÚ¡ + *__»¡riù +__¤c +) + +129 +__THROW + + `__nÚnuÎ + ((1, 2)); + +131 * + $¡ºýy + (* +__»¡riù + +__de¡ +, + +132 +__cÚ¡ + * +__»¡riù + +__¤c +, +size_t + +__n +) + +133 +__THROW + + `__nÚnuÎ + ((1, 2)); + +136 * + $¡rÿt + (* +__»¡riù + +__de¡ +, +__cÚ¡ + *__»¡riù +__¤c +) + +137 +__THROW + + `__nÚnuÎ + ((1, 2)); + +139 * + $¡ºÿt + (* +__»¡riù + +__de¡ +, +__cÚ¡ + *__»¡riù +__¤c +, + +140 +size_t + +__n +è +__THROW + + `__nÚnuÎ + ((1, 2)); + +143  + $¡rcmp + ( +__cÚ¡ + * +__s1 +, __cÚ¡ * +__s2 +) + +144 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +146  + $¡ºcmp + ( +__cÚ¡ + * +__s1 +, __cÚ¡ * +__s2 +, +size_t + +__n +) + +147 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +150  + $¡rcÞl + ( +__cÚ¡ + * +__s1 +, __cÚ¡ * +__s2 +) + +151 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +153 +size_t + + $¡rxäm + (* +__»¡riù + +__de¡ +, + +154 +__cÚ¡ + * +__»¡riù + +__¤c +, +size_t + +__n +) + +155 +__THROW + + `__nÚnuÎ + ((2)); + +156 +__END_NAMESPACE_STD + + +158 #ifdeà +__USE_XOPEN2K8 + + +162  + ~ + +165  + $¡rcÞl_l + ( +__cÚ¡ + * +__s1 +, __cÚ¡ * +__s2 +, +__loÿË_t + +__l +) + +166 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2, 3)); + +168 +size_t + + $¡rxäm_l + (* +__de¡ +, +__cÚ¡ + * +__¤c +, +size_t + +__n +, + +169 +__loÿË_t + +__l +è +__THROW + + `__nÚnuÎ + ((2, 4)); + +172 #ià +defšed + +__USE_SVID + || defšed +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + \ + +173 || +defšed + +__USE_XOPEN2K8 + + +175 * + $¡rdup + ( +__cÚ¡ + * +__s +) + +176 +__THROW + +__©Œibu‹_m®loc__ + + `__nÚnuÎ + ((1)); + +182 #ià +defšed + +__USE_XOPEN2K8 + + +183 * + $¡ºdup + ( +__cÚ¡ + * +__¡ršg +, +size_t + +__n +) + +184 +__THROW + +__©Œibu‹_m®loc__ + + `__nÚnuÎ + ((1)); + +187 #ià +defšed + +__USE_GNU + && defšed +__GNUC__ + + +189  + #¡rdu· +( +s +) \ + +190 ( +__ex‹nsiÚ__ + \ + +192 +__cÚ¡ + * +__Þd + = ( +s +); \ + +193 +size_t + +__Ën + = + `¡¾’ + ( +__Þd +) + 1; \ + +194 * +__Ãw + = (*è + `__bužtš_®loÿ + ( +__Ën +); \ + +195 (*è + `memýy + ( +__Ãw +, +__Þd +, +__Ën +); \ + +196 + } +})) + + ) + +199  + #¡ºdu· +( +s +, +n +) \ + +200 ( +__ex‹nsiÚ__ + \ + +202 +__cÚ¡ + * +__Þd + = ( +s +); \ + +203 +size_t + +__Ën + = + `¡ºËn + ( +__Þd +, ( +n +)); \ + +204 * +__Ãw + = (*è + `__bužtš_®loÿ + ( +__Ën + + 1); \ + +205 +__Ãw +[ +__Ën +] = '\0'; \ + +206 (*è + `memýy + ( +__Ãw +, +__Þd +, +__Ën +); \ + +207 })) + + ) + +210 + g__BEGIN_NAMESPACE_STD + + +212 #ifdeà +__CORRECT_ISO_CPP_STRING_H_PROTO + + +215 * +¡rchr + (* +__s +,  +__c +) + +216 +__THROW + +__asm + ("¡rchr"è +__©Œibu‹_pu»__ + +__nÚnuÎ + ((1)); + +217 +__cÚ¡ + * +¡rchr + (__cÚ¡ * +__s +,  +__c +) + +218 +__THROW + +__asm + ("¡rchr"è +__©Œibu‹_pu»__ + +__nÚnuÎ + ((1)); + +220 #ifdeà +__OPTIMIZE__ + + +221 +__ex‹º_®ways_šlše + * + +222 +¡rchr + (* +__s +,  +__c +è + g__THROW + + +224  +__bužtš_¡rchr + ( +__s +, +__c +); + +227 +__ex‹º_®ways_šlše + +__cÚ¡ + * + +228 +¡rchr + ( +__cÚ¡ + * +__s +,  +__c +è + g__THROW + + +230  +__bužtš_¡rchr + ( +__s +, +__c +); + +235 * + $¡rchr + ( +__cÚ¡ + * +__s +,  +__c +) + +236 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +239 #ifdeà +__CORRECT_ISO_CPP_STRING_H_PROTO + + +242 * + `¡¼chr + (* +__s +,  +__c +) + +243 +__THROW + + `__asm + ("¡¼chr"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +244 +__cÚ¡ + * + `¡¼chr + (__cÚ¡ * +__s +,  +__c +) + +245 +__THROW + + `__asm + ("¡¼chr"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +247 #ifdeà +__OPTIMIZE__ + + +248 +__ex‹º_®ways_šlše + * + +249 + `¡¼chr + (* +__s +,  +__c +è +__THROW + + +251  + `__bužtš_¡¼chr + ( +__s +, +__c +); + +254 +__ex‹º_®ways_šlše + +__cÚ¡ + * + +255 + `¡¼chr + ( +__cÚ¡ + * +__s +,  +__c +è +__THROW + + +257  + `__bužtš_¡¼chr + ( +__s +, +__c +); + +260 + } +} + +262 * + $¡¼chr + ( +__cÚ¡ + * +__s +,  +__c +) + +263 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +265 +__END_NAMESPACE_STD + + +267 #ifdeà +__USE_GNU + + +270 #ifdeà +__CORRECT_ISO_CPP_STRING_H_PROTO + + +271 "C++" * + $¡rchºul + (* +__s +,  +__c +) + +272 +__THROW + + `__asm + ("¡rchºul"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +273 "C++" +__cÚ¡ + * + $¡rchºul + ( +__cÚ¡ + * +__s +,  +__c +) + +274 +__THROW + + `__asm + ("¡rchºul"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +276 * + $¡rchºul + ( +__cÚ¡ + * +__s +,  +__c +) + +277 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +281 +__BEGIN_NAMESPACE_STD + + +284 +size_t + + $¡rc¥n + ( +__cÚ¡ + * +__s +, __cÚ¡ * +__»jeù +) + +285 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +288 +size_t + + $¡r¥n + ( +__cÚ¡ + * +__s +, __cÚ¡ * +__acû± +) + +289 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +291 #ifdeà +__CORRECT_ISO_CPP_STRING_H_PROTO + + +294 * + `¡½brk + (* +__s +, +__cÚ¡ + * +__acû± +) + +295 +__THROW + + `__asm + ("¡½brk"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +296 +__cÚ¡ + * + `¡½brk + (__cÚ¡ * +__s +, __cÚ¡ * +__acû± +) + +297 +__THROW + + `__asm + ("¡½brk"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +299 #ifdeà +__OPTIMIZE__ + + +300 +__ex‹º_®ways_šlše + * + +301 + `¡½brk + (* +__s +, +__cÚ¡ + * +__acû± +è +__THROW + + +303  + `__bužtš_¡½brk + ( +__s +, +__acû± +); + +306 +__ex‹º_®ways_šlše + +__cÚ¡ + * + +307 + `¡½brk + ( +__cÚ¡ + * +__s +, __cÚ¡ * +__acû± +è +__THROW + + +309  + `__bužtš_¡½brk + ( +__s +, +__acû± +); + +312 + } +} + +314 * + $¡½brk + ( +__cÚ¡ + * +__s +, __cÚ¡ * +__acû± +) + +315 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +318 #ifdeà +__CORRECT_ISO_CPP_STRING_H_PROTO + + +321 * + `¡r¡r + (* +__hay¡ack +, +__cÚ¡ + * +__ÃedË +) + +322 +__THROW + + `__asm + ("¡r¡r"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +323 +__cÚ¡ + * + `¡r¡r + (__cÚ¡ * +__hay¡ack +, + +324 +__cÚ¡ + * +__ÃedË +) + +325 +__THROW + + `__asm + ("¡r¡r"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +327 #ifdeà +__OPTIMIZE__ + + +328 +__ex‹º_®ways_šlše + * + +329 + `¡r¡r + (* +__hay¡ack +, +__cÚ¡ + * +__ÃedË +è +__THROW + + +331  + `__bužtš_¡r¡r + ( +__hay¡ack +, +__ÃedË +); + +334 +__ex‹º_®ways_šlše + +__cÚ¡ + * + +335 + `¡r¡r + ( +__cÚ¡ + * +__hay¡ack +, __cÚ¡ * +__ÃedË +è +__THROW + + +337  + `__bužtš_¡r¡r + ( +__hay¡ack +, +__ÃedË +); + +340 + } +} + +342 * + $¡r¡r + ( +__cÚ¡ + * +__hay¡ack +, __cÚ¡ * +__ÃedË +) + +343 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +348 * + $¡¹ok + (* +__»¡riù + +__s +, +__cÚ¡ + *__»¡riù +__d–im +) + +349 +__THROW + + `__nÚnuÎ + ((2)); + +350 +__END_NAMESPACE_STD + + +354 * + $__¡¹ok_r + (* +__»¡riù + +__s +, + +355 +__cÚ¡ + * +__»¡riù + +__d–im +, + +356 ** +__»¡riù + +__§ve_±r +) + +357 +__THROW + + `__nÚnuÎ + ((2, 3)); + +358 #ià +defšed + +__USE_POSIX + || defšed +__USE_MISC + + +359 * + $¡¹ok_r + (* +__»¡riù + +__s +, +__cÚ¡ + *__»¡riù +__d–im +, + +360 ** +__»¡riù + +__§ve_±r +) + +361 +__THROW + + `__nÚnuÎ + ((2, 3)); + +364 #ifdeà +__USE_GNU + + +366 #ifdeà +__CORRECT_ISO_CPP_STRING_H_PROTO + + +367 "C++" * + $¡rÿ£¡r + (* +__hay¡ack +, +__cÚ¡ + * +__ÃedË +) + +368 +__THROW + + `__asm + ("¡rÿ£¡r"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +369 "C++" +__cÚ¡ + * + $¡rÿ£¡r + ( +__cÚ¡ + * +__hay¡ack +, + +370 +__cÚ¡ + * +__ÃedË +) + +371 +__THROW + + `__asm + ("¡rÿ£¡r"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +373 * + $¡rÿ£¡r + ( +__cÚ¡ + * +__hay¡ack +, __cÚ¡ * +__ÃedË +) + +374 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +378 #ifdeà +__USE_GNU + + +382 * + $memmem + ( +__cÚ¡ + * +__hay¡ack +, +size_t + +__hay¡ackËn +, + +383 +__cÚ¡ + * +__ÃedË +, +size_t + +__ÃedËËn +) + +384 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 3)); + +388 * + $__mempýy + (* +__»¡riù + +__de¡ +, + +389 +__cÚ¡ + * +__»¡riù + +__¤c +, +size_t + +__n +) + +390 +__THROW + + `__nÚnuÎ + ((1, 2)); + +391 * + $mempýy + (* +__»¡riù + +__de¡ +, + +392 +__cÚ¡ + * +__»¡riù + +__¤c +, +size_t + +__n +) + +393 +__THROW + + `__nÚnuÎ + ((1, 2)); + +397 +__BEGIN_NAMESPACE_STD + + +399 +size_t + + $¡¾’ + ( +__cÚ¡ + * +__s +) + +400 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +401 +__END_NAMESPACE_STD + + +403 #ifdef +__USE_XOPEN2K8 + + +406 +size_t + + $¡ºËn + ( +__cÚ¡ + * +__¡ršg +, +size_t + +__maxËn +) + +407 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +411 +__BEGIN_NAMESPACE_STD + + +413 * + $¡»¼Ü + ( +__”ºum +è +__THROW +; + +414 +__END_NAMESPACE_STD + + +415 #ià +defšed + +__USE_XOPEN2K + || defšed +__USE_MISC + + +423 #ià +defšed + +__USE_XOPEN2K + && !defšed +__USE_GNU + + +426 #ifdeà +__REDIRECT_NTH + + +427  + `__REDIRECT_NTH + ( +¡»¼Ü_r +, + +428 ( +__”ºum +, * +__buf +, +size_t + +__buæ’ +), + +429 +__xpg_¡»¼Ü_r +è + `__nÚnuÎ + ((2)); + +431  + $__xpg_¡»¼Ü_r + ( +__”ºum +, * +__buf +, +size_t + +__buæ’ +) + +432 +__THROW + + `__nÚnuÎ + ((2)); + +433  + #¡»¼Ü_r + +__xpg_¡»¼Ü_r + + + ) + +438 * + $¡»¼Ü_r + ( +__”ºum +, * +__buf +, +size_t + +__buæ’ +) + +439 +__THROW + + `__nÚnuÎ + ((2)); + +443 #ifdeà +__USE_XOPEN2K8 + + +445 * + $¡»¼Ü_l + ( +__”ºum +, +__loÿË_t + +__l +è +__THROW +; + +451  + $__bz”o + (* +__s +, +size_t + +__n +è +__THROW + + `__nÚnuÎ + ((1)); + +453 #ifdeà +__USE_BSD + + +455  + $bcÝy + ( +__cÚ¡ + * +__¤c +, * +__de¡ +, +size_t + +__n +) + +456 +__THROW + + `__nÚnuÎ + ((1, 2)); + +459  + $bz”o + (* +__s +, +size_t + +__n +è +__THROW + + `__nÚnuÎ + ((1)); + +462  + $bcmp + ( +__cÚ¡ + * +__s1 +, __cÚ¡ * +__s2 +, +size_t + +__n +) + +463 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +466 #ifdeà +__CORRECT_ISO_CPP_STRING_H_PROTO + + +469 * + `šdex + (* +__s +,  +__c +) + +470 +__THROW + + `__asm + ("šdex"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +471 +__cÚ¡ + * + `šdex + (__cÚ¡ * +__s +,  +__c +) + +472 +__THROW + + `__asm + ("šdex"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +474 #ià +defšed + +__OPTIMIZE__ + && !defšed +__CORRECT_ISO_CPP_STRINGS_H_PROTO + + +475 +__ex‹º_®ways_šlše + * + +476 + `šdex + (* +__s +,  +__c +è +__THROW + + +478  + `__bužtš_šdex + ( +__s +, +__c +); + +481 +__ex‹º_®ways_šlše + +__cÚ¡ + * + +482 + `šdex + ( +__cÚ¡ + * +__s +,  +__c +è +__THROW + + +484  + `__bužtš_šdex + ( +__s +, +__c +); + +487 + } +} + +489 * + $šdex + ( +__cÚ¡ + * +__s +,  +__c +) + +490 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +494 #ifdeà +__CORRECT_ISO_CPP_STRING_H_PROTO + + +497 * + `ršdex + (* +__s +,  +__c +) + +498 +__THROW + + `__asm + ("ršdex"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +499 +__cÚ¡ + * + `ršdex + (__cÚ¡ * +__s +,  +__c +) + +500 +__THROW + + `__asm + ("ršdex"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +502 #ià +defšed + +__OPTIMIZE__ + && !defšed +__CORRECT_ISO_CPP_STRINGS_H_PROTO + + +503 +__ex‹º_®ways_šlše + * + +504 + `ršdex + (* +__s +,  +__c +è +__THROW + + +506  + `__bužtš_ršdex + ( +__s +, +__c +); + +509 +__ex‹º_®ways_šlše + +__cÚ¡ + * + +510 + `ršdex + ( +__cÚ¡ + * +__s +,  +__c +è +__THROW + + +512  + `__bužtš_ršdex + ( +__s +, +__c +); + +515 + } +} + +517 * + $ršdex + ( +__cÚ¡ + * +__s +,  +__c +) + +518 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +523  + $ffs + ( +__i +è +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +527 #ifdef +__USE_GNU + + +528  + $ff¦ + ( +__l +è +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +529 #ifdeà +__GNUC__ + + +530 +__ex‹nsiÚ__ +  + $ff¦l + ( +__Î +) + +531 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +536  + $¡rÿ£cmp + ( +__cÚ¡ + * +__s1 +, __cÚ¡ * +__s2 +) + +537 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +540  + $¡ºÿ£cmp + ( +__cÚ¡ + * +__s1 +, __cÚ¡ * +__s2 +, +size_t + +__n +) + +541 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +544 #ifdef +__USE_GNU + + +547  + $¡rÿ£cmp_l + ( +__cÚ¡ + * +__s1 +, __cÚ¡ * +__s2 +, + +548 +__loÿË_t + +__loc +) + +549 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2, 3)); + +551  + $¡ºÿ£cmp_l + ( +__cÚ¡ + * +__s1 +, __cÚ¡ * +__s2 +, + +552 +size_t + +__n +, +__loÿË_t + +__loc +) + +553 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2, 4)); + +556 #ifdef +__USE_BSD + + +559 * + $¡r£p + (** +__»¡riù + +__¡ršgp +, + +560 +__cÚ¡ + * +__»¡riù + +__d–im +) + +561 +__THROW + + `__nÚnuÎ + ((1, 2)); + +564 #ifdef +__USE_XOPEN2K8 + + +566 * + $¡rsigÇl + ( +__sig +è +__THROW +; + +569 * + $__¡pýy + (* +__»¡riù + +__de¡ +, +__cÚ¡ + *__»¡riù +__¤c +) + +570 +__THROW + + `__nÚnuÎ + ((1, 2)); + +571 * + $¡pýy + (* +__»¡riù + +__de¡ +, +__cÚ¡ + *__»¡riù +__¤c +) + +572 +__THROW + + `__nÚnuÎ + ((1, 2)); + +576 * + $__¡²ýy + (* +__»¡riù + +__de¡ +, + +577 +__cÚ¡ + * +__»¡riù + +__¤c +, +size_t + +__n +) + +578 +__THROW + + `__nÚnuÎ + ((1, 2)); + +579 * + $¡²ýy + (* +__»¡riù + +__de¡ +, + +580 +__cÚ¡ + * +__»¡riù + +__¤c +, +size_t + +__n +) + +581 +__THROW + + `__nÚnuÎ + ((1, 2)); + +584 #ifdef +__USE_GNU + + +586  + $¡rv”scmp + ( +__cÚ¡ + * +__s1 +, __cÚ¡ * +__s2 +) + +587 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +590 * + $¡räy + (* +__¡ršg +è +__THROW + + `__nÚnuÎ + ((1)); + +593 * + $memäob + (* +__s +, +size_t + +__n +è +__THROW + + `__nÚnuÎ + ((1)); + +595 #iâdeà +ba£Çme + + +600 #ifdeà +__CORRECT_ISO_CPP_STRING_H_PROTO + + +601 "C++" * + $ba£Çme + (* +__fž’ame +) + +602 +__THROW + + `__asm + ("ba£Çme"è + `__nÚnuÎ + ((1)); + +603 "C++" +__cÚ¡ + * + $ba£Çme + ( +__cÚ¡ + * +__fž’ame +) + +604 +__THROW + + `__asm + ("ba£Çme"è + `__nÚnuÎ + ((1)); + +606 * + $ba£Çme + ( +__cÚ¡ + * +__fž’ame +è +__THROW + + `__nÚnuÎ + ((1)); + +612 #ià +defšed + +__GNUC__ + && __GNUC__ >= 2 + +613 #ià +defšed + +__OPTIMIZE__ + && !defšed +__OPTIMIZE_SIZE__ + \ + +614 && ! +defšed + +__NO_INLINE__ + && !defšed +__ýlu¥lus + + +634  + ~ + +637  + ~ + +640 #ià +__USE_FORTIFY_LEVEL + > 0 && +defšed + +__ex‹º_®ways_šlše + + +642  + ~ + +646 +__END_DECLS + + + @/usr/include/sys/resource.h + +19 #iâdef +_SYS_RESOURCE_H + + +20  + #_SYS_RESOURCE_H + 1 + + ) + +22  + ~<ã©u»s.h +> + +25  + ~ + +27 #iâdeà +__id_t_defšed + + +28  +__id_t + + tid_t +; + +29  + #__id_t_defšed + + + ) + +32 + g__BEGIN_DECLS + + +38 #ià +defšed + +__USE_GNU + && !defšed +__ýlu¥lus + + +39  +__¾im™_»sourû + + t__¾im™_»sourû_t +; + +40  +__ru§ge_who + + t__ru§ge_who_t +; + +41  +__´iÜ™y_which + + t__´iÜ™y_which_t +; + +43  + t__¾im™_»sourû_t +; + +44  + t__ru§ge_who_t +; + +45  + t__´iÜ™y_which_t +; + +50 #iâdeà +__USE_FILE_OFFSET64 + + +51  + $g‘¾im™ + ( +__¾im™_»sourû_t + +__»sourû +, + +52  +¾im™ + * +__¾im™s +è +__THROW +; + +54 #ifdeà +__REDIRECT_NTH + + +55  + `__REDIRECT_NTH + ( +g‘¾im™ +, ( +__¾im™_»sourû_t + +__»sourû +, + +56  +¾im™ + * +__¾im™s +), +g‘¾im™64 +); + +58  + #g‘¾im™ + +g‘¾im™64 + + + ) + +61 #ifdeà +__USE_LARGEFILE64 + + +62  + $g‘¾im™64 + ( +__¾im™_»sourû_t + +__»sourû +, + +63  +¾im™64 + * +__¾im™s +è +__THROW +; + +69 #iâdeà +__USE_FILE_OFFSET64 + + +70  + $£Œlim™ + ( +__¾im™_»sourû_t + +__»sourû +, + +71 +__cÚ¡ +  +¾im™ + * +__¾im™s +è +__THROW +; + +73 #ifdeà +__REDIRECT_NTH + + +74  + `__REDIRECT_NTH + ( +£Œlim™ +, ( +__¾im™_»sourû_t + +__»sourû +, + +75 +__cÚ¡ +  +¾im™ + * +__¾im™s +), + +76 +£Œlim™64 +); + +78  + #£Œlim™ + +£Œlim™64 + + + ) + +81 #ifdeà +__USE_LARGEFILE64 + + +82  + $£Œlim™64 + ( +__¾im™_»sourû_t + +__»sourû +, + +83 +__cÚ¡ +  +¾im™64 + * +__¾im™s +è +__THROW +; + +88  + $g‘ru§ge + ( +__ru§ge_who_t + +__who +,  +ru§ge + * +__u§ge +è +__THROW +; + +94  + $g‘´iÜ™y + ( +__´iÜ™y_which_t + +__which +, +id_t + +__who +è +__THROW +; + +98  + $£riÜ™y + ( +__´iÜ™y_which_t + +__which +, +id_t + +__who +,  +__´io +) + +99 +__THROW +; + +101 +__END_DECLS + + + @/usr/include/sys/wait.h + +24 #iâdef +_SYS_WAIT_H + + +25  + #_SYS_WAIT_H + 1 + + ) + +27  + ~<ã©u»s.h +> + +29 + g__BEGIN_DECLS + + +31  + ~ + +32  + ~ + +35 #ià! +defšed + +_STDLIB_H + || (!defšed +__USE_XOPEN + && !defšed +__USE_XOPEN2K8 +) + +38  + ~ + +40 #ifdef +__USE_BSD + + +45 #ià +defšed + +__GNUC__ + && !defšed +__ýlu¥lus + + +46  + #__WAIT_INT +( +¡©us +) \ + +47 ( + `__ex‹nsiÚ__ + (((uniÚ { + `__ty³of +( +¡©us +è +__š +;  +__i +; }) \ + +48 { . +__š + = ( +¡©us +è}). +__i +)) + + ) + +50  + #__WAIT_INT +( +¡©us +è(*( +__cÚ¡ + *è&(¡©us)) + + ) + +58 #ià! +defšed + +__GNUC__ + || __GNUC__ < 2 || defšed +__ýlu¥lus + + +59  + #__WAIT_STATUS + * + + ) + +60  + #__WAIT_STATUS_DEFN + * + + ) + +65  +wa™ + * + m__u±r +; + +66 * + m__Œ +; + +67 } + t__WAIT_STATUS + + t__©Œibu‹__ + (( + t__Œª¥¬’t_uniÚ__ +)); + +68  + #__WAIT_STATUS_DEFN + * + + ) + +73  + #__WAIT_INT +( +¡©us +è(¡©us) + + ) + +74  + #__WAIT_STATUS + * + + ) + +75  + #__WAIT_STATUS_DEFN + * + + ) + +80  + ~ + +82  + #WEXITSTATUS +( +¡©us +è + `__WEXITSTATUS + ( + `__WAIT_INT + (¡©us)) + + ) + +83  + #WTERMSIG +( +¡©us +è + `__WTERMSIG + ( + `__WAIT_INT + (¡©us)) + + ) + +84  + #WSTOPSIG +( +¡©us +è + `__WSTOPSIG + ( + `__WAIT_INT + (¡©us)) + + ) + +85  + #WIFEXITED +( +¡©us +è + `__WIFEXITED + ( + `__WAIT_INT + (¡©us)) + + ) + +86  + #WIFSIGNALED +( +¡©us +è + `__WIFSIGNALED + ( + `__WAIT_INT + (¡©us)) + + ) + +87  + #WIFSTOPPED +( +¡©us +è + `__WIFSTOPPED + ( + `__WAIT_INT + (¡©us)) + + ) + +88 #ifdeà +__WIFCONTINUED + + +89  + #WIFCONTINUED +( +¡©us +è + `__WIFCONTINUED + ( + `__WAIT_INT + (¡©us)) + + ) + +93 #ifdef +__USE_BSD + + +94  + #WCOREFLAG + +__WCOREFLAG + + + ) + +95  + #WCOREDUMP +( +¡©us +è + `__WCOREDUMP + ( + `__WAIT_INT + (¡©us)) + + ) + +96  + #W_EXITCODE +( +»t +, +sig +è + `__W_EXITCODE + (»t, sig) + + ) + +97  + #W_STOPCODE +( +sig +è + `__W_STOPCODE + (sig) + + ) + +101 #ià +defšed + +__USE_SVID + || defšed +__USE_XOPEN + || defšed +__USE_XOPEN2K8 + + +104 + mP_ALL +, + +105 + mP_PID +, + +106 + mP_PGID + + +107 } + tidty³_t +; + +116 +__pid_t + +wa™ + ( +__WAIT_STATUS + +__¡©_loc +); + +118 #ifdef +__USE_BSD + + +120  + #WAIT_ANY + (-1è + + ) + +121  + #WAIT_MYPGRP + 0 + + ) + +139 +__pid_t + +wa™pid + (__pid_ˆ +__pid +, * +__¡©_loc +,  +__ÝtiÚs +); + +141 #ià +defšed + +__USE_SVID + || defšed +__USE_XOPEN + || defšed +__USE_XOPEN2K8 + + +142  + #__Ãed_sigšfo_t + + + ) + +143  + ~ + +155  +wa™id + ( +idty³_t + +__idty³ +, +__id_t + +__id +, +sigšfo_t + * +__šfÝ +, + +156  +__ÝtiÚs +); + +159 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + + +162  + gru§ge +; + +169 +__pid_t + + $wa™3 + ( +__WAIT_STATUS + +__¡©_loc +,  +__ÝtiÚs +, + +170  +ru§ge + * +__u§ge +è +__THROW +; + +173 #ifdeà +__USE_BSD + + +175 +__pid_t + + $wa™4 + ( +__pid_t + +__pid +, +__WAIT_STATUS + +__¡©_loc +,  +__ÝtiÚs +, + +176  +ru§ge + * +__u§ge +è +__THROW +; + +180 +__END_DECLS + + + @/usr/include/unistd.h + +23 #iâdef +_UNISTD_H + + +24  + #_UNISTD_H + 1 + + ) + +26  + ~<ã©u»s.h +> + +28 + g__BEGIN_DECLS + + +33 #ifdeà +__USE_XOPEN2K8 + + +35  + #_POSIX_VERSION + 200809L + + ) + +36 #–ià +defšed + +__USE_XOPEN2K + + +38  + #_POSIX_VERSION + 200112L + + ) + +39 #–ià +defšed + +__USE_POSIX199506 + + +41  + #_POSIX_VERSION + 199506L + + ) + +42 #–ià +defšed + +__USE_POSIX199309 + + +44  + #_POSIX_VERSION + 199309L + + ) + +47  + #_POSIX_VERSION + 199009L + + ) + +53 #ifdeà +__USE_XOPEN2K8 + + +54  + #__POSIX2_THIS_VERSION + 200809L + + ) + +56 #–ià +defšed + +__USE_XOPEN2K + + +58  + #__POSIX2_THIS_VERSION + 200112L + + ) + +59 #–ià +defšed + +__USE_POSIX199506 + + +61  + #__POSIX2_THIS_VERSION + 199506L + + ) + +64  + #__POSIX2_THIS_VERSION + 199209L + + ) + +68  + #_POSIX2_VERSION + +__POSIX2_THIS_VERSION + + + ) + +72  + #_POSIX2_C_BIND + +__POSIX2_THIS_VERSION + + + ) + +76  + #_POSIX2_C_DEV + +__POSIX2_THIS_VERSION + + + ) + +80  + #_POSIX2_SW_DEV + +__POSIX2_THIS_VERSION + + + ) + +84  + #_POSIX2_LOCALEDEF + +__POSIX2_THIS_VERSION + + + ) + +87 #ifdeà +__USE_XOPEN2K8 + + +88  + #_XOPEN_VERSION + 700 + + ) + +89 #–ià +defšed + +__USE_XOPEN2K + + +90  + #_XOPEN_VERSION + 600 + + ) + +91 #–ià +defšed + +__USE_UNIX98 + + +92  + #_XOPEN_VERSION + 500 + + ) + +94  + #_XOPEN_VERSION + 4 + + ) + +98  + #_XOPEN_XCU_VERSION + 4 + + ) + +101  + #_XOPEN_XPG2 + 1 + + ) + +102  + #_XOPEN_XPG3 + 1 + + ) + +103  + #_XOPEN_XPG4 + 1 + + ) + +106  + #_XOPEN_UNIX + 1 + + ) + +109  + #_XOPEN_CRYPT + 1 + + ) + +113  + #_XOPEN_ENH_I18N + 1 + + ) + +116  + #_XOPEN_LEGACY + 1 + + ) + +203  + ~ + +206 #ià +defšed + +__USE_UNIX98 + || defšed +__USE_XOPEN2K + + +207  + ~ + +211  + #STDIN_FILENO + 0 + + ) + +212  + #STDOUT_FILENO + 1 + + ) + +213  + #STDERR_FILENO + 2 + + ) + +218  + ~ + +220 #iâdef +__ssize_t_defšed + + +221  +__ssize_t + + tssize_t +; + +222  + #__ssize_t_defšed + + + ) + +225  + #__Ãed_size_t + + + ) + +226  + #__Ãed_NULL + + + ) + +227  + ~<¡ddef.h +> + +229 #ià +defšed + +__USE_XOPEN + || defšed +__USE_XOPEN2K + + +232 #iâdeà +__gid_t_defšed + + +233  +__gid_t + + tgid_t +; + +234  + #__gid_t_defšed + + + ) + +237 #iâdeà +__uid_t_defšed + + +238  +__uid_t + + tuid_t +; + +239  + #__uid_t_defšed + + + ) + +242 #iâdeà +__off_t_defšed + + +243 #iâdeà +__USE_FILE_OFFSET64 + + +244  +__off_t + + toff_t +; + +246  +__off64_t + + toff_t +; + +248  + #__off_t_defšed + + + ) + +250 #ià +defšed + +__USE_LARGEFILE64 + && !defšed +__off64_t_defšed + + +251  +__off64_t + + toff64_t +; + +252  + #__off64_t_defšed + + + ) + +255 #iâdeà +__u£cÚds_t_defšed + + +256  +__u£cÚds_t + + tu£cÚds_t +; + +257  + #__u£cÚds_t_defšed + + + ) + +260 #iâdeà +__pid_t_defšed + + +261  +__pid_t + + tpid_t +; + +262  + #__pid_t_defšed + + + ) + +266 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN_EXTENDED + || defšed +__USE_XOPEN2K + + +267 #iâdeà +__šŒ_t_defšed + + +268  +__šŒ_t + + tšŒ_t +; + +269  + #__šŒ_t_defšed + + + ) + +273 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN + + +274 #iâdeà +__sockËn_t_defšed + + +275  +__sockËn_t + + tsockËn_t +; + +276  + #__sockËn_t_defšed + + + ) + +282  + #R_OK + 4 + + ) + +283  + #W_OK + 2 + + ) + +284  + #X_OK + 1 + + ) + +285  + #F_OK + 0 + + ) + +288  + $acûss + ( +__cÚ¡ + * +__Çme +,  +__ty³ +è +__THROW + + `__nÚnuÎ + ((1)); + +290 #ifdeà +__USE_GNU + + +293  + $euidacûss + ( +__cÚ¡ + * +__Çme +,  +__ty³ +) + +294 +__THROW + + `__nÚnuÎ + ((1)); + +297  + $—cûss + ( +__cÚ¡ + * +__Çme +,  +__ty³ +) + +298 +__THROW + + `__nÚnuÎ + ((1)); + +301 #ifdeà +__USE_ATFILE + + +305  + $çcûs§t + ( +__fd +, +__cÚ¡ + * +__fže +,  +__ty³ +,  +__æag +) + +306 +__THROW + + `__nÚnuÎ + ((2)è +__wur +; + +311 #iâdef +_STDIO_H + + +312  + #SEEK_SET + 0 + + ) + +313  + #SEEK_CUR + 1 + + ) + +314  + #SEEK_END + 2 + + ) + +317 #ià +defšed + +__USE_BSD + && !defšed +L_SET + + +319  + #L_SET + +SEEK_SET + + + ) + +320  + #L_INCR + +SEEK_CUR + + + ) + +321  + #L_XTND + +SEEK_END + + + ) + +330 #iâdeà +__USE_FILE_OFFSET64 + + +331 +__off_t + + $l£ek + ( +__fd +, +__off_t + +__off£t +,  +__wh’û +è +__THROW +; + +333 #ifdeà +__REDIRECT_NTH + + +334 +__off64_t + + `__REDIRECT_NTH + ( +l£ek +, + +335 ( +__fd +, +__off64_t + +__off£t +,  +__wh’û +), + +336 +l£ek64 +); + +338  + #l£ek + +l£ek64 + + + ) + +341 #ifdeà +__USE_LARGEFILE64 + + +342 +__off64_t + + $l£ek64 + ( +__fd +, +__off64_t + +__off£t +,  +__wh’û +) + +343 +__THROW +; + +350  + `þo£ + ( +__fd +); + +357 +ssize_t + + $»ad + ( +__fd +, * +__buf +, +size_t + +__nby‹s +è +__wur +; + +363 +ssize_t + + $wr™e + ( +__fd +, +__cÚ¡ + * +__buf +, +size_t + +__n +è +__wur +; + +365 #ià +defšed + +__USE_UNIX98 + || defšed +__USE_XOPEN2K8 + + +366 #iâdeà +__USE_FILE_OFFSET64 + + +373 +ssize_t + + $´—d + ( +__fd +, * +__buf +, +size_t + +__nby‹s +, + +374 +__off_t + +__off£t +è +__wur +; + +381 +ssize_t + + $pwr™e + ( +__fd +, +__cÚ¡ + * +__buf +, +size_t + +__n +, + +382 +__off_t + +__off£t +è +__wur +; + +384 #ifdeà +__REDIRECT + + +385 +ssize_t + + `__REDIRECT + ( +´—d +, ( +__fd +, * +__buf +, +size_t + +__nby‹s +, + +386 +__off64_t + +__off£t +), + +387 +´—d64 +è +__wur +; + +388 +ssize_t + + `__REDIRECT + ( +pwr™e +, ( +__fd +, +__cÚ¡ + * +__buf +, + +389 +size_t + +__nby‹s +, +__off64_t + +__off£t +), + +390 +pwr™e64 +è +__wur +; + +392  + #´—d + +´—d64 + + + ) + +393  + #pwr™e + +pwr™e64 + + + ) + +397 #ifdeà +__USE_LARGEFILE64 + + +401 +ssize_t + + $´—d64 + ( +__fd +, * +__buf +, +size_t + +__nby‹s +, + +402 +__off64_t + +__off£t +è +__wur +; + +405 +ssize_t + + $pwr™e64 + ( +__fd +, +__cÚ¡ + * +__buf +, +size_t + +__n +, + +406 +__off64_t + +__off£t +è +__wur +; + +414  + $pe + ( +__pedes +[2]è +__THROW + +__wur +; + +416 #ifdeà +__USE_GNU + + +419  + $pe2 + ( +__pedes +[2],  +__æags +è +__THROW + +__wur +; + +429  + $®¬m + ( +__£cÚds +è +__THROW +; + +441  + `¦“p + ( +__£cÚds +); + +443 #ià( +defšed + +__USE_XOPEN_EXTENDED + && !defšed +__USE_XOPEN2K8 +) \ + +444 || +defšed + +__USE_BSD + + +449 +__u£cÚds_t + + $u®¬m + ( +__u£cÚds_t + +__v®ue +, __u£cÚds_ˆ +__š‹rv® +) + +450 +__THROW +; + +457  + `u¦“p + ( +__u£cÚds_t + +__u£cÚds +); + +466  + `·u£ + (); + +470  + $chown + ( +__cÚ¡ + * +__fže +, +__uid_t + +__owÃr +, +__gid_t + +__group +) + +471 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +473 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + || defšed +__USE_XOPEN2K8 + + +475  + $fchown + ( +__fd +, +__uid_t + +__owÃr +, +__gid_t + +__group +è +__THROW + +__wur +; + +480  + $lchown + ( +__cÚ¡ + * +__fže +, +__uid_t + +__owÃr +, +__gid_t + +__group +) + +481 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +485 #ifdeà +__USE_ATFILE + + +488  + $fchowÇt + ( +__fd +, +__cÚ¡ + * +__fže +, +__uid_t + +__owÃr +, + +489 +__gid_t + +__group +,  +__æag +) + +490 +__THROW + + `__nÚnuÎ + ((2)è +__wur +; + +494  + $chdœ + ( +__cÚ¡ + * +__·th +è +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +496 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + || defšed +__USE_XOPEN2K8 + + +498  + $fchdœ + ( +__fd +è +__THROW + +__wur +; + +508 * + $g‘cwd + (* +__buf +, +size_t + +__size +è +__THROW + +__wur +; + +510 #ifdef +__USE_GNU + + +514 * + $g‘_cu¼’t_dœ_Çme + (è +__THROW +; + +517 #ià( +defšed + +__USE_XOPEN_EXTENDED + && !defšed +__USE_XOPEN2K8 +) \ + +518 || +defšed + +__USE_BSD + + +522 * + $g‘wd + (* +__buf +) + +523 +__THROW + + `__nÚnuÎ + ((1)è +__©Œibu‹_d•»ÿ‹d__ + +__wur +; + +528  + $dup + ( +__fd +è +__THROW + +__wur +; + +531  + $dup2 + ( +__fd +,  +__fd2 +è +__THROW +; + +533 #ifdeà +__USE_GNU + + +536  + $dup3 + ( +__fd +,  +__fd2 +,  +__æags +è +__THROW +; + +540 ** +__’vœÚ +; + +541 #ifdeà +__USE_GNU + + +542 ** +’vœÚ +; + +548  + $execve + ( +__cÚ¡ + * +__·th +, *__cÚ¡ +__¬gv +[], + +549 * +__cÚ¡ + +__’vp +[]è +__THROW + + `__nÚnuÎ + ((1, 2)); + +551 #ifdeà +__USE_XOPEN2K8 + + +554  + $ãxecve + ( +__fd +, * +__cÚ¡ + +__¬gv +[], *__cÚ¡ +__’vp +[]) + +555 +__THROW + + `__nÚnuÎ + ((2)); + +560  + $execv + ( +__cÚ¡ + * +__·th +, *__cÚ¡ +__¬gv +[]) + +561 +__THROW + + `__nÚnuÎ + ((1, 2)); + +565  + $exeþe + ( +__cÚ¡ + * +__·th +, __cÚ¡ * +__¬g +, ...) + +566 +__THROW + + `__nÚnuÎ + ((1, 2)); + +570  + $exeþ + ( +__cÚ¡ + * +__·th +, __cÚ¡ * +__¬g +, ...) + +571 +__THROW + + `__nÚnuÎ + ((1, 2)); + +575  + $execvp + ( +__cÚ¡ + * +__fže +, *__cÚ¡ +__¬gv +[]) + +576 +__THROW + + `__nÚnuÎ + ((1, 2)); + +581  + $exeþp + ( +__cÚ¡ + * +__fže +, __cÚ¡ * +__¬g +, ...) + +582 +__THROW + + `__nÚnuÎ + ((1, 2)); + +584 #ifdeà +__USE_GNU + + +587  + $execv³ + ( +__cÚ¡ + * +__fže +, *__cÚ¡ +__¬gv +[], + +588 * +__cÚ¡ + +__’vp +[]) + +589 +__THROW + + `__nÚnuÎ + ((1, 2)); + +593 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN + + +595  + $niû + ( +__šc +è +__THROW + +__wur +; + +600  + $_ex™ + ( +__¡©us +è + `__©Œibu‹__ + (( +__nÜ‘uº__ +)); + +606  + ~ + +609  + $·thcÚf + ( +__cÚ¡ + * +__·th +,  +__Çme +) + +610 +__THROW + + `__nÚnuÎ + ((1)); + +613  + $å©hcÚf + ( +__fd +,  +__Çme +è +__THROW +; + +616  + $syscÚf + ( +__Çme +è +__THROW +; + +618 #ifdef +__USE_POSIX2 + + +620 +size_t + + $cÚf¡r + ( +__Çme +, * +__buf +, +size_t + +__Ën +è +__THROW +; + +625 +__pid_t + + $g‘pid + (è +__THROW +; + +628 +__pid_t + + $g‘µid + (è +__THROW +; + +632 #iâdeà +__FAVOR_BSD + + +633 +__pid_t + + $g‘pg½ + (è +__THROW +; + +635 #ifdeà +__REDIRECT_NTH + + +636 +__pid_t + + `__REDIRECT_NTH + ( +g‘pg½ +, (__pid_ˆ +__pid +), +__g‘pgid +); + +638  + #g‘pg½ + +__g‘pgid + + + ) + +643 +__pid_t + + $__g‘pgid + ( +__pid_t + +__pid +è +__THROW +; + +644 #ià +defšed + +__USE_XOPEN_EXTENDED + || defšed +__USE_XOPEN2K8 + + +645 +__pid_t + + $g‘pgid + ( +__pid_t + +__pid +è +__THROW +; + +652  + $£gid + ( +__pid_t + +__pid +, __pid_ˆ +__pgid +è +__THROW +; + +654 #ià +defšed + +__USE_SVID + || defšed +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + + +665 #iâdeà +__FAVOR_BSD + + +669  + $£g½ + (è +__THROW +; + +674 #ifdeà +__REDIRECT_NTH + + +675  + `__REDIRECT_NTH + ( +£g½ +, ( +__pid_t + +__pid +, __pid_ˆ +__pg½ +), +£gid +); + +677  + #£g½ + +£gid + + + ) + +686 +__pid_t + + $£tsid + (è +__THROW +; + +688 #ià +defšed + +__USE_XOPEN_EXTENDED + || defšed +__USE_XOPEN2K8 + + +690 +__pid_t + + $g‘sid + ( +__pid_t + +__pid +è +__THROW +; + +694 +__uid_t + + $g‘uid + (è +__THROW +; + +697 +__uid_t + + $g‘euid + (è +__THROW +; + +700 +__gid_t + + $g‘gid + (è +__THROW +; + +703 +__gid_t + + $g‘egid + (è +__THROW +; + +708  + $g‘groups + ( +__size +, +__gid_t + +__li¡ +[]è +__THROW + +__wur +; + +710 #ifdef +__USE_GNU + + +712  + $group_memb” + ( +__gid_t + +__gid +è +__THROW +; + +719  + $£tuid + ( +__uid_t + +__uid +è +__THROW +; + +721 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + + +724  + $£Œeuid + ( +__uid_t + +__ruid +, __uid_ˆ +__euid +è +__THROW +; + +727 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN2K + + +729  + $£‹uid + ( +__uid_t + +__uid +è +__THROW +; + +736  + $£tgid + ( +__gid_t + +__gid +è +__THROW +; + +738 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + + +741  + $£Œegid + ( +__gid_t + +__rgid +, __gid_ˆ +__egid +è +__THROW +; + +744 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN2K + + +746  + $£‹gid + ( +__gid_t + +__gid +è +__THROW +; + +749 #ifdeà +__USE_GNU + + +752  + $g‘»suid + ( +__uid_t + * +__ruid +, __uid_ˆ* +__euid +, __uid_ˆ* +__suid +) + +753 +__THROW +; + +757  + $g‘»sgid + ( +__gid_t + * +__rgid +, __gid_ˆ* +__egid +, __gid_ˆ* +__sgid +) + +758 +__THROW +; + +762  + $£Œesuid + ( +__uid_t + +__ruid +, __uid_ˆ +__euid +, __uid_ˆ +__suid +) + +763 +__THROW +; + +767  + $£Œesgid + ( +__gid_t + +__rgid +, __gid_ˆ +__egid +, __gid_ˆ +__sgid +) + +768 +__THROW +; + +775 +__pid_t + + $fÜk + (è +__THROW +; + +777 #ià( +defšed + +__USE_XOPEN_EXTENDED + && !defšed +__USE_XOPEN2K8 +) \ + +778 || +defšed + +__USE_BSD + + +783 +__pid_t + + $vfÜk + (è +__THROW +; + +789 * + $‰yÇme + ( +__fd +è +__THROW +; + +793  + $‰yÇme_r + ( +__fd +, * +__buf +, +size_t + +__buæ’ +) + +794 +__THROW + + `__nÚnuÎ + ((2)è +__wur +; + +798  + $i§‰y + ( +__fd +è +__THROW +; + +800 #ià +defšed + +__USE_BSD + \ + +801 || ( +defšed + +__USE_XOPEN_EXTENDED + && !defšed +__USE_UNIX98 +) + +804  + $‰y¦Ù + (è +__THROW +; + +809  + $lšk + ( +__cÚ¡ + * +__äom +, __cÚ¡ * +__to +) + +810 +__THROW + + `__nÚnuÎ + ((1, 2)è +__wur +; + +812 #ifdeà +__USE_ATFILE + + +815  + $lšk© + ( +__äomfd +, +__cÚ¡ + * +__äom +,  +__tofd +, + +816 +__cÚ¡ + * +__to +,  +__æags +) + +817 +__THROW + + `__nÚnuÎ + ((2, 4)è +__wur +; + +820 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + || defšed +__USE_XOPEN2K + + +822  + $symlšk + ( +__cÚ¡ + * +__äom +, __cÚ¡ * +__to +) + +823 +__THROW + + `__nÚnuÎ + ((1, 2)è +__wur +; + +828 +ssize_t + + $»adlšk + ( +__cÚ¡ + * +__»¡riù + +__·th +, + +829 * +__»¡riù + +__buf +, +size_t + +__Ën +) + +830 +__THROW + + `__nÚnuÎ + ((1, 2)è +__wur +; + +833 #ifdeà +__USE_ATFILE + + +835  + $symlšk© + ( +__cÚ¡ + * +__äom +,  +__tofd +, + +836 +__cÚ¡ + * +__to +è +__THROW + + `__nÚnuÎ + ((1, 3)è +__wur +; + +839 +ssize_t + + $»adlšk© + ( +__fd +, +__cÚ¡ + * +__»¡riù + +__·th +, + +840 * +__»¡riù + +__buf +, +size_t + +__Ën +) + +841 +__THROW + + `__nÚnuÎ + ((2, 3)è +__wur +; + +845  + $uÆšk + ( +__cÚ¡ + * +__Çme +è +__THROW + + `__nÚnuÎ + ((1)); + +847 #ifdeà +__USE_ATFILE + + +849  + $uÆšk© + ( +__fd +, +__cÚ¡ + * +__Çme +,  +__æag +) + +850 +__THROW + + `__nÚnuÎ + ((2)); + +854  + $rmdœ + ( +__cÚ¡ + * +__·th +è +__THROW + + `__nÚnuÎ + ((1)); + +858 +__pid_t + + $tcg‘pg½ + ( +__fd +è +__THROW +; + +861  + $tc£g½ + ( +__fd +, +__pid_t + +__pg½_id +è +__THROW +; + +868 * + `g‘logš + (); + +869 #ià +defšed + +__USE_REENTRANT + || defšed +__USE_POSIX199506 + + +876  + $g‘logš_r + (* +__Çme +, +size_t + +__Çme_Ën +è + `__nÚnuÎ + ((1)); + +879 #ifdef +__USE_BSD + + +881  + $£Žogš + ( +__cÚ¡ + * +__Çme +è +__THROW + + `__nÚnuÎ + ((1)); + +885 #ifdef +__USE_POSIX2 + + +889  + #__Ãed_g‘Ýt + + + ) + +890  + ~ + +894 #ià +defšed + +__USE_BSD + || defšed +__USE_UNIX98 + || defšed +__USE_XOPEN2K + + +898  + $g‘ho¡Çme + (* +__Çme +, +size_t + +__Ën +è +__THROW + + `__nÚnuÎ + ((1)); + +902 #ià +defšed + +__USE_BSD + || (defšed +__USE_XOPEN + && !defšed +__USE_UNIX98 +) + +905  + $£tho¡Çme + ( +__cÚ¡ + * +__Çme +, +size_t + +__Ën +) + +906 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +910  + $£tho¡id + ( +__id +è +__THROW + +__wur +; + +916  + $g‘domašÇme + (* +__Çme +, +size_t + +__Ën +) + +917 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +918  + $£tdomašÇme + ( +__cÚ¡ + * +__Çme +, +size_t + +__Ën +) + +919 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +925  + $vhªgup + (è +__THROW +; + +928  + $»voke + ( +__cÚ¡ + * +__fže +è +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +936  + $´ofž + (* +__§m¶e_bufãr +, +size_t + +__size +, + +937 +size_t + +__off£t +,  +__sÿË +) + +938 +__THROW + + `__nÚnuÎ + ((1)); + +944  + $acù + ( +__cÚ¡ + * +__Çme +è +__THROW +; + +948 * + $g‘u£rsh–l + (è +__THROW +; + +949  + $’du£rsh–l + (è +__THROW +; + +950  + $£tu£rsh–l + (è +__THROW +; + +956  + $d«mÚ + ( +__nochdœ +,  +__noþo£ +è +__THROW + +__wur +; + +960 #ià +defšed + +__USE_BSD + || (defšed +__USE_XOPEN + && !defšed +__USE_XOPEN2K +) + +963  + $chroÙ + ( +__cÚ¡ + * +__·th +è +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +967 * + $g‘·ss + ( +__cÚ¡ + * +__´om± +è + `__nÚnuÎ + ((1)); + +971 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN + || defšed +__USE_XOPEN2K + + +976  + `fsync + ( +__fd +); + +980 #ifdeà +__USE_GNU + + +983  + $syncfs + ( +__fd +è +__THROW +; + +987 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + + +990  + `g‘ho¡id + (); + +993  + $sync + (è +__THROW +; + +996 #ià +defšed + +__USE_BSD + || !defšed +__USE_XOPEN2K + + +999  + $g‘·gesize + (è +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +1004  + $g‘dbËsize + (è +__THROW +; + +1010 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + || defšed +__USE_XOPEN2K8 + + +1013 #iâdeà +__USE_FILE_OFFSET64 + + +1014  + $Œunÿ‹ + ( +__cÚ¡ + * +__fže +, +__off_t + +__Ëngth +) + +1015 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +1017 #ifdeà +__REDIRECT_NTH + + +1018  + `__REDIRECT_NTH + ( +Œunÿ‹ +, + +1019 ( +__cÚ¡ + * +__fže +, +__off64_t + +__Ëngth +), + +1020 +Œunÿ‹64 +è + `__nÚnuÎ + ((1)è +__wur +; + +1022  + #Œunÿ‹ + +Œunÿ‹64 + + + ) + +1025 #ifdeà +__USE_LARGEFILE64 + + +1026  + $Œunÿ‹64 + ( +__cÚ¡ + * +__fže +, +__off64_t + +__Ëngth +) + +1027 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +1032 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + || defšed +__USE_XOPEN2K + + +1035 #iâdeà +__USE_FILE_OFFSET64 + + +1036  + $árunÿ‹ + ( +__fd +, +__off_t + +__Ëngth +è +__THROW + +__wur +; + +1038 #ifdeà +__REDIRECT_NTH + + +1039  + `__REDIRECT_NTH + ( +árunÿ‹ +, ( +__fd +, +__off64_t + +__Ëngth +), + +1040 +árunÿ‹64 +è +__wur +; + +1042  + #árunÿ‹ + +árunÿ‹64 + + + ) + +1045 #ifdeà +__USE_LARGEFILE64 + + +1046  + $árunÿ‹64 + ( +__fd +, +__off64_t + +__Ëngth +è +__THROW + +__wur +; + +1052 #ià( +defšed + +__USE_XOPEN_EXTENDED + && !defšed +__USE_XOPEN2K +) \ + +1053 || +defšed + +__USE_MISC + + +1057  + $brk + (* +__addr +è +__THROW + +__wur +; + +1063 * + $sbrk + ( +šŒ_t + +__d– +è +__THROW +; + +1067 #ifdeà +__USE_MISC + + +1078  + $sysÿÎ + ( +__sy¢o +, ...è +__THROW +; + +1083 #ià( +defšed + +__USE_MISC + || defšed +__USE_XOPEN_EXTENDED +è&& !defšed +F_LOCK + + +1095  + #F_ULOCK + 0 + + ) + +1096  + #F_LOCK + 1 + + ) + +1097  + #F_TLOCK + 2 + + ) + +1098  + #F_TEST + 3 + + ) + +1100 #iâdeà +__USE_FILE_OFFSET64 + + +1101  + $lockf + ( +__fd +,  +__cmd +, +__off_t + +__Ën +è +__wur +; + +1103 #ifdeà +__REDIRECT + + +1104  + `__REDIRECT + ( +lockf +, ( +__fd +,  +__cmd +, +__off64_t + +__Ën +), + +1105 +lockf64 +è +__wur +; + +1107  + #lockf + +lockf64 + + + ) + +1110 #ifdeà +__USE_LARGEFILE64 + + +1111  + $lockf64 + ( +__fd +,  +__cmd +, +__off64_t + +__Ën +è +__wur +; + +1116 #ifdeà +__USE_GNU + + +1121  + #TEMP_FAILURE_RETRY +( +ex´essiÚ +) \ + +1122 ( +__ex‹nsiÚ__ + \ + +1123 ({  +__»suÉ +; \ + +1124 dØ +__»suÉ + = (è( +ex´essiÚ +); \ + +1125  +__»suÉ + =ð-1L && +”ºo + =ð +EINTR +); \ + +1126 +__»suÉ +; + } +})) + + ) + +1129 #ià +defšed + +__USE_POSIX199309 + || defšed +__USE_UNIX98 + + +1132  +fd©async + ( +__fždes +); + +1138 #ifdef +__USE_XOPEN + + +1140 * + $üy± + ( +__cÚ¡ + * +__key +, __cÚ¡ * +__§É +) + +1141 +__THROW + + `__nÚnuÎ + ((1, 2)); + +1145  + $’üy± + (* +__block +,  +__edæag +è +__THROW + + `__nÚnuÎ + ((1)); + +1152  + $swab + ( +__cÚ¡ + * +__»¡riù + +__äom +, *__»¡riù +__to +, + +1153 +ssize_t + +__n +è +__THROW + + `__nÚnuÎ + ((1, 2)); + +1159 #ià +defšed + +__USE_XOPEN + || defšed +__USE_XOPEN2K8 + + +1161 * + $ù”mid + (* +__s +è +__THROW +; + +1166 #ià +__USE_FORTIFY_LEVEL + > 0 && +defšed + +__ex‹º_®ways_šlše + + +1167  + ~ + +1170 +__END_DECLS + + + @defaults.i + +28  + $Profže_DeçuÉs +() + +30 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ADJUST_PLACEMENT_FAIRLY +, +TRUE + ); + +31 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ALLOW_AUTOMATIC_CLOSE +, +TRUE + ); + +32 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ALLOW_AUTO_CLOSE_MORE_RECENT +, +TRUE + ); + +33 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ALLOW_AUTOMATIC_SHRINK +, +TRUE + ); + +34 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ALLOW_AUTO_SHRINK_MORE_RECENT +, +TRUE + ); + +35 + `Tžwš_S‘_Glob®_O±iÚ +Ð +BEST_FIT_IS_TIGHT +, +FALSE + ); + +36 + `Tžwš_S‘_Glob®_O±iÚ +Ð +BREAK_MINIMUMS_FAIRLY +, +TRUE + ); + +37 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ENABLE_GRAVITY +, +TRUE + ); + +38 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ENFORCE_MAXIMUMS +, +TRUE + ); + +39 + `Tžwš_S‘_Glob®_O±iÚ +Ð +ENFORCE_MINIMUMS +, +TRUE + ); + +40 + `Tžwš_S‘_Glob®_O±iÚ +Ð +FIRST_FIT +, +FALSE + ); + +41 + `Tžwš_S‘_Glob®_O±iÚ +Ð +PREFER_CLOSE_TO_SHRINK +, +TRUE + ); + +42 + `Tžwš_S‘_Glob®_O±iÚ +Ð +PREFER_AUTOMATIC_CLOSE_TO_SEARCH +, +FALSE + ); + +43 + `Tžwš_S‘_Glob®_O±iÚ +Ð +PREFER_AUTO_SHRINK_TO_SEARCH +, +FALSE + ); + +44 + `Tžwš_S‘_Glob®_O±iÚ +Ð +PREFER_SHRINK_TO_SEARCH +, +FALSE + ); + +45 + `Tžwš_S‘_Glob®_O±iÚ +Ð +PRORATE_VERTICALLY_FIRST +, +TRUE + ); + +49 + `Tžwš_S‘_DeçuÉ_O±iÚ +Ð +EXPENSIVE_TO_REDRAW +, +FALSE + ); + +50 + `Tžwš_S‘_DeçuÉ_O±iÚ +Ð +FIXED_COMPLETELY +, +FALSE + ); + +51 + `Tžwš_S‘_DeçuÉ_O±iÚ +Ð +FIXED_BOTTOM_EDGE +, +FALSE + ); + +52 + `Tžwš_S‘_DeçuÉ_O±iÚ +Ð +FIXED_TOP_EDGE +, +FALSE + ); + +53 + `Tžwš_S‘_DeçuÉ_O±iÚ +Ð +FIXED_LEFT_EDGE +, +FALSE + ); + +54 + `Tžwš_S‘_DeçuÉ_O±iÚ +Ð +FIXED_RIGHT_EDGE +, +FALSE + ); + +55 + `Tžwš_S‘_DeçuÉ_O±iÚ +Ð +FIXED_SIZE +, +FALSE + ); + +56 + `Tžwš_S‘_DeçuÉ_O±iÚ +Ð +FIXED_HEIGHT +, +FALSE + ); + +57 + `Tžwš_S‘_DeçuÉ_O±iÚ +Ð +FIXED_WIDTH +, +FALSE + ); + +58 + `Tžwš_S‘_DeçuÉ_O±iÚ +Ð +REQUIRE_MANUAL_CLOSE +, +FALSE + ); + +59 + `Tžwš_S‘_DeçuÉ_O±iÚ +Ð +SHRINK_BASED_ON_CURRENT_SIZE +, +FALSE + ); + +60 + `Tžwš_S‘_DeçuÉ_O±iÚ +Ð +WEIGHTED_SHRINK +, +FALSE + ); + +65 + `U£rGlob®s_S‘_O±iÚ +Ð +ALLOW_AGGRESSIVE_REPOPULATION +, +TRUE + ); + +67 + `U£rGlob®s_S‘_O±iÚ +( + +68 +ALLOW_AUTO_SHRINK_ON_AUTO_REPOP +, +FALSE + ); + +69 + `U£rGlob®s_S‘_O±iÚ +( + +70 +ALLOW_AUTO_SHRINK_ON_EXPL_REPOP +, +TRUE + ); + +72 + `U£rGlob®s_S‘_O±iÚ +Ð +ALLOW_AUTO_SHRINK_ON_EXCHANGE +, +TRUE + ); + +73 + `U£rGlob®s_S‘_O±iÚ +Ð +ALLOW_AUTO_CLOSE_ON_EXCHANGE +, +FALSE + ); + +75 + `U£rGlob®s_S‘_O±iÚ +Ð +ALLOW_AUTOMATIC_SHRINK_BY_CLIENT +, +TRUE + ); + +76 + `U£rGlob®s_S‘_O±iÚ +Ð +ALLOW_AUTOMATIC_CLOSE_BY_CLIENT +, +TRUE + ); + +78 + `U£rGlob®s_S‘_O±iÚ +Ð +ALLOW_LISTENER_TO_CLOSE +, +TRUE + ); + +79 + `U£rGlob®s_S‘_O±iÚ +Ð +ALLOW_LSNR_TO_CHANGE_BY_CLIENT +, +FALSE + ); + +80 + `U£rGlob®s_S‘_O±iÚ +Ð +ALLOW_LSNR_TO_CLOSE_BY_CLIENT +, +FALSE + ); + +82 + `U£rGlob®s_S‘_O±iÚ +Ð +ALLOW_SHRINK_ON_AUTO_OPEN +, +TRUE + ); + +83 + `U£rGlob®s_S‘_O±iÚ +Ð +ALLOW_SHRINK_ON_CENTER_OPEN +, +TRUE + ); + +84 + `U£rGlob®s_S‘_O±iÚ +Ð +ALLOW_SHRINK_ON_CORNER_OPEN +, +FALSE + ); + +85 + `U£rGlob®s_S‘_O±iÚ +Ð +ALLOW_SHRINK_ON_RESIZE +, +FALSE + ); + +87 + `U£rGlob®s_S‘_O±iÚ +Ð +AUTO_DESIRED_ENLARGE +, +TRUE + ); + +89 + `U£rGlob®s_S‘_O±iÚ +Ð +AUTO_PRORATE +, +FALSE + ); + +90 + `U£rGlob®s_S‘_O±iÚ +Ð +AUTO_PRORATE_LOCALLY +, +TRUE + ); + +92 + `U£rGlob®s_S‘_O±iÚ +Ð +AUTO_REPOPULATE_LAST +, +FALSE + ); + +93 + `U£rGlob®s_S‘_O±iÚ +Ð +AUTO_REPOPULATE_ON_AUTO_UNZOOM +, +TRUE + ); + +94 + `U£rGlob®s_S‘_O±iÚ +Ð +AUTO_REPOPULATE_ON_CLOSE +, +TRUE + ); + +95 + `U£rGlob®s_S‘_O±iÚ +Ð +AUTO_REPOP_ON_DESKTOP_RESIZE +, +TRUE + ); + +96 + `U£rGlob®s_S‘_O±iÚ +Ð +AUTO_REPOP_ON_EXPLICIT_UNZOOM +, +TRUE + ); + +98 + `U£rGlob®s_S‘_O±iÚ +Ð +BIASED_AUTO_PRORATE +, +FALSE + ); + +99 + `U£rGlob®s_S‘_O±iÚ +Ð +BIASED_EXPLICIT_PRORATE +, +FALSE + ); + +101 + `U£rGlob®s_S‘_O±iÚ +Ð +ENABLE_AUTO_REPOP_DURING_LAYOUT +, +FALSE + ); + +102 + `U£rGlob®s_S‘_O±iÚ +Ð +ENABLE_AUTO_SIZING_DURING_LAYOUT +, +FALSE + ); + +104 + `U£rGlob®s_S‘_O±iÚ +Ð +FULL_SCREEN +, +FALSE + ); + +106 + `U£rGlob®s_S‘_O±iÚ +Ð +ONLY_REPOP_SINCE_ON_AUTO_UNZOOM +, +TRUE + ); + +107 + `U£rGlob®s_S‘_O±iÚ +Ð +ONLY_REPOPULATE_SINCE_ON_CLOSE +, +TRUE + ); + +108 + `U£rGlob®s_S‘_O±iÚ +( + +109 +ONLY_REPOP_SINCE_ON_EXPL_UNZOOM +, +TRUE + ); + +111 + `U£rGlob®s_S‘_O±iÚ +Ð +PREFER_CL_TO_SHR_ON_AUTO_OPEN +, +FALSE + ); + +112 + `U£rGlob®s_S‘_O±iÚ +Ð +PREFER_CL_TO_SHR_ON_CENTER_OPEN +, +FALSE + ); + +113 + `U£rGlob®s_S‘_O±iÚ +Ð +PREFER_CL_TO_SHR_ON_CORNER_OPEN +, +TRUE + ); + +114 + `U£rGlob®s_S‘_O±iÚ +Ð +PREFER_CL_TO_SHR_ON_EXCHANGE +, +FALSE + ); + +115 + `U£rGlob®s_S‘_O±iÚ +Ð +PREFER_CL_TO_SHR_ON_RESIZE +, +TRUE + ); + +117 + `U£rGlob®s_S‘_O±iÚ +Ð +PREFER_EXC_LOC_ON_ICONIZING +, +TRUE + ); + +118 + `U£rGlob®s_S‘_O±iÚ +Ð +PREFER_EXCHANGED_LOC_ON_OPENING +, +TRUE + ); + +120 + `U£rGlob®s_S‘_O±iÚ +( + +121 +PREFER_PREV_POS_ON_AUTO_REPOP +, +TRUE + ); + +122 + `U£rGlob®s_S‘_O±iÚ +( + +123 +PREFER_PREV_POS_ON_EXPL_REPOP +, +TRUE + ); + +125 + `U£rGlob®s_S‘_O±iÚ +( + +126 +PF_CTR_NBR_2_AUTO_CL_ON_OPEN +, +FALSE + ); + +127 + `U£rGlob®s_S‘_O±iÚ +( + +128 +PF_CTR_NBR_2_AUTO_SHR_ON_OPEN +, +FALSE + ); + +129 + `U£rGlob®s_S‘_O±iÚ +( + +130 +PF_CTR_NBR_2_SHRINK_ON_OPEN +, +FALSE + ); + +131 + `U£rGlob®s_S‘_O±iÚ +( + +132 +PF_EDGE_NBR_2_AUTO_CL_ON_OPEN +, +FALSE + ); + +133 + `U£rGlob®s_S‘_O±iÚ +( + +134 +PF_EDGE_NBR_2_AUTO_SHR_ON_OPEN +, +FALSE + ); + +135 + `U£rGlob®s_S‘_O±iÚ +( + +136 +PF_EDGE_NBR_2_SHRINK_ON_OPEN +, +FALSE + ); + +138 + `U£rGlob®s_S‘_O±iÚ +( + +139 +PF_DTOP_2_AUTO_CL_ON_AUTO_OPEN +, +TRUE + ); + +140 + `U£rGlob®s_S‘_O±iÚ +( + +141 +PF_DTOP_2_AUTO_SHR_ON_AUTO_OPEN +, +TRUE + ); + +142 + `U£rGlob®s_S‘_O±iÚ +( + +143 +PF_DTOP_2_SHRINK_ON_AUTO_OPEN +, +TRUE + ); + +145 + `U£rGlob®s_S‘_O±iÚ +( + +146 +PREF_SLD_TO_AUTO_CL_ON_RESIZE +, +FALSE + ); + +147 + `U£rGlob®s_S‘_O±iÚ +( + +148 +PREF_SLD_TO_AUTO_SHR_ON_RESIZE +, +FALSE + ); + +149 + `U£rGlob®s_S‘_O±iÚ +( + +150 +PREF_SLD_TO_SHRINK_ON_RESIZE +, +FALSE + ); + +151 + `U£rGlob®s_S‘_O±iÚ +( + +152 +PF_CTR_NBR_2_AUTO_CL_ON_RESIZE +, +FALSE + ); + +153 + `U£rGlob®s_S‘_O±iÚ +( + +154 +PF_CTR_NBR_2_AUTO_SHR_ON_RESIZE +, +FALSE + ); + +155 + `U£rGlob®s_S‘_O±iÚ +( + +156 +PF_CTR_NBR_2_SHRINK_ON_RESIZE +, +FALSE + ); + +157 + `U£rGlob®s_S‘_O±iÚ +( + +158 +PF_EDGE_NBR_2_AUTO_CL_ON_RESIZE +, +FALSE + ); + +159 + `U£rGlob®s_S‘_O±iÚ +( + +160 +PF_EDGE_NBR_2_AUTO_SHR_ON_RESIZE +, +FALSE + ); + +161 + `U£rGlob®s_S‘_O±iÚ +( + +162 +PF_EDGE_NBR_2_SHRINK_ON_RESIZE +, +FALSE + ); + +164 + `U£rGlob®s_S‘_O±iÚ +Ð +PREFER_UNZOOM_TO_CLOSE +, +TRUE + ); + +166 + `U£rGlob®s_S‘_O±iÚ +Ð +PRORATE_LOCALLY +, +TRUE + ); + +168 + `U£rGlob®s_S‘_O±iÚ +Ð +REPOPULATE_STRICTLY +, +FALSE + ); + +169 + `U£rGlob®s_S‘_O±iÚ +Ð +REPOPULATE_AUTO_CLOSED_ONLY +, +TRUE + ); + +171 + `U£rGlob®s_S‘_O±iÚ +( + +172 +REQUIRE_PREV_POS_ON_AUTO_REPOP +, +TRUE + ); + +173 + `U£rGlob®s_S‘_O±iÚ +( + +174 +REQUIRE_PREV_POS_ON_EXPL_REPOP +, +FALSE + ); + +176 + `U£rGlob®s_S‘_O±iÚ +Ð +RESET_MAX_ON_INCREASE +, +TRUE + ); + +177 + `U£rGlob®s_S‘_O±iÚ +Ð +RESET_MAX_ON_SHRINK +, +FALSE + ); + +179 + `U£rGlob®s_S‘_O±iÚ +Ð +RESET_MIN_ON_DECREASE +, +TRUE + ); + +180 + `U£rGlob®s_S‘_O±iÚ +Ð +RESET_MIN_ON_ENLARGE +, +FALSE + ); + +181 + `U£rGlob®s_S‘_O±iÚ +Ð +RESET_TIED_ZOOMED_MIN_ON_ENLARGE +, +FALSE + ); + +182 + `U£rGlob®s_S‘_O±iÚ +Ð +RESET_MIN_MAX_ON_UNSZD_MAN_OPEN +, +TRUE + ); + +184 + `U£rGlob®s_S‘_O±iÚ +Ð +RESET_ZOOM_MIN +, +FALSE + ); + +185 + `U£rGlob®s_S‘_O±iÚ +Ð +RESET_ZOOM_MIN_ALLOWS_DECREASE +, +FALSE + ); + +186 + `U£rGlob®s_S‘_O±iÚ +Ð +RESET_ZOOM_MIN_USES_DESIRE +, +TRUE + ); + +188 + `U£rGlob®s_S‘_O±iÚ +Ð +TREAT_MOVE_LIKE_RELOCATE +, +FALSE + ); + +190 + `U£rGlob®s_S‘_O±iÚ +Ð +TRY_CTR_NBRHD_ON_EXCHANGE +, +FALSE + ); + +192 + `U£rGlob®s_S‘_O±iÚ +Ð +TRY_CTR_NBRHD_ON_OPEN +, +FALSE + ); + +193 + `U£rGlob®s_S‘_O±iÚ +Ð +TRY_EDGE_NEIGHBORHOOD_ON_OPEN +, +FALSE + ); + +195 + `U£rGlob®s_S‘_O±iÚ +Ð +TRY_SLIDING_ON_RESIZE +, +FALSE + ); + +196 + `U£rGlob®s_S‘_O±iÚ +Ð +TRY_CTR_NBRHD_ON_RESIZE +, +FALSE + ); + +197 + `U£rGlob®s_S‘_O±iÚ +Ð +TRY_EDGE_NEIGHBORHOOD_ON_RESIZE +, +FALSE + ); + +199 + `U£rGlob®s_S‘_O±iÚ +Ð +TRY_REPOP_AGAIN_AFT_AUTO_PRORATE +, +TRUE + ); + +201 + `U£rGlob®s_S‘_O±iÚ +Ð +UNZOOM_TIED_LSNR_IF_NECESSARY +, +FALSE + ); + +203 + `U£rGlob®s_S‘_O±iÚ +Ð +ZOOM_ON_CREATE +, +FALSE + ); + +208 + `U£rGlob®s_S‘_O±iÚ +Ð +ACCEPT_NON_LISTENER_IN_BODY +, +TRUE + ); + +209 + `U£rGlob®s_S‘_O±iÚ +Ð +ACCEPT_NON_LISTENER_IN_BORDER +, +FALSE + ); + +210 + `U£rGlob®s_S‘_O±iÚ +Ð +ACCEPT_NON_LISTENER_IN_GADGET +, +FALSE + ); + +211 + `U£rGlob®s_S‘_O±iÚ +Ð +ACCEPT_NON_LISTENER_IN_HEADER +, +TRUE + ); + +213 + `U£rGlob®s_S‘_O±iÚ +Ð +AUTO_PLACE_ON_ICON_OPEN +, +FALSE + ); + +214 + `U£rGlob®s_S‘_O±iÚ +Ð +AUTO_PLACE_ON_MENU_OPEN +, +FALSE + ); + +215 + `U£rGlob®s_S‘_O±iÚ +Ð +AUTO_PLACE_ON_UNSIZED_OPEN +, +TRUE + ); + +217 + `U£rGlob®s_S‘_O±iÚ +Ð +BUTTON_MAKES_LISTENER_IN_BODY +, +TRUE + ); + +218 + `U£rGlob®s_S‘_O±iÚ +Ð +BUTTON_MAKES_LISTENER_IN_HEADER +, +TRUE + ); + +220 + `U£rGlob®s_S‘_O±iÚ +Ð +CENTER_CURSOR_ON_MOVE +, +TRUE + ); + +221 + `U£rGlob®s_S‘_O±iÚ +Ð +CENTER_CURSOR_ON_RELOCATE +, +TRUE + ); + +223 + `U£rGlob®s_S‘_O±iÚ +Ð +CLEAR_BODY_ON_REDRAW +, +TRUE + ); + +225 + `U£rGlob®s_S‘_O±iÚ +Ð +CLOSE_IN_HEADER +, +FALSE + ); + +226 + `U£rGlob®s_S‘_O±iÚ +Ð +CLOSE_IN_CORNER_BORDER +, +FALSE + ); + +227 + `U£rGlob®s_S‘_O±iÚ +Ð +CLOSE_IN_SIDE_BORDER +, +FALSE + ); + +228 + `U£rGlob®s_S‘_O±iÚ +Ð +CLOSE_IN_MOVE_GADGET +, +TRUE + ); + +229 + `U£rGlob®s_S‘_O±iÚ +Ð +CLOSE_IN_ZOOM_GADGET +, +TRUE + ); + +231 + `U£rGlob®s_S‘_O±iÚ +Ð +DESIRE_IN_HEADER +, +FALSE + ); + +232 + `U£rGlob®s_S‘_O±iÚ +Ð +DESIRE_IN_CORNER_BORDER +, +FALSE + ); + +233 + `U£rGlob®s_S‘_O±iÚ +Ð +DESIRE_IN_SIDE_BORDER +, +FALSE + ); + +234 + `U£rGlob®s_S‘_O±iÚ +Ð +DESIRE_IN_MOVE_GADGET +, +FALSE + ); + +235 + `U£rGlob®s_S‘_O±iÚ +Ð +DESIRE_IN_ZOOM_GADGET +, +TRUE + ); + +237 + `U£rGlob®s_S‘_O±iÚ +Ð +DISTINGUISH_CORNER_BORDERS +, +TRUE + ); + +238 + `U£rGlob®s_S‘_O±iÚ +( + +239 +DISTNGSH_CORNER_BORDERS_BY_INV +, +TRUE + ); + +241 + `U£rGlob®s_S‘_O±iÚ +Ð +DRAW_X_ON_MOVE +, +TRUE + ); + +242 + `U£rGlob®s_S‘_O±iÚ +Ð +DRAW_X_ON_OPEN +, +TRUE + ); + +243 + `U£rGlob®s_S‘_O±iÚ +Ð +DRAW_X_ON_RESIZE +, +TRUE + ); + +245 + `U£rGlob®s_S‘_O±iÚ +Ð +ENLARGE_IN_HEADER +, +FALSE + ); + +246 + `U£rGlob®s_S‘_O±iÚ +Ð +ENLARGE_IN_CORNER_BORDER +, +FALSE + ); + +247 + `U£rGlob®s_S‘_O±iÚ +Ð +ENLARGE_IN_SIDE_BORDER +, +FALSE + ); + +248 + `U£rGlob®s_S‘_O±iÚ +Ð +ENLARGE_IN_MOVE_GADGET +, +FALSE + ); + +249 + `U£rGlob®s_S‘_O±iÚ +Ð +ENLARGE_IN_ZOOM_GADGET +, +TRUE + ); + +251 + `U£rGlob®s_S‘_O±iÚ +Ð +EXCHANGE_IN_HEADER +, +FALSE + ); + +252 + `U£rGlob®s_S‘_O±iÚ +Ð +EXCHANGE_IN_ICON +, +TRUE + ); + +253 + `U£rGlob®s_S‘_O±iÚ +Ð +EXCHANGE_IN_CORNER_BORDER +, +TRUE + ); + +254 + `U£rGlob®s_S‘_O±iÚ +Ð +EXCHANGE_IN_SIDE_BORDER +, +FALSE + ); + +255 + `U£rGlob®s_S‘_O±iÚ +Ð +EXCHANGE_IN_MOVE_GADGET +, +TRUE + ); + +256 + `U£rGlob®s_S‘_O±iÚ +Ð +EXCHANGE_IN_ZOOM_GADGET +, +FALSE + ); + +258 + `U£rGlob®s_S‘_O±iÚ +( + +259 +INCL_BGRND_MENU_IN_WINDOW_MENU +, +TRUE + ); + +261 + `U£rGlob®s_S‘_O±iÚ +Ð +KEY_MAKES_LISTENER_IN_BODY +, +TRUE + ); + +262 + `U£rGlob®s_S‘_O±iÚ +Ð +KEY_MAKES_LISTENER_IN_BORDER +, +FALSE + ); + +263 + `U£rGlob®s_S‘_O±iÚ +Ð +KEY_MAKES_LISTENER_IN_GADGET +, +FALSE + ); + +264 + `U£rGlob®s_S‘_O±iÚ +Ð +KEY_MAKES_LISTENER_IN_HEADER +, +FALSE + ); + +266 + `U£rGlob®s_S‘_O±iÚ +Ð +FOCUS_FOLLOWS_CURSOR +, +TRUE + ); + +268 + `U£rGlob®s_S‘_O±iÚ +Ð +MANAGER_MENU_IN_BODY +, +FALSE + ); + +269 + `U£rGlob®s_S‘_O±iÚ +Ð +MANAGER_MENU_IN_HEADER +, +TRUE + ); + +270 + `U£rGlob®s_S‘_O±iÚ +Ð +MANAGER_MENU_IN_ICON +, +TRUE + ); + +271 + `U£rGlob®s_S‘_O±iÚ +Ð +MANAGER_MENU_IN_CORNER_BORDER +, +TRUE + ); + +272 + `U£rGlob®s_S‘_O±iÚ +Ð +MANAGER_MENU_IN_SIDE_BORDER +, +TRUE + ); + +273 + `U£rGlob®s_S‘_O±iÚ +Ð +MANAGER_MENU_IN_MOVE_GADGET +, +FALSE + ); + +274 + `U£rGlob®s_S‘_O±iÚ +Ð +MANAGER_MENU_IN_ZOOM_GADGET +, +FALSE + ); + +276 + `U£rGlob®s_S‘_O±iÚ +Ð +MIDDLE_MENU +, +FALSE + ); + +278 + `U£rGlob®s_S‘_O±iÚ +Ð +MOVE_IN_HEADER +, +TRUE + ); + +279 + `U£rGlob®s_S‘_O±iÚ +Ð +MOVE_IN_ICON +, +TRUE + ); + +280 + `U£rGlob®s_S‘_O±iÚ +Ð +MOVE_IN_CORNER_BORDER +, +TRUE + ); + +281 + `U£rGlob®s_S‘_O±iÚ +Ð +MOVE_IN_SIDE_BORDER +, +TRUE + ); + +282 + `U£rGlob®s_S‘_O±iÚ +Ð +MOVE_IN_MOVE_GADGET +, +TRUE + ); + +283 + `U£rGlob®s_S‘_O±iÚ +Ð +MOVE_IN_ZOOM_GADGET +, +FALSE + ); + +285 + `U£rGlob®s_S‘_O±iÚ +Ð +PLACE_CSR_IN_BODY_NOT_BORDER +, +TRUE + ); + +286 + `U£rGlob®s_S‘_O±iÚ +Ð +PLACE_CSR_IN_BODY_NOT_GADGET +, +TRUE + ); + +288 + `U£rGlob®s_S‘_O±iÚ +( + +289 +PLACE_CSR_IN_BORDER_AFTER_RESIZE +, +FALSE + ); + +291 + `U£rGlob®s_S‘_O±iÚ +( + +292 +PLACE_CSR_GDGT_AFT_CL_AUTO_OPEN +, +FALSE + ); + +293 + `U£rGlob®s_S‘_O±iÚ +( + +294 +PLACE_CSR_GDGT_AFT_US_AUTO_OPEN +, +TRUE + ); + +295 + `U£rGlob®s_S‘_O±iÚ +( + +296 +PLACE_CSR_IN_GADGET_AFT_MAN_OPEN +, +TRUE + ); + +298 + `U£rGlob®s_S‘_O±iÚ +( + +299 +PLACE_CSR_IN_GADGET_AFT_EXCHANGE +, +TRUE + ); + +300 + `U£rGlob®s_S‘_O±iÚ +( + +301 +PLACE_CSR_IN_GADGET_AFT_MOVE +, +TRUE + ); + +303 + `U£rGlob®s_S‘_O±iÚ +Ð +PLACE_CSR_IN_ICON_AFTER_CLOSE +, +FALSE + ); + +305 + `U£rGlob®s_S‘_O±iÚ +Ð +PLACE_CSR_BACK_AFTER_MENU_OP +, +TRUE + ); + +306 + `U£rGlob®s_S‘_O±iÚ +Ð +PLACE_CSR_BACK_ON_CANCEL +, +TRUE + ); + +308 + `U£rGlob®s_S‘_O±iÚ +Ð +REDRAW_IN_HEADER +, +FALSE + ); + +309 + `U£rGlob®s_S‘_O±iÚ +Ð +REDRAW_IN_ICON +, +TRUE + ); + +310 + `U£rGlob®s_S‘_O±iÚ +Ð +REDRAW_IN_CORNER_BORDER +, +TRUE + ); + +311 + `U£rGlob®s_S‘_O±iÚ +Ð +REDRAW_IN_SIDE_BORDER +, +TRUE + ); + +312 + `U£rGlob®s_S‘_O±iÚ +Ð +REDRAW_IN_MOVE_GADGET +, +TRUE + ); + +313 + `U£rGlob®s_S‘_O±iÚ +Ð +REDRAW_IN_ZOOM_GADGET +, +TRUE + ); + +315 + `U£rGlob®s_S‘_O±iÚ +Ð +RELOCATE_IN_HEADER +, +FALSE + ); + +316 + `U£rGlob®s_S‘_O±iÚ +Ð +RELOCATE_IN_CORNER_BORDER +, +FALSE + ); + +317 + `U£rGlob®s_S‘_O±iÚ +Ð +RELOCATE_IN_SIDE_BORDER +, +FALSE + ); + +318 + `U£rGlob®s_S‘_O±iÚ +Ð +RELOCATE_IN_MOVE_GADGET +, +TRUE + ); + +319 + `U£rGlob®s_S‘_O±iÚ +Ð +RELOCATE_IN_ZOOM_GADGET +, +FALSE + ); + +321 + `U£rGlob®s_S‘_O±iÚ +Ð +RESIZE_IN_HEADER +, +FALSE + ); + +322 + `U£rGlob®s_S‘_O±iÚ +Ð +RESIZE_IN_CORNER_BORDER +, +TRUE + ); + +323 + `U£rGlob®s_S‘_O±iÚ +Ð +RESIZE_IN_SIDE_BORDER +, +TRUE + ); + +324 + `U£rGlob®s_S‘_O±iÚ +Ð +RESIZE_IN_MOVE_GADGET +, +FALSE + ); + +325 + `U£rGlob®s_S‘_O±iÚ +Ð +RESIZE_IN_ZOOM_GADGET +, +FALSE + ); + +327 + `U£rGlob®s_S‘_O±iÚ +Ð +SHOW_LISTENER_IN_BORDERS +, +FALSE + ); + +328 + `U£rGlob®s_S‘_O±iÚ +Ð +SHOW_LISTENER_IN_HEADER +, +TRUE + ); + +329 + `U£rGlob®s_S‘_O±iÚ +Ð +SHOW_FOCUS_IN_BORDERS +, +TRUE + ); + +330 + `U£rGlob®s_S‘_O±iÚ +Ð +SHOW_FOCUS_IN_HEADER +, +FALSE + ); + +332 + `U£rGlob®s_S‘_O±iÚ +Ð +USE_CORNER_BORDERS +, +TRUE + ); + +334 + `U£rGlob®s_S‘_O±iÚ +Ð +USE_ICON_AREA +, +FALSE + ); + +335 + `U£rGlob®s_S‘_O±iÚ +Ð +USE_ICONS +, +TRUE + ); + +336 + `U£rGlob®s_S‘_O±iÚ +Ð +USE_RTL_ICON +, +TRUE + ); + +338 + `U£rGlob®s_S‘_O±iÚ +Ð +USER_MENU_IN_BODY +, +FALSE + ); + +339 + `U£rGlob®s_S‘_O±iÚ +Ð +USER_MENU_IN_HEADER +, +FALSE + ); + +340 + `U£rGlob®s_S‘_O±iÚ +Ð +USER_MENU_IN_SIDE_BORDER +, +FALSE + ); + +341 + `U£rGlob®s_S‘_O±iÚ +Ð +USER_MENU_IN_CORNER_BORDER +, +FALSE + ); + +342 + `U£rGlob®s_S‘_O±iÚ +Ð +USER_MENU_IN_ICON +, +FALSE + ); + +343 + `U£rGlob®s_S‘_O±iÚ +Ð +USER_MENU_IN_MOVE_GADGET +, +FALSE + ); + +344 + `U£rGlob®s_S‘_O±iÚ +Ð +USER_MENU_IN_ZOOM_GADGET +, +FALSE + ); + +346 + `U£rGlob®s_S‘_O±iÚ +Ð +ZOOM_IN_HEADER +, +FALSE + ); + +347 + `U£rGlob®s_S‘_O±iÚ +Ð +ZOOM_IN_CORNER_BORDER +, +FALSE + ); + +348 + `U£rGlob®s_S‘_O±iÚ +Ð +ZOOM_IN_SIDE_BORDER +, +FALSE + ); + +349 + `U£rGlob®s_S‘_O±iÚ +Ð +ZOOM_IN_MOVE_GADGET +, +FALSE + ); + +350 + `U£rGlob®s_S‘_O±iÚ +Ð +ZOOM_IN_ZOOM_GADGET +, +TRUE + ); + +354 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +ACCEPT_BUTTON_IN_BODY +, +TRUE + ); + +355 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +ACCEPT_BUTTON_IN_HEADER +, +TRUE + ); + +356 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +ACCEPT_BUTTON_IN_ICON +, +TRUE + ); + +358 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +ACCEPT_KEY_IN_BODY +, +TRUE + ); + +359 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +ACCEPT_KEY_IN_BORDER +, +TRUE + ); + +360 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +ACCEPT_KEY_IN_GADGET +, +TRUE + ); + +361 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +ACCEPT_KEY_IN_HEADER +, +TRUE + ); + +362 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +ACCEPT_KEY_IN_ICON +, +TRUE + ); + +364 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +AGGRESSIVELY_REPOPULATE +, +FALSE + ); + +366 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +ALLOW_SHRINK_ON_UNZOOM +, +TRUE + ); + +367 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +ALLOW_SHRINK_ON_AUTO_UNZOOM +, +TRUE + ); + +369 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +ALLOW_ZOOM_CLOSE +, +TRUE + ); + +371 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +AUTO_OPEN_ON_CREATE +, +TRUE + ); + +372 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +AUTO_OPEN_ON_WRITE +, +FALSE + ); + +374 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +AUTO_PLACE_ON_CLIENT_OPEN +, +TRUE + ); + +376 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +AUTO_RESATISFY_ON_RESET_MINMAX +, +TRUE + ); + +378 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +CLIENT_DRAWS_ICON +, +FALSE + ); + +379 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +CLIENT_PROVIDES_HEADER +, +FALSE + ); + +381 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +CONSIDER_FOR_REPOPULATION +, +TRUE + ); + +383 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +ENFORCE_CLIENT_MINIMUMS +, +TRUE + ); + +384 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +ENFORCE_CLIENT_MAXIMUMS +, +FALSE + ); + +386 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +LISTENER_TIED_TO_ZOOM +, +FALSE + ); + +388 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +FORCE_SHRINK_ON_UNZOOM +, +TRUE + ); + +389 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +FORCE_SHRINK_ON_AUTO_UNZOOM +, +FALSE + ); + +391 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +GLASS_CLIENT +, +FALSE + ); + +393 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +ICON_DRAWN_BY_CLIENT +, +FALSE + ); + +395 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +IGNORE_INITIAL_POSITION_HINTS +, +FALSE + ); + +396 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +IGNORE_INITIAL_SIZE_HINTS +, +FALSE + ); + +397 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +IGNORE_POSITION_HINTS +, +FALSE + ); + +398 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +IGNORE_SIZE_HINTS +, +FALSE + ); + +400 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +INCLUDE_RES_CLASS_IN_TITLE +, +TRUE + ); + +401 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +INCLUDE_RES_CLASS_IN_ICON_TITLE +, +TRUE + ); + +402 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +INCLUDE_RES_NAME_IN_TITLE +, +FALSE + ); + +403 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +INCLUDE_RES_NAME_IN_ICON_TITLE +, +FALSE + ); + +404 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +INCLUDE_NAME_IN_TITLE +, +TRUE + ); + +405 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +INCLUDE_NAME_IN_ICON_TITLE +, +TRUE + ); + +406 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +INCLUDE_HOST_IN_TITLE +, +TRUE + ); + +407 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +INCLUDE_HOST_IN_ICON_TITLE +, +TRUE + ); + +409 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +INCLUDE_TITLE_IN_HEADER +, +TRUE + ); + +410 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +INCLUDE_TITLE_IN_PIXMAP_ICON +, +FALSE + ); + +411 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +INCLUDE_TITLE_IN_CLIENT_ICON +, +FALSE + ); + +413 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +INVERT_ICON_WHEN_PENDING +, +TRUE + ); + +415 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +NOTE_LISTENER +, +TRUE + ); + +416 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +NOTE_LISTENER_INPUT +, +FALSE + ); + +417 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +NOTE_CLOSED_INPUT +, +FALSE + ); + +418 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +NOTE_CLOSED_OUTPUT +, +FALSE + ); + +419 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +NOTE_OPEN_INPUT +, +FALSE + ); + +420 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +NOTE_OPEN_OUTPUT +, +FALSE + ); + +422 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +PREFER_PREVIOUS_ICON_POSITION +, +TRUE + ); + +423 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +PREFER_PREV_POS +, +TRUE + ); + +424 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +REQUIRE_PREVIOUS_ICON_POSITION +, +FALSE + ); + +425 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +REQUIRE_PREV_POS +, +FALSE + ); + +427 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +SAVE_IN_LAYOUT +, +TRUE + ); + +429 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +SHOW_ICON +, +TRUE + ); + +431 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +USE_BORDERS +, +TRUE + ); + +432 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +USE_GADGETS +, +TRUE + ); + +433 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +USE_HEADER +, +TRUE + ); + +434 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +USE_MOVE_GADGET +, +TRUE + ); + +436 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +ZOOM_FULL_EXPLICIT +, +FALSE + ); + +437 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +ZOOM_FULL_HEIGHT +, +FALSE + ); + +438 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +ZOOM_FULL_WIDTH +, +FALSE + ); + +440 + `U£rwš_S‘_DeçuÉ_O±iÚ +Ð +ZOOM_ON_OPEN +, +FALSE + ); + +444 + `U£rGlob®s_S‘_V®ue +Ð +ICON_PLACEMENT +, () +IcÚ_TÝ + ); + +445 + `U£rGlob®s_S‘_V®ue +( + +446 +SECONDARY_ICON_PLACEMENT +, () +IcÚ_Leá + ); + +448 + `U£rGlob®s_S‘_V®ue +Ð +NEIGHBORHOOD_SHRINK_FACTOR +, 50 ); + +450 + `U£rGlob®s_S‘_V®ue +Ð +GRAVITY +, 12 ); + +452 + `U£rGlob®s_S‘_V®ue +Ð +BORDER_SIZE +, 5 ); + +453 + `U£rGlob®s_S‘_V®ue +Ð +OUTER_BORDER_LINEWIDTH +, 2 ); + +454 + `U£rGlob®s_S‘_V®ue +Ð +INNER_BORDER_LINEWIDTH +, 1 ); + +456 + `U£rGlob®s_S‘_V®ue +Ð +GADGET_WIDTH +, 12 ); + +460 + `U£rwš_S‘_DeçuÉ_V®ue +Ð +HEADER_HEIGHT +, 16 ); + +462 + `U£rwš_S‘_DeçuÉ_V®ue +Ð +ICON_WIDTH +, 64 ); + +463 + `U£rwš_S‘_DeçuÉ_V®ue +Ð +ICON_HEIGHT +, 64 ); + +465 + `U£rwš_S‘_DeçuÉ_V®ue +Ð +ICON_BODY_TOP +, 2 ); + +466 + `U£rwš_S‘_DeçuÉ_V®ue +Ð +ICON_BODY_BOTTOM +, 61 ); + +467 + `U£rwš_S‘_DeçuÉ_V®ue +Ð +ICON_BODY_LEFT +, 2 ); + +468 + `U£rwš_S‘_DeçuÉ_V®ue +Ð +ICON_BODY_RIGHT +, 61 ); + +470 + `U£rwš_S‘_DeçuÉ_V®ue +Ð +ICON_RES_TOP +, 2 ); + +471 + `U£rwš_S‘_DeçuÉ_V®ue +Ð +ICON_RES_BOTTOM +, 10 ); + +472 + `U£rwš_S‘_DeçuÉ_V®ue +Ð +ICON_RES_LEFT +, 2 ); + +473 + `U£rwš_S‘_DeçuÉ_V®ue +Ð +ICON_RES_RIGHT +, 61 ); + +475 + `U£rwš_S‘_DeçuÉ_V®ue +Ð +ICON_HOST_TOP +, 12 ); + +476 + `U£rwš_S‘_DeçuÉ_V®ue +Ð +ICON_HOST_BOTTOM +, 20 ); + +477 + `U£rwš_S‘_DeçuÉ_V®ue +Ð +ICON_HOST_LEFT +, 2 ); + +478 + `U£rwš_S‘_DeçuÉ_V®ue +Ð +ICON_HOST_RIGHT +, 61 ); + +480 + `U£rwš_S‘_DeçuÉ_V®ue +Ð +ICON_NAME_TOP +, 22 ); + +481 + `U£rwš_S‘_DeçuÉ_V®ue +Ð +ICON_NAME_BOTTOM +, 61 ); + +482 + `U£rwš_S‘_DeçuÉ_V®ue +Ð +ICON_NAME_LEFT +, 2 ); + +483 + `U£rwš_S‘_DeçuÉ_V®ue +Ð +ICON_NAME_RIGHT +, 61 ); + +484 + } +} + + @icons/background.h + +27  + #background_width + 16 + + ) + +28  + #background_height + 16 + + ) + +29  + gbackground_b™s +[] = { + + @icons/rtl_icon.h + +27  + #¹l_icÚ_width + 64 + + ) + +28  + #¹l_icÚ_height + 64 + + ) + +29  + g¹l_icÚ_b™s +[] = { + + @/usr/include/X11/Xarch.h + +1 #iâdeà +_XARCH_H_ + + +2  + #_XARCH_H_ + + + ) + +35 #ifdeà +X_BYTE_ORDER + + +37  + #X_BIG_ENDIAN + 4321 + + ) + +38  + #X_LITTLE_ENDIAN + 1234 + + ) + +42 #ià +defšed +( +SVR4 +è|| defšed( +__SVR4 +) + +43  + ~ + +44  + ~ + +45 #–ià +defšed +( +CSRG_BASED +) + +46 #ià +defšed +( +__N‘BSD__ +è|| defšed( +__O³nBSD__ +) + +47  + ~ + +49  + ~ + +50 #–ià +defšed +( +lšux +) + +51 #ià +defšed + +__STRICT_ANSI__ + + +52 #undeà +__STRICT_ANSI__ + + +53  + ~<’dŸn.h +> + +54  + #__STRICT_ANSI__ + + + ) + +56  + ~<’dŸn.h +> + +59 #ià! +defšed +( +LITTLE_ENDIAN +è&& defšed( +__LITTLE_ENDIAN +) + +60  + #LITTLE_ENDIAN + +__LITTLE_ENDIAN + + + ) + +62 #ià! +defšed +( +BIG_ENDIAN +è&& defšed( +__BIG_ENDIAN +) + +63  + #BIG_ENDIAN + +__BIG_ENDIAN + + + ) + +65 #ià! +defšed +( +PDP_ENDIAN +è&& defšed( +__PDP_ENDIAN +) + +66  + #PDP_ENDIAN + +__PDP_ENDIAN + + + ) + +68 #ià! +defšed +( +BYTE_ORDER +è&& defšed( +__BYTE_ORDER +) + +69  + #BYTE_ORDER + +__BYTE_ORDER + + + ) + +73 #iâdeà +BYTE_ORDER + + +74  + #LITTLE_ENDIAN + 1234 + + ) + +75  + #BIG_ENDIAN + 4321 + + ) + +77 #ià +defšed +( +__sun +è&& defšed( +__SVR4 +) + +78  + ~ + +79 #ifdeà +_LITTLE_ENDIAN + + +80  + #BYTE_ORDER + +LITTLE_ENDIAN + + + ) + +82 #ifdeà +_BIG_ENDIAN + + +83  + #BYTE_ORDER + +BIG_ENDIAN + + + ) + +88  + #X_BYTE_ORDER + +BYTE_ORDER + + + ) + +89  + #X_BIG_ENDIAN + +BIG_ENDIAN + + + ) + +90  + #X_LITTLE_ENDIAN + +LITTLE_ENDIAN + + + ) + + @/usr/include/X11/Xfuncproto.h + +30 #iâdeà +_XFUNCPROTO_H_ + + +31  + #_XFUNCPROTO_H_ + + + ) + +33 #iâdeà +N“dFunùiÚPrÙÙy³s + + +34  + #N“dFunùiÚPrÙÙy³s + 1 + + ) + +37 #iâdeà +N“dV¬¬gsPrÙÙy³s + + +38  + #N“dV¬¬gsPrÙÙy³s + 1 + + ) + +41 #ià +N“dFunùiÚPrÙÙy³s + + +43 #iâdeà +N“dNe¡edPrÙÙy³s + + +44  + #N“dNe¡edPrÙÙy³s + 1 + + ) + +47 #iâdeà +_XcÚ¡ + + +48  + #_XcÚ¡ + cÚ¡ + + ) + +52 #iâdeà +NARROWPROTO + + +53  + #NARROWPROTO + + + ) + +55 #iâdeà +FUNCPROTO + + +56  + #FUNCPROTO + 15 + + ) + +59 #iâdeà +N“dWidePrÙÙy³s + + +60 #ifdeà +NARROWPROTO + + +61  + #N“dWidePrÙÙy³s + 0 + + ) + +63  + #N“dWidePrÙÙy³s + 1 + + ) + +69 #iâdeà +_XFUNCPROTOBEGIN + + +70 #ià +defšed +( +__ýlu¥lus +è|| defšed( +c_¶u¥lus +) + +71  + #_XFUNCPROTOBEGIN + "C" { + + ) + +72  + #_XFUNCPROTOEND + } + + ) + +74  + #_XFUNCPROTOBEGIN + + + ) + +75  + #_XFUNCPROTOEND + + + ) + +80 #ià +defšed +( +__GNUC__ +) && (__GNUC__ >= 4) + +81  + #_X_SENTINEL +( +x +è + `__©Œibu‹__ + (( + `__£Áš–__ +(x))) + + ) + +83  + #_X_SENTINEL +( +x +) + + ) + +87 #ià +defšed +( +__GNUC__ +è&& (__GNUC__ >ð4è&& !defšed( +__CYGWIN__ +) + +88  + #_X_EXPORT + + `__©Œibu‹__ +(( + `visibž™y +("deçuÉ"))) + + ) + +89  + #_X_HIDDEN + + `__©Œibu‹__ +(( + `visibž™y +("hidd’"))) + + ) + +90  + #_X_INTERNAL + + `__©Œibu‹__ +(( + `visibž™y +("š‹º®"))) + + ) + +91 #–ià +defšed +( +__SUNPRO_C +) && (__SUNPRO_C >= 0x550) + +92  + #_X_EXPORT + +__glob® + + + ) + +93  + #_X_HIDDEN + +__hidd’ + + + ) + +94  + #_X_INTERNAL + +__hidd’ + + + ) + +96  + #_X_EXPORT + + + ) + +97  + #_X_HIDDEN + + + ) + +98  + #_X_INTERNAL + + + ) + +102 #ià +defšed +( +__GNUC__ +è&& ((__GNUC__ * 100 + +__GNUC_MINOR__ +) >= 303) + +103  + #_X_LIKELY +( +x +è + `__bužtš_ex³ù +(!!(x), 1) + + ) + +104  + #_X_UNLIKELY +( +x +è + `__bužtš_ex³ù +(!!(x), 0) + + ) + +106  + #_X_LIKELY +( +x +è(x) + + ) + +107  + #_X_UNLIKELY +( +x +è(x) + + ) + +111 #ià +defšed +( +__GNUC__ +è&& ((__GNUC__ * 100 + +__GNUC_MINOR__ +) >= 301) + +112  + #_X_DEPRECATED + + `__©Œibu‹__ +(( +d•»ÿ‹d +)) + + ) + +114  + #_X_DEPRECATED + + + ) + +118 #ià( +defšed +( +__GNUC__ +è&& ((__GNUC__ * 100 + +__GNUC_MINOR__ +) >= 205)) \ + +119 || ( +defšed +( +__SUNPRO_C +) && (__SUNPRO_C >= 0x590)) + +120  + #_X_NORETURN + + `__©Œibu‹ +(( +nÜ‘uº +)) + + ) + +122  + #_X_NORETURN + + + ) + +126 #ià +defšed +( +__GNUC__ +è&& ((__GNUC__ * 100 + +__GNUC_MINOR__ +) >= 203) + +127  + #_X_ATTRIBUTE_PRINTF +( +x +, +y +è + `__©Œibu‹__ +(( + `__fÜm©__ +( +__´štf__ +,x,y))) + + ) + +129  + #_X_ATTRIBUTE_PRINTF +( +x +, +y +) + + ) + +133 #ià +defšed +( +__GNUC__ +è&& ((__GNUC__ * 100 + +__GNUC_MINOR__ +) >= 303) + +134  + #_X_NONNULL +( +¬gs +...è + `__©Œibu‹__ +(( + `nÚnuÎ +×rgs))) + + ) + +136  + #_X_NONNULL +(...è + + ) + +140 #ià +defšed +( +__GNUC__ +è&& ((__GNUC__ * 100 + +__GNUC_MINOR__ +) >= 205) + +141  + #_X_UNUSED + + `__©Œibu‹__ +(( +__unu£d__ +)) + + ) + +143  + #_X_UNUSED + + + ) + +149 #ià +defšed +( +šlše +) || \ + +150 ( +defšed +( +__STDC_VERSION__ +) && (__STDC_VERSION__ - 0 >= 199901L)) || \ + +151 ( +defšed +( +__SUNPRO_C +) && (__SUNPRO_C >= 0x550)) + +152  + #_X_INLINE + +šlše + + + ) + +153 #–ià +defšed +( +__GNUC__ +è&& !defšed( +__STRICT_ANSI__ +) + +154  + #_X_INLINE + +__šlše__ + + + ) + +156  + #_X_INLINE + + + ) + +161 #iâdeà +_X_RESTRICT_KYWD + + +162 #ià +defšed +( +»¡riù +) || \ + +163 ( +defšed +( +__STDC_VERSION__ +) && (__STDC_VERSION__ - 0 >= 199901L)) + +164  + #_X_RESTRICT_KYWD + +»¡riù + + + ) + +165 #–ià +defšed +( +__GNUC__ +è&& !defšed( +__STRICT_ANSI__ +) + +166  + #_X_RESTRICT_KYWD + +__»¡riù__ + + + ) + +168  + #_X_RESTRICT_KYWD + + + ) + + @/usr/include/X11/Xmd.h + +47 #iâdeà +XMD_H + + +48  + #XMD_H + 1 + + ) + +56 #ià +defšed +( +__sun +è&& defšed( +__SVR4 +) + +57  + ~ + +60 #ià +defšed + ( +_LP64 +è|| defšed( +__LP64__ +) || \ + +61 +defšed +( +__®pha +è|| defšed( +__®pha__ +) || \ + +62 +defšed +( +__Ÿ64__ +è|| defšed( +Ÿ64 +) || \ + +63 +defšed +( +__¥¬c64__ +) || \ + +64 +defšed +( +__s390x__ +) || \ + +65 +defšed +( +__amd64__ +è|| defšed( +amd64 +) || \ + +66 + $defšed +( +__pow”pc64__ +) + +67  + #LONG64 + + + ) + +74 #ifdeà +WORD64 + + +75  + #MUSTCOPY + + + ) + +93  + #_SIZEOF +( +x +è +sz_ +## + ) +x + +94  + #SIZEOF +( +x +è + `_SIZEOF +(x) + + ) + +101 #ifdeà +WORD64 + + +102  + tINT64 +; + +103  + tCARD64 +; + +104  + #B32 + :32 + + ) + +105  + #B16 + :16 + + ) + +106 #ifdeà +UNSIGNEDBITFIELDS + + +107  + tINT32 +; + +108  + tINT16 +; + +110 sigÃd  + tINT32 +; + +111 sigÃd  + tINT16 +; + +114  + #B32 + + + ) + +115  + #B16 + + + ) + +116 #ifdeà +LONG64 + + +117  + tINT64 +; + +118  + tINT32 +; + +120  + tINT32 +; + +122  + tINT16 +; + +125 sigÃd  + tINT8 +; + +127 #ifdeà +LONG64 + + +128  + tCARD64 +; + +129  + tCARD32 +; + +131  + tCARD32 +; + +133 #ià! + `defšed +( +WORD64 +è&& !defšed( +LONG64 +) + +134  + tCARD64 +; + +136  + tCARD16 +; + +137  + tCARD8 +; + +139  +CARD32 + + tBITS32 +; + +140  +CARD16 + + tBITS16 +; + +142  +CARD8 + + tBYTE +; + +143  +CARD8 + + tBOOL +; + +148 #ià + `defšed +( +WORD64 +è&& defšed( +UNSIGNEDBITFIELDS +) + +149  + #cvtINT8toIÁ +( +v® +è(((v®è& 0x00000080è? ((v®è| 0xffffffffffffff00è: (v®)) + + ) + +150  + #cvtINT16toIÁ +( +v® +è(((v®è& 0x00008000è? ((v®è| 0xffffffffffff0000è: (v®)) + + ) + +151  + #cvtINT32toIÁ +( +v® +è(((v®è& 0x80000000è? ((v®è| 0xffffffff00000000è: (v®)) + + ) + +152  + #cvtINT8toShÜt +( +v® +è + `cvtINT8toIÁ +(v®) + + ) + +153  + #cvtINT16toShÜt +( +v® +è + `cvtINT16toIÁ +(v®) + + ) + +154  + #cvtINT32toShÜt +( +v® +è + `cvtINT32toIÁ +(v®) + + ) + +155  + #cvtINT8toLÚg +( +v® +è + `cvtINT8toIÁ +(v®) + + ) + +156  + #cvtINT16toLÚg +( +v® +è + `cvtINT16toIÁ +(v®) + + ) + +157  + #cvtINT32toLÚg +( +v® +è + `cvtINT32toIÁ +(v®) + + ) + +159  + #cvtINT8toIÁ +( +v® +è(v®) + + ) + +160  + #cvtINT16toIÁ +( +v® +è(v®) + + ) + +161  + #cvtINT32toIÁ +( +v® +è(v®) + + ) + +162  + #cvtINT8toShÜt +( +v® +è(v®) + + ) + +163  + #cvtINT16toShÜt +( +v® +è(v®) + + ) + +164  + #cvtINT32toShÜt +( +v® +è(v®) + + ) + +165  + #cvtINT8toLÚg +( +v® +è(v®) + + ) + +166  + #cvtINT16toLÚg +( +v® +è(v®) + + ) + +167  + #cvtINT32toLÚg +( +v® +è(v®) + + ) + +172 #ifdeà +MUSTCOPY + + +176  + #NEXTPTR +( +p +, +t +è(((*èpè+ + `SIZEOF +Ñ)) + + ) + +182  + #NEXTPTR +( +p +, +t +è((Ñ *)Õ)è+ 1) + + ) + + @/usr/include/X11/Xosdefs.h + +27 #iâdeà +_XOSDEFS_H_ + + +28  + #_XOSDEFS_H_ + + + ) + +37 #ifdeà +_SCO_DS + + +38 #iâdeà +__SCO__ + + +39  + #__SCO__ + + + ) + +43 #ifdeà +__i386__ + + +44 #ifdeà +SYSV + + +45 #ià! +defšed +( +__SCO__ +) && \ + +46 ! +defšed +( +__UNIXWARE__ +è&& ! + $defšed +( +__sun +) + +47 #ià! + `defšed +( +_POSIX_SOURCE +) + +48  + #X_NOT_POSIX + + + ) + +54 #ifdeà +__sun + + +58 #ià + `defšed +( +__SVR4 +è&& !defšed( +SVR4 +) + +59  + #SVR4 + 1 + + ) + +61 #ifdeà +SVR4 + + +63  + #X_POSIX_C_SOURCE + 199300L + + ) + +67 #ifdeà +WIN32 + + +68 #iâdeà +_POSIX_ + + +69  + #X_NOT_POSIX + + + ) + +74 #ifdeà +__APPLE__ + + +75  + #NULL_NOT_ZERO + + + ) + +82 #ià + `defšed +( +_XOPEN_SOURCE +è|| defšed( +_POSIX_SOURCE +è|| defšed( +_POSIX_C_SOURCE +) + +83 #iâdeà +_DARWIN_C_SOURCE + + +84  + #_DARWIN_C_SOURCE + + + ) + +90 #ifdeà +__GNU__ + + +91 #iâdeà +PATH_MAX + + +92  + #PATH_MAX + 4096 + + ) + +94 #iâdeà +MAXPATHLEN + + +95  + #MAXPATHLEN + 4096 + + ) + +99 #ià + `defšed +( +__SCO__ +è|| defšed( +__UNIXWARE__ +) + +100 #iâdeà +PATH_MAX + + +101  + #PATH_MAX + 1024 + + ) + +103 #iâdeà +MAXPATHLEN + + +104  + #MAXPATHLEN + 1024 + + ) + +108 #ià + `defšed +( +__O³nBSD__ +è|| defšed( +__N‘BSD__ +è|| defšed( +__F»eBSD__ +) \ + +109 || + `defšed +( +__APPLE__ +è|| + $defšed +( +__D¿gÚFly__ +) + +110 #iâdeà +CSRG_BASED + + +111  + #CSRG_BASED + + + ) + + @/usr/include/X11/Xw32defs.h + +1 #iâdeà +_XW32DEFS_H + + +2  + #_XW32DEFS_H + + + ) + +4 #ifdeà +__GNUC__ + + +5 #ià! +defšed +( +__daddr_t_defšed +) + +6 * + tÿddr_t +; + +8  + #l¡© + +¡© + + + ) + +11 * + tÿddr_t +; + +13  + #acûss + +_acûss + + + ) + +14  + #®loÿ + +_®loÿ + + + ) + +15  + #chdœ + +_chdœ + + + ) + +16  + #chmod + +_chmod + + + ) + +17  + #þo£ + +_þo£ + + + ) + +18  + #ü—t + +_ü—t + + + ) + +19  + #dup + +_dup + + + ) + +20  + #dup2 + +_dup2 + + + ) + +21  + #’vœÚ + +_’vœÚ + + + ) + +22  + #exeþ + +_exeþ + + + ) + +23  + #exeþe + +_exeþe + + + ) + +24  + #exeþp + +_exeþp + + + ) + +25  + #exeþ³ + +_exeþ³ + + + ) + +26  + #execv + +_execv + + + ) + +27  + #execve + +_execve + + + ) + +28  + #execvp + +_execvp + + + ) + +29  + #execv³ + +_execv³ + + + ) + +30  + #fdÝ’ + +_fdÝ’ + + + ) + +31  + #fž’o + +_fž’o + + + ) + +32  + #f¡© + +_f¡© + + + ) + +33  + #g‘cwd + +_g‘cwd + + + ) + +34  + #g‘pid + +_g‘pid + + + ) + +35  + #hypÙ + +_hypÙ + + + ) + +36  + #i§scii + +__i§scii + + + ) + +37  + #i§‰y + +_i§‰y + + + ) + +38  + #l£ek + +_l£ek + + + ) + +39  + #mkdœ + +_mkdœ + + + ) + +40  + #mk‹mp + +_mk‹mp + + + ) + +41  + #Ý’ + +_Ý’ + + + ) + +42  + #pu‹nv + +_pu‹nv + + + ) + +43  + #»ad + +_»ad + + + ) + +44  + #rmdœ + +_rmdœ + + + ) + +45  + #¦“p +( +x +è + `SË• +((xè* 1000) + + ) + +46  + #¡© + +_¡© + + + ) + +47  + #sys_”¾i¡ + +_sys_”¾i¡ + + + ) + +48  + #sys_ü + +_sys_ü + + + ) + +49  + #umask + +_umask + + + ) + +50  + #uÆšk + +_uÆšk + + + ) + +51  + #wr™e + +_wr™e + + + ) + +52  + #¿ndom + +¿nd + + + ) + +53  + #¤ªdom + +¤ªd + + + ) + +55  + #O_RDONLY + +_O_RDONLY + + + ) + +56  + #O_WRONLY + +_O_WRONLY + + + ) + +57  + #O_RDWR + +_O_RDWR + + + ) + +58  + #O_APPEND + +_O_APPEND + + + ) + +59  + #O_CREAT + +_O_CREAT + + + ) + +60  + #O_TRUNC + +_O_TRUNC + + + ) + +61  + #O_EXCL + +_O_EXCL + + + ) + +62  + #O_TEXT + +_O_TEXT + + + ) + +63  + #O_BINARY + +_O_BINARY + + + ) + +64  + #O_RAW + +_O_BINARY + + + ) + +66  + #S_IFMT + +_S_IFMT + + + ) + +67  + #S_IFDIR + +_S_IFDIR + + + ) + +68  + #S_IFCHR + +_S_IFCHR + + + ) + +69  + #S_IFREG + +_S_IFREG + + + ) + +70  + #S_IREAD + +_S_IREAD + + + ) + +71  + #S_IWRITE + +_S_IWRITE + + + ) + +72  + #S_IEXEC + +_S_IEXEC + + + ) + +74  + #F_OK + 0 + + ) + +75  + #X_OK + 1 + + ) + +76  + #W_OK + 2 + + ) + +77  + #R_OK + 4 + + ) + + @/usr/include/X11/keysym.h + +49  + #XK_MISCELLANY + + + ) + +50  + #XK_XKB_KEYS + + + ) + +51  + #XK_LATIN1 + + + ) + +52  + #XK_LATIN2 + + + ) + +53  + #XK_LATIN3 + + + ) + +54  + #XK_LATIN4 + + + ) + +55  + #XK_LATIN8 + + + ) + +56  + #XK_LATIN9 + + + ) + +57  + #XK_CAUCASUS + + + ) + +58  + #XK_GREEK + + + ) + +59  + #XK_KATAKANA + + + ) + +60  + #XK_ARABIC + + + ) + +61  + #XK_CYRILLIC + + + ) + +62  + #XK_HEBREW + + + ) + +63  + #XK_THAI + + + ) + +64  + #XK_KOREAN + + + ) + +65  + #XK_ARMENIAN + + + ) + +66  + #XK_GEORGIAN + + + ) + +67  + #XK_VIETNAMESE + + + ) + +68  + #XK_CURRENCY + + + ) + +69  + #XK_MATHEMATICAL + + + ) + +70  + #XK_BRAILLE + + + ) + +71  + #XK_SINHALA + + + ) + +73  + ~ + + @/usr/include/alloca.h + +19 #iâdef +_ALLOCA_H + + +20  + #_ALLOCA_H + 1 + + ) + +22  + ~<ã©u»s.h +> + +24  + #__Ãed_size_t + + + ) + +25  + ~<¡ddef.h +> + +27 + g__BEGIN_DECLS + + +30 #undeà +®loÿ + + +33 * + $®loÿ + ( +size_t + +__size +è +__THROW +; + +35 #ifdef +__GNUC__ + + +36  + #®loÿ +( +size +è + `__bužtš_®loÿ + (size) + + ) + +39 +__END_DECLS + + + @/usr/include/bits/confname.h + +21 #iâdeà +_UNISTD_H + + +28 + m_PC_LINK_MAX +, + +29  + #_PC_LINK_MAX + +_PC_LINK_MAX + + + ) + +30 + m_PC_MAX_CANON +, + +31  + #_PC_MAX_CANON + +_PC_MAX_CANON + + + ) + +32 + m_PC_MAX_INPUT +, + +33  + #_PC_MAX_INPUT + +_PC_MAX_INPUT + + + ) + +34 + m_PC_NAME_MAX +, + +35  + #_PC_NAME_MAX + +_PC_NAME_MAX + + + ) + +36 + m_PC_PATH_MAX +, + +37  + #_PC_PATH_MAX + +_PC_PATH_MAX + + + ) + +38 + m_PC_PIPE_BUF +, + +39  + #_PC_PIPE_BUF + +_PC_PIPE_BUF + + + ) + +40 + m_PC_CHOWN_RESTRICTED +, + +41  + #_PC_CHOWN_RESTRICTED + +_PC_CHOWN_RESTRICTED + + + ) + +42 + m_PC_NO_TRUNC +, + +43  + #_PC_NO_TRUNC + +_PC_NO_TRUNC + + + ) + +44 + m_PC_VDISABLE +, + +45  + #_PC_VDISABLE + +_PC_VDISABLE + + + ) + +46 + m_PC_SYNC_IO +, + +47  + #_PC_SYNC_IO + +_PC_SYNC_IO + + + ) + +48 + m_PC_ASYNC_IO +, + +49  + #_PC_ASYNC_IO + +_PC_ASYNC_IO + + + ) + +50 + m_PC_PRIO_IO +, + +51  + #_PC_PRIO_IO + +_PC_PRIO_IO + + + ) + +52 + m_PC_SOCK_MAXBUF +, + +53  + #_PC_SOCK_MAXBUF + +_PC_SOCK_MAXBUF + + + ) + +54 + m_PC_FILESIZEBITS +, + +55  + #_PC_FILESIZEBITS + +_PC_FILESIZEBITS + + + ) + +56 + m_PC_REC_INCR_XFER_SIZE +, + +57  + #_PC_REC_INCR_XFER_SIZE + +_PC_REC_INCR_XFER_SIZE + + + ) + +58 + m_PC_REC_MAX_XFER_SIZE +, + +59  + #_PC_REC_MAX_XFER_SIZE + +_PC_REC_MAX_XFER_SIZE + + + ) + +60 + m_PC_REC_MIN_XFER_SIZE +, + +61  + #_PC_REC_MIN_XFER_SIZE + +_PC_REC_MIN_XFER_SIZE + + + ) + +62 + m_PC_REC_XFER_ALIGN +, + +63  + #_PC_REC_XFER_ALIGN + +_PC_REC_XFER_ALIGN + + + ) + +64 + m_PC_ALLOC_SIZE_MIN +, + +65  + #_PC_ALLOC_SIZE_MIN + +_PC_ALLOC_SIZE_MIN + + + ) + +66 + m_PC_SYMLINK_MAX +, + +67  + #_PC_SYMLINK_MAX + +_PC_SYMLINK_MAX + + + ) + +68 + m_PC_2_SYMLINKS + + +69  + #_PC_2_SYMLINKS + +_PC_2_SYMLINKS + + + ) + +75 + m_SC_ARG_MAX +, + +76  + #_SC_ARG_MAX + +_SC_ARG_MAX + + + ) + +77 + m_SC_CHILD_MAX +, + +78  + #_SC_CHILD_MAX + +_SC_CHILD_MAX + + + ) + +79 + m_SC_CLK_TCK +, + +80  + #_SC_CLK_TCK + +_SC_CLK_TCK + + + ) + +81 + m_SC_NGROUPS_MAX +, + +82  + #_SC_NGROUPS_MAX + +_SC_NGROUPS_MAX + + + ) + +83 + m_SC_OPEN_MAX +, + +84  + #_SC_OPEN_MAX + +_SC_OPEN_MAX + + + ) + +85 + m_SC_STREAM_MAX +, + +86  + #_SC_STREAM_MAX + +_SC_STREAM_MAX + + + ) + +87 + m_SC_TZNAME_MAX +, + +88  + #_SC_TZNAME_MAX + +_SC_TZNAME_MAX + + + ) + +89 + m_SC_JOB_CONTROL +, + +90  + #_SC_JOB_CONTROL + +_SC_JOB_CONTROL + + + ) + +91 + m_SC_SAVED_IDS +, + +92  + #_SC_SAVED_IDS + +_SC_SAVED_IDS + + + ) + +93 + m_SC_REALTIME_SIGNALS +, + +94  + #_SC_REALTIME_SIGNALS + +_SC_REALTIME_SIGNALS + + + ) + +95 + m_SC_PRIORITY_SCHEDULING +, + +96  + #_SC_PRIORITY_SCHEDULING + +_SC_PRIORITY_SCHEDULING + + + ) + +97 + m_SC_TIMERS +, + +98  + #_SC_TIMERS + +_SC_TIMERS + + + ) + +99 + m_SC_ASYNCHRONOUS_IO +, + +100  + #_SC_ASYNCHRONOUS_IO + +_SC_ASYNCHRONOUS_IO + + + ) + +101 + m_SC_PRIORITIZED_IO +, + +102  + #_SC_PRIORITIZED_IO + +_SC_PRIORITIZED_IO + + + ) + +103 + m_SC_SYNCHRONIZED_IO +, + +104  + #_SC_SYNCHRONIZED_IO + +_SC_SYNCHRONIZED_IO + + + ) + +105 + m_SC_FSYNC +, + +106  + #_SC_FSYNC + +_SC_FSYNC + + + ) + +107 + m_SC_MAPPED_FILES +, + +108  + #_SC_MAPPED_FILES + +_SC_MAPPED_FILES + + + ) + +109 + m_SC_MEMLOCK +, + +110  + #_SC_MEMLOCK + +_SC_MEMLOCK + + + ) + +111 + m_SC_MEMLOCK_RANGE +, + +112  + #_SC_MEMLOCK_RANGE + +_SC_MEMLOCK_RANGE + + + ) + +113 + m_SC_MEMORY_PROTECTION +, + +114  + #_SC_MEMORY_PROTECTION + +_SC_MEMORY_PROTECTION + + + ) + +115 + m_SC_MESSAGE_PASSING +, + +116  + #_SC_MESSAGE_PASSING + +_SC_MESSAGE_PASSING + + + ) + +117 + m_SC_SEMAPHORES +, + +118  + #_SC_SEMAPHORES + +_SC_SEMAPHORES + + + ) + +119 + m_SC_SHARED_MEMORY_OBJECTS +, + +120  + #_SC_SHARED_MEMORY_OBJECTS + +_SC_SHARED_MEMORY_OBJECTS + + + ) + +121 + m_SC_AIO_LISTIO_MAX +, + +122  + #_SC_AIO_LISTIO_MAX + +_SC_AIO_LISTIO_MAX + + + ) + +123 + m_SC_AIO_MAX +, + +124  + #_SC_AIO_MAX + +_SC_AIO_MAX + + + ) + +125 + m_SC_AIO_PRIO_DELTA_MAX +, + +126  + #_SC_AIO_PRIO_DELTA_MAX + +_SC_AIO_PRIO_DELTA_MAX + + + ) + +127 + m_SC_DELAYTIMER_MAX +, + +128  + #_SC_DELAYTIMER_MAX + +_SC_DELAYTIMER_MAX + + + ) + +129 + m_SC_MQ_OPEN_MAX +, + +130  + #_SC_MQ_OPEN_MAX + +_SC_MQ_OPEN_MAX + + + ) + +131 + m_SC_MQ_PRIO_MAX +, + +132  + #_SC_MQ_PRIO_MAX + +_SC_MQ_PRIO_MAX + + + ) + +133 + m_SC_VERSION +, + +134  + #_SC_VERSION + +_SC_VERSION + + + ) + +135 + m_SC_PAGESIZE +, + +136  + #_SC_PAGESIZE + +_SC_PAGESIZE + + + ) + +137  + #_SC_PAGE_SIZE + +_SC_PAGESIZE + + + ) + +138 + m_SC_RTSIG_MAX +, + +139  + #_SC_RTSIG_MAX + +_SC_RTSIG_MAX + + + ) + +140 + m_SC_SEM_NSEMS_MAX +, + +141  + #_SC_SEM_NSEMS_MAX + +_SC_SEM_NSEMS_MAX + + + ) + +142 + m_SC_SEM_VALUE_MAX +, + +143  + #_SC_SEM_VALUE_MAX + +_SC_SEM_VALUE_MAX + + + ) + +144 + m_SC_SIGQUEUE_MAX +, + +145  + #_SC_SIGQUEUE_MAX + +_SC_SIGQUEUE_MAX + + + ) + +146 + m_SC_TIMER_MAX +, + +147  + #_SC_TIMER_MAX + +_SC_TIMER_MAX + + + ) + +151 + m_SC_BC_BASE_MAX +, + +152  + #_SC_BC_BASE_MAX + +_SC_BC_BASE_MAX + + + ) + +153 + m_SC_BC_DIM_MAX +, + +154  + #_SC_BC_DIM_MAX + +_SC_BC_DIM_MAX + + + ) + +155 + m_SC_BC_SCALE_MAX +, + +156  + #_SC_BC_SCALE_MAX + +_SC_BC_SCALE_MAX + + + ) + +157 + m_SC_BC_STRING_MAX +, + +158  + #_SC_BC_STRING_MAX + +_SC_BC_STRING_MAX + + + ) + +159 + m_SC_COLL_WEIGHTS_MAX +, + +160  + #_SC_COLL_WEIGHTS_MAX + +_SC_COLL_WEIGHTS_MAX + + + ) + +161 + m_SC_EQUIV_CLASS_MAX +, + +162  + #_SC_EQUIV_CLASS_MAX + +_SC_EQUIV_CLASS_MAX + + + ) + +163 + m_SC_EXPR_NEST_MAX +, + +164  + #_SC_EXPR_NEST_MAX + +_SC_EXPR_NEST_MAX + + + ) + +165 + m_SC_LINE_MAX +, + +166  + #_SC_LINE_MAX + +_SC_LINE_MAX + + + ) + +167 + m_SC_RE_DUP_MAX +, + +168  + #_SC_RE_DUP_MAX + +_SC_RE_DUP_MAX + + + ) + +169 + m_SC_CHARCLASS_NAME_MAX +, + +170  + #_SC_CHARCLASS_NAME_MAX + +_SC_CHARCLASS_NAME_MAX + + + ) + +172 + m_SC_2_VERSION +, + +173  + #_SC_2_VERSION + +_SC_2_VERSION + + + ) + +174 + m_SC_2_C_BIND +, + +175  + #_SC_2_C_BIND + +_SC_2_C_BIND + + + ) + +176 + m_SC_2_C_DEV +, + +177  + #_SC_2_C_DEV + +_SC_2_C_DEV + + + ) + +178 + m_SC_2_FORT_DEV +, + +179  + #_SC_2_FORT_DEV + +_SC_2_FORT_DEV + + + ) + +180 + m_SC_2_FORT_RUN +, + +181  + #_SC_2_FORT_RUN + +_SC_2_FORT_RUN + + + ) + +182 + m_SC_2_SW_DEV +, + +183  + #_SC_2_SW_DEV + +_SC_2_SW_DEV + + + ) + +184 + m_SC_2_LOCALEDEF +, + +185  + #_SC_2_LOCALEDEF + +_SC_2_LOCALEDEF + + + ) + +187 + m_SC_PII +, + +188  + #_SC_PII + +_SC_PII + + + ) + +189 + m_SC_PII_XTI +, + +190  + #_SC_PII_XTI + +_SC_PII_XTI + + + ) + +191 + m_SC_PII_SOCKET +, + +192  + #_SC_PII_SOCKET + +_SC_PII_SOCKET + + + ) + +193 + m_SC_PII_INTERNET +, + +194  + #_SC_PII_INTERNET + +_SC_PII_INTERNET + + + ) + +195 + m_SC_PII_OSI +, + +196  + #_SC_PII_OSI + +_SC_PII_OSI + + + ) + +197 + m_SC_POLL +, + +198  + #_SC_POLL + +_SC_POLL + + + ) + +199 + m_SC_SELECT +, + +200  + #_SC_SELECT + +_SC_SELECT + + + ) + +201 + m_SC_UIO_MAXIOV +, + +202  + #_SC_UIO_MAXIOV + +_SC_UIO_MAXIOV + + + ) + +203 + m_SC_IOV_MAX + = +_SC_UIO_MAXIOV +, + +204  + #_SC_IOV_MAX + +_SC_IOV_MAX + + + ) + +205 + m_SC_PII_INTERNET_STREAM +, + +206  + #_SC_PII_INTERNET_STREAM + +_SC_PII_INTERNET_STREAM + + + ) + +207 + m_SC_PII_INTERNET_DGRAM +, + +208  + #_SC_PII_INTERNET_DGRAM + +_SC_PII_INTERNET_DGRAM + + + ) + +209 + m_SC_PII_OSI_COTS +, + +210  + #_SC_PII_OSI_COTS + +_SC_PII_OSI_COTS + + + ) + +211 + m_SC_PII_OSI_CLTS +, + +212  + #_SC_PII_OSI_CLTS + +_SC_PII_OSI_CLTS + + + ) + +213 + m_SC_PII_OSI_M +, + +214  + #_SC_PII_OSI_M + +_SC_PII_OSI_M + + + ) + +215 + m_SC_T_IOV_MAX +, + +216  + #_SC_T_IOV_MAX + +_SC_T_IOV_MAX + + + ) + +219 + m_SC_THREADS +, + +220  + #_SC_THREADS + +_SC_THREADS + + + ) + +221 + m_SC_THREAD_SAFE_FUNCTIONS +, + +222  + #_SC_THREAD_SAFE_FUNCTIONS + +_SC_THREAD_SAFE_FUNCTIONS + + + ) + +223 + m_SC_GETGR_R_SIZE_MAX +, + +224  + #_SC_GETGR_R_SIZE_MAX + +_SC_GETGR_R_SIZE_MAX + + + ) + +225 + m_SC_GETPW_R_SIZE_MAX +, + +226  + #_SC_GETPW_R_SIZE_MAX + +_SC_GETPW_R_SIZE_MAX + + + ) + +227 + m_SC_LOGIN_NAME_MAX +, + +228  + #_SC_LOGIN_NAME_MAX + +_SC_LOGIN_NAME_MAX + + + ) + +229 + m_SC_TTY_NAME_MAX +, + +230  + #_SC_TTY_NAME_MAX + +_SC_TTY_NAME_MAX + + + ) + +231 + m_SC_THREAD_DESTRUCTOR_ITERATIONS +, + +232  + #_SC_THREAD_DESTRUCTOR_ITERATIONS + +_SC_THREAD_DESTRUCTOR_ITERATIONS + + + ) + +233 + m_SC_THREAD_KEYS_MAX +, + +234  + #_SC_THREAD_KEYS_MAX + +_SC_THREAD_KEYS_MAX + + + ) + +235 + m_SC_THREAD_STACK_MIN +, + +236  + #_SC_THREAD_STACK_MIN + +_SC_THREAD_STACK_MIN + + + ) + +237 + m_SC_THREAD_THREADS_MAX +, + +238  + #_SC_THREAD_THREADS_MAX + +_SC_THREAD_THREADS_MAX + + + ) + +239 + m_SC_THREAD_ATTR_STACKADDR +, + +240  + #_SC_THREAD_ATTR_STACKADDR + +_SC_THREAD_ATTR_STACKADDR + + + ) + +241 + m_SC_THREAD_ATTR_STACKSIZE +, + +242  + #_SC_THREAD_ATTR_STACKSIZE + +_SC_THREAD_ATTR_STACKSIZE + + + ) + +243 + m_SC_THREAD_PRIORITY_SCHEDULING +, + +244  + #_SC_THREAD_PRIORITY_SCHEDULING + +_SC_THREAD_PRIORITY_SCHEDULING + + + ) + +245 + m_SC_THREAD_PRIO_INHERIT +, + +246  + #_SC_THREAD_PRIO_INHERIT + +_SC_THREAD_PRIO_INHERIT + + + ) + +247 + m_SC_THREAD_PRIO_PROTECT +, + +248  + #_SC_THREAD_PRIO_PROTECT + +_SC_THREAD_PRIO_PROTECT + + + ) + +249 + m_SC_THREAD_PROCESS_SHARED +, + +250  + #_SC_THREAD_PROCESS_SHARED + +_SC_THREAD_PROCESS_SHARED + + + ) + +252 + m_SC_NPROCESSORS_CONF +, + +253  + #_SC_NPROCESSORS_CONF + +_SC_NPROCESSORS_CONF + + + ) + +254 + m_SC_NPROCESSORS_ONLN +, + +255  + #_SC_NPROCESSORS_ONLN + +_SC_NPROCESSORS_ONLN + + + ) + +256 + m_SC_PHYS_PAGES +, + +257  + #_SC_PHYS_PAGES + +_SC_PHYS_PAGES + + + ) + +258 + m_SC_AVPHYS_PAGES +, + +259  + #_SC_AVPHYS_PAGES + +_SC_AVPHYS_PAGES + + + ) + +260 + m_SC_ATEXIT_MAX +, + +261  + #_SC_ATEXIT_MAX + +_SC_ATEXIT_MAX + + + ) + +262 + m_SC_PASS_MAX +, + +263  + #_SC_PASS_MAX + +_SC_PASS_MAX + + + ) + +265 + m_SC_XOPEN_VERSION +, + +266  + #_SC_XOPEN_VERSION + +_SC_XOPEN_VERSION + + + ) + +267 + m_SC_XOPEN_XCU_VERSION +, + +268  + #_SC_XOPEN_XCU_VERSION + +_SC_XOPEN_XCU_VERSION + + + ) + +269 + m_SC_XOPEN_UNIX +, + +270  + #_SC_XOPEN_UNIX + +_SC_XOPEN_UNIX + + + ) + +271 + m_SC_XOPEN_CRYPT +, + +272  + #_SC_XOPEN_CRYPT + +_SC_XOPEN_CRYPT + + + ) + +273 + m_SC_XOPEN_ENH_I18N +, + +274  + #_SC_XOPEN_ENH_I18N + +_SC_XOPEN_ENH_I18N + + + ) + +275 + m_SC_XOPEN_SHM +, + +276  + #_SC_XOPEN_SHM + +_SC_XOPEN_SHM + + + ) + +278 + m_SC_2_CHAR_TERM +, + +279  + #_SC_2_CHAR_TERM + +_SC_2_CHAR_TERM + + + ) + +280 + m_SC_2_C_VERSION +, + +281  + #_SC_2_C_VERSION + +_SC_2_C_VERSION + + + ) + +282 + m_SC_2_UPE +, + +283  + #_SC_2_UPE + +_SC_2_UPE + + + ) + +285 + m_SC_XOPEN_XPG2 +, + +286  + #_SC_XOPEN_XPG2 + +_SC_XOPEN_XPG2 + + + ) + +287 + m_SC_XOPEN_XPG3 +, + +288  + #_SC_XOPEN_XPG3 + +_SC_XOPEN_XPG3 + + + ) + +289 + m_SC_XOPEN_XPG4 +, + +290  + #_SC_XOPEN_XPG4 + +_SC_XOPEN_XPG4 + + + ) + +292 + m_SC_CHAR_BIT +, + +293  + #_SC_CHAR_BIT + +_SC_CHAR_BIT + + + ) + +294 + m_SC_CHAR_MAX +, + +295  + #_SC_CHAR_MAX + +_SC_CHAR_MAX + + + ) + +296 + m_SC_CHAR_MIN +, + +297  + #_SC_CHAR_MIN + +_SC_CHAR_MIN + + + ) + +298 + m_SC_INT_MAX +, + +299  + #_SC_INT_MAX + +_SC_INT_MAX + + + ) + +300 + m_SC_INT_MIN +, + +301  + #_SC_INT_MIN + +_SC_INT_MIN + + + ) + +302 + m_SC_LONG_BIT +, + +303  + #_SC_LONG_BIT + +_SC_LONG_BIT + + + ) + +304 + m_SC_WORD_BIT +, + +305  + #_SC_WORD_BIT + +_SC_WORD_BIT + + + ) + +306 + m_SC_MB_LEN_MAX +, + +307  + #_SC_MB_LEN_MAX + +_SC_MB_LEN_MAX + + + ) + +308 + m_SC_NZERO +, + +309  + #_SC_NZERO + +_SC_NZERO + + + ) + +310 + m_SC_SSIZE_MAX +, + +311  + #_SC_SSIZE_MAX + +_SC_SSIZE_MAX + + + ) + +312 + m_SC_SCHAR_MAX +, + +313  + #_SC_SCHAR_MAX + +_SC_SCHAR_MAX + + + ) + +314 + m_SC_SCHAR_MIN +, + +315  + #_SC_SCHAR_MIN + +_SC_SCHAR_MIN + + + ) + +316 + m_SC_SHRT_MAX +, + +317  + #_SC_SHRT_MAX + +_SC_SHRT_MAX + + + ) + +318 + m_SC_SHRT_MIN +, + +319  + #_SC_SHRT_MIN + +_SC_SHRT_MIN + + + ) + +320 + m_SC_UCHAR_MAX +, + +321  + #_SC_UCHAR_MAX + +_SC_UCHAR_MAX + + + ) + +322 + m_SC_UINT_MAX +, + +323  + #_SC_UINT_MAX + +_SC_UINT_MAX + + + ) + +324 + m_SC_ULONG_MAX +, + +325  + #_SC_ULONG_MAX + +_SC_ULONG_MAX + + + ) + +326 + m_SC_USHRT_MAX +, + +327  + #_SC_USHRT_MAX + +_SC_USHRT_MAX + + + ) + +329 + m_SC_NL_ARGMAX +, + +330  + #_SC_NL_ARGMAX + +_SC_NL_ARGMAX + + + ) + +331 + m_SC_NL_LANGMAX +, + +332  + #_SC_NL_LANGMAX + +_SC_NL_LANGMAX + + + ) + +333 + m_SC_NL_MSGMAX +, + +334  + #_SC_NL_MSGMAX + +_SC_NL_MSGMAX + + + ) + +335 + m_SC_NL_NMAX +, + +336  + #_SC_NL_NMAX + +_SC_NL_NMAX + + + ) + +337 + m_SC_NL_SETMAX +, + +338  + #_SC_NL_SETMAX + +_SC_NL_SETMAX + + + ) + +339 + m_SC_NL_TEXTMAX +, + +340  + #_SC_NL_TEXTMAX + +_SC_NL_TEXTMAX + + + ) + +342 + m_SC_XBS5_ILP32_OFF32 +, + +343  + #_SC_XBS5_ILP32_OFF32 + +_SC_XBS5_ILP32_OFF32 + + + ) + +344 + m_SC_XBS5_ILP32_OFFBIG +, + +345  + #_SC_XBS5_ILP32_OFFBIG + +_SC_XBS5_ILP32_OFFBIG + + + ) + +346 + m_SC_XBS5_LP64_OFF64 +, + +347  + #_SC_XBS5_LP64_OFF64 + +_SC_XBS5_LP64_OFF64 + + + ) + +348 + m_SC_XBS5_LPBIG_OFFBIG +, + +349  + #_SC_XBS5_LPBIG_OFFBIG + +_SC_XBS5_LPBIG_OFFBIG + + + ) + +351 + m_SC_XOPEN_LEGACY +, + +352  + #_SC_XOPEN_LEGACY + +_SC_XOPEN_LEGACY + + + ) + +353 + m_SC_XOPEN_REALTIME +, + +354  + #_SC_XOPEN_REALTIME + +_SC_XOPEN_REALTIME + + + ) + +355 + m_SC_XOPEN_REALTIME_THREADS +, + +356  + #_SC_XOPEN_REALTIME_THREADS + +_SC_XOPEN_REALTIME_THREADS + + + ) + +358 + m_SC_ADVISORY_INFO +, + +359  + #_SC_ADVISORY_INFO + +_SC_ADVISORY_INFO + + + ) + +360 + m_SC_BARRIERS +, + +361  + #_SC_BARRIERS + +_SC_BARRIERS + + + ) + +362 + m_SC_BASE +, + +363  + #_SC_BASE + +_SC_BASE + + + ) + +364 + m_SC_C_LANG_SUPPORT +, + +365  + #_SC_C_LANG_SUPPORT + +_SC_C_LANG_SUPPORT + + + ) + +366 + m_SC_C_LANG_SUPPORT_R +, + +367  + #_SC_C_LANG_SUPPORT_R + +_SC_C_LANG_SUPPORT_R + + + ) + +368 + m_SC_CLOCK_SELECTION +, + +369  + #_SC_CLOCK_SELECTION + +_SC_CLOCK_SELECTION + + + ) + +370 + m_SC_CPUTIME +, + +371  + #_SC_CPUTIME + +_SC_CPUTIME + + + ) + +372 + m_SC_THREAD_CPUTIME +, + +373  + #_SC_THREAD_CPUTIME + +_SC_THREAD_CPUTIME + + + ) + +374 + m_SC_DEVICE_IO +, + +375  + #_SC_DEVICE_IO + +_SC_DEVICE_IO + + + ) + +376 + m_SC_DEVICE_SPECIFIC +, + +377  + #_SC_DEVICE_SPECIFIC + +_SC_DEVICE_SPECIFIC + + + ) + +378 + m_SC_DEVICE_SPECIFIC_R +, + +379  + #_SC_DEVICE_SPECIFIC_R + +_SC_DEVICE_SPECIFIC_R + + + ) + +380 + m_SC_FD_MGMT +, + +381  + #_SC_FD_MGMT + +_SC_FD_MGMT + + + ) + +382 + m_SC_FIFO +, + +383  + #_SC_FIFO + +_SC_FIFO + + + ) + +384 + m_SC_PIPE +, + +385  + #_SC_PIPE + +_SC_PIPE + + + ) + +386 + m_SC_FILE_ATTRIBUTES +, + +387  + #_SC_FILE_ATTRIBUTES + +_SC_FILE_ATTRIBUTES + + + ) + +388 + m_SC_FILE_LOCKING +, + +389  + #_SC_FILE_LOCKING + +_SC_FILE_LOCKING + + + ) + +390 + m_SC_FILE_SYSTEM +, + +391  + #_SC_FILE_SYSTEM + +_SC_FILE_SYSTEM + + + ) + +392 + m_SC_MONOTONIC_CLOCK +, + +393  + #_SC_MONOTONIC_CLOCK + +_SC_MONOTONIC_CLOCK + + + ) + +394 + m_SC_MULTI_PROCESS +, + +395  + #_SC_MULTI_PROCESS + +_SC_MULTI_PROCESS + + + ) + +396 + m_SC_SINGLE_PROCESS +, + +397  + #_SC_SINGLE_PROCESS + +_SC_SINGLE_PROCESS + + + ) + +398 + m_SC_NETWORKING +, + +399  + #_SC_NETWORKING + +_SC_NETWORKING + + + ) + +400 + m_SC_READER_WRITER_LOCKS +, + +401  + #_SC_READER_WRITER_LOCKS + +_SC_READER_WRITER_LOCKS + + + ) + +402 + m_SC_SPIN_LOCKS +, + +403  + #_SC_SPIN_LOCKS + +_SC_SPIN_LOCKS + + + ) + +404 + m_SC_REGEXP +, + +405  + #_SC_REGEXP + +_SC_REGEXP + + + ) + +406 + m_SC_REGEX_VERSION +, + +407  + #_SC_REGEX_VERSION + +_SC_REGEX_VERSION + + + ) + +408 + m_SC_SHELL +, + +409  + #_SC_SHELL + +_SC_SHELL + + + ) + +410 + m_SC_SIGNALS +, + +411  + #_SC_SIGNALS + +_SC_SIGNALS + + + ) + +412 + m_SC_SPAWN +, + +413  + #_SC_SPAWN + +_SC_SPAWN + + + ) + +414 + m_SC_SPORADIC_SERVER +, + +415  + #_SC_SPORADIC_SERVER + +_SC_SPORADIC_SERVER + + + ) + +416 + m_SC_THREAD_SPORADIC_SERVER +, + +417  + #_SC_THREAD_SPORADIC_SERVER + +_SC_THREAD_SPORADIC_SERVER + + + ) + +418 + m_SC_SYSTEM_DATABASE +, + +419  + #_SC_SYSTEM_DATABASE + +_SC_SYSTEM_DATABASE + + + ) + +420 + m_SC_SYSTEM_DATABASE_R +, + +421  + #_SC_SYSTEM_DATABASE_R + +_SC_SYSTEM_DATABASE_R + + + ) + +422 + m_SC_TIMEOUTS +, + +423  + #_SC_TIMEOUTS + +_SC_TIMEOUTS + + + ) + +424 + m_SC_TYPED_MEMORY_OBJECTS +, + +425  + #_SC_TYPED_MEMORY_OBJECTS + +_SC_TYPED_MEMORY_OBJECTS + + + ) + +426 + m_SC_USER_GROUPS +, + +427  + #_SC_USER_GROUPS + +_SC_USER_GROUPS + + + ) + +428 + m_SC_USER_GROUPS_R +, + +429  + #_SC_USER_GROUPS_R + +_SC_USER_GROUPS_R + + + ) + +430 + m_SC_2_PBS +, + +431  + #_SC_2_PBS + +_SC_2_PBS + + + ) + +432 + m_SC_2_PBS_ACCOUNTING +, + +433  + #_SC_2_PBS_ACCOUNTING + +_SC_2_PBS_ACCOUNTING + + + ) + +434 + m_SC_2_PBS_LOCATE +, + +435  + #_SC_2_PBS_LOCATE + +_SC_2_PBS_LOCATE + + + ) + +436 + m_SC_2_PBS_MESSAGE +, + +437  + #_SC_2_PBS_MESSAGE + +_SC_2_PBS_MESSAGE + + + ) + +438 + m_SC_2_PBS_TRACK +, + +439  + #_SC_2_PBS_TRACK + +_SC_2_PBS_TRACK + + + ) + +440 + m_SC_SYMLOOP_MAX +, + +441  + #_SC_SYMLOOP_MAX + +_SC_SYMLOOP_MAX + + + ) + +442 + m_SC_STREAMS +, + +443  + #_SC_STREAMS + +_SC_STREAMS + + + ) + +444 + m_SC_2_PBS_CHECKPOINT +, + +445  + #_SC_2_PBS_CHECKPOINT + +_SC_2_PBS_CHECKPOINT + + + ) + +447 + m_SC_V6_ILP32_OFF32 +, + +448  + #_SC_V6_ILP32_OFF32 + +_SC_V6_ILP32_OFF32 + + + ) + +449 + m_SC_V6_ILP32_OFFBIG +, + +450  + #_SC_V6_ILP32_OFFBIG + +_SC_V6_ILP32_OFFBIG + + + ) + +451 + m_SC_V6_LP64_OFF64 +, + +452  + #_SC_V6_LP64_OFF64 + +_SC_V6_LP64_OFF64 + + + ) + +453 + m_SC_V6_LPBIG_OFFBIG +, + +454  + #_SC_V6_LPBIG_OFFBIG + +_SC_V6_LPBIG_OFFBIG + + + ) + +456 + m_SC_HOST_NAME_MAX +, + +457  + #_SC_HOST_NAME_MAX + +_SC_HOST_NAME_MAX + + + ) + +458 + m_SC_TRACE +, + +459  + #_SC_TRACE + +_SC_TRACE + + + ) + +460 + m_SC_TRACE_EVENT_FILTER +, + +461  + #_SC_TRACE_EVENT_FILTER + +_SC_TRACE_EVENT_FILTER + + + ) + +462 + m_SC_TRACE_INHERIT +, + +463  + #_SC_TRACE_INHERIT + +_SC_TRACE_INHERIT + + + ) + +464 + m_SC_TRACE_LOG +, + +465  + #_SC_TRACE_LOG + +_SC_TRACE_LOG + + + ) + +467 + m_SC_LEVEL1_ICACHE_SIZE +, + +468  + #_SC_LEVEL1_ICACHE_SIZE + +_SC_LEVEL1_ICACHE_SIZE + + + ) + +469 + m_SC_LEVEL1_ICACHE_ASSOC +, + +470  + #_SC_LEVEL1_ICACHE_ASSOC + +_SC_LEVEL1_ICACHE_ASSOC + + + ) + +471 + m_SC_LEVEL1_ICACHE_LINESIZE +, + +472  + #_SC_LEVEL1_ICACHE_LINESIZE + +_SC_LEVEL1_ICACHE_LINESIZE + + + ) + +473 + m_SC_LEVEL1_DCACHE_SIZE +, + +474  + #_SC_LEVEL1_DCACHE_SIZE + +_SC_LEVEL1_DCACHE_SIZE + + + ) + +475 + m_SC_LEVEL1_DCACHE_ASSOC +, + +476  + #_SC_LEVEL1_DCACHE_ASSOC + +_SC_LEVEL1_DCACHE_ASSOC + + + ) + +477 + m_SC_LEVEL1_DCACHE_LINESIZE +, + +478  + #_SC_LEVEL1_DCACHE_LINESIZE + +_SC_LEVEL1_DCACHE_LINESIZE + + + ) + +479 + m_SC_LEVEL2_CACHE_SIZE +, + +480  + #_SC_LEVEL2_CACHE_SIZE + +_SC_LEVEL2_CACHE_SIZE + + + ) + +481 + m_SC_LEVEL2_CACHE_ASSOC +, + +482  + #_SC_LEVEL2_CACHE_ASSOC + +_SC_LEVEL2_CACHE_ASSOC + + + ) + +483 + m_SC_LEVEL2_CACHE_LINESIZE +, + +484  + #_SC_LEVEL2_CACHE_LINESIZE + +_SC_LEVEL2_CACHE_LINESIZE + + + ) + +485 + m_SC_LEVEL3_CACHE_SIZE +, + +486  + #_SC_LEVEL3_CACHE_SIZE + +_SC_LEVEL3_CACHE_SIZE + + + ) + +487 + m_SC_LEVEL3_CACHE_ASSOC +, + +488  + #_SC_LEVEL3_CACHE_ASSOC + +_SC_LEVEL3_CACHE_ASSOC + + + ) + +489 + m_SC_LEVEL3_CACHE_LINESIZE +, + +490  + #_SC_LEVEL3_CACHE_LINESIZE + +_SC_LEVEL3_CACHE_LINESIZE + + + ) + +491 + m_SC_LEVEL4_CACHE_SIZE +, + +492  + #_SC_LEVEL4_CACHE_SIZE + +_SC_LEVEL4_CACHE_SIZE + + + ) + +493 + m_SC_LEVEL4_CACHE_ASSOC +, + +494  + #_SC_LEVEL4_CACHE_ASSOC + +_SC_LEVEL4_CACHE_ASSOC + + + ) + +495 + m_SC_LEVEL4_CACHE_LINESIZE +, + +496  + #_SC_LEVEL4_CACHE_LINESIZE + +_SC_LEVEL4_CACHE_LINESIZE + + + ) + +499 + m_SC_IPV6 + = +_SC_LEVEL1_ICACHE_SIZE + + 50, + +500  + #_SC_IPV6 + +_SC_IPV6 + + + ) + +501 + m_SC_RAW_SOCKETS +, + +502  + #_SC_RAW_SOCKETS + +_SC_RAW_SOCKETS + + + ) + +504 + m_SC_V7_ILP32_OFF32 +, + +505  + #_SC_V7_ILP32_OFF32 + +_SC_V7_ILP32_OFF32 + + + ) + +506 + m_SC_V7_ILP32_OFFBIG +, + +507  + #_SC_V7_ILP32_OFFBIG + +_SC_V7_ILP32_OFFBIG + + + ) + +508 + m_SC_V7_LP64_OFF64 +, + +509  + #_SC_V7_LP64_OFF64 + +_SC_V7_LP64_OFF64 + + + ) + +510 + m_SC_V7_LPBIG_OFFBIG +, + +511  + #_SC_V7_LPBIG_OFFBIG + +_SC_V7_LPBIG_OFFBIG + + + ) + +513 + m_SC_SS_REPL_MAX +, + +514  + #_SC_SS_REPL_MAX + +_SC_SS_REPL_MAX + + + ) + +516 + m_SC_TRACE_EVENT_NAME_MAX +, + +517  + #_SC_TRACE_EVENT_NAME_MAX + +_SC_TRACE_EVENT_NAME_MAX + + + ) + +518 + m_SC_TRACE_NAME_MAX +, + +519  + #_SC_TRACE_NAME_MAX + +_SC_TRACE_NAME_MAX + + + ) + +520 + m_SC_TRACE_SYS_MAX +, + +521  + #_SC_TRACE_SYS_MAX + +_SC_TRACE_SYS_MAX + + + ) + +522 + m_SC_TRACE_USER_EVENT_MAX +, + +523  + #_SC_TRACE_USER_EVENT_MAX + +_SC_TRACE_USER_EVENT_MAX + + + ) + +525 + m_SC_XOPEN_STREAMS +, + +526  + #_SC_XOPEN_STREAMS + +_SC_XOPEN_STREAMS + + + ) + +528 + m_SC_THREAD_ROBUST_PRIO_INHERIT +, + +529  + #_SC_THREAD_ROBUST_PRIO_INHERIT + +_SC_THREAD_ROBUST_PRIO_INHERIT + + + ) + +530 + m_SC_THREAD_ROBUST_PRIO_PROTECT + + +531  + #_SC_THREAD_ROBUST_PRIO_PROTECT + +_SC_THREAD_ROBUST_PRIO_PROTECT + + + ) + +537 + m_CS_PATH +, + +538  + #_CS_PATH + +_CS_PATH + + + ) + +540 + m_CS_V6_WIDTH_RESTRICTED_ENVS +, + +541  + #_CS_V6_WIDTH_RESTRICTED_ENVS + +_CS_V6_WIDTH_RESTRICTED_ENVS + + + ) + +542  + #_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS + +_CS_V6_WIDTH_RESTRICTED_ENVS + + + ) + +544 + m_CS_GNU_LIBC_VERSION +, + +545  + #_CS_GNU_LIBC_VERSION + +_CS_GNU_LIBC_VERSION + + + ) + +546 + m_CS_GNU_LIBPTHREAD_VERSION +, + +547  + #_CS_GNU_LIBPTHREAD_VERSION + +_CS_GNU_LIBPTHREAD_VERSION + + + ) + +549 + m_CS_V5_WIDTH_RESTRICTED_ENVS +, + +550  + #_CS_V5_WIDTH_RESTRICTED_ENVS + +_CS_V5_WIDTH_RESTRICTED_ENVS + + + ) + +551  + #_CS_POSIX_V5_WIDTH_RESTRICTED_ENVS + +_CS_V5_WIDTH_RESTRICTED_ENVS + + + ) + +553 + m_CS_V7_WIDTH_RESTRICTED_ENVS +, + +554  + #_CS_V7_WIDTH_RESTRICTED_ENVS + +_CS_V7_WIDTH_RESTRICTED_ENVS + + + ) + +555  + #_CS_POSIX_V7_WIDTH_RESTRICTED_ENVS + +_CS_V7_WIDTH_RESTRICTED_ENVS + + + ) + +557 + m_CS_LFS_CFLAGS + = 1000, + +558  + #_CS_LFS_CFLAGS + +_CS_LFS_CFLAGS + + + ) + +559 + m_CS_LFS_LDFLAGS +, + +560  + #_CS_LFS_LDFLAGS + +_CS_LFS_LDFLAGS + + + ) + +561 + m_CS_LFS_LIBS +, + +562  + #_CS_LFS_LIBS + +_CS_LFS_LIBS + + + ) + +563 + m_CS_LFS_LINTFLAGS +, + +564  + #_CS_LFS_LINTFLAGS + +_CS_LFS_LINTFLAGS + + + ) + +565 + m_CS_LFS64_CFLAGS +, + +566  + #_CS_LFS64_CFLAGS + +_CS_LFS64_CFLAGS + + + ) + +567 + m_CS_LFS64_LDFLAGS +, + +568  + #_CS_LFS64_LDFLAGS + +_CS_LFS64_LDFLAGS + + + ) + +569 + m_CS_LFS64_LIBS +, + +570  + #_CS_LFS64_LIBS + +_CS_LFS64_LIBS + + + ) + +571 + m_CS_LFS64_LINTFLAGS +, + +572  + #_CS_LFS64_LINTFLAGS + +_CS_LFS64_LINTFLAGS + + + ) + +574 + m_CS_XBS5_ILP32_OFF32_CFLAGS + = 1100, + +575  + #_CS_XBS5_ILP32_OFF32_CFLAGS + +_CS_XBS5_ILP32_OFF32_CFLAGS + + + ) + +576 + m_CS_XBS5_ILP32_OFF32_LDFLAGS +, + +577  + #_CS_XBS5_ILP32_OFF32_LDFLAGS + +_CS_XBS5_ILP32_OFF32_LDFLAGS + + + ) + +578 + m_CS_XBS5_ILP32_OFF32_LIBS +, + +579  + #_CS_XBS5_ILP32_OFF32_LIBS + +_CS_XBS5_ILP32_OFF32_LIBS + + + ) + +580 + m_CS_XBS5_ILP32_OFF32_LINTFLAGS +, + +581  + #_CS_XBS5_ILP32_OFF32_LINTFLAGS + +_CS_XBS5_ILP32_OFF32_LINTFLAGS + + + ) + +582 + m_CS_XBS5_ILP32_OFFBIG_CFLAGS +, + +583  + #_CS_XBS5_ILP32_OFFBIG_CFLAGS + +_CS_XBS5_ILP32_OFFBIG_CFLAGS + + + ) + +584 + m_CS_XBS5_ILP32_OFFBIG_LDFLAGS +, + +585  + #_CS_XBS5_ILP32_OFFBIG_LDFLAGS + +_CS_XBS5_ILP32_OFFBIG_LDFLAGS + + + ) + +586 + m_CS_XBS5_ILP32_OFFBIG_LIBS +, + +587  + #_CS_XBS5_ILP32_OFFBIG_LIBS + +_CS_XBS5_ILP32_OFFBIG_LIBS + + + ) + +588 + m_CS_XBS5_ILP32_OFFBIG_LINTFLAGS +, + +589  + #_CS_XBS5_ILP32_OFFBIG_LINTFLAGS + +_CS_XBS5_ILP32_OFFBIG_LINTFLAGS + + + ) + +590 + m_CS_XBS5_LP64_OFF64_CFLAGS +, + +591  + #_CS_XBS5_LP64_OFF64_CFLAGS + +_CS_XBS5_LP64_OFF64_CFLAGS + + + ) + +592 + m_CS_XBS5_LP64_OFF64_LDFLAGS +, + +593  + #_CS_XBS5_LP64_OFF64_LDFLAGS + +_CS_XBS5_LP64_OFF64_LDFLAGS + + + ) + +594 + m_CS_XBS5_LP64_OFF64_LIBS +, + +595  + #_CS_XBS5_LP64_OFF64_LIBS + +_CS_XBS5_LP64_OFF64_LIBS + + + ) + +596 + m_CS_XBS5_LP64_OFF64_LINTFLAGS +, + +597  + #_CS_XBS5_LP64_OFF64_LINTFLAGS + +_CS_XBS5_LP64_OFF64_LINTFLAGS + + + ) + +598 + m_CS_XBS5_LPBIG_OFFBIG_CFLAGS +, + +599  + #_CS_XBS5_LPBIG_OFFBIG_CFLAGS + +_CS_XBS5_LPBIG_OFFBIG_CFLAGS + + + ) + +600 + m_CS_XBS5_LPBIG_OFFBIG_LDFLAGS +, + +601  + #_CS_XBS5_LPBIG_OFFBIG_LDFLAGS + +_CS_XBS5_LPBIG_OFFBIG_LDFLAGS + + + ) + +602 + m_CS_XBS5_LPBIG_OFFBIG_LIBS +, + +603  + #_CS_XBS5_LPBIG_OFFBIG_LIBS + +_CS_XBS5_LPBIG_OFFBIG_LIBS + + + ) + +604 + m_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS +, + +605  + #_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS + +_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS + + + ) + +607 + m_CS_POSIX_V6_ILP32_OFF32_CFLAGS +, + +608  + #_CS_POSIX_V6_ILP32_OFF32_CFLAGS + +_CS_POSIX_V6_ILP32_OFF32_CFLAGS + + + ) + +609 + m_CS_POSIX_V6_ILP32_OFF32_LDFLAGS +, + +610  + #_CS_POSIX_V6_ILP32_OFF32_LDFLAGS + +_CS_POSIX_V6_ILP32_OFF32_LDFLAGS + + + ) + +611 + m_CS_POSIX_V6_ILP32_OFF32_LIBS +, + +612  + #_CS_POSIX_V6_ILP32_OFF32_LIBS + +_CS_POSIX_V6_ILP32_OFF32_LIBS + + + ) + +613 + m_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS +, + +614  + #_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS + +_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS + + + ) + +615 + m_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS +, + +616  + #_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS + +_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS + + + ) + +617 + m_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS +, + +618  + #_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS + +_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS + + + ) + +619 + m_CS_POSIX_V6_ILP32_OFFBIG_LIBS +, + +620  + #_CS_POSIX_V6_ILP32_OFFBIG_LIBS + +_CS_POSIX_V6_ILP32_OFFBIG_LIBS + + + ) + +621 + m_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS +, + +622  + #_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS + +_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS + + + ) + +623 + m_CS_POSIX_V6_LP64_OFF64_CFLAGS +, + +624  + #_CS_POSIX_V6_LP64_OFF64_CFLAGS + +_CS_POSIX_V6_LP64_OFF64_CFLAGS + + + ) + +625 + m_CS_POSIX_V6_LP64_OFF64_LDFLAGS +, + +626  + #_CS_POSIX_V6_LP64_OFF64_LDFLAGS + +_CS_POSIX_V6_LP64_OFF64_LDFLAGS + + + ) + +627 + m_CS_POSIX_V6_LP64_OFF64_LIBS +, + +628  + #_CS_POSIX_V6_LP64_OFF64_LIBS + +_CS_POSIX_V6_LP64_OFF64_LIBS + + + ) + +629 + m_CS_POSIX_V6_LP64_OFF64_LINTFLAGS +, + +630  + #_CS_POSIX_V6_LP64_OFF64_LINTFLAGS + +_CS_POSIX_V6_LP64_OFF64_LINTFLAGS + + + ) + +631 + m_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS +, + +632  + #_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS + +_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS + + + ) + +633 + m_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS +, + +634  + #_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS + +_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS + + + ) + +635 + m_CS_POSIX_V6_LPBIG_OFFBIG_LIBS +, + +636  + #_CS_POSIX_V6_LPBIG_OFFBIG_LIBS + +_CS_POSIX_V6_LPBIG_OFFBIG_LIBS + + + ) + +637 + m_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS +, + +638  + #_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS + +_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS + + + ) + +640 + m_CS_POSIX_V7_ILP32_OFF32_CFLAGS +, + +641  + #_CS_POSIX_V7_ILP32_OFF32_CFLAGS + +_CS_POSIX_V7_ILP32_OFF32_CFLAGS + + + ) + +642 + m_CS_POSIX_V7_ILP32_OFF32_LDFLAGS +, + +643  + #_CS_POSIX_V7_ILP32_OFF32_LDFLAGS + +_CS_POSIX_V7_ILP32_OFF32_LDFLAGS + + + ) + +644 + m_CS_POSIX_V7_ILP32_OFF32_LIBS +, + +645  + #_CS_POSIX_V7_ILP32_OFF32_LIBS + +_CS_POSIX_V7_ILP32_OFF32_LIBS + + + ) + +646 + m_CS_POSIX_V7_ILP32_OFF32_LINTFLAGS +, + +647  + #_CS_POSIX_V7_ILP32_OFF32_LINTFLAGS + +_CS_POSIX_V7_ILP32_OFF32_LINTFLAGS + + + ) + +648 + m_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS +, + +649  + #_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS + +_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS + + + ) + +650 + m_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS +, + +651  + #_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS + +_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS + + + ) + +652 + m_CS_POSIX_V7_ILP32_OFFBIG_LIBS +, + +653  + #_CS_POSIX_V7_ILP32_OFFBIG_LIBS + +_CS_POSIX_V7_ILP32_OFFBIG_LIBS + + + ) + +654 + m_CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS +, + +655  + #_CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS + +_CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS + + + ) + +656 + m_CS_POSIX_V7_LP64_OFF64_CFLAGS +, + +657  + #_CS_POSIX_V7_LP64_OFF64_CFLAGS + +_CS_POSIX_V7_LP64_OFF64_CFLAGS + + + ) + +658 + m_CS_POSIX_V7_LP64_OFF64_LDFLAGS +, + +659  + #_CS_POSIX_V7_LP64_OFF64_LDFLAGS + +_CS_POSIX_V7_LP64_OFF64_LDFLAGS + + + ) + +660 + m_CS_POSIX_V7_LP64_OFF64_LIBS +, + +661  + #_CS_POSIX_V7_LP64_OFF64_LIBS + +_CS_POSIX_V7_LP64_OFF64_LIBS + + + ) + +662 + m_CS_POSIX_V7_LP64_OFF64_LINTFLAGS +, + +663  + #_CS_POSIX_V7_LP64_OFF64_LINTFLAGS + +_CS_POSIX_V7_LP64_OFF64_LINTFLAGS + + + ) + +664 + m_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS +, + +665  + #_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS + +_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS + + + ) + +666 + m_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS +, + +667  + #_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS + +_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS + + + ) + +668 + m_CS_POSIX_V7_LPBIG_OFFBIG_LIBS +, + +669  + #_CS_POSIX_V7_LPBIG_OFFBIG_LIBS + +_CS_POSIX_V7_LPBIG_OFFBIG_LIBS + + + ) + +670 + m_CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS +, + +671  + #_CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS + +_CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS + + + ) + +673 + m_CS_V6_ENV +, + +674  + #_CS_V6_ENV + +_CS_V6_ENV + + + ) + +675 + m_CS_V7_ENV + + +676  + #_CS_V7_ENV + +_CS_V7_ENV + + + ) + + @/usr/include/bits/environments.h + +19 #iâdeà +_UNISTD_H + + +23  + ~ + +43 #ià +__WORDSIZE + == 64 + +57  + #_POSIX_V7_LPBIG_OFFBIG + -1 + + ) + +58  + #_POSIX_V6_LPBIG_OFFBIG + -1 + + ) + +59  + #_XBS5_LPBIG_OFFBIG + -1 + + ) + +62  + #_POSIX_V7_LP64_OFF64 + 1 + + ) + +63  + #_POSIX_V6_LP64_OFF64 + 1 + + ) + +64  + #_XBS5_LP64_OFF64 + 1 + + ) + +70  + #_POSIX_V7_ILP32_OFF32 + 1 + + ) + +71  + #_POSIX_V7_ILP32_OFFBIG + 1 + + ) + +72  + #_POSIX_V6_ILP32_OFF32 + 1 + + ) + +73  + #_POSIX_V6_ILP32_OFFBIG + 1 + + ) + +74  + #_XBS5_ILP32_OFF32 + 1 + + ) + +75  + #_XBS5_ILP32_OFFBIG + 1 + + ) + +92  + #__ILP32_OFF32_CFLAGS + "-m32" + + ) + +93  + #__ILP32_OFFBIG_CFLAGS + "-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" + + ) + +94  + #__ILP32_OFF32_LDFLAGS + "-m32" + + ) + +95  + #__ILP32_OFFBIG_LDFLAGS + "-m32" + + ) + +96  + #__LP64_OFF64_CFLAGS + "-m64" + + ) + +97  + #__LP64_OFF64_LDFLAGS + "-m64" + + ) + + @/usr/include/bits/huge_val.h + +22 #iâdeà +_MATH_H + + +28 #ià +__GNUC_PREREQ +(3,3) + +29  + #HUGE_VAL + ( + `__bužtš_huge_v® +()) + + ) + +30 #–ià +__GNUC_PREREQ +(2,96) + +31  + #HUGE_VAL + ( +__ex‹nsiÚ__ + 0x1.0 +p2047 +) + + ) + +32 #–ià +defšed + +__GNUC__ + + +34  + #HUGE_VAL + \ + +35 ( +__ex‹nsiÚ__ + \ + +36 ((uniÚ {  +__l + + `__©Œibu‹__ +(( + `__mode__ +( +__DI__ +)));  +__d +; }) \ + +37 { +__l +: 0x7ff0000000000000ULL }). +__d +) + + ) + +41  + ~<’dŸn.h +> + +43 uniÚ {  + m__c +[8];  + m__d +; } + t__huge_v®_t +; + +45 #ià +__BYTE_ORDER + =ð +__BIG_ENDIAN + + +46  + #__HUGE_VAL_by‹s + { 0x7f, 0xf0, 0, 0, 0, 0, 0, 0 } + + ) + +48 #ià +__BYTE_ORDER + =ð +__LITTLE_ENDIAN + + +49  + #__HUGE_VAL_by‹s + { 0, 0, 0, 0, 0, 0, 0xf0, 0x7à} + + ) + +52  +__huge_v®_t + + g__huge_v® + = { +__HUGE_VAL_by‹s + }; + +53  + #HUGE_VAL + ( +__huge_v® +. +__d +) + + ) + + @/usr/include/bits/huge_valf.h + +22 #iâdeà +_MATH_H + + +28 #ià +__GNUC_PREREQ +(3,3) + +29  + #HUGE_VALF + ( + `__bužtš_huge_v®f +()) + + ) + +30 #–ià +__GNUC_PREREQ +(2,96) + +31  + #HUGE_VALF + ( +__ex‹nsiÚ__ + 0x1.0 +p255f +) + + ) + +32 #–ià +defšed + +__GNUC__ + + +34  + #HUGE_VALF + \ + +35 ( +__ex‹nsiÚ__ + \ + +36 ((uniÚ {  +__l + + `__©Œibu‹__ +(( + `__mode__ +( +__SI__ +)));  +__d +; }) \ + +37 { +__l +: 0x7f800000UL }). +__d +) + + ) + +41 uniÚ {  + m__c +[4];  + m__f +; } + t__huge_v®f_t +; + +43 #ià +__BYTE_ORDER + =ð +__BIG_ENDIAN + + +44  + #__HUGE_VALF_by‹s + { 0x7f, 0x80, 0, 0 } + + ) + +46 #ià +__BYTE_ORDER + =ð +__LITTLE_ENDIAN + + +47  + #__HUGE_VALF_by‹s + { 0, 0, 0x80, 0x7à} + + ) + +50  +__huge_v®f_t + + g__huge_v®f + = { +__HUGE_VALF_by‹s + }; + +51  + #HUGE_VALF + ( +__huge_v®f +. +__f +) + + ) + + @/usr/include/bits/huge_vall.h + +21 #iâdeà +_MATH_H + + +25 #ià +__GNUC_PREREQ +(3,3) + +26  + #HUGE_VALL + ( + `__bužtš_huge_v®l +()) + + ) + +28  + #HUGE_VALL + ((è +HUGE_VAL +) + + ) + + @/usr/include/bits/inf.h + +20 #iâdeà +_MATH_H + + +26 #ià +__GNUC_PREREQ +(3,3) + +27  + #INFINITY + ( + `__bužtš_šff +()) + + ) + +29  + #INFINITY + +HUGE_VALF + + + ) + + @/usr/include/bits/mathcalls.h + +46 #iâdeà +_MATH_H + + +53 +_MdoubË_BEGIN_NAMESPACE + + +55 +__MATHCALL + ( +acos +,, ( +_MdoubË_ + +__x +)); + +57 +__MATHCALL + ( +asš +,, ( +_MdoubË_ + +__x +)); + +59 +__MATHCALL + ( +©ª +,, ( +_MdoubË_ + +__x +)); + +61 +__MATHCALL + ( +©ª2 +,, ( +_MdoubË_ + +__y +, _MdoubË_ +__x +)); + +64 +__MATHCALL + ( +cos +,, ( +_MdoubË_ + +__x +)); + +66 +__MATHCALL + ( +sš +,, ( +_MdoubË_ + +__x +)); + +68 +__MATHCALL + ( +n +,, ( +_MdoubË_ + +__x +)); + +73 +__MATHCALL + ( +cosh +,, ( +_MdoubË_ + +__x +)); + +75 +__MATHCALL + ( +sšh +,, ( +_MdoubË_ + +__x +)); + +77 +__MATHCALL + ( +nh +,, ( +_MdoubË_ + +__x +)); + +78 + g_MdoubË_END_NAMESPACE + + +80 #ifdeà +__USE_GNU + + +82 +__MATHDECL + (, +sšcos +,, + +83 ( +_MdoubË_ + +__x +, _MdoubË_ * +__sšx +, _MdoubË_ * +__cosx +)); + +86 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN_EXTENDED + || defšed +__USE_ISOC99 + + +87 +__BEGIN_NAMESPACE_C99 + + +89 +__MATHCALL + ( +acosh +,, ( +_MdoubË_ + +__x +)); + +91 +__MATHCALL + ( +asšh +,, ( +_MdoubË_ + +__x +)); + +93 +__MATHCALL + ( +©ªh +,, ( +_MdoubË_ + +__x +)); + +94 + g__END_NAMESPACE_C99 + + +99 +_MdoubË_BEGIN_NAMESPACE + + +101 +__MATHCALL + ( +exp +,, ( +_MdoubË_ + +__x +)); + +104 +__MATHCALL + ( +äexp +,, ( +_MdoubË_ + +__x +, * +__expÚ’t +)); + +107 +__MATHCALL + ( +ldexp +,, ( +_MdoubË_ + +__x +,  +__expÚ’t +)); + +110 +__MATHCALL + ( +log +,, ( +_MdoubË_ + +__x +)); + +113 +__MATHCALL + ( +log10 +,, ( +_MdoubË_ + +__x +)); + +116 +__MATHCALL + ( +modf +,, ( +_MdoubË_ + +__x +, _MdoubË_ * +__Œ +)); + +117 + g_MdoubË_END_NAMESPACE + + +119 #ifdeà +__USE_GNU + + +121 +__MATHCALL + ( +exp10 +,, ( +_MdoubË_ + +__x +)); + +123 +__MATHCALL + ( +pow10 +,, ( +_MdoubË_ + +__x +)); + +126 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN_EXTENDED + || defšed +__USE_ISOC99 + + +127 +__BEGIN_NAMESPACE_C99 + + +129 +__MATHCALL + ( +expm1 +,, ( +_MdoubË_ + +__x +)); + +132 +__MATHCALL + ( +log1p +,, ( +_MdoubË_ + +__x +)); + +135 +__MATHCALL + ( +logb +,, ( +_MdoubË_ + +__x +)); + +136 + g__END_NAMESPACE_C99 + + +139 #ifdeà +__USE_ISOC99 + + +140 +__BEGIN_NAMESPACE_C99 + + +142 +__MATHCALL + ( +exp2 +,, ( +_MdoubË_ + +__x +)); + +145 +__MATHCALL + ( +log2 +,, ( +_MdoubË_ + +__x +)); + +146 + g__END_NAMESPACE_C99 + + +152 +_MdoubË_BEGIN_NAMESPACE + + +154 +__MATHCALL + ( +pow +,, ( +_MdoubË_ + +__x +, _MdoubË_ +__y +)); + +157 +__MATHCALL + ( +sq¹ +,, ( +_MdoubË_ + +__x +)); + +158 + g_MdoubË_END_NAMESPACE + + +160 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN + || defšed +__USE_ISOC99 + + +161 +__BEGIN_NAMESPACE_C99 + + +163 +__MATHCALL + ( +hypÙ +,, ( +_MdoubË_ + +__x +, _MdoubË_ +__y +)); + +164 + g__END_NAMESPACE_C99 + + +167 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN_EXTENDED + || defšed +__USE_ISOC99 + + +168 +__BEGIN_NAMESPACE_C99 + + +170 +__MATHCALL + ( +cb¹ +,, ( +_MdoubË_ + +__x +)); + +171 + g__END_NAMESPACE_C99 + + +177 +_MdoubË_BEGIN_NAMESPACE + + +179 +__MATHCALLX + ( +ûž +,, ( +_MdoubË_ + +__x +), ( +__cÚ¡__ +)); + +182 +__MATHCALLX + ( +çbs +,, ( +_MdoubË_ + +__x +), ( +__cÚ¡__ +)); + +185 +__MATHCALLX + ( +æoÜ +,, ( +_MdoubË_ + +__x +), ( +__cÚ¡__ +)); + +188 +__MATHCALL + ( +fmod +,, ( +_MdoubË_ + +__x +, _MdoubË_ +__y +)); + +193 +__MATHDECL_1 + (, +__isšf +,, ( +_MdoubË_ + +__v®ue +)è +__©Œibu‹__ + (( +__cÚ¡__ +)); + +196 +__MATHDECL_1 + (, +__fš™e +,, ( +_MdoubË_ + +__v®ue +)è +__©Œibu‹__ + (( +__cÚ¡__ +)); + +197 + g_MdoubË_END_NAMESPACE + + +199 #ifdeà +__USE_MISC + + +202 +__MATHDECL_1 + (, +isšf +,, ( +_MdoubË_ + +__v®ue +)è +__©Œibu‹__ + (( +__cÚ¡__ +)); + +205 +__MATHDECL_1 + (, +fš™e +,, ( +_MdoubË_ + +__v®ue +)è +__©Œibu‹__ + (( +__cÚ¡__ +)); + +208 +__MATHCALL + ( +d»m +,, ( +_MdoubË_ + +__x +, _MdoubË_ +__y +)); + +212 +__MATHCALL + ( +signifiÿnd +,, ( +_MdoubË_ + +__x +)); + +215 #ià +defšed + +__USE_MISC + || defšed +__USE_ISOC99 + + +216 +__BEGIN_NAMESPACE_C99 + + +218 +__MATHCALLX + ( +cÝysign +,, ( +_MdoubË_ + +__x +, _MdoubË_ +__y +), ( +__cÚ¡__ +)); + +219 + g__END_NAMESPACE_C99 + + +222 #ifdeà +__USE_ISOC99 + + +223 +__BEGIN_NAMESPACE_C99 + + +225 +__MATHCALLX + ( +Çn +,, ( +__cÚ¡ + * +__gb +), ( +__cÚ¡__ +)); + +226 + g__END_NAMESPACE_C99 + + +231 +__MATHDECL_1 + (, +__i¢ª +,, ( +_MdoubË_ + +__v®ue +)è +__©Œibu‹__ + (( +__cÚ¡__ +)); + +233 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN + + +235 +__MATHDECL_1 + (, +i¢ª +,, ( +_MdoubË_ + +__v®ue +)è +__©Œibu‹__ + (( +__cÚ¡__ +)); + +238 +__MATHCALL + ( +j0 +,, ( +_MdoubË_ +)); + +239 +__MATHCALL + ( +j1 +,, ( +_MdoubË_ +)); + +240 +__MATHCALL + ( +jn +,, (, +_MdoubË_ +)); + +241 +__MATHCALL + ( +y0 +,, ( +_MdoubË_ +)); + +242 +__MATHCALL + ( +y1 +,, ( +_MdoubË_ +)); + +243 +__MATHCALL + ( +yn +,, (, +_MdoubË_ +)); + +247 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN + || defšed +__USE_ISOC99 + + +248 +__BEGIN_NAMESPACE_C99 + + +250 +__MATHCALL + ( +”f +,, ( +_MdoubË_ +)); + +251 +__MATHCALL + ( +”fc +,, ( +_MdoubË_ +)); + +252 +__MATHCALL + ( +lgamma +,, ( +_MdoubË_ +)); + +253 + g__END_NAMESPACE_C99 + + +256 #ifdeà +__USE_ISOC99 + + +257 +__BEGIN_NAMESPACE_C99 + + +259 +__MATHCALL + ( +tgamma +,, ( +_MdoubË_ +)); + +260 + g__END_NAMESPACE_C99 + + +263 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN + + +265 +__MATHCALL + ( +gamma +,, ( +_MdoubË_ +)); + +268 #ifdeà +__USE_MISC + + +272 +__MATHCALL + ( +lgamma +, +_r +, ( +_MdoubË_ +, * +__signgamp +)); + +276 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN_EXTENDED + || defšed +__USE_ISOC99 + + +277 +__BEGIN_NAMESPACE_C99 + + +280 +__MATHCALL + ( +ršt +,, ( +_MdoubË_ + +__x +)); + +283 +__MATHCALLX + ( +Ãxá” +,, ( +_MdoubË_ + +__x +, _MdoubË_ +__y +), ( +__cÚ¡__ +)); + +284 #ià +defšed + +__USE_ISOC99 + && !defšed +__LDBL_COMPAT + + +285 +__MATHCALLX + ( +Ãx‰ow¬d +,, ( +_MdoubË_ + +__x +,  +__y +), ( +__cÚ¡__ +)); + +289 +__MATHCALL + ( +»mašd” +,, ( +_MdoubË_ + +__x +, _MdoubË_ +__y +)); + +291 #ià +defšed + +__USE_MISC + || defšed +__USE_ISOC99 + + +293 +__MATHCALL + ( +sÿlbn +,, ( +_MdoubË_ + +__x +,  +__n +)); + +297 +__MATHDECL + (, +žogb +,, ( +_MdoubË_ + +__x +)); + +300 #ifdeà +__USE_ISOC99 + + +302 +__MATHCALL + ( +sÿlbÊ +,, ( +_MdoubË_ + +__x +,  +__n +)); + +306 +__MATHCALL + ( +ìbyšt +,, ( +_MdoubË_ + +__x +)); + +310 +__MATHCALLX + ( +round +,, ( +_MdoubË_ + +__x +), ( +__cÚ¡__ +)); + +314 +__MATHCALLX + ( +Œunc +,, ( +_MdoubË_ + +__x +), ( +__cÚ¡__ +)); + +319 +__MATHCALL + ( +»mquo +,, ( +_MdoubË_ + +__x +, _MdoubË_ +__y +, * +__quo +)); + +326 +__MATHDECL + (, +Ìšt +,, ( +_MdoubË_ + +__x +)); + +327 +__MATHDECL + (, +Îršt +,, ( +_MdoubË_ + +__x +)); + +331 +__MATHDECL + (, +Ìound +,, ( +_MdoubË_ + +__x +)); + +332 +__MATHDECL + (, +Îround +,, ( +_MdoubË_ + +__x +)); + +336 +__MATHCALL + ( +fdim +,, ( +_MdoubË_ + +__x +, _MdoubË_ +__y +)); + +339 +__MATHCALL + ( +fmax +,, ( +_MdoubË_ + +__x +, _MdoubË_ +__y +)); + +342 +__MATHCALL + ( +fmš +,, ( +_MdoubË_ + +__x +, _MdoubË_ +__y +)); + +346 +__MATHDECL_1 + (, +__åþassify +,, ( +_MdoubË_ + +__v®ue +)) + +347 +__©Œibu‹__ + (( +__cÚ¡__ +)); + +350 +__MATHDECL_1 + (, +__signb™ +,, ( +_MdoubË_ + +__v®ue +)) + +351 +__©Œibu‹__ + (( +__cÚ¡__ +)); + +355 +__MATHCALL + ( +fma +,, ( +_MdoubË_ + +__x +, _MdoubË_ +__y +, _MdoubË_ +__z +)); + +358 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN_EXTENDED + || defšed +__USE_ISOC99 + + +359 + g__END_NAMESPACE_C99 + + +362 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN_EXTENDED + + +364 +__MATHCALL + ( +sÿlb +,, ( +_MdoubË_ + +__x +, _MdoubË_ +__n +)); + + @/usr/include/bits/mathdef.h + +19 #ià! +defšed + +_MATH_H + && !defšed +_COMPLEX_H + + +23 #ià +defšed + +__USE_ISOC99 + && defšed +_MATH_H + && !defšed +_MATH_H_MATHDEF + + +24  + #_MATH_H_MATHDEF + 1 + + ) + +26  + ~ + +28 #ià +__WORDSIZE + =ð64 || ( +defšed + +__FLT_EVAL_METHOD__ + && __FLT_EVAL_METHOD__ == 0) + +31  + tæßt_t +; + +32  + tdoubË_t +; + +38  + tæßt_t +; + +40  + tdoubË_t +; + +45  + #FP_ILOGB0 + (-2147483647 - 1) + + ) + +46  + #FP_ILOGBNAN + (-2147483647 - 1) + + ) + +50 #ià +__FP_FAST_FMA + + +51  + #FP_FAST_FMA + 1 + + ) + +54 #ià +__FP_FAST_FMAF + + +55  + #FP_FAST_FMAF + 1 + + ) + +58 #ià +__FP_FAST_FMAL + + +59  + #FP_FAST_FMAL + 1 + + ) + + @/usr/include/bits/mathinline.h + +21 #iâdeà +_MATH_H + + +25  + ~ + +27 #iâdeà +__ex‹º_šlše + + +28  + #__MATH_INLINE + +__šlše + + + ) + +30  + #__MATH_INLINE + +__ex‹º_šlše + + + ) + +34 #ià +defšed + +__USE_ISOC99 + && defšed +__GNUC__ + && __GNUC__ >= 2 + +37 +__MATH_INLINE +  + +38 +__NTH + ( + $__signb™f + ( +__x +)) + +40 #ià +__WORDSIZE + == 32 + +41 +__ex‹nsiÚ__ + uniÚ {  +__f +;  +__i +; } +__u + = { __f: +__x + }; + +42  +__u +. +__i + < 0; + +44  +__m +; + +45 + `__asm + ("pmovmskb %1, %0" : "ô" ( +__m +è: "x" ( +__x +)); + +46  +__m + & 0x8; + +48 + } +} + +49 +__MATH_INLINE +  + +50 +__NTH + ( + $__signb™ + ( +__x +)) + +52 #ià +__WORDSIZE + == 32 + +53 +__ex‹nsiÚ__ + uniÚ {  +__d +;  +__i +[2]; } +__u + = { __d: +__x + }; + +54  +__u +. +__i +[1] < 0; + +56  +__m +; + +57 + `__asm + ("pmovmskb %1, %0" : "ô" ( +__m +è: "x" ( +__x +)); + +58  +__m + & 0x80; + +60 + } +} + +61 +__MATH_INLINE +  + +62 +__NTH + ( + $__signb™l + ( +__x +)) + +64 +__ex‹nsiÚ__ + uniÚ {  +__l +;  +__i +[3]; } +__u + = { __l: +__x + }; + +65  ( +__u +. +__i +[2] & 0x8000) != 0; + +66 + } +} + + @/usr/include/bits/nan.h + +20 #iâdeà +_MATH_H + + +27 #ià +__GNUC_PREREQ +(3,3) + +29  + #NAN + ( + `__bužtš_Çnf + ("")) + + ) + +31 #–ià +defšed + +__GNUC__ + + +33  + #NAN + \ + +34 ( +__ex‹nsiÚ__ + \ + +35 ((uniÚ {  +__l + + `__©Œibu‹__ + (( + `__mode__ + ( +__SI__ +)));  +__d +; }) \ + +36 { +__l +: 0x7fc00000UL }). +__d +) + + ) + +40  + ~<’dŸn.h +> + +42 #ià +__BYTE_ORDER + =ð +__BIG_ENDIAN + + +43  + #__Çn_by‹s + { 0x7f, 0xc0, 0, 0 } + + ) + +45 #ià +__BYTE_ORDER + =ð +__LITTLE_ENDIAN + + +46  + #__Çn_by‹s + { 0, 0, 0xc0, 0x7à} + + ) + +49 uniÚ {  + m__c +[4];  + m__d +; } +__Çn_uniÚ + + +50 + g__©Œibu‹_u£d__ + = { +__Çn_by‹s + }; + +51  + #NAN + ( +__Çn_uniÚ +. +__d +) + + ) + + @/usr/include/bits/posix_opt.h + +20 #iâdef +_BITS_POSIX_OPT_H + + +21  + #_BITS_POSIX_OPT_H + 1 + + ) + +24  + #_POSIX_JOB_CONTROL + 1 + + ) + +27  + #_POSIX_SAVED_IDS + 1 + + ) + +30  + #_POSIX_PRIORITY_SCHEDULING + 200809L + + ) + +33  + #_POSIX_SYNCHRONIZED_IO + 200809L + + ) + +36  + #_POSIX_FSYNC + 200809L + + ) + +39  + #_POSIX_MAPPED_FILES + 200809L + + ) + +42  + #_POSIX_MEMLOCK + 200809L + + ) + +45  + #_POSIX_MEMLOCK_RANGE + 200809L + + ) + +48  + #_POSIX_MEMORY_PROTECTION + 200809L + + ) + +51  + #_POSIX_CHOWN_RESTRICTED + 0 + + ) + +55  + #_POSIX_VDISABLE + '\0' + + ) + +58  + #_POSIX_NO_TRUNC + 1 + + ) + +61  + #_XOPEN_REALTIME + 1 + + ) + +64  + #_XOPEN_REALTIME_THREADS + 1 + + ) + +67  + #_XOPEN_SHM + 1 + + ) + +70  + #_POSIX_THREADS + 200809L + + ) + +73  + #_POSIX_REENTRANT_FUNCTIONS + 1 + + ) + +74  + #_POSIX_THREAD_SAFE_FUNCTIONS + 200809L + + ) + +77  + #_POSIX_THREAD_PRIORITY_SCHEDULING + 200809L + + ) + +80  + #_POSIX_THREAD_ATTR_STACKSIZE + 200809L + + ) + +83  + #_POSIX_THREAD_ATTR_STACKADDR + 200809L + + ) + +86  + #_POSIX_THREAD_PRIO_INHERIT + 200809L + + ) + +90  + #_POSIX_THREAD_PRIO_PROTECT + 200809L + + ) + +92 #ifdeà +__USE_XOPEN2K8 + + +94  + #_POSIX_THREAD_ROBUST_PRIO_INHERIT + 200809L + + ) + +97  + #_POSIX_THREAD_ROBUST_PRIO_PROTECT + -1 + + ) + +101  + #_POSIX_SEMAPHORES + 200809L + + ) + +104  + #_POSIX_REALTIME_SIGNALS + 200809L + + ) + +107  + #_POSIX_ASYNCHRONOUS_IO + 200809L + + ) + +108  + #_POSIX_ASYNC_IO + 1 + + ) + +110  + #_LFS_ASYNCHRONOUS_IO + 1 + + ) + +112  + #_POSIX_PRIORITIZED_IO + 200809L + + ) + +115  + #_LFS64_ASYNCHRONOUS_IO + 1 + + ) + +118  + #_LFS_LARGEFILE + 1 + + ) + +119  + #_LFS64_LARGEFILE + 1 + + ) + +120  + #_LFS64_STDIO + 1 + + ) + +123  + #_POSIX_SHARED_MEMORY_OBJECTS + 200809L + + ) + +126  + #_POSIX_CPUTIME + 0 + + ) + +129  + #_POSIX_THREAD_CPUTIME + 0 + + ) + +132  + #_POSIX_REGEXP + 1 + + ) + +135  + #_POSIX_READER_WRITER_LOCKS + 200809L + + ) + +138  + #_POSIX_SHELL + 1 + + ) + +141  + #_POSIX_TIMEOUTS + 200809L + + ) + +144  + #_POSIX_SPIN_LOCKS + 200809L + + ) + +147  + #_POSIX_SPAWN + 200809L + + ) + +150  + #_POSIX_TIMERS + 200809L + + ) + +153  + #_POSIX_BARRIERS + 200809L + + ) + +156  + #_POSIX_MESSAGE_PASSING + 200809L + + ) + +159  + #_POSIX_THREAD_PROCESS_SHARED + 200809L + + ) + +162  + #_POSIX_MONOTONIC_CLOCK + 0 + + ) + +165  + #_POSIX_CLOCK_SELECTION + 200809L + + ) + +168  + #_POSIX_ADVISORY_INFO + 200809L + + ) + +171  + #_POSIX_IPV6 + 200809L + + ) + +174  + #_POSIX_RAW_SOCKETS + 200809L + + ) + +177  + #_POSIX2_CHAR_TERM + 200809L + + ) + +180  + #_POSIX_SPORADIC_SERVER + -1 + + ) + +181  + #_POSIX_THREAD_SPORADIC_SERVER + -1 + + ) + +184  + #_POSIX_TRACE + -1 + + ) + +185  + #_POSIX_TRACE_EVENT_FILTER + -1 + + ) + +186  + #_POSIX_TRACE_INHERIT + -1 + + ) + +187  + #_POSIX_TRACE_LOG + -1 + + ) + +190  + #_POSIX_TYPED_MEMORY_OBJECTS + -1 + + ) + + @/usr/include/bits/pthreadtypes.h + +20 #iâdeà +_BITS_PTHREADTYPES_H + + +21  + #_BITS_PTHREADTYPES_H + 1 + + ) + +23  + ~ + +25 #ià +__WORDSIZE + == 64 + +26  + #__SIZEOF_PTHREAD_ATTR_T + 56 + + ) + +27  + #__SIZEOF_PTHREAD_MUTEX_T + 40 + + ) + +28  + #__SIZEOF_PTHREAD_MUTEXATTR_T + 4 + + ) + +29  + #__SIZEOF_PTHREAD_COND_T + 48 + + ) + +30  + #__SIZEOF_PTHREAD_CONDATTR_T + 4 + + ) + +31  + #__SIZEOF_PTHREAD_RWLOCK_T + 56 + + ) + +32  + #__SIZEOF_PTHREAD_RWLOCKATTR_T + 8 + + ) + +33  + #__SIZEOF_PTHREAD_BARRIER_T + 32 + + ) + +34  + #__SIZEOF_PTHREAD_BARRIERATTR_T + 4 + + ) + +36  + #__SIZEOF_PTHREAD_ATTR_T + 36 + + ) + +37  + #__SIZEOF_PTHREAD_MUTEX_T + 24 + + ) + +38  + #__SIZEOF_PTHREAD_MUTEXATTR_T + 4 + + ) + +39  + #__SIZEOF_PTHREAD_COND_T + 48 + + ) + +40  + #__SIZEOF_PTHREAD_CONDATTR_T + 4 + + ) + +41  + #__SIZEOF_PTHREAD_RWLOCK_T + 32 + + ) + +42  + #__SIZEOF_PTHREAD_RWLOCKATTR_T + 8 + + ) + +43  + #__SIZEOF_PTHREAD_BARRIER_T + 20 + + ) + +44  + #__SIZEOF_PTHREAD_BARRIERATTR_T + 4 + + ) + +50  + t±h»ad_t +; + +55  + m__size +[ +__SIZEOF_PTHREAD_ATTR_T +]; + +56  + m__®ign +; + +57 } + t±h»ad_©Œ_t +; + +60 #ià +__WORDSIZE + == 64 + +61  + s__±h»ad_š‹º®_li¡ + + +63  +__±h»ad_š‹º®_li¡ + * + m__´ev +; + +64  +__±h»ad_š‹º®_li¡ + * + m__Ãxt +; + +65 } + t__±h»ad_li¡_t +; + +67  + s__±h»ad_š‹º®_¦i¡ + + +69  +__±h»ad_š‹º®_¦i¡ + * + m__Ãxt +; + +70 } + t__±h»ad_¦i¡_t +; + +78  + s__±h»ad_mu‹x_s + + +80  + m__lock +; + +81  + m__couÁ +; + +82  + m__owÃr +; + +83 #ià +__WORDSIZE + == 64 + +84  + m__nu£rs +; + +88  + m__kšd +; + +89 #ià +__WORDSIZE + == 64 + +90  + m__¥šs +; + +91 +__±h»ad_li¡_t + + m__li¡ +; + +92  + #__PTHREAD_MUTEX_HAVE_PREV + 1 + + ) + +94  + m__nu£rs +; + +95 +__ex‹nsiÚ__ + union + +97  + m__¥šs +; + +98 +__±h»ad_¦i¡_t + + m__li¡ +; + +101 } + m__d©a +; + +102  + m__size +[ +__SIZEOF_PTHREAD_MUTEX_T +]; + +103  + m__®ign +; + +104 } + t±h»ad_mu‹x_t +; + +108  + m__size +[ +__SIZEOF_PTHREAD_MUTEXATTR_T +]; + +109  + m__®ign +; + +110 } + t±h»ad_mu‹x©Œ_t +; + +119  + m__lock +; + +120  + m__fu‹x +; + +121 +__ex‹nsiÚ__ +  + m__tÙ®_£q +; + +122 +__ex‹nsiÚ__ +  + m__wakeup_£q +; + +123 +__ex‹nsiÚ__ +  + m__wok’_£q +; + +124 * + m__mu‹x +; + +125  + m__nwa™”s +; + +126  + m__brßdÿ¡_£q +; + +127 } + m__d©a +; + +128  + m__size +[ +__SIZEOF_PTHREAD_COND_T +]; + +129 +__ex‹nsiÚ__ +  + m__®ign +; + +130 } + t±h»ad_cÚd_t +; + +134  + m__size +[ +__SIZEOF_PTHREAD_CONDATTR_T +]; + +135  + m__®ign +; + +136 } + t±h»ad_cÚd©Œ_t +; + +140  + t±h»ad_key_t +; + +144  + t±h»ad_Úû_t +; + +147 #ià +defšed + +__USE_UNIX98 + || defšed +__USE_XOPEN2K + + +152 #ià +__WORDSIZE + == 64 + +155  + m__lock +; + +156  + m__Ä_»ad”s +; + +157  + m__»ad”s_wakeup +; + +158  + m__wr™”_wakeup +; + +159  + m__Ä_»ad”s_queued +; + +160  + m__Ä_wr™”s_queued +; + +161  + m__wr™” +; + +162  + m__sh¬ed +; + +163  + m__·d1 +; + +164  + m__·d2 +; + +167  + m__æags +; + +168 } + m__d©a +; + +172  + m__lock +; + +173  + m__Ä_»ad”s +; + +174  + m__»ad”s_wakeup +; + +175  + m__wr™”_wakeup +; + +176  + m__Ä_»ad”s_queued +; + +177  + m__Ä_wr™”s_queued +; + +180  + m__æags +; + +181  + m__sh¬ed +; + +182  + m__·d1 +; + +183  + m__·d2 +; + +184  + m__wr™” +; + +185 } + m__d©a +; + +187  + m__size +[ +__SIZEOF_PTHREAD_RWLOCK_T +]; + +188  + m__®ign +; + +189 } + t±h»ad_rwlock_t +; + +193  + m__size +[ +__SIZEOF_PTHREAD_RWLOCKATTR_T +]; + +194  + m__®ign +; + +195 } + t±h»ad_rwlock©Œ_t +; + +199 #ifdeà +__USE_XOPEN2K + + +201 vÞ©ž + t±h»ad_¥šlock_t +; + +208  + m__size +[ +__SIZEOF_PTHREAD_BARRIER_T +]; + +209  + m__®ign +; + +210 } + t±h»ad_b¬r›r_t +; + +214  + m__size +[ +__SIZEOF_PTHREAD_BARRIERATTR_T +]; + +215  + m__®ign +; + +216 } + t±h»ad_b¬r›¿‰r_t +; + +220 #ià +__WORDSIZE + == 32 + +222  + #__þ—nup_fù_©Œibu‹ + + `__©Œibu‹__ + (( + `__»g·rm__ + (1))) + + ) + + @/usr/include/bits/resource.h + +21 #iâdeà +_SYS_RESOURCE_H + + +25  + ~ + +33 + e__¾im™_»sourû + + +36 + mRLIMIT_CPU + = 0, + +37  + #RLIMIT_CPU + +RLIMIT_CPU + + + ) + +40 + mRLIMIT_FSIZE + = 1, + +41  + #RLIMIT_FSIZE + +RLIMIT_FSIZE + + + ) + +44 + mRLIMIT_DATA + = 2, + +45  + #RLIMIT_DATA + +RLIMIT_DATA + + + ) + +48 + mRLIMIT_STACK + = 3, + +49  + #RLIMIT_STACK + +RLIMIT_STACK + + + ) + +52 + mRLIMIT_CORE + = 4, + +53  + #RLIMIT_CORE + +RLIMIT_CORE + + + ) + +59 + m__RLIMIT_RSS + = 5, + +60  + #RLIMIT_RSS + +__RLIMIT_RSS + + + ) + +63 + mRLIMIT_NOFILE + = 7, + +64 + m__RLIMIT_OFILE + = +RLIMIT_NOFILE +, + +65  + #RLIMIT_NOFILE + +RLIMIT_NOFILE + + + ) + +66  + #RLIMIT_OFILE + +__RLIMIT_OFILE + + + ) + +69 + mRLIMIT_AS + = 9, + +70  + #RLIMIT_AS + +RLIMIT_AS + + + ) + +73 + m__RLIMIT_NPROC + = 6, + +74  + #RLIMIT_NPROC + +__RLIMIT_NPROC + + + ) + +77 + m__RLIMIT_MEMLOCK + = 8, + +78  + #RLIMIT_MEMLOCK + +__RLIMIT_MEMLOCK + + + ) + +81 + m__RLIMIT_LOCKS + = 10, + +82  + #RLIMIT_LOCKS + +__RLIMIT_LOCKS + + + ) + +85 + m__RLIMIT_SIGPENDING + = 11, + +86  + #RLIMIT_SIGPENDING + +__RLIMIT_SIGPENDING + + + ) + +89 + m__RLIMIT_MSGQUEUE + = 12, + +90  + #RLIMIT_MSGQUEUE + +__RLIMIT_MSGQUEUE + + + ) + +95 + m__RLIMIT_NICE + = 13, + +96  + #RLIMIT_NICE + +__RLIMIT_NICE + + + ) + +100 + m__RLIMIT_RTPRIO + = 14, + +101  + #RLIMIT_RTPRIO + +__RLIMIT_RTPRIO + + + ) + +106 + m__RLIMIT_RTTIME + = 15, + +107  + #RLIMIT_RTTIME + +__RLIMIT_RTTIME + + + ) + +109 + m__RLIMIT_NLIMITS + = 16, + +110 + m__RLIM_NLIMITS + = +__RLIMIT_NLIMITS + + +111  + #RLIMIT_NLIMITS + +__RLIMIT_NLIMITS + + + ) + +112  + #RLIM_NLIMITS + +__RLIM_NLIMITS + + + ) + +116 #iâdeà +__USE_FILE_OFFSET64 + + +117  + #RLIM_INFINITY + (()(~0UL)) + + ) + +119  + #RLIM_INFINITY + 0xffffffffffffffffuLL + + ) + +122 #ifdeà +__USE_LARGEFILE64 + + +123  + #RLIM64_INFINITY + 0xffffffffffffffffuLL + + ) + +127  + #RLIM_SAVED_MAX + +RLIM_INFINITY + + + ) + +128  + #RLIM_SAVED_CUR + +RLIM_INFINITY + + + ) + +132 #iâdeà +__USE_FILE_OFFSET64 + + +133  +__¾im_t + + t¾im_t +; + +135  +__¾im64_t + + t¾im_t +; + +137 #ifdeà +__USE_LARGEFILE64 + + +138  +__¾im64_t + + t¾im64_t +; + +141  + s¾im™ + + +144 +¾im_t + + m¾im_cur +; + +146 +¾im_t + + m¾im_max +; + +149 #ifdeà +__USE_LARGEFILE64 + + +150  + s¾im™64 + + +153 +¾im64_t + + m¾im_cur +; + +155 +¾im64_t + + m¾im_max +; + +160 + e__ru§ge_who + + +163 + mRUSAGE_SELF + = 0, + +164  + #RUSAGE_SELF + +RUSAGE_SELF + + + ) + +167 + mRUSAGE_CHILDREN + = -1 + +168  + #RUSAGE_CHILDREN + +RUSAGE_CHILDREN + + + ) + +170 #ifdeà +__USE_GNU + + +173 + mRUSAGE_THREAD + = 1 + +174  + #RUSAGE_THREAD + +RUSAGE_THREAD + + + ) + +176  + #RUSAGE_LWP + +RUSAGE_THREAD + + + ) + +180  + #__Ãed_timev® + + + ) + +181  + ~ + +184  + sru§ge + + +187  +timev® + + mru_utime +; + +189  +timev® + + mru_¡ime +; + +191  + mru_maxrss +; + +194  + mru_ixrss +; + +196  + mru_idrss +; + +198  + mru_i¤ss +; + +201  + mru_mšæt +; + +203  + mru_majæt +; + +205  + mru_nsw­ +; + +208  + mru_šblock +; + +210  + mru_oublock +; + +212  + mru_msg¢d +; + +214  + mru_msgrcv +; + +216  + mru_nsigÇls +; + +220  + mru_nvcsw +; + +223  + mru_nivcsw +; + +227  + #PRIO_MIN + -20 + + ) + +228  + #PRIO_MAX + 20 + + ) + +232 + e__´iÜ™y_which + + +234 + mPRIO_PROCESS + = 0, + +235  + #PRIO_PROCESS + +PRIO_PROCESS + + + ) + +236 + mPRIO_PGRP + = 1, + +237  + #PRIO_PGRP + +PRIO_PGRP + + + ) + +238 + mPRIO_USER + = 2 + +239  + #PRIO_USER + +PRIO_USER + + + ) + +243 + g__BEGIN_DECLS + + +245 #ifdeà +__USE_GNU + + +247 #iâdeà +__USE_FILE_OFFSET64 + + +248  + $´lim™ + ( +__pid_t + +__pid +, +__¾im™_»sourû + +__»sourû +, + +249 +__cÚ¡ +  +¾im™ + * +__Ãw_lim™ +, + +250  +¾im™ + * +__Þd_lim™ +è +__THROW +; + +252 #ifdeà +__REDIRECT_NTH + + +253  + `__REDIRECT_NTH + ( +´lim™ +, ( +__pid_t + +__pid +, + +254 +__¾im™_»sourû + +__»sourû +, + +255 +__cÚ¡ +  +¾im™ + * +__Ãw_lim™ +, + +256  +¾im™ + * +__Þd_lim™ +), +´lim™64 +); + +258  + #´lim™ + +´lim™64 + + + ) + +261 #ifdeà +__USE_LARGEFILE64 + + +262  + $´lim™64 + ( +__pid_t + +__pid +, +__¾im™_»sourû + +__»sourû +, + +263 +__cÚ¡ +  +¾im™64 + * +__Ãw_lim™ +, + +264  +¾im™64 + * +__Þd_lim™ +è +__THROW +; + +268 +__END_DECLS + + + @/usr/include/bits/sigaction.h + +20 #iâdeà +_SIGNAL_H + + +25  + ssigaùiÚ + + +28 #ifdeà +__USE_POSIX199309 + + +32 +__sighªdËr_t + + m§_hªdËr +; + +34 (* + m§_sigaùiÚ +è(, + msigšfo_t + *, *); + +36 + m__sigaùiÚ_hªdËr +; + +37  + #§_hªdËr + +__sigaùiÚ_hªdËr +. +§_hªdËr + + + ) + +38  + #§_sigaùiÚ + +__sigaùiÚ_hªdËr +. +§_sigaùiÚ + + + ) + +40 +__sighªdËr_t + + m§_hªdËr +; + +44 +__sig£t_t + + m§_mask +; + +47  + m§_æags +; + +50 (* + m§_»¡Ü” +) (); + +54  + #SA_NOCLDSTOP + 1 + + ) + +55  + #SA_NOCLDWAIT + 2 + + ) + +56  + #SA_SIGINFO + 4 + + ) + +58 #ià +defšed + +__USE_UNIX98 + || defšed +__USE_MISC + + +59  + #SA_ONSTACK + 0x08000000 + + ) + +61 #ià +defšed + +__USE_UNIX98 + || defšed +__USE_MISC + || defšed +__USE_XOPEN2K8 + + +62  + #SA_RESTART + 0x10000000 + + ) + +63  + #SA_NODEFER + 0x40000000 + + ) + +65  + #SA_RESETHAND + 0x80000000 + + ) + +67 #ifdeà +__USE_MISC + + +68  + #SA_INTERRUPT + 0x20000000 + + ) + +71  + #SA_NOMASK + +SA_NODEFER + + + ) + +72  + #SA_ONESHOT + +SA_RESETHAND + + + ) + +73  + #SA_STACK + +SA_ONSTACK + + + ) + +77  + #SIG_BLOCK + 0 + + ) + +78  + #SIG_UNBLOCK + 1 + + ) + +79  + #SIG_SETMASK + 2 + + ) + + @/usr/include/bits/sigcontext.h + +19 #iâdeà +_BITS_SIGCONTEXT_H + + +20  + #_BITS_SIGCONTEXT_H + 1 + + ) + +22 #ià! +defšed + +_SIGNAL_H + && !defšed +_SYS_UCONTEXT_H + + +26  + ~ + +28  + s_å»g + + +30  + msignifiÿnd +[4]; + +31  + mexpÚ’t +; + +34  + s_åx»g + + +36  + msignifiÿnd +[4]; + +37  + mexpÚ’t +; + +38  + m·ddšg +[3]; + +41  + s_xmm»g + + +43 +__ušt32_t + + m–em’t +[4]; + +48 #ià +__WORDSIZE + == 32 + +50  + s_å¡©e + + +53 +__ušt32_t + + mcw +; + +54 +__ušt32_t + + msw +; + +55 +__ušt32_t + + mg +; + +56 +__ušt32_t + + moff +; + +57 +__ušt32_t + + mcs£l +; + +58 +__ušt32_t + + md©aoff +; + +59 +__ušt32_t + + md©a£l +; + +60  +_å»g + + m_¡ +[8]; + +61  + m¡©us +; + +62  + mmagic +; + +65 +__ušt32_t + + m_fx¤_’v +[6]; + +66 +__ušt32_t + + mmxc¤ +; + +67 +__ušt32_t + + m»£rved +; + +68  +_åx»g + + m_fx¤_¡ +[8]; + +69  +_xmm»g + + m_xmm +[8]; + +70 +__ušt32_t + + m·ddšg +[56]; + +73 #iâdeà +sigcÚ‹xt_¡ruù + + +78  + #sigcÚ‹xt_¡ruù + +sigcÚ‹xt + + + ) + +81  + ssigcÚ‹xt + + +83  + mgs +, + m__gsh +; + +84  + mfs +, + m__fsh +; + +85  + mes +, + m__esh +; + +86  + mds +, + m__dsh +; + +87  + medi +; + +88  + mesi +; + +89  + mebp +; + +90  + me¥ +; + +91  + mebx +; + +92  + medx +; + +93  + mecx +; + +94  + m—x +; + +95  + mŒ­no +; + +96  + m”r +; + +97  + me +; + +98  + mcs +, + m__csh +; + +99  + meæags +; + +100  + me¥_©_sigÇl +; + +101  + mss +, + m__ssh +; + +102  +_å¡©e + * + må¡©e +; + +103  + mÞdmask +; + +104  + mü2 +; + +109  + s_å¡©e + + +112 +__ušt16_t + + mcwd +; + +113 +__ušt16_t + + mswd +; + +114 +__ušt16_t + + máw +; + +115 +__ušt16_t + + mfÝ +; + +116 +__ušt64_t + + mr +; + +117 +__ušt64_t + + mrdp +; + +118 +__ušt32_t + + mmxc¤ +; + +119 +__ušt32_t + + mmxü_mask +; + +120  +_åx»g + + m_¡ +[8]; + +121  +_xmm»g + + m_xmm +[16]; + +122 +__ušt32_t + + m·ddšg +[24]; + +125  + ssigcÚ‹xt + + +127  + mr8 +; + +128  + mr9 +; + +129  + mr10 +; + +130  + mr11 +; + +131  + mr12 +; + +132  + mr13 +; + +133  + mr14 +; + +134  + mr15 +; + +135  + mrdi +; + +136  + mrsi +; + +137  + mrbp +; + +138  + mrbx +; + +139  + mrdx +; + +140  + m¿x +; + +141  + mrcx +; + +142  + mr¥ +; + +143  + mr +; + +144  + meæags +; + +145  + mcs +; + +146  + mgs +; + +147  + mfs +; + +148  + m__·d0 +; + +149  + m”r +; + +150  + mŒ­no +; + +151  + mÞdmask +; + +152  + mü2 +; + +153  +_å¡©e + * + må¡©e +; + +154  + m__»£rved1 + [8]; + + @/usr/include/bits/siginfo.h + +20 #ià! +defšed + +_SIGNAL_H + && !defšed +__Ãed_sigšfo_t + \ + +21 && ! +defšed + + g__Ãed_sigev’t_t + + +25  + ~ + +27 #ià(! +defšed + +__have_sigv®_t + \ + +28 && ( +defšed + + g_SIGNAL_H + || defšed + g__Ãed_sigšfo_t + \ + +29 || +defšed + + g__Ãed_sigev’t_t +)) + +30  + #__have_sigv®_t + 1 + + ) + +33  + usigv® + + +35  + msiv®_št +; + +36 * + msiv®_±r +; + +37 } + tsigv®_t +; + +40 #ià(! +defšed + +__have_sigšfo_t + \ + +41 && ( +defšed + + g_SIGNAL_H + || defšed + g__Ãed_sigšfo_t +)) + +42  + #__have_sigšfo_t + 1 + + ) + +44  + #__SI_MAX_SIZE + 128 + + ) + +45 #ià +__WORDSIZE + == 64 + +46  + #__SI_PAD_SIZE + (( +__SI_MAX_SIZE + /  ()è- 4) + + ) + +48  + #__SI_PAD_SIZE + (( +__SI_MAX_SIZE + /  ()è- 3) + + ) + +51  + ssigšfo + + +53  + msi_signo +; + +54  + msi_”ºo +; + +56  + msi_code +; + +60  + m_·d +[ +__SI_PAD_SIZE +]; + +65 +__pid_t + + msi_pid +; + +66 +__uid_t + + msi_uid +; + +67 } + m_kžl +; + +72  + msi_tid +; + +73  + msi_ov”run +; + +74 +sigv®_t + + msi_sigv® +; + +75 } + m_tim” +; + +80 +__pid_t + + msi_pid +; + +81 +__uid_t + + msi_uid +; + +82 +sigv®_t + + msi_sigv® +; + +83 } + m_¹ +; + +88 +__pid_t + + msi_pid +; + +89 +__uid_t + + msi_uid +; + +90  + msi_¡©us +; + +91 +__þock_t + + msi_utime +; + +92 +__þock_t + + msi_¡ime +; + +93 } + m_sigchld +; + +98 * + msi_addr +; + +99 } + m_sigçuÉ +; + +104  + msi_bªd +; + +105  + msi_fd +; + +106 } + m_sigpÞl +; + +107 } + m_sif›lds +; + +108 } + tsigšfo_t +; + +112  + #si_pid + +_sif›lds +. +_kžl +. +si_pid + + + ) + +113  + #si_uid + +_sif›lds +. +_kžl +. +si_uid + + + ) + +114  + #si_tim”id + +_sif›lds +. +_tim” +. +si_tid + + + ) + +115  + #si_ov”run + +_sif›lds +. +_tim” +. +si_ov”run + + + ) + +116  + #si_¡©us + +_sif›lds +. +_sigchld +. +si_¡©us + + + ) + +117  + #si_utime + +_sif›lds +. +_sigchld +. +si_utime + + + ) + +118  + #si_¡ime + +_sif›lds +. +_sigchld +. +si_¡ime + + + ) + +119  + #si_v®ue + +_sif›lds +. +_¹ +. +si_sigv® + + + ) + +120  + #si_št + +_sif›lds +. +_¹ +. +si_sigv® +. +siv®_št + + + ) + +121  + #si_±r + +_sif›lds +. +_¹ +. +si_sigv® +. +siv®_±r + + + ) + +122  + #si_addr + +_sif›lds +. +_sigçuÉ +. +si_addr + + + ) + +123  + #si_bªd + +_sif›lds +. +_sigpÞl +. +si_bªd + + + ) + +124  + #si_fd + +_sif›lds +. +_sigpÞl +. +si_fd + + + ) + +131 + mSI_ASYNCNL + = -60, + +132  + #SI_ASYNCNL + +SI_ASYNCNL + + + ) + +133 + mSI_TKILL + = -6, + +134  + #SI_TKILL + +SI_TKILL + + + ) + +135 + mSI_SIGIO +, + +136  + #SI_SIGIO + +SI_SIGIO + + + ) + +137 + mSI_ASYNCIO +, + +138  + #SI_ASYNCIO + +SI_ASYNCIO + + + ) + +139 + mSI_MESGQ +, + +140  + #SI_MESGQ + +SI_MESGQ + + + ) + +141 + mSI_TIMER +, + +142  + #SI_TIMER + +SI_TIMER + + + ) + +143 + mSI_QUEUE +, + +144  + #SI_QUEUE + +SI_QUEUE + + + ) + +145 + mSI_USER +, + +146  + #SI_USER + +SI_USER + + + ) + +147 + mSI_KERNEL + = 0x80 + +148  + #SI_KERNEL + +SI_KERNEL + + + ) + +155 + mILL_ILLOPC + = 1, + +156  + #ILL_ILLOPC + +ILL_ILLOPC + + + ) + +157 + mILL_ILLOPN +, + +158  + #ILL_ILLOPN + +ILL_ILLOPN + + + ) + +159 + mILL_ILLADR +, + +160  + #ILL_ILLADR + +ILL_ILLADR + + + ) + +161 + mILL_ILLTRP +, + +162  + #ILL_ILLTRP + +ILL_ILLTRP + + + ) + +163 + mILL_PRVOPC +, + +164  + #ILL_PRVOPC + +ILL_PRVOPC + + + ) + +165 + mILL_PRVREG +, + +166  + #ILL_PRVREG + +ILL_PRVREG + + + ) + +167 + mILL_COPROC +, + +168  + #ILL_COPROC + +ILL_COPROC + + + ) + +169 + mILL_BADSTK + + +170  + #ILL_BADSTK + +ILL_BADSTK + + + ) + +176 + mFPE_INTDIV + = 1, + +177  + #FPE_INTDIV + +FPE_INTDIV + + + ) + +178 + mFPE_INTOVF +, + +179  + #FPE_INTOVF + +FPE_INTOVF + + + ) + +180 + mFPE_FLTDIV +, + +181  + #FPE_FLTDIV + +FPE_FLTDIV + + + ) + +182 + mFPE_FLTOVF +, + +183  + #FPE_FLTOVF + +FPE_FLTOVF + + + ) + +184 + mFPE_FLTUND +, + +185  + #FPE_FLTUND + +FPE_FLTUND + + + ) + +186 + mFPE_FLTRES +, + +187  + #FPE_FLTRES + +FPE_FLTRES + + + ) + +188 + mFPE_FLTINV +, + +189  + #FPE_FLTINV + +FPE_FLTINV + + + ) + +190 + mFPE_FLTSUB + + +191  + #FPE_FLTSUB + +FPE_FLTSUB + + + ) + +197 + mSEGV_MAPERR + = 1, + +198  + #SEGV_MAPERR + +SEGV_MAPERR + + + ) + +199 + mSEGV_ACCERR + + +200  + #SEGV_ACCERR + +SEGV_ACCERR + + + ) + +206 + mBUS_ADRALN + = 1, + +207  + #BUS_ADRALN + +BUS_ADRALN + + + ) + +208 + mBUS_ADRERR +, + +209  + #BUS_ADRERR + +BUS_ADRERR + + + ) + +210 + mBUS_OBJERR + + +211  + #BUS_OBJERR + +BUS_OBJERR + + + ) + +217 + mTRAP_BRKPT + = 1, + +218  + #TRAP_BRKPT + +TRAP_BRKPT + + + ) + +219 + mTRAP_TRACE + + +220  + #TRAP_TRACE + +TRAP_TRACE + + + ) + +226 + mCLD_EXITED + = 1, + +227  + #CLD_EXITED + +CLD_EXITED + + + ) + +228 + mCLD_KILLED +, + +229  + #CLD_KILLED + +CLD_KILLED + + + ) + +230 + mCLD_DUMPED +, + +231  + #CLD_DUMPED + +CLD_DUMPED + + + ) + +232 + mCLD_TRAPPED +, + +233  + #CLD_TRAPPED + +CLD_TRAPPED + + + ) + +234 + mCLD_STOPPED +, + +235  + #CLD_STOPPED + +CLD_STOPPED + + + ) + +236 + mCLD_CONTINUED + + +237  + #CLD_CONTINUED + +CLD_CONTINUED + + + ) + +243 + mPOLL_IN + = 1, + +244  + #POLL_IN + +POLL_IN + + + ) + +245 + mPOLL_OUT +, + +246  + #POLL_OUT + +POLL_OUT + + + ) + +247 + mPOLL_MSG +, + +248  + #POLL_MSG + +POLL_MSG + + + ) + +249 + mPOLL_ERR +, + +250  + #POLL_ERR + +POLL_ERR + + + ) + +251 + mPOLL_PRI +, + +252  + #POLL_PRI + +POLL_PRI + + + ) + +253 + mPOLL_HUP + + +254  + #POLL_HUP + +POLL_HUP + + + ) + +257 #undeà +__Ãed_sigšfo_t + + +261 #ià( +defšed + +_SIGNAL_H + || defšed +__Ãed_sigev’t_t +) \ + +262 && ! +defšed + + g__have_sigev’t_t + + +263  + #__have_sigev’t_t + 1 + + ) + +266  + #__SIGEV_MAX_SIZE + 64 + + ) + +267 #ià +__WORDSIZE + == 64 + +268  + #__SIGEV_PAD_SIZE + (( +__SIGEV_MAX_SIZE + /  ()è- 4) + + ) + +270  + #__SIGEV_PAD_SIZE + (( +__SIGEV_MAX_SIZE + /  ()è- 3) + + ) + +273  + ssigev’t + + +275 +sigv®_t + + msigev_v®ue +; + +276  + msigev_signo +; + +277  + msigev_nÙify +; + +281  + m_·d +[ +__SIGEV_PAD_SIZE +]; + +285 +__pid_t + + m_tid +; + +289 (* + m_funùiÚ +è( + msigv®_t +); + +290 * + m_©Œibu‹ +; + +291 } + m_sigev_th»ad +; + +292 } + m_sigev_un +; + +293 } + tsigev’t_t +; + +296  + #sigev_nÙify_funùiÚ + +_sigev_un +. +_sigev_th»ad +. +_funùiÚ + + + ) + +297  + #sigev_nÙify_©Œibu‹s + +_sigev_un +. +_sigev_th»ad +. +_©Œibu‹ + + + ) + +302 + mSIGEV_SIGNAL + = 0, + +303  + #SIGEV_SIGNAL + +SIGEV_SIGNAL + + + ) + +304 + mSIGEV_NONE +, + +305  + #SIGEV_NONE + +SIGEV_NONE + + + ) + +306 + mSIGEV_THREAD +, + +307  + #SIGEV_THREAD + +SIGEV_THREAD + + + ) + +309 + mSIGEV_THREAD_ID + = 4 + +310  + #SIGEV_THREAD_ID + +SIGEV_THREAD_ID + + + ) + + @/usr/include/bits/signum.h + +20 #ifdef +_SIGNAL_H + + +23  + #SIG_ERR + (( +__sighªdËr_t +è-1è + + ) + +24  + #SIG_DFL + (( +__sighªdËr_t +è0è + + ) + +25  + #SIG_IGN + (( +__sighªdËr_t +è1è + + ) + +27 #ifdeà +__USE_UNIX98 + + +28  + #SIG_HOLD + (( +__sighªdËr_t +è2è + + ) + +33  + #SIGHUP + 1 + + ) + +34  + #SIGINT + 2 + + ) + +35  + #SIGQUIT + 3 + + ) + +36  + #SIGILL + 4 + + ) + +37  + #SIGTRAP + 5 + + ) + +38  + #SIGABRT + 6 + + ) + +39  + #SIGIOT + 6 + + ) + +40  + #SIGBUS + 7 + + ) + +41  + #SIGFPE + 8 + + ) + +42  + #SIGKILL + 9 + + ) + +43  + #SIGUSR1 + 10 + + ) + +44  + #SIGSEGV + 11 + + ) + +45  + #SIGUSR2 + 12 + + ) + +46  + #SIGPIPE + 13 + + ) + +47  + #SIGALRM + 14 + + ) + +48  + #SIGTERM + 15 + + ) + +49  + #SIGSTKFLT + 16 + + ) + +50  + #SIGCLD + +SIGCHLD + + + ) + +51  + #SIGCHLD + 17 + + ) + +52  + #SIGCONT + 18 + + ) + +53  + #SIGSTOP + 19 + + ) + +54  + #SIGTSTP + 20 + + ) + +55  + #SIGTTIN + 21 + + ) + +56  + #SIGTTOU + 22 + + ) + +57  + #SIGURG + 23 + + ) + +58  + #SIGXCPU + 24 + + ) + +59  + #SIGXFSZ + 25 + + ) + +60  + #SIGVTALRM + 26 + + ) + +61  + #SIGPROF + 27 + + ) + +62  + #SIGWINCH + 28 + + ) + +63  + #SIGPOLL + +SIGIO + + + ) + +64  + #SIGIO + 29 + + ) + +65  + #SIGPWR + 30 + + ) + +66  + #SIGSYS + 31 + + ) + +67  + #SIGUNUSED + 31 + + ) + +69  + #_NSIG + 65 + + ) + +72  + #SIGRTMIN + ( + `__libc_cu¼’t_sig¹mš + ()) + + ) + +73  + #SIGRTMAX + ( + `__libc_cu¼’t_sig¹max + ()) + + ) + +77  + #__SIGRTMIN + 32 + + ) + +78  + #__SIGRTMAX + ( +_NSIG + - 1) + + ) + + @/usr/include/bits/sigset.h + +21 #iâdef +_SIGSET_H_ty³s + + +22  + #_SIGSET_H_ty³s + 1 + + ) + +24  + t__sig_©omic_t +; + +28  + #_SIGSET_NWORDS + (1024 / (8 *  ())) + + ) + +31  + m__v® +[ +_SIGSET_NWORDS +]; + +32 } + t__sig£t_t +; + +43 #ià! +defšed + +_SIGSET_H_âs + && defšed +_SIGNAL_H + + +44  + #_SIGSET_H_âs + 1 + + ) + +46 #iâdeà +_EXTERN_INLINE + + +47  + #_EXTERN_INLINE + +__ex‹º_šlše + + + ) + +51  + #__sigmask +( +sig +) \ + +52 (((è1è<< ((( +sig +è- 1è% (8 *  ()))) + + ) + +55  + #__sigwÜd +( +sig +è(((sigè- 1è/ (8 *  ())) + + ) + +57 #ià +defšed + +__GNUC__ + && __GNUC__ >= 2 + +58  + #__sigem±y£t +( +£t +) \ + +59 ( + `__ex‹nsiÚ__ + ({  +__út + = +_SIGSET_NWORDS +; \ + +60 +sig£t_t + * +__£t + = ( +£t +); \ + +61 -- +__út + >ð0è +__£t +-> +__v® +[__cnt] = 0; \ + +62 0; })) + + ) + +63  + #__sigfžl£t +( +£t +) \ + +64 ( + `__ex‹nsiÚ__ + ({  +__út + = +_SIGSET_NWORDS +; \ + +65 +sig£t_t + * +__£t + = ( +£t +); \ + +66 -- +__út + >ð0è +__£t +-> +__v® +[__cnt] = ~0UL; \ + +67 0; })) + + ) + +69 #ifdeà +__USE_GNU + + +73  + #__sigi£m±y£t +( +£t +) \ + +74 ( + `__ex‹nsiÚ__ + ({  +__út + = +_SIGSET_NWORDS +; \ + +75 cÚ¡ +sig£t_t + * +__£t + = ( +£t +); \ + +76  +__»t + = +__£t +-> +__v® +[-- +__út +]; \ + +77 ! +__»t + && -- +__út + >= 0) \ + +78 +__»t + = +__£t +-> +__v® +[ +__út +]; \ + +79 +__»t + =ð0; })) + + ) + +80  + #__sigªd£t +( +de¡ +, +Ëá +, +right +) \ + +81 ( + `__ex‹nsiÚ__ + ({  +__út + = +_SIGSET_NWORDS +; \ + +82 +sig£t_t + * +__de¡ + = ( +de¡ +); \ + +83 cÚ¡ +sig£t_t + * +__Ëá + = ( +Ëá +); \ + +84 cÚ¡ +sig£t_t + * +__right + = ( +right +); \ + +85 -- +__út + >= 0) \ + +86 +__de¡ +-> +__v® +[ +__út +] = ( +__Ëá +->__val[__cnt] \ + +87 & +__right +-> +__v® +[ +__út +]); \ + +88 0; })) + + ) + +89  + #__sigÜ£t +( +de¡ +, +Ëá +, +right +) \ + +90 ( + `__ex‹nsiÚ__ + ({  +__út + = +_SIGSET_NWORDS +; \ + +91 +sig£t_t + * +__de¡ + = ( +de¡ +); \ + +92 cÚ¡ +sig£t_t + * +__Ëá + = ( +Ëá +); \ + +93 cÚ¡ +sig£t_t + * +__right + = ( +right +); \ + +94 -- +__út + >= 0) \ + +95 +__de¡ +-> +__v® +[ +__út +] = ( +__Ëá +->__val[__cnt] \ + +96 | +__right +-> +__v® +[ +__út +]); \ + +97 0; })) + + ) + +104  +__sigismemb” + ( +__cÚ¡ + +__sig£t_t + *, ); + +105  +__sigadd£t + ( +__sig£t_t + *, ); + +106  +__sigd–£t + ( +__sig£t_t + *, ); + +108 #ifdeà +__USE_EXTERN_INLINES + + +109  + #__SIGSETFN +( +NAME +, +BODY +, +CONST +) \ + +110 +_EXTERN_INLINE + \ + +111 + `NAME + ( +CONST + +__sig£t_t + * +__£t +,  +__sig +) \ + +113  +__mask + = + `__sigmask + ( +__sig +); \ + +114  +__wÜd + = + `__sigwÜd + ( +__sig +); \ + +115  +BODY +; \ + +116 } + + ) + +118 +__SIGSETFN + ( +__sigismemb” +, ( +__£t +-> +__v® +[ +__wÜd +] & +__mask +è? 1 : 0, +__cÚ¡ +) + +119 +__SIGSETFN + ( +__sigadd£t +, (( +__£t +-> +__v® +[ +__wÜd +] |ð +__mask +), 0), ) + +120 +__SIGSETFN + ( +__sigd–£t +, (( +__£t +-> +__v® +[ +__wÜd +] &ð~ +__mask +), 0), ) + +122 #undeà +__SIGSETFN + + + @/usr/include/bits/sigstack.h + +20 #iâdeà +_SIGNAL_H + + +26  + ssig¡ack + + +28 * + mss_¥ +; + +29  + mss_Ú¡ack +; + +36 + mSS_ONSTACK + = 1, + +37  + #SS_ONSTACK + +SS_ONSTACK + + + ) + +38 + mSS_DISABLE + + +39  + #SS_DISABLE + +SS_DISABLE + + + ) + +43  + #MINSIGSTKSZ + 2048 + + ) + +46  + #SIGSTKSZ + 8192 + + ) + +50  + ssig®t¡ack + + +52 * + mss_¥ +; + +53  + mss_æags +; + +54 +size_t + + mss_size +; + +55 } + t¡ack_t +; + + @/usr/include/bits/sigthread.h + +20 #iâdeà +_BITS_SIGTHREAD_H + + +21  + #_BITS_SIGTHREAD_H + 1 + + ) + +23 #ià! +defšed + +_SIGNAL_H + && !defšed +_PTHREAD_H + + +31  + $±h»ad_sigmask + ( +__how +, + +32 +__cÚ¡ + +__sig£t_t + * +__»¡riù + +__Ãwmask +, + +33 +__sig£t_t + * +__»¡riù + +__Þdmask +) +__THROW +; + +36  + $±h»ad_kžl + ( +±h»ad_t + +__th»adid +,  +__signo +è +__THROW +; + +38 #ifdeà +__USE_GNU + + +40  + $±h»ad_sigqueue + ( +±h»ad_t + +__th»adid +,  +__signo +, + +41 cÚ¡  +sigv® + +__v®ue +è +__THROW +; + + @/usr/include/bits/stdio-ldbl.h + +20 #iâdeà +_STDIO_H + + +24 +__BEGIN_NAMESPACE_STD + + +25 + $__LDBL_REDIR_DECL + ( +årštf +) + +26 + $__LDBL_REDIR_DECL + ( +´štf +) + +27 + $__LDBL_REDIR_DECL + ( +¥rštf +) + +28 + $__LDBL_REDIR_DECL + ( +vårštf +) + +29 + $__LDBL_REDIR_DECL + ( +v´štf +) + +30 + $__LDBL_REDIR_DECL + ( +v¥rštf +) + +31 #ià +defšed + +__USE_ISOC99 + && !defšed +__USE_GNU + \ + +32 && ! +defšed + +__REDIRECT + \ + +33 && ( +defšed + +__STRICT_ANSI__ + || defšed +__USE_XOPEN2K +) + +34 + $__LDBL_REDIR1_DECL + ( +fsÿnf +, +__Ædbl___isoc99_fsÿnf +) + +35 + $__LDBL_REDIR1_DECL + ( +sÿnf +, +__Ædbl___isoc99_sÿnf +) + +36 + $__LDBL_REDIR1_DECL + ( +ssÿnf +, +__Ædbl___isoc99_ssÿnf +) + +38 + $__LDBL_REDIR_DECL + ( +fsÿnf +) + +39 + $__LDBL_REDIR_DECL + ( +sÿnf +) + +40 + $__LDBL_REDIR_DECL + ( +ssÿnf +) + +42 +__END_NAMESPACE_STD + + +44 #ià +defšed + +__USE_BSD + || defšed +__USE_ISOC99 + || defšed +__USE_UNIX98 + + +45 +__BEGIN_NAMESPACE_C99 + + +46 + $__LDBL_REDIR_DECL + ( +¢´štf +) + +47 + $__LDBL_REDIR_DECL + ( +v¢´štf +) + +48 +__END_NAMESPACE_C99 + + +51 #ifdef +__USE_ISOC99 + + +52 +__BEGIN_NAMESPACE_C99 + + +53 #ià! +defšed + +__USE_GNU + && !defšed +__REDIRECT + \ + +54 && ( +defšed + +__STRICT_ANSI__ + || defšed +__USE_XOPEN2K +) + +55 + $__LDBL_REDIR1_DECL + ( +vfsÿnf +, +__Ædbl___isoc99_vfsÿnf +) + +56 + $__LDBL_REDIR1_DECL + ( +vsÿnf +, +__Ædbl___isoc99_vsÿnf +) + +57 + $__LDBL_REDIR1_DECL + ( +vssÿnf +, +__Ædbl___isoc99_vssÿnf +) + +59 + $__LDBL_REDIR_DECL + ( +vfsÿnf +) + +60 + $__LDBL_REDIR_DECL + ( +vssÿnf +) + +61 + $__LDBL_REDIR_DECL + ( +vsÿnf +) + +63 +__END_NAMESPACE_C99 + + +66 #ifdeà +__USE_GNU + + +67 + $__LDBL_REDIR_DECL + ( +vd´štf +) + +68 + $__LDBL_REDIR_DECL + ( +d´štf +) + +69 + $__LDBL_REDIR_DECL + ( +va¥rštf +) + +70 + $__LDBL_REDIR_DECL + ( +__a¥rštf +) + +71 + $__LDBL_REDIR_DECL + ( +a¥rštf +) + +72 + $__LDBL_REDIR_DECL + ( +ob¡ack_´štf +) + +73 + $__LDBL_REDIR_DECL + ( +ob¡ack_v´štf +) + +76 #ià +__USE_FORTIFY_LEVEL + > 0 && +defšed + +__ex‹º_®ways_šlše + + +77 + $__LDBL_REDIR_DECL + ( +__¥rštf_chk +) + +78 + $__LDBL_REDIR_DECL + ( +__v¥rštf_chk +) + +79 #ià +defšed + +__USE_BSD + || defšed +__USE_ISOC99 + || defšed +__USE_UNIX98 + + +80 + $__LDBL_REDIR_DECL + ( +__¢´štf_chk +) + +81 + $__LDBL_REDIR_DECL + ( +__v¢´štf_chk +) + +83 #ià +__USE_FORTIFY_LEVEL + > 1 + +84 + $__LDBL_REDIR_DECL + ( +__årštf_chk +) + +85 + $__LDBL_REDIR_DECL + ( +__´štf_chk +) + +86 + $__LDBL_REDIR_DECL + ( +__vårštf_chk +) + +87 + $__LDBL_REDIR_DECL + ( +__v´štf_chk +) + +88 #ifdeà +__USE_GNU + + +89 + $__LDBL_REDIR_DECL + ( +__a¥rštf_chk +) + +90 + $__LDBL_REDIR_DECL + ( +__va¥rštf_chk +) + +91 + $__LDBL_REDIR_DECL + ( +__d´štf_chk +) + +92 + $__LDBL_REDIR_DECL + ( +__vd´štf_chk +) + +93 + $__LDBL_REDIR_DECL + ( +__ob¡ack_´štf_chk +) + +94 + $__LDBL_REDIR_DECL + ( +__ob¡ack_v´štf_chk +) + + @/usr/include/bits/stdio.h + +20 #iâdeà +_STDIO_H + + +24 #iâdeà +__ex‹º_šlše + + +25  + #__STDIO_INLINE + +šlše + + + ) + +27  + #__STDIO_INLINE + +__ex‹º_šlše + + + ) + +31 #ifdeà +__USE_EXTERN_INLINES + + +34 #ià!( +__USE_FORTIFY_LEVEL + > 0 && +defšed + +__ex‹º_®ways_šlše +) + +36 +__STDIO_INLINE +  + +37 + $v´štf + ( +__cÚ¡ + * +__»¡riù + +__fmt +, +_G_va_li¡ + +__¬g +) + +39  + `vårštf + ( +¡dout +, +__fmt +, +__¬g +); + +40 + } +} + +44 +__STDIO_INLINE +  + +45 + $g‘ch¬ + () + +47  + `_IO_g‘c + ( +¡dš +); + +48 + } +} + +51 #ifdeà +__USE_MISC + + +53 +__STDIO_INLINE +  + +54 + $fg‘c_uÆocked + ( +FILE + * +__å +) + +56  + `_IO_g‘c_uÆocked + ( +__å +); + +57 + } +} + +61 #ià +defšed + +__USE_POSIX + || defšed +__USE_MISC + + +63 +__STDIO_INLINE +  + +64 + $g‘c_uÆocked + ( +FILE + * +__å +) + +66  + `_IO_g‘c_uÆocked + ( +__å +); + +67 + } +} + +70 +__STDIO_INLINE +  + +71 + $g‘ch¬_uÆocked + () + +73  + `_IO_g‘c_uÆocked + ( +¡dš +); + +74 + } +} + +79 +__STDIO_INLINE +  + +80 + $putch¬ + ( +__c +) + +82  + `_IO_putc + ( +__c +, +¡dout +); + +83 + } +} + +86 #ifdeà +__USE_MISC + + +88 +__STDIO_INLINE +  + +89 + $åutc_uÆocked + ( +__c +, +FILE + * +__¡»am +) + +91  + `_IO_putc_uÆocked + ( +__c +, +__¡»am +); + +92 + } +} + +96 #ià +defšed + +__USE_POSIX + || defšed +__USE_MISC + + +98 +__STDIO_INLINE +  + +99 + $putc_uÆocked + ( +__c +, +FILE + * +__¡»am +) + +101  + `_IO_putc_uÆocked + ( +__c +, +__¡»am +); + +102 + } +} + +105 +__STDIO_INLINE +  + +106 + $putch¬_uÆocked + ( +__c +) + +108  + `_IO_putc_uÆocked + ( +__c +, +¡dout +); + +109 + } +} + +113 #ifdef +__USE_GNU + + +115 +__STDIO_INLINE + +_IO_ssize_t + + +116 + $g‘lše + (** +__lš•Œ +, +size_t + * +__n +, +FILE + * +__¡»am +) + +118  + `__g‘d–im + ( +__lš•Œ +, +__n +, '\n', +__¡»am +); + +119 + } +} + +123 #ifdeà +__USE_MISC + + +125 +__STDIO_INLINE +  + +126 +__NTH + ( + $ãof_uÆocked + ( +FILE + * +__¡»am +)) + +128  + `_IO_ãof_uÆocked + ( +__¡»am +); + +129 + } +} + +132 +__STDIO_INLINE +  + +133 +__NTH + ( + $ã¼Ü_uÆocked + ( +FILE + * +__¡»am +)) + +135  + `_IO_ã¼Ü_uÆocked + ( +__¡»am +); + +136 + } +} + +142 #ià +defšed + +__USE_MISC + && defšed +__GNUC__ + && defšed +__OPTIMIZE__ + \ + +143 && ! +defšed + + g__ýlu¥lus + + +145  + #ä—d_uÆocked +( +±r +, +size +, +n +, +¡»am +) \ + +146 ( + `__ex‹nsiÚ__ + (( + `__bužtš_cÚ¡ªt_p + ( +size +è&& __bužtš_cÚ¡ªt_°( +n +) \ + +147 && ( +size_t +è( +size +è* (size_tè( +n +) <= 8 \ + +148 && ( +size_t +è( +size +) != 0) \ + +149 ? ({ * +__±r + = (*è( +±r +); \ + +150 +FILE + * +__¡»am + = ( +¡»am +); \ + +151 +size_t + +__út +; \ + +152  +__út + = ( +size_t +è( +size +è* (size_tè( +n +); \ + +153 +__út + > 0; --__cnt) \ + +155  +__c + = + `_IO_g‘c_uÆocked + ( +__¡»am +); \ + +156 ià( +__c + =ð +EOF +) \ + +158 * +__±r +++ = +__c +; \ + +160 (( +size_t +è( +size +è* (size_tè( +n +è- +__út +) \ + +161 / ( +size_t +è( +size +); }) \ + +162 : ((( + `__bužtš_cÚ¡ªt_p + ( +size +è&& ( +size_t +) (size) == 0) \ + +163 || ( + `__bužtš_cÚ¡ªt_p + ( +n +è&& ( +size_t +) (n) == 0)) \ + +165 ? ((è( +±r +), (è( +¡»am +), (è( +size +), \ + +166 (è( +n +), ( +size_t +) 0) \ + +167 : + `ä—d_uÆocked + ( +±r +, +size +, +n +, +¡»am +)))) + + ) + +169  + #fwr™e_uÆocked +( +±r +, +size +, +n +, +¡»am +) \ + +170 ( + `__ex‹nsiÚ__ + (( + `__bužtš_cÚ¡ªt_p + ( +size +è&& __bužtš_cÚ¡ªt_°( +n +) \ + +171 && ( +size_t +è( +size +è* (size_tè( +n +) <= 8 \ + +172 && ( +size_t +è( +size +) != 0) \ + +173 ? ({ cÚ¡ * +__±r + = (cÚ¡ *è( +±r +); \ + +174 +FILE + * +__¡»am + = ( +¡»am +); \ + +175 +size_t + +__út +; \ + +176  +__út + = ( +size_t +è( +size +è* (size_tè( +n +); \ + +177 +__út + > 0; --__cnt) \ + +178 ià( + `_IO_putc_uÆocked + (* +__±r +++, +__¡»am +è=ð +EOF +) \ + +180 (( +size_t +è( +size +è* (size_tè( +n +è- +__út +) \ + +181 / ( +size_t +è( +size +); }) \ + +182 : ((( + `__bužtš_cÚ¡ªt_p + ( +size +è&& ( +size_t +) (size) == 0) \ + +183 || ( + `__bužtš_cÚ¡ªt_p + ( +n +è&& ( +size_t +) (n) == 0)) \ + +185 ? ((è( +±r +), (è( +¡»am +), (è( +size +), \ + +186 (è( +n +), ( +size_t +) 0) \ + +187 : + `fwr™e_uÆocked + ( +±r +, +size +, +n +, +¡»am +)))) + + ) + +191 #undeà +__STDIO_INLINE + + + @/usr/include/bits/stdio2.h + +20 #iâdeà +_STDIO_H + + +24  + $__¥rštf_chk + (* +__»¡riù + +__s +,  +__æag +, +size_t + +__¦’ +, + +25 +__cÚ¡ + * +__»¡riù + +__fÜm© +, ...è +__THROW +; + +26  + $__v¥rštf_chk + (* +__»¡riù + +__s +,  +__æag +, +size_t + +__¦’ +, + +27 +__cÚ¡ + * +__»¡riù + +__fÜm© +, + +28 +_G_va_li¡ + +__­ +è +__THROW +; + +30 #ifdeà +__va_¬g_·ck + + +31 +__ex‹º_®ways_šlše +  + +32 + `__NTH + ( + $¥rštf + (* +__»¡riù + +__s +, +__cÚ¡ + *__»¡riù +__fmt +, ...)) + +34  + `__bužtš___¥rštf_chk + ( +__s +, +__USE_FORTIFY_LEVEL + - 1, + +35 + `__bos + ( +__s +), +__fmt +, + `__va_¬g_·ck + ()); + +36 + } +} + +37 #–ià! +defšed + +__ýlu¥lus + + +38  + #¥rštf +( +¡r +, ...) \ + +39 + `__bužtš___¥rštf_chk + ( +¡r +, +__USE_FORTIFY_LEVEL + - 1, + `__bos + (str), \ + +40 +__VA_ARGS__ +) + + ) + +43 +__ex‹º_®ways_šlše +  + +44 +__NTH + ( + $v¥rštf + (* +__»¡riù + +__s +, +__cÚ¡ + *__»¡riù +__fmt +, + +45 +_G_va_li¡ + +__­ +)) + +47  + `__bužtš___v¥rštf_chk + ( +__s +, +__USE_FORTIFY_LEVEL + - 1, + +48 + `__bos + ( +__s +), +__fmt +, +__­ +); + +49 + } +} + +51 #ià +defšed + +__USE_BSD + || defšed +__USE_ISOC99 + || defšed +__USE_UNIX98 + + +53  + $__¢´štf_chk + (* +__»¡riù + +__s +, +size_t + +__n +,  +__æag +, + +54 +size_t + +__¦’ +, +__cÚ¡ + * +__»¡riù + +__fÜm© +, + +55 ...è +__THROW +; + +56  + $__v¢´štf_chk + (* +__»¡riù + +__s +, +size_t + +__n +,  +__æag +, + +57 +size_t + +__¦’ +, +__cÚ¡ + * +__»¡riù + +__fÜm© +, + +58 +_G_va_li¡ + +__­ +è +__THROW +; + +60 #ifdeà +__va_¬g_·ck + + +61 +__ex‹º_®ways_šlše +  + +62 + `__NTH + ( + $¢´štf + (* +__»¡riù + +__s +, +size_t + +__n +, + +63 +__cÚ¡ + * +__»¡riù + +__fmt +, ...)) + +65  + `__bužtš___¢´štf_chk + ( +__s +, +__n +, +__USE_FORTIFY_LEVEL + - 1, + +66 + `__bos + ( +__s +), +__fmt +, + `__va_¬g_·ck + ()); + +67 + } +} + +68 #–ià! +defšed + +__ýlu¥lus + + +69  + #¢´štf +( +¡r +, +Ën +, ...) \ + +70 + `__bužtš___¢´štf_chk + ( +¡r +, +Ën +, +__USE_FORTIFY_LEVEL + - 1, + `__bos + (str), \ + +71 +__VA_ARGS__ +) + + ) + +74 +__ex‹º_®ways_šlše +  + +75 +__NTH + ( + $v¢´štf + (* +__»¡riù + +__s +, +size_t + +__n +, + +76 +__cÚ¡ + * +__»¡riù + +__fmt +, +_G_va_li¡ + +__­ +)) + +78  + `__bužtš___v¢´štf_chk + ( +__s +, +__n +, +__USE_FORTIFY_LEVEL + - 1, + +79 + `__bos + ( +__s +), +__fmt +, +__­ +); + +80 + } +} + +84 #ià +__USE_FORTIFY_LEVEL + > 1 + +86  +__årštf_chk + ( +FILE + * +__»¡riù + +__¡»am +,  +__æag +, + +87 +__cÚ¡ + * +__»¡riù + +__fÜm© +, ...); + +88  +__´štf_chk + ( +__æag +, +__cÚ¡ + * +__»¡riù + +__fÜm© +, ...); + +89  +__vårštf_chk + ( +FILE + * +__»¡riù + +__¡»am +,  +__æag +, + +90 +__cÚ¡ + * +__»¡riù + +__fÜm© +, +_G_va_li¡ + +__­ +); + +91  +__v´štf_chk + ( +__æag +, +__cÚ¡ + * +__»¡riù + +__fÜm© +, + +92 +_G_va_li¡ + +__­ +); + +94 #ifdeà +__va_¬g_·ck + + +95 +__ex‹º_®ways_šlše +  + +96 + $årštf + ( +FILE + * +__»¡riù + +__¡»am +, +__cÚ¡ + *__»¡riù +__fmt +, ...) + +98  + `__årštf_chk + ( +__¡»am +, +__USE_FORTIFY_LEVEL + - 1, +__fmt +, + +99 + `__va_¬g_·ck + ()); + +100 + } +} + +102 +__ex‹º_®ways_šlše +  + +103 + $´štf + ( +__cÚ¡ + * +__»¡riù + +__fmt +, ...) + +105  + `__´štf_chk + ( +__USE_FORTIFY_LEVEL + - 1, +__fmt +, + `__va_¬g_·ck + ()); + +106 + } +} + +107 #–ià! +defšed + +__ýlu¥lus + + +108  + #´štf +(...) \ + +109 + `__´štf_chk + ( +__USE_FORTIFY_LEVEL + - 1, +__VA_ARGS__ +) + + ) + +110  + #årštf +( +¡»am +, ...) \ + +111 + `__årštf_chk + ( +¡»am +, +__USE_FORTIFY_LEVEL + - 1, +__VA_ARGS__ +) + + ) + +114 +__ex‹º_®ways_šlše +  + +115 + $v´štf + ( +__cÚ¡ + * +__»¡riù + +__fmt +, +_G_va_li¡ + +__­ +) + +117 #ifdeà +__USE_EXTERN_INLINES + + +118  + `__vårštf_chk + ( +¡dout +, +__USE_FORTIFY_LEVEL + - 1, +__fmt +, +__­ +); + +120  + `__v´štf_chk + ( +__USE_FORTIFY_LEVEL + - 1, +__fmt +, +__­ +); + +122 + } +} + +124 +__ex‹º_®ways_šlše +  + +125 + $vårštf + ( +FILE + * +__»¡riù + +__¡»am +, + +126 +__cÚ¡ + * +__»¡riù + +__fmt +, +_G_va_li¡ + +__­ +) + +128  + `__vårštf_chk + ( +__¡»am +, +__USE_FORTIFY_LEVEL + - 1, +__fmt +, +__­ +); + +129 + } +} + +131 #ifdeà +__USE_GNU + + +133  + $__a¥rštf_chk + (** +__»¡riù + +__±r +,  +__æag +, + +134 +__cÚ¡ + * +__»¡riù + +__fmt +, ...) + +135 +__THROW + + `__©Œibu‹__ + (( + $__fÜm©__ + ( +__´štf__ +, 3, 4))è +__wur +; + +136  + $__va¥rštf_chk + (** +__»¡riù + +__±r +,  +__æag +, + +137 +__cÚ¡ + * +__»¡riù + +__fmt +, +_G_va_li¡ + +__¬g +) + +138 +__THROW + + `__©Œibu‹__ + (( + $__fÜm©__ + ( +__´štf__ +, 3, 0))è +__wur +; + +139  + $__d´štf_chk + ( +__fd +,  +__æag +, +__cÚ¡ + * +__»¡riù + +__fmt +, + +140 ...è + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__´štf__ +, 3, 4))); + +141  + $__vd´štf_chk + ( +__fd +,  +__æag +, + +142 +__cÚ¡ + * +__»¡riù + +__fmt +, +_G_va_li¡ + +__¬g +) + +143 + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__´štf__ +, 3, 0))); + +144  + $__ob¡ack_´štf_chk + ( +ob¡ack + * +__»¡riù + +__ob¡ack +, + +145  +__æag +, +__cÚ¡ + * +__»¡riù + +__fÜm© +, + +147 +__THROW + + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__´štf__ +, 3, 4))); + +148  + $__ob¡ack_v´štf_chk + ( +ob¡ack + * +__»¡riù + +__ob¡ack +, + +149  +__æag +, + +150 +__cÚ¡ + * +__»¡riù + +__fÜm© +, + +151 +_G_va_li¡ + +__¬gs +) + +152 +__THROW + + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__´štf__ +, 3, 0))); + +154 #ifdeà +__va_¬g_·ck + + +155 +__ex‹º_®ways_šlše +  + +156 + `__NTH + ( + $a¥rštf + (** +__»¡riù + +__±r +, +__cÚ¡ + *__»¡riù +__fmt +, ...)) + +158  + `__a¥rštf_chk + ( +__±r +, +__USE_FORTIFY_LEVEL + - 1, +__fmt +, + +159 + `__va_¬g_·ck + ()); + +160 + } +} + +162 +__ex‹º_®ways_šlše +  + +163 +__NTH + ( + $__a¥rštf + (** +__»¡riù + +__±r +, +__cÚ¡ + *__»¡riù +__fmt +, + +166  + `__a¥rštf_chk + ( +__±r +, +__USE_FORTIFY_LEVEL + - 1, +__fmt +, + +167 + `__va_¬g_·ck + ()); + +168 + } +} + +170 +__ex‹º_®ways_šlše +  + +171 + $d´štf + ( +__fd +, +__cÚ¡ + * +__»¡riù + +__fmt +, ...) + +173  + `__d´štf_chk + ( +__fd +, +__USE_FORTIFY_LEVEL + - 1, +__fmt +, + +174 + `__va_¬g_·ck + ()); + +175 + } +} + +177 +__ex‹º_®ways_šlše +  + +178 +__NTH + ( + $ob¡ack_´štf + ( +ob¡ack + * +__»¡riù + +__ob¡ack +, + +179 +__cÚ¡ + * +__»¡riù + +__fmt +, ...)) + +181  + `__ob¡ack_´štf_chk + ( +__ob¡ack +, +__USE_FORTIFY_LEVEL + - 1, +__fmt +, + +182 + `__va_¬g_·ck + ()); + +183 + } +} + +184 #–ià! +defšed + +__ýlu¥lus + + +185  + #a¥rštf +( +±r +, ...) \ + +186 + `__a¥rštf_chk + ( +±r +, +__USE_FORTIFY_LEVEL + - 1, +__VA_ARGS__ +) + + ) + +187  + #__a¥rštf +( +±r +, ...) \ + +188 + `__a¥rštf_chk + ( +±r +, +__USE_FORTIFY_LEVEL + - 1, +__VA_ARGS__ +) + + ) + +189  + #d´štf +( +fd +, ...) \ + +190 + `__d´štf_chk + ( +fd +, +__USE_FORTIFY_LEVEL + - 1, +__VA_ARGS__ +) + + ) + +191  + #ob¡ack_´štf +( +ob¡ack +, ...) \ + +192 + `__ob¡ack_´štf_chk + ( +ob¡ack +, +__USE_FORTIFY_LEVEL + - 1, +__VA_ARGS__ +) + + ) + +195 +__ex‹º_®ways_šlše +  + +196 +__NTH + ( + $va¥rštf + (** +__»¡riù + +__±r +, +__cÚ¡ + *__»¡riù +__fmt +, + +197 +_G_va_li¡ + +__­ +)) + +199  + `__va¥rštf_chk + ( +__±r +, +__USE_FORTIFY_LEVEL + - 1, +__fmt +, +__­ +); + +200 + } +} + +202 +__ex‹º_®ways_šlše +  + +203 + $vd´štf + ( +__fd +, +__cÚ¡ + * +__»¡riù + +__fmt +, +_G_va_li¡ + +__­ +) + +205  + `__vd´štf_chk + ( +__fd +, +__USE_FORTIFY_LEVEL + - 1, +__fmt +, +__­ +); + +206 + } +} + +208 +__ex‹º_®ways_šlše +  + +209 +__NTH + ( + $ob¡ack_v´štf + ( +ob¡ack + * +__»¡riù + +__ob¡ack +, + +210 +__cÚ¡ + * +__»¡riù + +__fmt +, +_G_va_li¡ + +__­ +)) + +212  + `__ob¡ack_v´štf_chk + ( +__ob¡ack +, +__USE_FORTIFY_LEVEL + - 1, +__fmt +, + +213 +__­ +); + +214 + } +} + +220 * + $__g‘s_chk + (* +__¡r +, +size_t +è +__wur +; + +221 * + `__REDIRECT + ( +__g‘s_w¬n +, (* +__¡r +), +g‘s +) + +222 +__wur + + `__w¬Ç‰r + ("please use fgets or getline instead, gets can't " + +225 +__ex‹º_®ways_šlše + +__wur + * + +226 + $g‘s + (* +__¡r +) + +228 ià( + `__bos + ( +__¡r +è!ð( +size_t +) -1) + +229  + `__g‘s_chk + ( +__¡r +, + `__bos + (__str)); + +230  + `__g‘s_w¬n + ( +__¡r +); + +231 + } +} + +233 * + $__fg‘s_chk + (* +__»¡riù + +__s +, +size_t + +__size +,  +__n +, + +234 +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +235 * + `__REDIRECT + ( +__fg‘s_®Ÿs +, + +236 (* +__»¡riù + +__s +,  +__n +, + +237 +FILE + * +__»¡riù + +__¡»am +), +fg‘s +è +__wur +; + +238 * + `__REDIRECT + ( +__fg‘s_chk_w¬n +, + +239 (* +__»¡riù + +__s +, +size_t + +__size +,  +__n +, + +240 +FILE + * +__»¡riù + +__¡»am +), +__fg‘s_chk +) + +241 +__wur + + `__w¬Ç‰r + ("fgets called with bigger sizehan†ength " + +244 +__ex‹º_®ways_šlše + +__wur + * + +245 + $fg‘s + (* +__»¡riù + +__s +,  +__n +, +FILE + *__»¡riù +__¡»am +) + +247 ià( + `__bos + ( +__s +è!ð( +size_t +) -1) + +249 ià(! + `__bužtš_cÚ¡ªt_p + ( +__n +) || __n <= 0) + +250  + `__fg‘s_chk + ( +__s +, + `__bos + (__s), +__n +, +__¡»am +); + +252 ià(( +size_t +è +__n + > + `__bos + ( +__s +)) + +253  + `__fg‘s_chk_w¬n + ( +__s +, + `__bos + (__s), +__n +, +__¡»am +); + +255  + `__fg‘s_®Ÿs + ( +__s +, +__n +, +__¡»am +); + +256 + } +} + +258 +size_t + + $__ä—d_chk + (* +__»¡riù + +__±r +, +size_t + +__±¾’ +, + +259 +size_t + +__size +, size_ˆ +__n +, + +260 +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +261 +size_t + + `__REDIRECT + ( +__ä—d_®Ÿs +, + +262 (* +__»¡riù + +__±r +, +size_t + +__size +, + +263 +size_t + +__n +, +FILE + * +__»¡riù + +__¡»am +), + +264 +ä—d +è +__wur +; + +265 +size_t + + `__REDIRECT + ( +__ä—d_chk_w¬n +, + +266 (* +__»¡riù + +__±r +, +size_t + +__±¾’ +, + +267 +size_t + +__size +, size_ˆ +__n +, + +268 +FILE + * +__»¡riù + +__¡»am +), + +269 +__ä—d_chk +) + +270 +__wur + + `__w¬Ç‰r + ("fread called with bigger size *‚membhan†ength " + +273 +__ex‹º_®ways_šlše + +__wur + +size_t + + +274 + $ä—d + (* +__»¡riù + +__±r +, +size_t + +__size +, size_ˆ +__n +, + +275 +FILE + * +__»¡riù + +__¡»am +) + +277 ià( + `__bos0 + ( +__±r +è!ð( +size_t +) -1) + +279 ià(! + `__bužtš_cÚ¡ªt_p + ( +__size +) + +280 || ! + `__bužtš_cÚ¡ªt_p + ( +__n +) + +281 || ( +__size + | +__n +è>ð((( +size_t +) 1) << (8 *  (size_t) / 2))) + +282  + `__ä—d_chk + ( +__±r +, + `__bos0 + (__±r), +__size +, +__n +, +__¡»am +); + +284 ià( +__size + * +__n + > + `__bos0 + ( +__±r +)) + +285  + `__ä—d_chk_w¬n + ( +__±r +, + `__bos0 + (__±r), +__size +, +__n +, +__¡»am +); + +287  + `__ä—d_®Ÿs + ( +__±r +, +__size +, +__n +, +__¡»am +); + +288 + } +} + +290 #ifdeà +__USE_GNU + + +291 * + $__fg‘s_uÆocked_chk + (* +__»¡riù + +__s +, +size_t + +__size +, + +292  +__n +, +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +293 * + `__REDIRECT + ( +__fg‘s_uÆocked_®Ÿs +, + +294 (* +__»¡riù + +__s +,  +__n +, + +295 +FILE + * +__»¡riù + +__¡»am +), +fg‘s_uÆocked +è +__wur +; + +296 * + `__REDIRECT + ( +__fg‘s_uÆocked_chk_w¬n +, + +297 (* +__»¡riù + +__s +, +size_t + +__size +,  +__n +, + +298 +FILE + * +__»¡riù + +__¡»am +), +__fg‘s_uÆocked_chk +) + +299 +__wur + + `__w¬Ç‰r + ("fgets_unlocked called with bigger sizehan†ength " + +302 +__ex‹º_®ways_šlše + +__wur + * + +303 + $fg‘s_uÆocked + (* +__»¡riù + +__s +,  +__n +, +FILE + *__»¡riù +__¡»am +) + +305 ià( + `__bos + ( +__s +è!ð( +size_t +) -1) + +307 ià(! + `__bužtš_cÚ¡ªt_p + ( +__n +) || __n <= 0) + +308  + `__fg‘s_uÆocked_chk + ( +__s +, + `__bos + (__s), +__n +, +__¡»am +); + +310 ià(( +size_t +è +__n + > + `__bos + ( +__s +)) + +311  + `__fg‘s_uÆocked_chk_w¬n + ( +__s +, + `__bos + (__s), +__n +, +__¡»am +); + +313  + `__fg‘s_uÆocked_®Ÿs + ( +__s +, +__n +, +__¡»am +); + +314 + } +} + +317 #ifdeà +__USE_MISC + + +318 #undeà +ä—d_uÆocked + + +319 +size_t + + $__ä—d_uÆocked_chk + (* +__»¡riù + +__±r +, +size_t + +__±¾’ +, + +320 +size_t + +__size +, size_ˆ +__n +, + +321 +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +322 +size_t + + `__REDIRECT + ( +__ä—d_uÆocked_®Ÿs +, + +323 (* +__»¡riù + +__±r +, +size_t + +__size +, + +324 +size_t + +__n +, +FILE + * +__»¡riù + +__¡»am +), + +325 +ä—d_uÆocked +è +__wur +; + +326 +size_t + + `__REDIRECT + ( +__ä—d_uÆocked_chk_w¬n +, + +327 (* +__»¡riù + +__±r +, +size_t + +__±¾’ +, + +328 +size_t + +__size +, size_ˆ +__n +, + +329 +FILE + * +__»¡riù + +__¡»am +), + +330 +__ä—d_uÆocked_chk +) + +331 +__wur + + `__w¬Ç‰r + ("fread_unlocked called with bigger size *‚membhan " + +334 +__ex‹º_®ways_šlše + +__wur + +size_t + + +335 + $ä—d_uÆocked + (* +__»¡riù + +__±r +, +size_t + +__size +, size_ˆ +__n +, + +336 +FILE + * +__»¡riù + +__¡»am +) + +338 ià( + `__bos0 + ( +__±r +è!ð( +size_t +) -1) + +340 ià(! + `__bužtš_cÚ¡ªt_p + ( +__size +) + +341 || ! + `__bužtš_cÚ¡ªt_p + ( +__n +) + +342 || ( +__size + | +__n +è>ð((( +size_t +) 1) << (8 *  (size_t) / 2))) + +343  + `__ä—d_uÆocked_chk + ( +__±r +, + `__bos0 + (__±r), +__size +, +__n +, + +344 +__¡»am +); + +346 ià( +__size + * +__n + > + `__bos0 + ( +__±r +)) + +347  + `__ä—d_uÆocked_chk_w¬n + ( +__±r +, + `__bos0 + (__±r), +__size +, +__n +, + +348 +__¡»am +); + +351 #ifdeà +__USE_EXTERN_INLINES + + +352 ià( + `__bužtš_cÚ¡ªt_p + ( +__size +) + +353 && + `__bužtš_cÚ¡ªt_p + ( +__n +) + +354 && ( +__size + | +__n +è< ((( +size_t +) 1) << (8 *  (size_t) / 2)) + +355 && +__size + * +__n + <= 8) + +357 +size_t + +__út + = +__size + * +__n +; + +358 * +__ýŒ + = (*è +__±r +; + +359 ià( +__út + == 0) + +362 ; +__út + > 0; --__cnt) + +364  +__c + = + `_IO_g‘c_uÆocked + ( +__¡»am +); + +365 ià( +__c + =ð +EOF +) + +367 * +__ýŒ +++ = +__c +; + +369  ( +__ýŒ + - (*è +__±r +è/ +__size +; + +372  + `__ä—d_uÆocked_®Ÿs + ( +__±r +, +__size +, +__n +, +__¡»am +); + +373 + } +} + + @/usr/include/bits/stdio_lim.h + +19 #ià! +defšed + +_STDIO_H + && !defšed +__Ãed_FOPEN_MAX + && !defšed +__Ãed_IOV_MAX + + +23 #ifdeà +_STDIO_H + + +24  + #L_tm²am + 20 + + ) + +25  + #TMP_MAX + 238328 + + ) + +26  + #FILENAME_MAX + 4096 + + ) + +28 #ifdeà +__USE_POSIX + + +29  + #L_ù”mid + 9 + + ) + +30 #ià! +defšed + +__USE_XOPEN2K + || defšed +__USE_GNU + + +31  + #L_cu£rid + 9 + + ) + +36 #ià +defšed + +__Ãed_FOPEN_MAX + || defšed +_STDIO_H + + +37 #undeà +FOPEN_MAX + + +38  + #FOPEN_MAX + 16 + + ) + +41 #ià +defšed + +__Ãed_IOV_MAX + && !defšed +IOV_MAX + + +42  + #IOV_MAX + 1024 + + ) + + @/usr/include/bits/stdlib-ldbl.h + +20 #iâdeà +_STDLIB_H + + +24 #ifdef +__USE_ISOC99 + + +25 +__BEGIN_NAMESPACE_C99 + + +26 + $__LDBL_REDIR1_DECL + ( +¡¹Þd +, +¡¹od +) + +27 +__END_NAMESPACE_C99 + + +30 #ifdeà +__USE_GNU + + +31 + $__LDBL_REDIR1_DECL + ( +¡¹Þd_l +, +¡¹od_l +) + +34 #ià +defšed + +__USE_SVID + || defšed +__USE_XOPEN_EXTENDED + + +35 #ifdeà +__USE_MISC + + +36 + $__LDBL_REDIR1_DECL + ( +qecvt +, +ecvt +) + +37 + $__LDBL_REDIR1_DECL + ( +qfcvt +, +fcvt +) + +38 + $__LDBL_REDIR1_DECL + ( +qgcvt +, +gcvt +) + +39 + $__LDBL_REDIR1_DECL + ( +qecvt_r +, +ecvt_r +) + +40 + $__LDBL_REDIR1_DECL + ( +qfcvt_r +, +fcvt_r +) + + @/usr/include/bits/stdlib.h + +20 #iâdeà +_STDLIB_H + + +24 * + $__»®·th_chk + ( +__cÚ¡ + * +__»¡riù + +__Çme +, + +25 * +__»¡riù + +__»sÞved +, + +26 +size_t + +__»sÞvedËn +è +__THROW + +__wur +; + +27 * + `__REDIRECT_NTH + ( +__»®·th_®Ÿs +, + +28 ( +__cÚ¡ + * +__»¡riù + +__Çme +, + +29 * +__»¡riù + +__»sÞved +), +»®·th +è +__wur +; + +30 * + `__REDIRECT_NTH + ( +__»®·th_chk_w¬n +, + +31 ( +__cÚ¡ + * +__»¡riù + +__Çme +, + +32 * +__»¡riù + +__»sÞved +, + +33 +size_t + +__»sÞvedËn +), +__»®·th_chk +è +__wur + + +34 + `__w¬Ç‰r + ("second‡rgument of„ealpath must beƒither NULL or‡t " + +37 +__ex‹º_®ways_šlše + +__wur + * + +38 + `__NTH + ( + $»®·th + ( +__cÚ¡ + * +__»¡riù + +__Çme +, *__»¡riù +__»sÞved +)) + +40 ià( + `__bos + ( +__»sÞved +è!ð( +size_t +) -1) + +42 #ià +defšed + +_LIBC_LIMITS_H_ + && defšed +PATH_MAX + + +43 ià( + `__bos + ( +__»sÞved +è< +PATH_MAX +) + +44  + `__»®·th_chk_w¬n + ( +__Çme +, +__»sÞved +, + `__bos + (__resolved)); + +46  + `__»®·th_chk + ( +__Çme +, +__»sÞved +, + `__bos + (__resolved)); + +49  + `__»®·th_®Ÿs + ( +__Çme +, +__»sÞved +); + +50 + } +} + +53  + $__±¢ame_r_chk + ( +__fd +, * +__buf +, +size_t + +__buæ’ +, + +54 +size_t + +__Ä—l +è +__THROW + + `__nÚnuÎ + ((2)); + +55  + `__REDIRECT_NTH + ( +__±¢ame_r_®Ÿs +, ( +__fd +, * +__buf +, + +56 +size_t + +__buæ’ +), +±¢ame_r +) + +57 + `__nÚnuÎ + ((2)); + +58  + `__REDIRECT_NTH + ( +__±¢ame_r_chk_w¬n +, + +59 ( +__fd +, * +__buf +, +size_t + +__buæ’ +, + +60 +size_t + +__Ä—l +), +__±¢ame_r_chk +) + +61 + `__nÚnuÎ + ((2)è + `__w¬Ç‰r + ("ptsname_r called with buflen biggerhan " + +64 +__ex‹º_®ways_šlše +  + +65 + `__NTH + ( + $±¢ame_r + ( +__fd +, * +__buf +, +size_t + +__buæ’ +)) + +67 ià( + `__bos + ( +__buf +è!ð( +size_t +) -1) + +69 ià(! + `__bužtš_cÚ¡ªt_p + ( +__buæ’ +)) + +70  + `__±¢ame_r_chk + ( +__fd +, +__buf +, +__buæ’ +, + `__bos + (__buf)); + +71 ià( +__buæ’ + > + `__bos + ( +__buf +)) + +72  + `__±¢ame_r_chk_w¬n + ( +__fd +, +__buf +, +__buæ’ +, + `__bos + (__buf)); + +74  + `__±¢ame_r_®Ÿs + ( +__fd +, +__buf +, +__buæ’ +); + +75 + } +} + +78  + $__wùomb_chk + (* +__s +, +wch¬_t + +__wch¬ +, +size_t + +__buæ’ +) + +79 +__THROW + +__wur +; + +80  + `__REDIRECT_NTH + ( +__wùomb_®Ÿs +, (* +__s +, +wch¬_t + +__wch¬ +), + +81 +wùomb +è +__wur +; + +83 +__ex‹º_®ways_šlše + +__wur +  + +84 + `__NTH + ( + $wùomb + (* +__s +, +wch¬_t + +__wch¬ +)) + +89  + #__STDLIB_MB_LEN_MAX + 16 + + ) + +90 #ià +defšed + +MB_LEN_MAX + && MB_LEN_MAX !ð +__STDLIB_MB_LEN_MAX + + +93 ià( + `__bos + ( +__s +è!ð( +size_t +è-1 && +__STDLIB_MB_LEN_MAX + > __bos (__s)) + +94  + `__wùomb_chk + ( +__s +, +__wch¬ +, + `__bos + (__s)); + +95  + `__wùomb_®Ÿs + ( +__s +, +__wch¬ +); + +96 + } +} + +99 +size_t + + $__mb¡owcs_chk + ( +wch¬_t + * +__»¡riù + +__d¡ +, + +100 +__cÚ¡ + * +__»¡riù + +__¤c +, + +101 +size_t + +__Ën +, size_ˆ +__d¡Ën +è +__THROW +; + +102 +size_t + + `__REDIRECT_NTH + ( +__mb¡owcs_®Ÿs +, + +103 ( +wch¬_t + * +__»¡riù + +__d¡ +, + +104 +__cÚ¡ + * +__»¡riù + +__¤c +, + +105 +size_t + +__Ën +), +mb¡owcs +); + +106 +size_t + + `__REDIRECT_NTH + ( +__mb¡owcs_chk_w¬n +, + +107 ( +wch¬_t + * +__»¡riù + +__d¡ +, + +108 +__cÚ¡ + * +__»¡riù + +__¤c +, + +109 +size_t + +__Ën +, size_ˆ +__d¡Ën +), +__mb¡owcs_chk +) + +110 + `__w¬Ç‰r + ("mbstowcs called with dst buffer smallerhan†en " + +113 +__ex‹º_®ways_šlše + +size_t + + +114 + `__NTH + ( + $mb¡owcs + ( +wch¬_t + * +__»¡riù + +__d¡ +, +__cÚ¡ + *__»¡riù +__¤c +, + +115 +size_t + +__Ën +)) + +117 ià( + `__bos + ( +__d¡ +è!ð( +size_t +) -1) + +119 ià(! + `__bužtš_cÚ¡ªt_p + ( +__Ën +)) + +120  + `__mb¡owcs_chk + ( +__d¡ +, +__¤c +, +__Ën +, + +121 + `__bos + ( +__d¡ +è/  ( +wch¬_t +)); + +123 ià( +__Ën + > + `__bos + ( +__d¡ +è/  ( +wch¬_t +)) + +124  + `__mb¡owcs_chk_w¬n + ( +__d¡ +, +__¤c +, +__Ën +, + +125 + `__bos + ( +__d¡ +è/  ( +wch¬_t +)); + +127  + `__mb¡owcs_®Ÿs + ( +__d¡ +, +__¤c +, +__Ën +); + +128 + } +} + +131 +size_t + + $__wc¡ombs_chk + (* +__»¡riù + +__d¡ +, + +132 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__¤c +, + +133 +size_t + +__Ën +, size_ˆ +__d¡Ën +è +__THROW +; + +134 +size_t + + `__REDIRECT_NTH + ( +__wc¡ombs_®Ÿs +, + +135 (* +__»¡riù + +__d¡ +, + +136 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__¤c +, + +137 +size_t + +__Ën +), +wc¡ombs +); + +138 +size_t + + `__REDIRECT_NTH + ( +__wc¡ombs_chk_w¬n +, + +139 (* +__»¡riù + +__d¡ +, + +140 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__¤c +, + +141 +size_t + +__Ën +, size_ˆ +__d¡Ën +), +__wc¡ombs_chk +) + +142 + `__w¬Ç‰r + ("wcstombs called with dst buffer smallerhan†en"); + +144 +__ex‹º_®ways_šlše + +size_t + + +145 + `__NTH + ( + $wc¡ombs + (* +__»¡riù + +__d¡ +, +__cÚ¡ + +wch¬_t + *__»¡riù +__¤c +, + +146 +size_t + +__Ën +)) + +148 ià( + `__bos + ( +__d¡ +è!ð( +size_t +) -1) + +150 ià(! + `__bužtš_cÚ¡ªt_p + ( +__Ën +)) + +151  + `__wc¡ombs_chk + ( +__d¡ +, +__¤c +, +__Ën +, + `__bos + (__dst)); + +152 ià( +__Ën + > + `__bos + ( +__d¡ +)) + +153  + `__wc¡ombs_chk_w¬n + ( +__d¡ +, +__¤c +, +__Ën +, + `__bos + (__dst)); + +155  + `__wc¡ombs_®Ÿs + ( +__d¡ +, +__¤c +, +__Ën +); + +156 + } +} + + @/usr/include/bits/string.h + +20 #iâdeà +_STRING_H + + +26  + #_STRING_ARCH_uÇligÃd + 1 + + ) + + @/usr/include/bits/string2.h + +21 #iâdeà +_STRING_H + + +25 #ià! +defšed + +__NO_STRING_INLINES + && !defšed +__BOUNDED_POINTERS__ + + +42 #iâdeà +__STRING_INLINE + + +43 #ifdeà +__ýlu¥lus + + +44  + #__STRING_INLINE + +šlše + + + ) + +46  + #__STRING_INLINE + +__ex‹º_šlše + + + ) + +50 #ià +_STRING_ARCH_uÇligÃd + + +52  + ~<’dŸn.h +> + +53  + ~ + +55 #ià +__BYTE_ORDER + =ð +__LITTLE_ENDIAN + + +56  + #__STRING2_SMALL_GET16 +( +¤c +, +idx +) \ + +57 ((( +__cÚ¡ + *è(__cÚ¡ *è( +¤c +))[ +idx + + 1] << 8 \ + +58 | (( +__cÚ¡ + *è(__cÚ¡ *è( +¤c +))[ +idx +]) + + ) + +59  + #__STRING2_SMALL_GET32 +( +¤c +, +idx +) \ + +60 ((((( +__cÚ¡ + *è(__cÚ¡ *è( +¤c +))[ +idx + + 3] << 8 \ + +61 | (( +__cÚ¡ + *è(__cÚ¡ *è( +¤c +))[ +idx + + 2]) << 8 \ + +62 | (( +__cÚ¡ + *è(__cÚ¡ *è( +¤c +))[ +idx + + 1]) << 8 \ + +63 | (( +__cÚ¡ + *è(__cÚ¡ *è( +¤c +))[ +idx +]) + + ) + +65  + #__STRING2_SMALL_GET16 +( +¤c +, +idx +) \ + +66 ((( +__cÚ¡ + *è(__cÚ¡ *è( +¤c +))[ +idx +] << 8 \ + +67 | (( +__cÚ¡ + *è(__cÚ¡ *è( +¤c +))[ +idx + + 1]) + + ) + +68  + #__STRING2_SMALL_GET32 +( +¤c +, +idx +) \ + +69 ((((( +__cÚ¡ + *è(__cÚ¡ *è( +¤c +))[ +idx +] << 8 \ + +70 | (( +__cÚ¡ + *è(__cÚ¡ *è( +¤c +))[ +idx + + 1]) << 8 \ + +71 | (( +__cÚ¡ + *è(__cÚ¡ *è( +¤c +))[ +idx + + 2]) << 8 \ + +72 | (( +__cÚ¡ + *è(__cÚ¡ *è( +¤c +))[ +idx + + 3]) + + ) + +77  + #__STRING2_COPY_TYPE +( +N +) \ + +78 ¡ruù {  +__¬r +[ +N +]; } \ + +79 + t__©Œibu‹__ + (( + t__·cked__ +)è + t__STRING2_COPY_ARR +## + tN + + + ) + +80 + t__STRING2_COPY_TYPE + (2); + +81 +__STRING2_COPY_TYPE + (3); + +82 +__STRING2_COPY_TYPE + (4); + +83 +__STRING2_COPY_TYPE + (5); + +84 +__STRING2_COPY_TYPE + (6); + +85 +__STRING2_COPY_TYPE + (7); + +86 +__STRING2_COPY_TYPE + (8); + +87 #undeà +__STRING2_COPY_TYPE + + +93  + #__¡ršg2_1b±r_p +( +__x +) \ + +94 (( +size_t +)(cÚ¡ *)(( +__x +è+ 1è- (size_t)(cÚ¡ *)(__xè=ð1) + + ) + +97 #ià! +defšed + +_HAVE_STRING_ARCH_mem£t + + +98 #ià! +__GNUC_PREREQ + (3, 0) + +99 #ià +_STRING_ARCH_uÇligÃd + + +100  + #mem£t +( +s +, +c +, +n +) \ + +101 ( + `__ex‹nsiÚ__ + ( + `__bužtš_cÚ¡ªt_p + ( +n +) && (n) <= 16 \ + +102 ? (( +n +) == 1 \ + +103 ? + `__mem£t_1 + ( +s +, +c +) \ + +104 : + `__mem£t_gc + ( +s +, +c +, +n +)) \ + +105 : ( + `__bužtš_cÚ¡ªt_p + ( +c +) && (c) == '\0' \ + +106 ? ({ * +__s + = ( +s +); + `__bz”o + (__s, +n +); __s; }) \ + +107 : + `mem£t + ( +s +, +c +, +n +)))) + + ) + +109  + #__mem£t_1 +( +s +, +c +è({ * +__s + = (s); \ + +110 *(( +__ušt8_t + *è +__s +èð(__ušt8_tè +c +; __s; }) + + ) + +112  + #__mem£t_gc +( +s +, +c +, +n +) \ + +113 ({ * +__s + = ( +s +); \ + +115  +__ui +; \ + +116  +__usi +; \ + +117  +__uc +; \ + +118 } * +__u + = +__s +; \ + +119 +__ušt8_t + +__c + = (__ušt8_tè( +c +); \ + +122 (è( +n +)) \ + +125 +__u +-> +__ui + = +__c + * 0x01010101; \ + +126 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); \ + +128 +__u +-> +__ui + = +__c + * 0x01010101; \ + +129 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); \ + +131 +__u +-> +__ui + = +__c + * 0x01010101; \ + +132 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); \ + +134 +__u +-> +__usi + = (è +__c + * 0x0101; \ + +135 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 2); \ + +136 +__u +-> +__uc + = (è +__c +; \ + +140 +__u +-> +__ui + = +__c + * 0x01010101; \ + +141 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); \ + +143 +__u +-> +__ui + = +__c + * 0x01010101; \ + +144 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); \ + +146 +__u +-> +__ui + = +__c + * 0x01010101; \ + +147 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); \ + +149 +__u +-> +__usi + = (è +__c + * 0x0101; \ + +153 +__u +-> +__ui + = +__c + * 0x01010101; \ + +154 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); \ + +156 +__u +-> +__ui + = +__c + * 0x01010101; \ + +157 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); \ + +159 +__u +-> +__ui + = +__c + * 0x01010101; \ + +160 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); \ + +162 +__u +-> +__uc + = (è +__c +; \ + +166 +__u +-> +__ui + = +__c + * 0x01010101; \ + +167 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); \ + +169 +__u +-> +__ui + = +__c + * 0x01010101; \ + +170 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); \ + +172 +__u +-> +__ui + = +__c + * 0x01010101; \ + +173 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); \ + +175 +__u +-> +__ui + = +__c + * 0x01010101; \ + +180 +__s +; }) + + ) + +182  + #mem£t +( +s +, +c +, +n +) \ + +183 ( + `__ex‹nsiÚ__ + ( + `__bužtš_cÚ¡ªt_p + ( +c +) && (c) == '\0' \ + +184 ? ({ * +__s + = ( +s +); + `__bz”o + (__s, +n +); __s; }) \ + +185 : + `mem£t + ( +s +, +c +, +n +))) + + ) + +194 #ià +__GNUC_PREREQ + (2, 91) + +195  + #__bz”o +( +s +, +n +è + `__bužtš_mem£t + (s, '\0',‚) + + ) + +203 #ifdeà +__USE_GNU + + +204 #ià! +defšed + +_HAVE_STRING_ARCH_mempýy + || defšed +_FORCE_INLINES + + +205 #iâdeà +_HAVE_STRING_ARCH_mempýy + + +206 #ià +__GNUC_PREREQ + (3, 4) + +207  + #__mempýy +( +de¡ +, +¤c +, +n +è + `__bužtš_mempýy + (de¡, src,‚) + + ) + +208 #–ià +__GNUC_PREREQ + (3, 0) + +209  + #__mempýy +( +de¡ +, +¤c +, +n +) \ + +210 ( + `__ex‹nsiÚ__ + ( + `__bužtš_cÚ¡ªt_p + ( +¤c +è&& __bužtš_cÚ¡ªt_°( +n +) \ + +211 && + `__¡ršg2_1b±r_p + ( +¤c +è&& +n + <= 8 \ + +212 ? + `__bužtš_memýy + ( +de¡ +, +¤c +, +n +) + (n) \ + +213 : + `__mempýy + ( +de¡ +, +¤c +, +n +))) + + ) + +215  + #__mempýy +( +de¡ +, +¤c +, +n +) \ + +216 ( + `__ex‹nsiÚ__ + ( + `__bužtš_cÚ¡ªt_p + ( +¤c +è&& __bužtš_cÚ¡ªt_°( +n +) \ + +217 && + `__¡ršg2_1b±r_p + ( +¤c +è&& +n + <= 8 \ + +218 ? + `__mempýy_sm®l + ( +de¡ +, + `__mempýy_¬gs + ( +¤c +), +n +) \ + +219 : + `__mempýy + ( +de¡ +, +¤c +, +n +))) + + ) + +223  + #mempýy +( +de¡ +, +¤c +, +n +è + `__mempýy + (de¡, src,‚) + + ) + +226 #ià! +__GNUC_PREREQ + (3, 0è|| +defšed + +_FORCE_INLINES + + +227 #ià +_STRING_ARCH_uÇligÃd + + +228 #iâdeà +_FORCE_INLINES + + +229  + #__mempýy_¬gs +( +¤c +) \ + +230 (( +__cÚ¡ + *è( +¤c +))[0], ((__const *) (src))[2], \ + +231 (( +__cÚ¡ + *è( +¤c +))[4], ((__const *) (src))[6], \ + +232 +__ex‹nsiÚ__ + + `__STRING2_SMALL_GET16 + ( +¤c +, 0), \ + +233 +__ex‹nsiÚ__ + + `__STRING2_SMALL_GET16 + ( +¤c +, 4), \ + +234 +__ex‹nsiÚ__ + + `__STRING2_SMALL_GET32 + ( +¤c +, 0), \ + +235 +__ex‹nsiÚ__ + + `__STRING2_SMALL_GET32 + ( +¤c +, 4) + + ) + +237 +__STRING_INLINE + * +__mempýy_sm®l + (*, , , , , + +238 +__ušt16_t +, __ušt16_t, +__ušt32_t +, + +239 +__ušt32_t +, +size_t +); + +240 +__STRING_INLINE + * + +241 + $__mempýy_sm®l + (* +__de¡1 +, + +242  +__¤c0_1 +,  +__¤c2_1 +,  +__¤c4_1 +,  +__¤c6_1 +, + +243 +__ušt16_t + +__¤c0_2 +, __ušt16_ˆ +__¤c4_2 +, + +244 +__ušt32_t + +__¤c0_4 +, __ušt32_ˆ +__¤c4_4 +, + +245 +size_t + +__¤þ’ +) + +248 +__ušt32_t + +__ui +; + +249 +__ušt16_t + +__usi +; + +250  +__uc +; + +251  +__c +; + +252 } * +__u + = +__de¡1 +; + +253 (è +__¤þ’ +) + +256 +__u +-> +__c + = +__¤c0_1 +; + +257 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 1); + +260 +__u +-> +__usi + = +__¤c0_2 +; + +261 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 2); + +264 +__u +-> +__usi + = +__¤c0_2 +; + +265 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 2); + +266 +__u +-> +__c + = +__¤c2_1 +; + +267 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 1); + +270 +__u +-> +__ui + = +__¤c0_4 +; + +271 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); + +274 +__u +-> +__ui + = +__¤c0_4 +; + +275 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); + +276 +__u +-> +__c + = +__¤c4_1 +; + +277 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 1); + +280 +__u +-> +__ui + = +__¤c0_4 +; + +281 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); + +282 +__u +-> +__usi + = +__¤c4_2 +; + +283 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 2); + +286 +__u +-> +__ui + = +__¤c0_4 +; + +287 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); + +288 +__u +-> +__usi + = +__¤c4_2 +; + +289 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 2); + +290 +__u +-> +__c + = +__¤c6_1 +; + +291 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 1); + +294 +__u +-> +__ui + = +__¤c0_4 +; + +295 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); + +296 +__u +-> +__ui + = +__¤c4_4 +; + +297 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); + +300  (*è +__u +; + +301 + } +} + +303 #iâdeà +_FORCE_INLINES + + +304  + #__mempýy_¬gs +( +¤c +) \ + +305 (( +__cÚ¡ + *è( +¤c +))[0], \ + +306 + `__ex‹nsiÚ__ + (( +__STRING2_COPY_ARR2 +) \ + +307 { { (( +__cÚ¡ + *è( +¤c +))[0], ((__const *) (src))[1] } }), \ + +308 + `__ex‹nsiÚ__ + (( +__STRING2_COPY_ARR3 +) \ + +309 { { (( +__cÚ¡ + *è( +¤c +))[0], ((__const *) (src))[1], \ + +310 (( +__cÚ¡ + *è( +¤c +))[2] } }), \ + +311 + `__ex‹nsiÚ__ + (( +__STRING2_COPY_ARR4 +) \ + +312 { { (( +__cÚ¡ + *è( +¤c +))[0], ((__const *) (src))[1], \ + +313 (( +__cÚ¡ + *è( +¤c +))[2], ((__const *) (src))[3] } }), \ + +314 + `__ex‹nsiÚ__ + (( +__STRING2_COPY_ARR5 +) \ + +315 { { (( +__cÚ¡ + *è( +¤c +))[0], ((__const *) (src))[1], \ + +316 (( +__cÚ¡ + *è( +¤c +))[2], ((__const *) (src))[3], \ + +317 (( +__cÚ¡ + *è( +¤c +))[4] } }), \ + +318 + `__ex‹nsiÚ__ + (( +__STRING2_COPY_ARR6 +) \ + +319 { { (( +__cÚ¡ + *è( +¤c +))[0], ((__const *) (src))[1], \ + +320 (( +__cÚ¡ + *è( +¤c +))[2], ((__const *) (src))[3], \ + +321 (( +__cÚ¡ + *è( +¤c +))[4], ((__const *) (src))[5] } }), \ + +322 + `__ex‹nsiÚ__ + (( +__STRING2_COPY_ARR7 +) \ + +323 { { (( +__cÚ¡ + *è( +¤c +))[0], ((__const *) (src))[1], \ + +324 (( +__cÚ¡ + *è( +¤c +))[2], ((__const *) (src))[3], \ + +325 (( +__cÚ¡ + *è( +¤c +))[4], ((__const *) (src))[5], \ + +326 (( +__cÚ¡ + *è( +¤c +))[6] } }), \ + +327 + `__ex‹nsiÚ__ + (( +__STRING2_COPY_ARR8 +) \ + +328 { { (( +__cÚ¡ + *è( +¤c +))[0], ((__const *) (src))[1], \ + +329 (( +__cÚ¡ + *è( +¤c +))[2], ((__const *) (src))[3], \ + +330 (( +__cÚ¡ + *è( +¤c +))[4], ((__const *) (src))[5], \ + +331 (( +__cÚ¡ + *è( +¤c +))[6], ((__cÚ¡ *è(¤c))[7] } }) + + ) + +333 +__STRING_INLINE + * +__mempýy_sm®l + (*, , +__STRING2_COPY_ARR2 +, + +334 +__STRING2_COPY_ARR3 +, + +335 +__STRING2_COPY_ARR4 +, + +336 +__STRING2_COPY_ARR5 +, + +337 +__STRING2_COPY_ARR6 +, + +338 +__STRING2_COPY_ARR7 +, + +339 +__STRING2_COPY_ARR8 +, +size_t +); + +340 +__STRING_INLINE + * + +341 + $__mempýy_sm®l + (* +__de¡ +,  +__¤c1 +, + +342 +__STRING2_COPY_ARR2 + +__¤c2 +, +__STRING2_COPY_ARR3 + +__¤c3 +, + +343 +__STRING2_COPY_ARR4 + +__¤c4 +, +__STRING2_COPY_ARR5 + +__¤c5 +, + +344 +__STRING2_COPY_ARR6 + +__¤c6 +, +__STRING2_COPY_ARR7 + +__¤c7 +, + +345 +__STRING2_COPY_ARR8 + +__¤c8 +, +size_t + +__¤þ’ +) + +348  +__c +; + +349 +__STRING2_COPY_ARR2 + +__sÿ2 +; + +350 +__STRING2_COPY_ARR3 + +__sÿ3 +; + +351 +__STRING2_COPY_ARR4 + +__sÿ4 +; + +352 +__STRING2_COPY_ARR5 + +__sÿ5 +; + +353 +__STRING2_COPY_ARR6 + +__sÿ6 +; + +354 +__STRING2_COPY_ARR7 + +__sÿ7 +; + +355 +__STRING2_COPY_ARR8 + +__sÿ8 +; + +356 } * +__u + = +__de¡ +; + +357 (è +__¤þ’ +) + +360 +__u +-> +__c + = +__¤c1 +; + +363 +__ex‹nsiÚ__ + +__u +-> +__sÿ2 + = +__¤c2 +; + +366 +__ex‹nsiÚ__ + +__u +-> +__sÿ3 + = +__¤c3 +; + +369 +__ex‹nsiÚ__ + +__u +-> +__sÿ4 + = +__¤c4 +; + +372 +__ex‹nsiÚ__ + +__u +-> +__sÿ5 + = +__¤c5 +; + +375 +__ex‹nsiÚ__ + +__u +-> +__sÿ6 + = +__¤c6 +; + +378 +__ex‹nsiÚ__ + +__u +-> +__sÿ7 + = +__¤c7 +; + +381 +__ex‹nsiÚ__ + +__u +-> +__sÿ8 + = +__¤c8 +; + +384  + `__ex‹nsiÚ__ + ((*è +__u + + +__¤þ’ +); + +385 + } +} + +393 #iâdeà +_HAVE_STRING_ARCH_¡rchr + + +394 * +__¿wmemchr + (cÚ¡ * +__s +,  +__c +); + +395 #ià +__GNUC_PREREQ + (3, 2) + +396  + #¡rchr +( +s +, +c +) \ + +397 ( + `__ex‹nsiÚ__ + ( + `__bužtš_cÚ¡ªt_p + ( +c +è&& !__bužtš_cÚ¡ªt_°( +s +) \ + +398 && ( +c +) == '\0' \ + +399 ? (*è + `__¿wmemchr + ( +s +, +c +) \ + +400 : + `__bužtš_¡rchr + ( +s +, +c +))) + + ) + +402  + #¡rchr +( +s +, +c +) \ + +403 ( + `__ex‹nsiÚ__ + ( + `__bužtš_cÚ¡ªt_p + ( +c +) && (c) == '\0' \ + +404 ? (*è + `__¿wmemchr + ( +s +, +c +) \ + +405 : + `¡rchr + ( +s +, +c +))) + + ) + +411 #ià(! +defšed + +_HAVE_STRING_ARCH_¡rýy + && ! +__GNUC_PREREQ + (3, 0)) \ + +412 || +defšed + + g_FORCE_INLINES + + +413 #ià! +defšed + +_HAVE_STRING_ARCH_¡rýy + && ! +__GNUC_PREREQ + (3, 0) + +414  + #¡rýy +( +de¡ +, +¤c +) \ + +415 ( + `__ex‹nsiÚ__ + ( + `__bužtš_cÚ¡ªt_p + ( +¤c +) \ + +416 ? ( + `__¡ršg2_1b±r_p + ( +¤c +è&& + `¡¾’ + (src) + 1 <= 8 \ + +417 ? + `__¡rýy_sm®l + ( +de¡ +, + `__¡rýy_¬gs + ( +¤c +), \ + +418 + `¡¾’ + ( +¤c +) + 1) \ + +419 : (*è + `memýy + ( +de¡ +, +¤c +, + `¡¾’ + (src) + 1)) \ + +420 : + `¡rýy + ( +de¡ +, +¤c +))) + + ) + +423 #ià +_STRING_ARCH_uÇligÃd + + +424 #iâdeà +_FORCE_INLINES + + +425  + #__¡rýy_¬gs +( +¤c +) \ + +426 +__ex‹nsiÚ__ + + `__STRING2_SMALL_GET16 + ( +¤c +, 0), \ + +427 +__ex‹nsiÚ__ + + `__STRING2_SMALL_GET16 + ( +¤c +, 4), \ + +428 +__ex‹nsiÚ__ + + `__STRING2_SMALL_GET32 + ( +¤c +, 0), \ + +429 +__ex‹nsiÚ__ + + `__STRING2_SMALL_GET32 + ( +¤c +, 4) + + ) + +431 +__STRING_INLINE + * +__¡rýy_sm®l + (*, +__ušt16_t +, __uint16_t, + +432 +__ušt32_t +, __ušt32_t, +size_t +); + +433 +__STRING_INLINE + * + +434 + $__¡rýy_sm®l + (* +__de¡ +, + +435 +__ušt16_t + +__¤c0_2 +, __ušt16_ˆ +__¤c4_2 +, + +436 +__ušt32_t + +__¤c0_4 +, __ušt32_ˆ +__¤c4_4 +, + +437 +size_t + +__¤þ’ +) + +440 +__ušt32_t + +__ui +; + +441 +__ušt16_t + +__usi +; + +442  +__uc +; + +443 } * +__u + = (*è +__de¡ +; + +444 (è +__¤þ’ +) + +447 +__u +-> +__uc + = '\0'; + +450 +__u +-> +__usi + = +__¤c0_2 +; + +453 +__u +-> +__usi + = +__¤c0_2 +; + +454 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 2); + +455 +__u +-> +__uc + = '\0'; + +458 +__u +-> +__ui + = +__¤c0_4 +; + +461 +__u +-> +__ui + = +__¤c0_4 +; + +462 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); + +463 +__u +-> +__uc + = '\0'; + +466 +__u +-> +__ui + = +__¤c0_4 +; + +467 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); + +468 +__u +-> +__usi + = +__¤c4_2 +; + +471 +__u +-> +__ui + = +__¤c0_4 +; + +472 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); + +473 +__u +-> +__usi + = +__¤c4_2 +; + +474 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 2); + +475 +__u +-> +__uc + = '\0'; + +478 +__u +-> +__ui + = +__¤c0_4 +; + +479 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); + +480 +__u +-> +__ui + = +__¤c4_4 +; + +483  +__de¡ +; + +484 + } +} + +486 #iâdeà +_FORCE_INLINES + + +487  + #__¡rýy_¬gs +( +¤c +) \ + +488 + `__ex‹nsiÚ__ + (( +__STRING2_COPY_ARR2 +) \ + +489 { { (( +__cÚ¡ + *è( +¤c +))[0], '\0' } }), \ + +490 + `__ex‹nsiÚ__ + (( +__STRING2_COPY_ARR3 +) \ + +491 { { (( +__cÚ¡ + *è( +¤c +))[0], ((__const *) (src))[1], \ + +493 + `__ex‹nsiÚ__ + (( +__STRING2_COPY_ARR4 +) \ + +494 { { (( +__cÚ¡ + *è( +¤c +))[0], ((__const *) (src))[1], \ + +495 (( +__cÚ¡ + *è( +¤c +))[2], '\0' } }), \ + +496 + `__ex‹nsiÚ__ + (( +__STRING2_COPY_ARR5 +) \ + +497 { { (( +__cÚ¡ + *è( +¤c +))[0], ((__const *) (src))[1], \ + +498 (( +__cÚ¡ + *è( +¤c +))[2], ((__const *) (src))[3], \ + +500 + `__ex‹nsiÚ__ + (( +__STRING2_COPY_ARR6 +) \ + +501 { { (( +__cÚ¡ + *è( +¤c +))[0], ((__const *) (src))[1], \ + +502 (( +__cÚ¡ + *è( +¤c +))[2], ((__const *) (src))[3], \ + +503 (( +__cÚ¡ + *è( +¤c +))[4], '\0' } }), \ + +504 + `__ex‹nsiÚ__ + (( +__STRING2_COPY_ARR7 +) \ + +505 { { (( +__cÚ¡ + *è( +¤c +))[0], ((__const *) (src))[1], \ + +506 (( +__cÚ¡ + *è( +¤c +))[2], ((__const *) (src))[3], \ + +507 (( +__cÚ¡ + *è( +¤c +))[4], ((__const *) (src))[5], \ + +509 + `__ex‹nsiÚ__ + (( +__STRING2_COPY_ARR8 +) \ + +510 { { (( +__cÚ¡ + *è( +¤c +))[0], ((__const *) (src))[1], \ + +511 (( +__cÚ¡ + *è( +¤c +))[2], ((__const *) (src))[3], \ + +512 (( +__cÚ¡ + *è( +¤c +))[4], ((__const *) (src))[5], \ + +513 (( +__cÚ¡ + *è( +¤c +))[6], '\0' } }) + + ) + +515 +__STRING_INLINE + * +__¡rýy_sm®l + (*, +__STRING2_COPY_ARR2 +, + +516 +__STRING2_COPY_ARR3 +, + +517 +__STRING2_COPY_ARR4 +, + +518 +__STRING2_COPY_ARR5 +, + +519 +__STRING2_COPY_ARR6 +, + +520 +__STRING2_COPY_ARR7 +, + +521 +__STRING2_COPY_ARR8 +, +size_t +); + +522 +__STRING_INLINE + * + +523 + $__¡rýy_sm®l + (* +__de¡ +, + +524 +__STRING2_COPY_ARR2 + +__¤c2 +, +__STRING2_COPY_ARR3 + +__¤c3 +, + +525 +__STRING2_COPY_ARR4 + +__¤c4 +, +__STRING2_COPY_ARR5 + +__¤c5 +, + +526 +__STRING2_COPY_ARR6 + +__¤c6 +, +__STRING2_COPY_ARR7 + +__¤c7 +, + +527 +__STRING2_COPY_ARR8 + +__¤c8 +, +size_t + +__¤þ’ +) + +530  +__c +; + +531 +__STRING2_COPY_ARR2 + +__sÿ2 +; + +532 +__STRING2_COPY_ARR3 + +__sÿ3 +; + +533 +__STRING2_COPY_ARR4 + +__sÿ4 +; + +534 +__STRING2_COPY_ARR5 + +__sÿ5 +; + +535 +__STRING2_COPY_ARR6 + +__sÿ6 +; + +536 +__STRING2_COPY_ARR7 + +__sÿ7 +; + +537 +__STRING2_COPY_ARR8 + +__sÿ8 +; + +538 } * +__u + = (*è +__de¡ +; + +539 (è +__¤þ’ +) + +542 +__u +-> +__c + = '\0'; + +545 +__ex‹nsiÚ__ + +__u +-> +__sÿ2 + = +__¤c2 +; + +548 +__ex‹nsiÚ__ + +__u +-> +__sÿ3 + = +__¤c3 +; + +551 +__ex‹nsiÚ__ + +__u +-> +__sÿ4 + = +__¤c4 +; + +554 +__ex‹nsiÚ__ + +__u +-> +__sÿ5 + = +__¤c5 +; + +557 +__ex‹nsiÚ__ + +__u +-> +__sÿ6 + = +__¤c6 +; + +560 +__ex‹nsiÚ__ + +__u +-> +__sÿ7 + = +__¤c7 +; + +563 +__ex‹nsiÚ__ + +__u +-> +__sÿ8 + = +__¤c8 +; + +566  +__de¡ +; + +567 + } +} + +573 #ifdeà +__USE_GNU + + +574 #ià! +defšed + +_HAVE_STRING_ARCH_¡pýy + || defšed +_FORCE_INLINES + + +575 #iâdeà +_HAVE_STRING_ARCH_¡pýy + + +576 #ià +__GNUC_PREREQ + (3, 4) + +577  + #__¡pýy +( +de¡ +, +¤c +è + `__bužtš_¡pýy + (de¡, src) + + ) + +578 #–ià +__GNUC_PREREQ + (3, 0) + +579  + #__¡pýy +( +de¡ +, +¤c +) \ + +580 ( + `__ex‹nsiÚ__ + ( + `__bužtš_cÚ¡ªt_p + ( +¤c +) \ + +581 ? ( + `__¡ršg2_1b±r_p + ( +¤c +è&& + `¡¾’ + (src) + 1 <= 8 \ + +582 ? + `__bužtš_¡rýy + ( +de¡ +, +¤c +è+ + `¡¾’ + (src) \ + +583 : ((*è( +__mempýy +è( +de¡ +, +¤c +, + `¡¾’ + (src) + 1) \ + +585 : + `__¡pýy + ( +de¡ +, +¤c +))) + + ) + +587  + #__¡pýy +( +de¡ +, +¤c +) \ + +588 ( + `__ex‹nsiÚ__ + ( + `__bužtš_cÚ¡ªt_p + ( +¤c +) \ + +589 ? ( + `__¡ršg2_1b±r_p + ( +¤c +è&& + `¡¾’ + (src) + 1 <= 8 \ + +590 ? + `__¡pýy_sm®l + ( +de¡ +, + `__¡pýy_¬gs + ( +¤c +), \ + +591 + `¡¾’ + ( +¤c +) + 1) \ + +592 : ((*è( +__mempýy +è( +de¡ +, +¤c +, + `¡¾’ + (src) + 1) \ + +594 : + `__¡pýy + ( +de¡ +, +¤c +))) + + ) + +598  + #¡pýy +( +de¡ +, +¤c +è + `__¡pýy + (de¡, src) + + ) + +601 #ià! +__GNUC_PREREQ + (3, 0è|| +defšed + +_FORCE_INLINES + + +602 #ià +_STRING_ARCH_uÇligÃd + + +603 #iâdeà +_FORCE_INLINES + + +604  + #__¡pýy_¬gs +( +¤c +) \ + +605 +__ex‹nsiÚ__ + + `__STRING2_SMALL_GET16 + ( +¤c +, 0), \ + +606 +__ex‹nsiÚ__ + + `__STRING2_SMALL_GET16 + ( +¤c +, 4), \ + +607 +__ex‹nsiÚ__ + + `__STRING2_SMALL_GET32 + ( +¤c +, 0), \ + +608 +__ex‹nsiÚ__ + + `__STRING2_SMALL_GET32 + ( +¤c +, 4) + + ) + +610 +__STRING_INLINE + * +__¡pýy_sm®l + (*, +__ušt16_t +, __uint16_t, + +611 +__ušt32_t +, __ušt32_t, +size_t +); + +612 +__STRING_INLINE + * + +613 + $__¡pýy_sm®l + (* +__de¡ +, + +614 +__ušt16_t + +__¤c0_2 +, __ušt16_ˆ +__¤c4_2 +, + +615 +__ušt32_t + +__¤c0_4 +, __ušt32_ˆ +__¤c4_4 +, + +616 +size_t + +__¤þ’ +) + +619  +__ui +; + +620  +__usi +; + +621  +__uc +; + +622  +__c +; + +623 } * +__u + = (*è +__de¡ +; + +624 (è +__¤þ’ +) + +627 +__u +-> +__uc + = '\0'; + +630 +__u +-> +__usi + = +__¤c0_2 +; + +631 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 1); + +634 +__u +-> +__usi + = +__¤c0_2 +; + +635 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 2); + +636 +__u +-> +__uc + = '\0'; + +639 +__u +-> +__ui + = +__¤c0_4 +; + +640 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 3); + +643 +__u +-> +__ui + = +__¤c0_4 +; + +644 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); + +645 +__u +-> +__uc + = '\0'; + +648 +__u +-> +__ui + = +__¤c0_4 +; + +649 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); + +650 +__u +-> +__usi + = +__¤c4_2 +; + +651 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 1); + +654 +__u +-> +__ui + = +__¤c0_4 +; + +655 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); + +656 +__u +-> +__usi + = +__¤c4_2 +; + +657 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 2); + +658 +__u +-> +__uc + = '\0'; + +661 +__u +-> +__ui + = +__¤c0_4 +; + +662 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 4); + +663 +__u +-> +__ui + = +__¤c4_4 +; + +664 +__u + = + `__ex‹nsiÚ__ + ((*) __u + 3); + +667  & +__u +-> +__c +; + +668 + } +} + +670 #iâdeà +_FORCE_INLINES + + +671  + #__¡pýy_¬gs +( +¤c +) \ + +672 + `__ex‹nsiÚ__ + (( +__STRING2_COPY_ARR2 +) \ + +673 { { (( +__cÚ¡ + *è( +¤c +))[0], '\0' } }), \ + +674 + `__ex‹nsiÚ__ + (( +__STRING2_COPY_ARR3 +) \ + +675 { { (( +__cÚ¡ + *è( +¤c +))[0], ((__const *) (src))[1], \ + +677 + `__ex‹nsiÚ__ + (( +__STRING2_COPY_ARR4 +) \ + +678 { { (( +__cÚ¡ + *è( +¤c +))[0], ((__const *) (src))[1], \ + +679 (( +__cÚ¡ + *è( +¤c +))[2], '\0' } }), \ + +680 + `__ex‹nsiÚ__ + (( +__STRING2_COPY_ARR5 +) \ + +681 { { (( +__cÚ¡ + *è( +¤c +))[0], ((__const *) (src))[1], \ + +682 (( +__cÚ¡ + *è( +¤c +))[2], ((__const *) (src))[3], \ + +684 + `__ex‹nsiÚ__ + (( +__STRING2_COPY_ARR6 +) \ + +685 { { (( +__cÚ¡ + *è( +¤c +))[0], ((__const *) (src))[1], \ + +686 (( +__cÚ¡ + *è( +¤c +))[2], ((__const *) (src))[3], \ + +687 (( +__cÚ¡ + *è( +¤c +))[4], '\0' } }), \ + +688 + `__ex‹nsiÚ__ + (( +__STRING2_COPY_ARR7 +) \ + +689 { { (( +__cÚ¡ + *è( +¤c +))[0], ((__const *) (src))[1], \ + +690 (( +__cÚ¡ + *è( +¤c +))[2], ((__const *) (src))[3], \ + +691 (( +__cÚ¡ + *è( +¤c +))[4], ((__const *) (src))[5], \ + +693 + `__ex‹nsiÚ__ + (( +__STRING2_COPY_ARR8 +) \ + +694 { { (( +__cÚ¡ + *è( +¤c +))[0], ((__const *) (src))[1], \ + +695 (( +__cÚ¡ + *è( +¤c +))[2], ((__const *) (src))[3], \ + +696 (( +__cÚ¡ + *è( +¤c +))[4], ((__const *) (src))[5], \ + +697 (( +__cÚ¡ + *è( +¤c +))[6], '\0' } }) + + ) + +699 +__STRING_INLINE + * +__¡pýy_sm®l + (*, +__STRING2_COPY_ARR2 +, + +700 +__STRING2_COPY_ARR3 +, + +701 +__STRING2_COPY_ARR4 +, + +702 +__STRING2_COPY_ARR5 +, + +703 +__STRING2_COPY_ARR6 +, + +704 +__STRING2_COPY_ARR7 +, + +705 +__STRING2_COPY_ARR8 +, +size_t +); + +706 +__STRING_INLINE + * + +707 + $__¡pýy_sm®l + (* +__de¡ +, + +708 +__STRING2_COPY_ARR2 + +__¤c2 +, +__STRING2_COPY_ARR3 + +__¤c3 +, + +709 +__STRING2_COPY_ARR4 + +__¤c4 +, +__STRING2_COPY_ARR5 + +__¤c5 +, + +710 +__STRING2_COPY_ARR6 + +__¤c6 +, +__STRING2_COPY_ARR7 + +__¤c7 +, + +711 +__STRING2_COPY_ARR8 + +__¤c8 +, +size_t + +__¤þ’ +) + +714  +__c +; + +715 +__STRING2_COPY_ARR2 + +__sÿ2 +; + +716 +__STRING2_COPY_ARR3 + +__sÿ3 +; + +717 +__STRING2_COPY_ARR4 + +__sÿ4 +; + +718 +__STRING2_COPY_ARR5 + +__sÿ5 +; + +719 +__STRING2_COPY_ARR6 + +__sÿ6 +; + +720 +__STRING2_COPY_ARR7 + +__sÿ7 +; + +721 +__STRING2_COPY_ARR8 + +__sÿ8 +; + +722 } * +__u + = (*è +__de¡ +; + +723 (è +__¤þ’ +) + +726 +__u +-> +__c + = '\0'; + +729 +__ex‹nsiÚ__ + +__u +-> +__sÿ2 + = +__¤c2 +; + +732 +__ex‹nsiÚ__ + +__u +-> +__sÿ3 + = +__¤c3 +; + +735 +__ex‹nsiÚ__ + +__u +-> +__sÿ4 + = +__¤c4 +; + +738 +__ex‹nsiÚ__ + +__u +-> +__sÿ5 + = +__¤c5 +; + +741 +__ex‹nsiÚ__ + +__u +-> +__sÿ6 + = +__¤c6 +; + +744 +__ex‹nsiÚ__ + +__u +-> +__sÿ7 + = +__¤c7 +; + +747 +__ex‹nsiÚ__ + +__u +-> +__sÿ8 + = +__¤c8 +; + +750  +__de¡ + + +__¤þ’ + - 1; + +751 + } +} + +759 #iâdeà +_HAVE_STRING_ARCH_¡ºýy + + +760 #ià +__GNUC_PREREQ + (3, 2) + +761  + #¡ºýy +( +de¡ +, +¤c +, +n +è + `__bužtš_¡ºýy + (de¡, src,‚) + + ) + +763  + #¡ºýy +( +de¡ +, +¤c +, +n +) \ + +764 ( + `__ex‹nsiÚ__ + ( + `__bužtš_cÚ¡ªt_p + ( +¤c +è&& __bužtš_cÚ¡ªt_°( +n +) \ + +765 ? ( + `¡¾’ + ( +¤c +è+ 1 >ð(( +size_t +è( +n +)) \ + +766 ? (*è + `memýy + ( +de¡ +, +¤c +, +n +) \ + +767 : + `¡ºýy + ( +de¡ +, +¤c +, +n +)) \ + +768 : + `¡ºýy + ( +de¡ +, +¤c +, +n +))) + + ) + +774 #iâdeà +_HAVE_STRING_ARCH_¡ºÿt + + +775 #ifdeà +_USE_STRING_ARCH_¡rchr + + +776  + #¡ºÿt +( +de¡ +, +¤c +, +n +) \ + +777 ( + `__ex‹nsiÚ__ + ({ * +__de¡ + = ( +de¡ +); \ + +778 + `__bužtš_cÚ¡ªt_p + ( +¤c +è&& __bužtš_cÚ¡ªt_°( +n +) \ + +779 ? ( + `¡¾’ + ( +¤c +è< (( +size_t +è( +n +)) \ + +780 ? + `¡rÿt + ( +__de¡ +, +¤c +) \ + +781 : (*((*è + `__mempýy + ( + `¡rchr + ( +__de¡ +, '\0'), \ + +782 +¤c +, +n +)èð'\0', +__de¡ +)) \ + +783 : + `¡ºÿt + ( +de¡ +, +¤c +, +n +); })) + + ) + +784 #–ià +__GNUC_PREREQ + (3, 2) + +785  + #¡ºÿt +( +de¡ +, +¤c +, +n +è + `__bužtš_¡ºÿt + (de¡, src,‚) + + ) + +787  + #¡ºÿt +( +de¡ +, +¤c +, +n +) \ + +788 ( + `__ex‹nsiÚ__ + ( + `__bužtš_cÚ¡ªt_p + ( +¤c +è&& __bužtš_cÚ¡ªt_°( +n +) \ + +789 ? ( + `¡¾’ + ( +¤c +è< (( +size_t +è( +n +)) \ + +790 ? + `¡rÿt + ( +de¡ +, +¤c +) \ + +791 : + `¡ºÿt + ( +de¡ +, +¤c +, +n +)) \ + +792 : + `¡ºÿt + ( +de¡ +, +¤c +, +n +))) + + ) + +798 #iâdeà +_HAVE_STRING_ARCH_¡rcmp + + +799 #ià +__GNUC_PREREQ + (3, 2) + +800  + #¡rcmp +( +s1 +, +s2 +) \ + +801 +__ex‹nsiÚ__ + \ + +802 ({ +size_t + +__s1_Ën +, +__s2_Ën +; \ + +803 ( + `__bužtš_cÚ¡ªt_p + ( +s1 +è&& __bužtš_cÚ¡ªt_°( +s2 +) \ + +804 && ( +__s1_Ën + = + `¡¾’ + ( +s1 +), +__s2_Ën + = sŒËÀ( +s2 +), \ + +805 (! + `__¡ršg2_1b±r_p + ( +s1 +è|| +__s1_Ën + >= 4) \ + +806 && (! + `__¡ršg2_1b±r_p + ( +s2 +è|| +__s2_Ën + >= 4)) \ + +807 ? + `__bužtš_¡rcmp + ( +s1 +, +s2 +) \ + +808 : ( + `__bužtš_cÚ¡ªt_p + ( +s1 +è&& + `__¡ršg2_1b±r_p + (s1) \ + +809 && ( +__s1_Ën + = + `¡¾’ + ( +s1 +), __s1_len < 4) \ + +810 ? ( + `__bužtš_cÚ¡ªt_p + ( +s2 +è&& + `__¡ršg2_1b±r_p + (s2) \ + +811 ? + `__bužtš_¡rcmp + ( +s1 +, +s2 +) \ + +812 : + `__¡rcmp_cg + ( +s1 +, +s2 +, +__s1_Ën +)) \ + +813 : ( + `__bužtš_cÚ¡ªt_p + ( +s2 +è&& + `__¡ršg2_1b±r_p + (s2) \ + +814 && ( +__s2_Ën + = + `¡¾’ + ( +s2 +), __s2_len < 4) \ + +815 ? ( + `__bužtš_cÚ¡ªt_p + ( +s1 +è&& + `__¡ršg2_1b±r_p + (s1) \ + +816 ? + `__bužtš_¡rcmp + ( +s1 +, +s2 +) \ + +817 : + `__¡rcmp_gc + ( +s1 +, +s2 +, +__s2_Ën +)) \ + +818 : + `__bužtš_¡rcmp + ( +s1 +, +s2 +)))); }) + + ) + +820  + #¡rcmp +( +s1 +, +s2 +) \ + +821 +__ex‹nsiÚ__ + \ + +822 ({ +size_t + +__s1_Ën +, +__s2_Ën +; \ + +823 ( + `__bužtš_cÚ¡ªt_p + ( +s1 +è&& __bužtš_cÚ¡ªt_°( +s2 +) \ + +824 && ( +__s1_Ën + = + `¡¾’ + ( +s1 +), +__s2_Ën + = sŒËÀ( +s2 +), \ + +825 (! + `__¡ršg2_1b±r_p + ( +s1 +è|| +__s1_Ën + >= 4) \ + +826 && (! + `__¡ršg2_1b±r_p + ( +s2 +è|| +__s2_Ën + >= 4)) \ + +827 ? + `memcmp + (( +__cÚ¡ + *è( +s1 +), (__cÚ¡ *è( +s2 +), \ + +828 ( +__s1_Ën + < +__s2_Ën + ? __s1_len : __s2_len) + 1) \ + +829 : ( + `__bužtš_cÚ¡ªt_p + ( +s1 +è&& + `__¡ršg2_1b±r_p + (s1) \ + +830 && ( +__s1_Ën + = + `¡¾’ + ( +s1 +), __s1_len < 4) \ + +831 ? ( + `__bužtš_cÚ¡ªt_p + ( +s2 +è&& + `__¡ršg2_1b±r_p + (s2) \ + +832 ? + `__¡rcmp_cc + ( +s1 +, +s2 +, +__s1_Ën +) \ + +833 : + `__¡rcmp_cg + ( +s1 +, +s2 +, +__s1_Ën +)) \ + +834 : ( + `__bužtš_cÚ¡ªt_p + ( +s2 +è&& + `__¡ršg2_1b±r_p + (s2) \ + +835 && ( +__s2_Ën + = + `¡¾’ + ( +s2 +), __s2_len < 4) \ + +836 ? ( + `__bužtš_cÚ¡ªt_p + ( +s1 +è&& + `__¡ršg2_1b±r_p + (s1) \ + +837 ? + `__¡rcmp_cc + ( +s1 +, +s2 +, +__s2_Ën +) \ + +838 : + `__¡rcmp_gc + ( +s1 +, +s2 +, +__s2_Ën +)) \ + +839 : + `¡rcmp + ( +s1 +, +s2 +)))); }) + + ) + +842  + #__¡rcmp_cc +( +s1 +, +s2 +, +l +) \ + +843 ( + `__ex‹nsiÚ__ + ({  +__»suÉ + = \ + +844 ((( +__cÚ¡ + *è(__cÚ¡ *è( +s1 +))[0] \ + +845 - (( +__cÚ¡ + *è(__cÚ¡ *)( +s2 +))[0]);\ + +846 ià( +l + > 0 && +__»suÉ + == 0) \ + +848 +__»suÉ + = ((( +__cÚ¡ + *) \ + +849 ( +__cÚ¡ + *è( +s1 +))[1] \ + +850 - (( +__cÚ¡ + *) \ + +851 ( +__cÚ¡ + *è( +s2 +))[1]); \ + +852 ià( +l + > 1 && +__»suÉ + == 0) \ + +854 +__»suÉ + = \ + +855 ((( +__cÚ¡ + *) \ + +856 ( +__cÚ¡ + *è( +s1 +))[2] \ + +857 - (( +__cÚ¡ + *) \ + +858 ( +__cÚ¡ + *è( +s2 +))[2]); \ + +859 ià( +l + > 2 && +__»suÉ + == 0) \ + +860 +__»suÉ + = \ + +861 ((( +__cÚ¡ + *) \ + +862 ( +__cÚ¡ + *è( +s1 +))[3] \ + +863 - (( +__cÚ¡ + *) \ + +864 ( +__cÚ¡ + *è( +s2 +))[3]); \ + +867 +__»suÉ +; })) + + ) + +869  + #__¡rcmp_cg +( +s1 +, +s2 +, +l1 +) \ + +870 ( + `__ex‹nsiÚ__ + ({ +__cÚ¡ + * +__s2 + = \ + +871 ( +__cÚ¡ + *è(__cÚ¡ *è( +s2 +); \ + +872  +__»suÉ + = \ + +873 ((( +__cÚ¡ + *è(__cÚ¡ *è( +s1 +))[0] \ + +874 - +__s2 +[0]); \ + +875 ià( +l1 + > 0 && +__»suÉ + == 0) \ + +877 +__»suÉ + = ((( +__cÚ¡ + *) \ + +878 ( +__cÚ¡ + *è( +s1 +))[1] - +__s2 +[1]); \ + +879 ià( +l1 + > 1 && +__»suÉ + == 0) \ + +881 +__»suÉ + = ((( +__cÚ¡ + *) \ + +882 ( +__cÚ¡ + *è( +s1 +))[2] - +__s2 +[2]);\ + +883 ià( +l1 + > 2 && +__»suÉ + == 0) \ + +884 +__»suÉ + = ((( +__cÚ¡ + *) \ + +885 ( +__cÚ¡ + *è( +s1 +))[3] \ + +886 - +__s2 +[3]); \ + +889 +__»suÉ +; })) + + ) + +891  + #__¡rcmp_gc +( +s1 +, +s2 +, +l2 +) \ + +892 ( + `__ex‹nsiÚ__ + ({ +__cÚ¡ + * +__s1 + = \ + +893 ( +__cÚ¡ + *è(__cÚ¡ *è( +s1 +); \ + +894  +__»suÉ + = \ + +895 +__s1 +[0] - (( +__cÚ¡ + *) \ + +896 ( +__cÚ¡ + *è( +s2 +))[0]; \ + +897 ià( +l2 + > 0 && +__»suÉ + == 0) \ + +899 +__»suÉ + = ( +__s1 +[1] \ + +900 - (( +__cÚ¡ + *) \ + +901 ( +__cÚ¡ + *è( +s2 +))[1]); \ + +902 ià( +l2 + > 1 && +__»suÉ + == 0) \ + +904 +__»suÉ + = \ + +905 ( +__s1 +[2] - (( +__cÚ¡ + *) \ + +906 ( +__cÚ¡ + *è( +s2 +))[2]); \ + +907 ià( +l2 + > 2 && +__»suÉ + == 0) \ + +908 +__»suÉ + = \ + +909 ( +__s1 +[3] \ + +910 - (( +__cÚ¡ + *) \ + +911 ( +__cÚ¡ + *è( +s2 +))[3]); \ + +914 +__»suÉ +; })) + + ) + +919 #iâdeà +_HAVE_STRING_ARCH_¡ºcmp + + +920  + #¡ºcmp +( +s1 +, +s2 +, +n +) \ + +921 ( + `__ex‹nsiÚ__ + ( + `__bužtš_cÚ¡ªt_p + ( +n +) \ + +922 && (( + `__bužtš_cÚ¡ªt_p + ( +s1 +) \ + +923 && + `¡¾’ + ( +s1 +è< (( +size_t +è( +n +))) \ + +924 || ( + `__bužtš_cÚ¡ªt_p + ( +s2 +) \ + +925 && + `¡¾’ + ( +s2 +è< (( +size_t +è( +n +)))) \ + +926 ? + `¡rcmp + ( +s1 +, +s2 +è: + `¡ºcmp + (s1, s2, +n +))) + + ) + +932 #ià! +defšed + +_HAVE_STRING_ARCH_¡rc¥n + || defšed +_FORCE_INLINES + + +933 #iâdeà +_HAVE_STRING_ARCH_¡rc¥n + + +934 #ià +__GNUC_PREREQ + (3, 2) + +935  + #¡rc¥n +( +s +, +»jeù +) \ + +936 +__ex‹nsiÚ__ + \ + +937 ({  +__r0 +, +__r1 +, +__r2 +; \ + +938 ( + `__bužtš_cÚ¡ªt_p + ( +»jeù +è&& + `__¡ršg2_1b±r_p + (reject) \ + +939 ? (( + `__bužtš_cÚ¡ªt_p + ( +s +è&& + `__¡ršg2_1b±r_p + (s)) \ + +940 ? + `__bužtš_¡rc¥n + ( +s +, +»jeù +) \ + +941 : (( +__r0 + = (( +__cÚ¡ + *è( +»jeù +))[0], __r0 == '\0') \ + +942 ? + `¡¾’ + ( +s +) \ + +943 : (( +__r1 + = (( +__cÚ¡ + *è( +»jeù +))[1], __r1 == '\0') \ + +944 ? + `__¡rc¥n_c1 + ( +s +, +__r0 +) \ + +945 : (( +__r2 + = (( +__cÚ¡ + *è( +»jeù +))[2], __r2 == '\0') \ + +946 ? + `__¡rc¥n_c2 + ( +s +, +__r0 +, +__r1 +) \ + +947 : ((( +__cÚ¡ + *è( +»jeù +))[3] == '\0' \ + +948 ? + `__¡rc¥n_c3 + ( +s +, +__r0 +, +__r1 +, +__r2 +) \ + +949 : + `__bužtš_¡rc¥n + ( +s +, +»jeù +)))))) \ + +950 : + `__bužtš_¡rc¥n + ( +s +, +»jeù +)); }) + + ) + +952  + #¡rc¥n +( +s +, +»jeù +) \ + +953 +__ex‹nsiÚ__ + \ + +954 ({  +__r0 +, +__r1 +, +__r2 +; \ + +955 ( + `__bužtš_cÚ¡ªt_p + ( +»jeù +è&& + `__¡ršg2_1b±r_p + (reject) \ + +956 ? (( +__r0 + = (( +__cÚ¡ + *è( +»jeù +))[0], __r0 == '\0') \ + +957 ? + `¡¾’ + ( +s +) \ + +958 : (( +__r1 + = (( +__cÚ¡ + *è( +»jeù +))[1], __r1 == '\0') \ + +959 ? + `__¡rc¥n_c1 + ( +s +, +__r0 +) \ + +960 : (( +__r2 + = (( +__cÚ¡ + *è( +»jeù +))[2], __r2 == '\0') \ + +961 ? + `__¡rc¥n_c2 + ( +s +, +__r0 +, +__r1 +) \ + +962 : ((( +__cÚ¡ + *è( +»jeù +))[3] == '\0' \ + +963 ? + `__¡rc¥n_c3 + ( +s +, +__r0 +, +__r1 +, +__r2 +) \ + +964 : + `¡rc¥n + ( +s +, +»jeù +))))) \ + +965 : + `¡rc¥n + ( +s +, +»jeù +)); }) + + ) + +969 +__STRING_INLINE + +size_t + +__¡rc¥n_c1 + ( +__cÚ¡ + * +__s +,  +__»jeù +); + +970 +__STRING_INLINE + +size_t + + +971 + $__¡rc¥n_c1 + ( +__cÚ¡ + * +__s +,  +__»jeù +) + +973  +size_t + +__»suÉ + = 0; + +974  +__s +[ +__»suÉ +] !ð'\0' && __s[__»suÉ] !ð +__»jeù +) + +975 ++ +__»suÉ +; + +976  +__»suÉ +; + +977 + } +} + +979 +__STRING_INLINE + +size_t + +__¡rc¥n_c2 + ( +__cÚ¡ + * +__s +,  +__»jeù1 +, + +980  +__»jeù2 +); + +981 +__STRING_INLINE + +size_t + + +982 + $__¡rc¥n_c2 + ( +__cÚ¡ + * +__s +,  +__»jeù1 +,  +__»jeù2 +) + +984  +size_t + +__»suÉ + = 0; + +985  +__s +[ +__»suÉ +] !ð'\0' && __s[__»suÉ] !ð +__»jeù1 + + +986 && +__s +[ +__»suÉ +] !ð +__»jeù2 +) + +987 ++ +__»suÉ +; + +988  +__»suÉ +; + +989 + } +} + +991 +__STRING_INLINE + +size_t + +__¡rc¥n_c3 + ( +__cÚ¡ + * +__s +,  +__»jeù1 +, + +992  +__»jeù2 +,  +__»jeù3 +); + +993 +__STRING_INLINE + +size_t + + +994 + $__¡rc¥n_c3 + ( +__cÚ¡ + * +__s +,  +__»jeù1 +,  +__»jeù2 +, + +995  +__»jeù3 +) + +997  +size_t + +__»suÉ + = 0; + +998  +__s +[ +__»suÉ +] !ð'\0' && __s[__»suÉ] !ð +__»jeù1 + + +999 && +__s +[ +__»suÉ +] !ð +__»jeù2 + && __s[__»suÉ] !ð +__»jeù3 +) + +1000 ++ +__»suÉ +; + +1001  +__»suÉ +; + +1002 + } +} + +1008 #ià! +defšed + +_HAVE_STRING_ARCH_¡r¥n + || defšed +_FORCE_INLINES + + +1009 #iâdeà +_HAVE_STRING_ARCH_¡r¥n + + +1010 #ià +__GNUC_PREREQ + (3, 2) + +1011  + #¡r¥n +( +s +, +acû± +) \ + +1012 +__ex‹nsiÚ__ + \ + +1013 ({  +__a0 +, +__a1 +, +__a2 +; \ + +1014 ( + `__bužtš_cÚ¡ªt_p + ( +acû± +è&& + `__¡ršg2_1b±r_p + (accept) \ + +1015 ? (( + `__bužtš_cÚ¡ªt_p + ( +s +è&& + `__¡ršg2_1b±r_p + (s)) \ + +1016 ? + `__bužtš_¡r¥n + ( +s +, +acû± +) \ + +1017 : (( +__a0 + = (( +__cÚ¡ + *è( +acû± +))[0], __a0 == '\0') \ + +1018 ? ((è( +s +), 0) \ + +1019 : (( +__a1 + = (( +__cÚ¡ + *è( +acû± +))[1], __a1 == '\0') \ + +1020 ? + `__¡r¥n_c1 + ( +s +, +__a0 +) \ + +1021 : (( +__a2 + = (( +__cÚ¡ + *è( +acû± +))[2], __a2 == '\0') \ + +1022 ? + `__¡r¥n_c2 + ( +s +, +__a0 +, +__a1 +) \ + +1023 : ((( +__cÚ¡ + *è( +acû± +))[3] == '\0' \ + +1024 ? + `__¡r¥n_c3 + ( +s +, +__a0 +, +__a1 +, +__a2 +) \ + +1025 : + `__bužtš_¡r¥n + ( +s +, +acû± +)))))) \ + +1026 : + `__bužtš_¡r¥n + ( +s +, +acû± +)); }) + + ) + +1028  + #¡r¥n +( +s +, +acû± +) \ + +1029 +__ex‹nsiÚ__ + \ + +1030 ({  +__a0 +, +__a1 +, +__a2 +; \ + +1031 ( + `__bužtš_cÚ¡ªt_p + ( +acû± +è&& + `__¡ršg2_1b±r_p + (accept) \ + +1032 ? (( +__a0 + = (( +__cÚ¡ + *è( +acû± +))[0], __a0 == '\0') \ + +1033 ? ((è( +s +), 0) \ + +1034 : (( +__a1 + = (( +__cÚ¡ + *è( +acû± +))[1], __a1 == '\0') \ + +1035 ? + `__¡r¥n_c1 + ( +s +, +__a0 +) \ + +1036 : (( +__a2 + = (( +__cÚ¡ + *è( +acû± +))[2], __a2 == '\0') \ + +1037 ? + `__¡r¥n_c2 + ( +s +, +__a0 +, +__a1 +) \ + +1038 : ((( +__cÚ¡ + *è( +acû± +))[3] == '\0' \ + +1039 ? + `__¡r¥n_c3 + ( +s +, +__a0 +, +__a1 +, +__a2 +) \ + +1040 : + `¡r¥n + ( +s +, +acû± +))))) \ + +1041 : + `¡r¥n + ( +s +, +acû± +)); }) + + ) + +1045 +__STRING_INLINE + +size_t + +__¡r¥n_c1 + ( +__cÚ¡ + * +__s +,  +__acû± +); + +1046 +__STRING_INLINE + +size_t + + +1047 + $__¡r¥n_c1 + ( +__cÚ¡ + * +__s +,  +__acû± +) + +1049  +size_t + +__»suÉ + = 0; + +1051  +__s +[ +__»suÉ +] =ð +__acû± +) + +1052 ++ +__»suÉ +; + +1053  +__»suÉ +; + +1054 + } +} + +1056 +__STRING_INLINE + +size_t + +__¡r¥n_c2 + ( +__cÚ¡ + * +__s +,  +__acû±1 +, + +1057  +__acû±2 +); + +1058 +__STRING_INLINE + +size_t + + +1059 + $__¡r¥n_c2 + ( +__cÚ¡ + * +__s +,  +__acû±1 +,  +__acû±2 +) + +1061  +size_t + +__»suÉ + = 0; + +1063  +__s +[ +__»suÉ +] =ð +__acû±1 + || __s[__»suÉ] =ð +__acû±2 +) + +1064 ++ +__»suÉ +; + +1065  +__»suÉ +; + +1066 + } +} + +1068 +__STRING_INLINE + +size_t + +__¡r¥n_c3 + ( +__cÚ¡ + * +__s +,  +__acû±1 +, + +1069  +__acû±2 +,  +__acû±3 +); + +1070 +__STRING_INLINE + +size_t + + +1071 + $__¡r¥n_c3 + ( +__cÚ¡ + * +__s +,  +__acû±1 +,  +__acû±2 +,  +__acû±3 +) + +1073  +size_t + +__»suÉ + = 0; + +1075  +__s +[ +__»suÉ +] =ð +__acû±1 + || __s[__»suÉ] =ð +__acû±2 + + +1076 || +__s +[ +__»suÉ +] =ð +__acû±3 +) + +1077 ++ +__»suÉ +; + +1078  +__»suÉ +; + +1079 + } +} + +1084 #ià! +defšed + +_HAVE_STRING_ARCH_¡½brk + || defšed +_FORCE_INLINES + + +1085 #iâdeà +_HAVE_STRING_ARCH_¡½brk + + +1086 #ià +__GNUC_PREREQ + (3, 2) + +1087  + #¡½brk +( +s +, +acû± +) \ + +1088 +__ex‹nsiÚ__ + \ + +1089 ({  +__a0 +, +__a1 +, +__a2 +; \ + +1090 ( + `__bužtš_cÚ¡ªt_p + ( +acû± +è&& + `__¡ršg2_1b±r_p + (accept) \ + +1091 ? (( + `__bužtš_cÚ¡ªt_p + ( +s +è&& + `__¡ršg2_1b±r_p + (s)) \ + +1092 ? + `__bužtš_¡½brk + ( +s +, +acû± +) \ + +1093 : (( +__a0 + = (( +__cÚ¡ + *è( +acû± +))[0], __a0 == '\0') \ + +1094 ? ((è( +s +), (*è +NULL +) \ + +1095 : (( +__a1 + = (( +__cÚ¡ + *è( +acû± +))[1], __a1 == '\0') \ + +1096 ? + `__bužtš_¡rchr + ( +s +, +__a0 +) \ + +1097 : (( +__a2 + = (( +__cÚ¡ + *è( +acû± +))[2], __a2 == '\0') \ + +1098 ? + `__¡½brk_c2 + ( +s +, +__a0 +, +__a1 +) \ + +1099 : ((( +__cÚ¡ + *è( +acû± +))[3] == '\0' \ + +1100 ? + `__¡½brk_c3 + ( +s +, +__a0 +, +__a1 +, +__a2 +) \ + +1101 : + `__bužtš_¡½brk + ( +s +, +acû± +)))))) \ + +1102 : + `__bužtš_¡½brk + ( +s +, +acû± +)); }) + + ) + +1104  + #¡½brk +( +s +, +acû± +) \ + +1105 +__ex‹nsiÚ__ + \ + +1106 ({  +__a0 +, +__a1 +, +__a2 +; \ + +1107 ( + `__bužtš_cÚ¡ªt_p + ( +acû± +è&& + `__¡ršg2_1b±r_p + (accept) \ + +1108 ? (( +__a0 + = (( +__cÚ¡ + *è( +acû± +))[0], __a0 == '\0') \ + +1109 ? ((è( +s +), (*è +NULL +) \ + +1110 : (( +__a1 + = (( +__cÚ¡ + *è( +acû± +))[1], __a1 == '\0') \ + +1111 ? + `¡rchr + ( +s +, +__a0 +) \ + +1112 : (( +__a2 + = (( +__cÚ¡ + *è( +acû± +))[2], __a2 == '\0') \ + +1113 ? + `__¡½brk_c2 + ( +s +, +__a0 +, +__a1 +) \ + +1114 : ((( +__cÚ¡ + *è( +acû± +))[3] == '\0' \ + +1115 ? + `__¡½brk_c3 + ( +s +, +__a0 +, +__a1 +, +__a2 +) \ + +1116 : + `¡½brk + ( +s +, +acû± +))))) \ + +1117 : + `¡½brk + ( +s +, +acû± +)); }) + + ) + +1121 +__STRING_INLINE + * +__¡½brk_c2 + ( +__cÚ¡ + * +__s +,  +__acû±1 +, + +1122  +__acû±2 +); + +1123 +__STRING_INLINE + * + +1124 + $__¡½brk_c2 + ( +__cÚ¡ + * +__s +,  +__acû±1 +,  +__acû±2 +) + +1127 * +__s + !ð'\0' && *__ !ð +__acû±1 + && *__ !ð +__acû±2 +) + +1128 ++ +__s +; + +1129  * +__s + =ð'\0' ? +NULL + : (*è( +size_t +) __s; + +1130 + } +} + +1132 +__STRING_INLINE + * +__¡½brk_c3 + ( +__cÚ¡ + * +__s +,  +__acû±1 +, + +1133  +__acû±2 +,  +__acû±3 +); + +1134 +__STRING_INLINE + * + +1135 + $__¡½brk_c3 + ( +__cÚ¡ + * +__s +,  +__acû±1 +,  +__acû±2 +, + +1136  +__acû±3 +) + +1139 * +__s + !ð'\0' && *__ !ð +__acû±1 + && *__ !ð +__acû±2 + + +1140 && * +__s + !ð +__acû±3 +) + +1141 ++ +__s +; + +1142  * +__s + =ð'\0' ? +NULL + : (*è( +size_t +) __s; + +1143 + } +} + +1149 #ià! +defšed + +_HAVE_STRING_ARCH_¡r¡r + && ! +__GNUC_PREREQ + (2, 97) + +1150  + #¡r¡r +( +hay¡ack +, +ÃedË +) \ + +1151 ( + `__ex‹nsiÚ__ + ( + `__bužtš_cÚ¡ªt_p + ( +ÃedË +è&& + `__¡ršg2_1b±r_p + (needle) \ + +1152 ? ((( +__cÚ¡ + *è( +ÃedË +))[0] == '\0' \ + +1153 ? (*è( +size_t +è( +hay¡ack +) \ + +1154 : ((( +__cÚ¡ + *è( +ÃedË +))[1] == '\0' \ + +1155 ? + `¡rchr + ( +hay¡ack +, \ + +1156 (( +__cÚ¡ + *è( +ÃedË +))[0]) \ + +1157 : + `¡r¡r + ( +hay¡ack +, +ÃedË +))) \ + +1158 : + `¡r¡r + ( +hay¡ack +, +ÃedË +))) + + ) + +1162 #ià! +defšed + +_HAVE_STRING_ARCH_¡¹ok_r + || defšed +_FORCE_INLINES + + +1163 #iâdeà +_HAVE_STRING_ARCH_¡¹ok_r + + +1164  + #__¡¹ok_r +( +s +, +£p +, +Ãx +) \ + +1165 ( + `__ex‹nsiÚ__ + ( + `__bužtš_cÚ¡ªt_p + ( +£p +è&& + `__¡ršg2_1b±r_p + (sep) \ + +1166 && (( +__cÚ¡ + *è( +£p +))[0] != '\0' \ + +1167 && (( +__cÚ¡ + *è( +£p +))[1] == '\0' \ + +1168 ? + `__¡¹ok_r_1c + ( +s +, (( +__cÚ¡ + *è( +£p +))[0], +Ãx +) \ + +1169 : + `__¡¹ok_r + ( +s +, +£p +, +Ãx +))) + + ) + +1172 +__STRING_INLINE + * +__¡¹ok_r_1c + (* +__s +,  +__£p +, ** +__Ãx +); + +1173 +__STRING_INLINE + * + +1174 + $__¡¹ok_r_1c + (* +__s +,  +__£p +, ** +__Ãx +) + +1176 * +__»suÉ +; + +1177 ià( +__s + =ð +NULL +) + +1178 +__s + = * +__Ãx +; + +1179 * +__s + =ð +__£p +) + +1180 ++ +__s +; + +1181 +__»suÉ + = +NULL +; + +1182 ià(* +__s + != '\0') + +1184 +__»suÉ + = +__s +++; + +1185 * +__s + != '\0') + +1186 ià(* +__s +++ =ð +__£p +) + +1188 +__s +[-1] = '\0'; + +1192 * +__Ãx + = +__s +; + +1193  +__»suÉ +; + +1194 + } +} + +1195 #ià +defšed + +__USE_POSIX + || defšed +__USE_MISC + + +1196  + #¡¹ok_r +( +s +, +£p +, +Ãx +è + `__¡¹ok_r + (s, s•,‚ex) + + ) + +1201 #ià! +defšed + +_HAVE_STRING_ARCH_¡r£p + || defšed +_FORCE_INLINES + + +1202 #iâdeà +_HAVE_STRING_ARCH_¡r£p + + +1204 * +__¡r£p_g + (** +__¡ršgp +, +__cÚ¡ + * +__d–im +); + +1205  + #__¡r£p +( +s +, +»jeù +) \ + +1206 +__ex‹nsiÚ__ + \ + +1207 ({  +__r0 +, +__r1 +, +__r2 +; \ + +1208 ( + `__bužtš_cÚ¡ªt_p + ( +»jeù +è&& + `__¡ršg2_1b±r_p + (reject) \ + +1209 && ( +__r0 + = (( +__cÚ¡ + *è( +»jeù +))[0], \ + +1210 (( +__cÚ¡ + *è( +»jeù +))[0] != '\0') \ + +1211 ? (( +__r1 + = (( +__cÚ¡ + *è( +»jeù +))[1], \ + +1212 (( +__cÚ¡ + *è( +»jeù +))[1] == '\0') \ + +1213 ? + `__¡r£p_1c + ( +s +, +__r0 +) \ + +1214 : (( +__r2 + = (( +__cÚ¡ + *è( +»jeù +))[2], __r2 == '\0') \ + +1215 ? + `__¡r£p_2c + ( +s +, +__r0 +, +__r1 +) \ + +1216 : ((( +__cÚ¡ + *è( +»jeù +))[3] == '\0' \ + +1217 ? + `__¡r£p_3c + ( +s +, +__r0 +, +__r1 +, +__r2 +) \ + +1218 : + `__¡r£p_g + ( +s +, +»jeù +)))) \ + +1219 : + `__¡r£p_g + ( +s +, +»jeù +)); }) + + ) + +1222 +__STRING_INLINE + * +__¡r£p_1c + (** +__s +,  +__»jeù +); + +1223 +__STRING_INLINE + * + +1224 + $__¡r£p_1c + (** +__s +,  +__»jeù +) + +1226 * +__»tv® + = * +__s +; + +1227 ià( +__»tv® + !ð +NULL + && (* +__s + = + `¡rchr + (__»tv®, +__»jeù +)) != NULL) + +1228 *(* +__s +)++ = '\0'; + +1229  +__»tv® +; + +1230 + } +} + +1232 +__STRING_INLINE + * +__¡r£p_2c + (** +__s +,  +__»jeù1 +,  +__»jeù2 +); + +1233 +__STRING_INLINE + * + +1234 + $__¡r£p_2c + (** +__s +,  +__»jeù1 +,  +__»jeù2 +) + +1236 * +__»tv® + = * +__s +; + +1237 ià( +__»tv® + !ð +NULL +) + +1239 * +__ý + = +__»tv® +; + +1242 ià(* +__ý + == '\0') + +1244 +__ý + = +NULL +; + +1247 ià(* +__ý + =ð +__»jeù1 + || *__ý =ð +__»jeù2 +) + +1249 * +__ý +++ = '\0'; + +1252 ++ +__ý +; + +1254 * +__s + = +__ý +; + +1256  +__»tv® +; + +1257 + } +} + +1259 +__STRING_INLINE + * +__¡r£p_3c + (** +__s +,  +__»jeù1 +,  +__»jeù2 +, + +1260  +__»jeù3 +); + +1261 +__STRING_INLINE + * + +1262 + $__¡r£p_3c + (** +__s +,  +__»jeù1 +,  +__»jeù2 +,  +__»jeù3 +) + +1264 * +__»tv® + = * +__s +; + +1265 ià( +__»tv® + !ð +NULL +) + +1267 * +__ý + = +__»tv® +; + +1270 ià(* +__ý + == '\0') + +1272 +__ý + = +NULL +; + +1275 ià(* +__ý + =ð +__»jeù1 + || *__ý =ð +__»jeù2 + || *__ý =ð +__»jeù3 +) + +1277 * +__ý +++ = '\0'; + +1280 ++ +__ý +; + +1282 * +__s + = +__ý +; + +1284  +__»tv® +; + +1285 + } +} + +1286 #ifdeà +__USE_BSD + + +1287  + #¡r£p +( +s +, +»jeù +è + `__¡r£p + (s,„ejeù) + + ) + +1294 #ifdeà +__USE_MISC + + +1296 #ià! +defšed + +_HAVE_STRING_ARCH_¡rdup + || !defšed +_HAVE_STRING_ARCH_¡ºdup + + +1297  + #__Ãed_m®loc_ªd_ÿÎoc + + + ) + +1298  + ~<¡dlib.h +> + +1301 #iâdeà +_HAVE_STRING_ARCH_¡rdup + + +1303 * + $__¡rdup + ( +__cÚ¡ + * +__¡ršg +è +__THROW + +__©Œibu‹_m®loc__ +; + +1304  + #__¡rdup +( +s +) \ + +1305 ( + `__ex‹nsiÚ__ + ( + `__bužtš_cÚ¡ªt_p + ( +s +è&& + `__¡ršg2_1b±r_p + (s) \ + +1306 ? ((( +__cÚ¡ + *è( +s +))[0] == '\0' \ + +1307 ? (*è + `ÿÎoc + (( +size_t +) 1, (size_t) 1) \ + +1308 : ({ +size_t + +__Ën + = + `¡¾’ + ( +s +) + 1; \ + +1309 * +__»tv® + = (*è + `m®loc + ( +__Ën +); \ + +1310 ià( +__»tv® + !ð +NULL +) \ + +1311 +__»tv® + = (*è + `memýy + (__»tv®, +s +, +__Ën +); \ + +1312 +__»tv® +; + } +})) \ + +1313 : + `__¡rdup + ( +s +))) + + ) + +1315 #ià +defšed + +__USE_SVID + || defšed +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + + +1316  + #¡rdup +( +s +è + `__¡rdup + (s) + + ) + +1320 #iâdeà +_HAVE_STRING_ARCH_¡ºdup + + +1322 * + $__¡ºdup + ( +__cÚ¡ + * +__¡ršg +, +size_t + +__n +) + +1323 +__THROW + +__©Œibu‹_m®loc__ +; + +1324  + #__¡ºdup +( +s +, +n +) \ + +1325 ( + `__ex‹nsiÚ__ + ( + `__bužtš_cÚ¡ªt_p + ( +s +è&& + `__¡ršg2_1b±r_p + (s) \ + +1326 ? ((( +__cÚ¡ + *è( +s +))[0] == '\0' \ + +1327 ? (*è + `ÿÎoc + (( +size_t +) 1, (size_t) 1) \ + +1328 : ({ +size_t + +__Ën + = + `¡¾’ + ( +s +) + 1; \ + +1329 +size_t + +__n + = ( +n +); \ + +1330 * +__»tv® +; \ + +1331 ià( +__n + < +__Ën +) \ + +1332 +__Ën + = +__n + + 1; \ + +1333 +__»tv® + = (*è + `m®loc + ( +__Ën +); \ + +1334 ià( +__»tv® + !ð +NULL +) \ + +1336 +__»tv® +[ +__Ën + - 1] = '\0'; \ + +1337 +__»tv® + = (*è + `memýy + (__»tv®, +s +, \ + +1338 +__Ën + - 1); \ + +1340 +__»tv® +; + } +})) \ + +1341 : + `__¡ºdup + ( +s +, +n +))) + + ) + +1343 #ifdeà +__USE_GNU + + +1344  + #¡ºdup +( +s +, +n +è + `__¡ºdup + (s,‚) + + ) + +1350 #iâdeà +_FORCE_INLINES + + +1351 #undeà +__STRING_INLINE + + + @/usr/include/bits/string3.h + +19 #iâdeà +_STRING_H + + +23 +__w¬ndeþ + ( +__w¬n_mem£t_z”o_Ën +, + +26 #iâdeà +__ýlu¥lus + + +30 #undeà +memýy + + +31 #undeà +memmove + + +32 #undeà +mem£t + + +33 #undeà +¡rÿt + + +34 #undeà +¡rýy + + +35 #undeà +¡ºÿt + + +36 #undeà +¡ºýy + + +37 #ifdeà +__USE_GNU + + +38 #undeà +mempýy + + +39 #undeà +¡pýy + + +41 #ifdeà +__USE_BSD + + +42 #undeà +bcÝy + + +43 #undeà +bz”o + + +48 +__ex‹º_®ways_šlše + * + +49 +__NTH + ( + $memýy + (* +__»¡riù + +__de¡ +, +__cÚ¡ + *__»¡riù +__¤c +, + +50 +size_t + +__Ën +)) + +52  + `__bužtš___memýy_chk + ( +__de¡ +, +__¤c +, +__Ën +, + `__bos0 + (__dest)); + +53 + } +} + +55 +__ex‹º_®ways_šlše + * + +56 +__NTH + ( + $memmove + (* +__de¡ +, +__cÚ¡ + * +__¤c +, +size_t + +__Ën +)) + +58  + `__bužtš___memmove_chk + ( +__de¡ +, +__¤c +, +__Ën +, + `__bos0 + (__dest)); + +59 + } +} + +61 #ifdeà +__USE_GNU + + +62 +__ex‹º_®ways_šlše + * + +63 +__NTH + ( + $mempýy + (* +__»¡riù + +__de¡ +, +__cÚ¡ + *__»¡riù +__¤c +, + +64 +size_t + +__Ën +)) + +66  + `__bužtš___mempýy_chk + ( +__de¡ +, +__¤c +, +__Ën +, + `__bos0 + (__dest)); + +67 + } +} + +76 +__ex‹º_®ways_šlše + * + +77 +__NTH + ( + $mem£t + (* +__de¡ +,  +__ch +, +size_t + +__Ën +)) + +79 ià( + `__bužtš_cÚ¡ªt_p + ( +__Ën +) && __len == 0 + +80 && (! + `__bužtš_cÚ¡ªt_p + ( +__ch +) || __ch != 0)) + +82 + `__w¬n_mem£t_z”o_Ën + (); + +83  +__de¡ +; + +85  + `__bužtš___mem£t_chk + ( +__de¡ +, +__ch +, +__Ën +, + `__bos0 + (__dest)); + +86 + } +} + +88 #ifdeà +__USE_BSD + + +89 +__ex‹º_®ways_šlše +  + +90 +__NTH + ( + $bcÝy + ( +__cÚ¡ + * +__¤c +, * +__de¡ +, +size_t + +__Ën +)) + +92 (è + `__bužtš___memmove_chk + ( +__de¡ +, +__¤c +, +__Ën +, + `__bos0 + (__dest)); + +93 + } +} + +95 +__ex‹º_®ways_šlše +  + +96 +__NTH + ( + $bz”o + (* +__de¡ +, +size_t + +__Ën +)) + +98 (è + `__bužtš___mem£t_chk + ( +__de¡ +, '\0', +__Ën +, + `__bos0 + (__dest)); + +99 + } +} + +102 +__ex‹º_®ways_šlše + * + +103 +__NTH + ( + $¡rýy + (* +__»¡riù + +__de¡ +, +__cÚ¡ + *__»¡riù +__¤c +)) + +105  + `__bužtš___¡rýy_chk + ( +__de¡ +, +__¤c +, + `__bos + (__dest)); + +106 + } +} + +108 #ifdeà +__USE_GNU + + +109 +__ex‹º_®ways_šlše + * + +110 +__NTH + ( + $¡pýy + (* +__»¡riù + +__de¡ +, +__cÚ¡ + *__»¡riù +__¤c +)) + +112  + `__bužtš___¡pýy_chk + ( +__de¡ +, +__¤c +, + `__bos + (__dest)); + +113 + } +} + +117 +__ex‹º_®ways_šlše + * + +118 +__NTH + ( + $¡ºýy + (* +__»¡riù + +__de¡ +, +__cÚ¡ + *__»¡riù +__¤c +, + +119 +size_t + +__Ën +)) + +121  + `__bužtš___¡ºýy_chk + ( +__de¡ +, +__¤c +, +__Ën +, + `__bos + (__dest)); + +122 + } +} + +125 * + $__¡²ýy_chk + (* +__de¡ +, +__cÚ¡ + * +__¤c +, +size_t + +__n +, + +126 +size_t + +__de¡Ën +è +__THROW +; + +127 * + `__REDIRECT_NTH + ( +__¡²ýy_®Ÿs +, (* +__de¡ +, + +128 +__cÚ¡ + * +__¤c +, + +129 +size_t + +__n +), +¡²ýy +); + +131 +__ex‹º_®ways_šlše + * + +132 + `__NTH + ( + $¡²ýy + (* +__de¡ +, +__cÚ¡ + * +__¤c +, +size_t + +__n +)) + +134 ià( + `__bos + ( +__de¡ +è!ð( +size_t +) -1 + +135 && (! + `__bužtš_cÚ¡ªt_p + ( +__n +è|| __À<ð + `__bos + ( +__de¡ +))) + +136  + `__¡²ýy_chk + ( +__de¡ +, +__¤c +, +__n +, + `__bos + (__dest)); + +137  + `__¡²ýy_®Ÿs + ( +__de¡ +, +__¤c +, +__n +); + +138 + } +} + +141 +__ex‹º_®ways_šlše + * + +142 +__NTH + ( + $¡rÿt + (* +__»¡riù + +__de¡ +, +__cÚ¡ + *__»¡riù +__¤c +)) + +144  + `__bužtš___¡rÿt_chk + ( +__de¡ +, +__¤c +, + `__bos + (__dest)); + +145 + } +} + +148 +__ex‹º_®ways_šlše + * + +149 +__NTH + ( + $¡ºÿt + (* +__»¡riù + +__de¡ +, +__cÚ¡ + *__»¡riù +__¤c +, + +150 +size_t + +__Ën +)) + +152  + `__bužtš___¡ºÿt_chk + ( +__de¡ +, +__¤c +, +__Ën +, + `__bos + (__dest)); + +153 + } +} + + @/usr/include/bits/sys_errlist.h + +20 #iâdeà +_STDIO_H + + +26 #ifdeà +__USE_BSD + + +27  +sys_ü +; + +28 +__cÚ¡ + *__cÚ¡ +sys_”¾i¡ +[]; + +30 #ifdeà +__USE_GNU + + +31  +_sys_ü +; + +32 +__cÚ¡ + *__cÚ¡ +_sys_”¾i¡ +[]; + + @/usr/include/bits/types.h + +24 #iâdef +_BITS_TYPES_H + + +25  + #_BITS_TYPES_H + 1 + + ) + +27  + ~<ã©u»s.h +> + +28  + ~ + +31  + t__u_ch¬ +; + +32  + t__u_shÜt +; + +33  + t__u_št +; + +34  + t__u_lÚg +; + +37 sigÃd  + t__št8_t +; + +38  + t__ušt8_t +; + +39 sigÃd  + t__št16_t +; + +40  + t__ušt16_t +; + +41 sigÃd  + t__št32_t +; + +42  + t__ušt32_t +; + +43 #ià +__WORDSIZE + == 64 + +44 sigÃd  + t__št64_t +; + +45  + t__ušt64_t +; + +46 #–ià +defšed + +__GLIBC_HAVE_LONG_LONG + + +47 +__ex‹nsiÚ__ + sigÃd  + t__št64_t +; + +48 +__ex‹nsiÚ__ +  + t__ušt64_t +; + +52 #ià +__WORDSIZE + == 64 + +53  + t__quad_t +; + +54  + t__u_quad_t +; + +55 #–ià +defšed + +__GLIBC_HAVE_LONG_LONG + + +56 +__ex‹nsiÚ__ +  + t__quad_t +; + +57 +__ex‹nsiÚ__ +  + t__u_quad_t +; + +61  + m__v® +[2]; + +62 } + t__quad_t +; + +65 +__u_lÚg + + m__v® +[2]; + +66 } + t__u_quad_t +; + +99  + #__S16_TYPE +  + + ) + +100  + #__U16_TYPE +  + + ) + +101  + #__S32_TYPE +  + + ) + +102  + #__U32_TYPE +  + + ) + +103  + #__SLONGWORD_TYPE +  + + ) + +104  + #__ULONGWORD_TYPE +  + + ) + +105 #ià +__WORDSIZE + == 32 + +106  + #__SQUAD_TYPE + +__quad_t + + + ) + +107  + #__UQUAD_TYPE + +__u_quad_t + + + ) + +108  + #__SWORD_TYPE +  + + ) + +109  + #__UWORD_TYPE +  + + ) + +110  + #__SLONG32_TYPE +  + + ) + +111  + #__ULONG32_TYPE +  + + ) + +112  + #__S64_TYPE + +__quad_t + + + ) + +113  + #__U64_TYPE + +__u_quad_t + + + ) + +116  + #__STD_TYPE + +__ex‹nsiÚ__ +  + + ) + +117 #–ià +__WORDSIZE + == 64 + +118  + t__SQUAD_TYPE +  + + ) + +119  + t__UQUAD_TYPE +  + + ) + +120  + t__SWORD_TYPE +  + + ) + +121  + t__UWORD_TYPE +  + + ) + +122  + t__SLONG32_TYPE +  + + ) + +123  + t__ULONG32_TYPE +  + + ) + +124  + t__S64_TYPE +  + + ) + +125  + t__U64_TYPE +  + + ) + +127  + t__STD_TYPE +  + + ) + +131  + ~ + +134 +__STD_TYPE + + t__DEV_T_TYPE + + t__dev_t +; + +135 +__STD_TYPE + +__UID_T_TYPE + + g__uid_t +; + +136 +__STD_TYPE + +__GID_T_TYPE + + g__gid_t +; + +137 +__STD_TYPE + +__INO_T_TYPE + + g__šo_t +; + +138 +__STD_TYPE + +__INO64_T_TYPE + + g__šo64_t +; + +139 +__STD_TYPE + +__MODE_T_TYPE + + g__mode_t +; + +140 +__STD_TYPE + +__NLINK_T_TYPE + + g__Æšk_t +; + +141 +__STD_TYPE + +__OFF_T_TYPE + + g__off_t +; + +142 +__STD_TYPE + +__OFF64_T_TYPE + + g__off64_t +; + +143 +__STD_TYPE + +__PID_T_TYPE + + g__pid_t +; + +144 +__STD_TYPE + +__FSID_T_TYPE + + g__fsid_t +; + +145 +__STD_TYPE + +__CLOCK_T_TYPE + + g__þock_t +; + +146 +__STD_TYPE + +__RLIM_T_TYPE + + g__¾im_t +; + +147 +__STD_TYPE + +__RLIM64_T_TYPE + + g__¾im64_t +; + +148 +__STD_TYPE + +__ID_T_TYPE + + g__id_t +; + +149 +__STD_TYPE + +__TIME_T_TYPE + + g__time_t +; + +150 +__STD_TYPE + +__USECONDS_T_TYPE + + g__u£cÚds_t +; + +151 +__STD_TYPE + +__SUSECONDS_T_TYPE + + g__su£cÚds_t +; + +153 +__STD_TYPE + +__DADDR_T_TYPE + + g__daddr_t +; + +154 +__STD_TYPE + +__SWBLK_T_TYPE + + g__swblk_t +; + +155 +__STD_TYPE + +__KEY_T_TYPE + + g__key_t +; + +158 +__STD_TYPE + +__CLOCKID_T_TYPE + + g__þockid_t +; + +161 +__STD_TYPE + +__TIMER_T_TYPE + + g__tim”_t +; + +164 +__STD_TYPE + +__BLKSIZE_T_TYPE + + g__blksize_t +; + +169 +__STD_TYPE + +__BLKCNT_T_TYPE + + g__blkút_t +; + +170 +__STD_TYPE + +__BLKCNT64_T_TYPE + + g__blkút64_t +; + +173 +__STD_TYPE + +__FSBLKCNT_T_TYPE + + g__fsblkút_t +; + +174 +__STD_TYPE + +__FSBLKCNT64_T_TYPE + + g__fsblkút64_t +; + +177 +__STD_TYPE + +__FSFILCNT_T_TYPE + + g__fsfžút_t +; + +178 +__STD_TYPE + +__FSFILCNT64_T_TYPE + + g__fsfžút64_t +; + +180 +__STD_TYPE + +__SSIZE_T_TYPE + + g__ssize_t +; + +184  +__off64_t + + t__loff_t +; + +185  +__quad_t + * + t__qaddr_t +; + +186 * + t__ÿddr_t +; + +189 +__STD_TYPE + +__SWORD_TYPE + + g__šŒ_t +; + +192 +__STD_TYPE + +__U32_TYPE + + g__sockËn_t +; + +195 #undeà +__STD_TYPE + + + @/usr/include/bits/unistd.h + +20 #iâdeà +_UNISTD_H + + +24 +ssize_t + + $__»ad_chk + ( +__fd +, * +__buf +, +size_t + +__nby‹s +, + +25 +size_t + +__buæ’ +è +__wur +; + +26 +ssize_t + + `__REDIRECT + ( +__»ad_®Ÿs +, ( +__fd +, * +__buf +, + +27 +size_t + +__nby‹s +), +»ad +è +__wur +; + +28 +ssize_t + + `__REDIRECT + ( +__»ad_chk_w¬n +, + +29 ( +__fd +, * +__buf +, +size_t + +__nby‹s +, + +30 +size_t + +__buæ’ +), +__»ad_chk +) + +31 +__wur + + `__w¬Ç‰r + ("read called with bigger†engthhan size of " + +34 +__ex‹º_®ways_šlše + +__wur + +ssize_t + + +35 + $»ad + ( +__fd +, * +__buf +, +size_t + +__nby‹s +) + +37 ià( + `__bos0 + ( +__buf +è!ð( +size_t +) -1) + +39 ià(! + `__bužtš_cÚ¡ªt_p + ( +__nby‹s +)) + +40  + `__»ad_chk + ( +__fd +, +__buf +, +__nby‹s +, + `__bos0 + (__buf)); + +42 ià( +__nby‹s + > + `__bos0 + ( +__buf +)) + +43  + `__»ad_chk_w¬n + ( +__fd +, +__buf +, +__nby‹s +, + `__bos0 + (__buf)); + +45  + `__»ad_®Ÿs + ( +__fd +, +__buf +, +__nby‹s +); + +46 + } +} + +48 #ifdeà +__USE_UNIX98 + + +49 +ssize_t + + $__´—d_chk + ( +__fd +, * +__buf +, +size_t + +__nby‹s +, + +50 +__off_t + +__off£t +, +size_t + +__bufsize +è +__wur +; + +51 +ssize_t + + $__´—d64_chk + ( +__fd +, * +__buf +, +size_t + +__nby‹s +, + +52 +__off64_t + +__off£t +, +size_t + +__bufsize +è +__wur +; + +53 +ssize_t + + `__REDIRECT + ( +__´—d_®Ÿs +, + +54 ( +__fd +, * +__buf +, +size_t + +__nby‹s +, + +55 +__off_t + +__off£t +), +´—d +è +__wur +; + +56 +ssize_t + + `__REDIRECT + ( +__´—d64_®Ÿs +, + +57 ( +__fd +, * +__buf +, +size_t + +__nby‹s +, + +58 +__off64_t + +__off£t +), +´—d64 +è +__wur +; + +59 +ssize_t + + `__REDIRECT + ( +__´—d_chk_w¬n +, + +60 ( +__fd +, * +__buf +, +size_t + +__nby‹s +, + +61 +__off_t + +__off£t +, +size_t + +__bufsize +), +__´—d_chk +) + +62 +__wur + + `__w¬Ç‰r + ("pread called with bigger†engthhan size of " + +64 +ssize_t + + `__REDIRECT + ( +__´—d64_chk_w¬n +, + +65 ( +__fd +, * +__buf +, +size_t + +__nby‹s +, + +66 +__off64_t + +__off£t +, +size_t + +__bufsize +), + +67 +__´—d64_chk +) + +68 +__wur + + `__w¬Ç‰r + ("pread64 called with bigger†engthhan size of " + +71 #iâdeà +__USE_FILE_OFFSET64 + + +72 +__ex‹º_®ways_šlše + +__wur + +ssize_t + + +73 + $´—d + ( +__fd +, * +__buf +, +size_t + +__nby‹s +, +__off_t + +__off£t +) + +75 ià( + `__bos0 + ( +__buf +è!ð( +size_t +) -1) + +77 ià(! + `__bužtš_cÚ¡ªt_p + ( +__nby‹s +)) + +78  + `__´—d_chk + ( +__fd +, +__buf +, +__nby‹s +, +__off£t +, + `__bos0 + (__buf)); + +80 iàÐ +__nby‹s + > + `__bos0 + ( +__buf +)) + +81  + `__´—d_chk_w¬n + ( +__fd +, +__buf +, +__nby‹s +, +__off£t +, + +82 + `__bos0 + ( +__buf +)); + +84  + `__´—d_®Ÿs + ( +__fd +, +__buf +, +__nby‹s +, +__off£t +); + +85 + } +} + +87 +__ex‹º_®ways_šlše + +__wur + +ssize_t + + +88 + $´—d + ( +__fd +, * +__buf +, +size_t + +__nby‹s +, +__off64_t + +__off£t +) + +90 ià( + `__bos0 + ( +__buf +è!ð( +size_t +) -1) + +92 ià(! + `__bužtš_cÚ¡ªt_p + ( +__nby‹s +)) + +93  + `__´—d64_chk + ( +__fd +, +__buf +, +__nby‹s +, +__off£t +, + `__bos0 + (__buf)); + +95 iàÐ +__nby‹s + > + `__bos0 + ( +__buf +)) + +96  + `__´—d64_chk_w¬n + ( +__fd +, +__buf +, +__nby‹s +, +__off£t +, + +97 + `__bos0 + ( +__buf +)); + +100  + `__´—d64_®Ÿs + ( +__fd +, +__buf +, +__nby‹s +, +__off£t +); + +101 + } +} + +104 #ifdeà +__USE_LARGEFILE64 + + +105 +__ex‹º_®ways_šlše + +__wur + +ssize_t + + +106 + $´—d64 + ( +__fd +, * +__buf +, +size_t + +__nby‹s +, +__off64_t + +__off£t +) + +108 ià( + `__bos0 + ( +__buf +è!ð( +size_t +) -1) + +110 ià(! + `__bužtš_cÚ¡ªt_p + ( +__nby‹s +)) + +111  + `__´—d64_chk + ( +__fd +, +__buf +, +__nby‹s +, +__off£t +, + `__bos0 + (__buf)); + +113 iàÐ +__nby‹s + > + `__bos0 + ( +__buf +)) + +114  + `__´—d64_chk_w¬n + ( +__fd +, +__buf +, +__nby‹s +, +__off£t +, + +115 + `__bos0 + ( +__buf +)); + +118  + `__´—d64_®Ÿs + ( +__fd +, +__buf +, +__nby‹s +, +__off£t +); + +119 + } +} + +123 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + || defšed +__USE_XOPEN2K + + +124 +ssize_t + + $__»adlšk_chk + ( +__cÚ¡ + * +__»¡riù + +__·th +, + +125 * +__»¡riù + +__buf +, +size_t + +__Ën +, + +126 +size_t + +__buæ’ +) + +127 +__THROW + + `__nÚnuÎ + ((1, 2)è +__wur +; + +128 +ssize_t + + `__REDIRECT_NTH + ( +__»adlšk_®Ÿs +, + +129 ( +__cÚ¡ + * +__»¡riù + +__·th +, + +130 * +__»¡riù + +__buf +, +size_t + +__Ën +), +»adlšk +) + +131 + `__nÚnuÎ + ((1, 2)è +__wur +; + +132 +ssize_t + + `__REDIRECT_NTH + ( +__»adlšk_chk_w¬n +, + +133 ( +__cÚ¡ + * +__»¡riù + +__·th +, + +134 * +__»¡riù + +__buf +, +size_t + +__Ën +, + +135 +size_t + +__buæ’ +), +__»adlšk_chk +) + +136 + `__nÚnuÎ + ((1, 2)è +__wur + + `__w¬Ç‰r + ("readlink called with bigger†ength " + +139 +__ex‹º_®ways_šlše + + `__nÚnuÎ + ((1, 2)è +__wur + +ssize_t + + +140 + `__NTH + ( + $»adlšk + ( +__cÚ¡ + * +__»¡riù + +__·th +, *__»¡riù +__buf +, + +141 +size_t + +__Ën +)) + +143 ià( + `__bos + ( +__buf +è!ð( +size_t +) -1) + +145 ià(! + `__bužtš_cÚ¡ªt_p + ( +__Ën +)) + +146  + `__»adlšk_chk + ( +__·th +, +__buf +, +__Ën +, + `__bos + (__buf)); + +148 iàÐ +__Ën + > + `__bos + ( +__buf +)) + +149  + `__»adlšk_chk_w¬n + ( +__·th +, +__buf +, +__Ën +, + `__bos + (__buf)); + +151  + `__»adlšk_®Ÿs + ( +__·th +, +__buf +, +__Ën +); + +152 + } +} + +155 #ifdeà +__USE_ATFILE + + +156 +ssize_t + + $__»adlšk©_chk + ( +__fd +, +__cÚ¡ + * +__»¡riù + +__·th +, + +157 * +__»¡riù + +__buf +, +size_t + +__Ën +, + +158 +size_t + +__buæ’ +) + +159 +__THROW + + `__nÚnuÎ + ((2, 3)è +__wur +; + +160 +ssize_t + + `__REDIRECT_NTH + ( +__»adlšk©_®Ÿs +, + +161 ( +__fd +, +__cÚ¡ + * +__»¡riù + +__·th +, + +162 * +__»¡riù + +__buf +, +size_t + +__Ën +), + +163 +»adlšk© +) + +164 + `__nÚnuÎ + ((2, 3)è +__wur +; + +165 +ssize_t + + `__REDIRECT_NTH + ( +__»adlšk©_chk_w¬n +, + +166 ( +__fd +, +__cÚ¡ + * +__»¡riù + +__·th +, + +167 * +__»¡riù + +__buf +, +size_t + +__Ën +, + +168 +size_t + +__buæ’ +), +__»adlšk©_chk +) + +169 + `__nÚnuÎ + ((2, 3)è +__wur + + `__w¬Ç‰r + ("readlinkat called with bigger " + +173 +__ex‹º_®ways_šlše + + `__nÚnuÎ + ((2, 3)è +__wur + +ssize_t + + +174 + `__NTH + ( + $»adlšk© + ( +__fd +, +__cÚ¡ + * +__»¡riù + +__·th +, + +175 * +__»¡riù + +__buf +, +size_t + +__Ën +)) + +177 ià( + `__bos + ( +__buf +è!ð( +size_t +) -1) + +179 ià(! + `__bužtš_cÚ¡ªt_p + ( +__Ën +)) + +180  + `__»adlšk©_chk + ( +__fd +, +__·th +, +__buf +, +__Ën +, + `__bos + (__buf)); + +182 ià( +__Ën + > + `__bos + ( +__buf +)) + +183  + `__»adlšk©_chk_w¬n + ( +__fd +, +__·th +, +__buf +, +__Ën +, + +184 + `__bos + ( +__buf +)); + +186  + `__»adlšk©_®Ÿs + ( +__fd +, +__·th +, +__buf +, +__Ën +); + +187 + } +} + +190 * + $__g‘cwd_chk + (* +__buf +, +size_t + +__size +, size_ˆ +__buæ’ +) + +191 +__THROW + +__wur +; + +192 * + `__REDIRECT_NTH + ( +__g‘cwd_®Ÿs +, + +193 (* +__buf +, +size_t + +__size +), +g‘cwd +è +__wur +; + +194 * + `__REDIRECT_NTH + ( +__g‘cwd_chk_w¬n +, + +195 (* +__buf +, +size_t + +__size +, size_ˆ +__buæ’ +), + +196 +__g‘cwd_chk +) + +197 +__wur + + `__w¬Ç‰r + ("getcwd caller with bigger†engthhan size of " + +200 +__ex‹º_®ways_šlše + +__wur + * + +201 + `__NTH + ( + $g‘cwd + (* +__buf +, +size_t + +__size +)) + +203 ià( + `__bos + ( +__buf +è!ð( +size_t +) -1) + +205 ià(! + `__bužtš_cÚ¡ªt_p + ( +__size +)) + +206  + `__g‘cwd_chk + ( +__buf +, +__size +, + `__bos + (__buf)); + +208 ià( +__size + > + `__bos + ( +__buf +)) + +209  + `__g‘cwd_chk_w¬n + ( +__buf +, +__size +, + `__bos + (__buf)); + +211  + `__g‘cwd_®Ÿs + ( +__buf +, +__size +); + +212 + } +} + +214 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + + +215 * + $__g‘wd_chk + (* +__buf +, +size_t + +buæ’ +) + +216 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +217 * + `__REDIRECT_NTH + ( +__g‘wd_w¬n +, (* +__buf +), +g‘wd +) + +218 + `__nÚnuÎ + ((1)è +__wur + + `__w¬Ç‰r + ("please use getcwd instead,‡s getwd " + +221 +__ex‹º_®ways_šlše + + `__nÚnuÎ + ((1)è +__©Œibu‹_d•»ÿ‹d__ + +__wur + * + +222 + `__NTH + ( + $g‘wd + (* +__buf +)) + +224 ià( + `__bos + ( +__buf +è!ð( +size_t +) -1) + +225  + `__g‘wd_chk + ( +__buf +, + `__bos + (__buf)); + +226  + `__g‘wd_w¬n + ( +__buf +); + +227 + } +} + +230 +size_t + + $__cÚf¡r_chk + ( +__Çme +, * +__buf +, +size_t + +__Ën +, + +231 +size_t + +__buæ’ +è +__THROW +; + +232 +size_t + + `__REDIRECT_NTH + ( +__cÚf¡r_®Ÿs +, ( +__Çme +, * +__buf +, + +233 +size_t + +__Ën +), +cÚf¡r +); + +234 +size_t + + `__REDIRECT_NTH + ( +__cÚf¡r_chk_w¬n +, + +235 ( +__Çme +, * +__buf +, +size_t + +__Ën +, + +236 +size_t + +__buæ’ +), +__cÚf¡r_chk +) + +237 + `__w¬Ç‰r + ("confstr called with bigger†engthhan size of destination " + +240 +__ex‹º_®ways_šlše + +size_t + + +241 + `__NTH + ( + $cÚf¡r + ( +__Çme +, * +__buf +, +size_t + +__Ën +)) + +243 ià( + `__bos + ( +__buf +è!ð( +size_t +) -1) + +245 ià(! + `__bužtš_cÚ¡ªt_p + ( +__Ën +)) + +246  + `__cÚf¡r_chk + ( +__Çme +, +__buf +, +__Ën +, + `__bos + (__buf)); + +248 ià( + `__bos + ( +__buf +è< +__Ën +) + +249  + `__cÚf¡r_chk_w¬n + ( +__Çme +, +__buf +, +__Ën +, + `__bos + (__buf)); + +251  + `__cÚf¡r_®Ÿs + ( +__Çme +, +__buf +, +__Ën +); + +252 + } +} + +255  + $__g‘groups_chk + ( +__size +, +__gid_t + +__li¡ +[], +size_t + +__li¡Ën +) + +256 +__THROW + +__wur +; + +257  + `__REDIRECT_NTH + ( +__g‘groups_®Ÿs +, ( +__size +, +__gid_t + +__li¡ +[]), + +258 +g‘groups +è +__wur +; + +259  + `__REDIRECT_NTH + ( +__g‘groups_chk_w¬n +, + +260 ( +__size +, +__gid_t + +__li¡ +[], +size_t + +__li¡Ën +), + +261 +__g‘groups_chk +) + +262 +__wur + + `__w¬Ç‰r + ("getgroups called with bigger group counthan what " + +265 +__ex‹º_®ways_šlše +  + +266 + `__NTH + ( + $g‘groups + ( +__size +, +__gid_t + +__li¡ +[])) + +268 ià( + `__bos + ( +__li¡ +è!ð( +size_t +) -1) + +270 ià(! + `__bužtš_cÚ¡ªt_p + ( +__size +) || __size < 0) + +271  + `__g‘groups_chk + ( +__size +, +__li¡ +, + `__bos + (__list)); + +273 ià( +__size + *  ( +__gid_t +è> + `__bos + ( +__li¡ +)) + +274  + `__g‘groups_chk_w¬n + ( +__size +, +__li¡ +, + `__bos + (__list)); + +276  + `__g‘groups_®Ÿs + ( +__size +, +__li¡ +); + +277 + } +} + +280  + $__‰yÇme_r_chk + ( +__fd +, * +__buf +, +size_t + +__buæ’ +, + +281 +size_t + +__Ä—l +è +__THROW + + `__nÚnuÎ + ((2)); + +282  + `__REDIRECT_NTH + ( +__‰yÇme_r_®Ÿs +, ( +__fd +, * +__buf +, + +283 +size_t + +__buæ’ +), +‰yÇme_r +) + +284 + `__nÚnuÎ + ((2)); + +285  + `__REDIRECT_NTH + ( +__‰yÇme_r_chk_w¬n +, + +286 ( +__fd +, * +__buf +, +size_t + +__buæ’ +, + +287 +size_t + +__Ä—l +), +__‰yÇme_r_chk +) + +288 + `__nÚnuÎ + ((2)è + `__w¬Ç‰r + ("ttyname_r called with bigger buflenhan " + +291 +__ex‹º_®ways_šlše +  + +292 + `__NTH + ( + $‰yÇme_r + ( +__fd +, * +__buf +, +size_t + +__buæ’ +)) + +294 ià( + `__bos + ( +__buf +è!ð( +size_t +) -1) + +296 ià(! + `__bužtš_cÚ¡ªt_p + ( +__buæ’ +)) + +297  + `__‰yÇme_r_chk + ( +__fd +, +__buf +, +__buæ’ +, + `__bos + (__buf)); + +299 ià( +__buæ’ + > + `__bos + ( +__buf +)) + +300  + `__‰yÇme_r_chk_w¬n + ( +__fd +, +__buf +, +__buæ’ +, + `__bos + (__buf)); + +302  + `__‰yÇme_r_®Ÿs + ( +__fd +, +__buf +, +__buæ’ +); + +303 + } +} + +306 #ià +defšed + +__USE_REENTRANT + || defšed +__USE_POSIX199506 + + +307  + $__g‘logš_r_chk + (* +__buf +, +size_t + +__buæ’ +, size_ˆ +__Ä—l +) + +308 + `__nÚnuÎ + ((1)); + +309  + `__REDIRECT + ( +__g‘logš_r_®Ÿs +, (* +__buf +, +size_t + +__buæ’ +), + +310 +g‘logš_r +è + `__nÚnuÎ + ((1)); + +311  + `__REDIRECT + ( +__g‘logš_r_chk_w¬n +, + +312 (* +__buf +, +size_t + +__buæ’ +, size_ˆ +__Ä—l +), + +313 +__g‘logš_r_chk +) + +314 + `__nÚnuÎ + ((1)è + `__w¬Ç‰r + ("getlogin_r called with bigger buflenhan " + +317 +__ex‹º_®ways_šlše +  + +318 + $g‘logš_r + (* +__buf +, +size_t + +__buæ’ +) + +320 ià( + `__bos + ( +__buf +è!ð( +size_t +) -1) + +322 ià(! + `__bužtš_cÚ¡ªt_p + ( +__buæ’ +)) + +323  + `__g‘logš_r_chk + ( +__buf +, +__buæ’ +, + `__bos + (__buf)); + +325 ià( +__buæ’ + > + `__bos + ( +__buf +)) + +326  + `__g‘logš_r_chk_w¬n + ( +__buf +, +__buæ’ +, + `__bos + (__buf)); + +328  + `__g‘logš_r_®Ÿs + ( +__buf +, +__buæ’ +); + +329 + } +} + +333 #ià +defšed + +__USE_BSD + || defšed +__USE_UNIX98 + + +334  + $__g‘ho¡Çme_chk + (* +__buf +, +size_t + +__buæ’ +, size_ˆ +__Ä—l +) + +335 +__THROW + + `__nÚnuÎ + ((1)); + +336  + `__REDIRECT_NTH + ( +__g‘ho¡Çme_®Ÿs +, (* +__buf +, +size_t + +__buæ’ +), + +337 +g‘ho¡Çme +è + `__nÚnuÎ + ((1)); + +338  + `__REDIRECT_NTH + ( +__g‘ho¡Çme_chk_w¬n +, + +339 (* +__buf +, +size_t + +__buæ’ +, size_ˆ +__Ä—l +), + +340 +__g‘ho¡Çme_chk +) + +341 + `__nÚnuÎ + ((1)è + `__w¬Ç‰r + ("gethostname called with bigger buflenhan " + +344 +__ex‹º_®ways_šlše +  + +345 + `__NTH + ( + $g‘ho¡Çme + (* +__buf +, +size_t + +__buæ’ +)) + +347 ià( + `__bos + ( +__buf +è!ð( +size_t +) -1) + +349 ià(! + `__bužtš_cÚ¡ªt_p + ( +__buæ’ +)) + +350  + `__g‘ho¡Çme_chk + ( +__buf +, +__buæ’ +, + `__bos + (__buf)); + +352 ià( +__buæ’ + > + `__bos + ( +__buf +)) + +353  + `__g‘ho¡Çme_chk_w¬n + ( +__buf +, +__buæ’ +, + `__bos + (__buf)); + +355  + `__g‘ho¡Çme_®Ÿs + ( +__buf +, +__buæ’ +); + +356 + } +} + +360 #ià +defšed + +__USE_BSD + || (defšed +__USE_XOPEN + && !defšed +__USE_UNIX98 +) + +361  + $__g‘domašÇme_chk + (* +__buf +, +size_t + +__buæ’ +, size_ˆ +__Ä—l +) + +362 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +363  + `__REDIRECT_NTH + ( +__g‘domašÇme_®Ÿs +, (* +__buf +, + +364 +size_t + +__buæ’ +), + +365 +g‘domašÇme +è + `__nÚnuÎ + ((1)è +__wur +; + +366  + `__REDIRECT_NTH + ( +__g‘domašÇme_chk_w¬n +, + +367 (* +__buf +, +size_t + +__buæ’ +, size_ˆ +__Ä—l +), + +368 +__g‘domašÇme_chk +) + +369 + `__nÚnuÎ + ((1)è +__wur + + `__w¬Ç‰r + ("getdomainname called with bigger " + +373 +__ex‹º_®ways_šlše +  + +374 + `__NTH + ( + $g‘domašÇme + (* +__buf +, +size_t + +__buæ’ +)) + +376 ià( + `__bos + ( +__buf +è!ð( +size_t +) -1) + +378 ià(! + `__bužtš_cÚ¡ªt_p + ( +__buæ’ +)) + +379  + `__g‘domašÇme_chk + ( +__buf +, +__buæ’ +, + `__bos + (__buf)); + +381 ià( +__buæ’ + > + `__bos + ( +__buf +)) + +382  + `__g‘domašÇme_chk_w¬n + ( +__buf +, +__buæ’ +, + `__bos + (__buf)); + +384  + `__g‘domašÇme_®Ÿs + ( +__buf +, +__buæ’ +); + +385 + } +} + + @/usr/include/bits/waitflags.h + +20 #ià! +defšed + +_SYS_WAIT_H + && !defšed +_STDLIB_H + + +26  + #WNOHANG + 1 + + ) + +27  + #WUNTRACED + 2 + + ) + +30  + #WSTOPPED + 2 + + ) + +31  + #WEXITED + 4 + + ) + +32  + #WCONTINUED + 8 + + ) + +33  + #WNOWAIT + 0x01000000 + + ) + +35  + #__WNOTHREAD + 0x20000000 + + ) + +37  + #__WALL + 0x40000000 + + ) + +38  + #__WCLONE + 0x80000000 + + ) + + @/usr/include/bits/waitstatus.h + +20 #ià! +defšed + +_SYS_WAIT_H + && !defšed +_STDLIB_H + + +29  + #__WEXITSTATUS +( +¡©us +è(((¡©usè& 0xff00è>> 8) + + ) + +32  + #__WTERMSIG +( +¡©us +è((¡©usè& 0x7f) + + ) + +35  + #__WSTOPSIG +( +¡©us +è + `__WEXITSTATUS +(¡©us) + + ) + +38  + #__WIFEXITED +( +¡©us +è( + `__WTERMSIG +(¡©usè=ð0) + + ) + +41  + #__WIFSIGNALED +( +¡©us +) \ + +42 (((sigÃd è((( +¡©us +è& 0x7fè+ 1è>> 1è> 0) + + ) + +45  + #__WIFSTOPPED +( +¡©us +è(((¡©usè& 0xffè=ð0x7f) + + ) + +49 #ifdeà +WCONTINUED + + +50  + #__WIFCONTINUED +( +¡©us +è((¡©usè=ð +__W_CONTINUED +) + + ) + +54  + #__WCOREDUMP +( +¡©us +è((¡©usè& +__WCOREFLAG +) + + ) + +57  + #__W_EXITCODE +( +»t +, +sig +è(Ô‘è<< 8 | (sig)) + + ) + +58  + #__W_STOPCODE +( +sig +è((sigè<< 8 | 0x7f) + + ) + +59  + #__W_CONTINUED + 0xffff + + ) + +60  + #__WCOREFLAG + 0x80 + + ) + +63 #ifdef +__USE_BSD + + +65  + ~<’dŸn.h +> + +67  + uwa™ + + +69  + mw_¡©us +; + +72 #if +__BYTE_ORDER + =ð +__LITTLE_ENDIAN + + +73  + m__w_‹rmsig +:7; + +74  + m__w_cÜedump +:1; + +75  + m__w_»tcode +:8; + +78 #if +__BYTE_ORDER + =ð +__BIG_ENDIAN + + +80  + m__w_»tcode +:8; + +81  + m__w_cÜedump +:1; + +82  + m__w_‹rmsig +:7; + +84 } + m__wa™_‹rmš©ed +; + +87 #if +__BYTE_ORDER + =ð +__LITTLE_ENDIAN + + +88  + m__w_¡Ýv® +:8; + +89  + m__w_¡Ýsig +:8; + +92 #if +__BYTE_ORDER + =ð +__BIG_ENDIAN + + +94  + m__w_¡Ýsig +:8; + +95  + m__w_¡Ýv® +:8; + +97 } + m__wa™_¡Ý³d +; + +100  + #w_‹rmsig + +__wa™_‹rmš©ed +. +__w_‹rmsig + + + ) + +101  + #w_cÜedump + +__wa™_‹rmš©ed +. +__w_cÜedump + + + ) + +102  + #w_»tcode + +__wa™_‹rmš©ed +. +__w_»tcode + + + ) + +103  + #w_¡Ýsig + +__wa™_¡Ý³d +. +__w_¡Ýsig + + + ) + +104  + #w_¡Ýv® + +__wa™_¡Ý³d +. +__w_¡Ýv® + + + ) + + @/usr/include/fcntl.h + +24 #iâdef +_FCNTL_H + + +25  + #_FCNTL_H + 1 + + ) + +27  + ~<ã©u»s.h +> + +30 + g__BEGIN_DECLS + + +34  + ~ + +37 #ià +defšed + +__USE_XOPEN + || defšed +__USE_XOPEN2K8 + + +38  + ~ + +39  + #__Ãed_time¥ec + + + ) + +40  + ~ + +41  + ~ + +43  + #S_IFMT + +__S_IFMT + + + ) + +44  + #S_IFDIR + +__S_IFDIR + + + ) + +45  + #S_IFCHR + +__S_IFCHR + + + ) + +46  + #S_IFBLK + +__S_IFBLK + + + ) + +47  + #S_IFREG + +__S_IFREG + + + ) + +48 #ifdeà +__S_IFIFO + + +49  + #S_IFIFO + +__S_IFIFO + + + ) + +51 #ifdeà +__S_IFLNK + + +52  + #S_IFLNK + +__S_IFLNK + + + ) + +54 #ià( +defšed + +__USE_UNIX98 + || defšed +__USE_XOPEN2K8 +è&& defšed +__S_IFSOCK + + +55  + #S_IFSOCK + +__S_IFSOCK + + + ) + +60  + #S_ISUID + +__S_ISUID + + + ) + +61  + #S_ISGID + +__S_ISGID + + + ) + +63 #ià +defšed + +__USE_BSD + || defšed +__USE_MISC + || defšed +__USE_XOPEN + + +65  + #S_ISVTX + +__S_ISVTX + + + ) + +68  + #S_IRUSR + +__S_IREAD + + + ) + +69  + #S_IWUSR + +__S_IWRITE + + + ) + +70  + #S_IXUSR + +__S_IEXEC + + + ) + +72  + #S_IRWXU + ( +__S_IREAD +| +__S_IWRITE +| +__S_IEXEC +) + + ) + +74  + #S_IRGRP + ( +S_IRUSR + >> 3è + + ) + +75  + #S_IWGRP + ( +S_IWUSR + >> 3è + + ) + +76  + #S_IXGRP + ( +S_IXUSR + >> 3è + + ) + +78  + #S_IRWXG + ( +S_IRWXU + >> 3) + + ) + +80  + #S_IROTH + ( +S_IRGRP + >> 3è + + ) + +81  + #S_IWOTH + ( +S_IWGRP + >> 3è + + ) + +82  + #S_IXOTH + ( +S_IXGRP + >> 3è + + ) + +84  + #S_IRWXO + ( +S_IRWXG + >> 3) + + ) + +87 #ifdef +__USE_MISC + + +88 #iâdeà +R_OK + + +91  + #R_OK + 4 + + ) + +92  + #W_OK + 2 + + ) + +93  + #X_OK + 1 + + ) + +94  + #F_OK + 0 + + ) + +99 #ià +defšed + +__USE_XOPEN + || defšed +__USE_XOPEN2K8 + + +100  + #SEEK_SET + 0 + + ) + +101  + #SEEK_CUR + 1 + + ) + +102  + #SEEK_END + 2 + + ) + +105 #ifdeà +__USE_ATFILE + + +106  + #AT_FDCWD + -100 + + ) + +109  + #AT_SYMLINK_NOFOLLOW + 0x100 + + ) + +110  + #AT_REMOVEDIR + 0x200 + + ) + +112  + #AT_SYMLINK_FOLLOW + 0x400 + + ) + +113  + #AT_NO_AUTOMOUNT + 0x800 + + ) + +115  + #AT_EMPTY_PATH + 0x1000 + + ) + +116  + #AT_EACCESS + 0x200 + + ) + +125  +fúŽ + ( +__fd +,  +__cmd +, ...); + +133 #iâdeà +__USE_FILE_OFFSET64 + + +134  + $Ý’ + ( +__cÚ¡ + * +__fže +,  +__oæag +, ...è + `__nÚnuÎ + ((1)); + +136 #ifdeà +__REDIRECT + + +137  + `__REDIRECT + ( +Ý’ +, ( +__cÚ¡ + * +__fže +,  +__oæag +, ...), +Ý’64 +) + +138 + `__nÚnuÎ + ((1)); + +140  + #Ý’ + +Ý’64 + + + ) + +143 #ifdeà +__USE_LARGEFILE64 + + +144  + $Ý’64 + ( +__cÚ¡ + * +__fže +,  +__oæag +, ...è + `__nÚnuÎ + ((1)); + +147 #ifdeà +__USE_ATFILE + + +157 #iâdeà +__USE_FILE_OFFSET64 + + +158  + $Ý’© + ( +__fd +, +__cÚ¡ + * +__fže +,  +__oæag +, ...) + +159 + `__nÚnuÎ + ((2)); + +161 #ifdeà +__REDIRECT + + +162  + `__REDIRECT + ( +Ý’© +, ( +__fd +, +__cÚ¡ + * +__fže +,  +__oæag +, + +163 ...), +Ý’©64 +è + `__nÚnuÎ + ((2)); + +165  + #Ý’© + +Ý’©64 + + + ) + +168 #ifdeà +__USE_LARGEFILE64 + + +169  + $Ý’©64 + ( +__fd +, +__cÚ¡ + * +__fže +,  +__oæag +, ...) + +170 + `__nÚnuÎ + ((2)); + +179 #iâdeà +__USE_FILE_OFFSET64 + + +180  + $ü—t + ( +__cÚ¡ + * +__fže +, +__mode_t + +__mode +è + `__nÚnuÎ + ((1)); + +182 #ifdeà +__REDIRECT + + +183  + `__REDIRECT + ( +ü—t +, ( +__cÚ¡ + * +__fže +, +__mode_t + +__mode +), + +184 +ü—t64 +è + `__nÚnuÎ + ((1)); + +186  + #ü—t + +ü—t64 + + + ) + +189 #ifdeà +__USE_LARGEFILE64 + + +190  + $ü—t64 + ( +__cÚ¡ + * +__fže +, +__mode_t + +__mode +è + `__nÚnuÎ + ((1)); + +193 #ià! +defšed + +F_LOCK + && (defšed +__USE_MISC + || (defšed +__USE_XOPEN_EXTENDED + \ + +194 && ! +defšed + +__USE_POSIX +)) + +203  + #F_ULOCK + 0 + + ) + +204  + #F_LOCK + 1 + + ) + +205  + #F_TLOCK + 2 + + ) + +206  + #F_TEST + 3 + + ) + +208 #iâdeà +__USE_FILE_OFFSET64 + + +209  + `lockf + ( +__fd +,  +__cmd +, +__off_t + +__Ën +); + +211 #ifdeà +__REDIRECT + + +212  + `__REDIRECT + ( +lockf +, ( +__fd +,  +__cmd +, +__off64_t + +__Ën +), +lockf64 +); + +214  + #lockf + +lockf64 + + + ) + +217 #ifdeà +__USE_LARGEFILE64 + + +218  + `lockf64 + ( +__fd +,  +__cmd +, +__off64_t + +__Ën +); + +222 #ifdeà +__USE_XOPEN2K + + +225 #iâdeà +__USE_FILE_OFFSET64 + + +226  + $posix_çdvi£ + ( +__fd +, +__off_t + +__off£t +, __off_ˆ +__Ën +, + +227  +__advi£ +è +__THROW +; + +229 #ifdeà +__REDIRECT_NTH + + +230  + `__REDIRECT_NTH + ( +posix_çdvi£ +, ( +__fd +, +__off64_t + +__off£t +, + +231 +__off64_t + +__Ën +,  +__advi£ +), + +232 +posix_çdvi£64 +); + +234  + #posix_çdvi£ + +posix_çdvi£64 + + + ) + +237 #ifdeà +__USE_LARGEFILE64 + + +238  + $posix_çdvi£64 + ( +__fd +, +__off64_t + +__off£t +, __off64_ˆ +__Ën +, + +239  +__advi£ +è +__THROW +; + +247 #iâdeà +__USE_FILE_OFFSET64 + + +248  + `posix_çÎoÿ‹ + ( +__fd +, +__off_t + +__off£t +, __off_ˆ +__Ën +); + +250 #ifdeà +__REDIRECT + + +251  + `__REDIRECT + ( +posix_çÎoÿ‹ +, ( +__fd +, +__off64_t + +__off£t +, + +252 +__off64_t + +__Ën +), + +253 +posix_çÎoÿ‹64 +); + +255  + #posix_çÎoÿ‹ + +posix_çÎoÿ‹64 + + + ) + +258 #ifdeà +__USE_LARGEFILE64 + + +259  + `posix_çÎoÿ‹64 + ( +__fd +, +__off64_t + +__off£t +, __off64_ˆ +__Ën +); + +265 #ià +__USE_FORTIFY_LEVEL + > 0 && +defšed + +__ex‹º_®ways_šlše + \ + +266 && +defšed + +__va_¬g_·ck_Ën + + +267  + ~ + +270 +__END_DECLS + + + @/usr/include/features.h + +20 #iâdef +_FEATURES_H + + +21  + #_FEATURES_H + 1 + + ) + +98 #undeà +__USE_ISOC99 + + +99 #undeà +__USE_ISOC95 + + +100 #undeà +__USE_POSIX + + +101 #undeà +__USE_POSIX2 + + +102 #undeà +__USE_POSIX199309 + + +103 #undeà +__USE_POSIX199506 + + +104 #undeà +__USE_XOPEN + + +105 #undeà +__USE_XOPEN_EXTENDED + + +106 #undeà +__USE_UNIX98 + + +107 #undeà +__USE_XOPEN2K + + +108 #undeà +__USE_XOPEN2KXSI + + +109 #undeà +__USE_XOPEN2K8 + + +110 #undeà +__USE_XOPEN2K8XSI + + +111 #undeà +__USE_LARGEFILE + + +112 #undeà +__USE_LARGEFILE64 + + +113 #undeà +__USE_FILE_OFFSET64 + + +114 #undeà +__USE_BSD + + +115 #undeà +__USE_SVID + + +116 #undeà +__USE_MISC + + +117 #undeà +__USE_ATFILE + + +118 #undeà +__USE_GNU + + +119 #undeà +__USE_REENTRANT + + +120 #undeà +__USE_FORTIFY_LEVEL + + +121 #undeà +__FAVOR_BSD + + +122 #undeà +__KERNEL_STRICT_NAMES + + +126 #iâdeà +_LOOSE_KERNEL_NAMES + + +127  + #__KERNEL_STRICT_NAMES + + + ) + +131  + #__USE_ANSI + 1 + + ) + +140 #ià +defšed + +__GNUC__ + && defšed +__GNUC_MINOR__ + + +141  + #__GNUC_PREREQ +( +maj +, +mš +) \ + +142 (( +__GNUC__ + << 16è+ +__GNUC_MINOR__ + >ð(( +maj +è<< 16è+ ( +mš +)) + + ) + +144  + #__GNUC_PREREQ +( +maj +, +mš +è0 + + ) + +149 #ià +defšed + +_BSD_SOURCE + && \ + +150 !( +defšed + + g_POSIX_SOURCE + || defšed + g_POSIX_C_SOURCE + || \ + +151 +defšed + + g_XOPEN_SOURCE + || defšed + g_GNU_SOURCE + || defšed + g_SVID_SOURCE +) + +152  + #__FAVOR_BSD + 1 + + ) + +156 #ifdeà +_GNU_SOURCE + + +157 #undeà +_ISOC95_SOURCE + + +158  + #_ISOC95_SOURCE + 1 + + ) + +159 #undeà +_ISOC99_SOURCE + + +160  + #_ISOC99_SOURCE + 1 + + ) + +161 #undeà +_POSIX_SOURCE + + +162  + #_POSIX_SOURCE + 1 + + ) + +163 #undeà +_POSIX_C_SOURCE + + +164  + #_POSIX_C_SOURCE + 200809L + + ) + +165 #undeà +_XOPEN_SOURCE + + +166  + #_XOPEN_SOURCE + 700 + + ) + +167 #undeà +_XOPEN_SOURCE_EXTENDED + + +168  + #_XOPEN_SOURCE_EXTENDED + 1 + + ) + +169 #undeà +_LARGEFILE64_SOURCE + + +170  + #_LARGEFILE64_SOURCE + 1 + + ) + +171 #undeà +_BSD_SOURCE + + +172  + #_BSD_SOURCE + 1 + + ) + +173 #undeà +_SVID_SOURCE + + +174  + #_SVID_SOURCE + 1 + + ) + +175 #undeà +_ATFILE_SOURCE + + +176  + #_ATFILE_SOURCE + 1 + + ) + +181 #ià(! +defšed + +__STRICT_ANSI__ + && !defšed +_ISOC99_SOURCE + && \ + +182 ! +defšed + + g_POSIX_SOURCE + && !defšed + g_POSIX_C_SOURCE + && \ + +183 ! +defšed + + g_XOPEN_SOURCE + && !defšed + g_BSD_SOURCE + && !defšed + g_SVID_SOURCE +) + +184  + #_BSD_SOURCE + 1 + + ) + +185  + #_SVID_SOURCE + 1 + + ) + +192 #ià( +defšed + +_ISOC99_SOURCE + || defšed +_ISOC9X_SOURCE + \ + +193 || ( +defšed + + g__STDC_VERSION__ + && __STDC_VERSION__ >= 199901L)) + +194  + #__USE_ISOC99 + 1 + + ) + +198 #ià( +defšed + +_ISOC99_SOURCE + || defšed +_ISOC9X_SOURCE + \ + +199 || ( +defšed + +__STDC_VERSION__ + && __STDC_VERSION__ >= 199409L)) + +200  + #__USE_ISOC95 + 1 + + ) + +205 #ià((! +defšed + +__STRICT_ANSI__ + || ( +_XOPEN_SOURCE + - 0) >= 500) && \ + +206 ! +defšed + +_POSIX_SOURCE + && !defšed +_POSIX_C_SOURCE +) + +207  + #_POSIX_SOURCE + 1 + + ) + +208 #ià +defšed + +_XOPEN_SOURCE + && (_XOPEN_SOURCE - 0) < 500 + +209  + #_POSIX_C_SOURCE + 2 + + ) + +210 #–ià +defšed + +_XOPEN_SOURCE + && (_XOPEN_SOURCE - 0) < 600 + +211  + #_POSIX_C_SOURCE + 199506L + + ) + +212 #–ià +defšed + +_XOPEN_SOURCE + && (_XOPEN_SOURCE - 0) < 700 + +213  + #_POSIX_C_SOURCE + 200112L + + ) + +215  + #_POSIX_C_SOURCE + 200809L + + ) + +217  + #__USE_POSIX_IMPLICITLY + 1 + + ) + +220 #ià +defšed + +_POSIX_SOURCE + || +_POSIX_C_SOURCE + >ð1 || defšed +_XOPEN_SOURCE + + +221  + #__USE_POSIX + 1 + + ) + +224 #ià +defšed + +_POSIX_C_SOURCE + && _POSIX_C_SOURCE >ð2 || defšed +_XOPEN_SOURCE + + +225  + #__USE_POSIX2 + 1 + + ) + +228 #ià( +_POSIX_C_SOURCE + - 0) >= 199309L + +229  + #__USE_POSIX199309 + 1 + + ) + +232 #ià( +_POSIX_C_SOURCE + - 0) >= 199506L + +233  + #__USE_POSIX199506 + 1 + + ) + +236 #ià( +_POSIX_C_SOURCE + - 0) >= 200112L + +237  + #__USE_XOPEN2K + 1 + + ) + +238 #undeà +__USE_ISOC95 + + +239  + #__USE_ISOC95 + 1 + + ) + +240 #undeà +__USE_ISOC99 + + +241  + #__USE_ISOC99 + 1 + + ) + +244 #ià( +_POSIX_C_SOURCE + - 0) >= 200809L + +245  + #__USE_XOPEN2K8 + 1 + + ) + +246 #undeà +_ATFILE_SOURCE + + +247  + #_ATFILE_SOURCE + 1 + + ) + +250 #ifdef +_XOPEN_SOURCE + + +251  + #__USE_XOPEN + 1 + + ) + +252 #ià( +_XOPEN_SOURCE + - 0) >= 500 + +253  + #__USE_XOPEN_EXTENDED + 1 + + ) + +254  + #__USE_UNIX98 + 1 + + ) + +255 #undeà +_LARGEFILE_SOURCE + + +256  + #_LARGEFILE_SOURCE + 1 + + ) + +257 #ià( +_XOPEN_SOURCE + - 0) >= 600 + +258 #ià( +_XOPEN_SOURCE + - 0) >= 700 + +259  + #__USE_XOPEN2K8 + 1 + + ) + +260  + #__USE_XOPEN2K8XSI + 1 + + ) + +262  + #__USE_XOPEN2K + 1 + + ) + +263  + #__USE_XOPEN2KXSI + 1 + + ) + +264 #undeà +__USE_ISOC95 + + +265  + #__USE_ISOC95 + 1 + + ) + +266 #undeà +__USE_ISOC99 + + +267  + #__USE_ISOC99 + 1 + + ) + +270 #ifdeà +_XOPEN_SOURCE_EXTENDED + + +271  + #__USE_XOPEN_EXTENDED + 1 + + ) + +276 #ifdeà +_LARGEFILE_SOURCE + + +277  + #__USE_LARGEFILE + 1 + + ) + +280 #ifdeà +_LARGEFILE64_SOURCE + + +281  + #__USE_LARGEFILE64 + 1 + + ) + +284 #ià +defšed + +_FILE_OFFSET_BITS + && _FILE_OFFSET_BITS == 64 + +285  + #__USE_FILE_OFFSET64 + 1 + + ) + +288 #ià +defšed + +_BSD_SOURCE + || defšed +_SVID_SOURCE + + +289  + #__USE_MISC + 1 + + ) + +292 #ifdef +_BSD_SOURCE + + +293  + #__USE_BSD + 1 + + ) + +296 #ifdef +_SVID_SOURCE + + +297  + #__USE_SVID + 1 + + ) + +300 #ifdef +_ATFILE_SOURCE + + +301  + #__USE_ATFILE + 1 + + ) + +304 #ifdef +_GNU_SOURCE + + +305  + #__USE_GNU + 1 + + ) + +308 #ià +defšed + +_REENTRANT + || defšed +_THREAD_SAFE + + +309  + #__USE_REENTRANT + 1 + + ) + +312 #ià +defšed + +_FORTIFY_SOURCE + && _FORTIFY_SOURCE > 0 \ + +313 && +__GNUC_PREREQ + (4, 1è&& +defšed + + g__OPTIMIZE__ + && __OPTIMIZE__ > 0 + +314 #ià +_FORTIFY_SOURCE + > 1 + +315  + #__USE_FORTIFY_LEVEL + 2 + + ) + +317  + #__USE_FORTIFY_LEVEL + 1 + + ) + +320  + #__USE_FORTIFY_LEVEL + 0 + + ) + +324  + #__STDC_IEC_559__ + 1 + + ) + +325  + #__STDC_IEC_559_COMPLEX__ + 1 + + ) + +328  + #__STDC_ISO_10646__ + 200009L + + ) + +336 #undeà +__GNU_LIBRARY__ + + +337  + #__GNU_LIBRARY__ + 6 + + ) + +341  + #__GLIBC__ + 2 + + ) + +342  + #__GLIBC_MINOR__ + 14 + + ) + +344  + #__GLIBC_PREREQ +( +maj +, +mš +) \ + +345 (( +__GLIBC__ + << 16è+ +__GLIBC_MINOR__ + >ð(( +maj +è<< 16è+ ( +mš +)) + + ) + +348 #ià +defšed + +__GNUC__ + \ + +349 || ( +defšed + + g__PGI + && defšed + g__i386__ + ) \ + +350 || ( +defšed + + g__INTEL_COMPILER + && (defšed + g__i386__ + || defšed + g__Ÿ64__ +)) \ + +351 || ( +defšed + + g__STDC_VERSION__ + && __STDC_VERSION__ >= 199901L) + +352  + #__GLIBC_HAVE_LONG_LONG + 1 + + ) + +356 #iâdeà +__ASSEMBLER__ + + +357 #iâdeà +_SYS_CDEFS_H + + +358  + ~ + +363 #ià +defšed + +__USE_FILE_OFFSET64 + && !defšed +__REDIRECT + + +364  + #__USE_LARGEFILE + 1 + + ) + +365  + #__USE_LARGEFILE64 + 1 + + ) + +371 #ià +__GNUC_PREREQ + (2, 7è&& +defšed + +__OPTIMIZE__ + \ + +372 && ! +defšed + + g__OPTIMIZE_SIZE__ + && !defšed + g__NO_INLINE__ + \ + +373 && +defšed + + g__ex‹º_šlše + + +374  + #__USE_EXTERN_INLINES + 1 + + ) + +382  + ~ + + @/usr/include/getopt.h + +21 #iâdeà +_GETOPT_H + + +23 #iâdeà +__Ãed_g‘Ýt + + +24  + #_GETOPT_H + 1 + + ) + +34 #ià! +defšed + +__GNU_LIBRARY__ + + +35  + ~<ùy³.h +> + +38 #iâdeà +__THROW + + +39 #iâdeà +__GNUC_PREREQ + + +40  + #__GNUC_PREREQ +( +maj +, +mš +è(0) + + ) + +42 #ià +defšed + +__ýlu¥lus + && +__GNUC_PREREQ + (2,8) + +43  + #__THROW + + `throw + () + + ) + +45  + #__THROW + + + ) + +49 #ifdef +__ýlu¥lus + + +59 * +Ýrg +; + +73  +Ýtšd +; + +78  +Ý‹¼ +; + +82  +ÝtÝt +; + +84 #iâdeà +__Ãed_g‘Ýt + + +106  + sÝtiÚ + + +108 cÚ¡ * + gÇme +; + +111  + ghas_¬g +; + +112 * + gæag +; + +113  + gv® +; + +118  + #no_¬gum’t + 0 + + ) + +119  + #»quœed_¬gum’t + 1 + + ) + +120  + #ÝtiÚ®_¬gum’t + 2 + + ) + +148 #ifdeà +__GNU_LIBRARY__ + + +152  +g‘Ýt + ( +___¬gc +, *cÚ¡ * +___¬gv +, cÚ¡ * +__shÜtÝts +) + +153 +__THROW +; + +155 #ià +defšed + +__Ãed_g‘Ýt + && defšed +__USE_POSIX2 + \ + +156 && ! +defšed + + g__USE_POSIX_IMPLICITLY + && !defšed + g__USE_GNU + + +160 #ifdeà +__REDIRECT + + +161  +__REDIRECT_NTH + ( +g‘Ýt +, ( +___¬gc +, *cÚ¡ * +___¬gv +, + +162 cÚ¡ * +__shÜtÝts +), + +163 +__posix_g‘Ýt +); + +165  +__posix_g‘Ýt + ( +___¬gc +, *cÚ¡ * +___¬gv +, + +166 cÚ¡ * +__shÜtÝts +è +__THROW +; + +167  + #g‘Ýt + +__posix_g‘Ýt + + + ) + +171  +g‘Ýt + (); + +174 #iâdeà +__Ãed_g‘Ýt + + +175  +g‘Ýt_lÚg + ( +___¬gc +, *cÚ¡ * +___¬gv +, + +176 cÚ¡ * +__shÜtÝts +, + +177 cÚ¡  +ÝtiÚ + * +__lÚgÝts +, * +__lÚgšd +) + +178 +__THROW +; + +179  +g‘Ýt_lÚg_Úly + ( +___¬gc +, *cÚ¡ * +___¬gv +, + +180 cÚ¡ * +__shÜtÝts +, + +181 cÚ¡  +ÝtiÚ + * +__lÚgÝts +, * +__lÚgšd +) + +182 +__THROW +; + +186 #ifdef +__ýlu¥lus + + +191 #undeà +__Ãed_g‘Ýt + + + @/usr/include/libio.h + +29 #iâdeà +_IO_STDIO_H + + +30  + #_IO_STDIO_H + + + ) + +32  + ~<_G_cÚfig.h +> + +34  + #_IO_pos_t + +_G_åos_t + + + ) + +35  + #_IO_åos_t + +_G_åos_t + + + ) + +36  + #_IO_åos64_t + +_G_åos64_t + + + ) + +37  + #_IO_size_t + +_G_size_t + + + ) + +38  + #_IO_ssize_t + +_G_ssize_t + + + ) + +39  + #_IO_off_t + +_G_off_t + + + ) + +40  + #_IO_off64_t + +_G_off64_t + + + ) + +41  + #_IO_pid_t + +_G_pid_t + + + ) + +42  + #_IO_uid_t + +_G_uid_t + + + ) + +43  + #_IO_icÚv_t + +_G_icÚv_t + + + ) + +44  + #_IO_HAVE_SYS_WAIT + +_G_HAVE_SYS_WAIT + + + ) + +45  + #_IO_HAVE_ST_BLKSIZE + +_G_HAVE_ST_BLKSIZE + + + ) + +46  + #_IO_BUFSIZ + +_G_BUFSIZ + + + ) + +47  + #_IO_va_li¡ + +_G_va_li¡ + + + ) + +48  + #_IO_wšt_t + +_G_wšt_t + + + ) + +50 #ifdeà +_G_NEED_STDARG_H + + +52  + #__Ãed___va_li¡ + + + ) + +53  + ~<¡d¬g.h +> + +54 #ifdeà +__GNUC_VA_LIST + + +55 #undeà +_IO_va_li¡ + + +56  + #_IO_va_li¡ + +__gnuc_va_li¡ + + + ) + +60 #iâdeà +__P + + +61 #ià +_G_HAVE_SYS_CDEFS + + +62  + ~ + +64 #ifdeà +__STDC__ + + +65  + #__P +( +p +è + ) +p + +66  + #__PMT +( +p +è + ) +p + +68  + #__P +( +p +è() + + ) + +69  + #__PMT +( +p +è() + + ) + +75 #iâdeà +_PARAMS + + +76  + #_PARAMS +( +´Ùos +è + `__P +ÕrÙos) + + ) + +79 #iâdeà +__STDC__ + + +81 cÚ¡ + + ) + +84  + #_IO_UNIFIED_JUMPTABLES + 1 + + ) + +85 #iâdeà +_G_HAVE_PRINTF_FP + + +86  + #_IO_USE_DTOA + 1 + + ) + +89 #iâdeà +EOF + + +90  + #EOF + (-1) + + ) + +92 #iâdeà +NULL + + +93 #ià +defšed + +__GNUG__ + && \ + +94 ( + g__GNUC__ + > 2 || (__GNUC__ =ð2 && +__GNUC_MINOR__ + >= 8)) + +95  + #NULL + ( +__nuÎ +) + + ) + +97 #ià! +defšed +( +__ýlu¥lus +) + +98  + #NULL + ((*)0) + + ) + +100  + #NULL + (0) + + ) + +105  + #_IOS_INPUT + 1 + + ) + +106  + #_IOS_OUTPUT + 2 + + ) + +107  + #_IOS_ATEND + 4 + + ) + +108  + #_IOS_APPEND + 8 + + ) + +109  + #_IOS_TRUNC + 16 + + ) + +110  + #_IOS_NOCREATE + 32 + + ) + +111  + #_IOS_NOREPLACE + 64 + + ) + +112  + #_IOS_BIN + 128 + + ) + +120  + #_IO_MAGIC + 0xFBAD0000 + + ) + +121  + #_OLD_STDIO_MAGIC + 0xFABC0000 + + ) + +122  + #_IO_MAGIC_MASK + 0xFFFF0000 + + ) + +123  + #_IO_USER_BUF + 1 + + ) + +124  + #_IO_UNBUFFERED + 2 + + ) + +125  + #_IO_NO_READS + 4 + + ) + +126  + #_IO_NO_WRITES + 8 + + ) + +127  + #_IO_EOF_SEEN + 0x10 + + ) + +128  + #_IO_ERR_SEEN + 0x20 + + ) + +129  + #_IO_DELETE_DONT_CLOSE + 0x40 + + ) + +130  + #_IO_LINKED + 0x80 + + ) + +131  + #_IO_IN_BACKUP + 0x100 + + ) + +132  + #_IO_LINE_BUF + 0x200 + + ) + +133  + #_IO_TIED_PUT_GET + 0x400 + + ) + +134  + #_IO_CURRENTLY_PUTTING + 0x800 + + ) + +135  + #_IO_IS_APPENDING + 0x1000 + + ) + +136  + #_IO_IS_FILEBUF + 0x2000 + + ) + +137  + #_IO_BAD_SEEN + 0x4000 + + ) + +138  + #_IO_USER_LOCK + 0x8000 + + ) + +140  + #_IO_FLAGS2_MMAP + 1 + + ) + +141  + #_IO_FLAGS2_NOTCANCEL + 2 + + ) + +142 #ifdeà +_LIBC + + +143  + #_IO_FLAGS2_FORTIFY + 4 + + ) + +145  + #_IO_FLAGS2_USER_WBUF + 8 + + ) + +146 #ifdeà +_LIBC + + +147  + #_IO_FLAGS2_SCANF_STD + 16 + + ) + +148  + #_IO_FLAGS2_NOCLOSE + 32 + + ) + +149  + #_IO_FLAGS2_CLOEXEC + 64 + + ) + +153  + #_IO_SKIPWS + 01 + + ) + +154  + #_IO_LEFT + 02 + + ) + +155  + #_IO_RIGHT + 04 + + ) + +156  + #_IO_INTERNAL + 010 + + ) + +157  + #_IO_DEC + 020 + + ) + +158  + #_IO_OCT + 040 + + ) + +159  + #_IO_HEX + 0100 + + ) + +160  + #_IO_SHOWBASE + 0200 + + ) + +161  + #_IO_SHOWPOINT + 0400 + + ) + +162  + #_IO_UPPERCASE + 01000 + + ) + +163  + #_IO_SHOWPOS + 02000 + + ) + +164  + #_IO_SCIENTIFIC + 04000 + + ) + +165  + #_IO_FIXED + 010000 + + ) + +166  + #_IO_UNITBUF + 020000 + + ) + +167  + #_IO_STDIO + 040000 + + ) + +168  + #_IO_DONT_CLOSE + 0100000 + + ) + +169  + #_IO_BOOLALPHA + 0200000 + + ) + +172  +_IO_jump_t +;  + g_IO_FILE +; + +175 #ifdeà +_IO_MTSAFE_IO + + +176 #ià +defšed + +__GLIBC__ + && __GLIBC__ >= 2 + +177  + ~ + +182  + t_IO_lock_t +; + +188  + s_IO_m¬k” + { + +189  +_IO_m¬k” + * + m_Ãxt +; + +190  +_IO_FILE + * + m_sbuf +; + +194  + m_pos +; + +196  +£t_¡»ampos +( +¡»ampos + +¥ +è{ + m_¥os + = sp; } + +197  +£t_off£t +( +off£t +è{ + m_pos + = off£t; + m_¥os + = ( +¡»ampos +)(-2); } + +198 + mpublic +: + +199 +¡»amm¬k” +( +¡»ambuf + * +sb +); + +200 ~ +¡»amm¬k” +(); + +201  +§všg +(è{  + m_¥os + == -2; } + +202  +d– +( +¡»amm¬k” +&); + +203  +d– +(); + +208 + e__codecvt_»suÉ + + +210 + m__codecvt_ok +, + +211 + m__codecvt_·¹Ÿl +, + +212 + m__codecvt_”rÜ +, + +213 + m__codecvt_nocÚv + + +216 #ià +defšed + +_LIBC + || defšed +_GLIBCPP_USE_WCHAR_T + + +219  + s_IO_codecvt + + +221 (* + m__codecvt_de¡r +è( + m_IO_codecvt + *); + +222 +__codecvt_»suÉ + (* +__codecvt_do_out +è( + m_IO_codecvt + *, + +223 + m__mb¡©e_t + *, + +224 cÚ¡ + mwch¬_t + *, + +225 cÚ¡ + mwch¬_t + *, + +226 cÚ¡ + mwch¬_t + **, *, + +228 +__codecvt_»suÉ + (* +__codecvt_do_unshiá +è( + m_IO_codecvt + *, + +229 + m__mb¡©e_t + *, *, + +231 +__codecvt_»suÉ + (* +__codecvt_do_š +è( + m_IO_codecvt + *, + +232 + m__mb¡©e_t + *, + +234 cÚ¡ **, + mwch¬_t + *, + +235 + mwch¬_t + *, wchar_t **); + +236 (* + m__codecvt_do_’codšg +è( + m_IO_codecvt + *); + +237 (* + m__codecvt_do_®ways_nocÚv +è( + m_IO_codecvt + *); + +238 (* + m__codecvt_do_Ëngth +è( + m_IO_codecvt + *, + m__mb¡©e_t + *, + +239 cÚ¡ *, cÚ¡ *, + m_IO_size_t +); + +240 (* + m__codecvt_do_max_Ëngth +è( + m_IO_codecvt + *); + +242 +_IO_icÚv_t + + m__cd_š +; + +243 +_IO_icÚv_t + + m__cd_out +; + +247  + s_IO_wide_d©a + + +249 +wch¬_t + * + m_IO_»ad_±r +; + +250 +wch¬_t + * + m_IO_»ad_’d +; + +251 +wch¬_t + * + m_IO_»ad_ba£ +; + +252 +wch¬_t + * + m_IO_wr™e_ba£ +; + +253 +wch¬_t + * + m_IO_wr™e_±r +; + +254 +wch¬_t + * + m_IO_wr™e_’d +; + +255 +wch¬_t + * + m_IO_buf_ba£ +; + +256 +wch¬_t + * + m_IO_buf_’d +; + +258 +wch¬_t + * + m_IO_§ve_ba£ +; + +259 +wch¬_t + * + m_IO_backup_ba£ +; + +261 +wch¬_t + * + m_IO_§ve_’d +; + +263 +__mb¡©e_t + + m_IO_¡©e +; + +264 +__mb¡©e_t + + m_IO_Ï¡_¡©e +; + +265  +_IO_codecvt + + m_codecvt +; + +267 +wch¬_t + + m_shÜtbuf +[1]; + +269 cÚ¡  +_IO_jump_t + * + m_wide_vbË +; + +273  + s_IO_FILE + { + +274  + m_æags +; + +275  + #_IO_fže_æags + +_æags + + + ) + +279 * + m_IO_»ad_±r +; + +280 * + m_IO_»ad_’d +; + +281 * + m_IO_»ad_ba£ +; + +282 * + m_IO_wr™e_ba£ +; + +283 * + m_IO_wr™e_±r +; + +284 * + m_IO_wr™e_’d +; + +285 * + m_IO_buf_ba£ +; + +286 * + m_IO_buf_’d +; + +288 * + m_IO_§ve_ba£ +; + +289 * + m_IO_backup_ba£ +; + +290 * + m_IO_§ve_’d +; + +292  +_IO_m¬k” + * + m_m¬k”s +; + +294  +_IO_FILE + * + m_chaš +; + +296  + m_fž’o +; + +298  + m_blksize +; + +300  + m_æags2 +; + +302 +_IO_off_t + + m_Þd_off£t +; + +304  + #__HAVE_COLUMN + + + ) + +306  + m_cur_cÞumn +; + +307 sigÃd  + m_vbË_off£t +; + +308  + m_shÜtbuf +[1]; + +312 +_IO_lock_t + * + m_lock +; + +313 #ifdeà +_IO_USE_OLD_IO_FILE + + +316  + s_IO_FILE_com¶‘e + + +318  +_IO_FILE + + m_fže +; + +320 #ià +defšed + +_G_IO_IO_FILE_VERSION + && _G_IO_IO_FILE_VERSION == 0x20001 + +321 +_IO_off64_t + + m_off£t +; + +322 #ià +defšed + +_LIBC + || defšed +_GLIBCPP_USE_WCHAR_T + + +324  +_IO_codecvt + * + m_codecvt +; + +325  +_IO_wide_d©a + * + m_wide_d©a +; + +326  +_IO_FILE + * + m_ä“»s_li¡ +; + +327 * + m_ä“»s_buf +; + +328 +size_t + + m_ä“»s_size +; + +330 * + m__·d1 +; + +331 * + m__·d2 +; + +332 * + m__·d3 +; + +333 * + m__·d4 +; + +334 +size_t + + m__·d5 +; + +336  + m_mode +; + +338  + m_unu£d2 +[15 *  (è- 4 *  (*è-  ( +size_t +)]; + +342 #iâdeà +__ýlu¥lus + + +343  +_IO_FILE + + t_IO_FILE +; + +346  + g_IO_FILE_¶us +; + +348  +_IO_FILE_¶us + +_IO_2_1_¡dš_ +; + +349  +_IO_FILE_¶us + +_IO_2_1_¡dout_ +; + +350  +_IO_FILE_¶us + +_IO_2_1_¡d”r_ +; + +351 #iâdeà +_LIBC + + +352  + #_IO_¡dš + (( +_IO_FILE +*)(& +_IO_2_1_¡dš_ +)) + + ) + +353  + #_IO_¡dout + (( +_IO_FILE +*)(& +_IO_2_1_¡dout_ +)) + + ) + +354  + #_IO_¡d”r + (( +_IO_FILE +*)(& +_IO_2_1_¡d”r_ +)) + + ) + +356 +_IO_FILE + * +_IO_¡dš + +©Œibu‹_hidd’ +; + +357 +_IO_FILE + * +_IO_¡dout + +©Œibu‹_hidd’ +; + +358 +_IO_FILE + * +_IO_¡d”r + +©Œibu‹_hidd’ +; + +366  +__ssize_t + + t__io_»ad_â + (* + t__cook› +, * + t__buf +, + tsize_t + + t__nby‹s +); + +374  +__ssize_t + + t__io_wr™e_â + (* + t__cook› +, + t__cÚ¡ + * + t__buf +, + +375 + tsize_t + + t__n +); + +383  + t__io_£ek_â + (* + t__cook› +, + t_IO_off64_t + * + t__pos +,  + t__w +); + +386  + t__io_þo£_â + (* + t__cook› +); + +389 #ifdeà +_GNU_SOURCE + + +391  +__io_»ad_â + + tcook›_»ad_funùiÚ_t +; + +392  +__io_wr™e_â + + tcook›_wr™e_funùiÚ_t +; + +393  +__io_£ek_â + + tcook›_£ek_funùiÚ_t +; + +394  +__io_þo£_â + + tcook›_þo£_funùiÚ_t +; + +399 +__io_»ad_â + * + m»ad +; + +400 +__io_wr™e_â + * + mwr™e +; + +401 +__io_£ek_â + * + m£ek +; + +402 +__io_þo£_â + * + mþo£ +; + +403 } + t_IO_cook›_io_funùiÚs_t +; + +404  +_IO_cook›_io_funùiÚs_t + + tcook›_io_funùiÚs_t +; + +406  + g_IO_cook›_fže +; + +409  +_IO_cook›_š™ + ( +_IO_cook›_fže + * +__cfže +,  +__»ad_wr™e +, + +410 * +__cook› +, +_IO_cook›_io_funùiÚs_t + +__âs +); + +414 #ifdeà +__ýlu¥lus + + +418  +__und”æow + ( +_IO_FILE + *); + +419  +__uæow + ( +_IO_FILE + *); + +420  +__ov”æow + ( +_IO_FILE + *, ); + +421 #ià +defšed + +_LIBC + || defšed +_GLIBCPP_USE_WCHAR_T + + +422 +_IO_wšt_t + +__wund”æow + ( +_IO_FILE + *); + +423 +_IO_wšt_t + +__wuæow + ( +_IO_FILE + *); + +424 +_IO_wšt_t + +__wov”æow + ( +_IO_FILE + *, _IO_wint_t); + +427 #ià +__GNUC__ + >= 3 + +428  + #_IO_BE +( +ex´ +, +»s +è + `__bužtš_ex³ù + (Óx´),„es) + + ) + +430  + #_IO_BE +( +ex´ +, +»s +èÓx´) + + ) + +433  + #_IO_g‘c_uÆocked +( +_å +) \ + +434 ( + `_IO_BE + (( +_å +)-> +_IO_»ad_±r + >ð(_å)-> +_IO_»ad_’d +, 0) \ + +435 ? + `__uæow + ( +_å +è: *(*è(_å)-> +_IO_»ad_±r +++) + + ) + +436  + #_IO_³ekc_uÆocked +( +_å +) \ + +437 ( + `_IO_BE + (( +_å +)-> +_IO_»ad_±r + >ð(_å)-> +_IO_»ad_’d +, 0) \ + +438 && + `__und”æow + ( +_å +è=ð +EOF + ? EOF \ + +439 : *(*è( +_å +)-> +_IO_»ad_±r +) + + ) + +440  + #_IO_putc_uÆocked +( +_ch +, +_å +) \ + +441 ( + `_IO_BE + (( +_å +)-> +_IO_wr™e_±r + >ð(_å)-> +_IO_wr™e_’d +, 0) \ + +442 ? + `__ov”æow + ( +_å +, (è( +_ch +)) \ + +443 : (è(*( +_å +)-> +_IO_wr™e_±r +++ = ( +_ch +))) + + ) + +445 #ià +defšed + +_LIBC + || defšed +_GLIBCPP_USE_WCHAR_T + + +446  + #_IO_g‘wc_uÆocked +( +_å +) \ + +447 ( + `_IO_BE + (( +_å +)-> +_wide_d©a + =ð +NULL + \ + +448 || (( +_å +)-> +_wide_d©a +-> +_IO_»ad_±r + \ + +449 >ð( +_å +)-> +_wide_d©a +-> +_IO_»ad_’d +), 0) \ + +450 ? + `__wuæow + ( +_å +è: ( +_IO_wšt_t +è*(_å)-> +_wide_d©a +-> +_IO_»ad_±r +++) + + ) + +451  + #_IO_putwc_uÆocked +( +_wch +, +_å +) \ + +452 ( + `_IO_BE + (( +_å +)-> +_wide_d©a + =ð +NULL + \ + +453 || (( +_å +)-> +_wide_d©a +-> +_IO_wr™e_±r + \ + +454 >ð( +_å +)-> +_wide_d©a +-> +_IO_wr™e_’d +), 0) \ + +455 ? + `__wov”æow + ( +_å +, +_wch +) \ + +456 : ( +_IO_wšt_t +è(*( +_å +)-> +_wide_d©a +-> +_IO_wr™e_±r +++ = ( +_wch +))) + + ) + +459  + #_IO_ãof_uÆocked +( +__å +è(((__å)-> +_æags + & +_IO_EOF_SEEN +è!ð0) + + ) + +460  + #_IO_ã¼Ü_uÆocked +( +__å +è(((__å)-> +_æags + & +_IO_ERR_SEEN +è!ð0) + + ) + +462  +_IO_g‘c + ( +_IO_FILE + * +__å +); + +463  +_IO_putc + ( +__c +, +_IO_FILE + * +__å +); + +464  +_IO_ãof + ( +_IO_FILE + * +__å +è +__THROW +; + +465  +_IO_ã¼Ü + ( +_IO_FILE + * +__å +è +__THROW +; + +467  +_IO_³ekc_locked + ( +_IO_FILE + * +__å +); + +470  + #_IO_PENDING_OUTPUT_COUNT +( +_å +) \ + +471 (( +_å +)-> +_IO_wr™e_±r + - (_å)-> +_IO_wr™e_ba£ +) + + ) + +473  +_IO_æockfže + ( +_IO_FILE + *è +__THROW +; + +474  +_IO_fuÆockfže + ( +_IO_FILE + *è +__THROW +; + +475  +_IO_árylockfže + ( +_IO_FILE + *è +__THROW +; + +477 #ifdeà +_IO_MTSAFE_IO + + +478  + #_IO_³ekc +( +_å +è + `_IO_³ekc_locked + (_å) + + ) + +479  + #_IO_æockfže +( +_å +) \ + +480 ià((( +_å +)-> +_æags + & +_IO_USER_LOCK +è=ð0è + `_IO_æockfže + (_å) + + ) + +481  + #_IO_fuÆockfže +( +_å +) \ + +482 ià((( +_å +)-> +_æags + & +_IO_USER_LOCK +è=ð0è + `_IO_fuÆockfže + (_å) + + ) + +484  + #_IO_³ekc +( +_å +è + `_IO_³ekc_uÆocked + (_å) + + ) + +485  + #_IO_æockfže +( +_å +è + + ) + +486  + #_IO_fuÆockfže +( +_å +è + + ) + +487  + #_IO_árylockfže +( +_å +è + + ) + +488  + #_IO_þ—nup_»giÚ_¡¬t +( +_fù +, +_å +è + + ) + +489  + #_IO_þ—nup_»giÚ_’d +( +_Do™ +è + + ) + +492  +_IO_vfsÿnf + ( +_IO_FILE + * +__»¡riù +, const * __restrict, + +493 +_IO_va_li¡ +, * +__»¡riù +); + +494  +_IO_vårštf + ( +_IO_FILE + * +__»¡riù +, const *__restrict, + +495 +_IO_va_li¡ +); + +496 +_IO_ssize_t + +_IO_·dn + ( +_IO_FILE + *, , _IO_ssize_t); + +497 +_IO_size_t + +_IO_sg‘n + ( +_IO_FILE + *, *, _IO_size_t); + +499 +_IO_off64_t + +_IO_£ekoff + ( +_IO_FILE + *, _IO_off64_t, , ); + +500 +_IO_off64_t + +_IO_£ekpos + ( +_IO_FILE + *, _IO_off64_t, ); + +502  +_IO_ä“_backup_¬— + ( +_IO_FILE + *è +__THROW +; + +504 #ià +defšed + +_LIBC + || defšed +_GLIBCPP_USE_WCHAR_T + + +505 +_IO_wšt_t + +_IO_g‘wc + ( +_IO_FILE + * +__å +); + +506 +_IO_wšt_t + +_IO_putwc + ( +wch¬_t + +__wc +, +_IO_FILE + * +__å +); + +507  +_IO_fwide + ( +_IO_FILE + * +__å +,  +__mode +è +__THROW +; + +508 #ià +__GNUC__ + >= 2 + +511 #ià +defšed + +_LIBC + && defšed +SHARED + + +512  + ~ + +513 #ià +SHLIB_COMPAT + ( +libc +, +GLIBC_2_0 +, +GLIBC_2_1 +) + +514  + #_IO_fwide_maybe_šcom·tibË + \ + +515 ( + `__bužtš_ex³ù + (& +_IO_¡dš_u£d + =ð +NULL +, 0)) + + ) + +516 cÚ¡  +_IO_¡dš_u£d +; + +517 +w—k_ex‹º + ( +_IO_¡dš_u£d +); + +520 #iâdeà +_IO_fwide_maybe_šcom·tibË + + +521  + #_IO_fwide_maybe_šcom·tibË + (0) + + ) + +525  + #_IO_fwide +( +__å +, +__mode +) \ + +526 ({  +__»suÉ + = ( +__mode +); \ + +527 ià( +__»suÉ + < 0 && ! +_IO_fwide_maybe_šcom·tibË +) \ + +529 ià(( +__å +)-> +_mode + == 0) \ + +531 ( +__å +)-> +_mode + = -1; \ + +532 +__»suÉ + = ( +__å +)-> +_mode +; \ + +534 ià( + `__bužtš_cÚ¡ªt_p + ( +__mode +) && (__mode) == 0) \ + +535 +__»suÉ + = +_IO_fwide_maybe_šcom·tibË + ? -1 : ( +__å +)-> +_mode +; \ + +537 +__»suÉ + = + `_IO_fwide + ( +__å +, __result); \ + +538 +__»suÉ +; }) + + ) + +541  +_IO_vfwsÿnf + ( +_IO_FILE + * +__»¡riù +, cÚ¡ +wch¬_t + * __restrict, + +542 +_IO_va_li¡ +, * +__»¡riù +); + +543  +_IO_vfw´štf + ( +_IO_FILE + * +__»¡riù +, cÚ¡ +wch¬_t + *__restrict, + +544 +_IO_va_li¡ +); + +545 +_IO_ssize_t + +_IO_w·dn + ( +_IO_FILE + *, +wšt_t +, _IO_ssize_t); + +546  +_IO_ä“_wbackup_¬— + ( +_IO_FILE + *è +__THROW +; + +549 #ifdeà +__LDBL_COMPAT + + +550  + ~ + +553 #ifdeà +__ýlu¥lus + + + @/usr/include/stdint.h + +23 #iâdeà +_STDINT_H + + +24  + #_STDINT_H + 1 + + ) + +26  + ~<ã©u»s.h +> + +27  + ~ + +28  + ~ + +35 #iâdeà +__št8_t_defšed + + +36  + #__št8_t_defšed + + + ) + +37 sigÃd  + tšt8_t +; + +38  + tšt16_t +; + +39  + tšt32_t +; + +40 #ià +__WORDSIZE + == 64 + +41  + tšt64_t +; + +43 +__ex‹nsiÚ__ + + +44  + tšt64_t +; + +49  + tušt8_t +; + +50  + tušt16_t +; + +51 #iâdeà +__ušt32_t_defšed + + +52  + tušt32_t +; + +53  + #__ušt32_t_defšed + + + ) + +55 #ià +__WORDSIZE + == 64 + +56  + tušt64_t +; + +58 +__ex‹nsiÚ__ + + +59  + tušt64_t +; + +66 sigÃd  + tšt_Ëa¡8_t +; + +67  + tšt_Ëa¡16_t +; + +68  + tšt_Ëa¡32_t +; + +69 #ià +__WORDSIZE + == 64 + +70  + tšt_Ëa¡64_t +; + +72 +__ex‹nsiÚ__ + + +73  + tšt_Ëa¡64_t +; + +77  + tušt_Ëa¡8_t +; + +78  + tušt_Ëa¡16_t +; + +79  + tušt_Ëa¡32_t +; + +80 #ià +__WORDSIZE + == 64 + +81  + tušt_Ëa¡64_t +; + +83 +__ex‹nsiÚ__ + + +84  + tušt_Ëa¡64_t +; + +91 sigÃd  + tšt_ç¡8_t +; + +92 #ià +__WORDSIZE + == 64 + +93  + tšt_ç¡16_t +; + +94  + tšt_ç¡32_t +; + +95  + tšt_ç¡64_t +; + +97  + tšt_ç¡16_t +; + +98  + tšt_ç¡32_t +; + +99 +__ex‹nsiÚ__ + + +100  + tšt_ç¡64_t +; + +104  + tušt_ç¡8_t +; + +105 #ià +__WORDSIZE + == 64 + +106  + tušt_ç¡16_t +; + +107  + tušt_ç¡32_t +; + +108  + tušt_ç¡64_t +; + +110  + tušt_ç¡16_t +; + +111  + tušt_ç¡32_t +; + +112 +__ex‹nsiÚ__ + + +113  + tušt_ç¡64_t +; + +118 #ià +__WORDSIZE + == 64 + +119 #iâdeà +__šŒ_t_defšed + + +120  + tšŒ_t +; + +121  + #__šŒ_t_defšed + + + ) + +123  + tušŒ_t +; + +125 #iâdeà +__šŒ_t_defšed + + +126  + tšŒ_t +; + +127  + #__šŒ_t_defšed + + + ) + +129  + tušŒ_t +; + +134 #ià +__WORDSIZE + == 64 + +135  + tštmax_t +; + +136  + tuštmax_t +; + +138 +__ex‹nsiÚ__ + + +139  + tštmax_t +; + +140 +__ex‹nsiÚ__ + + +141  + tuštmax_t +; + +147 #ià! +defšed + +__ýlu¥lus + || defšed +__STDC_LIMIT_MACROS + + +149 #ià +__WORDSIZE + == 64 + +150  + #__INT64_C +( +c +èø## +L + + + ) + +151  + #__UINT64_C +( +c +èø## +UL + + + ) + +153  + #__INT64_C +( +c +èø## +LL + + + ) + +154  + #__UINT64_C +( +c +èø## +ULL + + + ) + +160  + #INT8_MIN + (-128) + + ) + +161  + #INT16_MIN + (-32767-1) + + ) + +162  + #INT32_MIN + (-2147483647-1) + + ) + +163  + #INT64_MIN + (- + `__INT64_C +(9223372036854775807)-1) + + ) + +165  + #INT8_MAX + (127) + + ) + +166  + #INT16_MAX + (32767) + + ) + +167  + #INT32_MAX + (2147483647) + + ) + +168  + #INT64_MAX + ( + `__INT64_C +(9223372036854775807)) + + ) + +171  + #UINT8_MAX + (255) + + ) + +172  + #UINT16_MAX + (65535) + + ) + +173  + #UINT32_MAX + (4294967295U) + + ) + +174  + #UINT64_MAX + ( + `__UINT64_C +(18446744073709551615)) + + ) + +178  + #INT_LEAST8_MIN + (-128) + + ) + +179  + #INT_LEAST16_MIN + (-32767-1) + + ) + +180  + #INT_LEAST32_MIN + (-2147483647-1) + + ) + +181  + #INT_LEAST64_MIN + (- + `__INT64_C +(9223372036854775807)-1) + + ) + +183  + #INT_LEAST8_MAX + (127) + + ) + +184  + #INT_LEAST16_MAX + (32767) + + ) + +185  + #INT_LEAST32_MAX + (2147483647) + + ) + +186  + #INT_LEAST64_MAX + ( + `__INT64_C +(9223372036854775807)) + + ) + +189  + #UINT_LEAST8_MAX + (255) + + ) + +190  + #UINT_LEAST16_MAX + (65535) + + ) + +191  + #UINT_LEAST32_MAX + (4294967295U) + + ) + +192  + #UINT_LEAST64_MAX + ( + `__UINT64_C +(18446744073709551615)) + + ) + +196  + #INT_FAST8_MIN + (-128) + + ) + +197 #ià +__WORDSIZE + == 64 + +198  + #INT_FAST16_MIN + (-9223372036854775807L-1) + + ) + +199  + #INT_FAST32_MIN + (-9223372036854775807L-1) + + ) + +201  + #INT_FAST16_MIN + (-2147483647-1) + + ) + +202  + #INT_FAST32_MIN + (-2147483647-1) + + ) + +204  + #INT_FAST64_MIN + (- + `__INT64_C +(9223372036854775807)-1) + + ) + +206  + #INT_FAST8_MAX + (127) + + ) + +207 #ià +__WORDSIZE + == 64 + +208  + #INT_FAST16_MAX + (9223372036854775807L) + + ) + +209  + #INT_FAST32_MAX + (9223372036854775807L) + + ) + +211  + #INT_FAST16_MAX + (2147483647) + + ) + +212  + #INT_FAST32_MAX + (2147483647) + + ) + +214  + #INT_FAST64_MAX + ( + `__INT64_C +(9223372036854775807)) + + ) + +217  + #UINT_FAST8_MAX + (255) + + ) + +218 #ià +__WORDSIZE + == 64 + +219  + #UINT_FAST16_MAX + (18446744073709551615UL) + + ) + +220  + #UINT_FAST32_MAX + (18446744073709551615UL) + + ) + +222  + #UINT_FAST16_MAX + (4294967295U) + + ) + +223  + #UINT_FAST32_MAX + (4294967295U) + + ) + +225  + #UINT_FAST64_MAX + ( + `__UINT64_C +(18446744073709551615)) + + ) + +229 #ià +__WORDSIZE + == 64 + +230  + #INTPTR_MIN + (-9223372036854775807L-1) + + ) + +231  + #INTPTR_MAX + (9223372036854775807L) + + ) + +232  + #UINTPTR_MAX + (18446744073709551615UL) + + ) + +234  + #INTPTR_MIN + (-2147483647-1) + + ) + +235  + #INTPTR_MAX + (2147483647) + + ) + +236  + #UINTPTR_MAX + (4294967295U) + + ) + +241  + #INTMAX_MIN + (- + `__INT64_C +(9223372036854775807)-1) + + ) + +243  + #INTMAX_MAX + ( + `__INT64_C +(9223372036854775807)) + + ) + +246  + #UINTMAX_MAX + ( + `__UINT64_C +(18446744073709551615)) + + ) + +252 #ià +__WORDSIZE + == 64 + +253  + #PTRDIFF_MIN + (-9223372036854775807L-1) + + ) + +254  + #PTRDIFF_MAX + (9223372036854775807L) + + ) + +256  + #PTRDIFF_MIN + (-2147483647-1) + + ) + +257  + #PTRDIFF_MAX + (2147483647) + + ) + +261  + #SIG_ATOMIC_MIN + (-2147483647-1) + + ) + +262  + #SIG_ATOMIC_MAX + (2147483647) + + ) + +265 #ià +__WORDSIZE + == 64 + +266  + #SIZE_MAX + (18446744073709551615UL) + + ) + +268  + #SIZE_MAX + (4294967295U) + + ) + +272 #iâdeà +WCHAR_MIN + + +274  + #WCHAR_MIN + +__WCHAR_MIN + + + ) + +275  + #WCHAR_MAX + +__WCHAR_MAX + + + ) + +279  + #WINT_MIN + (0u) + + ) + +280  + #WINT_MAX + (4294967295u) + + ) + +287 #ià! +defšed + +__ýlu¥lus + || defšed +__STDC_CONSTANT_MACROS + + +290  + #INT8_C +( +c +è + ) +c + +291  + #INT16_C +( +c +è + ) +c + +292  + #INT32_C +( +c +è + ) +c + +293 #ià +__WORDSIZE + == 64 + +294  + #INT64_C +( +c +èø## +L + + + ) + +296  + #INT64_C +( +c +èø## +LL + + + ) + +300  + #UINT8_C +( +c +è + ) +c + +301  + #UINT16_C +( +c +è + ) +c + +302  + #UINT32_C +( +c +èø## +U + + + ) + +303 #ià +__WORDSIZE + == 64 + +304  + #UINT64_C +( +c +èø## +UL + + + ) + +306  + #UINT64_C +( +c +èø## +ULL + + + ) + +310 #ià +__WORDSIZE + == 64 + +311  + #INTMAX_C +( +c +èø## +L + + + ) + +312  + #UINTMAX_C +( +c +èø## +UL + + + ) + +314  + #INTMAX_C +( +c +èø## +LL + + + ) + +315  + #UINTMAX_C +( +c +èø## +ULL + + + ) + + @/usr/include/strings.h + +20 #iâdef +_STRINGS_H + + +21  + #_STRINGS_H + 1 + + ) + +26 #ià! +defšed + +_STRING_H + || !defšed +__USE_BSD + + +28  + ~<ã©u»s.h +> + +29  + #__Ãed_size_t + + + ) + +30  + ~<¡ddef.h +> + +33 #ià +defšed + +__ýlu¥lus + && +__GNUC_PREREQ + (4, 4) + +34  + #__CORRECT_ISO_CPP_STRINGS_H_PROTO + + + ) + +37 + g__BEGIN_DECLS + + +39 #ià +defšed + +__USE_MISC + || !defšed +__USE_XOPEN2K8 + + +41  + $bcmp + ( +__cÚ¡ + * +__s1 +, __cÚ¡ * +__s2 +, +size_t + +__n +) + +42 +__THROW + +__©Œibu‹_pu»__ +; + +45  + $bcÝy + ( +__cÚ¡ + * +__¤c +, * +__de¡ +, +size_t + +__n +è +__THROW +; + +48  + $bz”o + (* +__s +, +size_t + +__n +è +__THROW +; + +51 #ifdeà +__CORRECT_ISO_CPP_STRINGS_H_PROTO + + +54 * + `šdex + (* +__s +,  +__c +) + +55 +__THROW + + `__asm + ("šdex"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +56 +__cÚ¡ + * + `šdex + (__cÚ¡ * +__s +,  +__c +) + +57 +__THROW + + `__asm + ("šdex"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +59 #ià +defšed + +__OPTIMIZE__ + && !defšed +__CORRECT_ISO_CPP_STRING_H_PROTO + + +60 +__ex‹º_®ways_šlše + * + +61 + `šdex + (* +__s +,  +__c +è +__THROW + + +63  + `__bužtš_šdex + ( +__s +, +__c +); + +66 +__ex‹º_®ways_šlše + +__cÚ¡ + * + +67 + `šdex + ( +__cÚ¡ + * +__s +,  +__c +è +__THROW + + +69  + `__bužtš_šdex + ( +__s +, +__c +); + +72 + } +} + +74 * + $šdex + ( +__cÚ¡ + * +__s +,  +__c +) + +75 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +79 #ifdeà +__CORRECT_ISO_CPP_STRINGS_H_PROTO + + +82 * + `ršdex + (* +__s +,  +__c +) + +83 +__THROW + + `__asm + ("ršdex"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +84 +__cÚ¡ + * + `ršdex + (__cÚ¡ * +__s +,  +__c +) + +85 +__THROW + + `__asm + ("ršdex"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +87 #ià +defšed + +__OPTIMIZE__ + && !defšed +__CORRECT_ISO_CPP_STRING_H_PROTO + + +88 +__ex‹º_®ways_šlše + * + +89 + `ršdex + (* +__s +,  +__c +è +__THROW + + +91  + `__bužtš_ršdex + ( +__s +, +__c +); + +94 +__ex‹º_®ways_šlše + +__cÚ¡ + * + +95 + `ršdex + ( +__cÚ¡ + * +__s +,  +__c +è +__THROW + + +97  + `__bužtš_ršdex + ( +__s +, +__c +); + +100 + } +} + +102 * + $ršdex + ( +__cÚ¡ + * +__s +,  +__c +) + +103 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +107 #ià +defšed + +__USE_MISC + || !defšed +__USE_XOPEN2K8 + || defšed +__USE_XOPEN2K8XSI + + +110  + $ffs + ( +__i +è +__THROW + + `__©Œibu‹__ + ((const)); + +114  + $¡rÿ£cmp + ( +__cÚ¡ + * +__s1 +, __cÚ¡ * +__s2 +) + +115 +__THROW + +__©Œibu‹_pu»__ +; + +118  + $¡ºÿ£cmp + ( +__cÚ¡ + * +__s1 +, __cÚ¡ * +__s2 +, +size_t + +__n +) + +119 +__THROW + +__©Œibu‹_pu»__ +; + +121 #ifdef +__USE_XOPEN2K8 + + +125  + ~ + +129  + $¡rÿ£cmp_l + ( +__cÚ¡ + * +__s1 +, __cÚ¡ * +__s2 +, + +130 +__loÿË_t + +__loc +) + +131 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2, 3)); + +133  + $¡ºÿ£cmp_l + ( +__cÚ¡ + * +__s1 +, __cÚ¡ * +__s2 +, + +134 +size_t + +__n +, +__loÿË_t + +__loc +) + +135 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2, 4)); + +138 +__END_DECLS + + + @/usr/include/sys/file.h + +19 #iâdef +_SYS_FILE_H + + +20  + #_SYS_FILE_H + 1 + + ) + +22  + ~<ã©u»s.h +> + +24 #iâdef +_FCNTL_H + + +25  + ~ + +28 + g__BEGIN_DECLS + + +33 #iâdeà +L_SET + + +34  + #L_SET + 0 + + ) + +35  + #L_INCR + 1 + + ) + +36  + #L_XTND + 2 + + ) + +41  + #LOCK_SH + 1 + + ) + +42  + #LOCK_EX + 2 + + ) + +43  + #LOCK_UN + 8 + + ) + +46  + #LOCK_NB + 4 + + ) + +51  + $æock + ( +__fd +,  +__Ý”©iÚ +è +__THROW +; + +54 +__END_DECLS + + + @/usr/include/sys/time.h + +20 #iâdeà +_SYS_TIME_H + + +21  + #_SYS_TIME_H + 1 + + ) + +23  + ~<ã©u»s.h +> + +25  + ~ + +26  + #__Ãed_time_t + + + ) + +27  + ~ + +28  + #__Ãed_timev® + + + ) + +29  + ~ + +31  + ~ + +33 #iâdeà +__su£cÚds_t_defšed + + +34  +__su£cÚds_t + + tsu£cÚds_t +; + +35  + #__su£cÚds_t_defšed + + + ) + +39 + g__BEGIN_DECLS + + +41 #ifdeà +__USE_GNU + + +43  + #TIMEVAL_TO_TIMESPEC +( +tv +, +ts +) { \ + +44 ( +ts +)-> +tv_£c + = ( +tv +)->tv_sec; \ + +45 ( +ts +)-> +tv_n£c + = ( +tv +)-> +tv_u£c + * 1000; \ + +46 } + + ) + +47  + #TIMESPEC_TO_TIMEVAL +( +tv +, +ts +) { \ + +48 ( +tv +)-> +tv_£c + = ( +ts +)->tv_sec; \ + +49 ( +tv +)-> +tv_u£c + = ( +ts +)-> +tv_n£c + / 1000; \ + +50 } + + ) + +54 #ifdeà +__USE_BSD + + +57  + stimezÚe + + +59  + mtz_mšu‹swe¡ +; + +60  + mtz_d¡time +; + +63  +timezÚe + * + t__»¡riù + + t__timezÚe_±r_t +; + +65 * + t__»¡riù + + t__timezÚe_±r_t +; + +73  + $g‘timeofday + ( +timev® + * +__»¡riù + +__tv +, + +74 +__timezÚe_±r_t + +__tz +è +__THROW + + `__nÚnuÎ + ((1)); + +76 #ifdeà +__USE_BSD + + +79  + $£‰imeofday + ( +__cÚ¡ +  +timev® + * +__tv +, + +80 +__cÚ¡ +  +timezÚe + * +__tz +) + +81 +__THROW + + `__nÚnuÎ + ((1)); + +87  + $adjtime + ( +__cÚ¡ +  +timev® + * +__d– +, + +88  +timev® + * +__Þdd– +è +__THROW +; + +93 + e__™im”_which + + +96 +ITIMER_REAL + = 0, + +97  + #ITIMER_REAL + +ITIMER_REAL + + + ) + +99 +ITIMER_VIRTUAL + = 1, + +100  + #ITIMER_VIRTUAL + +ITIMER_VIRTUAL + + + ) + +103 +ITIMER_PROF + = 2 + +104  + #ITIMER_PROF + +ITIMER_PROF + + + ) + +109  + s™im”v® + + +112  +timev® + +™_š‹rv® +; + +114  +timev® + +™_v®ue +; + +117 #ià +defšed + +__USE_GNU + && !defšed +__ýlu¥lus + + +120  +__™im”_which + + t__™im”_which_t +; + +122  + t__™im”_which_t +; + +127  + $g‘™im” + ( +__™im”_which_t + +__which +, + +128  +™im”v® + * +__v®ue +è +__THROW +; + +133  + $£t™im” + ( +__™im”_which_t + +__which +, + +134 +__cÚ¡ +  +™im”v® + * +__»¡riù + +__Ãw +, + +135  +™im”v® + * +__»¡riù + +__Þd +è +__THROW +; + +140  + $utimes + ( +__cÚ¡ + * +__fže +, __cÚ¡  +timev® + +__tvp +[2]) + +141 +__THROW + + `__nÚnuÎ + ((1)); + +143 #ifdeà +__USE_BSD + + +145  + $lutimes + ( +__cÚ¡ + * +__fže +, __cÚ¡  +timev® + +__tvp +[2]) + +146 +__THROW + + `__nÚnuÎ + ((1)); + +149  + $futimes + ( +__fd +, +__cÚ¡ +  +timev® + +__tvp +[2]è +__THROW +; + +152 #ifdeà +__USE_GNU + + +156  + $futime§t + ( +__fd +, +__cÚ¡ + * +__fže +, + +157 +__cÚ¡ +  +timev® + +__tvp +[2]è +__THROW +; + +161 #ifdeà +__USE_BSD + + +164  + #tim”is£t +( +tvp +è(Ñvp)-> +tv_£c + || (tvp)-> +tv_u£c +) + + ) + +165  + #tim”þ—r +( +tvp +è(Ñvp)-> +tv_£c + = (tvp)-> +tv_u£c + = 0) + + ) + +166  + #tim”cmp +( +a +, +b +, +CMP +) \ + +167 ((( +a +)-> +tv_£c + =ð( +b +)->tv_sec) ? \ + +168 (( +a +)-> +tv_u£c + + `CMP + ( +b +)->tv_usec) : \ + +169 (( +a +)-> +tv_£c + + `CMP + ( +b +)->tv_£c)) + + ) + +170  + #tim”add +( +a +, +b +, +»suÉ +) \ + +172 ( +»suÉ +)-> +tv_£c + = ( +a +)->tv_£ø+ ( +b +)->tv_sec; \ + +173 ( +»suÉ +)-> +tv_u£c + = ( +a +)->tv_u£ø+ ( +b +)->tv_usec; \ + +174 ià(( +»suÉ +)-> +tv_u£c + >= 1000000) \ + +176 ++( +»suÉ +)-> +tv_£c +; \ + +177 ( +»suÉ +)-> +tv_u£c + -= 1000000; \ + +179 + } +} 0) + + ) + +180  + #tim”sub +( +a +, +b +, +»suÉ +) \ + +182 ( +»suÉ +)-> +tv_£c + = ( +a +)->tv_£ø- ( +b +)->tv_sec; \ + +183 ( +»suÉ +)-> +tv_u£c + = ( +a +)->tv_u£ø- ( +b +)->tv_usec; \ + +184 ià(( +»suÉ +)-> +tv_u£c + < 0) { \ + +185 --( +»suÉ +)-> +tv_£c +; \ + +186 ( +»suÉ +)-> +tv_u£c + += 1000000; \ + +188 } 0) + + ) + +191 + g__END_DECLS + + + @/usr/include/sys/timeb.h + +19 #iâdeà +_SYS_TIMEB_H + + +20  + #_SYS_TIMEB_H + 1 + + ) + +22  + ~<ã©u»s.h +> + +24  + #__Ãed_time_t + + + ) + +25  + ~ + +28 +__BEGIN_DECLS + + +32  + stimeb + + +34 +time_t + + mtime +; + +35  + mmžl™m +; + +36  + mtimezÚe +; + +37  + md¡æag +; + +42  +áime + ( +timeb + * +__timebuf +); + +44 + g__END_DECLS + + + @/usr/include/sys/types.h + +23 #iâdef +_SYS_TYPES_H + + +24  + #_SYS_TYPES_H + 1 + + ) + +26  + ~<ã©u»s.h +> + +28 + g__BEGIN_DECLS + + +30  + ~ + +32 #ifdef +__USE_BSD + + +33 #iâdeà +__u_ch¬_defšed + + +34  +__u_ch¬ + + tu_ch¬ +; + +35  +__u_shÜt + + tu_shÜt +; + +36  +__u_št + + tu_št +; + +37  +__u_lÚg + + tu_lÚg +; + +38  +__quad_t + + tquad_t +; + +39  +__u_quad_t + + tu_quad_t +; + +40  +__fsid_t + + tfsid_t +; + +41  + #__u_ch¬_defšed + + + ) + +45  +__loff_t + + tloff_t +; + +47 #iâdeà +__šo_t_defšed + + +48 #iâdeà +__USE_FILE_OFFSET64 + + +49  +__šo_t + + tšo_t +; + +51  +__šo64_t + + tšo_t +; + +53  + #__šo_t_defšed + + + ) + +55 #ià +defšed + +__USE_LARGEFILE64 + && !defšed +__šo64_t_defšed + + +56  +__šo64_t + + tšo64_t +; + +57  + #__šo64_t_defšed + + + ) + +60 #iâdeà +__dev_t_defšed + + +61  +__dev_t + + tdev_t +; + +62  + #__dev_t_defšed + + + ) + +65 #iâdeà +__gid_t_defšed + + +66  +__gid_t + + tgid_t +; + +67  + #__gid_t_defšed + + + ) + +70 #iâdeà +__mode_t_defšed + + +71  +__mode_t + + tmode_t +; + +72  + #__mode_t_defšed + + + ) + +75 #iâdeà +__Æšk_t_defšed + + +76  +__Æšk_t + + tÆšk_t +; + +77  + #__Æšk_t_defšed + + + ) + +80 #iâdeà +__uid_t_defšed + + +81  +__uid_t + + tuid_t +; + +82  + #__uid_t_defšed + + + ) + +85 #iâdeà +__off_t_defšed + + +86 #iâdeà +__USE_FILE_OFFSET64 + + +87  +__off_t + + toff_t +; + +89  +__off64_t + + toff_t +; + +91  + #__off_t_defšed + + + ) + +93 #ià +defšed + +__USE_LARGEFILE64 + && !defšed +__off64_t_defšed + + +94  +__off64_t + + toff64_t +; + +95  + #__off64_t_defšed + + + ) + +98 #iâdeà +__pid_t_defšed + + +99  +__pid_t + + tpid_t +; + +100  + #__pid_t_defšed + + + ) + +103 #ià( +defšed + +__USE_SVID + || defšed +__USE_XOPEN + || defšed +__USE_XOPEN2K8 +) \ + +104 && ! +defšed + +__id_t_defšed + + +105  +__id_t + + tid_t +; + +106  + #__id_t_defšed + + + ) + +109 #iâdeà +__ssize_t_defšed + + +110  +__ssize_t + + tssize_t +; + +111  + #__ssize_t_defšed + + + ) + +114 #ifdef +__USE_BSD + + +115 #iâdeà +__daddr_t_defšed + + +116  +__daddr_t + + tdaddr_t +; + +117  +__ÿddr_t + + tÿddr_t +; + +118  + #__daddr_t_defšed + + + ) + +122 #ià( +defšed + +__USE_SVID + || defšed +__USE_XOPEN +è&& !defšed +__key_t_defšed + + +123  +__key_t + + tkey_t +; + +124  + #__key_t_defšed + + + ) + +127 #ià +defšed + +__USE_XOPEN + || defšed +__USE_XOPEN2K8 + + +128  + #__Ãed_þock_t + + + ) + +130  + #__Ãed_time_t + + + ) + +131  + #__Ãed_tim”_t + + + ) + +132  + #__Ãed_þockid_t + + + ) + +133  + ~ + +135 #ifdeà +__USE_XOPEN + + +136 #iâdeà +__u£cÚds_t_defšed + + +137  +__u£cÚds_t + + tu£cÚds_t +; + +138  + #__u£cÚds_t_defšed + + + ) + +140 #iâdeà +__su£cÚds_t_defšed + + +141  +__su£cÚds_t + + tsu£cÚds_t +; + +142  + #__su£cÚds_t_defšed + + + ) + +146  + #__Ãed_size_t + + + ) + +147  + ~<¡ddef.h +> + +149 #ifdeà +__USE_MISC + + +151  + tulÚg +; + +152  + tushÜt +; + +153  + tušt +; + +158 #ià! +__GNUC_PREREQ + (2, 7) + +161 #iâdeà +__št8_t_defšed + + +162  + #__št8_t_defšed + + + ) + +163  + tšt8_t +; + +164  + tšt16_t +; + +165  + tšt32_t +; + +166 #ià +__WORDSIZE + == 64 + +167  + tšt64_t +; + +168 #–ià +__GLIBC_HAVE_LONG_LONG + + +169 +__ex‹nsiÚ__ +  + tšt64_t +; + +174  + tu_št8_t +; + +175  + tu_št16_t +; + +176  + tu_št32_t +; + +177 #ià +__WORDSIZE + == 64 + +178  + tu_št64_t +; + +179 #–ià +__GLIBC_HAVE_LONG_LONG + + +180 +__ex‹nsiÚ__ +  + tu_št64_t +; + +183  + t»gi¡”_t +; + +188  + #__štN_t +( +N +, +MODE +) \ + +189 ## + tN +## + t_t + + t__©Œibu‹__ + (( + t__mode__ + ( + tMODE +))) + + ) + +190  + t__u_štN_t +( + tN +, + tMODE +) \ + +191  + tu_št +## + tN +## + t_t + + t__©Œibu‹__ + (( + t__mode__ + ( + tMODE +))) + + ) + +193 #iâdeà + t__št8_t_defšed + + +194  + t__št8_t_defšed + + + ) + +195 + t__štN_t + (8, + t__QI__ +); + +196 +__štN_t + (16, +__HI__ +); + +197 +__štN_t + (32, +__SI__ +); + +198 +__štN_t + (64, +__DI__ +); + +201 +__u_štN_t + (8, +__QI__ +); + +202 +__u_štN_t + (16, +__HI__ +); + +203 +__u_štN_t + (32, +__SI__ +); + +204 +__u_štN_t + (64, +__DI__ +); + +206  + t»gi¡”_t + + t__©Œibu‹__ + (( + t__mode__ + ( + t__wÜd__ +))); + +212  + #__BIT_TYPES_DEFINED__ + 1 + + ) + +215 #ifdef +__USE_BSD + + +217  + ~<’dŸn.h +> + +220  + ~ + +223  + ~ + +227 #ià( +defšed + +__USE_UNIX98 + || defšed +__USE_XOPEN2K8 +) \ + +228 && ! +defšed + +__blksize_t_defšed + + +229  +__blksize_t + + tblksize_t +; + +230  + #__blksize_t_defšed + + + ) + +234 #iâdeà +__USE_FILE_OFFSET64 + + +235 #iâdeà +__blkút_t_defšed + + +236  +__blkút_t + + tblkút_t +; + +237  + #__blkút_t_defšed + + + ) + +239 #iâdeà +__fsblkút_t_defšed + + +240  +__fsblkút_t + + tfsblkút_t +; + +241  + #__fsblkút_t_defšed + + + ) + +243 #iâdeà +__fsfžút_t_defšed + + +244  +__fsfžút_t + + tfsfžút_t +; + +245  + #__fsfžút_t_defšed + + + ) + +248 #iâdeà +__blkút_t_defšed + + +249  +__blkút64_t + + tblkút_t +; + +250  + #__blkút_t_defšed + + + ) + +252 #iâdeà +__fsblkút_t_defšed + + +253  +__fsblkút64_t + + tfsblkút_t +; + +254  + #__fsblkút_t_defšed + + + ) + +256 #iâdeà +__fsfžút_t_defšed + + +257  +__fsfžút64_t + + tfsfžút_t +; + +258  + #__fsfžút_t_defšed + + + ) + +262 #ifdeà +__USE_LARGEFILE64 + + +263  +__blkút64_t + + tblkút64_t +; + +264  +__fsblkút64_t + + tfsblkút64_t +; + +265  +__fsfžút64_t + + tfsfžút64_t +; + +270 #ià +defšed + +__USE_POSIX199506 + || defšed +__USE_UNIX98 + + +271  + ~ + +274 + g__END_DECLS + + + @/usr/include/sys/ucontext.h + +19 #iâdeà +_SYS_UCONTEXT_H + + +20  + #_SYS_UCONTEXT_H + 1 + + ) + +22  + ~<ã©u»s.h +> + +23  + ~ + +24  + ~ + +28  + ~ + +30 #ià +__WORDSIZE + == 64 + +33  + tg»g_t +; + +36  + #NGREG + 23 + + ) + +39  +g»g_t + + tg»g£t_t +[ +NGREG +]; + +41 #ifdeà +__USE_GNU + + +45 + mREG_R8 + = 0, + +46  + #REG_R8 + +REG_R8 + + + ) + +47 + mREG_R9 +, + +48  + #REG_R9 + +REG_R9 + + + ) + +49 + mREG_R10 +, + +50  + #REG_R10 + +REG_R10 + + + ) + +51 + mREG_R11 +, + +52  + #REG_R11 + +REG_R11 + + + ) + +53 + mREG_R12 +, + +54  + #REG_R12 + +REG_R12 + + + ) + +55 + mREG_R13 +, + +56  + #REG_R13 + +REG_R13 + + + ) + +57 + mREG_R14 +, + +58  + #REG_R14 + +REG_R14 + + + ) + +59 + mREG_R15 +, + +60  + #REG_R15 + +REG_R15 + + + ) + +61 + mREG_RDI +, + +62  + #REG_RDI + +REG_RDI + + + ) + +63 + mREG_RSI +, + +64  + #REG_RSI + +REG_RSI + + + ) + +65 + mREG_RBP +, + +66  + #REG_RBP + +REG_RBP + + + ) + +67 + mREG_RBX +, + +68  + #REG_RBX + +REG_RBX + + + ) + +69 + mREG_RDX +, + +70  + #REG_RDX + +REG_RDX + + + ) + +71 + mREG_RAX +, + +72  + #REG_RAX + +REG_RAX + + + ) + +73 + mREG_RCX +, + +74  + #REG_RCX + +REG_RCX + + + ) + +75 + mREG_RSP +, + +76  + #REG_RSP + +REG_RSP + + + ) + +77 + mREG_RIP +, + +78  + #REG_RIP + +REG_RIP + + + ) + +79 + mREG_EFL +, + +80  + #REG_EFL + +REG_EFL + + + ) + +81 + mREG_CSGSFS +, + +82  + #REG_CSGSFS + +REG_CSGSFS + + + ) + +83 + mREG_ERR +, + +84  + #REG_ERR + +REG_ERR + + + ) + +85 + mREG_TRAPNO +, + +86  + #REG_TRAPNO + +REG_TRAPNO + + + ) + +87 + mREG_OLDMASK +, + +88  + #REG_OLDMASK + +REG_OLDMASK + + + ) + +89 + mREG_CR2 + + +90  + #REG_CR2 + +REG_CR2 + + + ) + +94  + s_libc_åx»g + + +96  + msignifiÿnd +[4]; + +97  + mexpÚ’t +; + +98  + m·ddšg +[3]; + +101  + s_libc_xmm»g + + +103 +__ušt32_t + + m–em’t +[4]; + +106  + s_libc_å¡©e + + +109 +__ušt16_t + + mcwd +; + +110 +__ušt16_t + + mswd +; + +111 +__ušt16_t + + máw +; + +112 +__ušt16_t + + mfÝ +; + +113 +__ušt64_t + + mr +; + +114 +__ušt64_t + + mrdp +; + +115 +__ušt32_t + + mmxc¤ +; + +116 +__ušt32_t + + mmxü_mask +; + +117  +_libc_åx»g + + m_¡ +[8]; + +118  +_libc_xmm»g + + m_xmm +[16]; + +119 +__ušt32_t + + m·ddšg +[24]; + +123  +_libc_å¡©e + * + tå»g£t_t +; + +128 +g»g£t_t + + mg»gs +; + +130 +å»g£t_t + + må»gs +; + +131  + m__»£rved1 + [8]; + +132 } + tmcÚ‹xt_t +; + +135  + sucÚ‹xt + + +137  + muc_æags +; + +138  +ucÚ‹xt + * + muc_lšk +; + +139 +¡ack_t + + muc_¡ack +; + +140 +mcÚ‹xt_t + + muc_mcÚ‹xt +; + +141 +__sig£t_t + + muc_sigmask +; + +142  +_libc_å¡©e + + m__å»gs_mem +; + +143 } + tucÚ‹xt_t +; + +148  + tg»g_t +; + +151  + #NGREG + 19 + + ) + +154  +g»g_t + + tg»g£t_t +[ +NGREG +]; + +156 #ifdeà +__USE_GNU + + +160 + mREG_GS + = 0, + +161  + #REG_GS + +REG_GS + + + ) + +162 + mREG_FS +, + +163  + #REG_FS + +REG_FS + + + ) + +164 + mREG_ES +, + +165  + #REG_ES + +REG_ES + + + ) + +166 + mREG_DS +, + +167  + #REG_DS + +REG_DS + + + ) + +168 + mREG_EDI +, + +169  + #REG_EDI + +REG_EDI + + + ) + +170 + mREG_ESI +, + +171  + #REG_ESI + +REG_ESI + + + ) + +172 + mREG_EBP +, + +173  + #REG_EBP + +REG_EBP + + + ) + +174 + mREG_ESP +, + +175  + #REG_ESP + +REG_ESP + + + ) + +176 + mREG_EBX +, + +177  + #REG_EBX + +REG_EBX + + + ) + +178 + mREG_EDX +, + +179  + #REG_EDX + +REG_EDX + + + ) + +180 + mREG_ECX +, + +181  + #REG_ECX + +REG_ECX + + + ) + +182 + mREG_EAX +, + +183  + #REG_EAX + +REG_EAX + + + ) + +184 + mREG_TRAPNO +, + +185  + #REG_TRAPNO + +REG_TRAPNO + + + ) + +186 + mREG_ERR +, + +187  + #REG_ERR + +REG_ERR + + + ) + +188 + mREG_EIP +, + +189  + #REG_EIP + +REG_EIP + + + ) + +190 + mREG_CS +, + +191  + #REG_CS + +REG_CS + + + ) + +192 + mREG_EFL +, + +193  + #REG_EFL + +REG_EFL + + + ) + +194 + mREG_UESP +, + +195  + #REG_UESP + +REG_UESP + + + ) + +196 + mREG_SS + + +197  + #REG_SS + +REG_SS + + + ) + +202  + s_libc_å»g + + +204  + msignifiÿnd +[4]; + +205  + mexpÚ’t +; + +208  + s_libc_å¡©e + + +210  + mcw +; + +211  + msw +; + +212  + mg +; + +213  + moff +; + +214  + mcs£l +; + +215  + md©aoff +; + +216  + md©a£l +; + +217  +_libc_å»g + + m_¡ +[8]; + +218  + m¡©us +; + +222  +_libc_å¡©e + * + tå»g£t_t +; + +227 +g»g£t_t + + mg»gs +; + +230 +å»g£t_t + + må»gs +; + +231  + mÞdmask +; + +232  + mü2 +; + +233 } + tmcÚ‹xt_t +; + +236  + sucÚ‹xt + + +238  + muc_æags +; + +239  +ucÚ‹xt + * + muc_lšk +; + +240 +¡ack_t + + muc_¡ack +; + +241 +mcÚ‹xt_t + + muc_mcÚ‹xt +; + +242 +__sig£t_t + + muc_sigmask +; + +243  +_libc_å¡©e + + m__å»gs_mem +; + +244 } + tucÚ‹xt_t +; + + @/usr/include/time.h + +23 #iâdef +_TIME_H + + +25 #ià(! +defšed + +__Ãed_time_t + && !defšed +__Ãed_þock_t + && \ + +26 ! +defšed + + g__Ãed_time¥ec +) + +27  + #_TIME_H + 1 + + ) + +28  + ~<ã©u»s.h +> + +30 + g__BEGIN_DECLS + + +34 #ifdef +_TIME_H + + +36  + #__Ãed_size_t + + + ) + +37  + #__Ãed_NULL + + + ) + +38  + ~<¡ddef.h +> + +42  + ~ + +45 #ià! +defšed + +__STRICT_ANSI__ + && !defšed +__USE_XOPEN2K + + +46 #iâdeà +CLK_TCK + + +47  + #CLK_TCK + +CLOCKS_PER_SEC + + + ) + +53 #ià! +defšed + +__þock_t_defšed + && (defšed +_TIME_H + || defšed +__Ãed_þock_t +) + +54  + #__þock_t_defšed + 1 + + ) + +56  + ~ + +58 +__BEGIN_NAMESPACE_STD + + +60  +__þock_t + + tþock_t +; + +61 + g__END_NAMESPACE_STD + + +62 #ià +defšed + +__USE_XOPEN + || defšed +__USE_POSIX + || defšed +__USE_MISC + + +63 + $__USING_NAMESPACE_STD +( +þock_t +) + +67 #undeà +__Ãed_þock_t + + +69 #ià! +defšed + +__time_t_defšed + && (defšed +_TIME_H + || defšed +__Ãed_time_t +) + +70  + #__time_t_defšed + 1 + + ) + +72  + ~ + +74 +__BEGIN_NAMESPACE_STD + + +76  +__time_t + + ttime_t +; + +77 +__END_NAMESPACE_STD + + +78 #ià +defšed + +__USE_POSIX + || defšed +__USE_MISC + || defšed +__USE_SVID + + +79 + $__USING_NAMESPACE_STD +( +time_t +) + +83 #undeà +__Ãed_time_t + + +85 #ià! +defšed + +__þockid_t_defšed + && \ + +86 (( +defšed + +_TIME_H + && defšed +__USE_POSIX199309 +è|| defšed +__Ãed_þockid_t +) + +87  + #__þockid_t_defšed + 1 + + ) + +89  + ~ + +92  +__þockid_t + + tþockid_t +; + +95 #undeà +__þockid_time_t + + +97 #ià! +defšed + +__tim”_t_defšed + && \ + +98 (( +defšed + +_TIME_H + && defšed +__USE_POSIX199309 +è|| defšed +__Ãed_tim”_t +) + +99  + #__tim”_t_defšed + 1 + + ) + +101  + ~ + +104  +__tim”_t + + ttim”_t +; + +107 #undeà +__Ãed_tim”_t + + +110 #ià! +defšed + +__time¥ec_defšed + && \ + +111 (( +defšed + +_TIME_H + && \ + +112 ( +defšed + +__USE_POSIX199309 + || defšed +__USE_MISC +)) || \ + +113 +defšed + +__Ãed_time¥ec +) + +114  + #__time¥ec_defšed + 1 + + ) + +116  + ~ + +120  + stime¥ec + + +122 +__time_t + +tv_£c +; + +123  +tv_n£c +; + +127 #undeà +__Ãed_time¥ec + + +130 #ifdef +_TIME_H + + +131 +__BEGIN_NAMESPACE_STD + + +133  + stm + + +135  +tm_£c +; + +136  +tm_mš +; + +137  +tm_hour +; + +138  +tm_mday +; + +139  +tm_mÚ +; + +140  +tm_y—r +; + +141  +tm_wday +; + +142  +tm_yday +; + +143  +tm_isd¡ +; + +145 #ifdef +__USE_BSD + + +146  +tm_gmtoff +; + +147 +__cÚ¡ + * +tm_zÚe +; + +149  +__tm_gmtoff +; + +150 +__cÚ¡ + * +__tm_zÚe +; + +153 +__END_NAMESPACE_STD + + +154 #ià +defšed + +__USE_XOPEN + || defšed +__USE_POSIX + || defšed +__USE_MISC + + +155 + $__USING_NAMESPACE_STD +( +tm +) + +159 #ifdeà +__USE_POSIX199309 + + +161  + s™im”¥ec + + +163  +time¥ec + +™_š‹rv® +; + +164  +time¥ec + +™_v®ue +; + +168  +sigev’t +; + +172 #ifdeà +__USE_XOPEN2K + + +173 #iâdeà +__pid_t_defšed + + +174  +__pid_t + + tpid_t +; + +175  + #__pid_t_defšed + + + ) + +180 +__BEGIN_NAMESPACE_STD + + +183 +þock_t + + $þock + (è +__THROW +; + +186 +time_t + + $time + ( +time_t + * +__tim” +è +__THROW +; + +189  + $difáime + ( +time_t + +__time1 +,ime_ˆ +__time0 +) + +190 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +193 +time_t + + $mktime + ( +tm + * +__ +è +__THROW +; + +199 +size_t + + $¡ráime + (* +__»¡riù + +__s +, +size_t + +__maxsize +, + +200 +__cÚ¡ + * +__»¡riù + +__fÜm© +, + +201 +__cÚ¡ +  +tm + * +__»¡riù + +__ +è +__THROW +; + +202 +__END_NAMESPACE_STD + + +204 #ifdeà +__USE_XOPEN + + +207 * + $¡½time + ( +__cÚ¡ + * +__»¡riù + +__s +, + +208 +__cÚ¡ + * +__»¡riù + +__fmt +,  +tm + * +__ +) + +209 +__THROW +; + +212 #ifdeà +__USE_XOPEN2K8 + + +215  + ~ + +217 +size_t + + $¡ráime_l + (* +__»¡riù + +__s +, +size_t + +__maxsize +, + +218 +__cÚ¡ + * +__»¡riù + +__fÜm© +, + +219 +__cÚ¡ +  +tm + * +__»¡riù + +__ +, + +220 +__loÿË_t + +__loc +è +__THROW +; + +223 #ifdeà +__USE_GNU + + +224 * + $¡½time_l + ( +__cÚ¡ + * +__»¡riù + +__s +, + +225 +__cÚ¡ + * +__»¡riù + +__fmt +,  +tm + * +__ +, + +226 +__loÿË_t + +__loc +è +__THROW +; + +230 +__BEGIN_NAMESPACE_STD + + +233  +tm + * + $gmtime + ( +__cÚ¡ + +time_t + * +__tim” +è +__THROW +; + +237  +tm + * + $loÿÉime + ( +__cÚ¡ + +time_t + * +__tim” +è +__THROW +; + +238 +__END_NAMESPACE_STD + + +240 #ià +defšed + +__USE_POSIX + || defšed +__USE_MISC + + +243  +tm + * + $gmtime_r + ( +__cÚ¡ + +time_t + * +__»¡riù + +__tim” +, + +244  +tm + * +__»¡riù + +__ +è +__THROW +; + +248  +tm + * + $loÿÉime_r + ( +__cÚ¡ + +time_t + * +__»¡riù + +__tim” +, + +249  +tm + * +__»¡riù + +__ +è +__THROW +; + +252 +__BEGIN_NAMESPACE_STD + + +255 * + $asùime + ( +__cÚ¡ +  +tm + * +__ +è +__THROW +; + +258 * + $ùime + ( +__cÚ¡ + +time_t + * +__tim” +è +__THROW +; + +259 +__END_NAMESPACE_STD + + +261 #ià +defšed + +__USE_POSIX + || defšed +__USE_MISC + + +266 * + $asùime_r + ( +__cÚ¡ +  +tm + * +__»¡riù + +__ +, + +267 * +__»¡riù + +__buf +è +__THROW +; + +270 * + $ùime_r + ( +__cÚ¡ + +time_t + * +__»¡riù + +__tim” +, + +271 * +__»¡riù + +__buf +è +__THROW +; + +276 * +__tzÇme +[2]; + +277  +__daylight +; + +278  +__timezÚe +; + +281 #ifdef +__USE_POSIX + + +283 * +tzÇme +[2]; + +287  + $tz£t + (è +__THROW +; + +290 #ià +defšed + +__USE_SVID + || defšed +__USE_XOPEN + + +291  +daylight +; + +292  +timezÚe +; + +295 #ifdeà +__USE_SVID + + +298  + $¡ime + ( +__cÚ¡ + +time_t + * +__wh’ +è +__THROW +; + +304  + #__i¦—p +( +y—r +) \ + +305 (( +y—r +è% 4 =ð0 && ((y—rè% 100 !ð0 || (y—rè% 400 =ð0)) + + ) + +308 #ifdeà +__USE_MISC + + +313 +time_t + + $timegm + ( +tm + * +__ +è +__THROW +; + +316 +time_t + + $tim–oÿl + ( +tm + * +__ +è +__THROW +; + +319  + $dysize + ( +__y—r +è +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +323 #ifdeà +__USE_POSIX199309 + + +328  + `Çno¦“p + ( +__cÚ¡ +  +time¥ec + * +__»que¡ed_time +, + +329  +time¥ec + * +__»maššg +); + +333  + $þock_g‘»s + ( +þockid_t + +__þock_id +,  +time¥ec + * +__»s +è +__THROW +; + +336  + $þock_g‘time + ( +þockid_t + +__þock_id +,  +time¥ec + * +__ +è +__THROW +; + +339  + $þock_£‰ime + ( +þockid_t + +__þock_id +, +__cÚ¡ +  +time¥ec + * +__ +) + +340 +__THROW +; + +342 #ifdeà +__USE_XOPEN2K + + +347  + `þock_Çno¦“p + ( +þockid_t + +__þock_id +,  +__æags +, + +348 +__cÚ¡ +  +time¥ec + * +__»q +, + +349  +time¥ec + * +__»m +); + +352  + $þock_g‘ýuþockid + ( +pid_t + +__pid +, +þockid_t + * +__þock_id +è +__THROW +; + +357  + $tim”_ü—‹ + ( +þockid_t + +__þock_id +, + +358  +sigev’t + * +__»¡riù + +__evp +, + +359 +tim”_t + * +__»¡riù + +__tim”id +è +__THROW +; + +362  + $tim”_d–‘e + ( +tim”_t + +__tim”id +è +__THROW +; + +365  + $tim”_£‰ime + ( +tim”_t + +__tim”id +,  +__æags +, + +366 +__cÚ¡ +  +™im”¥ec + * +__»¡riù + +__v®ue +, + +367  +™im”¥ec + * +__»¡riù + +__ov®ue +è +__THROW +; + +370  + $tim”_g‘time + ( +tim”_t + +__tim”id +,  +™im”¥ec + * +__v®ue +) + +371 +__THROW +; + +374  + $tim”_g‘ov”run + ( +tim”_t + +__tim”id +è +__THROW +; + +378 #ifdeà +__USE_XOPEN_EXTENDED + + +390  +g‘d©e_”r +; + +399  +tm + * + `g‘d©e + ( +__cÚ¡ + * +__¡ršg +); + +402 #ifdeà +__USE_GNU + + +413  + `g‘d©e_r + ( +__cÚ¡ + * +__»¡riù + +__¡ršg +, + +414  +tm + * +__»¡riù + +__»sbuå +); + +417 +__END_DECLS + + + @/usr/include/xlocale.h + +21 #iâdeà +_XLOCALE_H + + +22  + #_XLOCALE_H + 1 + + ) + +28  + s__loÿË_¡ruù + + +31  +__loÿË_d©a + * + m__loÿËs +[13]; + +34 cÚ¡ * + m__ùy³_b +; + +35 cÚ¡ * + m__ùy³_tÞow” +; + +36 cÚ¡ * + m__ùy³_touµ” +; + +39 cÚ¡ * + m__Çmes +[13]; + +40 } * + t__loÿË_t +; + +43  +__loÿË_t + + tloÿË_t +; + + @/usr/include/X11/keysymdef.h + +115  + #XK_VoidSymbÞ + 0xfffffà + + ) + +117 #ifdeà +XK_MISCELLANY + + +124  + #XK_BackS·û + 0xff08 + + ) + +125  + #XK_Tab + 0xff09 + + ) + +126  + #XK_Lšeãed + 0xff0¨ + + ) + +127  + #XK_Cˬ + 0xff0b + + ) + +128  + #XK_R‘uº + 0xff0d + + ) + +129  + #XK_Pau£ + 0xff13 + + ) + +130  + #XK_SüÞl_Lock + 0xff14 + + ) + +131  + #XK_Sys_Req + 0xff15 + + ) + +132  + #XK_Esÿ³ + 0xff1b + + ) + +133  + #XK_D–‘e + 0xfffà + + ) + +139  + #XK_MuÉi_key + 0xff20 + + ) + +140  + #XK_Codešput + 0xff37 + + ) + +141  + #XK_SšgËCªdid©e + 0xff3c + + ) + +142  + #XK_MuÉËCªdid©e + 0xff3d + + ) + +143  + #XK_P»viousCªdid©e + 0xff3e + + ) + +147  + #XK_Kªji + 0xff21 + + ) + +148  + #XK_Muh’kª + 0xff22 + + ) + +149  + #XK_H’kª_Mode + 0xff23 + + ) + +150  + #XK_H’kª + 0xff23 + + ) + +151  + #XK_Romaji + 0xff24 + + ) + +152  + #XK_Hœagªa + 0xff25 + + ) + +153  + #XK_K©akªa + 0xff26 + + ) + +154  + #XK_Hœagªa_K©akªa + 0xff27 + + ) + +155  + #XK_Z’kaku + 0xff28 + + ) + +156  + #XK_Hªkaku + 0xff29 + + ) + +157  + #XK_Z’kaku_Hªkaku + 0xff2¨ + + ) + +158  + #XK_Touroku + 0xff2b + + ) + +159  + #XK_Massyo + 0xff2ø + + ) + +160  + #XK_Kªa_Lock + 0xff2d + + ) + +161  + #XK_Kªa_Shiá + 0xff2 + + ) + +162  + #XK_Eisu_Shiá + 0xff2à + + ) + +163  + #XK_Eisu_toggË + 0xff30 + + ) + +164  + #XK_Kªji_Bªgou + 0xff37 + + ) + +165  + #XK_Z’_Koho + 0xff3d + + ) + +166  + #XK_M«_Koho + 0xff3 + + ) + +172  + #XK_Home + 0xff50 + + ) + +173  + #XK_Leá + 0xff51 + + ) + +174  + #XK_Up + 0xff52 + + ) + +175  + #XK_Right + 0xff53 + + ) + +176  + #XK_Down + 0xff54 + + ) + +177  + #XK_PriÜ + 0xff55 + + ) + +178  + #XK_Page_Up + 0xff55 + + ) + +179  + #XK_Next + 0xff56 + + ) + +180  + #XK_Page_Down + 0xff56 + + ) + +181  + #XK_End + 0xff57 + + ) + +182  + #XK_Begš + 0xff58 + + ) + +187  + #XK_S–eù + 0xff60 + + ) + +188  + #XK_Pršt + 0xff61 + + ) + +189  + #XK_Execu‹ + 0xff62 + + ) + +190  + #XK_In£¹ + 0xff63 + + ) + +191  + #XK_Undo + 0xff65 + + ) + +192  + #XK_Redo + 0xff66 + + ) + +193  + #XK_M’u + 0xff67 + + ) + +194  + #XK_Fšd + 0xff68 + + ) + +195  + #XK_Cªûl + 0xff69 + + ) + +196  + #XK_H–p + 0xff6¨ + + ) + +197  + #XK_B»ak + 0xff6b + + ) + +198  + #XK_Mode_sw™ch + 0xff7 + + ) + +199  + #XK_süt_sw™ch + 0xff7 + + ) + +200  + #XK_Num_Lock + 0xff7f + + ) + +204  + #XK_KP_S·û + 0xff80 + + ) + +205  + #XK_KP_Tab + 0xff89 + + ) + +206  + #XK_KP_EÁ” + 0xff8d + + ) + +207  + #XK_KP_F1 + 0xff91 + + ) + +208  + #XK_KP_F2 + 0xff92 + + ) + +209  + #XK_KP_F3 + 0xff93 + + ) + +210  + #XK_KP_F4 + 0xff94 + + ) + +211  + #XK_KP_Home + 0xff95 + + ) + +212  + #XK_KP_Leá + 0xff96 + + ) + +213  + #XK_KP_Up + 0xff97 + + ) + +214  + #XK_KP_Right + 0xff98 + + ) + +215  + #XK_KP_Down + 0xff99 + + ) + +216  + #XK_KP_PriÜ + 0xff9a + + ) + +217  + #XK_KP_Page_Up + 0xff9a + + ) + +218  + #XK_KP_Next + 0xff9b + + ) + +219  + #XK_KP_Page_Down + 0xff9b + + ) + +220  + #XK_KP_End + 0xff9c + + ) + +221  + #XK_KP_Begš + 0xff9d + + ) + +222  + #XK_KP_In£¹ + 0xff9e + + ) + +223  + #XK_KP_D–‘e + 0xff9f + + ) + +224  + #XK_KP_Equ® + 0xffbd + + ) + +225  + #XK_KP_MuÉly + 0xfça + + ) + +226  + #XK_KP_Add + 0xfçb + + ) + +227  + #XK_KP_S•¬©Ü + 0xfçø + + ) + +228  + #XK_KP_SubŒaù + 0xfçd + + ) + +229  + #XK_KP_Decim® + 0xfçe + + ) + +230  + #XK_KP_Divide + 0xfçf + + ) + +232  + #XK_KP_0 + 0xffb0 + + ) + +233  + #XK_KP_1 + 0xffb1 + + ) + +234  + #XK_KP_2 + 0xffb2 + + ) + +235  + #XK_KP_3 + 0xffb3 + + ) + +236  + #XK_KP_4 + 0xffb4 + + ) + +237  + #XK_KP_5 + 0xffb5 + + ) + +238  + #XK_KP_6 + 0xffb6 + + ) + +239  + #XK_KP_7 + 0xffb7 + + ) + +240  + #XK_KP_8 + 0xffb8 + + ) + +241  + #XK_KP_9 + 0xffb9 + + ) + +252  + #XK_F1 + 0xffbe + + ) + +253  + #XK_F2 + 0xffbf + + ) + +254  + #XK_F3 + 0xffc0 + + ) + +255  + #XK_F4 + 0xffc1 + + ) + +256  + #XK_F5 + 0xffc2 + + ) + +257  + #XK_F6 + 0xffc3 + + ) + +258  + #XK_F7 + 0xffc4 + + ) + +259  + #XK_F8 + 0xffc5 + + ) + +260  + #XK_F9 + 0xffc6 + + ) + +261  + #XK_F10 + 0xffc7 + + ) + +262  + #XK_F11 + 0xffc8 + + ) + +263  + #XK_L1 + 0xffc8 + + ) + +264  + #XK_F12 + 0xffc9 + + ) + +265  + #XK_L2 + 0xffc9 + + ) + +266  + #XK_F13 + 0xffÿ + + ) + +267  + #XK_L3 + 0xffÿ + + ) + +268  + #XK_F14 + 0xffcb + + ) + +269  + #XK_L4 + 0xffcb + + ) + +270  + #XK_F15 + 0xffcc + + ) + +271  + #XK_L5 + 0xffcc + + ) + +272  + #XK_F16 + 0xffcd + + ) + +273  + #XK_L6 + 0xffcd + + ) + +274  + #XK_F17 + 0xffû + + ) + +275  + #XK_L7 + 0xffû + + ) + +276  + #XK_F18 + 0xffcf + + ) + +277  + #XK_L8 + 0xffcf + + ) + +278  + #XK_F19 + 0xffd0 + + ) + +279  + #XK_L9 + 0xffd0 + + ) + +280  + #XK_F20 + 0xffd1 + + ) + +281  + #XK_L10 + 0xffd1 + + ) + +282  + #XK_F21 + 0xffd2 + + ) + +283  + #XK_R1 + 0xffd2 + + ) + +284  + #XK_F22 + 0xffd3 + + ) + +285  + #XK_R2 + 0xffd3 + + ) + +286  + #XK_F23 + 0xffd4 + + ) + +287  + #XK_R3 + 0xffd4 + + ) + +288  + #XK_F24 + 0xffd5 + + ) + +289  + #XK_R4 + 0xffd5 + + ) + +290  + #XK_F25 + 0xffd6 + + ) + +291  + #XK_R5 + 0xffd6 + + ) + +292  + #XK_F26 + 0xffd7 + + ) + +293  + #XK_R6 + 0xffd7 + + ) + +294  + #XK_F27 + 0xffd8 + + ) + +295  + #XK_R7 + 0xffd8 + + ) + +296  + #XK_F28 + 0xffd9 + + ) + +297  + #XK_R8 + 0xffd9 + + ) + +298  + #XK_F29 + 0xffda + + ) + +299  + #XK_R9 + 0xffda + + ) + +300  + #XK_F30 + 0xffdb + + ) + +301  + #XK_R10 + 0xffdb + + ) + +302  + #XK_F31 + 0xffdc + + ) + +303  + #XK_R11 + 0xffdc + + ) + +304  + #XK_F32 + 0xffdd + + ) + +305  + #XK_R12 + 0xffdd + + ) + +306  + #XK_F33 + 0xffde + + ) + +307  + #XK_R13 + 0xffde + + ) + +308  + #XK_F34 + 0xffdf + + ) + +309  + #XK_R14 + 0xffdf + + ) + +310  + #XK_F35 + 0xfã0 + + ) + +311  + #XK_R15 + 0xfã0 + + ) + +315  + #XK_Shiá_L + 0xfã1 + + ) + +316  + #XK_Shiá_R + 0xfã2 + + ) + +317  + #XK_CÚŒÞ_L + 0xfã3 + + ) + +318  + #XK_CÚŒÞ_R + 0xfã4 + + ) + +319  + #XK_C­s_Lock + 0xfã5 + + ) + +320  + #XK_Shiá_Lock + 0xfã6 + + ) + +322  + #XK_M‘a_L + 0xfã7 + + ) + +323  + #XK_M‘a_R + 0xfã8 + + ) + +324  + #XK_AÉ_L + 0xfã9 + + ) + +325  + #XK_AÉ_R + 0xf㨠+ + ) + +326  + #XK_Su³r_L + 0xfãb + + ) + +327  + #XK_Su³r_R + 0xfãø + + ) + +328  + #XK_Hy³r_L + 0xfãd + + ) + +329  + #XK_Hy³r_R + 0xfã + + ) + +338 #ifdeà +XK_XKB_KEYS + + +339  + #XK_ISO_Lock + 0xã01 + + ) + +340  + #XK_ISO_Lev–2_L©ch + 0xã02 + + ) + +341  + #XK_ISO_Lev–3_Shiá + 0xã03 + + ) + +342  + #XK_ISO_Lev–3_L©ch + 0xã04 + + ) + +343  + #XK_ISO_Lev–3_Lock + 0xã05 + + ) + +344  + #XK_ISO_Lev–5_Shiá + 0xã11 + + ) + +345  + #XK_ISO_Lev–5_L©ch + 0xã12 + + ) + +346  + #XK_ISO_Lev–5_Lock + 0xã13 + + ) + +347  + #XK_ISO_Group_Shiá + 0xff7 + + ) + +348  + #XK_ISO_Group_L©ch + 0xã06 + + ) + +349  + #XK_ISO_Group_Lock + 0xã07 + + ) + +350  + #XK_ISO_Next_Group + 0xã08 + + ) + +351  + #XK_ISO_Next_Group_Lock + 0xã09 + + ) + +352  + #XK_ISO_P»v_Group + 0xã0a + + ) + +353  + #XK_ISO_P»v_Group_Lock + 0xã0b + + ) + +354  + #XK_ISO_Fœ¡_Group + 0xã0c + + ) + +355  + #XK_ISO_Fœ¡_Group_Lock + 0xã0d + + ) + +356  + #XK_ISO_La¡_Group + 0xã0e + + ) + +357  + #XK_ISO_La¡_Group_Lock + 0xã0f + + ) + +359  + #XK_ISO_Leá_Tab + 0xã20 + + ) + +360  + #XK_ISO_Move_Lše_Up + 0xã21 + + ) + +361  + #XK_ISO_Move_Lše_Down + 0xã22 + + ) + +362  + #XK_ISO_P¬tŸl_Lše_Up + 0xã23 + + ) + +363  + #XK_ISO_P¬tŸl_Lše_Down + 0xã24 + + ) + +364  + #XK_ISO_P¬tŸl_S·û_Leá + 0xã25 + + ) + +365  + #XK_ISO_P¬tŸl_S·û_Right + 0xã26 + + ) + +366  + #XK_ISO_S‘_M¬gš_Leá + 0xã27 + + ) + +367  + #XK_ISO_S‘_M¬gš_Right + 0xã28 + + ) + +368  + #XK_ISO_R–—£_M¬gš_Leá + 0xã29 + + ) + +369  + #XK_ISO_R–—£_M¬gš_Right + 0xã2a + + ) + +370  + #XK_ISO_R–—£_BÙh_M¬gšs + 0xã2b + + ) + +371  + #XK_ISO_Fa¡_CursÜ_Leá + 0xã2c + + ) + +372  + #XK_ISO_Fa¡_CursÜ_Right + 0xã2d + + ) + +373  + #XK_ISO_Fa¡_CursÜ_Up + 0xã2e + + ) + +374  + #XK_ISO_Fa¡_CursÜ_Down + 0xã2f + + ) + +375  + #XK_ISO_CÚtšuous_Und”lše + 0xã30 + + ) + +376  + #XK_ISO_DiscÚtšuous_Und”lše + 0xã31 + + ) + +377  + #XK_ISO_Emphasize + 0xã32 + + ) + +378  + #XK_ISO_C’‹r_Objeù + 0xã33 + + ) + +379  + #XK_ISO_EÁ” + 0xã34 + + ) + +381  + #XK_d—d_g¿ve + 0xã50 + + ) + +382  + #XK_d—d_acu‹ + 0xã51 + + ) + +383  + #XK_d—d_cœcumæex + 0xã52 + + ) + +384  + #XK_d—d_tžde + 0xã53 + + ) + +385  + #XK_d—d_³ri¥om’i + 0xã53 + + ) + +386  + #XK_d—d_maüÚ + 0xã54 + + ) + +387  + #XK_d—d_b»ve + 0xã55 + + ) + +388  + #XK_d—d_abovedÙ + 0xã56 + + ) + +389  + #XK_d—d_dŸ”esis + 0xã57 + + ) + +390  + #XK_d—d_abov”šg + 0xã58 + + ) + +391  + #XK_d—d_doubËacu‹ + 0xã59 + + ) + +392  + #XK_d—d_ÿrÚ + 0xã5a + + ) + +393  + #XK_d—d_ûdžÏ + 0xã5b + + ) + +394  + #XK_d—d_ogÚek + 0xã5c + + ) + +395  + #XK_d—d_iÙa + 0xã5d + + ) + +396  + #XK_d—d_voiûd_sound + 0xã5e + + ) + +397  + #XK_d—d_£mivoiûd_sound + 0xã5f + + ) + +398  + #XK_d—d_b–owdÙ + 0xã60 + + ) + +399  + #XK_d—d_hook + 0xã61 + + ) + +400  + #XK_d—d_hÜn + 0xã62 + + ) + +401  + #XK_d—d_¡roke + 0xã63 + + ) + +402  + #XK_d—d_abovecomma + 0xã64 + + ) + +403  + #XK_d—d_psži + 0xã64 + + ) + +404  + #XK_d—d_abov”ev”£dcomma + 0xã65 + + ) + +405  + #XK_d—d_dasŸ + 0xã65 + + ) + +406  + #XK_d—d_doubËg¿ve + 0xã66 + + ) + +407  + #XK_d—d_b–owršg + 0xã67 + + ) + +408  + #XK_d—d_b–owmaüÚ + 0xã68 + + ) + +409  + #XK_d—d_b–owcœcumæex + 0xã69 + + ) + +410  + #XK_d—d_b–owtžde + 0xã6a + + ) + +411  + #XK_d—d_b–owb»ve + 0xã6b + + ) + +412  + #XK_d—d_b–owdŸ”esis + 0xã6c + + ) + +413  + #XK_d—d_šv”‹db»ve + 0xã6d + + ) + +414  + #XK_d—d_b–owcomma + 0xã6e + + ) + +415  + #XK_d—d_cu¼’cy + 0xã6f + + ) + +418  + #XK_d—d_a + 0xã80 + + ) + +419  + #XK_d—d_A + 0xã81 + + ) + +420  + #XK_d—d_e + 0xã82 + + ) + +421  + #XK_d—d_E + 0xã83 + + ) + +422  + #XK_d—d_i + 0xã84 + + ) + +423  + #XK_d—d_I + 0xã85 + + ) + +424  + #XK_d—d_o + 0xã86 + + ) + +425  + #XK_d—d_O + 0xã87 + + ) + +426  + #XK_d—d_u + 0xã88 + + ) + +427  + #XK_d—d_U + 0xã89 + + ) + +428  + #XK_d—d_sm®l_schwa + 0xã8a + + ) + +429  + #XK_d—d_ÿp™®_schwa + 0xã8b + + ) + +431  + #XK_Fœ¡_Vœtu®_Sü“n + 0xãd0 + + ) + +432  + #XK_P»v_Vœtu®_Sü“n + 0xãd1 + + ) + +433  + #XK_Next_Vœtu®_Sü“n + 0xãd2 + + ) + +434  + #XK_La¡_Vœtu®_Sü“n + 0xãd4 + + ) + +435  + #XK_T”mš©e_S”v” + 0xãd5 + + ) + +437  + #XK_AcûssX_EÇbË + 0xã70 + + ) + +438  + #XK_AcûssX_F“dback_EÇbË + 0xã71 + + ) + +439  + #XK_R•—tKeys_EÇbË + 0xã72 + + ) + +440  + #XK_SlowKeys_EÇbË + 0xã73 + + ) + +441  + #XK_BounûKeys_EÇbË + 0xã74 + + ) + +442  + #XK_StickyKeys_EÇbË + 0xã75 + + ) + +443  + #XK_Mou£Keys_EÇbË + 0xã76 + + ) + +444  + #XK_Mou£Keys_Acûl_EÇbË + 0xã77 + + ) + +445  + #XK_Ov”Ïy1_EÇbË + 0xã78 + + ) + +446  + #XK_Ov”Ïy2_EÇbË + 0xã79 + + ) + +447  + #XK_AudibËB–l_EÇbË + 0xã7a + + ) + +449  + #XK_Poš‹r_Leá + 0xãe0 + + ) + +450  + #XK_Poš‹r_Right + 0xãe1 + + ) + +451  + #XK_Poš‹r_Up + 0xãe2 + + ) + +452  + #XK_Poš‹r_Down + 0xãe3 + + ) + +453  + #XK_Poš‹r_UpLeá + 0xãe4 + + ) + +454  + #XK_Poš‹r_UpRight + 0xãe5 + + ) + +455  + #XK_Poš‹r_DownLeá + 0xãe6 + + ) + +456  + #XK_Poš‹r_DownRight + 0xãe7 + + ) + +457  + #XK_Poš‹r_Bu‰Ú_Dæt + 0xãe8 + + ) + +458  + #XK_Poš‹r_Bu‰Ú1 + 0xãe9 + + ) + +459  + #XK_Poš‹r_Bu‰Ú2 + 0xã— + + ) + +460  + #XK_Poš‹r_Bu‰Ú3 + 0xãeb + + ) + +461  + #XK_Poš‹r_Bu‰Ú4 + 0xãec + + ) + +462  + #XK_Poš‹r_Bu‰Ú5 + 0xãed + + ) + +463  + #XK_Poš‹r_DblClick_Dæt + 0xã“ + + ) + +464  + #XK_Poš‹r_DblClick1 + 0xãef + + ) + +465  + #XK_Poš‹r_DblClick2 + 0xãf0 + + ) + +466  + #XK_Poš‹r_DblClick3 + 0xãf1 + + ) + +467  + #XK_Poš‹r_DblClick4 + 0xãf2 + + ) + +468  + #XK_Poš‹r_DblClick5 + 0xãf3 + + ) + +469  + #XK_Poš‹r_D¿g_Dæt + 0xãf4 + + ) + +470  + #XK_Poš‹r_D¿g1 + 0xãf5 + + ) + +471  + #XK_Poš‹r_D¿g2 + 0xãf6 + + ) + +472  + #XK_Poš‹r_D¿g3 + 0xãf7 + + ) + +473  + #XK_Poš‹r_D¿g4 + 0xãf8 + + ) + +474  + #XK_Poš‹r_D¿g5 + 0xãfd + + ) + +476  + #XK_Poš‹r_EÇbËKeys + 0xãf9 + + ) + +477  + #XK_Poš‹r_AcûË¿‹ + 0xãç + + ) + +478  + #XK_Poš‹r_DætBŠNext + 0xãfb + + ) + +479  + #XK_Poš‹r_DætBŠP»v + 0xãfc + + ) + +488 #ifdeà +XK_3270 + + +489  + #XK_3270_Du¶iÿ‹ + 0xfd01 + + ) + +490  + #XK_3270_F›ldM¬k + 0xfd02 + + ) + +491  + #XK_3270_Right2 + 0xfd03 + + ) + +492  + #XK_3270_Leá2 + 0xfd04 + + ) + +493  + #XK_3270_BackTab + 0xfd05 + + ) + +494  + #XK_3270_E¿£EOF + 0xfd06 + + ) + +495  + #XK_3270_E¿£IÅut + 0xfd07 + + ) + +496  + #XK_3270_Re£t + 0xfd08 + + ) + +497  + #XK_3270_Qu™ + 0xfd09 + + ) + +498  + #XK_3270_PA1 + 0xfd0a + + ) + +499  + #XK_3270_PA2 + 0xfd0b + + ) + +500  + #XK_3270_PA3 + 0xfd0c + + ) + +501  + #XK_3270_Te¡ + 0xfd0d + + ) + +502  + #XK_3270_A‰n + 0xfd0e + + ) + +503  + #XK_3270_CursÜBlšk + 0xfd0f + + ) + +504  + #XK_3270_AÉCursÜ + 0xfd10 + + ) + +505  + #XK_3270_KeyClick + 0xfd11 + + ) + +506  + #XK_3270_Jump + 0xfd12 + + ) + +507  + #XK_3270_Id’t + 0xfd13 + + ) + +508  + #XK_3270_RuË + 0xfd14 + + ) + +509  + #XK_3270_CÝy + 0xfd15 + + ) + +510  + #XK_3270_PÏy + 0xfd16 + + ) + +511  + #XK_3270_S‘up + 0xfd17 + + ) + +512  + #XK_3270_RecÜd + 0xfd18 + + ) + +513  + #XK_3270_ChªgeSü“n + 0xfd19 + + ) + +514  + #XK_3270_D–‘eWÜd + 0xfd1a + + ) + +515  + #XK_3270_ExS–eù + 0xfd1b + + ) + +516  + #XK_3270_CursÜS–eù + 0xfd1c + + ) + +517  + #XK_3270_PrštSü“n + 0xfd1d + + ) + +518  + #XK_3270_EÁ” + 0xfd1e + + ) + +526 #ifdeà +XK_LATIN1 + + +527  + #XK_¥aû + 0x0020 + + ) + +528  + #XK_exþam + 0x0021 + + ) + +529  + #XK_quÙedbl + 0x0022 + + ) + +530  + #XK_numb”sign + 0x0023 + + ) + +531  + #XK_dÞÏr + 0x0024 + + ) + +532  + #XK_³rûÁ + 0x0025 + + ) + +533  + #XK_am³r§nd + 0x0026 + + ) + +534  + #XK_­o¡rÝhe + 0x0027 + + ) + +535  + #XK_quÙ”ight + 0x0027 + + ) + +536  + #XK_·»Æeá + 0x0028 + + ) + +537  + #XK_·»Äight + 0x0029 + + ) + +538  + #XK_a¡”isk + 0x002¨ + + ) + +539  + #XK_¶us + 0x002b + + ) + +540  + #XK_comma + 0x002ø + + ) + +541  + #XK_mšus + 0x002d + + ) + +542  + #XK_³riod + 0x002 + + ) + +543  + #XK_¦ash + 0x002à + + ) + +544  + #XK_0 + 0x0030 + + ) + +545  + #XK_1 + 0x0031 + + ) + +546  + #XK_2 + 0x0032 + + ) + +547  + #XK_3 + 0x0033 + + ) + +548  + #XK_4 + 0x0034 + + ) + +549  + #XK_5 + 0x0035 + + ) + +550  + #XK_6 + 0x0036 + + ) + +551  + #XK_7 + 0x0037 + + ) + +552  + #XK_8 + 0x0038 + + ) + +553  + #XK_9 + 0x0039 + + ) + +554  + #XK_cÞÚ + 0x003¨ + + ) + +555  + #XK_£micÞÚ + 0x003b + + ) + +556  + #XK_Ëss + 0x003ø + + ) + +557  + #XK_equ® + 0x003d + + ) + +558  + #XK_g»©” + 0x003 + + ) + +559  + #XK_que¡iÚ + 0x003à + + ) + +560  + #XK_© + 0x0040 + + ) + +561  + #XK_A + 0x0041 + + ) + +562  + #XK_B + 0x0042 + + ) + +563  + #XK_C + 0x0043 + + ) + +564  + #XK_D + 0x0044 + + ) + +565  + #XK_E + 0x0045 + + ) + +566  + #XK_F + 0x0046 + + ) + +567  + #XK_G + 0x0047 + + ) + +568  + #XK_H + 0x0048 + + ) + +569  + #XK_I + 0x0049 + + ) + +570  + #XK_J + 0x004¨ + + ) + +571  + #XK_K + 0x004b + + ) + +572  + #XK_L + 0x004ø + + ) + +573  + #XK_M + 0x004d + + ) + +574  + #XK_N + 0x004 + + ) + +575  + #XK_O + 0x004à + + ) + +576  + #XK_P + 0x0050 + + ) + +577  + #XK_Q + 0x0051 + + ) + +578  + #XK_R + 0x0052 + + ) + +579  + #XK_S + 0x0053 + + ) + +580  + #XK_T + 0x0054 + + ) + +581  + #XK_U + 0x0055 + + ) + +582  + #XK_V + 0x0056 + + ) + +583  + #XK_W + 0x0057 + + ) + +584  + #XK_X + 0x0058 + + ) + +585  + #XK_Y + 0x0059 + + ) + +586  + #XK_Z + 0x005¨ + + ) + +587  + #XK_b¿ck‘Ëá + 0x005b + + ) + +588  + #XK_back¦ash + 0x005ø + + ) + +589  + #XK_b¿ck‘right + 0x005d + + ) + +590  + #XK_asciicœcum + 0x005 + + ) + +591  + #XK_und”scÜe + 0x005à + + ) + +592  + #XK_g¿ve + 0x0060 + + ) + +593  + #XK_quÙ–eá + 0x0060 + + ) + +594  + #XK_a + 0x0061 + + ) + +595  + #XK_b + 0x0062 + + ) + +596  + #XK_c + 0x0063 + + ) + +597  + #XK_d + 0x0064 + + ) + +598  + #XK_e + 0x0065 + + ) + +599  + #XK_f + 0x0066 + + ) + +600  + #XK_g + 0x0067 + + ) + +601  + #XK_h + 0x0068 + + ) + +602  + #XK_i + 0x0069 + + ) + +603  + #XK_j + 0x006¨ + + ) + +604  + #XK_k + 0x006b + + ) + +605  + #XK_l + 0x006ø + + ) + +606  + #XK_m + 0x006d + + ) + +607  + #XK_n + 0x006 + + ) + +608  + #XK_o + 0x006à + + ) + +609  + #XK_p + 0x0070 + + ) + +610  + #XK_q + 0x0071 + + ) + +611  + #XK_r + 0x0072 + + ) + +612  + #XK_s + 0x0073 + + ) + +613  + #XK_t + 0x0074 + + ) + +614  + #XK_u + 0x0075 + + ) + +615  + #XK_v + 0x0076 + + ) + +616  + #XK_w + 0x0077 + + ) + +617  + #XK_x + 0x0078 + + ) + +618  + #XK_y + 0x0079 + + ) + +619  + #XK_z + 0x007¨ + + ) + +620  + #XK_b¿ûËá + 0x007b + + ) + +621  + #XK_b¬ + 0x007ø + + ) + +622  + #XK_b¿ûright + 0x007d + + ) + +623  + #XK_asci™žde + 0x007 + + ) + +625  + #XK_nob»ak¥aû + 0x00a0 + + ) + +626  + #XK_exþamdown + 0x00a1 + + ) + +627  + #XK_ûÁ + 0x00a2 + + ) + +628  + #XK_¡”lšg + 0x00a3 + + ) + +629  + #XK_cu¼’cy + 0x00a4 + + ) + +630  + #XK_y’ + 0x00a5 + + ) + +631  + #XK_brok’b¬ + 0x00a6 + + ) + +632  + #XK_£ùiÚ + 0x00a7 + + ) + +633  + #XK_dŸ”esis + 0x00a8 + + ) + +634  + #XK_cÝyright + 0x00a9 + + ) + +635  + #XK_Üdãmšše + 0x00¯ + + ) + +636  + #XK_gužËmÙËá + 0x00ab + + ) + +637  + #XK_nÙsign + 0x00aø + + ) + +638  + #XK_hyph’ + 0x00ad + + ) + +639  + #XK_»gi¡”ed + 0x00« + + ) + +640  + #XK_maüÚ + 0x00aà + + ) + +641  + #XK_deg»e + 0x00b0 + + ) + +642  + #XK_¶usmšus + 0x00b1 + + ) + +643  + #XK_twosu³riÜ + 0x00b2 + + ) + +644  + #XK_th»esu³riÜ + 0x00b3 + + ) + +645  + #XK_acu‹ + 0x00b4 + + ) + +646  + #XK_mu + 0x00b5 + + ) + +647  + #XK_·¿g¿ph + 0x00b6 + + ) + +648  + #XK_³riodûÁ”ed + 0x00b7 + + ) + +649  + #XK_ûdžÏ + 0x00b8 + + ) + +650  + #XK_Úesu³riÜ + 0x00b9 + + ) + +651  + #XK_masculše + 0x00b¨ + + ) + +652  + #XK_gužËmÙright + 0x00bb + + ) + +653  + #XK_Úequ¬‹r + 0x00bø + + ) + +654  + #XK_Úeh®f + 0x00bd + + ) + +655  + #XK_th»equ¬‹rs + 0x00b + + ) + +656  + #XK_que¡iÚdown + 0x00bà + + ) + +657  + #XK_Ag¿ve + 0x00c0 + + ) + +658  + #XK_Aacu‹ + 0x00c1 + + ) + +659  + #XK_Acœcumæex + 0x00c2 + + ) + +660  + #XK_Atžde + 0x00c3 + + ) + +661  + #XK_AdŸ”esis + 0x00c4 + + ) + +662  + #XK_Aršg + 0x00c5 + + ) + +663  + #XK_AE + 0x00c6 + + ) + +664  + #XK_CûdžÏ + 0x00c7 + + ) + +665  + #XK_Eg¿ve + 0x00c8 + + ) + +666  + #XK_Eacu‹ + 0x00c9 + + ) + +667  + #XK_Ecœcumæex + 0x00ÿ + + ) + +668  + #XK_EdŸ”esis + 0x00cb + + ) + +669  + #XK_Ig¿ve + 0x00cø + + ) + +670  + #XK_Iacu‹ + 0x00cd + + ) + +671  + #XK_Icœcumæex + 0x00û + + ) + +672  + #XK_IdŸ”esis + 0x00cà + + ) + +673  + #XK_ETH + 0x00d0 + + ) + +674  + #XK_Eth + 0x00d0 + + ) + +675  + #XK_Ntžde + 0x00d1 + + ) + +676  + #XK_Og¿ve + 0x00d2 + + ) + +677  + #XK_Oacu‹ + 0x00d3 + + ) + +678  + #XK_Ocœcumæex + 0x00d4 + + ) + +679  + #XK_Otžde + 0x00d5 + + ) + +680  + #XK_OdŸ”esis + 0x00d6 + + ) + +681  + #XK_muÉly + 0x00d7 + + ) + +682  + #XK_O¦ash + 0x00d8 + + ) + +683  + #XK_Ooblique + 0x00d8 + + ) + +684  + #XK_Ug¿ve + 0x00d9 + + ) + +685  + #XK_Uacu‹ + 0x00d¨ + + ) + +686  + #XK_Ucœcumæex + 0x00db + + ) + +687  + #XK_UdŸ”esis + 0x00dø + + ) + +688  + #XK_Yacu‹ + 0x00dd + + ) + +689  + #XK_THORN + 0x00d + + ) + +690  + #XK_ThÜn + 0x00d + + ) + +691  + #XK_ssh¬p + 0x00dà + + ) + +692  + #XK_ag¿ve + 0x00e0 + + ) + +693  + #XK_¯cu‹ + 0x00e1 + + ) + +694  + #XK_acœcumæex + 0x00e2 + + ) + +695  + #XK_©žde + 0x00e3 + + ) + +696  + #XK_adŸ”esis + 0x00e4 + + ) + +697  + #XK_¬šg + 0x00e5 + + ) + +698  + #XK_« + 0x00e6 + + ) + +699  + #XK_cûdžÏ + 0x00e7 + + ) + +700  + #XK_eg¿ve + 0x00e8 + + ) + +701  + #XK_—cu‹ + 0x00e9 + + ) + +702  + #XK_ecœcumæex + 0x00— + + ) + +703  + #XK_edŸ”esis + 0x00eb + + ) + +704  + #XK_ig¿ve + 0x00eø + + ) + +705  + #XK_Ÿcu‹ + 0x00ed + + ) + +706  + #XK_icœcumæex + 0x00“ + + ) + +707  + #XK_idŸ”esis + 0x00eà + + ) + +708  + #XK_‘h + 0x00f0 + + ) + +709  + #XK_Ážde + 0x00f1 + + ) + +710  + #XK_og¿ve + 0x00f2 + + ) + +711  + #XK_ßcu‹ + 0x00f3 + + ) + +712  + #XK_ocœcumæex + 0x00f4 + + ) + +713  + #XK_Ùžde + 0x00f5 + + ) + +714  + #XK_odŸ”esis + 0x00f6 + + ) + +715  + #XK_divisiÚ + 0x00f7 + + ) + +716  + #XK_o¦ash + 0x00f8 + + ) + +717  + #XK_ooblique + 0x00f8 + + ) + +718  + #XK_ug¿ve + 0x00f9 + + ) + +719  + #XK_uacu‹ + 0x00ç + + ) + +720  + #XK_ucœcumæex + 0x00fb + + ) + +721  + #XK_udŸ”esis + 0x00fø + + ) + +722  + #XK_yacu‹ + 0x00fd + + ) + +723  + #XK_thÜn + 0x00ã + + ) + +724  + #XK_ydŸ”esis + 0x00fà + + ) + +732 #ifdeà +XK_LATIN2 + + +733  + #XK_AogÚek + 0x01a1 + + ) + +734  + #XK_b»ve + 0x01a2 + + ) + +735  + #XK_L¡roke + 0x01a3 + + ) + +736  + #XK_LÿrÚ + 0x01a5 + + ) + +737  + #XK_Sacu‹ + 0x01a6 + + ) + +738  + #XK_SÿrÚ + 0x01a9 + + ) + +739  + #XK_SûdžÏ + 0x01¯ + + ) + +740  + #XK_TÿrÚ + 0x01ab + + ) + +741  + #XK_Zacu‹ + 0x01aø + + ) + +742  + #XK_ZÿrÚ + 0x01« + + ) + +743  + #XK_ZabovedÙ + 0x01aà + + ) + +744  + #XK_aogÚek + 0x01b1 + + ) + +745  + #XK_ogÚek + 0x01b2 + + ) + +746  + #XK_l¡roke + 0x01b3 + + ) + +747  + #XK_lÿrÚ + 0x01b5 + + ) + +748  + #XK_§cu‹ + 0x01b6 + + ) + +749  + #XK_ÿrÚ + 0x01b7 + + ) + +750  + #XK_sÿrÚ + 0x01b9 + + ) + +751  + #XK_sûdžÏ + 0x01b¨ + + ) + +752  + #XK_tÿrÚ + 0x01bb + + ) + +753  + #XK_zacu‹ + 0x01bø + + ) + +754  + #XK_doubËacu‹ + 0x01bd + + ) + +755  + #XK_zÿrÚ + 0x01b + + ) + +756  + #XK_zabovedÙ + 0x01bà + + ) + +757  + #XK_Racu‹ + 0x01c0 + + ) + +758  + #XK_Ab»ve + 0x01c3 + + ) + +759  + #XK_Lacu‹ + 0x01c5 + + ) + +760  + #XK_Cacu‹ + 0x01c6 + + ) + +761  + #XK_CÿrÚ + 0x01c8 + + ) + +762  + #XK_EogÚek + 0x01ÿ + + ) + +763  + #XK_EÿrÚ + 0x01cø + + ) + +764  + #XK_DÿrÚ + 0x01cà + + ) + +765  + #XK_D¡roke + 0x01d0 + + ) + +766  + #XK_Nacu‹ + 0x01d1 + + ) + +767  + #XK_NÿrÚ + 0x01d2 + + ) + +768  + #XK_OdoubËacu‹ + 0x01d5 + + ) + +769  + #XK_RÿrÚ + 0x01d8 + + ) + +770  + #XK_Uršg + 0x01d9 + + ) + +771  + #XK_UdoubËacu‹ + 0x01db + + ) + +772  + #XK_TûdžÏ + 0x01d + + ) + +773  + #XK_¿cu‹ + 0x01e0 + + ) + +774  + #XK_ab»ve + 0x01e3 + + ) + +775  + #XK_Ïcu‹ + 0x01e5 + + ) + +776  + #XK_ÿcu‹ + 0x01e6 + + ) + +777  + #XK_cÿrÚ + 0x01e8 + + ) + +778  + #XK_eogÚek + 0x01— + + ) + +779  + #XK_eÿrÚ + 0x01eø + + ) + +780  + #XK_dÿrÚ + 0x01eà + + ) + +781  + #XK_d¡roke + 0x01f0 + + ) + +782  + #XK_Çcu‹ + 0x01f1 + + ) + +783  + #XK_nÿrÚ + 0x01f2 + + ) + +784  + #XK_odoubËacu‹ + 0x01f5 + + ) + +785  + #XK_rÿrÚ + 0x01f8 + + ) + +786  + #XK_uršg + 0x01f9 + + ) + +787  + #XK_udoubËacu‹ + 0x01fb + + ) + +788  + #XK_tûdžÏ + 0x01ã + + ) + +789  + #XK_abovedÙ + 0x01fà + + ) + +797 #ifdeà +XK_LATIN3 + + +798  + #XK_H¡roke + 0x02a1 + + ) + +799  + #XK_Hcœcumæex + 0x02a6 + + ) + +800  + #XK_IabovedÙ + 0x02a9 + + ) + +801  + #XK_Gb»ve + 0x02ab + + ) + +802  + #XK_Jcœcumæex + 0x02aø + + ) + +803  + #XK_h¡roke + 0x02b1 + + ) + +804  + #XK_hcœcumæex + 0x02b6 + + ) + +805  + #XK_idÙËss + 0x02b9 + + ) + +806  + #XK_gb»ve + 0x02bb + + ) + +807  + #XK_jcœcumæex + 0x02bø + + ) + +808  + #XK_CabovedÙ + 0x02c5 + + ) + +809  + #XK_Ccœcumæex + 0x02c6 + + ) + +810  + #XK_GabovedÙ + 0x02d5 + + ) + +811  + #XK_Gcœcumæex + 0x02d8 + + ) + +812  + #XK_Ub»ve + 0x02dd + + ) + +813  + #XK_Scœcumæex + 0x02d + + ) + +814  + #XK_ÿbovedÙ + 0x02e5 + + ) + +815  + #XK_ccœcumæex + 0x02e6 + + ) + +816  + #XK_gabovedÙ + 0x02f5 + + ) + +817  + #XK_gcœcumæex + 0x02f8 + + ) + +818  + #XK_ub»ve + 0x02fd + + ) + +819  + #XK_scœcumæex + 0x02ã + + ) + +828 #ifdeà +XK_LATIN4 + + +829  + #XK_k¿ + 0x03a2 + + ) + +830  + #XK_k­· + 0x03a2 + + ) + +831  + #XK_RûdžÏ + 0x03a3 + + ) + +832  + #XK_Itžde + 0x03a5 + + ) + +833  + #XK_LûdžÏ + 0x03a6 + + ) + +834  + #XK_EmaüÚ + 0x03¯ + + ) + +835  + #XK_GûdžÏ + 0x03ab + + ) + +836  + #XK_T¦ash + 0x03aø + + ) + +837  + #XK_rûdžÏ + 0x03b3 + + ) + +838  + #XK_™žde + 0x03b5 + + ) + +839  + #XK_lûdžÏ + 0x03b6 + + ) + +840  + #XK_emaüÚ + 0x03b¨ + + ) + +841  + #XK_gûdžÏ + 0x03bb + + ) + +842  + #XK_t¦ash + 0x03bø + + ) + +843  + #XK_ENG + 0x03bd + + ) + +844  + #XK_’g + 0x03bà + + ) + +845  + #XK_AmaüÚ + 0x03c0 + + ) + +846  + #XK_IogÚek + 0x03c7 + + ) + +847  + #XK_EabovedÙ + 0x03cø + + ) + +848  + #XK_ImaüÚ + 0x03cà + + ) + +849  + #XK_NûdžÏ + 0x03d1 + + ) + +850  + #XK_OmaüÚ + 0x03d2 + + ) + +851  + #XK_KûdžÏ + 0x03d3 + + ) + +852  + #XK_UogÚek + 0x03d9 + + ) + +853  + #XK_Utžde + 0x03dd + + ) + +854  + #XK_UmaüÚ + 0x03d + + ) + +855  + #XK_amaüÚ + 0x03e0 + + ) + +856  + #XK_iogÚek + 0x03e7 + + ) + +857  + #XK_—bovedÙ + 0x03eø + + ) + +858  + #XK_imaüÚ + 0x03eà + + ) + +859  + #XK_nûdžÏ + 0x03f1 + + ) + +860  + #XK_omaüÚ + 0x03f2 + + ) + +861  + #XK_kûdžÏ + 0x03f3 + + ) + +862  + #XK_uogÚek + 0x03f9 + + ) + +863  + #XK_utžde + 0x03fd + + ) + +864  + #XK_umaüÚ + 0x03ã + + ) + +870 #ifdeà +XK_LATIN8 + + +871  + #XK_Wcœcumæex + 0x1000174 + + ) + +872  + #XK_wcœcumæex + 0x1000175 + + ) + +873  + #XK_Ycœcumæex + 0x1000176 + + ) + +874  + #XK_ycœcumæex + 0x1000177 + + ) + +875  + #XK_BabovedÙ + 0x1001e02 + + ) + +876  + #XK_babovedÙ + 0x1001e03 + + ) + +877  + #XK_DabovedÙ + 0x1001e0¨ + + ) + +878  + #XK_dabovedÙ + 0x1001e0b + + ) + +879  + #XK_FabovedÙ + 0x1001e1 + + ) + +880  + #XK_çbovedÙ + 0x1001e1à + + ) + +881  + #XK_MabovedÙ + 0x1001e40 + + ) + +882  + #XK_mabovedÙ + 0x1001e41 + + ) + +883  + #XK_PabovedÙ + 0x1001e56 + + ) + +884  + #XK_·bovedÙ + 0x1001e57 + + ) + +885  + #XK_SabovedÙ + 0x1001e60 + + ) + +886  + #XK_§bovedÙ + 0x1001e61 + + ) + +887  + #XK_TabovedÙ + 0x1001e6¨ + + ) + +888  + #XK_bovedÙ + 0x1001e6b + + ) + +889  + #XK_Wg¿ve + 0x1001e80 + + ) + +890  + #XK_wg¿ve + 0x1001e81 + + ) + +891  + #XK_Wacu‹ + 0x1001e82 + + ) + +892  + #XK_wacu‹ + 0x1001e83 + + ) + +893  + #XK_WdŸ”esis + 0x1001e84 + + ) + +894  + #XK_wdŸ”esis + 0x1001e85 + + ) + +895  + #XK_Yg¿ve + 0x1001ef2 + + ) + +896  + #XK_yg¿ve + 0x1001ef3 + + ) + +904 #ifdeà +XK_LATIN9 + + +905  + #XK_OE + 0x13bø + + ) + +906  + #XK_Û + 0x13bd + + ) + +907  + #XK_YdŸ”esis + 0x13b + + ) + +915 #ifdeà +XK_KATAKANA + + +916  + #XK_ov”lše + 0x047 + + ) + +917  + #XK_kªa_fuÎ¡Ý + 0x04a1 + + ) + +918  + #XK_kªa_Ý’šgb¿ck‘ + 0x04a2 + + ) + +919  + #XK_kªa_þosšgb¿ck‘ + 0x04a3 + + ) + +920  + #XK_kªa_comma + 0x04a4 + + ) + +921  + #XK_kªa_cÚjunùive + 0x04a5 + + ) + +922  + #XK_kªa_middËdÙ + 0x04a5 + + ) + +923  + #XK_kªa_WO + 0x04a6 + + ) + +924  + #XK_kªa_a + 0x04a7 + + ) + +925  + #XK_kªa_i + 0x04a8 + + ) + +926  + #XK_kªa_u + 0x04a9 + + ) + +927  + #XK_kªa_e + 0x04¯ + + ) + +928  + #XK_kªa_o + 0x04ab + + ) + +929  + #XK_kªa_ya + 0x04aø + + ) + +930  + #XK_kªa_yu + 0x04ad + + ) + +931  + #XK_kªa_yo + 0x04« + + ) + +932  + #XK_kªa_tsu + 0x04aà + + ) + +933  + #XK_kªa_tu + 0x04aà + + ) + +934  + #XK_´ÞÚgedsound + 0x04b0 + + ) + +935  + #XK_kªa_A + 0x04b1 + + ) + +936  + #XK_kªa_I + 0x04b2 + + ) + +937  + #XK_kªa_U + 0x04b3 + + ) + +938  + #XK_kªa_E + 0x04b4 + + ) + +939  + #XK_kªa_O + 0x04b5 + + ) + +940  + #XK_kªa_KA + 0x04b6 + + ) + +941  + #XK_kªa_KI + 0x04b7 + + ) + +942  + #XK_kªa_KU + 0x04b8 + + ) + +943  + #XK_kªa_KE + 0x04b9 + + ) + +944  + #XK_kªa_KO + 0x04b¨ + + ) + +945  + #XK_kªa_SA + 0x04bb + + ) + +946  + #XK_kªa_SHI + 0x04bø + + ) + +947  + #XK_kªa_SU + 0x04bd + + ) + +948  + #XK_kªa_SE + 0x04b + + ) + +949  + #XK_kªa_SO + 0x04bà + + ) + +950  + #XK_kªa_TA + 0x04c0 + + ) + +951  + #XK_kªa_CHI + 0x04c1 + + ) + +952  + #XK_kªa_TI + 0x04c1 + + ) + +953  + #XK_kªa_TSU + 0x04c2 + + ) + +954  + #XK_kªa_TU + 0x04c2 + + ) + +955  + #XK_kªa_TE + 0x04c3 + + ) + +956  + #XK_kªa_TO + 0x04c4 + + ) + +957  + #XK_kªa_NA + 0x04c5 + + ) + +958  + #XK_kªa_NI + 0x04c6 + + ) + +959  + #XK_kªa_NU + 0x04c7 + + ) + +960  + #XK_kªa_NE + 0x04c8 + + ) + +961  + #XK_kªa_NO + 0x04c9 + + ) + +962  + #XK_kªa_HA + 0x04ÿ + + ) + +963  + #XK_kªa_HI + 0x04cb + + ) + +964  + #XK_kªa_FU + 0x04cø + + ) + +965  + #XK_kªa_HU + 0x04cø + + ) + +966  + #XK_kªa_HE + 0x04cd + + ) + +967  + #XK_kªa_HO + 0x04û + + ) + +968  + #XK_kªa_MA + 0x04cà + + ) + +969  + #XK_kªa_MI + 0x04d0 + + ) + +970  + #XK_kªa_MU + 0x04d1 + + ) + +971  + #XK_kªa_ME + 0x04d2 + + ) + +972  + #XK_kªa_MO + 0x04d3 + + ) + +973  + #XK_kªa_YA + 0x04d4 + + ) + +974  + #XK_kªa_YU + 0x04d5 + + ) + +975  + #XK_kªa_YO + 0x04d6 + + ) + +976  + #XK_kªa_RA + 0x04d7 + + ) + +977  + #XK_kªa_RI + 0x04d8 + + ) + +978  + #XK_kªa_RU + 0x04d9 + + ) + +979  + #XK_kªa_RE + 0x04d¨ + + ) + +980  + #XK_kªa_RO + 0x04db + + ) + +981  + #XK_kªa_WA + 0x04dø + + ) + +982  + #XK_kªa_N + 0x04dd + + ) + +983  + #XK_voiûdsound + 0x04d + + ) + +984  + #XK_£mivoiûdsound + 0x04dà + + ) + +985  + #XK_kªa_sw™ch + 0xff7 + + ) + +993 #ifdeà +XK_ARABIC + + +994  + #XK_F¬si_0 + 0x10006f0 + + ) + +995  + #XK_F¬si_1 + 0x10006f1 + + ) + +996  + #XK_F¬si_2 + 0x10006f2 + + ) + +997  + #XK_F¬si_3 + 0x10006f3 + + ) + +998  + #XK_F¬si_4 + 0x10006f4 + + ) + +999  + #XK_F¬si_5 + 0x10006f5 + + ) + +1000  + #XK_F¬si_6 + 0x10006f6 + + ) + +1001  + #XK_F¬si_7 + 0x10006f7 + + ) + +1002  + #XK_F¬si_8 + 0x10006f8 + + ) + +1003  + #XK_F¬si_9 + 0x10006f9 + + ) + +1004  + #XK_A¿bic_³rûÁ + 0x100066¨ + + ) + +1005  + #XK_A¿bic_su³rsüt_®ef + 0x1000670 + + ) + +1006  + #XK_A¿bic_‰eh + 0x1000679 + + ) + +1007  + #XK_A¿bic_³h + 0x100067 + + ) + +1008  + #XK_A¿bic_tcheh + 0x1000686 + + ) + +1009  + #XK_A¿bic_dd® + 0x1000688 + + ) + +1010  + #XK_A¿bic_¼eh + 0x1000691 + + ) + +1011  + #XK_A¿bic_comma + 0x05aø + + ) + +1012  + #XK_A¿bic_fuÎ¡Ý + 0x10006d4 + + ) + +1013  + #XK_A¿bic_0 + 0x1000660 + + ) + +1014  + #XK_A¿bic_1 + 0x1000661 + + ) + +1015  + #XK_A¿bic_2 + 0x1000662 + + ) + +1016  + #XK_A¿bic_3 + 0x1000663 + + ) + +1017  + #XK_A¿bic_4 + 0x1000664 + + ) + +1018  + #XK_A¿bic_5 + 0x1000665 + + ) + +1019  + #XK_A¿bic_6 + 0x1000666 + + ) + +1020  + #XK_A¿bic_7 + 0x1000667 + + ) + +1021  + #XK_A¿bic_8 + 0x1000668 + + ) + +1022  + #XK_A¿bic_9 + 0x1000669 + + ) + +1023  + #XK_A¿bic_£micÞÚ + 0x05bb + + ) + +1024  + #XK_A¿bic_que¡iÚ_m¬k + 0x05bà + + ) + +1025  + #XK_A¿bic_hamza + 0x05c1 + + ) + +1026  + #XK_A¿bic_maddaÚ®ef + 0x05c2 + + ) + +1027  + #XK_A¿bic_hamzaÚ®ef + 0x05c3 + + ) + +1028  + #XK_A¿bic_hamzaÚwaw + 0x05c4 + + ) + +1029  + #XK_A¿bic_hamzaund”®ef + 0x05c5 + + ) + +1030  + #XK_A¿bic_hamzaÚyeh + 0x05c6 + + ) + +1031  + #XK_A¿bic_®ef + 0x05c7 + + ) + +1032  + #XK_A¿bic_beh + 0x05c8 + + ) + +1033  + #XK_A¿bic_‹hm¬bu + 0x05c9 + + ) + +1034  + #XK_A¿bic_‹h + 0x05ÿ + + ) + +1035  + #XK_A¿bic_theh + 0x05cb + + ) + +1036  + #XK_A¿bic_j“m + 0x05cø + + ) + +1037  + #XK_A¿bic_hah + 0x05cd + + ) + +1038  + #XK_A¿bic_khah + 0x05û + + ) + +1039  + #XK_A¿bic_d® + 0x05cà + + ) + +1040  + #XK_A¿bic_th® + 0x05d0 + + ) + +1041  + #XK_A¿bic_¿ + 0x05d1 + + ) + +1042  + #XK_A¿bic_zaš + 0x05d2 + + ) + +1043  + #XK_A¿bic_£’ + 0x05d3 + + ) + +1044  + #XK_A¿bic_sh“n + 0x05d4 + + ) + +1045  + #XK_A¿bic_§d + 0x05d5 + + ) + +1046  + #XK_A¿bic_dad + 0x05d6 + + ) + +1047  + #XK_A¿bic_h + 0x05d7 + + ) + +1048  + #XK_A¿bic_zah + 0x05d8 + + ) + +1049  + #XK_A¿bic_aš + 0x05d9 + + ) + +1050  + #XK_A¿bic_ghaš + 0x05d¨ + + ) + +1051  + #XK_A¿bic_tw“l + 0x05e0 + + ) + +1052  + #XK_A¿bic_ãh + 0x05e1 + + ) + +1053  + #XK_A¿bic_qaf + 0x05e2 + + ) + +1054  + #XK_A¿bic_kaf + 0x05e3 + + ) + +1055  + #XK_A¿bic_Ïm + 0x05e4 + + ) + +1056  + #XK_A¿bic_m“m + 0x05e5 + + ) + +1057  + #XK_A¿bic_noÚ + 0x05e6 + + ) + +1058  + #XK_A¿bic_ha + 0x05e7 + + ) + +1059  + #XK_A¿bic_heh + 0x05e7 + + ) + +1060  + #XK_A¿bic_waw + 0x05e8 + + ) + +1061  + #XK_A¿bic_®efmaksu¿ + 0x05e9 + + ) + +1062  + #XK_A¿bic_yeh + 0x05— + + ) + +1063  + #XK_A¿bic_çth©ª + 0x05eb + + ) + +1064  + #XK_A¿bic_damm©ª + 0x05eø + + ) + +1065  + #XK_A¿bic_ka¤©ª + 0x05ed + + ) + +1066  + #XK_A¿bic_çtha + 0x05“ + + ) + +1067  + #XK_A¿bic_damma + 0x05eà + + ) + +1068  + #XK_A¿bic_ka¤a + 0x05f0 + + ) + +1069  + #XK_A¿bic_shadda + 0x05f1 + + ) + +1070  + #XK_A¿bic_sukun + 0x05f2 + + ) + +1071  + #XK_A¿bic_madda_above + 0x1000653 + + ) + +1072  + #XK_A¿bic_hamza_above + 0x1000654 + + ) + +1073  + #XK_A¿bic_hamza_b–ow + 0x1000655 + + ) + +1074  + #XK_A¿bic_jeh + 0x1000698 + + ) + +1075  + #XK_A¿bic_veh + 0x10006a4 + + ) + +1076  + #XK_A¿bic_keheh + 0x10006a9 + + ) + +1077  + #XK_A¿bic_gaf + 0x10006aà + + ) + +1078  + #XK_A¿bic_noÚ_ghuÂa + 0x10006b¨ + + ) + +1079  + #XK_A¿bic_heh_dßchashm“ + 0x10006b + + ) + +1080  + #XK_F¬si_yeh + 0x10006cø + + ) + +1081  + #XK_A¿bic_çrsi_yeh + 0x10006cø + + ) + +1082  + #XK_A¿bic_yeh_b¬“ + 0x10006d2 + + ) + +1083  + #XK_A¿bic_heh_gßl + 0x10006c1 + + ) + +1084  + #XK_A¿bic_sw™ch + 0xff7 + + ) + +1091 #ifdeà +XK_CYRILLIC + + +1092  + #XK_Cyržlic_GHE_b¬ + 0x1000492 + + ) + +1093  + #XK_Cyržlic_ghe_b¬ + 0x1000493 + + ) + +1094  + #XK_Cyržlic_ZHE_desûnd” + 0x1000496 + + ) + +1095  + #XK_Cyržlic_zhe_desûnd” + 0x1000497 + + ) + +1096  + #XK_Cyržlic_KA_desûnd” + 0x100049¨ + + ) + +1097  + #XK_Cyržlic_ka_desûnd” + 0x100049b + + ) + +1098  + #XK_Cyržlic_KA_v”t¡roke + 0x100049ø + + ) + +1099  + #XK_Cyržlic_ka_v”t¡roke + 0x100049d + + ) + +1100  + #XK_Cyržlic_EN_desûnd” + 0x10004a2 + + ) + +1101  + #XK_Cyržlic_’_desûnd” + 0x10004a3 + + ) + +1102  + #XK_Cyržlic_U_¡¿ight + 0x10004« + + ) + +1103  + #XK_Cyržlic_u_¡¿ight + 0x10004aà + + ) + +1104  + #XK_Cyržlic_U_¡¿ight_b¬ + 0x10004b0 + + ) + +1105  + #XK_Cyržlic_u_¡¿ight_b¬ + 0x10004b1 + + ) + +1106  + #XK_Cyržlic_HA_desûnd” + 0x10004b2 + + ) + +1107  + #XK_Cyržlic_ha_desûnd” + 0x10004b3 + + ) + +1108  + #XK_Cyržlic_CHE_desûnd” + 0x10004b6 + + ) + +1109  + #XK_Cyržlic_che_desûnd” + 0x10004b7 + + ) + +1110  + #XK_Cyržlic_CHE_v”t¡roke + 0x10004b8 + + ) + +1111  + #XK_Cyržlic_che_v”t¡roke + 0x10004b9 + + ) + +1112  + #XK_Cyržlic_SHHA + 0x10004b¨ + + ) + +1113  + #XK_Cyržlic_shha + 0x10004bb + + ) + +1115  + #XK_Cyržlic_SCHWA + 0x10004d8 + + ) + +1116  + #XK_Cyržlic_schwa + 0x10004d9 + + ) + +1117  + #XK_Cyržlic_I_maüÚ + 0x10004e2 + + ) + +1118  + #XK_Cyržlic_i_maüÚ + 0x10004e3 + + ) + +1119  + #XK_Cyržlic_O_b¬ + 0x10004e8 + + ) + +1120  + #XK_Cyržlic_o_b¬ + 0x10004e9 + + ) + +1121  + #XK_Cyržlic_U_maüÚ + 0x10004“ + + ) + +1122  + #XK_Cyržlic_u_maüÚ + 0x10004eà + + ) + +1124  + #XK_S”bŸn_dje + 0x06a1 + + ) + +1125  + #XK_MaûdÚŸ_gje + 0x06a2 + + ) + +1126  + #XK_Cyržlic_io + 0x06a3 + + ) + +1127  + #XK_Uk¿šŸn_› + 0x06a4 + + ) + +1128  + #XK_Uk¿nŸn_je + 0x06a4 + + ) + +1129  + #XK_MaûdÚŸ_d£ + 0x06a5 + + ) + +1130  + #XK_Uk¿šŸn_i + 0x06a6 + + ) + +1131  + #XK_Uk¿nŸn_i + 0x06a6 + + ) + +1132  + #XK_Uk¿šŸn_yi + 0x06a7 + + ) + +1133  + #XK_Uk¿nŸn_yi + 0x06a7 + + ) + +1134  + #XK_Cyržlic_je + 0x06a8 + + ) + +1135  + #XK_S”bŸn_je + 0x06a8 + + ) + +1136  + #XK_Cyržlic_lje + 0x06a9 + + ) + +1137  + #XK_S”bŸn_lje + 0x06a9 + + ) + +1138  + #XK_Cyržlic_nje + 0x06¯ + + ) + +1139  + #XK_S”bŸn_nje + 0x06¯ + + ) + +1140  + #XK_S”bŸn_tshe + 0x06ab + + ) + +1141  + #XK_MaûdÚŸ_kje + 0x06aø + + ) + +1142  + #XK_Uk¿šŸn_ghe_w™h_u±uº + 0x06ad + + ) + +1143  + #XK_By–ÜussŸn_shÜtu + 0x06« + + ) + +1144  + #XK_Cyržlic_dzhe + 0x06aà + + ) + +1145  + #XK_S”bŸn_dze + 0x06aà + + ) + +1146  + #XK_num”osign + 0x06b0 + + ) + +1147  + #XK_S”bŸn_DJE + 0x06b1 + + ) + +1148  + #XK_MaûdÚŸ_GJE + 0x06b2 + + ) + +1149  + #XK_Cyržlic_IO + 0x06b3 + + ) + +1150  + #XK_Uk¿šŸn_IE + 0x06b4 + + ) + +1151  + #XK_Uk¿nŸn_JE + 0x06b4 + + ) + +1152  + #XK_MaûdÚŸ_DSE + 0x06b5 + + ) + +1153  + #XK_Uk¿šŸn_I + 0x06b6 + + ) + +1154  + #XK_Uk¿nŸn_I + 0x06b6 + + ) + +1155  + #XK_Uk¿šŸn_YI + 0x06b7 + + ) + +1156  + #XK_Uk¿nŸn_YI + 0x06b7 + + ) + +1157  + #XK_Cyržlic_JE + 0x06b8 + + ) + +1158  + #XK_S”bŸn_JE + 0x06b8 + + ) + +1159  + #XK_Cyržlic_LJE + 0x06b9 + + ) + +1160  + #XK_S”bŸn_LJE + 0x06b9 + + ) + +1161  + #XK_Cyržlic_NJE + 0x06b¨ + + ) + +1162  + #XK_S”bŸn_NJE + 0x06b¨ + + ) + +1163  + #XK_S”bŸn_TSHE + 0x06bb + + ) + +1164  + #XK_MaûdÚŸ_KJE + 0x06bø + + ) + +1165  + #XK_Uk¿šŸn_GHE_WITH_UPTURN + 0x06bd + + ) + +1166  + #XK_By–ÜussŸn_SHORTU + 0x06b + + ) + +1167  + #XK_Cyržlic_DZHE + 0x06bà + + ) + +1168  + #XK_S”bŸn_DZE + 0x06bà + + ) + +1169  + #XK_Cyržlic_yu + 0x06c0 + + ) + +1170  + #XK_Cyržlic_a + 0x06c1 + + ) + +1171  + #XK_Cyržlic_be + 0x06c2 + + ) + +1172  + #XK_Cyržlic_t£ + 0x06c3 + + ) + +1173  + #XK_Cyržlic_de + 0x06c4 + + ) + +1174  + #XK_Cyržlic_› + 0x06c5 + + ) + +1175  + #XK_Cyržlic_ef + 0x06c6 + + ) + +1176  + #XK_Cyržlic_ghe + 0x06c7 + + ) + +1177  + #XK_Cyržlic_ha + 0x06c8 + + ) + +1178  + #XK_Cyržlic_i + 0x06c9 + + ) + +1179  + #XK_Cyržlic_shÜti + 0x06ÿ + + ) + +1180  + #XK_Cyržlic_ka + 0x06cb + + ) + +1181  + #XK_Cyržlic_– + 0x06cø + + ) + +1182  + #XK_Cyržlic_em + 0x06cd + + ) + +1183  + #XK_Cyržlic_’ + 0x06û + + ) + +1184  + #XK_Cyržlic_o + 0x06cà + + ) + +1185  + #XK_Cyržlic_³ + 0x06d0 + + ) + +1186  + #XK_Cyržlic_ya + 0x06d1 + + ) + +1187  + #XK_Cyržlic_” + 0x06d2 + + ) + +1188  + #XK_Cyržlic_es + 0x06d3 + + ) + +1189  + #XK_Cyržlic_‹ + 0x06d4 + + ) + +1190  + #XK_Cyržlic_u + 0x06d5 + + ) + +1191  + #XK_Cyržlic_zhe + 0x06d6 + + ) + +1192  + #XK_Cyržlic_ve + 0x06d7 + + ) + +1193  + #XK_Cyržlic_soásign + 0x06d8 + + ) + +1194  + #XK_Cyržlic_y”u + 0x06d9 + + ) + +1195  + #XK_Cyržlic_ze + 0x06d¨ + + ) + +1196  + #XK_Cyržlic_sha + 0x06db + + ) + +1197  + #XK_Cyržlic_e + 0x06dø + + ) + +1198  + #XK_Cyržlic_shcha + 0x06dd + + ) + +1199  + #XK_Cyržlic_che + 0x06d + + ) + +1200  + #XK_Cyržlic_h¬dsign + 0x06dà + + ) + +1201  + #XK_Cyržlic_YU + 0x06e0 + + ) + +1202  + #XK_Cyržlic_A + 0x06e1 + + ) + +1203  + #XK_Cyržlic_BE + 0x06e2 + + ) + +1204  + #XK_Cyržlic_TSE + 0x06e3 + + ) + +1205  + #XK_Cyržlic_DE + 0x06e4 + + ) + +1206  + #XK_Cyržlic_IE + 0x06e5 + + ) + +1207  + #XK_Cyržlic_EF + 0x06e6 + + ) + +1208  + #XK_Cyržlic_GHE + 0x06e7 + + ) + +1209  + #XK_Cyržlic_HA + 0x06e8 + + ) + +1210  + #XK_Cyržlic_I + 0x06e9 + + ) + +1211  + #XK_Cyržlic_SHORTI + 0x06— + + ) + +1212  + #XK_Cyržlic_KA + 0x06eb + + ) + +1213  + #XK_Cyržlic_EL + 0x06eø + + ) + +1214  + #XK_Cyržlic_EM + 0x06ed + + ) + +1215  + #XK_Cyržlic_EN + 0x06“ + + ) + +1216  + #XK_Cyržlic_O + 0x06eà + + ) + +1217  + #XK_Cyržlic_PE + 0x06f0 + + ) + +1218  + #XK_Cyržlic_YA + 0x06f1 + + ) + +1219  + #XK_Cyržlic_ER + 0x06f2 + + ) + +1220  + #XK_Cyržlic_ES + 0x06f3 + + ) + +1221  + #XK_Cyržlic_TE + 0x06f4 + + ) + +1222  + #XK_Cyržlic_U + 0x06f5 + + ) + +1223  + #XK_Cyržlic_ZHE + 0x06f6 + + ) + +1224  + #XK_Cyržlic_VE + 0x06f7 + + ) + +1225  + #XK_Cyržlic_SOFTSIGN + 0x06f8 + + ) + +1226  + #XK_Cyržlic_YERU + 0x06f9 + + ) + +1227  + #XK_Cyržlic_ZE + 0x06ç + + ) + +1228  + #XK_Cyržlic_SHA + 0x06fb + + ) + +1229  + #XK_Cyržlic_E + 0x06fø + + ) + +1230  + #XK_Cyržlic_SHCHA + 0x06fd + + ) + +1231  + #XK_Cyržlic_CHE + 0x06ã + + ) + +1232  + #XK_Cyržlic_HARDSIGN + 0x06fà + + ) + +1241 #ifdeà +XK_GREEK + + +1242  + #XK_G»ek_ALPHAacûÁ + 0x07a1 + + ) + +1243  + #XK_G»ek_EPSILONacûÁ + 0x07a2 + + ) + +1244  + #XK_G»ek_ETAacûÁ + 0x07a3 + + ) + +1245  + #XK_G»ek_IOTAacûÁ + 0x07a4 + + ) + +1246  + #XK_G»ek_IOTAd›»sis + 0x07a5 + + ) + +1247  + #XK_G»ek_IOTAdŸ”esis + 0x07a5 + + ) + +1248  + #XK_G»ek_OMICRONacûÁ + 0x07a7 + + ) + +1249  + #XK_G»ek_UPSILONacûÁ + 0x07a8 + + ) + +1250  + #XK_G»ek_UPSILONd›»sis + 0x07a9 + + ) + +1251  + #XK_G»ek_OMEGAacûÁ + 0x07ab + + ) + +1252  + #XK_G»ek_acûÁd›»sis + 0x07« + + ) + +1253  + #XK_G»ek_hÜizb¬ + 0x07aà + + ) + +1254  + #XK_G»ek_®ph¯cûÁ + 0x07b1 + + ) + +1255  + #XK_G»ek_•sžÚacûÁ + 0x07b2 + + ) + +1256  + #XK_G»ek_‘¯cûÁ + 0x07b3 + + ) + +1257  + #XK_G»ek_iÙ¯cûÁ + 0x07b4 + + ) + +1258  + #XK_G»ek_iÙad›»sis + 0x07b5 + + ) + +1259  + #XK_G»ek_iÙ¯cûÁd›»sis + 0x07b6 + + ) + +1260  + #XK_G»ek_omiüÚacûÁ + 0x07b7 + + ) + +1261  + #XK_G»ek_upsžÚacûÁ + 0x07b8 + + ) + +1262  + #XK_G»ek_upsžÚd›»sis + 0x07b9 + + ) + +1263  + #XK_G»ek_upsžÚacûÁd›»sis + 0x07b¨ + + ) + +1264  + #XK_G»ek_omeg¯cûÁ + 0x07bb + + ) + +1265  + #XK_G»ek_ALPHA + 0x07c1 + + ) + +1266  + #XK_G»ek_BETA + 0x07c2 + + ) + +1267  + #XK_G»ek_GAMMA + 0x07c3 + + ) + +1268  + #XK_G»ek_DELTA + 0x07c4 + + ) + +1269  + #XK_G»ek_EPSILON + 0x07c5 + + ) + +1270  + #XK_G»ek_ZETA + 0x07c6 + + ) + +1271  + #XK_G»ek_ETA + 0x07c7 + + ) + +1272  + #XK_G»ek_THETA + 0x07c8 + + ) + +1273  + #XK_G»ek_IOTA + 0x07c9 + + ) + +1274  + #XK_G»ek_KAPPA + 0x07ÿ + + ) + +1275  + #XK_G»ek_LAMDA + 0x07cb + + ) + +1276  + #XK_G»ek_LAMBDA + 0x07cb + + ) + +1277  + #XK_G»ek_MU + 0x07cø + + ) + +1278  + #XK_G»ek_NU + 0x07cd + + ) + +1279  + #XK_G»ek_XI + 0x07û + + ) + +1280  + #XK_G»ek_OMICRON + 0x07cà + + ) + +1281  + #XK_G»ek_PI + 0x07d0 + + ) + +1282  + #XK_G»ek_RHO + 0x07d1 + + ) + +1283  + #XK_G»ek_SIGMA + 0x07d2 + + ) + +1284  + #XK_G»ek_TAU + 0x07d4 + + ) + +1285  + #XK_G»ek_UPSILON + 0x07d5 + + ) + +1286  + #XK_G»ek_PHI + 0x07d6 + + ) + +1287  + #XK_G»ek_CHI + 0x07d7 + + ) + +1288  + #XK_G»ek_PSI + 0x07d8 + + ) + +1289  + #XK_G»ek_OMEGA + 0x07d9 + + ) + +1290  + #XK_G»ek_®pha + 0x07e1 + + ) + +1291  + #XK_G»ek_b‘a + 0x07e2 + + ) + +1292  + #XK_G»ek_gamma + 0x07e3 + + ) + +1293  + #XK_G»ek_d– + 0x07e4 + + ) + +1294  + #XK_G»ek_•sžÚ + 0x07e5 + + ) + +1295  + #XK_G»ek_z‘a + 0x07e6 + + ) + +1296  + #XK_G»ek_‘a + 0x07e7 + + ) + +1297  + #XK_G»ek_th‘a + 0x07e8 + + ) + +1298  + #XK_G»ek_iÙa + 0x07e9 + + ) + +1299  + #XK_G»ek_k­· + 0x07— + + ) + +1300  + #XK_G»ek_Ïmda + 0x07eb + + ) + +1301  + #XK_G»ek_Ïmbda + 0x07eb + + ) + +1302  + #XK_G»ek_mu + 0x07eø + + ) + +1303  + #XK_G»ek_nu + 0x07ed + + ) + +1304  + #XK_G»ek_xi + 0x07“ + + ) + +1305  + #XK_G»ek_omiüÚ + 0x07eà + + ) + +1306  + #XK_G»ek_pi + 0x07f0 + + ) + +1307  + #XK_G»ek_rho + 0x07f1 + + ) + +1308  + #XK_G»ek_sigma + 0x07f2 + + ) + +1309  + #XK_G»ek_fš®sm®lsigma + 0x07f3 + + ) + +1310  + #XK_G»ek_u + 0x07f4 + + ) + +1311  + #XK_G»ek_upsžÚ + 0x07f5 + + ) + +1312  + #XK_G»ek_phi + 0x07f6 + + ) + +1313  + #XK_G»ek_chi + 0x07f7 + + ) + +1314  + #XK_G»ek_psi + 0x07f8 + + ) + +1315  + #XK_G»ek_omega + 0x07f9 + + ) + +1316  + #XK_G»ek_sw™ch + 0xff7 + + ) + +1325 #ifdeà +XK_TECHNICAL + + +1326  + #XK_Ëá¿diÿl + 0x08a1 + + ) + +1327  + #XK_tÝËá¿diÿl + 0x08a2 + + ) + +1328  + #XK_hÜizcÚÃùÜ + 0x08a3 + + ) + +1329  + #XK_tÝš‹g¿l + 0x08a4 + + ) + +1330  + #XK_bÙš‹g¿l + 0x08a5 + + ) + +1331  + #XK_v”tcÚÃùÜ + 0x08a6 + + ) + +1332  + #XK_tÝËásqb¿ck‘ + 0x08a7 + + ) + +1333  + #XK_bÙËásqb¿ck‘ + 0x08a8 + + ) + +1334  + #XK_tÝrightsqb¿ck‘ + 0x08a9 + + ) + +1335  + #XK_bÙrightsqb¿ck‘ + 0x08¯ + + ) + +1336  + #XK_tÝËá·»ns + 0x08ab + + ) + +1337  + #XK_bÙËá·»ns + 0x08aø + + ) + +1338  + #XK_tÝrigh¬’s + 0x08ad + + ) + +1339  + #XK_bÙrigh¬’s + 0x08« + + ) + +1340  + #XK_ËámiddËcu¾yb¿û + 0x08aà + + ) + +1341  + #XK_rightmiddËcu¾yb¿û + 0x08b0 + + ) + +1342  + #XK_tÝËásumm©iÚ + 0x08b1 + + ) + +1343  + #XK_bÙËásumm©iÚ + 0x08b2 + + ) + +1344  + #XK_tÝv”tsumm©iÚcÚÃùÜ + 0x08b3 + + ) + +1345  + #XK_bÙv”tsumm©iÚcÚÃùÜ + 0x08b4 + + ) + +1346  + #XK_tÝrightsumm©iÚ + 0x08b5 + + ) + +1347  + #XK_bÙrightsumm©iÚ + 0x08b6 + + ) + +1348  + #XK_rightmiddËsumm©iÚ + 0x08b7 + + ) + +1349  + #XK_Ës¡hªequ® + 0x08bø + + ) + +1350  + #XK_nÙequ® + 0x08bd + + ) + +1351  + #XK_g»©”thªequ® + 0x08b + + ) + +1352  + #XK_š‹g¿l + 0x08bà + + ) + +1353  + #XK_th”efÜe + 0x08c0 + + ) + +1354  + #XK_v¬ŸtiÚ + 0x08c1 + + ) + +1355  + #XK_šfš™y + 0x08c2 + + ) + +1356  + #XK_ÇbÏ + 0x08c5 + + ) + +1357  + #XK_­´oxim©e + 0x08c8 + + ) + +1358  + #XK_simž¬equ® + 0x08c9 + + ) + +1359  + #XK_ifÚlyif + 0x08cd + + ) + +1360  + #XK_im¶›s + 0x08û + + ) + +1361  + #XK_id’tiÿl + 0x08cà + + ) + +1362  + #XK_¿diÿl + 0x08d6 + + ) + +1363  + #XK_šþudedš + 0x08d¨ + + ) + +1364  + #XK_šþudes + 0x08db + + ) + +1365  + #XK_š‹r£ùiÚ + 0x08dø + + ) + +1366  + #XK_uniÚ + 0x08dd + + ) + +1367  + #XK_logiÿÏnd + 0x08d + + ) + +1368  + #XK_logiÿlÜ + 0x08dà + + ) + +1369  + #XK_·¹Ÿld”iv©ive + 0x08eà + + ) + +1370  + #XK_funùiÚ + 0x08f6 + + ) + +1371  + #XK_Ëá¬row + 0x08fb + + ) + +1372  + #XK_u·¼ow + 0x08fø + + ) + +1373  + #XK_righ¼ow + 0x08fd + + ) + +1374  + #XK_dowǼow + 0x08ã + + ) + +1383 #ifdeà +XK_SPECIAL + + +1384  + #XK_bÏnk + 0x09df + + ) + +1385  + #XK_sÞiddŸmÚd + 0x09e0 + + ) + +1386  + #XK_check”bßrd + 0x09e1 + + ) + +1387  + #XK_ht + 0x09e2 + + ) + +1388  + #XK_ff + 0x09e3 + + ) + +1389  + #XK_ü + 0x09e4 + + ) + +1390  + #XK_lf + 0x09e5 + + ) + +1391  + #XK_Æ + 0x09e8 + + ) + +1392  + #XK_vt + 0x09e9 + + ) + +1393  + #XK_lowrightcÜÃr + 0x09— + + ) + +1394  + #XK_u´ightcÜÃr + 0x09eb + + ) + +1395  + #XK_u¶eácÜÃr + 0x09eø + + ) + +1396  + #XK_lowËácÜÃr + 0x09ed + + ) + +1397  + #XK_üossšglšes + 0x09“ + + ) + +1398  + #XK_hÜizlšesÿn1 + 0x09eà + + ) + +1399  + #XK_hÜizlšesÿn3 + 0x09f0 + + ) + +1400  + #XK_hÜizlšesÿn5 + 0x09f1 + + ) + +1401  + #XK_hÜizlšesÿn7 + 0x09f2 + + ) + +1402  + #XK_hÜizlšesÿn9 + 0x09f3 + + ) + +1403  + #XK_Ëát + 0x09f4 + + ) + +1404  + #XK_righ‰ + 0x09f5 + + ) + +1405  + #XK_bÙt + 0x09f6 + + ) + +1406  + #XK_tÝt + 0x09f7 + + ) + +1407  + #XK_v”tb¬ + 0x09f8 + + ) + +1417 #ifdeà +XK_PUBLISHING + + +1418  + #XK_em¥aû + 0x0¯1 + + ) + +1419  + #XK_’¥aû + 0x0¯2 + + ) + +1420  + #XK_em3¥aû + 0x0¯3 + + ) + +1421  + #XK_em4¥aû + 0x0¯4 + + ) + +1422  + #XK_dig™¥aû + 0x0¯5 + + ) + +1423  + #XK_punù¥aû + 0x0¯6 + + ) + +1424  + #XK_thš¥aû + 0x0¯7 + + ) + +1425  + #XK_haœ¥aû + 0x0¯8 + + ) + +1426  + #XK_emdash + 0x0¯9 + + ) + +1427  + #XK_’dash + 0x0¯¨ + + ) + +1428  + #XK_signifbÏnk + 0x0¯ø + + ) + +1429  + #XK_–lsis + 0x0¯ + + ) + +1430  + #XK_doubba£lšedÙ + 0x0¯à + + ) + +1431  + #XK_Ú‘hœd + 0x0ab0 + + ) + +1432  + #XK_twÙhœds + 0x0ab1 + + ) + +1433  + #XK_Úefiáh + 0x0ab2 + + ) + +1434  + #XK_twofiáhs + 0x0ab3 + + ) + +1435  + #XK_th»efiáhs + 0x0ab4 + + ) + +1436  + #XK_fourfiáhs + 0x0ab5 + + ) + +1437  + #XK_Úesixth + 0x0ab6 + + ) + +1438  + #XK_fivesixths + 0x0ab7 + + ) + +1439  + #XK_ÿ»of + 0x0ab8 + + ) + +1440  + #XK_figdash + 0x0abb + + ) + +1441  + #XK_ËáªgËb¿ck‘ + 0x0abø + + ) + +1442  + #XK_decim®pošt + 0x0abd + + ) + +1443  + #XK_righngËb¿ck‘ + 0x0ab + + ) + +1444  + #XK_m¬k” + 0x0abf + + ) + +1445  + #XK_Ú“ighth + 0x0ac3 + + ) + +1446  + #XK_th»“ighths + 0x0ac4 + + ) + +1447  + #XK_fiv“ighths + 0x0ac5 + + ) + +1448  + #XK_£v’eighths + 0x0ac6 + + ) + +1449  + #XK_Œadem¬k + 0x0ac9 + + ) + +1450  + #XK_sigÇtu»m¬k + 0x0aÿ + + ) + +1451  + #XK_Œadem¬kšcœþe + 0x0acb + + ) + +1452  + #XK_ËáÝ’ŒŸngË + 0x0acø + + ) + +1453  + #XK_rightÝ’ŒŸngË + 0x0acd + + ) + +1454  + #XK_emÝ’cœþe + 0x0aû + + ) + +1455  + #XK_emÝ’»ùªgË + 0x0acà + + ) + +1456  + #XK_ËásšgËquÙem¬k + 0x0ad0 + + ) + +1457  + #XK_rightsšgËquÙem¬k + 0x0ad1 + + ) + +1458  + #XK_ËádoubËquÙem¬k + 0x0ad2 + + ) + +1459  + #XK_rightdoubËquÙem¬k + 0x0ad3 + + ) + +1460  + #XK_´esütiÚ + 0x0ad4 + + ) + +1461  + #XK_mšu‹s + 0x0ad6 + + ) + +1462  + #XK_£cÚds + 0x0ad7 + + ) + +1463  + #XK_Ïtšüoss + 0x0ad9 + + ) + +1464  + #XK_hexag¿m + 0x0ada + + ) + +1465  + #XK_fžËd»ùbuΑ + 0x0adb + + ) + +1466  + #XK_fžËdËáŒibuΑ + 0x0adø + + ) + +1467  + #XK_fžËdrigh‰ribuΑ + 0x0add + + ) + +1468  + #XK_emfžËdcœþe + 0x0ad + + ) + +1469  + #XK_emfžËd»ù + 0x0adà + + ) + +1470  + #XK_’Ý’cœcbuΑ + 0x0«0 + + ) + +1471  + #XK_’Ý’squ¬ebuΑ + 0x0«1 + + ) + +1472  + #XK_Ý’»ùbuΑ + 0x0«2 + + ) + +1473  + #XK_Ý’ŒibuΑup + 0x0«3 + + ) + +1474  + #XK_Ý’ŒibuΑdown + 0x0«4 + + ) + +1475  + #XK_Ý’¡¬ + 0x0«5 + + ) + +1476  + #XK_’fžËdcœcbuΑ + 0x0«6 + + ) + +1477  + #XK_’fžËdsqbuΑ + 0x0«7 + + ) + +1478  + #XK_fžËdŒibuΑup + 0x0«8 + + ) + +1479  + #XK_fžËdŒibuΑdown + 0x0«9 + + ) + +1480  + #XK_Ëápoš‹r + 0x0«¨ + + ) + +1481  + #XK_righoš‹r + 0x0«b + + ) + +1482  + #XK_þub + 0x0«ø + + ) + +1483  + #XK_dŸmÚd + 0x0«d + + ) + +1484  + #XK_h—¹ + 0x0« + + ) + +1485  + #XK_m®‹£üoss + 0x0af0 + + ) + +1486  + #XK_dagg” + 0x0af1 + + ) + +1487  + #XK_doubËdagg” + 0x0af2 + + ) + +1488  + #XK_checkm¬k + 0x0af3 + + ) + +1489  + #XK_b®lÙüoss + 0x0af4 + + ) + +1490  + #XK_musiÿlsh¬p + 0x0af5 + + ) + +1491  + #XK_musiÿlæ© + 0x0af6 + + ) + +1492  + #XK_m®esymbÞ + 0x0af7 + + ) + +1493  + #XK_ãm®esymbÞ + 0x0af8 + + ) + +1494  + #XK_‹ËphÚe + 0x0af9 + + ) + +1495  + #XK_‹ËphÚ”ecÜd” + 0x0aç + + ) + +1496  + #XK_phÚog¿phcÝyright + 0x0afb + + ) + +1497  + #XK_ÿ»t + 0x0afø + + ) + +1498  + #XK_sšgËlowquÙem¬k + 0x0afd + + ) + +1499  + #XK_doubËlowquÙem¬k + 0x0aã + + ) + +1500  + #XK_cursÜ + 0x0aff + + ) + +1508 #ifdeà +XK_APL + + +1509  + #XK_Ëáÿ»t + 0x0ba3 + + ) + +1510  + #XK_rightÿ»t + 0x0ba6 + + ) + +1511  + #XK_downÿ»t + 0x0ba8 + + ) + +1512  + #XK_upÿ»t + 0x0ba9 + + ) + +1513  + #XK_ov”b¬ + 0x0bc0 + + ) + +1514  + #XK_dowÁack + 0x0bc2 + + ) + +1515  + #XK_upshÛ + 0x0bc3 + + ) + +1516  + #XK_down¡že + 0x0bc4 + + ) + +1517  + #XK_und”b¬ + 0x0bc6 + + ) + +1518  + #XK_jÙ + 0x0bÿ + + ) + +1519  + #XK_quad + 0x0bcø + + ) + +1520  + #XK_u±ack + 0x0bû + + ) + +1521  + #XK_cœþe + 0x0bcà + + ) + +1522  + #XK_up¡že + 0x0bd3 + + ) + +1523  + #XK_downshÛ + 0x0bd6 + + ) + +1524  + #XK_rightshÛ + 0x0bd8 + + ) + +1525  + #XK_ËáshÛ + 0x0bd¨ + + ) + +1526  + #XK_Ëáck + 0x0bdø + + ) + +1527  + #XK_righ‰ack + 0x0bfø + + ) + +1535 #ifdeà +XK_HEBREW + + +1536  + #XK_heb»w_doubËlowlše + 0x0cdà + + ) + +1537  + #XK_heb»w_®•h + 0x0û0 + + ) + +1538  + #XK_heb»w_b‘ + 0x0û1 + + ) + +1539  + #XK_heb»w_b‘h + 0x0û1 + + ) + +1540  + #XK_heb»w_gim– + 0x0û2 + + ) + +1541  + #XK_heb»w_gimm– + 0x0û2 + + ) + +1542  + #XK_heb»w_d®‘ + 0x0û3 + + ) + +1543  + #XK_heb»w_d®‘h + 0x0û3 + + ) + +1544  + #XK_heb»w_he + 0x0û4 + + ) + +1545  + #XK_heb»w_waw + 0x0û5 + + ) + +1546  + #XK_heb»w_zaš + 0x0û6 + + ) + +1547  + #XK_heb»w_zayš + 0x0û6 + + ) + +1548  + #XK_heb»w_ch‘ + 0x0û7 + + ) + +1549  + #XK_heb»w_h‘ + 0x0û7 + + ) + +1550  + #XK_heb»w_‹t + 0x0û8 + + ) + +1551  + #XK_heb»w_‹th + 0x0û8 + + ) + +1552  + #XK_heb»w_yod + 0x0û9 + + ) + +1553  + #XK_heb»w_fš®k­h + 0x0û¨ + + ) + +1554  + #XK_heb»w_k­h + 0x0ûb + + ) + +1555  + #XK_heb»w_Ïmed + 0x0ûø + + ) + +1556  + #XK_heb»w_fš®mem + 0x0ûd + + ) + +1557  + #XK_heb»w_mem + 0x0û + + ) + +1558  + #XK_heb»w_fš®nun + 0x0ûà + + ) + +1559  + #XK_heb»w_nun + 0x0cf0 + + ) + +1560  + #XK_heb»w_§mech + 0x0cf1 + + ) + +1561  + #XK_heb»w_§mekh + 0x0cf1 + + ) + +1562  + #XK_heb»w_ayš + 0x0cf2 + + ) + +1563  + #XK_heb»w_fš®³ + 0x0cf3 + + ) + +1564  + #XK_heb»w_³ + 0x0cf4 + + ) + +1565  + #XK_heb»w_fš®zade + 0x0cf5 + + ) + +1566  + #XK_heb»w_fš®zadi + 0x0cf5 + + ) + +1567  + #XK_heb»w_zade + 0x0cf6 + + ) + +1568  + #XK_heb»w_zadi + 0x0cf6 + + ) + +1569  + #XK_heb»w_qÝh + 0x0cf7 + + ) + +1570  + #XK_heb»w_kuf + 0x0cf7 + + ) + +1571  + #XK_heb»w_»sh + 0x0cf8 + + ) + +1572  + #XK_heb»w_shš + 0x0cf9 + + ) + +1573  + #XK_heb»w_w + 0x0cç + + ) + +1574  + #XK_heb»w_f + 0x0cç + + ) + +1575  + #XK_Heb»w_sw™ch + 0xff7 + + ) + +1583 #ifdeà +XK_THAI + + +1584  + #XK_Thai_kokai + 0x0da1 + + ) + +1585  + #XK_Thai_khokhai + 0x0da2 + + ) + +1586  + #XK_Thai_khokhu© + 0x0da3 + + ) + +1587  + #XK_Thai_khokhwai + 0x0da4 + + ) + +1588  + #XK_Thai_khokhÚ + 0x0da5 + + ) + +1589  + #XK_Thai_khÜakhªg + 0x0da6 + + ) + +1590  + #XK_Thai_ngÚgu + 0x0da7 + + ) + +1591  + #XK_Thai_chochª + 0x0da8 + + ) + +1592  + #XK_Thai_chochšg + 0x0da9 + + ) + +1593  + #XK_Thai_chochªg + 0x0d¯ + + ) + +1594  + #XK_Thai_soso + 0x0dab + + ) + +1595  + #XK_Thai_chochÛ + 0x0daø + + ) + +1596  + #XK_Thai_yoyšg + 0x0dad + + ) + +1597  + #XK_Thai_dochada + 0x0d« + + ) + +1598  + #XK_Thai_tÝ©ak + 0x0daà + + ) + +1599  + #XK_Thai_thÙhª + 0x0db0 + + ) + +1600  + #XK_Thai_thÚªgmÚtho + 0x0db1 + + ) + +1601  + #XK_Thai_thÝhuthao + 0x0db2 + + ) + +1602  + #XK_Thai_nÚ’ + 0x0db3 + + ) + +1603  + #XK_Thai_dodek + 0x0db4 + + ) + +1604  + #XK_Thai_tÙao + 0x0db5 + + ) + +1605  + #XK_Thai_thÙhung + 0x0db6 + + ) + +1606  + #XK_Thai_thÙhahª + 0x0db7 + + ) + +1607  + #XK_Thai_thÙhÚg + 0x0db8 + + ) + +1608  + #XK_Thai_nÚu + 0x0db9 + + ) + +1609  + #XK_Thai_bobaimai + 0x0db¨ + + ) + +1610  + #XK_Thai_pÝÏ + 0x0dbb + + ) + +1611  + #XK_Thai_phÝhung + 0x0dbø + + ) + +1612  + #XK_Thai_foç + 0x0dbd + + ) + +1613  + #XK_Thai_phÝhª + 0x0db + + ) + +1614  + #XK_Thai_foçn + 0x0dbà + + ) + +1615  + #XK_Thai_pho§mphao + 0x0dc0 + + ) + +1616  + #XK_Thai_moma + 0x0dc1 + + ) + +1617  + #XK_Thai_yoyak + 0x0dc2 + + ) + +1618  + #XK_Thai_rÜua + 0x0dc3 + + ) + +1619  + #XK_Thai_ru + 0x0dc4 + + ) + +1620  + #XK_Thai_lÞšg + 0x0dc5 + + ) + +1621  + #XK_Thai_lu + 0x0dc6 + + ) + +1622  + #XK_Thai_wow«n + 0x0dc7 + + ) + +1623  + #XK_Thai_so§Ï + 0x0dc8 + + ) + +1624  + #XK_Thai_sÜusi + 0x0dc9 + + ) + +1625  + #XK_Thai_sosua + 0x0dÿ + + ) + +1626  + #XK_Thai_hoh + 0x0dcb + + ) + +1627  + #XK_Thai_lochuÏ + 0x0dcø + + ) + +1628  + #XK_Thai_ßng + 0x0dcd + + ) + +1629  + #XK_Thai_hÚokhuk + 0x0dû + + ) + +1630  + #XK_Thai_·iyªnoi + 0x0dcà + + ) + +1631  + #XK_Thai_§¿a + 0x0dd0 + + ) + +1632  + #XK_Thai_maihªak© + 0x0dd1 + + ) + +1633  + #XK_Thai_§¿¯ + 0x0dd2 + + ) + +1634  + #XK_Thai_§¿am + 0x0dd3 + + ) + +1635  + #XK_Thai_§¿i + 0x0dd4 + + ) + +1636  + #XK_Thai_§¿ii + 0x0dd5 + + ) + +1637  + #XK_Thai_§¿ue + 0x0dd6 + + ) + +1638  + #XK_Thai_§¿u“ + 0x0dd7 + + ) + +1639  + #XK_Thai_§¿u + 0x0dd8 + + ) + +1640  + #XK_Thai_§¿uu + 0x0dd9 + + ) + +1641  + #XK_Thai_phšthu + 0x0dd¨ + + ) + +1642  + #XK_Thai_maihªak©_ma™ho + 0x0dde + + ) + +1643  + #XK_Thai_baht + 0x0ddà + + ) + +1644  + #XK_Thai_§¿e + 0x0de0 + + ) + +1645  + #XK_Thai_§¿« + 0x0de1 + + ) + +1646  + #XK_Thai_§¿o + 0x0de2 + + ) + +1647  + #XK_Thai_§¿aimaimuª + 0x0de3 + + ) + +1648  + #XK_Thai_§¿aimaim®ai + 0x0de4 + + ) + +1649  + #XK_Thai_Ïkkhªgyao + 0x0de5 + + ) + +1650  + #XK_Thai_maiyamok + 0x0de6 + + ) + +1651  + #XK_Thai_ma™aikhu + 0x0de7 + + ) + +1652  + #XK_Thai_ma›k + 0x0de8 + + ) + +1653  + #XK_Thai_ma™ho + 0x0de9 + + ) + +1654  + #XK_Thai_ma™ri + 0x0d— + + ) + +1655  + #XK_Thai_maich©wa + 0x0deb + + ) + +1656  + #XK_Thai_thªthakh© + 0x0deø + + ) + +1657  + #XK_Thai_nikhah™ + 0x0ded + + ) + +1658  + #XK_Thai_Ëksun + 0x0df0 + + ) + +1659  + #XK_Thai_Ëknung + 0x0df1 + + ) + +1660  + #XK_Thai_ËksÚg + 0x0df2 + + ) + +1661  + #XK_Thai_Ëk§m + 0x0df3 + + ) + +1662  + #XK_Thai_Ëksi + 0x0df4 + + ) + +1663  + #XK_Thai_Ëkha + 0x0df5 + + ) + +1664  + #XK_Thai_Ëkhok + 0x0df6 + + ) + +1665  + #XK_Thai_Ëkch‘ + 0x0df7 + + ) + +1666  + #XK_Thai_Ëk·‘ + 0x0df8 + + ) + +1667  + #XK_Thai_Ëkkao + 0x0df9 + + ) + +1675 #ifdeà +XK_KOREAN + + +1677  + #XK_Hªgul + 0xff31 + + ) + +1678  + #XK_Hªgul_S¹ + 0xff32 + + ) + +1679  + #XK_Hªgul_End + 0xff33 + + ) + +1680  + #XK_Hªgul_Hªja + 0xff34 + + ) + +1681  + #XK_Hªgul_Jamo + 0xff35 + + ) + +1682  + #XK_Hªgul_Romaja + 0xff36 + + ) + +1683  + #XK_Hªgul_Codešput + 0xff37 + + ) + +1684  + #XK_Hªgul_JeÚja + 0xff38 + + ) + +1685  + #XK_Hªgul_Bªja + 0xff39 + + ) + +1686  + #XK_Hªgul_P»Hªja + 0xff3¨ + + ) + +1687  + #XK_Hªgul_Po¡Hªja + 0xff3b + + ) + +1688  + #XK_Hªgul_SšgËCªdid©e + 0xff3ø + + ) + +1689  + #XK_Hªgul_MuÉËCªdid©e + 0xff3d + + ) + +1690  + #XK_Hªgul_P»viousCªdid©e + 0xff3 + + ) + +1691  + #XK_Hªgul_S³cŸl + 0xff3à + + ) + +1692  + #XK_Hªgul_sw™ch + 0xff7 + + ) + +1695  + #XK_Hªgul_Kiyeog + 0x0—1 + + ) + +1696  + #XK_Hªgul_S§ngKiyeog + 0x0—2 + + ) + +1697  + #XK_Hªgul_KiyeogSios + 0x0—3 + + ) + +1698  + #XK_Hªgul_N›un + 0x0—4 + + ) + +1699  + #XK_Hªgul_N›unJ›uj + 0x0—5 + + ) + +1700  + #XK_Hªgul_N›unH›uh + 0x0—6 + + ) + +1701  + #XK_Hªgul_Dikeud + 0x0—7 + + ) + +1702  + #XK_Hªgul_S§ngDikeud + 0x0—8 + + ) + +1703  + #XK_Hªgul_R›ul + 0x0—9 + + ) + +1704  + #XK_Hªgul_R›ulKiyeog + 0x0—a + + ) + +1705  + #XK_Hªgul_R›ulM›um + 0x0—b + + ) + +1706  + #XK_Hªgul_R›ulP›ub + 0x0—c + + ) + +1707  + #XK_Hªgul_R›ulSios + 0x0—d + + ) + +1708  + #XK_Hªgul_R›ulT›ut + 0x0—e + + ) + +1709  + #XK_Hªgul_R›ulPh›uf + 0x0—f + + ) + +1710  + #XK_Hªgul_R›ulH›uh + 0x0eb0 + + ) + +1711  + #XK_Hªgul_M›um + 0x0eb1 + + ) + +1712  + #XK_Hªgul_P›ub + 0x0eb2 + + ) + +1713  + #XK_Hªgul_S§ngP›ub + 0x0eb3 + + ) + +1714  + #XK_Hªgul_P›ubSios + 0x0eb4 + + ) + +1715  + #XK_Hªgul_Sios + 0x0eb5 + + ) + +1716  + #XK_Hªgul_S§ngSios + 0x0eb6 + + ) + +1717  + #XK_Hªgul_Ieung + 0x0eb7 + + ) + +1718  + #XK_Hªgul_J›uj + 0x0eb8 + + ) + +1719  + #XK_Hªgul_S§ngJ›uj + 0x0eb9 + + ) + +1720  + #XK_Hªgul_C›uc + 0x0eba + + ) + +1721  + #XK_Hªgul_Kh›uq + 0x0ebb + + ) + +1722  + #XK_Hªgul_T›ut + 0x0ebc + + ) + +1723  + #XK_Hªgul_Ph›uf + 0x0ebd + + ) + +1724  + #XK_Hªgul_H›uh + 0x0ebe + + ) + +1727  + #XK_Hªgul_A + 0x0ebf + + ) + +1728  + #XK_Hªgul_AE + 0x0ec0 + + ) + +1729  + #XK_Hªgul_YA + 0x0ec1 + + ) + +1730  + #XK_Hªgul_YAE + 0x0ec2 + + ) + +1731  + #XK_Hªgul_EO + 0x0ec3 + + ) + +1732  + #XK_Hªgul_E + 0x0ec4 + + ) + +1733  + #XK_Hªgul_YEO + 0x0ec5 + + ) + +1734  + #XK_Hªgul_YE + 0x0ec6 + + ) + +1735  + #XK_Hªgul_O + 0x0ec7 + + ) + +1736  + #XK_Hªgul_WA + 0x0ec8 + + ) + +1737  + #XK_Hªgul_WAE + 0x0ec9 + + ) + +1738  + #XK_Hªgul_OE + 0x0eÿ + + ) + +1739  + #XK_Hªgul_YO + 0x0ecb + + ) + +1740  + #XK_Hªgul_U + 0x0ecc + + ) + +1741  + #XK_Hªgul_WEO + 0x0ecd + + ) + +1742  + #XK_Hªgul_WE + 0x0eû + + ) + +1743  + #XK_Hªgul_WI + 0x0ecf + + ) + +1744  + #XK_Hªgul_YU + 0x0ed0 + + ) + +1745  + #XK_Hªgul_EU + 0x0ed1 + + ) + +1746  + #XK_Hªgul_YI + 0x0ed2 + + ) + +1747  + #XK_Hªgul_I + 0x0ed3 + + ) + +1750  + #XK_Hªgul_J_Kiyeog + 0x0ed4 + + ) + +1751  + #XK_Hªgul_J_S§ngKiyeog + 0x0ed5 + + ) + +1752  + #XK_Hªgul_J_KiyeogSios + 0x0ed6 + + ) + +1753  + #XK_Hªgul_J_N›un + 0x0ed7 + + ) + +1754  + #XK_Hªgul_J_N›unJ›uj + 0x0ed8 + + ) + +1755  + #XK_Hªgul_J_N›unH›uh + 0x0ed9 + + ) + +1756  + #XK_Hªgul_J_Dikeud + 0x0eda + + ) + +1757  + #XK_Hªgul_J_R›ul + 0x0edb + + ) + +1758  + #XK_Hªgul_J_R›ulKiyeog + 0x0edc + + ) + +1759  + #XK_Hªgul_J_R›ulM›um + 0x0edd + + ) + +1760  + #XK_Hªgul_J_R›ulP›ub + 0x0ede + + ) + +1761  + #XK_Hªgul_J_R›ulSios + 0x0edf + + ) + +1762  + #XK_Hªgul_J_R›ulT›ut + 0x0“0 + + ) + +1763  + #XK_Hªgul_J_R›ulPh›uf + 0x0“1 + + ) + +1764  + #XK_Hªgul_J_R›ulH›uh + 0x0“2 + + ) + +1765  + #XK_Hªgul_J_M›um + 0x0“3 + + ) + +1766  + #XK_Hªgul_J_P›ub + 0x0“4 + + ) + +1767  + #XK_Hªgul_J_P›ubSios + 0x0“5 + + ) + +1768  + #XK_Hªgul_J_Sios + 0x0“6 + + ) + +1769  + #XK_Hªgul_J_S§ngSios + 0x0“7 + + ) + +1770  + #XK_Hªgul_J_Ieung + 0x0“8 + + ) + +1771  + #XK_Hªgul_J_J›uj + 0x0“9 + + ) + +1772  + #XK_Hªgul_J_C›uc + 0x0“a + + ) + +1773  + #XK_Hªgul_J_Kh›uq + 0x0“b + + ) + +1774  + #XK_Hªgul_J_T›ut + 0x0“c + + ) + +1775  + #XK_Hªgul_J_Ph›uf + 0x0“d + + ) + +1776  + #XK_Hªgul_J_H›uh + 0x0“e + + ) + +1779  + #XK_Hªgul_R›ulYeÜšH›uh + 0x0“f + + ) + +1780  + #XK_Hªgul_SunkyeÚgeumM›um + 0x0ef0 + + ) + +1781  + #XK_Hªgul_SunkyeÚgeumP›ub + 0x0ef1 + + ) + +1782  + #XK_Hªgul_PªSios + 0x0ef2 + + ) + +1783  + #XK_Hªgul_KkogjiD®ršIeung + 0x0ef3 + + ) + +1784  + #XK_Hªgul_SunkyeÚgeumPh›uf + 0x0ef4 + + ) + +1785  + #XK_Hªgul_YeÜšH›uh + 0x0ef5 + + ) + +1788  + #XK_Hªgul_A¿eA + 0x0ef6 + + ) + +1789  + #XK_Hªgul_A¿eAE + 0x0ef7 + + ) + +1792  + #XK_Hªgul_J_PªSios + 0x0ef8 + + ) + +1793  + #XK_Hªgul_J_KkogjiD®ršIeung + 0x0ef9 + + ) + +1794  + #XK_Hªgul_J_YeÜšH›uh + 0x0eç + + ) + +1797  + #XK_KÜ—n_WÚ + 0x0efà + + ) + +1805 #ifdeà +XK_ARMENIAN + + +1806  + #XK_Arm’Ÿn_lig©u»_ew + 0x1000587 + + ) + +1807  + #XK_Arm’Ÿn_fuÎ_¡Ý + 0x1000589 + + ) + +1808  + #XK_Arm’Ÿn_v”jak‘ + 0x1000589 + + ) + +1809  + #XK_Arm’Ÿn_£·¿tiÚ_m¬k + 0x100055d + + ) + +1810  + #XK_Arm’Ÿn_but + 0x100055d + + ) + +1811  + #XK_Arm’Ÿn_hyph’ + 0x100058¨ + + ) + +1812  + #XK_Arm’Ÿn_y’mÇ + 0x100058¨ + + ) + +1813  + #XK_Arm’Ÿn_exþam + 0x100055ø + + ) + +1814  + #XK_Arm’Ÿn_amªak + 0x100055ø + + ) + +1815  + #XK_Arm’Ÿn_acûÁ + 0x100055b + + ) + +1816  + #XK_Arm’Ÿn_shesht + 0x100055b + + ) + +1817  + #XK_Arm’Ÿn_que¡iÚ + 0x100055 + + ) + +1818  + #XK_Arm’Ÿn_·ruyk + 0x100055 + + ) + +1819  + #XK_Arm’Ÿn_AYB + 0x1000531 + + ) + +1820  + #XK_Arm’Ÿn_ayb + 0x1000561 + + ) + +1821  + #XK_Arm’Ÿn_BEN + 0x1000532 + + ) + +1822  + #XK_Arm’Ÿn_b’ + 0x1000562 + + ) + +1823  + #XK_Arm’Ÿn_GIM + 0x1000533 + + ) + +1824  + #XK_Arm’Ÿn_gim + 0x1000563 + + ) + +1825  + #XK_Arm’Ÿn_DA + 0x1000534 + + ) + +1826  + #XK_Arm’Ÿn_da + 0x1000564 + + ) + +1827  + #XK_Arm’Ÿn_YECH + 0x1000535 + + ) + +1828  + #XK_Arm’Ÿn_yech + 0x1000565 + + ) + +1829  + #XK_Arm’Ÿn_ZA + 0x1000536 + + ) + +1830  + #XK_Arm’Ÿn_za + 0x1000566 + + ) + +1831  + #XK_Arm’Ÿn_E + 0x1000537 + + ) + +1832  + #XK_Arm’Ÿn_e + 0x1000567 + + ) + +1833  + #XK_Arm’Ÿn_AT + 0x1000538 + + ) + +1834  + #XK_Arm’Ÿn_© + 0x1000568 + + ) + +1835  + #XK_Arm’Ÿn_TO + 0x1000539 + + ) + +1836  + #XK_Arm’Ÿn_to + 0x1000569 + + ) + +1837  + #XK_Arm’Ÿn_ZHE + 0x100053¨ + + ) + +1838  + #XK_Arm’Ÿn_zhe + 0x100056¨ + + ) + +1839  + #XK_Arm’Ÿn_INI + 0x100053b + + ) + +1840  + #XK_Arm’Ÿn_ši + 0x100056b + + ) + +1841  + #XK_Arm’Ÿn_LYUN + 0x100053ø + + ) + +1842  + #XK_Arm’Ÿn_lyun + 0x100056ø + + ) + +1843  + #XK_Arm’Ÿn_KHE + 0x100053d + + ) + +1844  + #XK_Arm’Ÿn_khe + 0x100056d + + ) + +1845  + #XK_Arm’Ÿn_TSA + 0x100053 + + ) + +1846  + #XK_Arm’Ÿn_t§ + 0x100056 + + ) + +1847  + #XK_Arm’Ÿn_KEN + 0x100053à + + ) + +1848  + #XK_Arm’Ÿn_k’ + 0x100056à + + ) + +1849  + #XK_Arm’Ÿn_HO + 0x1000540 + + ) + +1850  + #XK_Arm’Ÿn_ho + 0x1000570 + + ) + +1851  + #XK_Arm’Ÿn_DZA + 0x1000541 + + ) + +1852  + #XK_Arm’Ÿn_dza + 0x1000571 + + ) + +1853  + #XK_Arm’Ÿn_GHAT + 0x1000542 + + ) + +1854  + #XK_Arm’Ÿn_gh© + 0x1000572 + + ) + +1855  + #XK_Arm’Ÿn_TCHE + 0x1000543 + + ) + +1856  + #XK_Arm’Ÿn_tche + 0x1000573 + + ) + +1857  + #XK_Arm’Ÿn_MEN + 0x1000544 + + ) + +1858  + #XK_Arm’Ÿn_m’ + 0x1000574 + + ) + +1859  + #XK_Arm’Ÿn_HI + 0x1000545 + + ) + +1860  + #XK_Arm’Ÿn_hi + 0x1000575 + + ) + +1861  + #XK_Arm’Ÿn_NU + 0x1000546 + + ) + +1862  + #XK_Arm’Ÿn_nu + 0x1000576 + + ) + +1863  + #XK_Arm’Ÿn_SHA + 0x1000547 + + ) + +1864  + #XK_Arm’Ÿn_sha + 0x1000577 + + ) + +1865  + #XK_Arm’Ÿn_VO + 0x1000548 + + ) + +1866  + #XK_Arm’Ÿn_vo + 0x1000578 + + ) + +1867  + #XK_Arm’Ÿn_CHA + 0x1000549 + + ) + +1868  + #XK_Arm’Ÿn_cha + 0x1000579 + + ) + +1869  + #XK_Arm’Ÿn_PE + 0x100054¨ + + ) + +1870  + #XK_Arm’Ÿn_³ + 0x100057¨ + + ) + +1871  + #XK_Arm’Ÿn_JE + 0x100054b + + ) + +1872  + #XK_Arm’Ÿn_je + 0x100057b + + ) + +1873  + #XK_Arm’Ÿn_RA + 0x100054ø + + ) + +1874  + #XK_Arm’Ÿn_¿ + 0x100057ø + + ) + +1875  + #XK_Arm’Ÿn_SE + 0x100054d + + ) + +1876  + #XK_Arm’Ÿn_£ + 0x100057d + + ) + +1877  + #XK_Arm’Ÿn_VEV + 0x100054 + + ) + +1878  + #XK_Arm’Ÿn_vev + 0x100057 + + ) + +1879  + #XK_Arm’Ÿn_TYUN + 0x100054à + + ) + +1880  + #XK_Arm’Ÿn_tyun + 0x100057à + + ) + +1881  + #XK_Arm’Ÿn_RE + 0x1000550 + + ) + +1882  + #XK_Arm’Ÿn_» + 0x1000580 + + ) + +1883  + #XK_Arm’Ÿn_TSO + 0x1000551 + + ) + +1884  + #XK_Arm’Ÿn_tso + 0x1000581 + + ) + +1885  + #XK_Arm’Ÿn_VYUN + 0x1000552 + + ) + +1886  + #XK_Arm’Ÿn_vyun + 0x1000582 + + ) + +1887  + #XK_Arm’Ÿn_PYUR + 0x1000553 + + ) + +1888  + #XK_Arm’Ÿn_pyur + 0x1000583 + + ) + +1889  + #XK_Arm’Ÿn_KE + 0x1000554 + + ) + +1890  + #XK_Arm’Ÿn_ke + 0x1000584 + + ) + +1891  + #XK_Arm’Ÿn_O + 0x1000555 + + ) + +1892  + #XK_Arm’Ÿn_o + 0x1000585 + + ) + +1893  + #XK_Arm’Ÿn_FE + 0x1000556 + + ) + +1894  + #XK_Arm’Ÿn_ã + 0x1000586 + + ) + +1895  + #XK_Arm’Ÿn_­o¡rÝhe + 0x100055¨ + + ) + +1902 #ifdeà +XK_GEORGIAN + + +1903  + #XK_GeÜgŸn_ª + 0x10010d0 + + ) + +1904  + #XK_GeÜgŸn_bª + 0x10010d1 + + ) + +1905  + #XK_GeÜgŸn_gª + 0x10010d2 + + ) + +1906  + #XK_GeÜgŸn_dÚ + 0x10010d3 + + ) + +1907  + #XK_GeÜgŸn_’ + 0x10010d4 + + ) + +1908  + #XK_GeÜgŸn_vš + 0x10010d5 + + ) + +1909  + #XK_GeÜgŸn_z’ + 0x10010d6 + + ) + +1910  + #XK_GeÜgŸn_n + 0x10010d7 + + ) + +1911  + #XK_GeÜgŸn_š + 0x10010d8 + + ) + +1912  + #XK_GeÜgŸn_kª + 0x10010d9 + + ) + +1913  + #XK_GeÜgŸn_Ïs + 0x10010d¨ + + ) + +1914  + #XK_GeÜgŸn_mª + 0x10010db + + ) + +1915  + #XK_GeÜgŸn_Çr + 0x10010dø + + ) + +1916  + #XK_GeÜgŸn_Ú + 0x10010dd + + ) + +1917  + #XK_GeÜgŸn_·r + 0x10010d + + ) + +1918  + #XK_GeÜgŸn_zh¬ + 0x10010dà + + ) + +1919  + #XK_GeÜgŸn_¿e + 0x10010e0 + + ) + +1920  + #XK_GeÜgŸn_§n + 0x10010e1 + + ) + +1921  + #XK_GeÜgŸn_r + 0x10010e2 + + ) + +1922  + #XK_GeÜgŸn_un + 0x10010e3 + + ) + +1923  + #XK_GeÜgŸn_ph¬ + 0x10010e4 + + ) + +1924  + #XK_GeÜgŸn_kh¬ + 0x10010e5 + + ) + +1925  + #XK_GeÜgŸn_ghª + 0x10010e6 + + ) + +1926  + #XK_GeÜgŸn_q¬ + 0x10010e7 + + ) + +1927  + #XK_GeÜgŸn_shš + 0x10010e8 + + ) + +1928  + #XK_GeÜgŸn_chš + 0x10010e9 + + ) + +1929  + #XK_GeÜgŸn_ÿn + 0x10010— + + ) + +1930  + #XK_GeÜgŸn_jž + 0x10010eb + + ) + +1931  + #XK_GeÜgŸn_cž + 0x10010eø + + ) + +1932  + #XK_GeÜgŸn_ch¬ + 0x10010ed + + ) + +1933  + #XK_GeÜgŸn_xª + 0x10010“ + + ) + +1934  + #XK_GeÜgŸn_jhª + 0x10010eà + + ) + +1935  + #XK_GeÜgŸn_h« + 0x10010f0 + + ) + +1936  + #XK_GeÜgŸn_he + 0x10010f1 + + ) + +1937  + #XK_GeÜgŸn_h› + 0x10010f2 + + ) + +1938  + #XK_GeÜgŸn_we + 0x10010f3 + + ) + +1939  + #XK_GeÜgŸn_h¬ + 0x10010f4 + + ) + +1940  + #XK_GeÜgŸn_hÛ + 0x10010f5 + + ) + +1941  + #XK_GeÜgŸn_fi + 0x10010f6 + + ) + +1948 #ifdeà +XK_CAUCASUS + + +1950  + #XK_XabovedÙ + 0x1001e8¨ + + ) + +1951  + #XK_Ib»ve + 0x100012ø + + ) + +1952  + #XK_Z¡roke + 0x10001b5 + + ) + +1953  + #XK_GÿrÚ + 0x10001e6 + + ) + +1954  + #XK_OÿrÚ + 0x10001d1 + + ) + +1955  + #XK_Ob¬»d + 0x100019à + + ) + +1956  + #XK_xabovedÙ + 0x1001e8b + + ) + +1957  + #XK_ib»ve + 0x100012d + + ) + +1958  + #XK_z¡roke + 0x10001b6 + + ) + +1959  + #XK_gÿrÚ + 0x10001e7 + + ) + +1960  + #XK_oÿrÚ + 0x10001d2 + + ) + +1961  + #XK_ob¬»d + 0x1000275 + + ) + +1962  + #XK_SCHWA + 0x100018à + + ) + +1963  + #XK_schwa + 0x1000259 + + ) + +1966  + #XK_Lb–owdÙ + 0x1001e36 + + ) + +1967  + #XK_lb–owdÙ + 0x1001e37 + + ) + +1974 #ifdeà +XK_VIETNAMESE + + +1975  + #XK_Ab–owdÙ + 0x1001—0 + + ) + +1976  + #XK_ab–owdÙ + 0x1001—1 + + ) + +1977  + #XK_Ahook + 0x1001—2 + + ) + +1978  + #XK_ahook + 0x1001—3 + + ) + +1979  + #XK_Acœcumæexacu‹ + 0x1001—4 + + ) + +1980  + #XK_acœcumæexacu‹ + 0x1001—5 + + ) + +1981  + #XK_Acœcumæexg¿ve + 0x1001—6 + + ) + +1982  + #XK_acœcumæexg¿ve + 0x1001—7 + + ) + +1983  + #XK_Acœcumæexhook + 0x1001—8 + + ) + +1984  + #XK_acœcumæexhook + 0x1001—9 + + ) + +1985  + #XK_Acœcumæextžde + 0x1001—¨ + + ) + +1986  + #XK_acœcumæextžde + 0x1001—b + + ) + +1987  + #XK_Acœcumæexb–owdÙ + 0x1001—ø + + ) + +1988  + #XK_acœcumæexb–owdÙ + 0x1001—d + + ) + +1989  + #XK_Ab»v—cu‹ + 0x1001— + + ) + +1990  + #XK_ab»v—cu‹ + 0x1001—à + + ) + +1991  + #XK_Ab»veg¿ve + 0x1001eb0 + + ) + +1992  + #XK_ab»veg¿ve + 0x1001eb1 + + ) + +1993  + #XK_Ab»vehook + 0x1001eb2 + + ) + +1994  + #XK_ab»vehook + 0x1001eb3 + + ) + +1995  + #XK_Ab»v‘žde + 0x1001eb4 + + ) + +1996  + #XK_ab»v‘žde + 0x1001eb5 + + ) + +1997  + #XK_Ab»veb–owdÙ + 0x1001eb6 + + ) + +1998  + #XK_ab»veb–owdÙ + 0x1001eb7 + + ) + +1999  + #XK_Eb–owdÙ + 0x1001eb8 + + ) + +2000  + #XK_eb–owdÙ + 0x1001eb9 + + ) + +2001  + #XK_Ehook + 0x1001eb¨ + + ) + +2002  + #XK_ehook + 0x1001ebb + + ) + +2003  + #XK_Etžde + 0x1001ebø + + ) + +2004  + #XK_‘žde + 0x1001ebd + + ) + +2005  + #XK_Ecœcumæexacu‹ + 0x1001eb + + ) + +2006  + #XK_ecœcumæexacu‹ + 0x1001ebà + + ) + +2007  + #XK_Ecœcumæexg¿ve + 0x1001ec0 + + ) + +2008  + #XK_ecœcumæexg¿ve + 0x1001ec1 + + ) + +2009  + #XK_Ecœcumæexhook + 0x1001ec2 + + ) + +2010  + #XK_ecœcumæexhook + 0x1001ec3 + + ) + +2011  + #XK_Ecœcumæextžde + 0x1001ec4 + + ) + +2012  + #XK_ecœcumæextžde + 0x1001ec5 + + ) + +2013  + #XK_Ecœcumæexb–owdÙ + 0x1001ec6 + + ) + +2014  + #XK_ecœcumæexb–owdÙ + 0x1001ec7 + + ) + +2015  + #XK_Ihook + 0x1001ec8 + + ) + +2016  + #XK_ihook + 0x1001ec9 + + ) + +2017  + #XK_Ib–owdÙ + 0x1001eÿ + + ) + +2018  + #XK_ib–owdÙ + 0x1001ecb + + ) + +2019  + #XK_Ob–owdÙ + 0x1001ecø + + ) + +2020  + #XK_ob–owdÙ + 0x1001ecd + + ) + +2021  + #XK_Ohook + 0x1001eû + + ) + +2022  + #XK_ohook + 0x1001ecà + + ) + +2023  + #XK_Ocœcumæexacu‹ + 0x1001ed0 + + ) + +2024  + #XK_ocœcumæexacu‹ + 0x1001ed1 + + ) + +2025  + #XK_Ocœcumæexg¿ve + 0x1001ed2 + + ) + +2026  + #XK_ocœcumæexg¿ve + 0x1001ed3 + + ) + +2027  + #XK_Ocœcumæexhook + 0x1001ed4 + + ) + +2028  + #XK_ocœcumæexhook + 0x1001ed5 + + ) + +2029  + #XK_Ocœcumæextžde + 0x1001ed6 + + ) + +2030  + #XK_ocœcumæextžde + 0x1001ed7 + + ) + +2031  + #XK_Ocœcumæexb–owdÙ + 0x1001ed8 + + ) + +2032  + #XK_ocœcumæexb–owdÙ + 0x1001ed9 + + ) + +2033  + #XK_OhÜÇcu‹ + 0x1001ed¨ + + ) + +2034  + #XK_ohÜÇcu‹ + 0x1001edb + + ) + +2035  + #XK_OhÜng¿ve + 0x1001edø + + ) + +2036  + #XK_ohÜng¿ve + 0x1001edd + + ) + +2037  + #XK_OhÜnhook + 0x1001ed + + ) + +2038  + #XK_ohÜnhook + 0x1001edà + + ) + +2039  + #XK_OhÜÁžde + 0x1001“0 + + ) + +2040  + #XK_ohÜÁžde + 0x1001“1 + + ) + +2041  + #XK_OhÜnb–owdÙ + 0x1001“2 + + ) + +2042  + #XK_ohÜnb–owdÙ + 0x1001“3 + + ) + +2043  + #XK_Ub–owdÙ + 0x1001“4 + + ) + +2044  + #XK_ub–owdÙ + 0x1001“5 + + ) + +2045  + #XK_Uhook + 0x1001“6 + + ) + +2046  + #XK_uhook + 0x1001“7 + + ) + +2047  + #XK_UhÜÇcu‹ + 0x1001“8 + + ) + +2048  + #XK_uhÜÇcu‹ + 0x1001“9 + + ) + +2049  + #XK_UhÜng¿ve + 0x1001“¨ + + ) + +2050  + #XK_uhÜng¿ve + 0x1001“b + + ) + +2051  + #XK_UhÜnhook + 0x1001“ø + + ) + +2052  + #XK_uhÜnhook + 0x1001“d + + ) + +2053  + #XK_UhÜÁžde + 0x1001“ + + ) + +2054  + #XK_uhÜÁžde + 0x1001“à + + ) + +2055  + #XK_UhÜnb–owdÙ + 0x1001ef0 + + ) + +2056  + #XK_uhÜnb–owdÙ + 0x1001ef1 + + ) + +2057  + #XK_Yb–owdÙ + 0x1001ef4 + + ) + +2058  + #XK_yb–owdÙ + 0x1001ef5 + + ) + +2059  + #XK_Yhook + 0x1001ef6 + + ) + +2060  + #XK_yhook + 0x1001ef7 + + ) + +2061  + #XK_Ytžde + 0x1001ef8 + + ) + +2062  + #XK_ytžde + 0x1001ef9 + + ) + +2063  + #XK_OhÜn + 0x10001a0 + + ) + +2064  + #XK_ohÜn + 0x10001a1 + + ) + +2065  + #XK_UhÜn + 0x10001aà + + ) + +2066  + #XK_uhÜn + 0x10001b0 + + ) + +2070 #ifdeà +XK_CURRENCY + + +2071  + #XK_EcuSign + 0x10020a0 + + ) + +2072  + #XK_CÞÚSign + 0x10020a1 + + ) + +2073  + #XK_CruzeœoSign + 0x10020a2 + + ) + +2074  + #XK_FF¿ncSign + 0x10020a3 + + ) + +2075  + #XK_LœaSign + 0x10020a4 + + ) + +2076  + #XK_MžlSign + 0x10020a5 + + ) + +2077  + #XK_NaœaSign + 0x10020a6 + + ) + +2078  + #XK_Pe£Sign + 0x10020a7 + + ) + +2079  + #XK_Ru³eSign + 0x10020a8 + + ) + +2080  + #XK_WÚSign + 0x10020a9 + + ) + +2081  + #XK_NewSheq–Sign + 0x10020¯ + + ) + +2082  + #XK_DÚgSign + 0x10020ab + + ) + +2083  + #XK_EuroSign + 0x20aø + + ) + +2086 #ifdeà +XK_MATHEMATICAL + + +2088  + #XK_z”osu³riÜ + 0x1002070 + + ) + +2089  + #XK_foursu³riÜ + 0x1002074 + + ) + +2090  + #XK_fivesu³riÜ + 0x1002075 + + ) + +2091  + #XK_sixsu³riÜ + 0x1002076 + + ) + +2092  + #XK_£v’su³riÜ + 0x1002077 + + ) + +2093  + #XK_eightsu³riÜ + 0x1002078 + + ) + +2094  + #XK_nšesu³riÜ + 0x1002079 + + ) + +2095  + #XK_z”osubsüt + 0x1002080 + + ) + +2096  + #XK_Úesubsüt + 0x1002081 + + ) + +2097  + #XK_twosubsüt + 0x1002082 + + ) + +2098  + #XK_th»esubsüt + 0x1002083 + + ) + +2099  + #XK_foursubsüt + 0x1002084 + + ) + +2100  + #XK_fivesubsüt + 0x1002085 + + ) + +2101  + #XK_sixsubsüt + 0x1002086 + + ) + +2102  + #XK_£v’subsüt + 0x1002087 + + ) + +2103  + #XK_eightsubsüt + 0x1002088 + + ) + +2104  + #XK_nšesubsüt + 0x1002089 + + ) + +2105  + #XK_·¹difã»ÁŸl + 0x1002202 + + ) + +2106  + #XK_em±y£t + 0x1002205 + + ) + +2107  + #XK_–em’tof + 0x1002208 + + ) + +2108  + #XK_nÙ–em’tof + 0x1002209 + + ) + +2109  + #XK_cÚš§s + 0x100220B + + ) + +2110  + #XK_squ¬”oÙ + 0x100221A + + ) + +2111  + #XK_cub”oÙ + 0x100221B + + ) + +2112  + #XK_fou¹hroÙ + 0x100221C + + ) + +2113  + #XK_dš‹g¿l + 0x100222C + + ) + +2114  + #XK_tš‹g¿l + 0x100222D + + ) + +2115  + #XK_beÿu£ + 0x1002235 + + ) + +2116  + #XK_­´oxeq + 0x1002248 + + ) + +2117  + #XK_nÙ­´oxeq + 0x1002247 + + ) + +2118  + #XK_nÙid’tiÿl + 0x1002262 + + ) + +2119  + #XK_¡riùeq + 0x1002263 + + ) + +2122 #ifdeà +XK_BRAILLE + + +2123  + #XK_b¿žË_dÙ_1 + 0xfff1 + + ) + +2124  + #XK_b¿žË_dÙ_2 + 0xfff2 + + ) + +2125  + #XK_b¿žË_dÙ_3 + 0xfff3 + + ) + +2126  + #XK_b¿žË_dÙ_4 + 0xfff4 + + ) + +2127  + #XK_b¿žË_dÙ_5 + 0xfff5 + + ) + +2128  + #XK_b¿žË_dÙ_6 + 0xfff6 + + ) + +2129  + #XK_b¿žË_dÙ_7 + 0xfff7 + + ) + +2130  + #XK_b¿žË_dÙ_8 + 0xfff8 + + ) + +2131  + #XK_b¿žË_dÙ_9 + 0xfff9 + + ) + +2132  + #XK_b¿žË_dÙ_10 + 0xffç + + ) + +2133  + #XK_b¿žË_bÏnk + 0x1002800 + + ) + +2134  + #XK_b¿žË_dÙs_1 + 0x1002801 + + ) + +2135  + #XK_b¿žË_dÙs_2 + 0x1002802 + + ) + +2136  + #XK_b¿žË_dÙs_12 + 0x1002803 + + ) + +2137  + #XK_b¿žË_dÙs_3 + 0x1002804 + + ) + +2138  + #XK_b¿žË_dÙs_13 + 0x1002805 + + ) + +2139  + #XK_b¿žË_dÙs_23 + 0x1002806 + + ) + +2140  + #XK_b¿žË_dÙs_123 + 0x1002807 + + ) + +2141  + #XK_b¿žË_dÙs_4 + 0x1002808 + + ) + +2142  + #XK_b¿žË_dÙs_14 + 0x1002809 + + ) + +2143  + #XK_b¿žË_dÙs_24 + 0x100280¨ + + ) + +2144  + #XK_b¿žË_dÙs_124 + 0x100280b + + ) + +2145  + #XK_b¿žË_dÙs_34 + 0x100280ø + + ) + +2146  + #XK_b¿žË_dÙs_134 + 0x100280d + + ) + +2147  + #XK_b¿žË_dÙs_234 + 0x100280 + + ) + +2148  + #XK_b¿žË_dÙs_1234 + 0x100280à + + ) + +2149  + #XK_b¿žË_dÙs_5 + 0x1002810 + + ) + +2150  + #XK_b¿žË_dÙs_15 + 0x1002811 + + ) + +2151  + #XK_b¿žË_dÙs_25 + 0x1002812 + + ) + +2152  + #XK_b¿žË_dÙs_125 + 0x1002813 + + ) + +2153  + #XK_b¿žË_dÙs_35 + 0x1002814 + + ) + +2154  + #XK_b¿žË_dÙs_135 + 0x1002815 + + ) + +2155  + #XK_b¿žË_dÙs_235 + 0x1002816 + + ) + +2156  + #XK_b¿žË_dÙs_1235 + 0x1002817 + + ) + +2157  + #XK_b¿žË_dÙs_45 + 0x1002818 + + ) + +2158  + #XK_b¿žË_dÙs_145 + 0x1002819 + + ) + +2159  + #XK_b¿žË_dÙs_245 + 0x100281¨ + + ) + +2160  + #XK_b¿žË_dÙs_1245 + 0x100281b + + ) + +2161  + #XK_b¿žË_dÙs_345 + 0x100281ø + + ) + +2162  + #XK_b¿žË_dÙs_1345 + 0x100281d + + ) + +2163  + #XK_b¿žË_dÙs_2345 + 0x100281 + + ) + +2164  + #XK_b¿žË_dÙs_12345 + 0x100281à + + ) + +2165  + #XK_b¿žË_dÙs_6 + 0x1002820 + + ) + +2166  + #XK_b¿žË_dÙs_16 + 0x1002821 + + ) + +2167  + #XK_b¿žË_dÙs_26 + 0x1002822 + + ) + +2168  + #XK_b¿žË_dÙs_126 + 0x1002823 + + ) + +2169  + #XK_b¿žË_dÙs_36 + 0x1002824 + + ) + +2170  + #XK_b¿žË_dÙs_136 + 0x1002825 + + ) + +2171  + #XK_b¿žË_dÙs_236 + 0x1002826 + + ) + +2172  + #XK_b¿žË_dÙs_1236 + 0x1002827 + + ) + +2173  + #XK_b¿žË_dÙs_46 + 0x1002828 + + ) + +2174  + #XK_b¿žË_dÙs_146 + 0x1002829 + + ) + +2175  + #XK_b¿žË_dÙs_246 + 0x100282¨ + + ) + +2176  + #XK_b¿žË_dÙs_1246 + 0x100282b + + ) + +2177  + #XK_b¿žË_dÙs_346 + 0x100282ø + + ) + +2178  + #XK_b¿žË_dÙs_1346 + 0x100282d + + ) + +2179  + #XK_b¿žË_dÙs_2346 + 0x100282 + + ) + +2180  + #XK_b¿žË_dÙs_12346 + 0x100282à + + ) + +2181  + #XK_b¿žË_dÙs_56 + 0x1002830 + + ) + +2182  + #XK_b¿žË_dÙs_156 + 0x1002831 + + ) + +2183  + #XK_b¿žË_dÙs_256 + 0x1002832 + + ) + +2184  + #XK_b¿žË_dÙs_1256 + 0x1002833 + + ) + +2185  + #XK_b¿žË_dÙs_356 + 0x1002834 + + ) + +2186  + #XK_b¿žË_dÙs_1356 + 0x1002835 + + ) + +2187  + #XK_b¿žË_dÙs_2356 + 0x1002836 + + ) + +2188  + #XK_b¿žË_dÙs_12356 + 0x1002837 + + ) + +2189  + #XK_b¿žË_dÙs_456 + 0x1002838 + + ) + +2190  + #XK_b¿žË_dÙs_1456 + 0x1002839 + + ) + +2191  + #XK_b¿žË_dÙs_2456 + 0x100283¨ + + ) + +2192  + #XK_b¿žË_dÙs_12456 + 0x100283b + + ) + +2193  + #XK_b¿žË_dÙs_3456 + 0x100283ø + + ) + +2194  + #XK_b¿žË_dÙs_13456 + 0x100283d + + ) + +2195  + #XK_b¿žË_dÙs_23456 + 0x100283 + + ) + +2196  + #XK_b¿žË_dÙs_123456 + 0x100283à + + ) + +2197  + #XK_b¿žË_dÙs_7 + 0x1002840 + + ) + +2198  + #XK_b¿žË_dÙs_17 + 0x1002841 + + ) + +2199  + #XK_b¿žË_dÙs_27 + 0x1002842 + + ) + +2200  + #XK_b¿žË_dÙs_127 + 0x1002843 + + ) + +2201  + #XK_b¿žË_dÙs_37 + 0x1002844 + + ) + +2202  + #XK_b¿žË_dÙs_137 + 0x1002845 + + ) + +2203  + #XK_b¿žË_dÙs_237 + 0x1002846 + + ) + +2204  + #XK_b¿žË_dÙs_1237 + 0x1002847 + + ) + +2205  + #XK_b¿žË_dÙs_47 + 0x1002848 + + ) + +2206  + #XK_b¿žË_dÙs_147 + 0x1002849 + + ) + +2207  + #XK_b¿žË_dÙs_247 + 0x100284¨ + + ) + +2208  + #XK_b¿žË_dÙs_1247 + 0x100284b + + ) + +2209  + #XK_b¿žË_dÙs_347 + 0x100284ø + + ) + +2210  + #XK_b¿žË_dÙs_1347 + 0x100284d + + ) + +2211  + #XK_b¿žË_dÙs_2347 + 0x100284 + + ) + +2212  + #XK_b¿žË_dÙs_12347 + 0x100284à + + ) + +2213  + #XK_b¿žË_dÙs_57 + 0x1002850 + + ) + +2214  + #XK_b¿žË_dÙs_157 + 0x1002851 + + ) + +2215  + #XK_b¿žË_dÙs_257 + 0x1002852 + + ) + +2216  + #XK_b¿žË_dÙs_1257 + 0x1002853 + + ) + +2217  + #XK_b¿žË_dÙs_357 + 0x1002854 + + ) + +2218  + #XK_b¿žË_dÙs_1357 + 0x1002855 + + ) + +2219  + #XK_b¿žË_dÙs_2357 + 0x1002856 + + ) + +2220  + #XK_b¿žË_dÙs_12357 + 0x1002857 + + ) + +2221  + #XK_b¿žË_dÙs_457 + 0x1002858 + + ) + +2222  + #XK_b¿žË_dÙs_1457 + 0x1002859 + + ) + +2223  + #XK_b¿žË_dÙs_2457 + 0x100285¨ + + ) + +2224  + #XK_b¿žË_dÙs_12457 + 0x100285b + + ) + +2225  + #XK_b¿žË_dÙs_3457 + 0x100285ø + + ) + +2226  + #XK_b¿žË_dÙs_13457 + 0x100285d + + ) + +2227  + #XK_b¿žË_dÙs_23457 + 0x100285 + + ) + +2228  + #XK_b¿žË_dÙs_123457 + 0x100285à + + ) + +2229  + #XK_b¿žË_dÙs_67 + 0x1002860 + + ) + +2230  + #XK_b¿žË_dÙs_167 + 0x1002861 + + ) + +2231  + #XK_b¿žË_dÙs_267 + 0x1002862 + + ) + +2232  + #XK_b¿žË_dÙs_1267 + 0x1002863 + + ) + +2233  + #XK_b¿žË_dÙs_367 + 0x1002864 + + ) + +2234  + #XK_b¿žË_dÙs_1367 + 0x1002865 + + ) + +2235  + #XK_b¿žË_dÙs_2367 + 0x1002866 + + ) + +2236  + #XK_b¿žË_dÙs_12367 + 0x1002867 + + ) + +2237  + #XK_b¿žË_dÙs_467 + 0x1002868 + + ) + +2238  + #XK_b¿žË_dÙs_1467 + 0x1002869 + + ) + +2239  + #XK_b¿žË_dÙs_2467 + 0x100286¨ + + ) + +2240  + #XK_b¿žË_dÙs_12467 + 0x100286b + + ) + +2241  + #XK_b¿žË_dÙs_3467 + 0x100286ø + + ) + +2242  + #XK_b¿žË_dÙs_13467 + 0x100286d + + ) + +2243  + #XK_b¿žË_dÙs_23467 + 0x100286 + + ) + +2244  + #XK_b¿žË_dÙs_123467 + 0x100286à + + ) + +2245  + #XK_b¿žË_dÙs_567 + 0x1002870 + + ) + +2246  + #XK_b¿žË_dÙs_1567 + 0x1002871 + + ) + +2247  + #XK_b¿žË_dÙs_2567 + 0x1002872 + + ) + +2248  + #XK_b¿žË_dÙs_12567 + 0x1002873 + + ) + +2249  + #XK_b¿žË_dÙs_3567 + 0x1002874 + + ) + +2250  + #XK_b¿žË_dÙs_13567 + 0x1002875 + + ) + +2251  + #XK_b¿žË_dÙs_23567 + 0x1002876 + + ) + +2252  + #XK_b¿žË_dÙs_123567 + 0x1002877 + + ) + +2253  + #XK_b¿žË_dÙs_4567 + 0x1002878 + + ) + +2254  + #XK_b¿žË_dÙs_14567 + 0x1002879 + + ) + +2255  + #XK_b¿žË_dÙs_24567 + 0x100287¨ + + ) + +2256  + #XK_b¿žË_dÙs_124567 + 0x100287b + + ) + +2257  + #XK_b¿žË_dÙs_34567 + 0x100287ø + + ) + +2258  + #XK_b¿žË_dÙs_134567 + 0x100287d + + ) + +2259  + #XK_b¿žË_dÙs_234567 + 0x100287 + + ) + +2260  + #XK_b¿žË_dÙs_1234567 + 0x100287à + + ) + +2261  + #XK_b¿žË_dÙs_8 + 0x1002880 + + ) + +2262  + #XK_b¿žË_dÙs_18 + 0x1002881 + + ) + +2263  + #XK_b¿žË_dÙs_28 + 0x1002882 + + ) + +2264  + #XK_b¿žË_dÙs_128 + 0x1002883 + + ) + +2265  + #XK_b¿žË_dÙs_38 + 0x1002884 + + ) + +2266  + #XK_b¿žË_dÙs_138 + 0x1002885 + + ) + +2267  + #XK_b¿žË_dÙs_238 + 0x1002886 + + ) + +2268  + #XK_b¿žË_dÙs_1238 + 0x1002887 + + ) + +2269  + #XK_b¿žË_dÙs_48 + 0x1002888 + + ) + +2270  + #XK_b¿žË_dÙs_148 + 0x1002889 + + ) + +2271  + #XK_b¿žË_dÙs_248 + 0x100288¨ + + ) + +2272  + #XK_b¿žË_dÙs_1248 + 0x100288b + + ) + +2273  + #XK_b¿žË_dÙs_348 + 0x100288ø + + ) + +2274  + #XK_b¿žË_dÙs_1348 + 0x100288d + + ) + +2275  + #XK_b¿žË_dÙs_2348 + 0x100288 + + ) + +2276  + #XK_b¿žË_dÙs_12348 + 0x100288à + + ) + +2277  + #XK_b¿žË_dÙs_58 + 0x1002890 + + ) + +2278  + #XK_b¿žË_dÙs_158 + 0x1002891 + + ) + +2279  + #XK_b¿žË_dÙs_258 + 0x1002892 + + ) + +2280  + #XK_b¿žË_dÙs_1258 + 0x1002893 + + ) + +2281  + #XK_b¿žË_dÙs_358 + 0x1002894 + + ) + +2282  + #XK_b¿žË_dÙs_1358 + 0x1002895 + + ) + +2283  + #XK_b¿žË_dÙs_2358 + 0x1002896 + + ) + +2284  + #XK_b¿žË_dÙs_12358 + 0x1002897 + + ) + +2285  + #XK_b¿žË_dÙs_458 + 0x1002898 + + ) + +2286  + #XK_b¿žË_dÙs_1458 + 0x1002899 + + ) + +2287  + #XK_b¿žË_dÙs_2458 + 0x100289¨ + + ) + +2288  + #XK_b¿žË_dÙs_12458 + 0x100289b + + ) + +2289  + #XK_b¿žË_dÙs_3458 + 0x100289ø + + ) + +2290  + #XK_b¿žË_dÙs_13458 + 0x100289d + + ) + +2291  + #XK_b¿žË_dÙs_23458 + 0x100289 + + ) + +2292  + #XK_b¿žË_dÙs_123458 + 0x100289à + + ) + +2293  + #XK_b¿žË_dÙs_68 + 0x10028a0 + + ) + +2294  + #XK_b¿žË_dÙs_168 + 0x10028a1 + + ) + +2295  + #XK_b¿žË_dÙs_268 + 0x10028a2 + + ) + +2296  + #XK_b¿žË_dÙs_1268 + 0x10028a3 + + ) + +2297  + #XK_b¿žË_dÙs_368 + 0x10028a4 + + ) + +2298  + #XK_b¿žË_dÙs_1368 + 0x10028a5 + + ) + +2299  + #XK_b¿žË_dÙs_2368 + 0x10028a6 + + ) + +2300  + #XK_b¿žË_dÙs_12368 + 0x10028a7 + + ) + +2301  + #XK_b¿žË_dÙs_468 + 0x10028a8 + + ) + +2302  + #XK_b¿žË_dÙs_1468 + 0x10028a9 + + ) + +2303  + #XK_b¿žË_dÙs_2468 + 0x10028¯ + + ) + +2304  + #XK_b¿žË_dÙs_12468 + 0x10028ab + + ) + +2305  + #XK_b¿žË_dÙs_3468 + 0x10028aø + + ) + +2306  + #XK_b¿žË_dÙs_13468 + 0x10028ad + + ) + +2307  + #XK_b¿žË_dÙs_23468 + 0x10028« + + ) + +2308  + #XK_b¿žË_dÙs_123468 + 0x10028aà + + ) + +2309  + #XK_b¿žË_dÙs_568 + 0x10028b0 + + ) + +2310  + #XK_b¿žË_dÙs_1568 + 0x10028b1 + + ) + +2311  + #XK_b¿žË_dÙs_2568 + 0x10028b2 + + ) + +2312  + #XK_b¿žË_dÙs_12568 + 0x10028b3 + + ) + +2313  + #XK_b¿žË_dÙs_3568 + 0x10028b4 + + ) + +2314  + #XK_b¿žË_dÙs_13568 + 0x10028b5 + + ) + +2315  + #XK_b¿žË_dÙs_23568 + 0x10028b6 + + ) + +2316  + #XK_b¿žË_dÙs_123568 + 0x10028b7 + + ) + +2317  + #XK_b¿žË_dÙs_4568 + 0x10028b8 + + ) + +2318  + #XK_b¿žË_dÙs_14568 + 0x10028b9 + + ) + +2319  + #XK_b¿žË_dÙs_24568 + 0x10028b¨ + + ) + +2320  + #XK_b¿žË_dÙs_124568 + 0x10028bb + + ) + +2321  + #XK_b¿žË_dÙs_34568 + 0x10028bø + + ) + +2322  + #XK_b¿žË_dÙs_134568 + 0x10028bd + + ) + +2323  + #XK_b¿žË_dÙs_234568 + 0x10028b + + ) + +2324  + #XK_b¿žË_dÙs_1234568 + 0x10028bà + + ) + +2325  + #XK_b¿žË_dÙs_78 + 0x10028c0 + + ) + +2326  + #XK_b¿žË_dÙs_178 + 0x10028c1 + + ) + +2327  + #XK_b¿žË_dÙs_278 + 0x10028c2 + + ) + +2328  + #XK_b¿žË_dÙs_1278 + 0x10028c3 + + ) + +2329  + #XK_b¿žË_dÙs_378 + 0x10028c4 + + ) + +2330  + #XK_b¿žË_dÙs_1378 + 0x10028c5 + + ) + +2331  + #XK_b¿žË_dÙs_2378 + 0x10028c6 + + ) + +2332  + #XK_b¿žË_dÙs_12378 + 0x10028c7 + + ) + +2333  + #XK_b¿žË_dÙs_478 + 0x10028c8 + + ) + +2334  + #XK_b¿žË_dÙs_1478 + 0x10028c9 + + ) + +2335  + #XK_b¿žË_dÙs_2478 + 0x10028ÿ + + ) + +2336  + #XK_b¿žË_dÙs_12478 + 0x10028cb + + ) + +2337  + #XK_b¿žË_dÙs_3478 + 0x10028cø + + ) + +2338  + #XK_b¿žË_dÙs_13478 + 0x10028cd + + ) + +2339  + #XK_b¿žË_dÙs_23478 + 0x10028û + + ) + +2340  + #XK_b¿žË_dÙs_123478 + 0x10028cà + + ) + +2341  + #XK_b¿žË_dÙs_578 + 0x10028d0 + + ) + +2342  + #XK_b¿žË_dÙs_1578 + 0x10028d1 + + ) + +2343  + #XK_b¿žË_dÙs_2578 + 0x10028d2 + + ) + +2344  + #XK_b¿žË_dÙs_12578 + 0x10028d3 + + ) + +2345  + #XK_b¿žË_dÙs_3578 + 0x10028d4 + + ) + +2346  + #XK_b¿žË_dÙs_13578 + 0x10028d5 + + ) + +2347  + #XK_b¿žË_dÙs_23578 + 0x10028d6 + + ) + +2348  + #XK_b¿žË_dÙs_123578 + 0x10028d7 + + ) + +2349  + #XK_b¿žË_dÙs_4578 + 0x10028d8 + + ) + +2350  + #XK_b¿žË_dÙs_14578 + 0x10028d9 + + ) + +2351  + #XK_b¿žË_dÙs_24578 + 0x10028d¨ + + ) + +2352  + #XK_b¿žË_dÙs_124578 + 0x10028db + + ) + +2353  + #XK_b¿žË_dÙs_34578 + 0x10028dø + + ) + +2354  + #XK_b¿žË_dÙs_134578 + 0x10028dd + + ) + +2355  + #XK_b¿žË_dÙs_234578 + 0x10028d + + ) + +2356  + #XK_b¿žË_dÙs_1234578 + 0x10028dà + + ) + +2357  + #XK_b¿žË_dÙs_678 + 0x10028e0 + + ) + +2358  + #XK_b¿žË_dÙs_1678 + 0x10028e1 + + ) + +2359  + #XK_b¿žË_dÙs_2678 + 0x10028e2 + + ) + +2360  + #XK_b¿žË_dÙs_12678 + 0x10028e3 + + ) + +2361  + #XK_b¿žË_dÙs_3678 + 0x10028e4 + + ) + +2362  + #XK_b¿žË_dÙs_13678 + 0x10028e5 + + ) + +2363  + #XK_b¿žË_dÙs_23678 + 0x10028e6 + + ) + +2364  + #XK_b¿žË_dÙs_123678 + 0x10028e7 + + ) + +2365  + #XK_b¿žË_dÙs_4678 + 0x10028e8 + + ) + +2366  + #XK_b¿žË_dÙs_14678 + 0x10028e9 + + ) + +2367  + #XK_b¿žË_dÙs_24678 + 0x10028— + + ) + +2368  + #XK_b¿žË_dÙs_124678 + 0x10028eb + + ) + +2369  + #XK_b¿žË_dÙs_34678 + 0x10028eø + + ) + +2370  + #XK_b¿žË_dÙs_134678 + 0x10028ed + + ) + +2371  + #XK_b¿žË_dÙs_234678 + 0x10028“ + + ) + +2372  + #XK_b¿žË_dÙs_1234678 + 0x10028eà + + ) + +2373  + #XK_b¿žË_dÙs_5678 + 0x10028f0 + + ) + +2374  + #XK_b¿žË_dÙs_15678 + 0x10028f1 + + ) + +2375  + #XK_b¿žË_dÙs_25678 + 0x10028f2 + + ) + +2376  + #XK_b¿žË_dÙs_125678 + 0x10028f3 + + ) + +2377  + #XK_b¿žË_dÙs_35678 + 0x10028f4 + + ) + +2378  + #XK_b¿žË_dÙs_135678 + 0x10028f5 + + ) + +2379  + #XK_b¿žË_dÙs_235678 + 0x10028f6 + + ) + +2380  + #XK_b¿žË_dÙs_1235678 + 0x10028f7 + + ) + +2381  + #XK_b¿žË_dÙs_45678 + 0x10028f8 + + ) + +2382  + #XK_b¿žË_dÙs_145678 + 0x10028f9 + + ) + +2383  + #XK_b¿žË_dÙs_245678 + 0x10028ç + + ) + +2384  + #XK_b¿žË_dÙs_1245678 + 0x10028fb + + ) + +2385  + #XK_b¿žË_dÙs_345678 + 0x10028fø + + ) + +2386  + #XK_b¿žË_dÙs_1345678 + 0x10028fd + + ) + +2387  + #XK_b¿žË_dÙs_2345678 + 0x10028ã + + ) + +2388  + #XK_b¿žË_dÙs_12345678 + 0x10028fà + + ) + +2396 #ifdeà +XK_SINHALA + + +2397  + #XK_Sšh_ng + 0x1000d82 + + ) + +2398  + #XK_Sšh_h2 + 0x1000d83 + + ) + +2399  + #XK_Sšh_a + 0x1000d85 + + ) + +2400  + #XK_Sšh_¯ + 0x1000d86 + + ) + +2401  + #XK_Sšh_« + 0x1000d87 + + ) + +2402  + #XK_Sšh_«e + 0x1000d88 + + ) + +2403  + #XK_Sšh_i + 0x1000d89 + + ) + +2404  + #XK_Sšh_ii + 0x1000d8¨ + + ) + +2405  + #XK_Sšh_u + 0x1000d8b + + ) + +2406  + #XK_Sšh_uu + 0x1000d8ø + + ) + +2407  + #XK_Sšh_ri + 0x1000d8d + + ) + +2408  + #XK_Sšh_rii + 0x1000d8 + + ) + +2409  + #XK_Sšh_lu + 0x1000d8à + + ) + +2410  + #XK_Sšh_luu + 0x1000d90 + + ) + +2411  + #XK_Sšh_e + 0x1000d91 + + ) + +2412  + #XK_Sšh_“ + 0x1000d92 + + ) + +2413  + #XK_Sšh_ai + 0x1000d93 + + ) + +2414  + #XK_Sšh_o + 0x1000d94 + + ) + +2415  + #XK_Sšh_oo + 0x1000d95 + + ) + +2416  + #XK_Sšh_au + 0x1000d96 + + ) + +2417  + #XK_Sšh_ka + 0x1000d9¨ + + ) + +2418  + #XK_Sšh_kha + 0x1000d9b + + ) + +2419  + #XK_Sšh_ga + 0x1000d9ø + + ) + +2420  + #XK_Sšh_gha + 0x1000d9d + + ) + +2421  + #XK_Sšh_ng2 + 0x1000d9 + + ) + +2422  + #XK_Sšh_nga + 0x1000d9à + + ) + +2423  + #XK_Sšh_ÿ + 0x1000da0 + + ) + +2424  + #XK_Sšh_cha + 0x1000da1 + + ) + +2425  + #XK_Sšh_ja + 0x1000da2 + + ) + +2426  + #XK_Sšh_jha + 0x1000da3 + + ) + +2427  + #XK_Sšh_nya + 0x1000da4 + + ) + +2428  + #XK_Sšh_jnya + 0x1000da5 + + ) + +2429  + #XK_Sšh_nja + 0x1000da6 + + ) + +2430  + #XK_Sšh_‰a + 0x1000da7 + + ) + +2431  + #XK_Sšh_‰ha + 0x1000da8 + + ) + +2432  + #XK_Sšh_dda + 0x1000da9 + + ) + +2433  + #XK_Sšh_ddha + 0x1000d¯ + + ) + +2434  + #XK_Sšh_Âa + 0x1000dab + + ) + +2435  + #XK_Sšh_ndda + 0x1000daø + + ) + +2436  + #XK_Sšh_tha + 0x1000dad + + ) + +2437  + #XK_Sšh_thha + 0x1000d« + + ) + +2438  + #XK_Sšh_dha + 0x1000daà + + ) + +2439  + #XK_Sšh_dhha + 0x1000db0 + + ) + +2440  + #XK_Sšh_Ç + 0x1000db1 + + ) + +2441  + #XK_Sšh_ndha + 0x1000db3 + + ) + +2442  + #XK_Sšh_· + 0x1000db4 + + ) + +2443  + #XK_Sšh_pha + 0x1000db5 + + ) + +2444  + #XK_Sšh_ba + 0x1000db6 + + ) + +2445  + #XK_Sšh_bha + 0x1000db7 + + ) + +2446  + #XK_Sšh_ma + 0x1000db8 + + ) + +2447  + #XK_Sšh_mba + 0x1000db9 + + ) + +2448  + #XK_Sšh_ya + 0x1000db¨ + + ) + +2449  + #XK_Sšh_¿ + 0x1000dbb + + ) + +2450  + #XK_Sšh_Ï + 0x1000dbd + + ) + +2451  + #XK_Sšh_va + 0x1000dc0 + + ) + +2452  + #XK_Sšh_sha + 0x1000dc1 + + ) + +2453  + #XK_Sšh_ssha + 0x1000dc2 + + ) + +2454  + #XK_Sšh_§ + 0x1000dc3 + + ) + +2455  + #XK_Sšh_ha + 0x1000dc4 + + ) + +2456  + #XK_Sšh_Îa + 0x1000dc5 + + ) + +2457  + #XK_Sšh_ç + 0x1000dc6 + + ) + +2458  + #XK_Sšh_® + 0x1000dÿ + + ) + +2459  + #XK_Sšh_¯2 + 0x1000dcà + + ) + +2460  + #XK_Sšh_«2 + 0x1000dd0 + + ) + +2461  + #XK_Sšh_«e2 + 0x1000dd1 + + ) + +2462  + #XK_Sšh_i2 + 0x1000dd2 + + ) + +2463  + #XK_Sšh_ii2 + 0x1000dd3 + + ) + +2464  + #XK_Sšh_u2 + 0x1000dd4 + + ) + +2465  + #XK_Sšh_uu2 + 0x1000dd6 + + ) + +2466  + #XK_Sšh_ru2 + 0x1000dd8 + + ) + +2467  + #XK_Sšh_e2 + 0x1000dd9 + + ) + +2468  + #XK_Sšh_“2 + 0x1000dd¨ + + ) + +2469  + #XK_Sšh_ai2 + 0x1000ddb + + ) + +2470  + #XK_Sšh_o2 + 0x1000ddø + + ) + +2471  + #XK_Sšh_oo2 + 0x1000ddd + + ) + +2472  + #XK_Sšh_au2 + 0x1000dd + + ) + +2473  + #XK_Sšh_lu2 + 0x1000ddà + + ) + +2474  + #XK_Sšh_ruu2 + 0x1000df2 + + ) + +2475  + #XK_Sšh_luu2 + 0x1000df3 + + ) + +2476  + #XK_Sšh_kundd®iya + 0x1000df4 + + ) + + @/usr/include/_G_config.h + +4 #iâdeà +_G_cÚfig_h + + +5  + #_G_cÚfig_h + 1 + + ) + +9  + ~ + +10  + #__Ãed_size_t + + + ) + +11 #ià +defšed + +_LIBC + || defšed +_GLIBCPP_USE_WCHAR_T + + +12  + #__Ãed_wch¬_t + + + ) + +14  + #__Ãed_NULL + + + ) + +15  + ~<¡ddef.h +> + +16  + #__Ãed_mb¡©e_t + + + ) + +17 #ià +defšed + +_LIBC + || defšed +_GLIBCPP_USE_WCHAR_T + + +18  + #__Ãed_wšt_t + + + ) + +20  + ~ + +21  + #_G_size_t + +size_t + + + ) + +24 +__off_t + + m__pos +; + +25 +__mb¡©e_t + + m__¡©e +; + +26 } + t_G_åos_t +; + +29 +__off64_t + + m__pos +; + +30 +__mb¡©e_t + + m__¡©e +; + +31 } + t_G_åos64_t +; + +32  + #_G_ssize_t + +__ssize_t + + + ) + +33  + #_G_off_t + +__off_t + + + ) + +34  + #_G_off64_t + +__off64_t + + + ) + +35  + #_G_pid_t + +__pid_t + + + ) + +36  + #_G_uid_t + +__uid_t + + + ) + +37  + #_G_wch¬_t + +wch¬_t + + + ) + +38  + #_G_wšt_t + +wšt_t + + + ) + +39  + #_G_¡©64 + +¡©64 + + + ) + +40 #ià +defšed + +_LIBC + || defšed +_GLIBCPP_USE_WCHAR_T + + +41  + ~ + +44  +__gcÚv_šfo + + m__cd +; + +47  +__gcÚv_šfo + + m__cd +; + +48  +__gcÚv_¡•_d©a + + m__d©a +; + +49 } + m__combšed +; + +50 } + t_G_icÚv_t +; + +53  + t_G_št16_t + + t__©Œibu‹__ + (( + t__mode__ + ( + t__HI__ +))); + +54  + t_G_št32_t + + t__©Œibu‹__ + (( + t__mode__ + ( + t__SI__ +))); + +55  + t_G_ušt16_t + + t__©Œibu‹__ + (( + t__mode__ + ( + t__HI__ +))); + +56  + t_G_ušt32_t + + t__©Œibu‹__ + (( + t__mode__ + ( + t__SI__ +))); + +58  + #_G_HAVE_BOOL + 1 + + ) + +62  + #_G_HAVE_ATEXIT + 1 + + ) + +63  + #_G_HAVE_SYS_CDEFS + 1 + + ) + +64  + #_G_HAVE_SYS_WAIT + 1 + + ) + +65  + #_G_NEED_STDARG_H + 1 + + ) + +66  + #_G_va_li¡ + +__gnuc_va_li¡ + + + ) + +68  + #_G_HAVE_PRINTF_FP + 1 + + ) + +69  + #_G_HAVE_MMAP + 1 + + ) + +70  + #_G_HAVE_MREMAP + 1 + + ) + +71  + #_G_HAVE_LONG_DOUBLE_IO + 1 + + ) + +72  + #_G_HAVE_IO_FILE_OPEN + 1 + + ) + +73  + #_G_HAVE_IO_GETLINE_INFO + 1 + + ) + +75  + #_G_IO_IO_FILE_VERSION + 0x20001 + + ) + +77  + #_G_OPEN64 + +__Ý’64 + + + ) + +78  + #_G_LSEEK64 + +__l£ek64 + + + ) + +79  + #_G_MMAP64 + +__mm­64 + + + ) + +80  + #_G_FSTAT64 +( +fd +, +buf +è + `__fx¡©64 + ( +_STAT_VER +, fd, buf) + + ) + +83  + #_G_HAVE_ST_BLKSIZE + + `defšed + ( +_STATBUF_ST_BLKSIZE +) + + ) + +85  + #_G_BUFSIZ + 8192 + + ) + +88  + #_G_NAMES_HAVE_UNDERSCORE + 0 + + ) + +89  + #_G_VTABLE_LABEL_HAS_LENGTH + 1 + + ) + +90  + #_G_USING_THUNKS + 1 + + ) + +91  + #_G_VTABLE_LABEL_PREFIX + "__vt_" + + ) + +92  + #_G_VTABLE_LABEL_PREFIX_ID + +__vt_ + + + ) + +95 #ià +defšed + +__ýlu¥lus + || defšed +__STDC__ + + +96  + #_G_ARGS +( +ARGLIST +è + ) +ARGLIST + +98  + #_G_ARGS +( +ARGLIST +è() + + ) + + @/usr/include/bits/fcntl.h + +21 #iâdef +_FCNTL_H + + +25  + ~ + +26  + ~ + +27 #ifdeà +__USE_GNU + + +28  + ~ + +34  + #O_ACCMODE + 0003 + + ) + +35  + #O_RDONLY + 00 + + ) + +36  + #O_WRONLY + 01 + + ) + +37  + #O_RDWR + 02 + + ) + +38  + #O_CREAT + 0100 + + ) + +39  + #O_EXCL + 0200 + + ) + +40  + #O_NOCTTY + 0400 + + ) + +41  + #O_TRUNC + 01000 + + ) + +42  + #O_APPEND + 02000 + + ) + +43  + #O_NONBLOCK + 04000 + + ) + +44  + #O_NDELAY + +O_NONBLOCK + + + ) + +45  + #O_SYNC + 04010000 + + ) + +46  + #O_FSYNC + +O_SYNC + + + ) + +47  + #O_ASYNC + 020000 + + ) + +49 #ifdeà +__USE_XOPEN2K8 + + +50  + #O_DIRECTORY + 0200000 + + ) + +51  + #O_NOFOLLOW + 0400000 + + ) + +52  + #O_CLOEXEC + 02000000 + + ) + +54 #ifdeà +__USE_GNU + + +55  + #O_DIRECT + 040000 + + ) + +56  + #O_NOATIME + 01000000 + + ) + +57  + #O_PATH + 010000000 + + ) + +63 #ià +defšed + +__USE_POSIX199309 + || defšed +__USE_UNIX98 + + +64  + #O_DSYNC + 010000 + + ) + +65  + #O_RSYNC + +O_SYNC + + + ) + +68 #ifdeà +__USE_LARGEFILE64 + + +69 #ià +__WORDSIZE + == 64 + +70  + #O_LARGEFILE + 0 + + ) + +72  + #O_LARGEFILE + 0100000 + + ) + +77  + #F_DUPFD + 0 + + ) + +78  + #F_GETFD + 1 + + ) + +79  + #F_SETFD + 2 + + ) + +80  + #F_GETFL + 3 + + ) + +81  + #F_SETFL + 4 + + ) + +82 #ià +__WORDSIZE + == 64 + +83  + #F_GETLK + 5 + + ) + +84  + #F_SETLK + 6 + + ) + +85  + #F_SETLKW + 7 + + ) + +87  + #F_GETLK64 + 5 + + ) + +88  + #F_SETLK64 + 6 + + ) + +89  + #F_SETLKW64 + 7 + + ) + +91 #iâdeà +__USE_FILE_OFFSET64 + + +92  + #F_GETLK + 5 + + ) + +93  + #F_SETLK + 6 + + ) + +94  + #F_SETLKW + 7 + + ) + +96  + #F_GETLK + +F_GETLK64 + + + ) + +97  + #F_SETLK + +F_SETLK64 + + + ) + +98  + #F_SETLKW + +F_SETLKW64 + + + ) + +100  + #F_GETLK64 + 12 + + ) + +101  + #F_SETLK64 + 13 + + ) + +102  + #F_SETLKW64 + 14 + + ) + +105 #ià +defšed + +__USE_BSD + || defšed +__USE_UNIX98 + || defšed +__USE_XOPEN2K8 + + +106  + #F_SETOWN + 8 + + ) + +107  + #F_GETOWN + 9 + + ) + +110 #ifdeà +__USE_GNU + + +111  + #F_SETSIG + 10 + + ) + +112  + #F_GETSIG + 11 + + ) + +113  + #F_SETOWN_EX + 15 + + ) + +114  + #F_GETOWN_EX + 16 + + ) + +117 #ifdeà +__USE_GNU + + +118  + #F_SETLEASE + 1024 + + ) + +119  + #F_GETLEASE + 1025 + + ) + +120  + #F_NOTIFY + 1026 + + ) + +121  + #F_SETPIPE_SZ + 1031 + + ) + +122  + #F_GETPIPE_SZ + 1032 + + ) + +124 #ifdeà +__USE_XOPEN2K8 + + +125  + #F_DUPFD_CLOEXEC + 1030 + + ) + +130  + #FD_CLOEXEC + 1 + + ) + +133  + #F_RDLCK + 0 + + ) + +134  + #F_WRLCK + 1 + + ) + +135  + #F_UNLCK + 2 + + ) + +138  + #F_EXLCK + 4 + + ) + +139  + #F_SHLCK + 8 + + ) + +141 #ifdeà +__USE_BSD + + +143  + #LOCK_SH + 1 + + ) + +144  + #LOCK_EX + 2 + + ) + +145  + #LOCK_NB + 4 + + ) + +147  + #LOCK_UN + 8 + + ) + +150 #ifdeà +__USE_GNU + + +151  + #LOCK_MAND + 32 + + ) + +152  + #LOCK_READ + 64 + + ) + +153  + #LOCK_WRITE + 128 + + ) + +154  + #LOCK_RW + 192 + + ) + +157 #ifdeà +__USE_GNU + + +159  + #DN_ACCESS + 0x00000001 + + ) + +160  + #DN_MODIFY + 0x00000002 + + ) + +161  + #DN_CREATE + 0x00000004 + + ) + +162  + #DN_DELETE + 0x00000008 + + ) + +163  + #DN_RENAME + 0x00000010 + + ) + +164  + #DN_ATTRIB + 0x00000020 + + ) + +165  + #DN_MULTISHOT + 0x80000000 + + ) + +168  + sæock + + +170  + ml_ty³ +; + +171  + ml_wh’û +; + +172 #iâdeà +__USE_FILE_OFFSET64 + + +173 +__off_t + + ml_¡¬t +; + +174 +__off_t + + ml_Ën +; + +176 +__off64_t + + ml_¡¬t +; + +177 +__off64_t + + ml_Ën +; + +179 +__pid_t + + ml_pid +; + +182 #ifdeà +__USE_LARGEFILE64 + + +183  + sæock64 + + +185  + ml_ty³ +; + +186  + ml_wh’û +; + +187 +__off64_t + + ml_¡¬t +; + +188 +__off64_t + + ml_Ën +; + +189 +__pid_t + + ml_pid +; + +193 #ifdeà +__USE_GNU + + +195 + e__pid_ty³ + + +197 + mF_OWNER_TID + = 0, + +198 + mF_OWNER_PID +, + +199 + mF_OWNER_PGRP +, + +200 + mF_OWNER_GID + = +F_OWNER_PGRP + + +204  + sf_owÃr_ex + + +206 +__pid_ty³ + + mty³ +; + +207 +__pid_t + + mpid +; + +213 #ifdef +__USE_BSD + + +214  + #FAPPEND + +O_APPEND + + + ) + +215  + #FFSYNC + +O_FSYNC + + + ) + +216  + #FASYNC + +O_ASYNC + + + ) + +217  + #FNONBLOCK + +O_NONBLOCK + + + ) + +218  + #FNDELAY + +O_NDELAY + + + ) + +222 #ifdeà +__USE_XOPEN2K + + +223  + #POSIX_FADV_NORMAL + 0 + + ) + +224  + #POSIX_FADV_RANDOM + 1 + + ) + +225  + #POSIX_FADV_SEQUENTIAL + 2 + + ) + +226  + #POSIX_FADV_WILLNEED + 3 + + ) + +227  + #POSIX_FADV_DONTNEED + 4 + + ) + +228  + #POSIX_FADV_NOREUSE + 5 + + ) + +232 #ifdeà +__USE_GNU + + +234  + #SYNC_FILE_RANGE_WAIT_BEFORE + 1 + + ) + +237  + #SYNC_FILE_RANGE_WRITE + 2 + + ) + +240  + #SYNC_FILE_RANGE_WAIT_AFTER + 4 + + ) + +245  + #SPLICE_F_MOVE + 1 + + ) + +246  + #SPLICE_F_NONBLOCK + 2 + + ) + +249  + #SPLICE_F_MORE + 4 + + ) + +250  + #SPLICE_F_GIFT + 8 + + ) + +254  + sfže_hªdË + + +256  + mhªdË_by‹s +; + +257  + mhªdË_ty³ +; + +259  + mf_hªdË +[0]; + +263  + #MAX_HANDLE_SZ + 128 + + ) + +266 + g__BEGIN_DECLS + + +268 #ifdeà +__USE_GNU + + +271 +ssize_t + + $»adah—d + ( +__fd +, +__off64_t + +__off£t +, +size_t + +__couÁ +) + +272 +__THROW +; + +279  + `sync_fže_¿nge + ( +__fd +, +__off64_t + +__off£t +, __off64_ˆ +__couÁ +, + +280  +__æags +); + +287 +ssize_t + + `vm¥liû + ( +__fdout +, cÚ¡  +iovec + * +__iov +, + +288 +size_t + +__couÁ +,  +__æags +); + +294 +ssize_t + + `¥liû + ( +__fdš +, +__off64_t + * +__offš +,  +__fdout +, + +295 +__off64_t + * +__offout +, +size_t + +__Ën +, + +296  +__æags +); + +302 +ssize_t + + `‹e + ( +__fdš +,  +__fdout +, +size_t + +__Ën +, + +303  +__æags +); + +309 #iâdeà +__USE_FILE_OFFSET64 + + +310  + `çÎoÿ‹ + ( +__fd +,  +__mode +, +__off_t + +__off£t +, __off_ˆ +__Ën +); + +312 #ifdeà +__REDIRECT + + +313  + `__REDIRECT + ( +çÎoÿ‹ +, ( +__fd +,  +__mode +, +__off64_t + +__off£t +, + +314 +__off64_t + +__Ën +), + +315 +çÎoÿ‹64 +); + +317  + #çÎoÿ‹ + +çÎoÿ‹64 + + + ) + +320 #ifdeà +__USE_LARGEFILE64 + + +321  + `çÎoÿ‹64 + ( +__fd +,  +__mode +, +__off64_t + +__off£t +, + +322 +__off64_t + +__Ën +); + +327  + $Çme_to_hªdË_© + ( +__dfd +, cÚ¡ * +__Çme +, + +328  +fže_hªdË + * +__hªdË +, * +__mÁ_id +, + +329  +__æags +è +__THROW +; + +335  + `Ý’_by_hªdË_© + ( +__mouÁdœfd +,  +fže_hªdË + * +__hªdË +, + +336  +__æags +); + +340 +__END_DECLS + + + @/usr/include/bits/fcntl2.h + +20 #iâdef +_FCNTL_H + + +26 #iâdeà +__USE_FILE_OFFSET64 + + +27  + $__Ý’_2 + ( +__cÚ¡ + * +__·th +,  +__oæag +è + `__nÚnuÎ + ((1)); + +28  + `__REDIRECT + ( +__Ý’_®Ÿs +, ( +__cÚ¡ + * +__·th +,  +__oæag +, ...), + +29 +Ý’ +è + `__nÚnuÎ + ((1)); + +31  + `__REDIRECT + ( +__Ý’_2 +, ( +__cÚ¡ + * +__·th +,  +__oæag +), + +32 +__Ý’64_2 +è + `__nÚnuÎ + ((1)); + +33  + `__REDIRECT + ( +__Ý’_®Ÿs +, ( +__cÚ¡ + * +__·th +,  +__oæag +, ...), + +34 +Ý’64 +è + `__nÚnuÎ + ((1)); + +36 + `__”rÜdeþ + ( +__Ý’_too_mªy_¬gs +, + +38 + `__”rÜdeþ + ( +__Ý’_missšg_mode +, + +41 +__ex‹º_®ways_šlše +  + +42 + $Ý’ + ( +__cÚ¡ + * +__·th +,  +__oæag +, ...) + +44 ià( + `__va_¬g_·ck_Ën + () > 1) + +45 + `__Ý’_too_mªy_¬gs + (); + +47 ià( + `__bužtš_cÚ¡ªt_p + ( +__oæag +)) + +49 ià(( +__oæag + & +O_CREAT +è!ð0 && + `__va_¬g_·ck_Ën + () < 1) + +51 + `__Ý’_missšg_mode + (); + +52  + `__Ý’_2 + ( +__·th +, +__oæag +); + +54  + `__Ý’_®Ÿs + ( +__·th +, +__oæag +, + `__va_¬g_·ck + ()); + +57 ià( + `__va_¬g_·ck_Ën + () < 1) + +58  + `__Ý’_2 + ( +__·th +, +__oæag +); + +60  + `__Ý’_®Ÿs + ( +__·th +, +__oæag +, + `__va_¬g_·ck + ()); + +61 + } +} + +64 #ifdeà +__USE_LARGEFILE64 + + +65  + $__Ý’64_2 + ( +__cÚ¡ + * +__·th +,  +__oæag +è + `__nÚnuÎ + ((1)); + +66  + `__REDIRECT + ( +__Ý’64_®Ÿs +, ( +__cÚ¡ + * +__·th +,  +__oæag +, + +67 ...), +Ý’64 +è + `__nÚnuÎ + ((1)); + +68 + `__”rÜdeþ + ( +__Ý’64_too_mªy_¬gs +, + +70 + `__”rÜdeþ + ( +__Ý’64_missšg_mode +, + +73 +__ex‹º_®ways_šlše +  + +74 + $Ý’64 + ( +__cÚ¡ + * +__·th +,  +__oæag +, ...) + +76 ià( + `__va_¬g_·ck_Ën + () > 1) + +77 + `__Ý’64_too_mªy_¬gs + (); + +79 ià( + `__bužtš_cÚ¡ªt_p + ( +__oæag +)) + +81 ià(( +__oæag + & +O_CREAT +è!ð0 && + `__va_¬g_·ck_Ën + () < 1) + +83 + `__Ý’64_missšg_mode + (); + +84  + `__Ý’64_2 + ( +__·th +, +__oæag +); + +86  + `__Ý’64_®Ÿs + ( +__·th +, +__oæag +, + `__va_¬g_·ck + ()); + +89 ià( + `__va_¬g_·ck_Ën + () < 1) + +90  + `__Ý’64_2 + ( +__·th +, +__oæag +); + +92  + `__Ý’64_®Ÿs + ( +__·th +, +__oæag +, + `__va_¬g_·ck + ()); + +93 + } +} + +97 #ifdeà +__USE_ATFILE + + +98 #iâdeà +__USE_FILE_OFFSET64 + + +99  + $__Ý’©_2 + ( +__fd +, +__cÚ¡ + * +__·th +,  +__oæag +) + +100 + `__nÚnuÎ + ((2)); + +101  + `__REDIRECT + ( +__Ý’©_®Ÿs +, ( +__fd +, +__cÚ¡ + * +__·th +, + +102  +__oæag +, ...), +Ý’© +) + +103 + `__nÚnuÎ + ((2)); + +105  + `__REDIRECT + ( +__Ý’©_2 +, ( +__fd +, +__cÚ¡ + * +__·th +, + +106  +__oæag +), +__Ý’©64_2 +) + +107 + `__nÚnuÎ + ((2)); + +108  + `__REDIRECT + ( +__Ý’©_®Ÿs +, ( +__fd +, +__cÚ¡ + * +__·th +, + +109  +__oæag +, ...), +Ý’©64 +) + +110 + `__nÚnuÎ + ((2)); + +112 + `__”rÜdeþ + ( +__Ý’©_too_mªy_¬gs +, + +114 + `__”rÜdeþ + ( +__Ý’©_missšg_mode +, + +117 +__ex‹º_®ways_šlše +  + +118 + $Ý’© + ( +__fd +, +__cÚ¡ + * +__·th +,  +__oæag +, ...) + +120 ià( + `__va_¬g_·ck_Ën + () > 1) + +121 + `__Ý’©_too_mªy_¬gs + (); + +123 ià( + `__bužtš_cÚ¡ªt_p + ( +__oæag +)) + +125 ià(( +__oæag + & +O_CREAT +è!ð0 && + `__va_¬g_·ck_Ën + () < 1) + +127 + `__Ý’©_missšg_mode + (); + +128  + `__Ý’©_2 + ( +__fd +, +__·th +, +__oæag +); + +130  + `__Ý’©_®Ÿs + ( +__fd +, +__·th +, +__oæag +, + `__va_¬g_·ck + ()); + +133 ià( + `__va_¬g_·ck_Ën + () < 1) + +134  + `__Ý’©_2 + ( +__fd +, +__·th +, +__oæag +); + +136  + `__Ý’©_®Ÿs + ( +__fd +, +__·th +, +__oæag +, + `__va_¬g_·ck + ()); + +137 + } +} + +140 #ifdeà +__USE_LARGEFILE64 + + +141  + $__Ý’©64_2 + ( +__fd +, +__cÚ¡ + * +__·th +,  +__oæag +) + +142 + `__nÚnuÎ + ((2)); + +143  + `__REDIRECT + ( +__Ý’©64_®Ÿs +, ( +__fd +, +__cÚ¡ + * +__·th +, + +144  +__oæag +, ...), +Ý’©64 +) + +145 + `__nÚnuÎ + ((2)); + +146 + `__”rÜdeþ + ( +__Ý’©64_too_mªy_¬gs +, + +148 + `__”rÜdeþ + ( +__Ý’©64_missšg_mode +, + +151 +__ex‹º_®ways_šlše +  + +152 + $Ý’©64 + ( +__fd +, +__cÚ¡ + * +__·th +,  +__oæag +, ...) + +154 ià( + `__va_¬g_·ck_Ën + () > 1) + +155 + `__Ý’©64_too_mªy_¬gs + (); + +157 ià( + `__bužtš_cÚ¡ªt_p + ( +__oæag +)) + +159 ià(( +__oæag + & +O_CREAT +è!ð0 && + `__va_¬g_·ck_Ën + () < 1) + +161 + `__Ý’©64_missšg_mode + (); + +162  + `__Ý’©64_2 + ( +__fd +, +__·th +, +__oæag +); + +164  + `__Ý’©64_®Ÿs + ( +__fd +, +__·th +, +__oæag +, + `__va_¬g_·ck + ()); + +167 ià( + `__va_¬g_·ck_Ën + () < 1) + +168  + `__Ý’©64_2 + ( +__fd +, +__·th +, +__oæag +); + +170  + `__Ý’©64_®Ÿs + ( +__fd +, +__·th +, +__oæag +, + `__va_¬g_·ck + ()); + +171 + } +} + + @/usr/include/bits/libio-ldbl.h + +20 #iâdeà +_IO_STDIO_H + + +24 + $__LDBL_REDIR_DECL + ( +_IO_vfsÿnf +) + +25 + `__LDBL_REDIR_DECL + ( +_IO_vårštf +) + + @/usr/include/bits/stat.h + +19 #ià! +defšed + +_SYS_STAT_H + && !defšed +_FCNTL_H + + +23 #iâdeà +_BITS_STAT_H + + +24  + #_BITS_STAT_H + 1 + + ) + +27  + #_STAT_VER_KERNEL + 0 + + ) + +29 #ià +__WORDSIZE + == 32 + +30  + #_STAT_VER_SVR4 + 2 + + ) + +31  + #_STAT_VER_LINUX + 3 + + ) + +34  + #_MKNOD_VER_LINUX + 1 + + ) + +35  + #_MKNOD_VER_SVR4 + 2 + + ) + +36  + #_MKNOD_VER + +_MKNOD_VER_LINUX + + + ) + +38  + #_STAT_VER_LINUX + 1 + + ) + +41  + #_MKNOD_VER_LINUX + 0 + + ) + +44  + #_STAT_VER + +_STAT_VER_LINUX + + + ) + +46  + s¡© + + +48 +__dev_t + + m¡_dev +; + +49 #ià +__WORDSIZE + == 32 + +50  + m__·d1 +; + +52 #ià +__WORDSIZE + =ð64 || ! +defšed + +__USE_FILE_OFFSET64 + + +53 +__šo_t + + m¡_šo +; + +55 +__šo_t + + m__¡_šo +; + +57 #ià +__WORDSIZE + == 32 + +58 +__mode_t + + m¡_mode +; + +59 +__Æšk_t + + m¡_Æšk +; + +61 +__Æšk_t + + m¡_Æšk +; + +62 +__mode_t + + m¡_mode +; + +64 +__uid_t + + m¡_uid +; + +65 +__gid_t + + m¡_gid +; + +66 #ià +__WORDSIZE + == 64 + +67  + m__·d0 +; + +69 +__dev_t + + m¡_rdev +; + +70 #ià +__WORDSIZE + == 32 + +71  + m__·d2 +; + +73 #ià +__WORDSIZE + =ð64 || ! +defšed + +__USE_FILE_OFFSET64 + + +74 +__off_t + + m¡_size +; + +76 +__off64_t + + m¡_size +; + +78 +__blksize_t + + m¡_blksize +; + +79 #ià +__WORDSIZE + =ð64 || ! +defšed + +__USE_FILE_OFFSET64 + + +80 +__blkút_t + + m¡_blocks +; + +82 +__blkút64_t + + m¡_blocks +; + +84 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN2K8 + + +91  +time¥ec + + m¡_©im +; + +92  +time¥ec + + m¡_mtim +; + +93  +time¥ec + + m¡_ùim +; + +94  + #¡_©ime + +¡_©im +. +tv_£c + + + ) + +95  + #¡_mtime + +¡_mtim +. +tv_£c + + + ) + +96  + #¡_ùime + +¡_ùim +. +tv_£c + + + ) + +98 +__time_t + + m¡_©ime +; + +99  + m¡_©im’£c +; + +100 +__time_t + + m¡_mtime +; + +101  + m¡_mtim’£c +; + +102 +__time_t + + m¡_ùime +; + +103  + m¡_ùim’£c +; + +105 #ià +__WORDSIZE + == 64 + +106  + m__unu£d +[3]; + +108 #iâdeà +__USE_FILE_OFFSET64 + + +109  + m__unu£d4 +; + +110  + m__unu£d5 +; + +112 +__šo64_t + + m¡_šo +; + +117 #ifdeà +__USE_LARGEFILE64 + + +119  + s¡©64 + + +121 +__dev_t + + m¡_dev +; + +122 #ià +__WORDSIZE + == 64 + +123 +__šo64_t + + m¡_šo +; + +124 +__Æšk_t + + m¡_Æšk +; + +125 +__mode_t + + m¡_mode +; + +127  + m__·d1 +; + +128 +__šo_t + + m__¡_šo +; + +129 +__mode_t + + m¡_mode +; + +130 +__Æšk_t + + m¡_Æšk +; + +132 +__uid_t + + m¡_uid +; + +133 +__gid_t + + m¡_gid +; + +134 #ià +__WORDSIZE + == 64 + +135  + m__·d0 +; + +136 +__dev_t + + m¡_rdev +; + +137 +__off_t + + m¡_size +; + +139 +__dev_t + + m¡_rdev +; + +140  + m__·d2 +; + +141 +__off64_t + + m¡_size +; + +143 +__blksize_t + + m¡_blksize +; + +144 +__blkút64_t + + m¡_blocks +; + +145 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN2K8 + + +152  +time¥ec + + m¡_©im +; + +153  +time¥ec + + m¡_mtim +; + +154  +time¥ec + + m¡_ùim +; + +155  + #¡_©ime + +¡_©im +. +tv_£c + + + ) + +156  + #¡_mtime + +¡_mtim +. +tv_£c + + + ) + +157  + #¡_ùime + +¡_ùim +. +tv_£c + + + ) + +159 +__time_t + + m¡_©ime +; + +160  + m¡_©im’£c +; + +161 +__time_t + + m¡_mtime +; + +162  + m¡_mtim’£c +; + +163 +__time_t + + m¡_ùime +; + +164  + m¡_ùim’£c +; + +166 #ià +__WORDSIZE + == 64 + +167  + m__unu£d +[3]; + +169 +__šo64_t + + m¡_šo +; + +175  + #_STATBUF_ST_BLKSIZE + + + ) + +176  + #_STATBUF_ST_RDEV + + + ) + +178  + #_STATBUF_ST_NSEC + + + ) + +182  + #__S_IFMT + 0170000 + + ) + +185  + #__S_IFDIR + 0040000 + + ) + +186  + #__S_IFCHR + 0020000 + + ) + +187  + #__S_IFBLK + 0060000 + + ) + +188  + #__S_IFREG + 0100000 + + ) + +189  + #__S_IFIFO + 0010000 + + ) + +190  + #__S_IFLNK + 0120000 + + ) + +191  + #__S_IFSOCK + 0140000 + + ) + +195  + #__S_TYPEISMQ +( +buf +è((buf)-> +¡_mode + - (buf)->¡_mode) + + ) + +196  + #__S_TYPEISSEM +( +buf +è((buf)-> +¡_mode + - (buf)->¡_mode) + + ) + +197  + #__S_TYPEISSHM +( +buf +è((buf)-> +¡_mode + - (buf)->¡_mode) + + ) + +201  + #__S_ISUID + 04000 + + ) + +202  + #__S_ISGID + 02000 + + ) + +203  + #__S_ISVTX + 01000 + + ) + +204  + #__S_IREAD + 0400 + + ) + +205  + #__S_IWRITE + 0200 + + ) + +206  + #__S_IEXEC + 0100 + + ) + +208 #ifdeà +__USE_ATFILE + + +209  + #UTIME_NOW + ((1È<< 30è- 1l) + + ) + +210  + #UTIME_OMIT + ((1È<< 30è- 2l) + + ) + + @/usr/include/bits/stdio-lock.h + +20 #iâdeà +_BITS_STDIO_LOCK_H + + +21  + #_BITS_STDIO_LOCK_H + 1 + + ) + +23  + ~ + +24  + ~ + +28  + #_IO_lock_šex³nsive + 1 + + ) + +30 ¡ruù {  + mlock +;  + mút +; * + mowÃr +; } + t_IO_lock_t +; + +32  + #_IO_lock_š™Ÿliz” + { +LLL_LOCK_INITIALIZER +, 0, +NULL + } + + ) + +34  + #_IO_lock_š™ +( +_Çme +) \ + +35 (( +_Çme +èð( +_IO_lock_t +è +_IO_lock_š™Ÿliz” + , 0) + + ) + +37  + #_IO_lock_fši +( +_Çme +) \ + +38 ((è0) + + ) + +40  + #_IO_lock_lock +( +_Çme +) \ + +42 * +__£lf + = +THREAD_SELF +; \ + +43 ià(( +_Çme +). +owÃr + !ð +__£lf +) \ + +45 + `Îl_lock + (( +_Çme +). +lock +, +LLL_PRIVATE +); \ + +46 ( +_Çme +). +owÃr + = +__£lf +; \ + +48 ++( +_Çme +). +út +; \ + +49 } 0) + + ) + +51  + #_IO_lock_Œylock +( +_Çme +) \ + +53  +__»suÉ + = 0; \ + +54 * +__£lf + = +THREAD_SELF +; \ + +55 ià(( +_Çme +). +owÃr + !ð +__£lf +) \ + +57 ià( + `Îl_Œylock + (( +_Çme +). +lock +) == 0) \ + +59 ( +_Çme +). +owÃr + = +__£lf +; \ + +60 ( +_Çme +). +út + = 1; \ + +63 +__»suÉ + = +EBUSY +; \ + +66 ++( +_Çme +). +út +; \ + +67 +__»suÉ +; \ + +68 }) + + ) + +70  + #_IO_lock_uÆock +( +_Çme +) \ + +72 ià(--( +_Çme +). +út + == 0) \ + +74 ( +_Çme +). +owÃr + = +NULL +; \ + +75 + `Îl_uÆock + (( +_Çme +). +lock +, +LLL_PRIVATE +); \ + +77 } 0) + + ) + +81  + #_IO_þ—nup_»giÚ_¡¬t +( +_fù +, +_å +) \ + +82 + `__libc_þ—nup_»giÚ_¡¬t + ((( +_å +)-> +_æags + & +_IO_USER_LOCK +è=ð0, +_fù +, _å) + + ) + +83  + #_IO_þ—nup_»giÚ_¡¬t_nßrg +( +_fù +) \ + +84 + `__libc_þ—nup_»giÚ_¡¬t + (1, +_fù +, +NULL +) + + ) + +85  + #_IO_þ—nup_»giÚ_’d +( +_do™ +) \ + +86 + `__libc_þ—nup_»giÚ_’d + ( +_do™ +) + + ) + +88 #ià +defšed + +_LIBC + && !defšed +NOT_IN_libc + + +90 #ifdeà +__EXCEPTIONS + + +91  + #_IO_acquœe_lock +( +_å +) \ + +93 +_IO_FILE + * +_IO_acquœe_lock_fže + \ + +94 + `__©Œibu‹__ +(( + `þ—nup + ( +_IO_acquœe_lock_fù +))) \ + +95 ð( +_å +); \ + +96 + `_IO_æockfže + ( +_IO_acquœe_lock_fže +); + + ) + +97  + #_IO_acquœe_lock_þ—r_æags2 +( +_å +) \ + +99 +_IO_FILE + * +_IO_acquœe_lock_fže + \ + +100 + `__©Œibu‹__ +(( + `þ—nup + ( +_IO_acquœe_lock_þ—r_æags2_fù +))) \ + +101 ð( +_å +); \ + +102 + `_IO_æockfže + ( +_IO_acquœe_lock_fže +); + + ) + +104  + #_IO_acquœe_lock +( +_å +è +_IO_acquœe_lock_Ãeds_exû±iÚs_’abËd + + + ) + +105  + #_IO_acquœe_lock_þ—r_æags2 +( +_å +è + `_IO_acquœe_lock + (_å) + + ) + +107  + #_IO_»Ëa£_lock +( +_å +è; } 0) + + ) + + @/usr/include/bits/time.h + +24 #ià +defšed + +__Ãed_timev® + || defšed +__USE_GNU + + +25 #iâdeà +_STRUCT_TIMEVAL + + +26  + #_STRUCT_TIMEVAL + 1 + + ) + +27  + ~ + +31  + stimev® + + +33 +__time_t + + mtv_£c +; + +34 +__su£cÚds_t + + mtv_u£c +; + +39 #iâdeà +__Ãed_timev® + + +40 #iâdeà +_BITS_TIME_H + + +41  + #_BITS_TIME_H + 1 + + ) + +49  + #CLOCKS_PER_SEC + 1000000l + + ) + +51 #ià! +defšed + +__STRICT_ANSI__ + && !defšed +__USE_XOPEN2K + + +54  + ~ + +55  +__syscÚf + (); + +56  + #CLK_TCK + (( +__þock_t +è + `__syscÚf + (2)è + + ) + +59 #ifdeà +__USE_POSIX199309 + + +61  + #CLOCK_REALTIME + 0 + + ) + +63  + #CLOCK_MONOTONIC + 1 + + ) + +65  + #CLOCK_PROCESS_CPUTIME_ID + 2 + + ) + +67  + #CLOCK_THREAD_CPUTIME_ID + 3 + + ) + +69  + #CLOCK_MONOTONIC_RAW + 4 + + ) + +71  + #CLOCK_REALTIME_COARSE + 5 + + ) + +73  + #CLOCK_MONOTONIC_COARSE + 6 + + ) + +75  + #CLOCK_BOOTTIME + 7 + + ) + +77  + #CLOCK_REALTIME_ALARM + 8 + + ) + +79  + #CLOCK_BOOTTIME_ALARM + 9 + + ) + +82  + #TIMER_ABSTIME + 1 + + ) + +85 #ifdeà +__USE_GNU + + +86  + ~ + +88 +__BEGIN_DECLS + + +91  + $þock_adjtime + ( +__þockid_t + +__þock_id +,  +timex + * +__utx +è +__THROW +; + +93 +__END_DECLS + + +99 #undeà +__Ãed_timev® + + + @/usr/include/bits/typesizes.h + +20 #iâdeà +_BITS_TYPES_H + + +24 #iâdef +_BITS_TYPESIZES_H + + +25  + #_BITS_TYPESIZES_H + 1 + + ) + +30  + #__DEV_T_TYPE + +__UQUAD_TYPE + + + ) + +31  + #__UID_T_TYPE + +__U32_TYPE + + + ) + +32  + #__GID_T_TYPE + +__U32_TYPE + + + ) + +33  + #__INO_T_TYPE + +__ULONGWORD_TYPE + + + ) + +34  + #__INO64_T_TYPE + +__UQUAD_TYPE + + + ) + +35  + #__MODE_T_TYPE + +__U32_TYPE + + + ) + +36  + #__NLINK_T_TYPE + +__UWORD_TYPE + + + ) + +37  + #__OFF_T_TYPE + +__SLONGWORD_TYPE + + + ) + +38  + #__OFF64_T_TYPE + +__SQUAD_TYPE + + + ) + +39  + #__PID_T_TYPE + +__S32_TYPE + + + ) + +40  + #__RLIM_T_TYPE + +__ULONGWORD_TYPE + + + ) + +41  + #__RLIM64_T_TYPE + +__UQUAD_TYPE + + + ) + +42  + #__BLKCNT_T_TYPE + +__SLONGWORD_TYPE + + + ) + +43  + #__BLKCNT64_T_TYPE + +__SQUAD_TYPE + + + ) + +44  + #__FSBLKCNT_T_TYPE + +__ULONGWORD_TYPE + + + ) + +45  + #__FSBLKCNT64_T_TYPE + +__UQUAD_TYPE + + + ) + +46  + #__FSFILCNT_T_TYPE + +__ULONGWORD_TYPE + + + ) + +47  + #__FSFILCNT64_T_TYPE + +__UQUAD_TYPE + + + ) + +48  + #__ID_T_TYPE + +__U32_TYPE + + + ) + +49  + #__CLOCK_T_TYPE + +__SLONGWORD_TYPE + + + ) + +50  + #__TIME_T_TYPE + +__SLONGWORD_TYPE + + + ) + +51  + #__USECONDS_T_TYPE + +__U32_TYPE + + + ) + +52  + #__SUSECONDS_T_TYPE + +__SLONGWORD_TYPE + + + ) + +53  + #__DADDR_T_TYPE + +__S32_TYPE + + + ) + +54  + #__SWBLK_T_TYPE + +__SLONGWORD_TYPE + + + ) + +55  + #__KEY_T_TYPE + +__S32_TYPE + + + ) + +56  + #__CLOCKID_T_TYPE + +__S32_TYPE + + + ) + +57  + #__TIMER_T_TYPE + * + + ) + +58  + #__BLKSIZE_T_TYPE + +__SLONGWORD_TYPE + + + ) + +59  + #__FSID_T_TYPE + sŒuù {  +__v® +[2]; } + + ) + +60  + #__SSIZE_T_TYPE + +__SWORD_TYPE + + + ) + +63  + #__FD_SETSIZE + 1024 + + ) + + @/usr/include/bits/wchar.h + +20 #iâdeà +_BITS_WCHAR_H + + +21  + #_BITS_WCHAR_H + 1 + + ) + +23  + #__WCHAR_MIN + (-2147483647 - 1) + + ) + +24  + #__WCHAR_MAX + (2147483647) + + ) + + @/usr/include/bits/wordsize.h + +3 #ià +defšed + +__x86_64__ + + +4  + #__WORDSIZE + 64 + + ) + +5  + #__WORDSIZE_COMPAT32 + 1 + + ) + +7  + #__WORDSIZE + 32 + + ) + + @/usr/include/ctype.h + +24 #iâdef +_CTYPE_H + + +25  + #_CTYPE_H + 1 + + ) + +27  + ~<ã©u»s.h +> + +28  + ~ + +30 + g__BEGIN_DECLS + + +32 #iâdeà +_ISb™ + + +41  + ~<’dŸn.h +> + +42 #ià +__BYTE_ORDER + =ð +__BIG_ENDIAN + + +43  + #_ISb™ +( +b™ +è(1 << (b™)) + + ) + +45  + #_ISb™ +( +b™ +è((b™è< 8 ? ((1 << (b™)è<< 8è: ((1 << (b™)è>> 8)) + + ) + +50 + m_ISuµ” + = +_ISb™ + (0), + +51 + m_ISlow” + = +_ISb™ + (1), + +52 + m_IS®pha + = +_ISb™ + (2), + +53 + m_ISdig™ + = +_ISb™ + (3), + +54 + m_ISxdig™ + = +_ISb™ + (4), + +55 + m_IS¥aû + = +_ISb™ + (5), + +56 + m_IS´št + = +_ISb™ + (6), + +57 + m_ISg¿ph + = +_ISb™ + (7), + +58 + m_ISbÏnk + = +_ISb™ + (8), + +59 + m_ISúŒl + = +_ISb™ + (9), + +60 + m_ISpunù + = +_ISb™ + (10), + +61 + m_IS®num + = +_ISb™ + (11) + +81 +__cÚ¡ + ** + $__ùy³_b_loc + () + +82 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡ +)); + +83 +__cÚ¡ + +__št32_t + ** + $__ùy³_tÞow”_loc + () + +84 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡ +)); + +85 +__cÚ¡ + +__št32_t + ** + $__ùy³_touµ”_loc + () + +86 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡ +)); + +88  + #__isùy³ +( +c +, +ty³ +) \ + +89 ((* + `__ùy³_b_loc + ())[(è( +c +)] & (è +ty³ +) + + ) + +91  + #__i§scii +( +c +è(((cè& ~0x7fè=ð0è + + ) + +92  + #__tßscii +( +c +è((cè& 0x7fè + + ) + +94  + #__exùy³ +( +Çme +è  + `Çme + (è +__THROW + + + ) + +96 +__BEGIN_NAMESPACE_STD + + +102 + `__exùy³ + ( +i§Êum +); + +103 + `__exùy³ + ( +i§Íha +); + +104 + `__exùy³ + ( +isúŒl +); + +105 + `__exùy³ + ( +isdig™ +); + +106 + `__exùy³ + ( +i¦ow” +); + +107 + `__exùy³ + ( +isg¿ph +); + +108 + `__exùy³ + ( +i¥ršt +); + +109 + `__exùy³ + ( +i¥unù +); + +110 + `__exùy³ + ( +is¥aû +); + +111 + `__exùy³ + ( +isuµ” +); + +112 + `__exùy³ + ( +isxdig™ +); + +116  + $tÞow” + ( +__c +è +__THROW +; + +119  + $touµ” + ( +__c +è +__THROW +; + +121 +__END_NAMESPACE_STD + + +125 #ifdef +__USE_ISOC99 + + +126 +__BEGIN_NAMESPACE_C99 + + +128 + `__exùy³ + ( +isbÏnk +); + +130 +__END_NAMESPACE_C99 + + +133 #ifdeà +__USE_GNU + + +135  + $isùy³ + ( +__c +,  +__mask +è +__THROW +; + +138 #ià +defšed + +__USE_SVID + || defšed +__USE_MISC + || defšed +__USE_XOPEN + + +142  + $i§scii + ( +__c +è +__THROW +; + +146  + $tßscii + ( +__c +è +__THROW +; + +150 + `__exùy³ + ( +_touµ” +); + +151 + `__exùy³ + ( +_tÞow” +); + +155  + #__tobody +( +c +, +f +, +a +, +¬gs +) \ + +156 ( +__ex‹nsiÚ__ + \ + +157 ({  +__»s +; \ + +158 ià( ( +c +) > 1) \ + +160 ià( + `__bužtš_cÚ¡ªt_p + ( +c +)) \ + +162  +__c + = ( +c +); \ + +163 +__»s + = +__c + < -128 || __ø> 255 ? __ø: ( +a +)[__c]; \ + +166 +__»s + = +f + +¬gs +; \ + +169 +__»s + = ( +a +)[(è( +c +)]; \ + +170 +__»s +; + } +})) + + ) + +172 #ià! +defšed + +__NO_CTYPE + && !defšed +__ýlu¥lus + + +173  + #i§Êum +( +c +è + `__isùy³ +((c), +_IS®num +) + + ) + +174  + #i§Íha +( +c +è + `__isùy³ +((c), +_IS®pha +) + + ) + +175  + #isúŒl +( +c +è + `__isùy³ +((c), +_ISúŒl +) + + ) + +176  + #isdig™ +( +c +è + `__isùy³ +((c), +_ISdig™ +) + + ) + +177  + #i¦ow” +( +c +è + `__isùy³ +((c), +_ISlow” +) + + ) + +178  + #isg¿ph +( +c +è + `__isùy³ +((c), +_ISg¿ph +) + + ) + +179  + #i¥ršt +( +c +è + `__isùy³ +((c), +_IS´št +) + + ) + +180  + #i¥unù +( +c +è + `__isùy³ +((c), +_ISpunù +) + + ) + +181  + #is¥aû +( +c +è + `__isùy³ +((c), +_IS¥aû +) + + ) + +182  + #isuµ” +( +c +è + `__isùy³ +((c), +_ISuµ” +) + + ) + +183  + #isxdig™ +( +c +è + `__isùy³ +((c), +_ISxdig™ +) + + ) + +185 #ifdeà +__USE_ISOC99 + + +186  + #isbÏnk +( +c +è + `__isùy³ +((c), +_ISbÏnk +) + + ) + +189 #ifdeà +__USE_EXTERN_INLINES + + +190 +__ex‹º_šlše +  + +191 +__NTH + ( + $tÞow” + ( +__c +)) + +193  +__c + >ð-128 && __ø< 256 ? (* + `__ùy³_tÞow”_loc + ())[__c] : __c; + +194 + } +} + +196 +__ex‹º_šlše +  + +197 +__NTH + ( + $touµ” + ( +__c +)) + +199  +__c + >ð-128 && __ø< 256 ? (* + `__ùy³_touµ”_loc + ())[__c] : __c; + +200 + } +} + +203 #ià +__GNUC__ + >ð2 && +defšed + +__OPTIMIZE__ + && !defšed +__ýlu¥lus + + +204  + #tÞow” +( +c +è + `__tobody + (c, +tÞow” +, * + `__ùy³_tÞow”_loc + (), (c)) + + ) + +205  + #touµ” +( +c +è + `__tobody + (c, +touµ” +, * + `__ùy³_touµ”_loc + (), (c)) + + ) + +208 #ià +defšed + +__USE_SVID + || defšed +__USE_MISC + || defšed +__USE_XOPEN + + +209  + #i§scii +( +c +è + `__i§scii + (c) + + ) + +210  + #tßscii +( +c +è + `__tßscii + (c) + + ) + +212  + #_tÞow” +( +c +è((è(* + `__ùy³_tÞow”_loc + ())[(è(c)]) + + ) + +213  + #_touµ” +( +c +è((è(* + `__ùy³_touµ”_loc + ())[(è(c)]) + + ) + +219 #ifdeà +__USE_XOPEN2K8 + + +233  + ~ + +237  + #__isùy³_l +( +c +, +ty³ +, +loÿË +) \ + +238 (( +loÿË +)-> +__ùy³_b +[(è( +c +)] & (è +ty³ +) + + ) + +240  + #__exùy³_l +( +Çme +) \ + +241  + `Çme + (, +__loÿË_t +è +__THROW + + + ) + +247 +__exùy³_l + ( +i§Êum_l +); + +248 +__exùy³_l + ( +i§Íha_l +); + +249 +__exùy³_l + ( +isúŒl_l +); + +250 +__exùy³_l + ( +isdig™_l +); + +251 +__exùy³_l + ( +i¦ow”_l +); + +252 +__exùy³_l + ( +isg¿ph_l +); + +253 +__exùy³_l + ( +i¥ršt_l +); + +254 +__exùy³_l + ( +i¥unù_l +); + +255 +__exùy³_l + ( +is¥aû_l +); + +256 +__exùy³_l + ( +isuµ”_l +); + +257 +__exùy³_l + ( +isxdig™_l +); + +259 +__exùy³_l + ( +isbÏnk_l +); + +263  + $__tÞow”_l + ( +__c +, +__loÿË_t + +__l +è +__THROW +; + +264  + $tÞow”_l + ( +__c +, +__loÿË_t + +__l +è +__THROW +; + +267  + $__touµ”_l + ( +__c +, +__loÿË_t + +__l +è +__THROW +; + +268  + $touµ”_l + ( +__c +, +__loÿË_t + +__l +è +__THROW +; + +270 #ià +__GNUC__ + >ð2 && +defšed + +__OPTIMIZE__ + && !defšed +__ýlu¥lus + + +271  + #__tÞow”_l +( +c +, +loÿË +) \ + +272 + `__tobody + ( +c +, +__tÞow”_l +, ( +loÿË +)-> +__ùy³_tÞow” +, (c,†oÿË)) + + ) + +273  + #__touµ”_l +( +c +, +loÿË +) \ + +274 + `__tobody + ( +c +, +__touµ”_l +, ( +loÿË +)-> +__ùy³_touµ” +, (c,†oÿË)) + + ) + +275  + #tÞow”_l +( +c +, +loÿË +è + `__tÞow”_l + ((c), (loÿË)) + + ) + +276  + #touµ”_l +( +c +, +loÿË +è + `__touµ”_l + ((c), (loÿË)) + + ) + +280 #iâdeà +__NO_CTYPE + + +281  + #__i§Êum_l +( +c +, +l +è + `__isùy³_l +((c), +_IS®num +, (l)) + + ) + +282  + #__i§Íha_l +( +c +, +l +è + `__isùy³_l +((c), +_IS®pha +, (l)) + + ) + +283  + #__isúŒl_l +( +c +, +l +è + `__isùy³_l +((c), +_ISúŒl +, (l)) + + ) + +284  + #__isdig™_l +( +c +, +l +è + `__isùy³_l +((c), +_ISdig™ +, (l)) + + ) + +285  + #__i¦ow”_l +( +c +, +l +è + `__isùy³_l +((c), +_ISlow” +, (l)) + + ) + +286  + #__isg¿ph_l +( +c +, +l +è + `__isùy³_l +((c), +_ISg¿ph +, (l)) + + ) + +287  + #__i¥ršt_l +( +c +, +l +è + `__isùy³_l +((c), +_IS´št +, (l)) + + ) + +288  + #__i¥unù_l +( +c +, +l +è + `__isùy³_l +((c), +_ISpunù +, (l)) + + ) + +289  + #__is¥aû_l +( +c +, +l +è + `__isùy³_l +((c), +_IS¥aû +, (l)) + + ) + +290  + #__isuµ”_l +( +c +, +l +è + `__isùy³_l +((c), +_ISuµ” +, (l)) + + ) + +291  + #__isxdig™_l +( +c +, +l +è + `__isùy³_l +((c), +_ISxdig™ +, (l)) + + ) + +293  + #__isbÏnk_l +( +c +, +l +è + `__isùy³_l +((c), +_ISbÏnk +, (l)) + + ) + +295 #ià +defšed + +__USE_SVID + || defšed +__USE_MISC + + +296  + #__i§scii_l +( +c +, +l +è(Ö), + `__i§scii + (c)) + + ) + +297  + #__tßscii_l +( +c +, +l +è(Ö), + `__tßscii + (c)) + + ) + +300  + #i§Êum_l +( +c +, +l +è + `__i§Êum_l + ((c), (l)) + + ) + +301  + #i§Íha_l +( +c +, +l +è + `__i§Íha_l + ((c), (l)) + + ) + +302  + #isúŒl_l +( +c +, +l +è + `__isúŒl_l + ((c), (l)) + + ) + +303  + #isdig™_l +( +c +, +l +è + `__isdig™_l + ((c), (l)) + + ) + +304  + #i¦ow”_l +( +c +, +l +è + `__i¦ow”_l + ((c), (l)) + + ) + +305  + #isg¿ph_l +( +c +, +l +è + `__isg¿ph_l + ((c), (l)) + + ) + +306  + #i¥ršt_l +( +c +, +l +è + `__i¥ršt_l + ((c), (l)) + + ) + +307  + #i¥unù_l +( +c +, +l +è + `__i¥unù_l + ((c), (l)) + + ) + +308  + #is¥aû_l +( +c +, +l +è + `__is¥aû_l + ((c), (l)) + + ) + +309  + #isuµ”_l +( +c +, +l +è + `__isuµ”_l + ((c), (l)) + + ) + +310  + #isxdig™_l +( +c +, +l +è + `__isxdig™_l + ((c), (l)) + + ) + +312  + #isbÏnk_l +( +c +, +l +è + `__isbÏnk_l + ((c), (l)) + + ) + +314 #ià +defšed + +__USE_SVID + || defšed +__USE_MISC + + +315  + #i§scii_l +( +c +, +l +è + `__i§scii_l + ((c), (l)) + + ) + +316  + #tßscii_l +( +c +, +l +è + `__tßscii_l + ((c), (l)) + + ) + +323 +__END_DECLS + + + @/usr/include/endian.h + +19 #iâdef +_ENDIAN_H + + +20  + #_ENDIAN_H + 1 + + ) + +22  + ~<ã©u»s.h +> + +32  + #__LITTLE_ENDIAN + 1234 + + ) + +33  + #__BIG_ENDIAN + 4321 + + ) + +34  + #__PDP_ENDIAN + 3412 + + ) + +37  + ~ + +41 #iâdeà +__FLOAT_WORD_ORDER + + +42  + #__FLOAT_WORD_ORDER + +__BYTE_ORDER + + + ) + +45 #ifdef +__USE_BSD + + +46  + #LITTLE_ENDIAN + +__LITTLE_ENDIAN + + + ) + +47  + #BIG_ENDIAN + +__BIG_ENDIAN + + + ) + +48  + #PDP_ENDIAN + +__PDP_ENDIAN + + + ) + +49  + #BYTE_ORDER + +__BYTE_ORDER + + + ) + +52 #ià +__BYTE_ORDER + =ð +__LITTLE_ENDIAN + + +53  + #__LONG_LONG_PAIR +( +HI +, +LO +èLO, + ) +HI + +54 #–ià +__BYTE_ORDER + =ð +__BIG_ENDIAN + + +55  + #__LONG_LONG_PAIR +( +HI +, +LO +èHI, + ) +LO + +59 #ifdeà +__USE_BSD + + +61  + ~ + +63 #ià +__BYTE_ORDER + =ð +__LITTLE_ENDIAN + + +64  + #htobe16 +( +x +è + `__bsw­_16 + (x) + + ) + +65  + #htÞe16 +( +x +è(x) + + ) + +66  + #be16toh +( +x +è + `__bsw­_16 + (x) + + ) + +67  + #Ë16toh +( +x +è(x) + + ) + +69  + #htobe32 +( +x +è + `__bsw­_32 + (x) + + ) + +70  + #htÞe32 +( +x +è(x) + + ) + +71  + #be32toh +( +x +è + `__bsw­_32 + (x) + + ) + +72  + #Ë32toh +( +x +è(x) + + ) + +74  + #htobe64 +( +x +è + `__bsw­_64 + (x) + + ) + +75  + #htÞe64 +( +x +è(x) + + ) + +76  + #be64toh +( +x +è + `__bsw­_64 + (x) + + ) + +77  + #Ë64toh +( +x +è(x) + + ) + +79  + #htobe16 +( +x +è(x) + + ) + +80  + #htÞe16 +( +x +è + `__bsw­_16 + (x) + + ) + +81  + #be16toh +( +x +è(x) + + ) + +82  + #Ë16toh +( +x +è + `__bsw­_16 + (x) + + ) + +84  + #htobe32 +( +x +è(x) + + ) + +85  + #htÞe32 +( +x +è + `__bsw­_32 + (x) + + ) + +86  + #be32toh +( +x +è(x) + + ) + +87  + #Ë32toh +( +x +è + `__bsw­_32 + (x) + + ) + +89  + #htobe64 +( +x +è(x) + + ) + +90  + #htÞe64 +( +x +è + `__bsw­_64 + (x) + + ) + +91  + #be64toh +( +x +è(x) + + ) + +92  + #Ë64toh +( +x +è + `__bsw­_64 + (x) + + ) + + @/usr/include/gnu/stubs.h + +4  + ~ + +6 #ià +__WORDSIZE + == 32 + +7  + ~ + +8 #–ià +__WORDSIZE + == 64 + +9  + ~ + + @/usr/include/sys/cdefs.h + +20 #iâdef +_SYS_CDEFS_H + + +21  + #_SYS_CDEFS_H + 1 + + ) + +24 #iâdeà +_FEATURES_H + + +25  + ~<ã©u»s.h +> + +31 #ià +defšed + +__GNUC__ + && !defšed +__STDC__ + + +36 #undeà +__P + + +37 #undeà +__PMT + + +39 #ifdeà +__GNUC__ + + +46 #ià! +defšed + +__ýlu¥lus + && +__GNUC_PREREQ + (3, 3) + +47  + #__THROW + + `__©Œibu‹__ + (( +__nÙhrow__ +)) + + ) + +48  + #__NTH +( +fù +è + `__©Œibu‹__ + (( +__nÙhrow__ +)è + ) +fct + +50 #ià +defšed + +__ýlu¥lus + && +__GNUC_PREREQ + (2,8) + +51  + #__THROW + + `throw + () + + ) + +52  + #__NTH +( +fù +èfù + `throw + () + + ) + +54  + #__THROW + + + ) + +55  + #__NTH +( +fù +è + ) +fct + +61  + #__šlše + + + ) + +63  + #__THROW + + + ) + +64  + #__NTH +( +fù +è + ) +fct + +66  + #__cÚ¡ + cÚ¡ + + ) + +67  + #__sigÃd + sigÃd + + ) + +68  + #__vÞ©že + vÞ©že + + ) + +74  + #__P +( +¬gs +è + ) +args + +75  + #__PMT +( +¬gs +è + ) +args + +80  + #__CONCAT +( +x +, +y +èx ## + ) +y + +81  + #__STRING +( +x +è#x + + ) + +84  + #__±r_t + * + + ) + +85  + #__lÚg_doubË_t +  + + ) + +89 #ifdef +__ýlu¥lus + + +90  + #__BEGIN_DECLS + "C" { + + ) + +91  + #__END_DECLS + } + + ) + +93  + #__BEGIN_DECLS + + + ) + +94  + #__END_DECLS + + + ) + +103 #ià +defšed + +__ýlu¥lus + && defšed +_GLIBCPP_USE_NAMESPACES + + +104  + #__BEGIN_NAMESPACE_STD + +Çme¥aû + +¡d + { + + ) + +105  + #__END_NAMESPACE_STD + } + + ) + +106  + #__USING_NAMESPACE_STD +( +Çme +è +usšg + +¡d +::Çme; + + ) + +107  + #__BEGIN_NAMESPACE_C99 + +Çme¥aû + +__c99 + { + + ) + +108  + #__END_NAMESPACE_C99 + } + + ) + +109  + #__USING_NAMESPACE_C99 +( +Çme +è +usšg + +__c99 +::Çme; + + ) + +114  + #__BEGIN_NAMESPACE_STD + + + ) + +115  + #__END_NAMESPACE_STD + + + ) + +116  + #__USING_NAMESPACE_STD +( +Çme +) + + ) + +117  + #__BEGIN_NAMESPACE_C99 + + + ) + +118  + #__END_NAMESPACE_C99 + + + ) + +119  + #__USING_NAMESPACE_C99 +( +Çme +) + + ) + +124 #iâdeà +__BOUNDED_POINTERS__ + + +125  + #__bounded + + + ) + +126  + #__unbounded + + + ) + +127  + #__±rv®ue + + + ) + +132  + #__bos +( +±r +è + `__bužtš_objeù_size + (±r, +__USE_FORTIFY_LEVEL + > 1) + + ) + +133  + #__bos0 +( +±r +è + `__bužtš_objeù_size + (±r, 0) + + ) + +135 #ià +__GNUC_PREREQ + (4,3) + +136  + #__w¬ndeþ +( +Çme +, +msg +) \ + +137  + `Çme + (è + `__©Œibu‹__ +(( + `__w¬nšg__ + ( +msg +))) + + ) + +138  + #__w¬Ç‰r +( +msg +è + `__©Œibu‹__ +(( + `__w¬nšg__ + (msg))) + + ) + +139  + #__”rÜdeþ +( +Çme +, +msg +) \ + +140  + `Çme + (è + `__©Œibu‹__ +(( + `__”rÜ__ + ( +msg +))) + + ) + +142  + #__w¬ndeþ +( +Çme +, +msg +è  + `Çme + () + + ) + +143  + #__w¬Ç‰r +( +msg +) + + ) + +144  + #__”rÜdeþ +( +Çme +, +msg +è  + `Çme + () + + ) + +148 #ià +__GNUC_PREREQ + (2,97) + +150  + #__æex¬r + [] + + ) + +152 #ifdeà +__GNUC__ + + +153  + #__æex¬r + [0] + + ) + +155 #ià +defšed + +__STDC_VERSION__ + && __STDC_VERSION__ >= 199901L + +156  + #__æex¬r + [] + + ) + +159  + #__æex¬r + [1] + + ) + +175 #ià +defšed + +__GNUC__ + && __GNUC__ >= 2 + +177  + #__REDIRECT +( +Çme +, +´Ùo +, +®Ÿs +èÇm´ÙØ + `__asm__ + ( + `__ASMNAME + (#®Ÿs)) + + ) + +178 #ifdeà +__ýlu¥lus + + +179  + #__REDIRECT_NTH +( +Çme +, +´Ùo +, +®Ÿs +) \ + +180 +Çme + +´Ùo + +__THROW + + `__asm__ + ( + `__ASMNAME + (#®Ÿs)) + + ) + +182  + #__REDIRECT_NTH +( +Çme +, +´Ùo +, +®Ÿs +) \ + +183 +Çme + +´Ùo + + `__asm__ + ( + `__ASMNAME + (#®Ÿs)è +__THROW + + + ) + +185  + #__ASMNAME +( +úame +è + `__ASMNAME2 + ( +__USER_LABEL_PREFIX__ +, cÇme) + + ) + +186  + #__ASMNAME2 +( +´efix +, +úame +è + `__STRING + (´efixè + ) +cname + +199 #ià! +defšed + +__GNUC__ + || __GNUC__ < 2 + +200  + #__©Œibu‹__ +( +xyz +è + + ) + +206 #ià +__GNUC_PREREQ + (2,96) + +207  + #__©Œibu‹_m®loc__ + + `__©Œibu‹__ + (( +__m®loc__ +)) + + ) + +209  + #__©Œibu‹_m®loc__ + + + ) + +215 #ià +__GNUC_PREREQ + (2,96) + +216  + #__©Œibu‹_pu»__ + + `__©Œibu‹__ + (( +__pu»__ +)) + + ) + +218  + #__©Œibu‹_pu»__ + + + ) + +224 #ià +__GNUC_PREREQ + (3,1) + +225  + #__©Œibu‹_u£d__ + + `__©Œibu‹__ + (( +__u£d__ +)) + + ) + +226  + #__©Œibu‹_nošlše__ + + `__©Œibu‹__ + (( +__nošlše__ +)) + + ) + +228  + #__©Œibu‹_u£d__ + + `__©Œibu‹__ + (( +__unu£d__ +)) + + ) + +229  + #__©Œibu‹_nošlše__ + + + ) + +233 #ià +__GNUC_PREREQ + (3,2) + +234  + #__©Œibu‹_d•»ÿ‹d__ + + `__©Œibu‹__ + (( +__d•»ÿ‹d__ +)) + + ) + +236  + #__©Œibu‹_d•»ÿ‹d__ + + + ) + +245 #ià +__GNUC_PREREQ + (2,8) + +246  + #__©Œibu‹_fÜm©_¬g__ +( +x +è + `__©Œibu‹__ + (( + `__fÜm©_¬g__ + (x))) + + ) + +248  + #__©Œibu‹_fÜm©_¬g__ +( +x +è + + ) + +255 #ià +__GNUC_PREREQ + (2,97) + +256  + #__©Œibu‹_fÜm©_¡rfmÚ__ +( +a +, +b +) \ + +257 + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__¡rfmÚ__ +, +a +, +b +))) + + ) + +259  + #__©Œibu‹_fÜm©_¡rfmÚ__ +( +a +, +b +è + + ) + +264 #ià +__GNUC_PREREQ + (3,3) + +265  + #__nÚnuÎ +( +·¿ms +è + `__©Œibu‹__ + (( +__nÚnuÎ__ +…¬ams)) + + ) + +267  + #__nÚnuÎ +( +·¿ms +) + + ) + +272 #ià +__GNUC_PREREQ + (3,4) + +273  + #__©Œibu‹_w¬n_unu£d_»suÉ__ + \ + +274 + `__©Œibu‹__ + (( +__w¬n_unu£d_»suÉ__ +)) + + ) + +275 #ià +__USE_FORTIFY_LEVEL + > 0 + +276  + #__wur + +__©Œibu‹_w¬n_unu£d_»suÉ__ + + + ) + +279  + #__©Œibu‹_w¬n_unu£d_»suÉ__ + + + ) + +281 #iâdeà +__wur + + +282  + #__wur + + + ) + +286 #ià +__GNUC_PREREQ + (3,2) + +287  + #__®ways_šlše + +__šlše + + `__©Œibu‹__ + (( +__®ways_šlše__ +)) + + ) + +289  + #__®ways_šlše + +__šlše + + + ) + +294 #ià! +defšed + +__ýlu¥lus + || +__GNUC_PREREQ + (4,3) + +295 #ià +defšed + +__GNUC_STDC_INLINE__ + || defšed +__ýlu¥lus + + +296  + #__ex‹º_šlše + +__šlše + + `__©Œibu‹__ + (( +__gnu_šlše__ +)) + + ) + +297 #ià +__GNUC_PREREQ + (4,3) + +298  + #__ex‹º_®ways_šlše + \ + +299 +__®ways_šlše + + `__©Œibu‹__ + (( +__gnu_šlše__ +, +__¬tificŸl__ +)) + + ) + +301  + #__ex‹º_®ways_šlše + \ + +302 +__®ways_šlše + + `__©Œibu‹__ + (( +__gnu_šlše__ +)) + + ) + +305  + #__ex‹º_šlše + +__šlše + + + ) + +306 #ià +__GNUC_PREREQ + (4,3) + +307  + #__ex‹º_®ways_šlše + \ + +308 +__®ways_šlše + + `__©Œibu‹__ + (( +__¬tificŸl__ +)) + + ) + +310  + #__ex‹º_®ways_šlše + +__®ways_šlše + + + ) + +317 #ià +__GNUC_PREREQ + (4,3) + +318  + #__va_¬g_·ck +(è + `__bužtš_va_¬g_·ck + () + + ) + +319  + #__va_¬g_·ck_Ën +(è + `__bužtš_va_¬g_·ck_Ën + () + + ) + +326 #ià! +__GNUC_PREREQ + (2,8) + +327  + #__ex‹nsiÚ__ + + + ) + +331 #ià! +__GNUC_PREREQ + (2,92) + +332  + #__»¡riù + + + ) + +338 #ià +__GNUC_PREREQ + (3,1è&& ! +defšed + +__GNUG__ + + +339  + #__»¡riù_¬r + +__»¡riù + + + ) + +341 #ifdeà +__GNUC__ + + +342  + #__»¡riù_¬r + + + ) + +344 #ià +defšed + +__STDC_VERSION__ + && __STDC_VERSION__ >= 199901L + +345  + #__»¡riù_¬r + +»¡riù + + + ) + +348  + #__»¡riù_¬r + + + ) + +353  + ~ + +355 #ià +defšed + +__LONG_DOUBLE_MATH_OPTIONAL + && defšed +__NO_LONG_DOUBLE_MATH + + +356  + #__LDBL_COMPAT + 1 + + ) + +357 #ifdeà +__REDIRECT + + +358  + #__LDBL_REDIR1 +( +Çme +, +´Ùo +, +®Ÿs +è + `__REDIRECT + (Çme,…rÙo,‡lŸs) + + ) + +359  + #__LDBL_REDIR +( +Çme +, +´Ùo +) \ + +360 + `__LDBL_REDIR1 + ( +Çme +, +´Ùo +, +__Ædbl_ +##Çme) + + ) + +361  + #__LDBL_REDIR1_NTH +( +Çme +, +´Ùo +, +®Ÿs +è + `__REDIRECT_NTH + (Çme,…rÙo,‡lŸs) + + ) + +362  + #__LDBL_REDIR_NTH +( +Çme +, +´Ùo +) \ + +363 + `__LDBL_REDIR1_NTH + ( +Çme +, +´Ùo +, +__Ædbl_ +##Çme) + + ) + +364  + #__LDBL_REDIR1_DECL +( +Çme +, +®Ÿs +) \ + +365 + `__ty³of + ( +Çme +èÇm + `__asm + ( + `__ASMNAME + (#®Ÿs)); + + ) + +366  + #__LDBL_REDIR_DECL +( +Çme +) \ + +367 + `__ty³of + ( +Çme +èÇm + `__asm + ( + `__ASMNAME + ("__Ædbl_" #Çme)); + + ) + +368  + #__REDIRECT_LDBL +( +Çme +, +´Ùo +, +®Ÿs +) \ + +369 + `__LDBL_REDIR1 + ( +Çme +, +´Ùo +, +__Ædbl_ +## +®Ÿs +) + + ) + +370  + #__REDIRECT_NTH_LDBL +( +Çme +, +´Ùo +, +®Ÿs +) \ + +371 + `__LDBL_REDIR1_NTH + ( +Çme +, +´Ùo +, +__Ædbl_ +## +®Ÿs +) + + ) + +374 #ià! +defšed + +__LDBL_COMPAT + || !defšed +__REDIRECT + + +375  + #__LDBL_REDIR1 +( +Çme +, +´Ùo +, +®Ÿs +èÇm + ) +proto + +376  + #__LDBL_REDIR +( +Çme +, +´Ùo +èÇm + ) +proto + +377  + #__LDBL_REDIR1_NTH +( +Çme +, +´Ùo +, +®Ÿs +èÇm´ÙØ +__THROW + + + ) + +378  + #__LDBL_REDIR_NTH +( +Çme +, +´Ùo +èÇm´ÙØ +__THROW + + + ) + +379  + #__LDBL_REDIR_DECL +( +Çme +) + + ) + +380 #ifdeà +__REDIRECT + + +381  + #__REDIRECT_LDBL +( +Çme +, +´Ùo +, +®Ÿs +è + `__REDIRECT + (Çme,…rÙo,‡lŸs) + + ) + +382  + #__REDIRECT_NTH_LDBL +( +Çme +, +´Ùo +, +®Ÿs +) \ + +383 + `__REDIRECT_NTH + ( +Çme +, +´Ùo +, +®Ÿs +) + + ) + + @/usr/include/sys/select.h + +22 #iâdeà +_SYS_SELECT_H + + +23  + #_SYS_SELECT_H + 1 + + ) + +25  + ~<ã©u»s.h +> + +28  + ~ + +31  + ~ + +34  + ~ + +36 #iâdeà +__sig£t_t_defšed + + +37  + #__sig£t_t_defšed + + + ) + +38  +__sig£t_t + + tsig£t_t +; + +42  + #__Ãed_time_t + + + ) + +43  + #__Ãed_time¥ec + + + ) + +44  + ~ + +45  + #__Ãed_timev® + + + ) + +46  + ~ + +48 #iâdeà +__su£cÚds_t_defšed + + +49  +__su£cÚds_t + + tsu£cÚds_t +; + +50  + #__su£cÚds_t_defšed + + + ) + +55  + t__fd_mask +; + +58 #undeà +__NFDBITS + + +59 #undeà +__FDELT + + +60 #undeà +__FDMASK + + +62  + #__NFDBITS + (8 * (è ( +__fd_mask +)) + + ) + +63  + #__FDELT +( +d +è((dè/ +__NFDBITS +) + + ) + +64  + #__FDMASK +( +d +è(( +__fd_mask +è1 << ((dè% +__NFDBITS +)) + + ) + +71 #ifdeà +__USE_XOPEN + + +72 +__fd_mask + + mfds_b™s +[ +__FD_SETSIZE + / +__NFDBITS +]; + +73  + #__FDS_BITS +( +£t +è((£t)-> +fds_b™s +) + + ) + +75 +__fd_mask + + m__fds_b™s +[ +__FD_SETSIZE + / +__NFDBITS +]; + +76  + #__FDS_BITS +( +£t +è((£t)-> +__fds_b™s +) + + ) + +78 } + tfd_£t +; + +81  + #FD_SETSIZE + +__FD_SETSIZE + + + ) + +83 #ifdeà +__USE_MISC + + +85  +__fd_mask + + tfd_mask +; + +88  + #NFDBITS + +__NFDBITS + + + ) + +93  + #FD_SET +( +fd +, +fd£ +è + `__FD_SET + (fd, fd£) + + ) + +94  + #FD_CLR +( +fd +, +fd£ +è + `__FD_CLR + (fd, fd£) + + ) + +95  + #FD_ISSET +( +fd +, +fd£ +è + `__FD_ISSET + (fd, fd£) + + ) + +96  + #FD_ZERO +( +fd£ +è + `__FD_ZERO + (fd£) + + ) + +99 +__BEGIN_DECLS + + +109  +£Ëù + ( +__nfds +, +fd_£t + * +__»¡riù + +__»adfds +, + +110 +fd_£t + * +__»¡riù + +__wr™efds +, + +111 +fd_£t + * +__»¡riù + +__exû±fds +, + +112  +timev® + * +__»¡riù + +__timeout +); + +114 #ifdeà +__USE_XOPEN2K + + +121  +p£Ëù + ( +__nfds +, +fd_£t + * +__»¡riù + +__»adfds +, + +122 +fd_£t + * +__»¡riù + +__wr™efds +, + +123 +fd_£t + * +__»¡riù + +__exû±fds +, + +124 cÚ¡  +time¥ec + * +__»¡riù + +__timeout +, + +125 cÚ¡ +__sig£t_t + * +__»¡riù + +__sigmask +); + +128 + g__END_DECLS + + + @/usr/include/sys/sysmacros.h + +21 #iâdeà +_SYS_SYSMACROS_H + + +22  + #_SYS_SYSMACROS_H + 1 + + ) + +24  + ~<ã©u»s.h +> + +29 #ifdeà +__GLIBC_HAVE_LONG_LONG + + +30 +__BEGIN_DECLS + + +32 +__ex‹nsiÚ__ + + +33  + $gnu_dev_majÜ + ( +__dev +) + +34 +__THROW +; + +35 +__ex‹nsiÚ__ + + +36  + $gnu_dev_mšÜ + ( +__dev +) + +37 +__THROW +; + +38 +__ex‹nsiÚ__ + + +39  + $gnu_dev_makedev + ( +__majÜ +, + +40  +__mšÜ +) + +41 +__THROW +; + +43 #ià +defšed + +__GNUC__ + && __GNUC__ >ð2 && defšed +__USE_EXTERN_INLINES + + +44 +__ex‹nsiÚ__ + +__ex‹º_šlše +  + +45 + `__NTH + ( + $gnu_dev_majÜ + ( +__dev +)) + +47  (( +__dev + >> 8) & 0xfff) | (() (__dev >> 32) & ~0xfff); + +48 + } +} + +50 +__ex‹nsiÚ__ + +__ex‹º_šlše +  + +51 +__NTH + ( + $gnu_dev_mšÜ + ( +__dev +)) + +53  ( +__dev + & 0xff) | (() (__dev >> 12) & ~0xff); + +54 + } +} + +56 +__ex‹nsiÚ__ + +__ex‹º_šlše +  + +57 +__NTH + ( + $gnu_dev_makedev + ( +__majÜ +,  +__mšÜ +)) + +59  (( +__mšÜ + & 0xffè| (( +__majÜ + & 0xfff) << 8) + +60 | (((è( +__mšÜ + & ~0xff)) << 12) + +61 | (((è( +__majÜ + & ~0xfff)) << 32)); + +62 + } +} + +64 + g__END_DECLS + + +67  + #majÜ +( +dev +è + `gnu_dev_majÜ + (dev) + + ) + +68  + #mšÜ +( +dev +è + `gnu_dev_mšÜ + (dev) + + ) + +69  + #makedev +( +maj +, +mš +è + `gnu_dev_makedev + (maj, mš) + + ) + + @/usr/include/bits/byteswap.h + +21 #ià! +defšed + +_BYTESWAP_H + && !defšed +_NETINET_IN_H + && !defšed +_ENDIAN_H + + +25 #iâdeà +_BITS_BYTESWAP_H + + +26  + #_BITS_BYTESWAP_H + 1 + + ) + +28  + ~ + +31  + #__bsw­_cÚ¡ªt_16 +( +x +) \ + +32 ((è(((( +x +è>> 8è& 0xffè| (((xè& 0xffè<< 8))) + + ) + +34 #ià +defšed + +__GNUC__ + && __GNUC__ >= 2 + +35  + #__bsw­_16 +( +x +) \ + +36 ( +__ex‹nsiÚ__ + \ + +37 ({  +__v +, +__x + = (è( +x +); \ + +38 ià( + `__bužtš_cÚ¡ªt_p + ( +__x +)) \ + +39 +__v + = + `__bsw­_cÚ¡ªt_16 + ( +__x +); \ + +41 + `__asm__ + ("rorw $8, %w0" \ + +42 : "ô" ( +__v +) \ + +43 : "0" ( +__x +) \ + +45 +__v +; })) + + ) + +48  + #__bsw­_16 +( +x +) \ + +49 ( +__ex‹nsiÚ__ + \ + +50 ({  +__x + = (è( +x +); \ + +51 + `__bsw­_cÚ¡ªt_16 + ( +__x +); })) + + ) + +56  + #__bsw­_cÚ¡ªt_32 +( +x +) \ + +57 (((( +x +) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | \ + +58 ((( +x +è& 0x0000ff00è<< 8è| (((xè& 0x000000ffè<< 24)) + + ) + +60 #ià +defšed + +__GNUC__ + && __GNUC__ >= 2 + +61 #ià +__WORDSIZE + =ð64 || ( +defšed + +__i486__ + || defšed +__³Áium__ + \ + +62 || +defšed + + g__³Áium´o__ + || defšed + g__³Áium4__ + \ + +63 || +defšed + + g__k8__ + || defšed + g__©hlÚ__ + \ + +64 || +defšed + + g__k6__ + || defšed + g__nocÚa__ + \ + +65 || +defšed + + g__cÜe2__ + || defšed + g__geode__ + \ + +66 || +defšed + + g__amdçm10__ +) + +69  + #__bsw­_32 +( +x +) \ + +70 ( +__ex‹nsiÚ__ + \ + +71 ({  +__v +, +__x + = ( +x +); \ + +72 ià( + `__bužtš_cÚ¡ªt_p + ( +__x +)) \ + +73 +__v + = + `__bsw­_cÚ¡ªt_32 + ( +__x +); \ + +75 + `__asm__ + ("bsw­ %0" : "ô" ( +__v +è: "0" ( +__x +)); \ + +76 +__v +; })) + + ) + +78  + #__bsw­_32 +( +x +) \ + +79 ( +__ex‹nsiÚ__ + \ + +80 ({  +__v +, +__x + = ( +x +); \ + +81 ià( + `__bužtš_cÚ¡ªt_p + ( +__x +)) \ + +82 +__v + = + `__bsw­_cÚ¡ªt_32 + ( +__x +); \ + +84 + `__asm__ + ("rorw $8, %w0;" \ + +87 : "ô" ( +__v +) \ + +88 : "0" ( +__x +) \ + +90 +__v +; })) + + ) + +93  + #__bsw­_32 +( +x +) \ + +94 ( +__ex‹nsiÚ__ + \ + +95 ({  +__x + = ( +x +); + `__bsw­_cÚ¡ªt_32 + (__x); })) + + ) + +99 #ià +defšed + +__GNUC__ + && __GNUC__ >= 2 + +101  + #__bsw­_cÚ¡ªt_64 +( +x +) \ + +102 (((( +x +) & 0xff00000000000000ull) >> 56) \ + +103 | ((( +x +) & 0x00ff000000000000ull) >> 40) \ + +104 | ((( +x +) & 0x0000ff0000000000ull) >> 24) \ + +105 | ((( +x +) & 0x000000ff00000000ull) >> 8) \ + +106 | ((( +x +) & 0x00000000ff000000ull) << 8) \ + +107 | ((( +x +) & 0x0000000000ff0000ull) << 24) \ + +108 | ((( +x +) & 0x000000000000ff00ull) << 40) \ + +109 | ((( +x +è& 0x00000000000000ffuÎè<< 56)) + + ) + +111 #ià +__WORDSIZE + == 64 + +112  + #__bsw­_64 +( +x +) \ + +113 ( +__ex‹nsiÚ__ + \ + +114 ({  +__v +, +__x + = ( +x +); \ + +115 ià( + `__bužtš_cÚ¡ªt_p + ( +__x +)) \ + +116 +__v + = + `__bsw­_cÚ¡ªt_64 + ( +__x +); \ + +118 + `__asm__ + ("bsw­ %q0" : "ô" ( +__v +è: "0" ( +__x +)); \ + +119 +__v +; })) + + ) + +121  + #__bsw­_64 +( +x +) \ + +122 ( +__ex‹nsiÚ__ + \ + +123 ({ uniÚ { +__ex‹nsiÚ__ +  +__Î +; \ + +124  +__l +[2]; } +__w +, +__r +; \ + +125 ià( + `__bužtš_cÚ¡ªt_p + ( +x +)) \ + +126 +__r +. +__Î + = + `__bsw­_cÚ¡ªt_64 + ( +x +); \ + +129 +__w +. +__Î + = ( +x +); \ + +130 +__r +. +__l +[0] = + `__bsw­_32 + ( +__w +.__l[1]); \ + +131 +__r +. +__l +[1] = + `__bsw­_32 + ( +__w +.__l[0]); \ + +133 +__r +. +__Î +; })) + + ) + + @/usr/include/bits/endian.h + +3 #iâdeà +_ENDIAN_H + + +7  + #__BYTE_ORDER + +__LITTLE_ENDIAN + + + ) + + @/usr/include/bits/libc-lock.h + +20 #iâdeà +_BITS_LIBC_LOCK_H + + +21  + #_BITS_LIBC_LOCK_H + 1 + + ) + +23  + ~<±h»ad.h +> + +24  + #__Ãed_NULL + + + ) + +25  + ~<¡ddef.h +> + +34 #ifdeà +_LIBC + + +35  + ~ + +36  + ~<Žs.h +> + +37  + ~<±h»ad-funùiÚs.h +> + +41 #ià +defšed + +_LIBC + || defšed +_IO_MTSAFE_IO + + +42 #ià( +defšed + +NOT_IN_libc + && !defšed +IS_IN_lib±h»ad +è|| !defšed +_LIBC + + +43  +±h»ad_mu‹x_t + + t__libc_lock_t +; + +44 ¡ruù { +±h»ad_mu‹x_t + + mmu‹x +; } + t__libc_lock_»cursive_t +; + +46  + t__libc_lock_t +; + +47 ¡ruù {  + mlock +;  + mút +; * + mowÃr +; } + t__libc_lock_»cursive_t +; + +49 ¡ruù { +±h»ad_mu‹x_t + + mmu‹x +; } + t__¹ld_lock_»cursive_t +; + +50 #ifdeà +__USE_UNIX98 + + +51  +±h»ad_rwlock_t + + t__libc_rwlock_t +; + +53  +__libc_rwlock_Ýaque__ + + t__libc_rwlock_t +; + +56  +__libc_lock_Ýaque__ + + t__libc_lock_t +; + +57  +__libc_lock_»cursive_Ýaque__ + + t__libc_lock_»cursive_t +; + +58  +__libc_rwlock_Ýaque__ + + t__libc_rwlock_t +; + +62  +±h»ad_key_t + + t__libc_key_t +; + +71  + #__libc_lock_defše +( +CLASS +, +NAME +) \ + +72 +CLASS + +__libc_lock_t + +NAME +; + + ) + +73  + #__libc_rwlock_defše +( +CLASS +, +NAME +) \ + +74 +CLASS + +__libc_rwlock_t + +NAME +; + + ) + +75  + #__libc_lock_defše_»cursive +( +CLASS +, +NAME +) \ + +76 +CLASS + +__libc_lock_»cursive_t + +NAME +; + + ) + +77  + #__¹ld_lock_defše_»cursive +( +CLASS +, +NAME +) \ + +78 +CLASS + +__¹ld_lock_»cursive_t + +NAME +; + + ) + +89 #ià +defšed + +_LIBC + && (!defšed +NOT_IN_libc + || defšed +IS_IN_lib±h»ad +) + +90 #ià +LLL_LOCK_INITIALIZER + == 0 + +91  + #__libc_lock_defše_š™Ÿlized +( +CLASS +, +NAME +) \ + +92 +CLASS + +__libc_lock_t + +NAME +; + + ) + +94  + #__libc_lock_defše_š™Ÿlized +( +CLASS +, +NAME +) \ + +95 +CLASS + +__libc_lock_t + +NAME + = +LLL_LOCK_INITIALIZER +; + + ) + +98 #ià +__LT_SPINLOCK_INIT + == 0 + +99  + #__libc_lock_defše_š™Ÿlized +( +CLASS +, +NAME +) \ + +100 +CLASS + +__libc_lock_t + +NAME +; + + ) + +102  + #__libc_lock_defše_š™Ÿlized +( +CLASS +, +NAME +) \ + +103 +CLASS + +__libc_lock_t + +NAME + = +PTHREAD_MUTEX_INITIALIZER +; + + ) + +107  + #__libc_rwlock_defše_š™Ÿlized +( +CLASS +, +NAME +) \ + +108 +CLASS + +__libc_rwlock_t + +NAME + = +PTHREAD_RWLOCK_INITIALIZER +; + + ) + +112 #ià +defšed + +_LIBC + && (!defšed +NOT_IN_libc + || defšed +IS_IN_lib±h»ad +) + +113 #ià +LLL_LOCK_INITIALIZER + == 0 + +114  + #__libc_lock_defše_š™Ÿlized_»cursive +( +CLASS +, +NAME +) \ + +115 +CLASS + +__libc_lock_»cursive_t + +NAME +; + + ) + +117  + #__libc_lock_defše_š™Ÿlized_»cursive +( +CLASS +, +NAME +) \ + +118 +CLASS + +__libc_lock_»cursive_t + +NAME + = +_LIBC_LOCK_RECURSIVE_INITIALIZER +; + + ) + +120  + #_LIBC_LOCK_RECURSIVE_INITIALIZER + \ + +121 { +LLL_LOCK_INITIALIZER +, 0, +NULL + } + + ) + +123  + #__libc_lock_defše_š™Ÿlized_»cursive +( +CLASS +, +NAME +) \ + +124 +CLASS + +__libc_lock_»cursive_t + +NAME + = +_LIBC_LOCK_RECURSIVE_INITIALIZER +; + + ) + +125  + #_LIBC_LOCK_RECURSIVE_INITIALIZER + \ + +126 { +PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP +} + + ) + +129  + #__¹ld_lock_defše_š™Ÿlized_»cursive +( +CLASS +, +NAME +) \ + +130 +CLASS + +__¹ld_lock_»cursive_t + +NAME + = +_RTLD_LOCK_RECURSIVE_INITIALIZER +; + + ) + +131  + #_RTLD_LOCK_RECURSIVE_INITIALIZER + \ + +132 { +PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP +} + + ) + +134  + #__¹ld_lock_š™Ÿlize +( +NAME +) \ + +135 (è(( +NAME +èð( +__¹ld_lock_»cursive_t +è +_RTLD_LOCK_RECURSIVE_INITIALIZER +) + + ) + +142 #ifdeà +__PIC__ + + +143  + #__libc_maybe_ÿÎ +( +FUNC +, +ARGS +, +ELSE +) \ + +144 ( + `__ex‹nsiÚ__ + ({ + `__ty³of + ( +FUNC +è* +_â + = (FUNC); \ + +145 +_â + !ð +NULL + ? (*_âè +ARGS + : +ELSE +; })) + + ) + +147  + #__libc_maybe_ÿÎ +( +FUNC +, +ARGS +, +ELSE +) \ + +148 ( +FUNC + !ð +NULL + ? FUNC +ARGS + : +ELSE +) + + ) + +152 #ià +defšed + +SHARED + && !defšed +NOT_IN_libc + + +153  + #PTFAVAIL +( +NAME +è +__libc_±h»ad_funùiÚs_š™ + + + ) + +154  + #__libc_±f_ÿÎ +( +FUNC +, +ARGS +, +ELSE +) \ + +155 ( +__libc_±h»ad_funùiÚs_š™ + ? + `PTHFCT_CALL + ( +±r_ +## +FUNC +, +ARGS +è: +ELSE +) + + ) + +156  + #__libc_±f_ÿÎ_®ways +( +FUNC +, +ARGS +) \ + +157 + `PTHFCT_CALL + ( +±r_ +## +FUNC +, +ARGS +) + + ) + +159  + #PTFAVAIL +( +NAME +è(NAME !ð +NULL +) + + ) + +160  + #__libc_±f_ÿÎ +( +FUNC +, +ARGS +, +ELSE +) \ + +161 + `__libc_maybe_ÿÎ + ( +FUNC +, +ARGS +, +ELSE +) + + ) + +162  + #__libc_±f_ÿÎ_®ways +( +FUNC +, +ARGS +) \ + +163 +FUNC + +ARGS + + + ) + +169 #ià +defšed + +_LIBC + && (!defšed +NOT_IN_libc + || defšed +IS_IN_lib±h»ad +) + +170  + #__libc_lock_š™ +( +NAME +è((NAMEèð +LLL_LOCK_INITIALIZER +, 0) + + ) + +172  + #__libc_lock_š™ +( +NAME +) \ + +173 + `__libc_maybe_ÿÎ + ( +__±h»ad_mu‹x_š™ +, (&( +NAME +), +NULL +), 0) + + ) + +175 #ià +defšed + +SHARED + && !defšed +NOT_IN_libc + + +178  + #__libc_rwlock_š™ +( +NAME +) \ + +179 ( + `__bužtš_mem£t + (&( +NAME +), '\0',  (NAME)), 0) + + ) + +181  + #__libc_rwlock_š™ +( +NAME +) \ + +182 + `__libc_maybe_ÿÎ + ( +__±h»ad_rwlock_š™ +, (&( +NAME +), +NULL +), 0) + + ) + +186 #ià +defšed + +_LIBC + && (!defšed +NOT_IN_libc + || defšed +IS_IN_lib±h»ad +) + +187  + #__libc_lock_š™_»cursive +( +NAME +) \ + +188 (( +NAME +èð( +__libc_lock_»cursive_t +è +_LIBC_LOCK_RECURSIVE_INITIALIZER +, 0) + + ) + +190  + #__libc_lock_š™_»cursive +( +NAME +) \ + +192 ià( +__±h»ad_mu‹x_š™ + !ð +NULL +) \ + +194 +±h»ad_mu‹x©Œ_t + +__©Œ +; \ + +195 + `__±h»ad_mu‹x©Œ_š™ + (& +__©Œ +); \ + +196 + `__±h»ad_mu‹x©Œ_£‰y³ + (& +__©Œ +, +PTHREAD_MUTEX_RECURSIVE_NP +); \ + +197 + `__±h»ad_mu‹x_š™ + (&( +NAME +). +mu‹x +, & +__©Œ +); \ + +198 + `__±h»ad_mu‹x©Œ_de¡roy + (& +__©Œ +); \ + +200 } 0) + + ) + +203  + #__¹ld_lock_š™_»cursive +( +NAME +) \ + +205 ià( +__±h»ad_mu‹x_š™ + !ð +NULL +) \ + +207 +±h»ad_mu‹x©Œ_t + +__©Œ +; \ + +208 + `__±h»ad_mu‹x©Œ_š™ + (& +__©Œ +); \ + +209 + `__±h»ad_mu‹x©Œ_£‰y³ + (& +__©Œ +, +PTHREAD_MUTEX_RECURSIVE_NP +); \ + +210 + `__±h»ad_mu‹x_š™ + (&( +NAME +). +mu‹x +, & +__©Œ +); \ + +211 + `__±h»ad_mu‹x©Œ_de¡roy + (& +__©Œ +); \ + +213 } 0) + + ) + +218 #ià +defšed + +_LIBC + && (!defšed +NOT_IN_libc + || defšed +IS_IN_lib±h»ad +) + +219  + #__libc_lock_fši +( +NAME +è((è0) + + ) + +221  + #__libc_lock_fši +( +NAME +) \ + +222 + `__libc_maybe_ÿÎ + ( +__±h»ad_mu‹x_de¡roy +, (&( +NAME +)), 0) + + ) + +224 #ià +defšed + +SHARED + && !defšed +NOT_IN_libc + + +225  + #__libc_rwlock_fši +( +NAME +è((è0) + + ) + +227  + #__libc_rwlock_fši +( +NAME +) \ + +228 + `__libc_maybe_ÿÎ + ( +__±h»ad_rwlock_de¡roy +, (&( +NAME +)), 0) + + ) + +232 #ià +defšed + +_LIBC + && (!defšed +NOT_IN_libc + || defšed +IS_IN_lib±h»ad +) + +233  + #__libc_lock_fši_»cursive +( +NAME +è((è0) + + ) + +235  + #__libc_lock_fši_»cursive +( +NAME +) \ + +236 + `__libc_maybe_ÿÎ + ( +__±h»ad_mu‹x_de¡roy +, (&( +NAME +)), 0) + + ) + +240 #ià +defšed + +_LIBC + && (!defšed +NOT_IN_libc + || defšed +IS_IN_lib±h»ad +) + +241  + #__libc_lock_lock +( +NAME +) \ + +242 ({ + `Îl_lock + ( +NAME +, +LLL_PRIVATE +); 0; }) + + ) + +244  + #__libc_lock_lock +( +NAME +) \ + +245 + `__libc_maybe_ÿÎ + ( +__±h»ad_mu‹x_lock +, (&( +NAME +)), 0) + + ) + +247  + #__libc_rwlock_rdlock +( +NAME +) \ + +248 + `__libc_±f_ÿÎ + ( +__±h»ad_rwlock_rdlock +, (&( +NAME +)), 0) + + ) + +249  + #__libc_rwlock_w¾ock +( +NAME +) \ + +250 + `__libc_±f_ÿÎ + ( +__±h»ad_rwlock_w¾ock +, (&( +NAME +)), 0) + + ) + +253 #ià +defšed + +_LIBC + && (!defšed +NOT_IN_libc + || defšed +IS_IN_lib±h»ad +) + +254  + #__libc_lock_lock_»cursive +( +NAME +) \ + +256 * +£lf + = +THREAD_SELF +; \ + +257 ià(( +NAME +). +owÃr + !ð +£lf +) \ + +259 + `Îl_lock + (( +NAME +). +lock +, +LLL_PRIVATE +); \ + +260 ( +NAME +). +owÃr + = +£lf +; \ + +262 ++( +NAME +). +út +; \ + +263 } 0) + + ) + +265  + #__libc_lock_lock_»cursive +( +NAME +) \ + +266 + `__libc_maybe_ÿÎ + ( +__±h»ad_mu‹x_lock +, (&( +NAME +). +mu‹x +), 0) + + ) + +270 #ià +defšed + +_LIBC + && (!defšed +NOT_IN_libc + || defšed +IS_IN_lib±h»ad +) + +271  + #__libc_lock_Œylock +( +NAME +) \ + +272 + `Îl_Œylock + ( +NAME +) + + ) + +274  + #__libc_lock_Œylock +( +NAME +) \ + +275 + `__libc_maybe_ÿÎ + ( +__±h»ad_mu‹x_Œylock +, (&( +NAME +)), 0) + + ) + +277  + #__libc_rwlock_Œyrdlock +( +NAME +) \ + +278 + `__libc_maybe_ÿÎ + ( +__±h»ad_rwlock_Œyrdlock +, (&( +NAME +)), 0) + + ) + +279  + #__libc_rwlock_Œyw¾ock +( +NAME +) \ + +280 + `__libc_maybe_ÿÎ + ( +__±h»ad_rwlock_Œyw¾ock +, (&( +NAME +)), 0) + + ) + +283 #ià +defšed + +_LIBC + && (!defšed +NOT_IN_libc + || defšed +IS_IN_lib±h»ad +) + +284  + #__libc_lock_Œylock_»cursive +( +NAME +) \ + +286  +»suÉ + = 0; \ + +287 * +£lf + = +THREAD_SELF +; \ + +288 ià(( +NAME +). +owÃr + !ð +£lf +) \ + +290 ià( + `Îl_Œylock + (( +NAME +). +lock +) == 0) \ + +292 ( +NAME +). +owÃr + = +£lf +; \ + +293 ( +NAME +). +út + = 1; \ + +296 +»suÉ + = +EBUSY +; \ + +299 ++( +NAME +). +út +; \ + +300 +»suÉ +; \ + +301 }) + + ) + +303  + #__libc_lock_Œylock_»cursive +( +NAME +) \ + +304 + `__libc_maybe_ÿÎ + ( +__±h»ad_mu‹x_Œylock +, (&( +NAME +)), 0) + + ) + +307  + #__¹ld_lock_Œylock_»cursive +( +NAME +) \ + +308 + `__libc_maybe_ÿÎ + ( +__±h»ad_mu‹x_Œylock +, (&( +NAME +). +mu‹x +), 0) + + ) + +311 #ià +defšed + +_LIBC + && (!defšed +NOT_IN_libc + || defšed +IS_IN_lib±h»ad +) + +312  + #__libc_lock_uÆock +( +NAME +) \ + +313 + `Îl_uÆock + ( +NAME +, +LLL_PRIVATE +) + + ) + +315  + #__libc_lock_uÆock +( +NAME +) \ + +316 + `__libc_maybe_ÿÎ + ( +__±h»ad_mu‹x_uÆock +, (&( +NAME +)), 0) + + ) + +318  + #__libc_rwlock_uÆock +( +NAME +) \ + +319 + `__libc_±f_ÿÎ + ( +__±h»ad_rwlock_uÆock +, (&( +NAME +)), 0) + + ) + +322 #ià +defšed + +_LIBC + && (!defšed +NOT_IN_libc + || defšed +IS_IN_lib±h»ad +) + +324  + #__libc_lock_uÆock_»cursive +( +NAME +) \ + +326 ià(--( +NAME +). +út + == 0) \ + +328 ( +NAME +). +owÃr + = +NULL +; \ + +329 + `Îl_uÆock + (( +NAME +). +lock +, +LLL_PRIVATE +); \ + +331 } 0) + + ) + +333  + #__libc_lock_uÆock_»cursive +( +NAME +) \ + +334 + `__libc_maybe_ÿÎ + ( +__±h»ad_mu‹x_uÆock +, (&( +NAME +)), 0) + + ) + +337 #ià +defšed + +_LIBC + && defšed +SHARED + + +338  + #__¹ld_lock_deçuÉ_lock_»cursive +( +lock +) \ + +339 ++(( +±h»ad_mu‹x_t + *)( +lock +))-> +__d©a +. +__couÁ +; + + ) + +341  + #__¹ld_lock_deçuÉ_uÆock_»cursive +( +lock +) \ + +342 --(( +±h»ad_mu‹x_t + *)( +lock +))-> +__d©a +. +__couÁ +; + + ) + +344  + #__¹ld_lock_lock_»cursive +( +NAME +) \ + +345 + `GL +( +dl_¹ld_lock_»cursive +è(&( +NAME +). +mu‹x +) + + ) + +347  + #__¹ld_lock_uÆock_»cursive +( +NAME +) \ + +348 + `GL +( +dl_¹ld_uÆock_»cursive +è(&( +NAME +). +mu‹x +) + + ) + +350  + #__¹ld_lock_lock_»cursive +( +NAME +) \ + +351 + `__libc_maybe_ÿÎ + ( +__±h»ad_mu‹x_lock +, (&( +NAME +). +mu‹x +), 0) + + ) + +353  + #__¹ld_lock_uÆock_»cursive +( +NAME +) \ + +354 + `__libc_maybe_ÿÎ + ( +__±h»ad_mu‹x_uÆock +, (&( +NAME +). +mu‹x +), 0) + + ) + +358 #ià +PTHREAD_ONCE_INIT + == 0 + +361  + #__libc_Úû_defše +( +CLASS +, +NAME +) \ + +362 +CLASS + +±h»ad_Úû_t + +NAME + + + ) + +364  + #__libc_Úû_defše +( +CLASS +, +NAME +) \ + +365 +CLASS + +±h»ad_Úû_t + +NAME + = +PTHREAD_ONCE_INIT + + + ) + +369  + #__libc_Úû +( +ONCE_CONTROL +, +INIT_FUNCTION +) \ + +371 ià( + `PTFAVAIL + ( +__±h»ad_Úû +)) \ + +372 + `__libc_±f_ÿÎ_®ways + ( +__±h»ad_Úû +, (&( +ONCE_CONTROL +), \ + +373 +INIT_FUNCTION +)); \ + +374 ià(( +ONCE_CONTROL +è=ð +PTHREAD_ONCE_INIT +) { \ + +375 + `INIT_FUNCTION + (); \ + +376 ( +ONCE_CONTROL +) |= 2; \ + +378 } 0) + + ) + +385  +_±h»ad_þ—nup_push + ( +_±h»ad_þ—nup_bufãr + * +bufãr +, + +386 (* +routše +è(*), * +¬g +); + +387  + `_±h»ad_þ—nup_pÝ + ( +_±h»ad_þ—nup_bufãr + * +bufãr +, + +388  +execu‹ +); + +389  + `_±h»ad_þ—nup_push_deãr + ( +_±h»ad_þ—nup_bufãr + * +bufãr +, + +390 (* +routše +è(*), * +¬g +); + +391  + `_±h»ad_þ—nup_pÝ_»¡Üe + ( +_±h»ad_þ—nup_bufãr + * +bufãr +, + +392  +execu‹ +); + +395  + #__libc_þ—nup_»giÚ_¡¬t +( +DOIT +, +FCT +, +ARG +) \ + +396 {  +_±h»ad_þ—nup_bufãr + +_bufãr +; \ + +397  +_avaž +; \ + +398 ià( +DOIT +) { \ + +399 +_avaž + = + `PTFAVAIL + ( +_±h»ad_þ—nup_push_deãr +); \ + +400 ià( +_avaž +) { \ + +401 + `__libc_±f_ÿÎ_®ways + ( +_±h»ad_þ—nup_push_deãr +, (& +_bufãr +, +FCT +, \ + +402 +ARG +)); \ + +404 +_bufãr +. +__routše + = ( +FCT +); \ + +405 +_bufãr +. +__¬g + = ( +ARG +); \ + +408 +_avaž + = 0; \ + +409 } + + ) + +412  + #__libc_þ—nup_»giÚ_’d +( +DOIT +) \ + +413 ià( +_avaž +) { \ + +414 + `__libc_±f_ÿÎ_®ways + ( +_±h»ad_þ—nup_pÝ_»¡Üe +, (& +_bufãr +, +DOIT +));\ + +415 } ià( +DOIT +) \ + +416 +_bufãr +. + `__routše + (_bufãr. +__¬g +); \ + +417 + } + + ) +} + +420  + #__libc_þ—nup_’d +( +DOIT +) \ + +421 ià( +_avaž +) { \ + +422 + `__libc_±f_ÿÎ_®ways + ( +_±h»ad_þ—nup_pÝ_»¡Üe +, (& +_bufãr +, +DOIT +));\ + +423 } ià( +DOIT +) \ + +424 +_bufãr +. + `__routše + (_bufãr. +__¬g +) + + ) + +428 +__ex‹º_šlše +  + +429 + $__libc_þ—nup_routše + ( +__±h»ad_þ—nup_äame + * +f +) + +431 ià( +f +-> +__do_™ +) + +432 +f +-> + `__ÿnûl_routše + (f-> +__ÿnûl_¬g +); + +433 + } +} + +435  + #__libc_þ—nup_push +( +fù +, +¬g +) \ + +437  +__±h»ad_þ—nup_äame + +__þäame + \ + +438 + `__©Œibu‹__ + (( + `__þ—nup__ + ( +__libc_þ—nup_routše +))) \ + +439 ð{ . +__ÿnûl_routše + = ( +fù +), . +__ÿnûl_¬g + = ( +¬g +), \ + +440 . +__do_™ + = 1 }; + + ) + +442  + #__libc_þ—nup_pÝ +( +execu‹ +) \ + +443 +__þäame +. +__do_™ + = ( +execu‹ +); \ + +444 } 0) + + ) + +448  + #__libc_key_ü—‹ +( +KEY +, +DESTRUCTOR +) \ + +449 + `__libc_±f_ÿÎ + ( +__±h»ad_key_ü—‹ +, ( +KEY +, +DESTRUCTOR +), 1) + + ) + +452  + #__libc_g‘¥ecific +( +KEY +) \ + +453 + `__libc_±f_ÿÎ + ( +__±h»ad_g‘¥ecific +, ( +KEY +), +NULL +) + + ) + +456  + #__libc_£t¥ecific +( +KEY +, +VALUE +) \ + +457 + `__libc_±f_ÿÎ + ( +__±h»ad_£t¥ecific +, ( +KEY +, +VALUE +), 0) + + ) + +463  + #__libc_©fÜk +( +PREPARE +, +PARENT +, +CHILD +) \ + +464 + `__»gi¡”_©fÜk + ( +PREPARE +, +PARENT +, +CHILD +, +NULL +) + + ) + +465  +__»gi¡”_©fÜk + ((* +__´•¬e +) (), + +466 (* +__·»Á +) (), + +467 (* +__chžd +) (), + +468 * +__dso_hªdË +); + +473  + `__±h»ad_mu‹x_š™ + ( +±h»ad_mu‹x_t + * +__mu‹x +, + +474 +__cÚ¡ + +±h»ad_mu‹x©Œ_t + * +__mu‹x_©Œ +); + +476  + `__±h»ad_mu‹x_de¡roy + ( +±h»ad_mu‹x_t + * +__mu‹x +); + +478  + `__±h»ad_mu‹x_Œylock + ( +±h»ad_mu‹x_t + * +__mu‹x +); + +480  + `__±h»ad_mu‹x_lock + ( +±h»ad_mu‹x_t + * +__mu‹x +); + +482  + `__±h»ad_mu‹x_uÆock + ( +±h»ad_mu‹x_t + * +__mu‹x +); + +484  + `__±h»ad_mu‹x©Œ_š™ + ( +±h»ad_mu‹x©Œ_t + * +__©Œ +); + +486  + `__±h»ad_mu‹x©Œ_de¡roy + ( +±h»ad_mu‹x©Œ_t + * +__©Œ +); + +488  + `__±h»ad_mu‹x©Œ_£‰y³ + ( +±h»ad_mu‹x©Œ_t + * +__©Œ +, + +489  +__kšd +); + +491 #ifdeà +__USE_UNIX98 + + +492  + `__±h»ad_rwlock_š™ + ( +±h»ad_rwlock_t + * +__rwlock +, + +493 +__cÚ¡ + +±h»ad_rwlock©Œ_t + * +__©Œ +); + +495  + `__±h»ad_rwlock_de¡roy + ( +±h»ad_rwlock_t + * +__rwlock +); + +497  + `__±h»ad_rwlock_rdlock + ( +±h»ad_rwlock_t + * +__rwlock +); + +499  + `__±h»ad_rwlock_Œyrdlock + ( +±h»ad_rwlock_t + * +__rwlock +); + +501  + `__±h»ad_rwlock_w¾ock + ( +±h»ad_rwlock_t + * +__rwlock +); + +503  + `__±h»ad_rwlock_Œyw¾ock + ( +±h»ad_rwlock_t + * +__rwlock +); + +505  + `__±h»ad_rwlock_uÆock + ( +±h»ad_rwlock_t + * +__rwlock +); + +508  + `__±h»ad_key_ü—‹ + ( +±h»ad_key_t + * +__key +, + +509 (* +__de¡r_funùiÚ +) (*)); + +511  + `__±h»ad_£t¥ecific + ( +±h»ad_key_t + +__key +, + +512 +__cÚ¡ + * +__poš‹r +); + +514 * + `__±h»ad_g‘¥ecific + ( +±h»ad_key_t + +__key +); + +516  + `__±h»ad_Úû + ( +±h»ad_Úû_t + * +__Úû_cÚŒÞ +, + +517 (* +__š™_routše +) ()); + +519  + `__±h»ad_©fÜk + ((* +__´•¬e +) (), + +520 (* +__·»Á +) (), + +521 (* +__chžd +) ()); + +527 #iâdeà +__NO_WEAK_PTHREAD_ALIASES + + +528 #ifdeà +w—k_ex‹º + + +529 #ià +_LIBC + + +530  + ~ + +532  + #BP_SYM +( +sym +è + ) +sym + +534 + `w—k_ex‹º + ( + $BP_SYM + ( +__±h»ad_mu‹x_š™ +)) + +535 + `w—k_ex‹º + ( + $BP_SYM + ( +__±h»ad_mu‹x_de¡roy +)) + +536 + `w—k_ex‹º + ( + $BP_SYM + ( +__±h»ad_mu‹x_lock +)) + +537 + `w—k_ex‹º + ( + $BP_SYM + ( +__±h»ad_mu‹x_Œylock +)) + +538 + `w—k_ex‹º + ( + $BP_SYM + ( +__±h»ad_mu‹x_uÆock +)) + +539 + `w—k_ex‹º + ( + $BP_SYM + ( +__±h»ad_mu‹x©Œ_š™ +)) + +540 + `w—k_ex‹º + ( + $BP_SYM + ( +__±h»ad_mu‹x©Œ_de¡roy +)) + +541 + `w—k_ex‹º + ( + $BP_SYM + ( +__±h»ad_mu‹x©Œ_£‰y³ +)) + +542 + `w—k_ex‹º + ( + $BP_SYM + ( +__±h»ad_rwlock_š™ +)) + +543 + `w—k_ex‹º + ( + $BP_SYM + ( +__±h»ad_rwlock_de¡roy +)) + +544 + `w—k_ex‹º + ( + $BP_SYM + ( +__±h»ad_rwlock_rdlock +)) + +545 + `w—k_ex‹º + ( + $BP_SYM + ( +__±h»ad_rwlock_Œyrdlock +)) + +546 + `w—k_ex‹º + ( + $BP_SYM + ( +__±h»ad_rwlock_w¾ock +)) + +547 + `w—k_ex‹º + ( + $BP_SYM + ( +__±h»ad_rwlock_Œyw¾ock +)) + +548 + `w—k_ex‹º + ( + $BP_SYM + ( +__±h»ad_rwlock_uÆock +)) + +549 + `w—k_ex‹º + ( + $BP_SYM + ( +__±h»ad_key_ü—‹ +)) + +550 + `w—k_ex‹º + ( + $BP_SYM + ( +__±h»ad_£t¥ecific +)) + +551 + `w—k_ex‹º + ( + $BP_SYM + ( +__±h»ad_g‘¥ecific +)) + +552 + `w—k_ex‹º + ( + $BP_SYM + ( +__±h»ad_Úû +)) + +553 + $w—k_ex‹º + ( +__±h»ad_š™Ÿlize +) + +554 + $w—k_ex‹º + ( +__±h»ad_©fÜk +) + +555 + `w—k_ex‹º + ( + $BP_SYM + ( +_±h»ad_þ—nup_push_deãr +)) + +556 + `w—k_ex‹º + ( + $BP_SYM + ( +_±h»ad_þ—nup_pÝ_»¡Üe +)) + +557 + `w—k_ex‹º + ( + $BP_SYM + ( +±h»ad_£tÿnûl¡©e +)) + +559 #´agm¨ +w—k + +__±h»ad_mu‹x_š™ + + +560 #´agm¨ +w—k + +__±h»ad_mu‹x_de¡roy + + +561 #´agm¨ +w—k + +__±h»ad_mu‹x_lock + + +562 #´agm¨ +w—k + +__±h»ad_mu‹x_Œylock + + +563 #´agm¨ +w—k + +__±h»ad_mu‹x_uÆock + + +564 #´agm¨ +w—k + +__±h»ad_mu‹x©Œ_š™ + + +565 #´agm¨ +w—k + +__±h»ad_mu‹x©Œ_de¡roy + + +566 #´agm¨ +w—k + +__±h»ad_mu‹x©Œ_£‰y³ + + +567 #´agm¨ +w—k + +__±h»ad_rwlock_de¡roy + + +568 #´agm¨ +w—k + +__±h»ad_rwlock_rdlock + + +569 #´agm¨ +w—k + +__±h»ad_rwlock_Œyrdlock + + +570 #´agm¨ +w—k + +__±h»ad_rwlock_w¾ock + + +571 #´agm¨ +w—k + +__±h»ad_rwlock_Œyw¾ock + + +572 #´agm¨ +w—k + +__±h»ad_rwlock_uÆock + + +573 #´agm¨ +w—k + +__±h»ad_key_ü—‹ + + +574 #´agm¨ +w—k + +__±h»ad_£t¥ecific + + +575 #´agm¨ +w—k + +__±h»ad_g‘¥ecific + + +576 #´agm¨ +w—k + +__±h»ad_Úû + + +577 #´agm¨ +w—k + +__±h»ad_š™Ÿlize + + +578 #´agm¨ +w—k + +__±h»ad_©fÜk + + +579 #´agm¨ +w—k + +_±h»ad_þ—nup_push_deãr + + +580 #´agm¨ +w—k + +_±h»ad_þ—nup_pÝ_»¡Üe + + +581 #´agm¨ +w—k + +±h»ad_£tÿnûl¡©e + + + @/usr/include/bits/select.h + +19 #iâdeà +_SYS_SELECT_H + + +23  + ~ + +26 #ià +defšed + +__GNUC__ + && __GNUC__ >= 2 + +28 #ià +__WORDSIZE + == 64 + +29  + #__FD_ZERO_STOS + "¡osq" + + ) + +31  + #__FD_ZERO_STOS + "¡o¦" + + ) + +34  + #__FD_ZERO +( +fd¥ +) \ + +36  +__d0 +, +__d1 +; \ + +37 +__asm__ + + `__vÞ©že__ + ("þd;„•; " +__FD_ZERO_STOS + \ + +38 : "=c" ( +__d0 +), "=D" ( +__d1 +) \ + +39 : "a" (0), "0" ( ( +fd_£t +) \ + +40 /  ( +__fd_mask +)), \ + +41 "1" (& + `__FDS_BITS + ( +fd¥ +)[0]) \ + +43 } 0) + + ) + +49  + #__FD_ZERO +( +£t +) \ + +51  +__i +; \ + +52 +fd_£t + * +__¬r + = ( +£t +); \ + +53  +__i + = 0; __˜<  ( +fd_£t +è/  ( +__fd_mask +); ++__i) \ + +54 + `__FDS_BITS + ( +__¬r +)[ +__i +] = 0; \ + +55 } 0) + + ) + +59  + #__FD_SET +( +d +, +£t +) \ + +60 ((è( + `__FDS_BITS + ( +£t +)[ + `__FDELT + ( +d +)] |ð + `__FDMASK + (d))) + + ) + +61  + #__FD_CLR +( +d +, +£t +) \ + +62 ((è( + `__FDS_BITS + ( +£t +)[ + `__FDELT + ( +d +)] &ð~ + `__FDMASK + (d))) + + ) + +63  + #__FD_ISSET +( +d +, +£t +) \ + +64 (( + `__FDS_BITS + ( +£t +)[ + `__FDELT + ( +d +)] & + `__FDMASK + (d)è!ð0) + + ) + + @/usr/include/bits/timex.h + +19 #iâdef +_BITS_TIMEX_H + + +20  + #_BITS_TIMEX_H + 1 + + ) + +24  + stimex + + +26  + mmodes +; + +27  + moff£t +; + +28  + mäeq +; + +29  + mmax”rÜ +; + +30  + me¡”rÜ +; + +31  + m¡©us +; + +32  + mcÚ¡ªt +; + +33  + m´ecisiÚ +; + +34  + mtÞ”ªû +; + +35  +timev® + + mtime +; + +36  + mtick +; + +38  + mµsäeq +; + +39  + mj™‹r +; + +40  + mshiá +; + +41  + m¡abž +; + +42  + mj™út +; + +43  + mÿlút +; + +44  + m”rút +; + +45  + m¡bút +; + +47  + mi +; + +56  + #ADJ_OFFSET + 0x0001 + + ) + +57  + #ADJ_FREQUENCY + 0x0002 + + ) + +58  + #ADJ_MAXERROR + 0x0004 + + ) + +59  + #ADJ_ESTERROR + 0x0008 + + ) + +60  + #ADJ_STATUS + 0x0010 + + ) + +61  + #ADJ_TIMECONST + 0x0020 + + ) + +62  + #ADJ_TAI + 0x0080 + + ) + +63  + #ADJ_MICRO + 0x1000 + + ) + +64  + #ADJ_NANO + 0x2000 + + ) + +65  + #ADJ_TICK + 0x4000 + + ) + +66  + #ADJ_OFFSET_SINGLESHOT + 0x8001 + + ) + +67  + #ADJ_OFFSET_SS_READ + 0xa001 + + ) + +70  + #MOD_OFFSET + +ADJ_OFFSET + + + ) + +71  + #MOD_FREQUENCY + +ADJ_FREQUENCY + + + ) + +72  + #MOD_MAXERROR + +ADJ_MAXERROR + + + ) + +73  + #MOD_ESTERROR + +ADJ_ESTERROR + + + ) + +74  + #MOD_STATUS + +ADJ_STATUS + + + ) + +75  + #MOD_TIMECONST + +ADJ_TIMECONST + + + ) + +76  + #MOD_CLKB + +ADJ_TICK + + + ) + +77  + #MOD_CLKA + +ADJ_OFFSET_SINGLESHOT + + + ) + +78  + #MOD_TAI + +ADJ_TAI + + + ) + +79  + #MOD_MICRO + +ADJ_MICRO + + + ) + +80  + #MOD_NANO + +ADJ_NANO + + + ) + +84  + #STA_PLL + 0x0001 + + ) + +85  + #STA_PPSFREQ + 0x0002 + + ) + +86  + #STA_PPSTIME + 0x0004 + + ) + +87  + #STA_FLL + 0x0008 + + ) + +89  + #STA_INS + 0x0010 + + ) + +90  + #STA_DEL + 0x0020 + + ) + +91  + #STA_UNSYNC + 0x0040 + + ) + +92  + #STA_FREQHOLD + 0x0080 + + ) + +94  + #STA_PPSSIGNAL + 0x0100 + + ) + +95  + #STA_PPSJITTER + 0x0200 + + ) + +96  + #STA_PPSWANDER + 0x0400 + + ) + +97  + #STA_PPSERROR + 0x0800 + + ) + +99  + #STA_CLOCKERR + 0x1000 + + ) + +100  + #STA_NANO + 0x2000 + + ) + +101  + #STA_MODE + 0x4000 + + ) + +102  + #STA_CLK + 0x8000 + + ) + +105  + #STA_RONLY + ( +STA_PPSSIGNAL + | +STA_PPSJITTER + | +STA_PPSWANDER + | \ + +106 +STA_PPSERROR + | +STA_CLOCKERR + | +STA_NANO + | +STA_MODE + | +STA_CLK +) + + ) + + @/usr/include/bits/uio.h + +19 #ià! +defšed + +_SYS_UIO_H + && !defšed +_FCNTL_H + + +23 #iâdeà +_BITS_UIO_H + + +24  + #_BITS_UIO_H + 1 + + ) + +26  + ~ + +40  + #UIO_MAXIOV + 1024 + + ) + +44  + siovec + + +46 * + miov_ba£ +; + +47 +size_t + + miov_Ën +; + + @/usr/include/gconv.h + +23 #iâdeà +_GCONV_H + + +24  + #_GCONV_H + 1 + + ) + +26  + ~<ã©u»s.h +> + +27  + #__Ãed_mb¡©e_t + + + ) + +28  + #__Ãed_wšt_t + + + ) + +29  + ~ + +30  + #__Ãed_size_t + + + ) + +31  + #__Ãed_wch¬_t + + + ) + +32  + ~<¡ddef.h +> + +35  + #__UNKNOWN_10646_CHAR + (( +wch¬_t +è0xfffd) + + ) + +40 + m__GCONV_OK + = 0, + +41 + m__GCONV_NOCONV +, + +42 + m__GCONV_NODB +, + +43 + m__GCONV_NOMEM +, + +45 + m__GCONV_EMPTY_INPUT +, + +46 + m__GCONV_FULL_OUTPUT +, + +47 + m__GCONV_ILLEGAL_INPUT +, + +48 + m__GCONV_INCOMPLETE_INPUT +, + +50 + m__GCONV_ILLEGAL_DESCRIPTOR +, + +51 + m__GCONV_INTERNAL_ERROR + + +58 + m__GCONV_IS_LAST + = 0x0001, + +59 + m__GCONV_IGNORE_ERRORS + = 0x0002 + +64  + g__gcÚv_¡• +; + +65  + g__gcÚv_¡•_d©a +; + +66  + g__gcÚv_lßded_objeù +; + +67  + g__gcÚv_Œªs_d©a +; + +71 (* + t__gcÚv_fù +è( + t__gcÚv_¡• + *,  + t__gcÚv_¡•_d©a + *, + +72 + t__cÚ¡ + **, __const *, + +73 **, + tsize_t + *, , ); + +76  + $wšt_t + (* + t__gcÚv_btowc_fù +è( + t__gcÚv_¡• + *, ); + +79 (* + t__gcÚv_š™_fù +è( + t__gcÚv_¡• + *); + +80 (* + t__gcÚv_’d_fù +è( + t__gcÚv_¡• + *); + +84 (* + t__gcÚv_Œªs_fù +è( + t__gcÚv_¡• + *, + +85  + t__gcÚv_¡•_d©a + *, *, + +86 + t__cÚ¡ + *, + +87 + t__cÚ¡ + **, + +88 + t__cÚ¡ + *, **, + +89 + tsize_t + *); + +92 (* + t__gcÚv_Œªs_cÚ‹xt_fù +è(*, + t__cÚ¡ + *, + +93 + t__cÚ¡ + *, + +97 (* + t__gcÚv_Œªs_qu”y_fù +è( + t__cÚ¡ + *, __const ***, + +98 + tsize_t + *); + +101 (* + t__gcÚv_Œªs_š™_fù +) (**, const *); + +102 (* + t__gcÚv_Œªs_’d_fù +) (*); + +104  + s__gcÚv_Œªs_d©a + + +107 +__gcÚv_Œªs_fù + +__Œªs_fù +; + +108 +__gcÚv_Œªs_cÚ‹xt_fù + +__Œªs_cÚ‹xt_fù +; + +109 +__gcÚv_Œªs_’d_fù + +__Œªs_’d_fù +; + +110 * +__d©a +; + +111  +__gcÚv_Œªs_d©a + * +__Ãxt +; + +116  + s__gcÚv_¡• + + +118  +__gcÚv_lßded_objeù + * +__shlib_hªdË +; + +119 +__cÚ¡ + * +__modÇme +; + +121  +__couÁ” +; + +123 * +__äom_Çme +; + +124 * +__to_Çme +; + +126 +__gcÚv_fù + +__fù +; + +127 +__gcÚv_btowc_fù + +__btowc_fù +; + +128 +__gcÚv_š™_fù + +__š™_fù +; + +129 +__gcÚv_’d_fù + +__’d_fù +; + +133  +__mš_Ãeded_äom +; + +134  +__max_Ãeded_äom +; + +135  +__mš_Ãeded_to +; + +136  +__max_Ãeded_to +; + +139  +__¡©eful +; + +141 * +__d©a +; + +146  + s__gcÚv_¡•_d©a + + +148 * +__outbuf +; + +149 * +__outbuãnd +; + +153  +__æags +; + +157  +__švoÿtiÚ_couÁ” +; + +161  +__š‹º®_u£ +; + +163 +__mb¡©e_t + * +__¡©• +; + +164 +__mb¡©e_t + +__¡©e +; + +168  +__gcÚv_Œªs_d©a + * +__Œªs +; + +173  + s__gcÚv_šfo + + +175 +size_t + +__n¡•s +; + +176  +__gcÚv_¡• + * +__¡•s +; + +177 +__ex‹nsiÚ__ +  +__gcÚv_¡•_d©a + +__d©a + +__æex¬r +; + +178 } * + t__gcÚv_t +; + + @/usr/include/gnu/stubs-32.h + +6 #ifdeà +_LIBC + + +7 #”rÜ +AµliÿtiÚs + +may + +nÙ + +defše + +the + +maüo + +_LIBC + + +10  + #__¡ub___k”Ãl_co¦ + + + ) + +11  + #__¡ub___k”Ãl_sšl + + + ) + +12  + #__¡ub___k”Ãl_Æ + + + ) + +13  + #__¡ub_chæags + + + ) + +14  + #__¡ub_ç‰ach + + + ) + +15  + #__¡ub_fchæags + + + ) + +16  + #__¡ub_fd‘ach + + + ) + +17  + #__¡ub_g‰y + + + ) + +18  + #__¡ub_lchmod + + + ) + +19  + #__¡ub_»voke + + + ) + +20  + #__¡ub_£Žogš + + + ) + +21  + #__¡ub_sig»tuº + + + ) + +22  + #__¡ub_s¡k + + + ) + +23  + #__¡ub_¡ty + + + ) + + @/usr/include/gnu/stubs-64.h + +6 #ifdeà +_LIBC + + +7 #”rÜ +AµliÿtiÚs + +may + +nÙ + +defše + +the + +maüo + +_LIBC + + +10  + #__¡ub_bdæush + + + ) + +11  + #__¡ub_chæags + + + ) + +12  + #__¡ub_ç‰ach + + + ) + +13  + #__¡ub_fchæags + + + ) + +14  + #__¡ub_fd‘ach + + + ) + +15  + #__¡ub_g‘msg + + + ) + +16  + #__¡ub_g‰y + + + ) + +17  + #__¡ub_lchmod + + + ) + +18  + #__¡ub_putmsg + + + ) + +19  + #__¡ub_»voke + + + ) + +20  + #__¡ub_£Žogš + + + ) + +21  + #__¡ub_sig»tuº + + + ) + +22  + #__¡ub_s¡k + + + ) + +23  + #__¡ub_¡ty + + + ) + + @/usr/include/wchar.h + +24 #iâdeà +_WCHAR_H + + +26 #ià! +defšed + +__Ãed_mb¡©e_t + && !defšed +__Ãed_wšt_t + + +27  + #_WCHAR_H + 1 + + ) + +28  + ~<ã©u»s.h +> + +31 #ifdeà +_WCHAR_H + + +33  + #__Ãed___FILE + + + ) + +34 #ià +defšed + +__USE_UNIX98 + || defšed +__USE_XOPEN2K + + +35  + #__Ãed_FILE + + + ) + +37  + ~<¡dio.h +> + +39  + #__Ãed___va_li¡ + + + ) + +40  + ~<¡d¬g.h +> + +42  + ~ + +45  + #__Ãed_size_t + + + ) + +46  + #__Ãed_wch¬_t + + + ) + +47  + #__Ãed_NULL + + + ) + +49 #ià +defšed + +_WCHAR_H + || defšed +__Ãed_wšt_t + || !defšed +__WINT_TYPE__ + + +50 #undeà +__Ãed_wšt_t + + +51  + #__Ãed_wšt_t + + + ) + +52  + ~<¡ddef.h +> + +56 #iâdeà +_WINT_T + + +61  + #_WINT_T + + + ) + +62  + twšt_t +; + +66 #ià +defšed + +__ýlu¥lus + && defšed +_GLIBCPP_USE_NAMESPACES + \ + +67 && +defšed + +__WINT_TYPE__ + + +68 +__BEGIN_NAMESPACE_STD + + +69  +__WINT_TYPE__ + + twšt_t +; + +70 + g__END_NAMESPACE_STD + + +75 #ià +defšed + +__ýlu¥lus + && +__GNUC_PREREQ + (4, 4) + +76  + #__CORRECT_ISO_CPP_WCHAR_H_PROTO + + + ) + +80 #ià( +defšed + +_WCHAR_H + || defšed +__Ãed_mb¡©e_t +è&& !defšed +__mb¡©e_t_defšed + + +81  + #__mb¡©e_t_defšed + 1 + + ) + +85  + m__couÁ +; + +88 #ifdeà +__WINT_TYPE__ + + +89 +__WINT_TYPE__ + + m__wch +; + +91 +wšt_t + + m__wch +; + +93  + m__wchb +[4]; + +94 } + m__v®ue +; + +95 } + t__mb¡©e_t +; + +97 #undeà +__Ãed_mb¡©e_t + + +102 #ifdeà +_WCHAR_H + + +104 +__BEGIN_NAMESPACE_C99 + + +106  +__mb¡©e_t + + tmb¡©e_t +; + +107 + g__END_NAMESPACE_C99 + + +108 #ifdeà +__USE_GNU + + +109 + $__USING_NAMESPACE_C99 +( +mb¡©e_t +) + +112 #iâdeà +WCHAR_MIN + + +114  + #WCHAR_MIN + +__WCHAR_MIN + + + ) + +115  + #WCHAR_MAX + +__WCHAR_MAX + + + ) + +118 #iâdeà +WEOF + + +119  + #WEOF + (0xffffffffu) + + ) + +124 #ià +defšed + +__USE_XOPEN + && !defšed +__USE_UNIX98 + + +125  + ~ + +129 +__BEGIN_DECLS + + +131 +__BEGIN_NAMESPACE_STD + + +134  +tm +; + +135 +__END_NAMESPACE_STD + + +139 + $__USING_NAMESPACE_STD +( +tm +) + +142 +__BEGIN_NAMESPACE_STD + + +144 +wch¬_t + * + $wcsýy + ( +wch¬_t + * +__»¡riù + +__de¡ +, + +145 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__¤c +è +__THROW +; + +147 +wch¬_t + * + $wc¢ýy + ( +wch¬_t + * +__»¡riù + +__de¡ +, + +148 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__¤c +, +size_t + +__n +) + +149 +__THROW +; + +152 +wch¬_t + * + $wcsÿt + ( +wch¬_t + * +__»¡riù + +__de¡ +, + +153 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__¤c +è +__THROW +; + +155 +wch¬_t + * + $wc¢ÿt + ( +wch¬_t + * +__»¡riù + +__de¡ +, + +156 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__¤c +, +size_t + +__n +) + +157 +__THROW +; + +160  + $wcscmp + ( +__cÚ¡ + +wch¬_t + * +__s1 +, __cÚ¡ wch¬_ˆ* +__s2 +) + +161 +__THROW + +__©Œibu‹_pu»__ +; + +163  + $wc¢cmp + ( +__cÚ¡ + +wch¬_t + * +__s1 +, __cÚ¡ wch¬_ˆ* +__s2 +, +size_t + +__n +) + +164 +__THROW + +__©Œibu‹_pu»__ +; + +165 +__END_NAMESPACE_STD + + +167 #ifdeà +__USE_XOPEN2K8 + + +169  + $wcsÿ£cmp + ( +__cÚ¡ + +wch¬_t + * +__s1 +, __cÚ¡ wch¬_ˆ* +__s2 +è +__THROW +; + +172  + $wc¢ÿ£cmp + ( +__cÚ¡ + +wch¬_t + * +__s1 +, __cÚ¡ wch¬_ˆ* +__s2 +, + +173 +size_t + +__n +è +__THROW +; + +177  + ~ + +179  + $wcsÿ£cmp_l + ( +__cÚ¡ + +wch¬_t + * +__s1 +, __cÚ¡ wch¬_ˆ* +__s2 +, + +180 +__loÿË_t + +__loc +è +__THROW +; + +182  + $wc¢ÿ£cmp_l + ( +__cÚ¡ + +wch¬_t + * +__s1 +, __cÚ¡ wch¬_ˆ* +__s2 +, + +183 +size_t + +__n +, +__loÿË_t + +__loc +è +__THROW +; + +186 +__BEGIN_NAMESPACE_STD + + +189  + $wcscÞl + ( +__cÚ¡ + +wch¬_t + * +__s1 +, __cÚ¡ wch¬_ˆ* +__s2 +è +__THROW +; + +193 +size_t + + $wcsxäm + ( +wch¬_t + * +__»¡riù + +__s1 +, + +194 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__s2 +, +size_t + +__n +è +__THROW +; + +195 +__END_NAMESPACE_STD + + +197 #ifdeà +__USE_XOPEN2K8 + + +203  + $wcscÞl_l + ( +__cÚ¡ + +wch¬_t + * +__s1 +, __cÚ¡ wch¬_ˆ* +__s2 +, + +204 +__loÿË_t + +__loc +è +__THROW +; + +209 +size_t + + $wcsxäm_l + ( +wch¬_t + * +__s1 +, +__cÚ¡ + wch¬_ˆ* +__s2 +, + +210 +size_t + +__n +, +__loÿË_t + +__loc +è +__THROW +; + +213 +wch¬_t + * + $wcsdup + ( +__cÚ¡ + +wch¬_t + * +__s +è +__THROW + +__©Œibu‹_m®loc__ +; + +216 +__BEGIN_NAMESPACE_STD + + +218 #ifdeà +__CORRECT_ISO_CPP_WCHAR_H_PROTO + + +219 "C++" +wch¬_t + * + $wcschr + ( +wch¬_t + * +__wcs +, wch¬_ˆ +__wc +) + +220 +__THROW + + `__asm + ("wcschr"è +__©Œibu‹_pu»__ +; + +221 "C++" +__cÚ¡ + +wch¬_t + * + $wcschr + ( +__cÚ¡ + +wch¬_t + * +__wcs +, wch¬_ˆ +__wc +) + +222 +__THROW + + `__asm + ("wcschr"è +__©Œibu‹_pu»__ +; + +224 +wch¬_t + * + $wcschr + ( +__cÚ¡ + +wch¬_t + * +__wcs +, wch¬_ˆ +__wc +) + +225 +__THROW + +__©Œibu‹_pu»__ +; + +228 #ifdeà +__CORRECT_ISO_CPP_WCHAR_H_PROTO + + +229 "C++" +wch¬_t + * + $wc¤chr + ( +wch¬_t + * +__wcs +, wch¬_ˆ +__wc +) + +230 +__THROW + + `__asm + ("wc¤chr"è +__©Œibu‹_pu»__ +; + +231 "C++" +__cÚ¡ + +wch¬_t + * + $wc¤chr + ( +__cÚ¡ + +wch¬_t + * +__wcs +, wch¬_ˆ +__wc +) + +232 +__THROW + + `__asm + ("wc¤chr"è +__©Œibu‹_pu»__ +; + +234 +wch¬_t + * + $wc¤chr + ( +__cÚ¡ + +wch¬_t + * +__wcs +, wch¬_ˆ +__wc +) + +235 +__THROW + +__©Œibu‹_pu»__ +; + +237 +__END_NAMESPACE_STD + + +239 #ifdeà +__USE_GNU + + +242 +wch¬_t + * + $wcschºul + ( +__cÚ¡ + +wch¬_t + * +__s +, wch¬_ˆ +__wc +) + +243 +__THROW + +__©Œibu‹_pu»__ +; + +246 +__BEGIN_NAMESPACE_STD + + +249 +size_t + + $wcsc¥n + ( +__cÚ¡ + +wch¬_t + * +__wcs +, __cÚ¡ wch¬_ˆ* +__»jeù +) + +250 +__THROW + +__©Œibu‹_pu»__ +; + +253 +size_t + + $wcs¥n + ( +__cÚ¡ + +wch¬_t + * +__wcs +, __cÚ¡ wch¬_ˆ* +__acû± +) + +254 +__THROW + +__©Œibu‹_pu»__ +; + +256 #ifdeà +__CORRECT_ISO_CPP_WCHAR_H_PROTO + + +257 "C++" +wch¬_t + * + $wc¥brk + ( +wch¬_t + * +__wcs +, +__cÚ¡ + wch¬_ˆ* +__acû± +) + +258 +__THROW + + `__asm + ("wc¥brk"è +__©Œibu‹_pu»__ +; + +259 "C++" +__cÚ¡ + +wch¬_t + * + $wc¥brk + ( +__cÚ¡ + +wch¬_t + * +__wcs +, + +260 +__cÚ¡ + +wch¬_t + * +__acû± +) + +261 +__THROW + + `__asm + ("wc¥brk"è +__©Œibu‹_pu»__ +; + +263 +wch¬_t + * + $wc¥brk + ( +__cÚ¡ + +wch¬_t + * +__wcs +, __cÚ¡ wch¬_ˆ* +__acû± +) + +264 +__THROW + +__©Œibu‹_pu»__ +; + +267 #ifdeà +__CORRECT_ISO_CPP_WCHAR_H_PROTO + + +268 "C++" +wch¬_t + * + $wcs¡r + ( +wch¬_t + * +__hay¡ack +, +__cÚ¡ + wch¬_ˆ* +__ÃedË +) + +269 +__THROW + + `__asm + ("wcs¡r"è +__©Œibu‹_pu»__ +; + +270 "C++" +__cÚ¡ + +wch¬_t + * + $wcs¡r + ( +__cÚ¡ + +wch¬_t + * +__hay¡ack +, + +271 +__cÚ¡ + +wch¬_t + * +__ÃedË +) + +272 +__THROW + + `__asm + ("wcs¡r"è +__©Œibu‹_pu»__ +; + +274 +wch¬_t + * + $wcs¡r + ( +__cÚ¡ + +wch¬_t + * +__hay¡ack +, __cÚ¡ wch¬_ˆ* +__ÃedË +) + +275 +__THROW + +__©Œibu‹_pu»__ +; + +279 +wch¬_t + * + $wc¡ok + ( +wch¬_t + * +__»¡riù + +__s +, + +280 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__d–im +, + +281 +wch¬_t + ** +__»¡riù + +__±r +è +__THROW +; + +284 +size_t + + $wc¦’ + ( +__cÚ¡ + +wch¬_t + * +__s +è +__THROW + +__©Œibu‹_pu»__ +; + +285 +__END_NAMESPACE_STD + + +287 #ifdeà +__USE_XOPEN + + +289 #ifdeà +__CORRECT_ISO_CPP_WCHAR_H_PROTO + + +290 "C++" +wch¬_t + * + $wcswcs + ( +wch¬_t + * +__hay¡ack +, +__cÚ¡ + wch¬_ˆ* +__ÃedË +) + +291 +__THROW + + `__asm + ("wcswcs"è +__©Œibu‹_pu»__ +; + +292 "C++" +__cÚ¡ + +wch¬_t + * + $wcswcs + ( +__cÚ¡ + +wch¬_t + * +__hay¡ack +, + +293 +__cÚ¡ + +wch¬_t + * +__ÃedË +) + +294 +__THROW + + `__asm + ("wcswcs"è +__©Œibu‹_pu»__ +; + +296 +wch¬_t + * + $wcswcs + ( +__cÚ¡ + +wch¬_t + * +__hay¡ack +, __cÚ¡ wch¬_ˆ* +__ÃedË +) + +297 +__THROW + +__©Œibu‹_pu»__ +; + +301 #ifdeà +__USE_XOPEN2K8 + + +303 +size_t + + $wc¢Ën + ( +__cÚ¡ + +wch¬_t + * +__s +, +size_t + +__maxËn +) + +304 +__THROW + +__©Œibu‹_pu»__ +; + +308 +__BEGIN_NAMESPACE_STD + + +310 #ifdeà +__CORRECT_ISO_CPP_WCHAR_H_PROTO + + +311 "C++" +wch¬_t + * + $wmemchr + ( +wch¬_t + * +__s +, wch¬_ˆ +__c +, +size_t + +__n +) + +312 +__THROW + + `__asm + ("wmemchr"è +__©Œibu‹_pu»__ +; + +313 "C++" +__cÚ¡ + +wch¬_t + * + $wmemchr + ( +__cÚ¡ + +wch¬_t + * +__s +, wch¬_ˆ +__c +, + +314 +size_t + +__n +) + +315 +__THROW + + `__asm + ("wmemchr"è +__©Œibu‹_pu»__ +; + +317 +wch¬_t + * + $wmemchr + ( +__cÚ¡ + +wch¬_t + * +__s +, wch¬_ˆ +__c +, +size_t + +__n +) + +318 +__THROW + +__©Œibu‹_pu»__ +; + +322  + $wmemcmp + ( +__cÚ¡ + +wch¬_t + * +__s1 +, __cÚ¡ wch¬_ˆ* +__s2 +, +size_t + +__n +) + +323 +__THROW + +__©Œibu‹_pu»__ +; + +326 +wch¬_t + * + $wmemýy + ( +wch¬_t + * +__»¡riù + +__s1 +, + +327 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__s2 +, +size_t + +__n +è +__THROW +; + +331 +wch¬_t + * + $wmemmove + ( +wch¬_t + * +__s1 +, +__cÚ¡ + wch¬_ˆ* +__s2 +, +size_t + +__n +) + +332 +__THROW +; + +335 +wch¬_t + * + $wmem£t + ( +wch¬_t + * +__s +, wch¬_ˆ +__c +, +size_t + +__n +è +__THROW +; + +336 +__END_NAMESPACE_STD + + +338 #ifdeà +__USE_GNU + + +341 +wch¬_t + * + $wmempýy + ( +wch¬_t + * +__»¡riù + +__s1 +, + +342 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__s2 +, +size_t + +__n +) + +343 +__THROW +; + +347 +__BEGIN_NAMESPACE_STD + + +350 +wšt_t + + $btowc + ( +__c +è +__THROW +; + +354  + $wùob + ( +wšt_t + +__c +è +__THROW +; + +358  + $mbsš™ + ( +__cÚ¡ + +mb¡©e_t + * +__ps +è +__THROW + +__©Œibu‹_pu»__ +; + +362 +size_t + + $mb¹owc + ( +wch¬_t + * +__»¡riù + +__pwc +, + +363 +__cÚ¡ + * +__»¡riù + +__s +, +size_t + +__n +, + +364 +mb¡©e_t + * +__p +è +__THROW +; + +367 +size_t + + $wütomb + (* +__»¡riù + +__s +, +wch¬_t + +__wc +, + +368 +mb¡©e_t + * +__»¡riù + +__ps +è +__THROW +; + +371 +size_t + + $__mb¾’ + ( +__cÚ¡ + * +__»¡riù + +__s +, +size_t + +__n +, + +372 +mb¡©e_t + * +__»¡riù + +__ps +è +__THROW +; + +373 +size_t + + $mb¾’ + ( +__cÚ¡ + * +__»¡riù + +__s +, +size_t + +__n +, + +374 +mb¡©e_t + * +__»¡riù + +__ps +è +__THROW +; + +375 +__END_NAMESPACE_STD + + +377 #ifdeà +__USE_EXTERN_INLINES + + +383 +wšt_t + + $__btowc_®Ÿs + ( +__c +è + `__asm + ("btowc"); + +384 +__ex‹º_šlše + +wšt_t + + +385 + `__NTH + ( + $btowc + ( +__c +)) + +386 {  ( + `__bužtš_cÚ¡ªt_p + ( +__c +) && __c >= '\0' && __c <= '\x7f' + +387 ? ( +wšt_t +è +__c + : + `__btowc_®Ÿs + (__c)); + } +} + +389  + $__wùob_®Ÿs + ( +wšt_t + +__c +è + `__asm + ("wctob"); + +390 +__ex‹º_šlše +  + +391 + `__NTH + ( + $wùob + ( +wšt_t + +__wc +)) + +392 {  ( + `__bužtš_cÚ¡ªt_p + ( +__wc +è&& __wø>ð +L +'\0' && __wc <= L'\x7f' + +393 ? (è +__wc + : + `__wùob_®Ÿs + (__wc)); + } +} + +395 +__ex‹º_šlše + +size_t + + +396 +__NTH + ( + $mb¾’ + ( +__cÚ¡ + * +__»¡riù + +__s +, +size_t + +__n +, + +397 +mb¡©e_t + * +__»¡riù + +__ps +)) + +398 {  ( +__ps + !ð +NULL + + +399 ? + `mb¹owc + ( +NULL +, +__s +, +__n +, +__ps +è: + `__mb¾’ + (__s, __n, NULL)); + } +} + +402 +__BEGIN_NAMESPACE_STD + + +405 +size_t + + $mb¤towcs + ( +wch¬_t + * +__»¡riù + +__d¡ +, + +406 +__cÚ¡ + ** +__»¡riù + +__¤c +, +size_t + +__Ën +, + +407 +mb¡©e_t + * +__»¡riù + +__ps +è +__THROW +; + +411 +size_t + + $wc¤tombs + (* +__»¡riù + +__d¡ +, + +412 +__cÚ¡ + +wch¬_t + ** +__»¡riù + +__¤c +, +size_t + +__Ën +, + +413 +mb¡©e_t + * +__»¡riù + +__ps +è +__THROW +; + +414 +__END_NAMESPACE_STD + + +417 #ifdef +__USE_XOPEN2K8 + + +420 +size_t + + $mb¢¹owcs + ( +wch¬_t + * +__»¡riù + +__d¡ +, + +421 +__cÚ¡ + ** +__»¡riù + +__¤c +, +size_t + +__nmc +, + +422 +size_t + +__Ën +, +mb¡©e_t + * +__»¡riù + +__ps +è +__THROW +; + +426 +size_t + + $wc¢¹ombs + (* +__»¡riù + +__d¡ +, + +427 +__cÚ¡ + +wch¬_t + ** +__»¡riù + +__¤c +, + +428 +size_t + +__nwc +, size_ˆ +__Ën +, + +429 +mb¡©e_t + * +__»¡riù + +__ps +è +__THROW +; + +434 #ifdeà +__USE_XOPEN + + +436  + $wcwidth + ( +wch¬_t + +__c +è +__THROW +; + +440  + $wcswidth + ( +__cÚ¡ + +wch¬_t + * +__s +, +size_t + +__n +è +__THROW +; + +444 +__BEGIN_NAMESPACE_STD + + +447  + $wc¡od + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__ÅŒ +, + +448 +wch¬_t + ** +__»¡riù + +__’d±r +è +__THROW +; + +449 +__END_NAMESPACE_STD + + +451 #ifdeà +__USE_ISOC99 + + +452 +__BEGIN_NAMESPACE_C99 + + +454  + $wc¡of + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__ÅŒ +, + +455 +wch¬_t + ** +__»¡riù + +__’d±r +è +__THROW +; + +456  + $wc¡Þd + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__ÅŒ +, + +457 +wch¬_t + ** +__»¡riù + +__’d±r +è +__THROW +; + +458 +__END_NAMESPACE_C99 + + +462 +__BEGIN_NAMESPACE_STD + + +465  + $wc¡Þ + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__ÅŒ +, + +466 +wch¬_t + ** +__»¡riù + +__’d±r +,  +__ba£ +è +__THROW +; + +470  + $wc¡oul + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__ÅŒ +, + +471 +wch¬_t + ** +__»¡riù + +__’d±r +,  +__ba£ +) + +472 +__THROW +; + +473 +__END_NAMESPACE_STD + + +475 #ià +defšed + +__USE_ISOC99 + || (defšed +__GNUC__ + && defšed +__USE_GNU +) + +476 +__BEGIN_NAMESPACE_C99 + + +479 +__ex‹nsiÚ__ + + +480  + $wc¡Þl + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__ÅŒ +, + +481 +wch¬_t + ** +__»¡riù + +__’d±r +,  +__ba£ +) + +482 +__THROW +; + +486 +__ex‹nsiÚ__ + + +487  + $wc¡ouÎ + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__ÅŒ +, + +488 +wch¬_t + ** +__»¡riù + +__’d±r +, + +489  +__ba£ +è +__THROW +; + +490 +__END_NAMESPACE_C99 + + +493 #ià +defšed + +__GNUC__ + && defšed +__USE_GNU + + +496 +__ex‹nsiÚ__ + + +497  + $wc¡oq + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__ÅŒ +, + +498 +wch¬_t + ** +__»¡riù + +__’d±r +,  +__ba£ +) + +499 +__THROW +; + +503 +__ex‹nsiÚ__ + + +504  + $wc¡ouq + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__ÅŒ +, + +505 +wch¬_t + ** +__»¡riù + +__’d±r +, + +506  +__ba£ +è +__THROW +; + +509 #ifdeà +__USE_GNU + + +523  + ~ + +527  + $wc¡Þ_l + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__ÅŒ +, + +528 +wch¬_t + ** +__»¡riù + +__’d±r +,  +__ba£ +, + +529 +__loÿË_t + +__loc +è +__THROW +; + +531  + $wc¡oul_l + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__ÅŒ +, + +532 +wch¬_t + ** +__»¡riù + +__’d±r +, + +533  +__ba£ +, +__loÿË_t + +__loc +è +__THROW +; + +535 +__ex‹nsiÚ__ + + +536  + $wc¡Þl_l + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__ÅŒ +, + +537 +wch¬_t + ** +__»¡riù + +__’d±r +, + +538  +__ba£ +, +__loÿË_t + +__loc +è +__THROW +; + +540 +__ex‹nsiÚ__ + + +541  + $wc¡ouÎ_l + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__ÅŒ +, + +542 +wch¬_t + ** +__»¡riù + +__’d±r +, + +543  +__ba£ +, +__loÿË_t + +__loc +) + +544 +__THROW +; + +546  + $wc¡od_l + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__ÅŒ +, + +547 +wch¬_t + ** +__»¡riù + +__’d±r +, +__loÿË_t + +__loc +) + +548 +__THROW +; + +550  + $wc¡of_l + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__ÅŒ +, + +551 +wch¬_t + ** +__»¡riù + +__’d±r +, +__loÿË_t + +__loc +) + +552 +__THROW +; + +554  + $wc¡Þd_l + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__ÅŒ +, + +555 +wch¬_t + ** +__»¡riù + +__’d±r +, + +556 +__loÿË_t + +__loc +è +__THROW +; + +560 #ifdeà +__USE_XOPEN2K8 + + +563 +wch¬_t + * + $wýýy + ( +wch¬_t + * +__»¡riù + +__de¡ +, + +564 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__¤c +è +__THROW +; + +568 +wch¬_t + * + $wýnýy + ( +wch¬_t + * +__»¡riù + +__de¡ +, + +569 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__¤c +, +size_t + +__n +) + +570 +__THROW +; + +577 +__FILE + * + $Ý’_wmem¡»am + ( +wch¬_t + ** +__buæoc +, +size_t + * +__siz–oc +è +__THROW +; + +580 #ià +defšed + +__USE_ISOC95 + || defšed +__USE_UNIX98 + + +581 +__BEGIN_NAMESPACE_STD + + +584  + $fwide + ( +__FILE + * +__å +,  +__mode +è +__THROW +; + +591  + `fw´štf + ( +__FILE + * +__»¡riù + +__¡»am +, + +592 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, ...) + +598  + `w´štf + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, ...) + +601  + $sw´štf + ( +wch¬_t + * +__»¡riù + +__s +, +size_t + +__n +, + +602 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, ...) + +603 +__THROW + ; + +609  + `vfw´štf + ( +__FILE + * +__»¡riù + +__s +, + +610 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, + +611 +__gnuc_va_li¡ + +__¬g +) + +617  + `vw´štf + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, + +618 +__gnuc_va_li¡ + +__¬g +) + +622  + $vsw´štf + ( +wch¬_t + * +__»¡riù + +__s +, +size_t + +__n +, + +623 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, + +624 +__gnuc_va_li¡ + +__¬g +) + +625 +__THROW + ; + +632  + `fwsÿnf + ( +__FILE + * +__»¡riù + +__¡»am +, + +633 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, ...) + +639  + `wsÿnf + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, ...) + +642  + $swsÿnf + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__s +, + +643 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, ...) + +644 +__THROW + ; + +646 #ià +defšed + +__USE_ISOC99 + && !defšed +__USE_GNU + \ + +647 && (! +defšed + +__LDBL_COMPAT + || !defšed +__REDIRECT +) \ + +648 && ( +defšed + +__STRICT_ANSI__ + || defšed +__USE_XOPEN2K +) + +649 #ifdeà +__REDIRECT + + +653  + `__REDIRECT + ( +fwsÿnf +, ( +__FILE + * +__»¡riù + +__¡»am +, + +654 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, ...), + +655 +__isoc99_fwsÿnf +) + +657  + `__REDIRECT + ( +wsÿnf +, ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, ...), + +658 +__isoc99_wsÿnf +) + +660  + `__REDIRECT_NTH + ( +swsÿnf +, ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__s +, + +661 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, + +662 ...), +__isoc99_swsÿnf +) + +665  + `__isoc99_fwsÿnf + ( +__FILE + * +__»¡riù + +__¡»am +, + +666 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, ...); + +667  + `__isoc99_wsÿnf + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, ...); + +668  + $__isoc99_swsÿnf + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__s +, + +669 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, ...) + +670 +__THROW +; + +671  + #fwsÿnf + +__isoc99_fwsÿnf + + + ) + +672  + #wsÿnf + +__isoc99_wsÿnf + + + ) + +673  + #swsÿnf + +__isoc99_swsÿnf + + + ) + +677 +__END_NAMESPACE_STD + + +680 #ifdeà +__USE_ISOC99 + + +681 +__BEGIN_NAMESPACE_C99 + + +686  + `vfwsÿnf + ( +__FILE + * +__»¡riù + +__s +, + +687 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, + +688 +__gnuc_va_li¡ + +__¬g +) + +694  + `vwsÿnf + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, + +695 +__gnuc_va_li¡ + +__¬g +) + +698  + $vswsÿnf + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__s +, + +699 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, + +700 +__gnuc_va_li¡ + +__¬g +) + +701 +__THROW + ; + +703 #ià! +defšed + +__USE_GNU + \ + +704 && (! +defšed + +__LDBL_COMPAT + || !defšed +__REDIRECT +) \ + +705 && ( +defšed + +__STRICT_ANSI__ + || defšed +__USE_XOPEN2K +) + +706 #ifdeà +__REDIRECT + + +707  + `__REDIRECT + ( +vfwsÿnf +, ( +__FILE + * +__»¡riù + +__s +, + +708 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, + +709 +__gnuc_va_li¡ + +__¬g +), +__isoc99_vfwsÿnf +) + +711  + `__REDIRECT + ( +vwsÿnf +, ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, + +712 +__gnuc_va_li¡ + +__¬g +), +__isoc99_vwsÿnf +) + +714  + `__REDIRECT_NTH + ( +vswsÿnf +, ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__s +, + +715 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, + +716 +__gnuc_va_li¡ + +__¬g +), +__isoc99_vswsÿnf +) + +719  + `__isoc99_vfwsÿnf + ( +__FILE + * +__»¡riù + +__s +, + +720 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, + +721 +__gnuc_va_li¡ + +__¬g +); + +722  + `__isoc99_vwsÿnf + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, + +723 +__gnuc_va_li¡ + +__¬g +); + +724  + $__isoc99_vswsÿnf + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__s +, + +725 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, + +726 +__gnuc_va_li¡ + +__¬g +è +__THROW +; + +727  + #vfwsÿnf + +__isoc99_vfwsÿnf + + + ) + +728  + #vwsÿnf + +__isoc99_vwsÿnf + + + ) + +729  + #vswsÿnf + +__isoc99_vswsÿnf + + + ) + +733 +__END_NAMESPACE_C99 + + +737 +__BEGIN_NAMESPACE_STD + + +742 +wšt_t + + `fg‘wc + ( +__FILE + * +__¡»am +); + +743 +wšt_t + + `g‘wc + ( +__FILE + * +__¡»am +); + +749 +wšt_t + + `g‘wch¬ + (); + +756 +wšt_t + + `åutwc + ( +wch¬_t + +__wc +, +__FILE + * +__¡»am +); + +757 +wšt_t + + `putwc + ( +wch¬_t + +__wc +, +__FILE + * +__¡»am +); + +763 +wšt_t + + `putwch¬ + ( +wch¬_t + +__wc +); + +771 +wch¬_t + * + `fg‘ws + (wch¬_ˆ* +__»¡riù + +__ws +,  +__n +, + +772 +__FILE + * +__»¡riù + +__¡»am +); + +778  + `åutws + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__ws +, + +779 +__FILE + * +__»¡riù + +__¡»am +); + +786 +wšt_t + + `ung‘wc + (wšt_ˆ +__wc +, +__FILE + * +__¡»am +); + +787 +__END_NAMESPACE_STD + + +790 #ifdeà +__USE_GNU + + +798 +wšt_t + + `g‘wc_uÆocked + ( +__FILE + * +__¡»am +); + +799 +wšt_t + + `g‘wch¬_uÆocked + (); + +807 +wšt_t + + `fg‘wc_uÆocked + ( +__FILE + * +__¡»am +); + +815 +wšt_t + + `åutwc_uÆocked + ( +wch¬_t + +__wc +, +__FILE + * +__¡»am +); + +824 +wšt_t + + `putwc_uÆocked + ( +wch¬_t + +__wc +, +__FILE + * +__¡»am +); + +825 +wšt_t + + `putwch¬_uÆocked + ( +wch¬_t + +__wc +); + +834 +wch¬_t + * + `fg‘ws_uÆocked + (wch¬_ˆ* +__»¡riù + +__ws +,  +__n +, + +835 +__FILE + * +__»¡riù + +__¡»am +); + +843  + `åutws_uÆocked + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__ws +, + +844 +__FILE + * +__»¡riù + +__¡»am +); + +848 +__BEGIN_NAMESPACE_C99 + + +852 +size_t + + $wcsáime + ( +wch¬_t + * +__»¡riù + +__s +, +size_t + +__maxsize +, + +853 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, + +854 +__cÚ¡ +  +tm + * +__»¡riù + +__ +è +__THROW +; + +855 +__END_NAMESPACE_C99 + + +857 #ifdeà +__USE_GNU + + +858  + ~ + +862 +size_t + + $wcsáime_l + ( +wch¬_t + * +__»¡riù + +__s +, +size_t + +__maxsize +, + +863 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, + +864 +__cÚ¡ +  +tm + * +__»¡riù + +__ +, + +865 +__loÿË_t + +__loc +è +__THROW +; + +874 #ià +defšed + +__USE_UNIX98 + && !defšed +__USE_GNU + + +875  + #__Ãed_iswxxx + + + ) + +876  + ~ + +880 #ià +__USE_FORTIFY_LEVEL + > 0 && +defšed + +__ex‹º_®ways_šlše + + +881  + ~ + +884 #ifdeà +__LDBL_COMPAT + + +885  + ~ + +888 +__END_DECLS + + +896 #undeà +__Ãed_mb¡©e_t + + +897 #undeà +__Ãed_wšt_t + + + @/usr/include/bits/wchar-ldbl.h + +20 #iâdeà +_WCHAR_H + + +24 #ià +defšed + +__USE_ISOC95 + || defšed +__USE_UNIX98 + + +25 +__BEGIN_NAMESPACE_C99 + + +26 +__LDBL_REDIR_DECL + ( +fw´štf +); + +27 +__LDBL_REDIR_DECL + ( +w´štf +); + +28 +__LDBL_REDIR_DECL + ( +sw´štf +); + +29 +__LDBL_REDIR_DECL + ( +vfw´štf +); + +30 +__LDBL_REDIR_DECL + ( +vw´štf +); + +31 +__LDBL_REDIR_DECL + ( +vsw´štf +); + +32 #ià +defšed + +__USE_ISOC99 + && !defšed +__USE_GNU + \ + +33 && ! +defšed + + g__REDIRECT + \ + +34 && ( +defšed + + g__STRICT_ANSI__ + || defšed + g__USE_XOPEN2K +) + +35 + $__LDBL_REDIR1_DECL + ( +fwsÿnf +, +__Ædbl___isoc99_fwsÿnf +) + +36 + $__LDBL_REDIR1_DECL + ( +wsÿnf +, +__Ædbl___isoc99_wsÿnf +) + +37 + $__LDBL_REDIR1_DECL + ( +swsÿnf +, +__Ædbl___isoc99_swsÿnf +) + +39 + `__LDBL_REDIR_DECL + ( +fwsÿnf +); + +40 + `__LDBL_REDIR_DECL + ( +wsÿnf +); + +41 + `__LDBL_REDIR_DECL + ( +swsÿnf +); + +43 +__END_NAMESPACE_C99 + + +46 #ifdeà +__USE_ISOC99 + + +47 +__BEGIN_NAMESPACE_C99 + + +48 + `__LDBL_REDIR1_DECL + ( +wc¡Þd +, +wc¡od +); + +49 #ià! +defšed + +__USE_GNU + && !defšed +__REDIRECT + \ + +50 && ( +defšed + +__STRICT_ANSI__ + || defšed +__USE_XOPEN2K +) + +51 + $__LDBL_REDIR1_DECL + ( +vfwsÿnf +, +__Ædbl___isoc99_vfwsÿnf +) + +52 + $__LDBL_REDIR1_DECL + ( +vwsÿnf +, +__Ædbl___isoc99_vwsÿnf +) + +53 + $__LDBL_REDIR1_DECL + ( +vswsÿnf +, +__Ædbl___isoc99_vswsÿnf +) + +55 + `__LDBL_REDIR_DECL + ( +vfwsÿnf +); + +56 + `__LDBL_REDIR_DECL + ( +vwsÿnf +); + +57 + `__LDBL_REDIR_DECL + ( +vswsÿnf +); + +59 +__END_NAMESPACE_C99 + + +62 #ifdeà +__USE_GNU + + +63 + `__LDBL_REDIR1_DECL + ( +wc¡Þd_l +, +wc¡od_l +); + +66 #ià +__USE_FORTIFY_LEVEL + > 0 && +defšed + +__ex‹º_®ways_šlše + + +67 + $__LDBL_REDIR_DECL + ( +__sw´štf_chk +) + +68 + $__LDBL_REDIR_DECL + ( +__vsw´štf_chk +) + +69 #ià +__USE_FORTIFY_LEVEL + > 1 + +70 + $__LDBL_REDIR_DECL + ( +__fw´štf_chk +) + +71 + $__LDBL_REDIR_DECL + ( +__w´štf_chk +) + +72 + $__LDBL_REDIR_DECL + ( +__vfw´štf_chk +) + +73 + $__LDBL_REDIR_DECL + ( +__vw´štf_chk +) + + @/usr/include/bits/wchar2.h + +20 #iâdeà +_WCHAR_H + + +25 +wch¬_t + * + $__wmemýy_chk + ( +wch¬_t + * +__»¡riù + +__s1 +, + +26 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__s2 +, +size_t + +__n +, + +27 +size_t + +__ns1 +è +__THROW +; + +28 +wch¬_t + * + `__REDIRECT_NTH + ( +__wmemýy_®Ÿs +, + +29 ( +wch¬_t + * +__»¡riù + +__s1 +, + +30 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__s2 +, +size_t + +__n +), + +31 +wmemýy +); + +32 +wch¬_t + * + `__REDIRECT_NTH + ( +__wmemýy_chk_w¬n +, + +33 ( +wch¬_t + * +__»¡riù + +__s1 +, + +34 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__s2 +, +size_t + +__n +, + +35 +size_t + +__ns1 +), +__wmemýy_chk +) + +36 + `__w¬Ç‰r + ("wmemcpy called with†ength biggerhan size of destination " + +39 +__ex‹º_®ways_šlše + +wch¬_t + * + +40 + `__NTH + ( + $wmemýy + ( +wch¬_t + * +__»¡riù + +__s1 +, +__cÚ¡ + wch¬_ˆ*__»¡riù +__s2 +, + +41 +size_t + +__n +)) + +43 ià( + `__bos0 + ( +__s1 +è!ð( +size_t +) -1) + +45 ià(! + `__bužtš_cÚ¡ªt_p + ( +__n +)) + +46  + `__wmemýy_chk + ( +__s1 +, +__s2 +, +__n +, + +47 + `__bos0 + ( +__s1 +è/  ( +wch¬_t +)); + +49 ià( +__n + > + `__bos0 + ( +__s1 +è/  ( +wch¬_t +)) + +50  + `__wmemýy_chk_w¬n + ( +__s1 +, +__s2 +, +__n +, + +51 + `__bos0 + ( +__s1 +è/  ( +wch¬_t +)); + +53  + `__wmemýy_®Ÿs + ( +__s1 +, +__s2 +, +__n +); + +54 + } +} + +57 +wch¬_t + * + $__wmemmove_chk + ( +wch¬_t + * +__s1 +, +__cÚ¡ + wch¬_ˆ* +__s2 +, + +58 +size_t + +__n +, size_ˆ +__ns1 +è +__THROW +; + +59 +wch¬_t + * + `__REDIRECT_NTH + ( +__wmemmove_®Ÿs +, (wch¬_ˆ* +__s1 +, + +60 +__cÚ¡ + +wch¬_t + * +__s2 +, + +61 +size_t + +__n +), +wmemmove +); + +62 +wch¬_t + * + `__REDIRECT_NTH + ( +__wmemmove_chk_w¬n +, + +63 ( +wch¬_t + * +__s1 +, +__cÚ¡ + wch¬_ˆ* +__s2 +, + +64 +size_t + +__n +, size_ˆ +__ns1 +), +__wmemmove_chk +) + +65 + `__w¬Ç‰r + ("wmemmove called with†ength biggerhan size of destination " + +68 +__ex‹º_®ways_šlše + +wch¬_t + * + +69 + `__NTH + ( + $wmemmove + ( +wch¬_t + * +__s1 +, +__cÚ¡ + wch¬_ˆ* +__s2 +, +size_t + +__n +)) + +71 ià( + `__bos0 + ( +__s1 +è!ð( +size_t +) -1) + +73 ià(! + `__bužtš_cÚ¡ªt_p + ( +__n +)) + +74  + `__wmemmove_chk + ( +__s1 +, +__s2 +, +__n +, + +75 + `__bos0 + ( +__s1 +è/  ( +wch¬_t +)); + +77 ià( +__n + > + `__bos0 + ( +__s1 +è/  ( +wch¬_t +)) + +78  + `__wmemmove_chk_w¬n + ( +__s1 +, +__s2 +, +__n +, + +79 + `__bos0 + ( +__s1 +è/  ( +wch¬_t +)); + +81  + `__wmemmove_®Ÿs + ( +__s1 +, +__s2 +, +__n +); + +82 + } +} + +85 #ifdeà +__USE_GNU + + +86 +wch¬_t + * + $__wmempýy_chk + ( +wch¬_t + * +__»¡riù + +__s1 +, + +87 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__s2 +, +size_t + +__n +, + +88 +size_t + +__ns1 +è +__THROW +; + +89 +wch¬_t + * + `__REDIRECT_NTH + ( +__wmempýy_®Ÿs +, + +90 ( +wch¬_t + * +__»¡riù + +__s1 +, + +91 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__s2 +, + +92 +size_t + +__n +), +wmempýy +); + +93 +wch¬_t + * + `__REDIRECT_NTH + ( +__wmempýy_chk_w¬n +, + +94 ( +wch¬_t + * +__»¡riù + +__s1 +, + +95 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__s2 +, +size_t + +__n +, + +96 +size_t + +__ns1 +), +__wmempýy_chk +) + +97 + `__w¬Ç‰r + ("wmempcpy called with†ength biggerhan size of destination " + +100 +__ex‹º_®ways_šlše + +wch¬_t + * + +101 + `__NTH + ( + $wmempýy + ( +wch¬_t + * +__»¡riù + +__s1 +, +__cÚ¡ + wch¬_ˆ*__»¡riù +__s2 +, + +102 +size_t + +__n +)) + +104 ià( + `__bos0 + ( +__s1 +è!ð( +size_t +) -1) + +106 ià(! + `__bužtš_cÚ¡ªt_p + ( +__n +)) + +107  + `__wmempýy_chk + ( +__s1 +, +__s2 +, +__n +, + +108 + `__bos0 + ( +__s1 +è/  ( +wch¬_t +)); + +110 ià( +__n + > + `__bos0 + ( +__s1 +è/  ( +wch¬_t +)) + +111  + `__wmempýy_chk_w¬n + ( +__s1 +, +__s2 +, +__n +, + +112 + `__bos0 + ( +__s1 +è/  ( +wch¬_t +)); + +114  + `__wmempýy_®Ÿs + ( +__s1 +, +__s2 +, +__n +); + +115 + } +} + +119 +wch¬_t + * + $__wmem£t_chk + ( +wch¬_t + * +__s +, wch¬_ˆ +__c +, +size_t + +__n +, + +120 +size_t + +__ns +è +__THROW +; + +121 +wch¬_t + * + `__REDIRECT_NTH + ( +__wmem£t_®Ÿs +, (wch¬_ˆ* +__s +, wch¬_ˆ +__c +, + +122 +size_t + +__n +), +wmem£t +); + +123 +wch¬_t + * + `__REDIRECT_NTH + ( +__wmem£t_chk_w¬n +, + +124 ( +wch¬_t + * +__s +, wch¬_ˆ +__c +, +size_t + +__n +, + +125 +size_t + +__ns +), +__wmem£t_chk +) + +126 + `__w¬Ç‰r + ("wmemset called with†ength biggerhan size of destination " + +129 +__ex‹º_®ways_šlše + +wch¬_t + * + +130 + `__NTH + ( + $wmem£t + ( +wch¬_t + * +__s +, wch¬_ˆ +__c +, +size_t + +__n +)) + +132 ià( + `__bos0 + ( +__s +è!ð( +size_t +) -1) + +134 ià(! + `__bužtš_cÚ¡ªt_p + ( +__n +)) + +135  + `__wmem£t_chk + ( +__s +, +__c +, +__n +, + `__bos0 + (__sè/  ( +wch¬_t +)); + +137 ià( +__n + > + `__bos0 + ( +__s +è/  ( +wch¬_t +)) + +138  + `__wmem£t_chk_w¬n + ( +__s +, +__c +, +__n +, + +139 + `__bos0 + ( +__s +è/  ( +wch¬_t +)); + +141  + `__wmem£t_®Ÿs + ( +__s +, +__c +, +__n +); + +142 + } +} + +145 +wch¬_t + * + $__wcsýy_chk + ( +wch¬_t + * +__»¡riù + +__de¡ +, + +146 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__¤c +, + +147 +size_t + +__n +è +__THROW +; + +148 +wch¬_t + * + `__REDIRECT_NTH + ( +__wcsýy_®Ÿs +, + +149 ( +wch¬_t + * +__»¡riù + +__de¡ +, + +150 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__¤c +), +wcsýy +); + +152 +__ex‹º_®ways_šlše + +wch¬_t + * + +153 + `__NTH + ( + $wcsýy + ( +wch¬_t + * +__»¡riù + +__de¡ +, +__cÚ¡ + wch¬_ˆ*__»¡riù +__¤c +)) + +155 ià( + `__bos + ( +__de¡ +è!ð( +size_t +) -1) + +156  + `__wcsýy_chk + ( +__de¡ +, +__¤c +, + `__bos + (__de¡è/  ( +wch¬_t +)); + +157  + `__wcsýy_®Ÿs + ( +__de¡ +, +__¤c +); + +158 + } +} + +161 +wch¬_t + * + $__wýýy_chk + ( +wch¬_t + * +__»¡riù + +__de¡ +, + +162 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__¤c +, + +163 +size_t + +__de¡Ën +è +__THROW +; + +164 +wch¬_t + * + `__REDIRECT_NTH + ( +__wýýy_®Ÿs +, + +165 ( +wch¬_t + * +__»¡riù + +__de¡ +, + +166 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__¤c +), +wýýy +); + +168 +__ex‹º_®ways_šlše + +wch¬_t + * + +169 + `__NTH + ( + $wýýy + ( +wch¬_t + * +__»¡riù + +__de¡ +, +__cÚ¡ + wch¬_ˆ*__»¡riù +__¤c +)) + +171 ià( + `__bos + ( +__de¡ +è!ð( +size_t +) -1) + +172  + `__wýýy_chk + ( +__de¡ +, +__¤c +, + `__bos + (__de¡è/  ( +wch¬_t +)); + +173  + `__wýýy_®Ÿs + ( +__de¡ +, +__¤c +); + +174 + } +} + +177 +wch¬_t + * + $__wc¢ýy_chk + ( +wch¬_t + * +__»¡riù + +__de¡ +, + +178 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__¤c +, +size_t + +__n +, + +179 +size_t + +__de¡Ën +è +__THROW +; + +180 +wch¬_t + * + `__REDIRECT_NTH + ( +__wc¢ýy_®Ÿs +, + +181 ( +wch¬_t + * +__»¡riù + +__de¡ +, + +182 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__¤c +, + +183 +size_t + +__n +), +wc¢ýy +); + +184 +wch¬_t + * + `__REDIRECT_NTH + ( +__wc¢ýy_chk_w¬n +, + +185 ( +wch¬_t + * +__»¡riù + +__de¡ +, + +186 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__¤c +, + +187 +size_t + +__n +, size_ˆ +__de¡Ën +), +__wc¢ýy_chk +) + +188 + `__w¬Ç‰r + ("wcsncpy called with†ength biggerhan size of destination " + +191 +__ex‹º_®ways_šlše + +wch¬_t + * + +192 + `__NTH + ( + $wc¢ýy + ( +wch¬_t + * +__»¡riù + +__de¡ +, +__cÚ¡ + wch¬_ˆ*__»¡riù +__¤c +, + +193 +size_t + +__n +)) + +195 ià( + `__bos + ( +__de¡ +è!ð( +size_t +) -1) + +197 ià(! + `__bužtš_cÚ¡ªt_p + ( +__n +)) + +198  + `__wc¢ýy_chk + ( +__de¡ +, +__¤c +, +__n +, + +199 + `__bos + ( +__de¡ +è/  ( +wch¬_t +)); + +200 ià( +__n + > + `__bos + ( +__de¡ +è/  ( +wch¬_t +)) + +201  + `__wc¢ýy_chk_w¬n + ( +__de¡ +, +__¤c +, +__n +, + +202 + `__bos + ( +__de¡ +è/  ( +wch¬_t +)); + +204  + `__wc¢ýy_®Ÿs + ( +__de¡ +, +__¤c +, +__n +); + +205 + } +} + +208 +wch¬_t + * + $__wýnýy_chk + ( +wch¬_t + * +__»¡riù + +__de¡ +, + +209 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__¤c +, +size_t + +__n +, + +210 +size_t + +__de¡Ën +è +__THROW +; + +211 +wch¬_t + * + `__REDIRECT_NTH + ( +__wýnýy_®Ÿs +, + +212 ( +wch¬_t + * +__»¡riù + +__de¡ +, + +213 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__¤c +, + +214 +size_t + +__n +), +wýnýy +); + +215 +wch¬_t + * + `__REDIRECT_NTH + ( +__wýnýy_chk_w¬n +, + +216 ( +wch¬_t + * +__»¡riù + +__de¡ +, + +217 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__¤c +, + +218 +size_t + +__n +, size_ˆ +__de¡Ën +), +__wýnýy_chk +) + +219 + `__w¬Ç‰r + ("wcpncpy called with†ength biggerhan size of destination " + +222 +__ex‹º_®ways_šlše + +wch¬_t + * + +223 + `__NTH + ( + $wýnýy + ( +wch¬_t + * +__»¡riù + +__de¡ +, +__cÚ¡ + wch¬_ˆ*__»¡riù +__¤c +, + +224 +size_t + +__n +)) + +226 ià( + `__bos + ( +__de¡ +è!ð( +size_t +) -1) + +228 ià(! + `__bužtš_cÚ¡ªt_p + ( +__n +)) + +229  + `__wýnýy_chk + ( +__de¡ +, +__¤c +, +__n +, + +230 + `__bos + ( +__de¡ +è/  ( +wch¬_t +)); + +231 ià( +__n + > + `__bos + ( +__de¡ +è/  ( +wch¬_t +)) + +232  + `__wýnýy_chk_w¬n + ( +__de¡ +, +__¤c +, +__n +, + +233 + `__bos + ( +__de¡ +è/  ( +wch¬_t +)); + +235  + `__wýnýy_®Ÿs + ( +__de¡ +, +__¤c +, +__n +); + +236 + } +} + +239 +wch¬_t + * + $__wcsÿt_chk + ( +wch¬_t + * +__»¡riù + +__de¡ +, + +240 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__¤c +, + +241 +size_t + +__de¡Ën +è +__THROW +; + +242 +wch¬_t + * + `__REDIRECT_NTH + ( +__wcsÿt_®Ÿs +, + +243 ( +wch¬_t + * +__»¡riù + +__de¡ +, + +244 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__¤c +), +wcsÿt +); + +246 +__ex‹º_®ways_šlše + +wch¬_t + * + +247 + `__NTH + ( + $wcsÿt + ( +wch¬_t + * +__»¡riù + +__de¡ +, +__cÚ¡ + wch¬_ˆ*__»¡riù +__¤c +)) + +249 ià( + `__bos + ( +__de¡ +è!ð( +size_t +) -1) + +250  + `__wcsÿt_chk + ( +__de¡ +, +__¤c +, + `__bos + (__de¡è/  ( +wch¬_t +)); + +251  + `__wcsÿt_®Ÿs + ( +__de¡ +, +__¤c +); + +252 + } +} + +255 +wch¬_t + * + $__wc¢ÿt_chk + ( +wch¬_t + * +__»¡riù + +__de¡ +, + +256 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__¤c +, + +257 +size_t + +__n +, size_ˆ +__de¡Ën +è +__THROW +; + +258 +wch¬_t + * + `__REDIRECT_NTH + ( +__wc¢ÿt_®Ÿs +, + +259 ( +wch¬_t + * +__»¡riù + +__de¡ +, + +260 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__¤c +, + +261 +size_t + +__n +), +wc¢ÿt +); + +263 +__ex‹º_®ways_šlše + +wch¬_t + * + +264 + `__NTH + ( + $wc¢ÿt + ( +wch¬_t + * +__»¡riù + +__de¡ +, +__cÚ¡ + wch¬_ˆ*__»¡riù +__¤c +, + +265 +size_t + +__n +)) + +267 ià( + `__bos + ( +__de¡ +è!ð( +size_t +) -1) + +268  + `__wc¢ÿt_chk + ( +__de¡ +, +__¤c +, +__n +, + +269 + `__bos + ( +__de¡ +è/  ( +wch¬_t +)); + +270  + `__wc¢ÿt_®Ÿs + ( +__de¡ +, +__¤c +, +__n +); + +271 + } +} + +274  + $__sw´štf_chk + ( +wch¬_t + * +__»¡riù + +__s +, +size_t + +__n +, + +275  +__æag +, +size_t + +__s_Ën +, + +276 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, ...) + +277 +__THROW + ; + +279  + `__REDIRECT_NTH_LDBL + ( +__sw´štf_®Ÿs +, + +280 ( +wch¬_t + * +__»¡riù + +__s +, +size_t + +__n +, + +281 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fmt +, ...), + +282 +sw´štf +); + +284 #ifdeà +__va_¬g_·ck + + +285 +__ex‹º_®ways_šlše +  + +286 + `__NTH + ( + $sw´štf + ( +wch¬_t + * +__»¡riù + +__s +, +size_t + +__n +, + +287 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fmt +, ...)) + +289 ià( + `__bos + ( +__s +è!ð( +size_t +è-1 || +__USE_FORTIFY_LEVEL + > 1) + +290  + `__sw´štf_chk + ( +__s +, +__n +, +__USE_FORTIFY_LEVEL + - 1, + +291 + `__bos + ( +__s +è/  ( +wch¬_t +), + +292 +__fmt +, + `__va_¬g_·ck + ()); + +293  + `__sw´štf_®Ÿs + ( +__s +, +__n +, +__fmt +, + `__va_¬g_·ck + ()); + +294 + } +} + +295 #–ià! +defšed + +__ýlu¥lus + + +297  + #sw´štf +( +s +, +n +, ...) \ + +298 ( + `__bos + ( +s +è!ð( +size_t +è-1 || +__USE_FORTIFY_LEVEL + > 1 \ + +299 ? + `__sw´štf_chk + ( +s +, +n +, +__USE_FORTIFY_LEVEL + - 1, \ + +300 + `__bos + ( +s +è/  ( +wch¬_t +), +__VA_ARGS__ +) \ + +301 : + `sw´štf + ( +s +, +n +, +__VA_ARGS__ +)) + + ) + +304  + $__vsw´štf_chk + ( +wch¬_t + * +__»¡riù + +__s +, +size_t + +__n +, + +305  +__æag +, +size_t + +__s_Ën +, + +306 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, + +307 +__gnuc_va_li¡ + +__¬g +) + +308 +__THROW + ; + +310  + `__REDIRECT_NTH_LDBL + ( +__vsw´štf_®Ÿs +, + +311 ( +wch¬_t + * +__»¡riù + +__s +, +size_t + +__n +, + +312 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fmt +, + +313 +__gnuc_va_li¡ + +__­ +), +vsw´štf +); + +315 +__ex‹º_®ways_šlše +  + +316 + `__NTH + ( + $vsw´štf + ( +wch¬_t + * +__»¡riù + +__s +, +size_t + +__n +, + +317 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fmt +, +__gnuc_va_li¡ + +__­ +)) + +319 ià( + `__bos + ( +__s +è!ð( +size_t +è-1 || +__USE_FORTIFY_LEVEL + > 1) + +320  + `__vsw´štf_chk + ( +__s +, +__n +, +__USE_FORTIFY_LEVEL + - 1, + +321 + `__bos + ( +__s +è/  ( +wch¬_t +), +__fmt +, +__­ +); + +322  + `__vsw´štf_®Ÿs + ( +__s +, +__n +, +__fmt +, +__­ +); + +323 + } +} + +326 #ià +__USE_FORTIFY_LEVEL + > 1 + +328  +__fw´štf_chk + ( +__FILE + * +__»¡riù + +__¡»am +,  +__æag +, + +329 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, ...); + +330  +__w´štf_chk + ( +__æag +, +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, + +332  +__vfw´štf_chk + ( +__FILE + * +__»¡riù + +__¡»am +,  +__æag +, + +333 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, + +334 +__gnuc_va_li¡ + +__­ +); + +335  +__vw´štf_chk + ( +__æag +, +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fÜm© +, + +336 +__gnuc_va_li¡ + +__­ +); + +338 #ifdeà +__va_¬g_·ck + + +339 +__ex‹º_®ways_šlše +  + +340 + $w´štf + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fmt +, ...) + +342  + `__w´štf_chk + ( +__USE_FORTIFY_LEVEL + - 1, +__fmt +, + `__va_¬g_·ck + ()); + +343 + } +} + +345 +__ex‹º_®ways_šlše +  + +346 + $fw´štf + ( +__FILE + * +__»¡riù + +__¡»am +, +__cÚ¡ + +wch¬_t + *__»¡riù +__fmt +, ...) + +348  + `__fw´štf_chk + ( +__¡»am +, +__USE_FORTIFY_LEVEL + - 1, +__fmt +, + +349 + `__va_¬g_·ck + ()); + +350 + } +} + +351 #–ià! +defšed + +__ýlu¥lus + + +352  + #w´štf +(...) \ + +353 + `__w´štf_chk + ( +__USE_FORTIFY_LEVEL + - 1, +__VA_ARGS__ +) + + ) + +354  + #fw´štf +( +¡»am +, ...) \ + +355 + `__fw´štf_chk + ( +¡»am +, +__USE_FORTIFY_LEVEL + - 1, +__VA_ARGS__ +) + + ) + +358 +__ex‹º_®ways_šlše +  + +359 + $vw´štf + ( +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fmt +, +__gnuc_va_li¡ + +__­ +) + +361  + `__vw´štf_chk + ( +__USE_FORTIFY_LEVEL + - 1, +__fmt +, +__­ +); + +362 + } +} + +364 +__ex‹º_®ways_šlše +  + +365 + $vfw´štf + ( +__FILE + * +__»¡riù + +__¡»am +, + +366 +__cÚ¡ + +wch¬_t + * +__»¡riù + +__fmt +, +__gnuc_va_li¡ + +__­ +) + +368  + `__vfw´štf_chk + ( +__¡»am +, +__USE_FORTIFY_LEVEL + - 1, +__fmt +, +__­ +); + +369 + } +} + +373 +wch¬_t + * + $__fg‘ws_chk + ( +wch¬_t + * +__»¡riù + +__s +, +size_t + +__size +,  +__n +, + +374 +__FILE + * +__»¡riù + +__¡»am +è +__wur +; + +375 +wch¬_t + * + `__REDIRECT + ( +__fg‘ws_®Ÿs +, + +376 ( +wch¬_t + * +__»¡riù + +__s +,  +__n +, + +377 +__FILE + * +__»¡riù + +__¡»am +), +fg‘ws +è +__wur +; + +378 +wch¬_t + * + `__REDIRECT + ( +__fg‘ws_chk_w¬n +, + +379 ( +wch¬_t + * +__»¡riù + +__s +, +size_t + +__size +,  +__n +, + +380 +__FILE + * +__»¡riù + +__¡»am +), +__fg‘ws_chk +) + +381 +__wur + + `__w¬Ç‰r + ("fgetws called with bigger sizehan†ength " + +384 +__ex‹º_®ways_šlše + +__wur + +wch¬_t + * + +385 + $fg‘ws + ( +wch¬_t + * +__»¡riù + +__s +,  +__n +, +__FILE + *__»¡riù +__¡»am +) + +387 ià( + `__bos + ( +__s +è!ð( +size_t +) -1) + +389 ià(! + `__bužtš_cÚ¡ªt_p + ( +__n +) || __n <= 0) + +390  + `__fg‘ws_chk + ( +__s +, + `__bos + (__sè/  ( +wch¬_t +), + +391 +__n +, +__¡»am +); + +393 ià(( +size_t +è +__n + > + `__bos + ( +__s +è/  ( +wch¬_t +)) + +394  + `__fg‘ws_chk_w¬n + ( +__s +, + `__bos + (__sè/  ( +wch¬_t +), + +395 +__n +, +__¡»am +); + +397  + `__fg‘ws_®Ÿs + ( +__s +, +__n +, +__¡»am +); + +398 + } +} + +400 #ifdeà +__USE_GNU + + +401 +wch¬_t + * + $__fg‘ws_uÆocked_chk + ( +wch¬_t + * +__»¡riù + +__s +, +size_t + +__size +, + +402  +__n +, +__FILE + * +__»¡riù + +__¡»am +) + +403 +__wur +; + +404 +wch¬_t + * + `__REDIRECT + ( +__fg‘ws_uÆocked_®Ÿs +, + +405 ( +wch¬_t + * +__»¡riù + +__s +,  +__n +, + +406 +__FILE + * +__»¡riù + +__¡»am +), +fg‘ws_uÆocked +) + +407 +__wur +; + +408 +wch¬_t + * + `__REDIRECT + ( +__fg‘ws_uÆocked_chk_w¬n +, + +409 ( +wch¬_t + * +__»¡riù + +__s +, +size_t + +__size +,  +__n +, + +410 +__FILE + * +__»¡riù + +__¡»am +), + +411 +__fg‘ws_uÆocked_chk +) + +412 +__wur + + `__w¬Ç‰r + ("fgetws_unlocked called with bigger sizehan†ength " + +415 +__ex‹º_®ways_šlše + +__wur + +wch¬_t + * + +416 + $fg‘ws_uÆocked + ( +wch¬_t + * +__»¡riù + +__s +,  +__n +, +__FILE + *__»¡riù +__¡»am +) + +418 ià( + `__bos + ( +__s +è!ð( +size_t +) -1) + +420 ià(! + `__bužtš_cÚ¡ªt_p + ( +__n +) || __n <= 0) + +421  + `__fg‘ws_uÆocked_chk + ( +__s +, + `__bos + (__sè/  ( +wch¬_t +), + +422 +__n +, +__¡»am +); + +424 ià(( +size_t +è +__n + > + `__bos + ( +__s +è/  ( +wch¬_t +)) + +425  + `__fg‘ws_uÆocked_chk_w¬n + ( +__s +, + `__bos + (__sè/  ( +wch¬_t +), + +426 +__n +, +__¡»am +); + +428  + `__fg‘ws_uÆocked_®Ÿs + ( +__s +, +__n +, +__¡»am +); + +429 + } +} + +433 +size_t + + $__wütomb_chk + (* +__»¡riù + +__s +, +wch¬_t + +__wch¬ +, + +434 +mb¡©e_t + * +__»¡riù + +__p +, + +435 +size_t + +__buæ’ +è +__THROW + +__wur +; + +436 +size_t + + `__REDIRECT_NTH + ( +__wütomb_®Ÿs +, + +437 (* +__»¡riù + +__s +, +wch¬_t + +__wch¬ +, + +438 +mb¡©e_t + * +__»¡riù + +__ps +), +wütomb +è +__wur +; + +440 +__ex‹º_®ways_šlše + +__wur + +size_t + + +441 + `__NTH + ( + $wütomb + (* +__»¡riù + +__s +, +wch¬_t + +__wch¬ +, + +442 +mb¡©e_t + * +__»¡riù + +__ps +)) + +447  + #__WCHAR_MB_LEN_MAX + 16 + + ) + +448 #ià +defšed + +MB_LEN_MAX + && MB_LEN_MAX !ð +__WCHAR_MB_LEN_MAX + + +451 ià( + `__bos + ( +__s +è!ð( +size_t +è-1 && +__WCHAR_MB_LEN_MAX + > __bos (__s)) + +452  + `__wütomb_chk + ( +__s +, +__wch¬ +, +__ps +, + `__bos + (__s)); + +453  + `__wütomb_®Ÿs + ( +__s +, +__wch¬ +, +__ps +); + +454 + } +} + +457 +size_t + + $__mb¤towcs_chk + ( +wch¬_t + * +__»¡riù + +__d¡ +, + +458 +__cÚ¡ + ** +__»¡riù + +__¤c +, + +459 +size_t + +__Ën +, +mb¡©e_t + * +__»¡riù + +__ps +, + +460 +size_t + +__d¡Ën +è +__THROW +; + +461 +size_t + + `__REDIRECT_NTH + ( +__mb¤towcs_®Ÿs +, + +462 ( +wch¬_t + * +__»¡riù + +__d¡ +, + +463 +__cÚ¡ + ** +__»¡riù + +__¤c +, + +464 +size_t + +__Ën +, +mb¡©e_t + * +__»¡riù + +__ps +), + +465 +mb¤towcs +); + +466 +size_t + + `__REDIRECT_NTH + ( +__mb¤towcs_chk_w¬n +, + +467 ( +wch¬_t + * +__»¡riù + +__d¡ +, + +468 +__cÚ¡ + ** +__»¡riù + +__¤c +, + +469 +size_t + +__Ën +, +mb¡©e_t + * +__»¡riù + +__ps +, + +470 +size_t + +__d¡Ën +), +__mb¤towcs_chk +) + +471 + `__w¬Ç‰r + ("mbsrtowcs called with dst buffer smallerhan†en " + +474 +__ex‹º_®ways_šlše + +size_t + + +475 + `__NTH + ( + $mb¤towcs + ( +wch¬_t + * +__»¡riù + +__d¡ +, +__cÚ¡ + **__»¡riù +__¤c +, + +476 +size_t + +__Ën +, +mb¡©e_t + * +__»¡riù + +__ps +)) + +478 ià( + `__bos + ( +__d¡ +è!ð( +size_t +) -1) + +480 ià(! + `__bužtš_cÚ¡ªt_p + ( +__Ën +)) + +481  + `__mb¤towcs_chk + ( +__d¡ +, +__¤c +, +__Ën +, +__ps +, + +482 + `__bos + ( +__d¡ +è/  ( +wch¬_t +)); + +484 ià( +__Ën + > + `__bos + ( +__d¡ +è/  ( +wch¬_t +)) + +485  + `__mb¤towcs_chk_w¬n + ( +__d¡ +, +__¤c +, +__Ën +, +__ps +, + +486 + `__bos + ( +__d¡ +è/  ( +wch¬_t +)); + +488  + `__mb¤towcs_®Ÿs + ( +__d¡ +, +__¤c +, +__Ën +, +__ps +); + +489 + } +} + +492 +size_t + + $__wc¤tombs_chk + (* +__»¡riù + +__d¡ +, + +493 +__cÚ¡ + +wch¬_t + ** +__»¡riù + +__¤c +, + +494 +size_t + +__Ën +, +mb¡©e_t + * +__»¡riù + +__ps +, + +495 +size_t + +__d¡Ën +è +__THROW +; + +496 +size_t + + `__REDIRECT_NTH + ( +__wc¤tombs_®Ÿs +, + +497 (* +__»¡riù + +__d¡ +, + +498 +__cÚ¡ + +wch¬_t + ** +__»¡riù + +__¤c +, + +499 +size_t + +__Ën +, +mb¡©e_t + * +__»¡riù + +__ps +), + +500 +wc¤tombs +); + +501 +size_t + + `__REDIRECT_NTH + ( +__wc¤tombs_chk_w¬n +, + +502 (* +__»¡riù + +__d¡ +, + +503 +__cÚ¡ + +wch¬_t + ** +__»¡riù + +__¤c +, + +504 +size_t + +__Ën +, +mb¡©e_t + * +__»¡riù + +__ps +, + +505 +size_t + +__d¡Ën +), +__wc¤tombs_chk +) + +506 + `__w¬Ç‰r + ("wcsrtombs called with dst buffer smallerhan†en"); + +508 +__ex‹º_®ways_šlše + +size_t + + +509 + `__NTH + ( + $wc¤tombs + (* +__»¡riù + +__d¡ +, +__cÚ¡ + +wch¬_t + **__»¡riù +__¤c +, + +510 +size_t + +__Ën +, +mb¡©e_t + * +__»¡riù + +__ps +)) + +512 ià( + `__bos + ( +__d¡ +è!ð( +size_t +) -1) + +514 ià(! + `__bužtš_cÚ¡ªt_p + ( +__Ën +)) + +515  + `__wc¤tombs_chk + ( +__d¡ +, +__¤c +, +__Ën +, +__ps +, + `__bos + (__dst)); + +517 ià( +__Ën + > + `__bos + ( +__d¡ +)) + +518  + `__wc¤tombs_chk_w¬n + ( +__d¡ +, +__¤c +, +__Ën +, +__ps +, + `__bos + (__dst)); + +520  + `__wc¤tombs_®Ÿs + ( +__d¡ +, +__¤c +, +__Ën +, +__ps +); + +521 + } +} + +524 #ifdeà +__USE_GNU + + +525 +size_t + + $__mb¢¹owcs_chk + ( +wch¬_t + * +__»¡riù + +__d¡ +, + +526 +__cÚ¡ + ** +__»¡riù + +__¤c +, +size_t + +__nmc +, + +527 +size_t + +__Ën +, +mb¡©e_t + * +__»¡riù + +__ps +, + +528 +size_t + +__d¡Ën +è +__THROW +; + +529 +size_t + + `__REDIRECT_NTH + ( +__mb¢¹owcs_®Ÿs +, + +530 ( +wch¬_t + * +__»¡riù + +__d¡ +, + +531 +__cÚ¡ + ** +__»¡riù + +__¤c +, +size_t + +__nmc +, + +532 +size_t + +__Ën +, +mb¡©e_t + * +__»¡riù + +__ps +), + +533 +mb¢¹owcs +); + +534 +size_t + + `__REDIRECT_NTH + ( +__mb¢¹owcs_chk_w¬n +, + +535 ( +wch¬_t + * +__»¡riù + +__d¡ +, + +536 +__cÚ¡ + ** +__»¡riù + +__¤c +, +size_t + +__nmc +, + +537 +size_t + +__Ën +, +mb¡©e_t + * +__»¡riù + +__ps +, + +538 +size_t + +__d¡Ën +), +__mb¢¹owcs_chk +) + +539 + `__w¬Ç‰r + ("mbsnrtowcs called with dst buffer smallerhan†en " + +542 +__ex‹º_®ways_šlše + +size_t + + +543 + `__NTH + ( + $mb¢¹owcs + ( +wch¬_t + * +__»¡riù + +__d¡ +, +__cÚ¡ + **__»¡riù +__¤c +, + +544 +size_t + +__nmc +, size_ˆ +__Ën +, +mb¡©e_t + * +__»¡riù + +__ps +)) + +546 ià( + `__bos + ( +__d¡ +è!ð( +size_t +) -1) + +548 ià(! + `__bužtš_cÚ¡ªt_p + ( +__Ën +)) + +549  + `__mb¢¹owcs_chk + ( +__d¡ +, +__¤c +, +__nmc +, +__Ën +, +__ps +, + +550 + `__bos + ( +__d¡ +è/  ( +wch¬_t +)); + +552 ià( +__Ën + > + `__bos + ( +__d¡ +è/  ( +wch¬_t +)) + +553  + `__mb¢¹owcs_chk_w¬n + ( +__d¡ +, +__¤c +, +__nmc +, +__Ën +, +__ps +, + +554 + `__bos + ( +__d¡ +è/  ( +wch¬_t +)); + +556  + `__mb¢¹owcs_®Ÿs + ( +__d¡ +, +__¤c +, +__nmc +, +__Ën +, +__ps +); + +557 + } +} + +560 +size_t + + $__wc¢¹ombs_chk + (* +__»¡riù + +__d¡ +, + +561 +__cÚ¡ + +wch¬_t + ** +__»¡riù + +__¤c +, + +562 +size_t + +__nwc +, size_ˆ +__Ën +, + +563 +mb¡©e_t + * +__»¡riù + +__ps +, +size_t + +__d¡Ën +) + +564 +__THROW +; + +565 +size_t + + `__REDIRECT_NTH + ( +__wc¢¹ombs_®Ÿs +, + +566 (* +__»¡riù + +__d¡ +, + +567 +__cÚ¡ + +wch¬_t + ** +__»¡riù + +__¤c +, + +568 +size_t + +__nwc +, size_ˆ +__Ën +, + +569 +mb¡©e_t + * +__»¡riù + +__ps +), +wc¢¹ombs +); + +570 +size_t + + `__REDIRECT_NTH + ( +__wc¢¹ombs_chk_w¬n +, + +571 (* +__»¡riù + +__d¡ +, + +572 +__cÚ¡ + +wch¬_t + ** +__»¡riù + +__¤c +, + +573 +size_t + +__nwc +, size_ˆ +__Ën +, + +574 +mb¡©e_t + * +__»¡riù + +__ps +, + +575 +size_t + +__d¡Ën +), +__wc¢¹ombs_chk +) + +576 + `__w¬Ç‰r + ("wcsnrtombs called with dst buffer smallerhan†en"); + +578 +__ex‹º_®ways_šlše + +size_t + + +579 + `__NTH + ( + $wc¢¹ombs + (* +__»¡riù + +__d¡ +, +__cÚ¡ + +wch¬_t + **__»¡riù +__¤c +, + +580 +size_t + +__nwc +, size_ˆ +__Ën +, +mb¡©e_t + * +__»¡riù + +__ps +)) + +582 ià( + `__bos + ( +__d¡ +è!ð( +size_t +) -1) + +584 ià(! + `__bužtš_cÚ¡ªt_p + ( +__Ën +)) + +585  + `__wc¢¹ombs_chk + ( +__d¡ +, +__¤c +, +__nwc +, +__Ën +, +__ps +, + +586 + `__bos + ( +__d¡ +)); + +588 ià( +__Ën + > + `__bos + ( +__d¡ +)) + +589  + `__wc¢¹ombs_chk_w¬n + ( +__d¡ +, +__¤c +, +__nwc +, +__Ën +, +__ps +, + +590 + `__bos + ( +__d¡ +)); + +592  + `__wc¢¹ombs_®Ÿs + ( +__d¡ +, +__¤c +, +__nwc +, +__Ën +, +__ps +); + +593 + } +} + + @/usr/include/pthread.h + +20 #iâdeà +_PTHREAD_H + + +21  + #_PTHREAD_H + 1 + + ) + +23  + ~<ã©u»s.h +> + +24  + ~<’dŸn.h +> + +25  + ~ + +26  + ~ + +28  + ~ + +29  + ~ + +30  + ~ + +36 + mPTHREAD_CREATE_JOINABLE +, + +37  + #PTHREAD_CREATE_JOINABLE + +PTHREAD_CREATE_JOINABLE + + + ) + +38 + mPTHREAD_CREATE_DETACHED + + +39  + #PTHREAD_CREATE_DETACHED + +PTHREAD_CREATE_DETACHED + + + ) + +46 + mPTHREAD_MUTEX_TIMED_NP +, + +47 + mPTHREAD_MUTEX_RECURSIVE_NP +, + +48 + mPTHREAD_MUTEX_ERRORCHECK_NP +, + +49 + mPTHREAD_MUTEX_ADAPTIVE_NP + + +50 #ià +defšed + +__USE_UNIX98 + || defšed +__USE_XOPEN2K8 + + +52 + mPTHREAD_MUTEX_NORMAL + = +PTHREAD_MUTEX_TIMED_NP +, + +53 + mPTHREAD_MUTEX_RECURSIVE + = +PTHREAD_MUTEX_RECURSIVE_NP +, + +54 + mPTHREAD_MUTEX_ERRORCHECK + = +PTHREAD_MUTEX_ERRORCHECK_NP +, + +55 + mPTHREAD_MUTEX_DEFAULT + = +PTHREAD_MUTEX_NORMAL + + +57 #ifdeà +__USE_GNU + + +59 , + mPTHREAD_MUTEX_FAST_NP + = +PTHREAD_MUTEX_TIMED_NP + + +64 #ifdeà +__USE_XOPEN2K + + +68 + mPTHREAD_MUTEX_STALLED +, + +69 + mPTHREAD_MUTEX_STALLED_NP + = +PTHREAD_MUTEX_STALLED +, + +70 + mPTHREAD_MUTEX_ROBUST +, + +71 + mPTHREAD_MUTEX_ROBUST_NP + = +PTHREAD_MUTEX_ROBUST + + +76 #ifdeà +__USE_UNIX98 + + +80 + mPTHREAD_PRIO_NONE +, + +81 + mPTHREAD_PRIO_INHERIT +, + +82 + mPTHREAD_PRIO_PROTECT + + +88 #ià +__WORDSIZE + == 64 + +89  + #PTHREAD_MUTEX_INITIALIZER + \ + +90 { { 0, 0, 0, 0, 0, 0, { 0, 0 } } } + + ) + +91 #ifdeà +__USE_GNU + + +92  + #PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP + \ + +93 { { 0, 0, 0, 0, +PTHREAD_MUTEX_RECURSIVE_NP +, 0, { 0, 0 } } } + + ) + +94  + #PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP + \ + +95 { { 0, 0, 0, 0, +PTHREAD_MUTEX_ERRORCHECK_NP +, 0, { 0, 0 } } } + + ) + +96  + #PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP + \ + +97 { { 0, 0, 0, 0, +PTHREAD_MUTEX_ADAPTIVE_NP +, 0, { 0, 0 } } } + + ) + +100  + #PTHREAD_MUTEX_INITIALIZER + \ + +101 { { 0, 0, 0, 0, 0, { 0 } } } + + ) + +102 #ifdeà +__USE_GNU + + +103  + #PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP + \ + +104 { { 0, 0, 0, +PTHREAD_MUTEX_RECURSIVE_NP +, 0, { 0 } } } + + ) + +105  + #PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP + \ + +106 { { 0, 0, 0, +PTHREAD_MUTEX_ERRORCHECK_NP +, 0, { 0 } } } + + ) + +107  + #PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP + \ + +108 { { 0, 0, 0, +PTHREAD_MUTEX_ADAPTIVE_NP +, 0, { 0 } } } + + ) + +114 #ià +defšed + +__USE_UNIX98 + || defšed +__USE_XOPEN2K + + +117 + mPTHREAD_RWLOCK_PREFER_READER_NP +, + +118 + mPTHREAD_RWLOCK_PREFER_WRITER_NP +, + +119 + mPTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP +, + +120 + mPTHREAD_RWLOCK_DEFAULT_NP + = +PTHREAD_RWLOCK_PREFER_READER_NP + + +124  + #PTHREAD_RWLOCK_INITIALIZER + \ + +125 { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } + + ) + +126 #ifdeà +__USE_GNU + + +127 #ià +__WORDSIZE + == 64 + +128  + #PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP + \ + +130 +PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP + } } + + ) + +132 #ià +__BYTE_ORDER + =ð +__LITTLE_ENDIAN + + +133  + #PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP + \ + +134 { { 0, 0, 0, 0, 0, 0, +PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP +, \ + +135 0, 0, 0, 0 } } + + ) + +137  + #PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP + \ + +138 { { 0, 0, 0, 0, 0, 0, 0, 0, 0, +PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP +,\ + +139 0 } } + + ) + +149 + mPTHREAD_INHERIT_SCHED +, + +150  + #PTHREAD_INHERIT_SCHED + +PTHREAD_INHERIT_SCHED + + + ) + +151 + mPTHREAD_EXPLICIT_SCHED + + +152  + #PTHREAD_EXPLICIT_SCHED + +PTHREAD_EXPLICIT_SCHED + + + ) + +159 + mPTHREAD_SCOPE_SYSTEM +, + +160  + #PTHREAD_SCOPE_SYSTEM + +PTHREAD_SCOPE_SYSTEM + + + ) + +161 + mPTHREAD_SCOPE_PROCESS + + +162  + #PTHREAD_SCOPE_PROCESS + +PTHREAD_SCOPE_PROCESS + + + ) + +169 + mPTHREAD_PROCESS_PRIVATE +, + +170  + #PTHREAD_PROCESS_PRIVATE + +PTHREAD_PROCESS_PRIVATE + + + ) + +171 + mPTHREAD_PROCESS_SHARED + + +172  + #PTHREAD_PROCESS_SHARED + +PTHREAD_PROCESS_SHARED + + + ) + +178  + #PTHREAD_COND_INITIALIZER + { { 0, 0, 0, 0, 0, (*è0, 0, 0 } } + + ) + +182  + s_±h»ad_þ—nup_bufãr + + +184 (* + m__routše +) (*); + +185 * + m__¬g +; + +186  + m__ÿnûÉy³ +; + +187  +_±h»ad_þ—nup_bufãr + * + m__´ev +; + +193 + mPTHREAD_CANCEL_ENABLE +, + +194  + #PTHREAD_CANCEL_ENABLE + +PTHREAD_CANCEL_ENABLE + + + ) + +195 + mPTHREAD_CANCEL_DISABLE + + +196  + #PTHREAD_CANCEL_DISABLE + +PTHREAD_CANCEL_DISABLE + + + ) + +200 + mPTHREAD_CANCEL_DEFERRED +, + +201  + #PTHREAD_CANCEL_DEFERRED + +PTHREAD_CANCEL_DEFERRED + + + ) + +202 + mPTHREAD_CANCEL_ASYNCHRONOUS + + +203  + #PTHREAD_CANCEL_ASYNCHRONOUS + +PTHREAD_CANCEL_ASYNCHRONOUS + + + ) + +205  + #PTHREAD_CANCELED + ((*è-1) + + ) + +209  + #PTHREAD_ONCE_INIT + 0 + + ) + +212 #ifdeà +__USE_XOPEN2K + + +216  + #PTHREAD_BARRIER_SERIAL_THREAD + -1 + + ) + +220 +__BEGIN_DECLS + + +225  +±h»ad_ü—‹ + ( +±h»ad_t + * +__»¡riù + +__Ãwth»ad +, + +226 +__cÚ¡ + +±h»ad_©Œ_t + * +__»¡riù + +__©Œ +, + +227 *(* +__¡¬t_routše +) (*), + +228 * +__»¡riù + +__¬g +è +__THROW + +__nÚnuÎ + ((1, 3)); + +234  + $±h»ad_ex™ + (* +__»tv® +è + `__©Œibu‹__ + (( +__nÜ‘uº__ +)); + +242  + `±h»ad_još + ( +±h»ad_t + +__th +, ** +__th»ad_»tuº +); + +244 #ifdeà +__USE_GNU + + +247  + $±h»ad_Œyjoš_Å + ( +±h»ad_t + +__th +, ** +__th»ad_»tuº +è +__THROW +; + +255  + `±h»ad_timedjoš_Å + ( +±h»ad_t + +__th +, ** +__th»ad_»tuº +, + +256 +__cÚ¡ +  +time¥ec + * +__ab¡ime +); + +263  + $±h»ad_d‘ach + ( +±h»ad_t + +__th +è +__THROW +; + +267 +±h»ad_t + + $±h»ad_£lf + (è +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +270  + $±h»ad_equ® + ( +±h»ad_t + +__th»ad1 +,…th»ad_ˆ +__th»ad2 +è +__THROW +; + +278  + $±h»ad_©Œ_š™ + ( +±h»ad_©Œ_t + * +__©Œ +è +__THROW + + `__nÚnuÎ + ((1)); + +281  + $±h»ad_©Œ_de¡roy + ( +±h»ad_©Œ_t + * +__©Œ +) + +282 +__THROW + + `__nÚnuÎ + ((1)); + +285  + $±h»ad_©Œ_g‘d‘ach¡©e + ( +__cÚ¡ + +±h»ad_©Œ_t + * +__©Œ +, + +286 * +__d‘ach¡©e +) + +287 +__THROW + + `__nÚnuÎ + ((1, 2)); + +290  + $±h»ad_©Œ_£td‘ach¡©e + ( +±h»ad_©Œ_t + * +__©Œ +, + +291  +__d‘ach¡©e +) + +292 +__THROW + + `__nÚnuÎ + ((1)); + +296  + $±h»ad_©Œ_g‘gu¬dsize + ( +__cÚ¡ + +±h»ad_©Œ_t + * +__©Œ +, + +297 +size_t + * +__gu¬dsize +) + +298 +__THROW + + `__nÚnuÎ + ((1, 2)); + +301  + $±h»ad_©Œ_£tgu¬dsize + ( +±h»ad_©Œ_t + * +__©Œ +, + +302 +size_t + +__gu¬dsize +) + +303 +__THROW + + `__nÚnuÎ + ((1)); + +307  + $±h»ad_©Œ_g‘sched·¿m + ( +__cÚ¡ + +±h»ad_©Œ_t + * +__»¡riù + + +308 +__©Œ +, + +309  +sched_·¿m + * +__»¡riù + +__·¿m +) + +310 +__THROW + + `__nÚnuÎ + ((1, 2)); + +313  + $±h»ad_©Œ_£tsched·¿m + ( +±h»ad_©Œ_t + * +__»¡riù + +__©Œ +, + +314 +__cÚ¡ +  +sched_·¿m + * +__»¡riù + + +315 +__·¿m +è +__THROW + + `__nÚnuÎ + ((1, 2)); + +318  + $±h»ad_©Œ_g‘schedpÞicy + ( +__cÚ¡ + +±h»ad_©Œ_t + * +__»¡riù + + +319 +__©Œ +, * +__»¡riù + +__pÞicy +) + +320 +__THROW + + `__nÚnuÎ + ((1, 2)); + +323  + $±h»ad_©Œ_£tschedpÞicy + ( +±h»ad_©Œ_t + * +__©Œ +,  +__pÞicy +) + +324 +__THROW + + `__nÚnuÎ + ((1)); + +327  + $±h»ad_©Œ_g‘šh”™sched + ( +__cÚ¡ + +±h»ad_©Œ_t + * +__»¡riù + + +328 +__©Œ +, * +__»¡riù + +__šh”™ +) + +329 +__THROW + + `__nÚnuÎ + ((1, 2)); + +332  + $±h»ad_©Œ_£tšh”™sched + ( +±h»ad_©Œ_t + * +__©Œ +, + +333  +__šh”™ +) + +334 +__THROW + + `__nÚnuÎ + ((1)); + +338  + $±h»ad_©Œ_g‘scÝe + ( +__cÚ¡ + +±h»ad_©Œ_t + * +__»¡riù + +__©Œ +, + +339 * +__»¡riù + +__scÝe +) + +340 +__THROW + + `__nÚnuÎ + ((1, 2)); + +343  + $±h»ad_©Œ_£tscÝe + ( +±h»ad_©Œ_t + * +__©Œ +,  +__scÝe +) + +344 +__THROW + + `__nÚnuÎ + ((1)); + +347  + $±h»ad_©Œ_g‘¡ackaddr + ( +__cÚ¡ + +±h»ad_©Œ_t + * +__»¡riù + + +348 +__©Œ +, ** +__»¡riù + +__¡ackaddr +) + +349 +__THROW + + `__nÚnuÎ + ((1, 2)è +__©Œibu‹_d•»ÿ‹d__ +; + +355  + $±h»ad_©Œ_£t¡ackaddr + ( +±h»ad_©Œ_t + * +__©Œ +, + +356 * +__¡ackaddr +) + +357 +__THROW + + `__nÚnuÎ + ((1)è +__©Œibu‹_d•»ÿ‹d__ +; + +360  + $±h»ad_©Œ_g‘¡acksize + ( +__cÚ¡ + +±h»ad_©Œ_t + * +__»¡riù + + +361 +__©Œ +, +size_t + * +__»¡riù + +__¡acksize +) + +362 +__THROW + + `__nÚnuÎ + ((1, 2)); + +367  + $±h»ad_©Œ_£t¡acksize + ( +±h»ad_©Œ_t + * +__©Œ +, + +368 +size_t + +__¡acksize +) + +369 +__THROW + + `__nÚnuÎ + ((1)); + +371 #ifdeà +__USE_XOPEN2K + + +373  + $±h»ad_©Œ_g‘¡ack + ( +__cÚ¡ + +±h»ad_©Œ_t + * +__»¡riù + +__©Œ +, + +374 ** +__»¡riù + +__¡ackaddr +, + +375 +size_t + * +__»¡riù + +__¡acksize +) + +376 +__THROW + + `__nÚnuÎ + ((1, 2, 3)); + +381  + $±h»ad_©Œ_£t¡ack + ( +±h»ad_©Œ_t + * +__©Œ +, * +__¡ackaddr +, + +382 +size_t + +__¡acksize +è +__THROW + + `__nÚnuÎ + ((1)); + +385 #ifdeà +__USE_GNU + + +388  + $±h»ad_©Œ_£ffš™y_Å + ( +±h»ad_©Œ_t + * +__©Œ +, + +389 +size_t + +__ýu£tsize +, + +390 +__cÚ¡ + +ýu_£t_t + * +__ýu£t +) + +391 +__THROW + + `__nÚnuÎ + ((1, 3)); + +395  + $±h»ad_©Œ_g‘affš™y_Å + ( +__cÚ¡ + +±h»ad_©Œ_t + * +__©Œ +, + +396 +size_t + +__ýu£tsize +, + +397 +ýu_£t_t + * +__ýu£t +) + +398 +__THROW + + `__nÚnuÎ + ((1, 3)); + +404  + $±h»ad_g‘©Œ_Å + ( +±h»ad_t + +__th +, +±h»ad_©Œ_t + * +__©Œ +) + +405 +__THROW + + `__nÚnuÎ + ((2)); + +413  + $±h»ad_£tsched·¿m + ( +±h»ad_t + +__rg‘_th»ad +,  +__pÞicy +, + +414 +__cÚ¡ +  +sched_·¿m + * +__·¿m +) + +415 +__THROW + + `__nÚnuÎ + ((3)); + +418  + $±h»ad_g‘sched·¿m + ( +±h»ad_t + +__rg‘_th»ad +, + +419 * +__»¡riù + +__pÞicy +, + +420  +sched_·¿m + * +__»¡riù + +__·¿m +) + +421 +__THROW + + `__nÚnuÎ + ((2, 3)); + +424  + $±h»ad_£tsched´io + ( +±h»ad_t + +__rg‘_th»ad +,  +__´io +) + +425 +__THROW +; + +428 #ifdeà +__USE_GNU + + +430  + $±h»ad_g‘Çme_Å + ( +±h»ad_t + +__rg‘_th»ad +, * +__buf +, + +431 +size_t + +__buæ’ +) + +432 +__THROW + + `__nÚnuÎ + ((2)); + +435  + $±h»ad_£Šame_Å + ( +±h»ad_t + +__rg‘_th»ad +, +__cÚ¡ + * +__Çme +) + +436 +__THROW + + `__nÚnuÎ + ((2)); + +440 #ifdeà +__USE_UNIX98 + + +442  + $±h»ad_g‘cÚcu¼’cy + (è +__THROW +; + +445  + $±h»ad_£tcÚcu¼’cy + ( +__Ëv– +è +__THROW +; + +448 #ifdeà +__USE_GNU + + +453  + $±h»ad_y›ld + (è +__THROW +; + +458  + $±h»ad_£ffš™y_Å + ( +±h»ad_t + +__th +, +size_t + +__ýu£tsize +, + +459 +__cÚ¡ + +ýu_£t_t + * +__ýu£t +) + +460 +__THROW + + `__nÚnuÎ + ((3)); + +463  + $±h»ad_g‘affš™y_Å + ( +±h»ad_t + +__th +, +size_t + +__ýu£tsize +, + +464 +ýu_£t_t + * +__ýu£t +) + +465 +__THROW + + `__nÚnuÎ + ((3)); + +478  + `±h»ad_Úû + ( +±h»ad_Úû_t + * +__Úû_cÚŒÞ +, + +479 (* +__š™_routše +è()è + `__nÚnuÎ + ((1, 2)); + +490  + `±h»ad_£tÿnûl¡©e + ( +__¡©e +, * +__Þd¡©e +); + +494  + `±h»ad_£tÿnûÉy³ + ( +__ty³ +, * +__Þdty³ +); + +497  + `±h»ad_ÿnûl + ( +±h»ad_t + +__th +); + +502  + `±h»ad_‹¡ÿnûl + (); + +511 +__jmp_buf + +__ÿnûl_jmp_buf +; + +512  +__mask_was_§ved +; + +513 } +__ÿnûl_jmp_buf +[1]; + +514 * +__·d +[4]; + +515 } + t__±h»ad_unwšd_buf_t + + t__©Œibu‹__ + (( + t__®igÃd__ +)); + +518 #iâdeà +__þ—nup_fù_©Œibu‹ + + +519  + #__þ—nup_fù_©Œibu‹ + + + ) + +524  + s__±h»ad_þ—nup_äame + + +526 (* +__ÿnûl_routše +) (*); + +527 * +__ÿnûl_¬g +; + +528  +__do_™ +; + +529  +__ÿnûl_ty³ +; + +532 #ià +defšed + +__GNUC__ + && defšed +__EXCEPTIONS + + +533 #ifdeà +__ýlu¥lus + + +535 þas  + c__±h»ad_þ—nup_þass + + +537 (* +__ÿnûl_routše +) (*); + +538 * +__ÿnûl_¬g +; + +539  +__do_™ +; + +540  +__ÿnûl_ty³ +; + +542 +public +: + +543 + `__±h»ad_þ—nup_þass + ((* +__fù +è(*), * +__¬g +) + +544 : + `__ÿnûl_routše + ( +__fù +), + `__ÿnûl_¬g + ( +__¬g +), + $__do_™ + (1) { } + +545 ~ + $__±h»ad_þ—nup_þass + (è{ ià( +__do_™ +è + `__ÿnûl_routše + ( +__ÿnûl_¬g +); + } +} + +546  + $__£tdo™ + ( +__Ãwv® +è{ +__do_™ + = __Ãwv®; + } +} + +547  + $__deãr + (è{ + `±h»ad_£tÿnûÉy³ + ( +PTHREAD_CANCEL_DEFERRED +, + +548 & +__ÿnûl_ty³ +); + } +} + +549  + $__»¡Üe + (ècÚ¡ { + `±h»ad_£tÿnûÉy³ + ( +__ÿnûl_ty³ +, 0); + } +} + +559  + #±h»ad_þ—nup_push +( +routše +, +¬g +) \ + +561 +__±h»ad_þ—nup_þass + + `__þäame + ( +routše +, +¬g +) + + ) + +565  + #±h»ad_þ—nup_pÝ +( +execu‹ +) \ + +566 +__þäame +. + `__£tdo™ + ( +execu‹ +); \ + +567 } 0) + + ) + +569 #ifdeà +__USE_GNU + + +573  + #±h»ad_þ—nup_push_deãr_Å +( +routše +, +¬g +) \ + +575 +__±h»ad_þ—nup_þass + + `__þäame + ( +routše +, +¬g +); \ + +576 +__þäame +. + `__deãr + () + + ) + +581  + #±h»ad_þ—nup_pÝ_»¡Üe_Å +( +execu‹ +) \ + +582 +__þäame +. + `__»¡Üe + (); \ + +583 +__þäame +. + `__£tdo™ + ( +execu‹ +); \ + +584 } 0) + + ) + +591 +__ex‹º_šlše +  + +592 + $__±h»ad_þ—nup_routše + ( +__±h»ad_þ—nup_äame + * +__äame +) + +594 ià( +__äame +-> +__do_™ +) + +595 +__äame +-> + `__ÿnûl_routše + (__äame-> +__ÿnûl_¬g +); + +596 + } +} + +605  + #±h»ad_þ—nup_push +( +routše +, +¬g +) \ + +607  +__±h»ad_þ—nup_äame + +__þäame + \ + +608 + `__©Œibu‹__ + (( + `__þ—nup__ + ( +__±h»ad_þ—nup_routše +))) \ + +609 ð{ . +__ÿnûl_routše + = ( +routše +), . +__ÿnûl_¬g + = ( +¬g +), \ + +610 . +__do_™ + = 1 }; + + ) + +614  + #±h»ad_þ—nup_pÝ +( +execu‹ +) \ + +615 +__þäame +. +__do_™ + = ( +execu‹ +); \ + +616 } 0) + + ) + +618 #ifdeà +__USE_GNU + + +622  + #±h»ad_þ—nup_push_deãr_Å +( +routše +, +¬g +) \ + +624  +__±h»ad_þ—nup_äame + +__þäame + \ + +625 + `__©Œibu‹__ + (( + `__þ—nup__ + ( +__±h»ad_þ—nup_routše +))) \ + +626 ð{ . +__ÿnûl_routše + = ( +routše +), . +__ÿnûl_¬g + = ( +¬g +), \ + +627 . +__do_™ + = 1 }; \ + +628 (è + `±h»ad_£tÿnûÉy³ + ( +PTHREAD_CANCEL_DEFERRED +, \ + +629 & +__þäame +. +__ÿnûl_ty³ +) + + ) + +634  + #±h»ad_þ—nup_pÝ_»¡Üe_Å +( +execu‹ +) \ + +635 (è + `±h»ad_£tÿnûÉy³ + ( +__þäame +. +__ÿnûl_ty³ +, +NULL +); \ + +636 +__þäame +. +__do_™ + = ( +execu‹ +); \ + +637 } 0) + + ) + +648  + #±h»ad_þ—nup_push +( +routše +, +¬g +) \ + +650 +__±h»ad_unwšd_buf_t + +__ÿnûl_buf +; \ + +651 (* +__ÿnûl_routše +è(*èð( +routše +); \ + +652 * +__ÿnûl_¬g + = ( +¬g +); \ + +653  +__nÙ_fœ¡_ÿÎ + = + `__sig£tjmp + (( +__jmp_buf_g + *) (*) \ + +654 +__ÿnûl_buf +. +__ÿnûl_jmp_buf +, 0); \ + +655 ià( + `__bužtš_ex³ù + ( +__nÙ_fœ¡_ÿÎ +, 0)) \ + +657 + `__ÿnûl_routše + ( +__ÿnûl_¬g +); \ + +658 + `__±h»ad_unwšd_Ãxt + (& +__ÿnûl_buf +); \ + +662 + `__±h»ad_»gi¡”_ÿnûl + (& +__ÿnûl_buf +); \ + +663 dØ{ + + ) + +664  +__±h»ad_»gi¡”_ÿnûl + ( +__±h»ad_unwšd_buf_t + * +__buf +) + +665 +__þ—nup_fù_©Œibu‹ +; + +669  + #±h»ad_þ—nup_pÝ +( +execu‹ +) \ + +672 + `__±h»ad_uÄegi¡”_ÿnûl + (& +__ÿnûl_buf +); \ + +673 ià( +execu‹ +) \ + +674 + `__ÿnûl_routše + ( +__ÿnûl_¬g +); \ + +675 } 0) + + ) + +676  + $__±h»ad_uÄegi¡”_ÿnûl + ( +__±h»ad_unwšd_buf_t + * +__buf +) + +677 +__þ—nup_fù_©Œibu‹ +; + +679 #ifdeà +__USE_GNU + + +683  + #±h»ad_þ—nup_push_deãr_Å +( +routše +, +¬g +) \ + +685 +__±h»ad_unwšd_buf_t + +__ÿnûl_buf +; \ + +686 (* +__ÿnûl_routše +è(*èð( +routše +); \ + +687 * +__ÿnûl_¬g + = ( +¬g +); \ + +688  +__nÙ_fœ¡_ÿÎ + = + `__sig£tjmp + (( +__jmp_buf_g + *) (*) \ + +689 +__ÿnûl_buf +. +__ÿnûl_jmp_buf +, 0); \ + +690 ià( + `__bužtš_ex³ù + ( +__nÙ_fœ¡_ÿÎ +, 0)) \ + +692 + `__ÿnûl_routše + ( +__ÿnûl_¬g +); \ + +693 + `__±h»ad_unwšd_Ãxt + (& +__ÿnûl_buf +); \ + +697 + `__±h»ad_»gi¡”_ÿnûl_deãr + (& +__ÿnûl_buf +); \ + +698 dØ{ + + ) + +699  + `__±h»ad_»gi¡”_ÿnûl_deãr + ( +__±h»ad_unwšd_buf_t + * +__buf +) + +700 +__þ—nup_fù_©Œibu‹ +; + +705  + #±h»ad_þ—nup_pÝ_»¡Üe_Å +( +execu‹ +) \ + +708 + `__±h»ad_uÄegi¡”_ÿnûl_»¡Üe + (& +__ÿnûl_buf +); \ + +709 ià( +execu‹ +) \ + +710 + `__ÿnûl_routše + ( +__ÿnûl_¬g +); \ + +711 + } +} 0) + + ) + +712  + $__±h»ad_uÄegi¡”_ÿnûl_»¡Üe + ( +__±h»ad_unwšd_buf_t + * +__buf +) + +713 +__þ—nup_fù_©Œibu‹ +; + +717  + $__±h»ad_unwšd_Ãxt + ( +__±h»ad_unwšd_buf_t + * +__buf +) + +718 +__þ—nup_fù_©Œibu‹ + + `__©Œibu‹__ + (( +__nÜ‘uº__ +)) + +719 #iâdeà +SHARED + + +720 + `__©Œibu‹__ + (( +__w—k__ +)) + +726  +__jmp_buf_g +; + +727  + $__sig£tjmp + ( +__jmp_buf_g + * +__’v +,  +__§vemask +è +__THROW +; + +733  + $±h»ad_mu‹x_š™ + ( +±h»ad_mu‹x_t + * +__mu‹x +, + +734 +__cÚ¡ + +±h»ad_mu‹x©Œ_t + * +__mu‹x©Œ +) + +735 +__THROW + + `__nÚnuÎ + ((1)); + +738  + $±h»ad_mu‹x_de¡roy + ( +±h»ad_mu‹x_t + * +__mu‹x +) + +739 +__THROW + + `__nÚnuÎ + ((1)); + +742  + $±h»ad_mu‹x_Œylock + ( +±h»ad_mu‹x_t + * +__mu‹x +) + +743 +__THROW + + `__nÚnuÎ + ((1)); + +746  + $±h»ad_mu‹x_lock + ( +±h»ad_mu‹x_t + * +__mu‹x +) + +747 +__THROW + + `__nÚnuÎ + ((1)); + +749 #ifdeà +__USE_XOPEN2K + + +751  + $±h»ad_mu‹x_timedlock + ( +±h»ad_mu‹x_t + * +__»¡riù + +__mu‹x +, + +752 +__cÚ¡ +  +time¥ec + * +__»¡riù + + +753 +__ab¡ime +è +__THROW + + `__nÚnuÎ + ((1, 2)); + +757  + $±h»ad_mu‹x_uÆock + ( +±h»ad_mu‹x_t + * +__mu‹x +) + +758 +__THROW + + `__nÚnuÎ + ((1)); + +762  + $±h»ad_mu‹x_g‘´ioûžšg + ( +__cÚ¡ + +±h»ad_mu‹x_t + * + +763 +__»¡riù + +__mu‹x +, + +764 * +__»¡riù + +__´ioûžšg +) + +765 +__THROW + + `__nÚnuÎ + ((1, 2)); + +769  + $±h»ad_mu‹x_£rioûžšg + ( +±h»ad_mu‹x_t + * +__»¡riù + +__mu‹x +, + +770  +__´ioûžšg +, + +771 * +__»¡riù + +__Þd_ûžšg +) + +772 +__THROW + + `__nÚnuÎ + ((1, 3)); + +775 #ifdeà +__USE_XOPEN2K8 + + +777  + $±h»ad_mu‹x_cÚsi¡’t + ( +±h»ad_mu‹x_t + * +__mu‹x +) + +778 +__THROW + + `__nÚnuÎ + ((1)); + +779 #ifdeà +__USE_GNU + + +780  + $±h»ad_mu‹x_cÚsi¡’t_Å + ( +±h»ad_mu‹x_t + * +__mu‹x +) + +781 +__THROW + + `__nÚnuÎ + ((1)); + +790  + $±h»ad_mu‹x©Œ_š™ + ( +±h»ad_mu‹x©Œ_t + * +__©Œ +) + +791 +__THROW + + `__nÚnuÎ + ((1)); + +794  + $±h»ad_mu‹x©Œ_de¡roy + ( +±h»ad_mu‹x©Œ_t + * +__©Œ +) + +795 +__THROW + + `__nÚnuÎ + ((1)); + +798  + $±h»ad_mu‹x©Œ_g‘psh¬ed + ( +__cÚ¡ + +±h»ad_mu‹x©Œ_t + * + +799 +__»¡riù + +__©Œ +, + +800 * +__»¡riù + +__psh¬ed +) + +801 +__THROW + + `__nÚnuÎ + ((1, 2)); + +804  + $±h»ad_mu‹x©Œ_£sh¬ed + ( +±h»ad_mu‹x©Œ_t + * +__©Œ +, + +805  +__psh¬ed +) + +806 +__THROW + + `__nÚnuÎ + ((1)); + +808 #ià +defšed + +__USE_UNIX98 + || defšed +__USE_XOPEN2K8 + + +810  + $±h»ad_mu‹x©Œ_g‘ty³ + ( +__cÚ¡ + +±h»ad_mu‹x©Œ_t + * +__»¡riù + + +811 +__©Œ +, * +__»¡riù + +__kšd +) + +812 +__THROW + + `__nÚnuÎ + ((1, 2)); + +817  + $±h»ad_mu‹x©Œ_£‰y³ + ( +±h»ad_mu‹x©Œ_t + * +__©Œ +,  +__kšd +) + +818 +__THROW + + `__nÚnuÎ + ((1)); + +822  + $±h»ad_mu‹x©Œ_g‘´ÙocÞ + ( +__cÚ¡ + +±h»ad_mu‹x©Œ_t + * + +823 +__»¡riù + +__©Œ +, + +824 * +__»¡riù + +__´ÙocÞ +) + +825 +__THROW + + `__nÚnuÎ + ((1, 2)); + +829  + $±h»ad_mu‹x©Œ_£rÙocÞ + ( +±h»ad_mu‹x©Œ_t + * +__©Œ +, + +830  +__´ÙocÞ +) + +831 +__THROW + + `__nÚnuÎ + ((1)); + +834  + $±h»ad_mu‹x©Œ_g‘´ioûžšg + ( +__cÚ¡ + +±h»ad_mu‹x©Œ_t + * + +835 +__»¡riù + +__©Œ +, + +836 * +__»¡riù + +__´ioûžšg +) + +837 +__THROW + + `__nÚnuÎ + ((1, 2)); + +840  + $±h»ad_mu‹x©Œ_£rioûžšg + ( +±h»ad_mu‹x©Œ_t + * +__©Œ +, + +841  +__´ioûžšg +) + +842 +__THROW + + `__nÚnuÎ + ((1)); + +844 #ifdeà +__USE_XOPEN2K + + +846  + $±h»ad_mu‹x©Œ_g‘robu¡ + ( +__cÚ¡ + +±h»ad_mu‹x©Œ_t + * +__©Œ +, + +847 * +__robu¡Ãss +) + +848 +__THROW + + `__nÚnuÎ + ((1, 2)); + +849 #ifdeà +__USE_GNU + + +850  + $±h»ad_mu‹x©Œ_g‘robu¡_Å + ( +__cÚ¡ + +±h»ad_mu‹x©Œ_t + * +__©Œ +, + +851 * +__robu¡Ãss +) + +852 +__THROW + + `__nÚnuÎ + ((1, 2)); + +856  + $±h»ad_mu‹x©Œ_£Œobu¡ + ( +±h»ad_mu‹x©Œ_t + * +__©Œ +, + +857  +__robu¡Ãss +) + +858 +__THROW + + `__nÚnuÎ + ((1)); + +859 #ifdeà +__USE_GNU + + +860  + $±h»ad_mu‹x©Œ_£Œobu¡_Å + ( +±h»ad_mu‹x©Œ_t + * +__©Œ +, + +861  +__robu¡Ãss +) + +862 +__THROW + + `__nÚnuÎ + ((1)); + +867 #ià +defšed + +__USE_UNIX98 + || defšed +__USE_XOPEN2K + + +872  + $±h»ad_rwlock_š™ + ( +±h»ad_rwlock_t + * +__»¡riù + +__rwlock +, + +873 +__cÚ¡ + +±h»ad_rwlock©Œ_t + * +__»¡riù + + +874 +__©Œ +è +__THROW + + `__nÚnuÎ + ((1)); + +877  + $±h»ad_rwlock_de¡roy + ( +±h»ad_rwlock_t + * +__rwlock +) + +878 +__THROW + + `__nÚnuÎ + ((1)); + +881  + $±h»ad_rwlock_rdlock + ( +±h»ad_rwlock_t + * +__rwlock +) + +882 +__THROW + + `__nÚnuÎ + ((1)); + +885  + $±h»ad_rwlock_Œyrdlock + ( +±h»ad_rwlock_t + * +__rwlock +) + +886 +__THROW + + `__nÚnuÎ + ((1)); + +888 #ifdeà +__USE_XOPEN2K + + +890  + $±h»ad_rwlock_timedrdlock + ( +±h»ad_rwlock_t + * +__»¡riù + +__rwlock +, + +891 +__cÚ¡ +  +time¥ec + * +__»¡riù + + +892 +__ab¡ime +è +__THROW + + `__nÚnuÎ + ((1, 2)); + +896  + $±h»ad_rwlock_w¾ock + ( +±h»ad_rwlock_t + * +__rwlock +) + +897 +__THROW + + `__nÚnuÎ + ((1)); + +900  + $±h»ad_rwlock_Œyw¾ock + ( +±h»ad_rwlock_t + * +__rwlock +) + +901 +__THROW + + `__nÚnuÎ + ((1)); + +903 #ifdeà +__USE_XOPEN2K + + +905  + $±h»ad_rwlock_timedw¾ock + ( +±h»ad_rwlock_t + * +__»¡riù + +__rwlock +, + +906 +__cÚ¡ +  +time¥ec + * +__»¡riù + + +907 +__ab¡ime +è +__THROW + + `__nÚnuÎ + ((1, 2)); + +911  + $±h»ad_rwlock_uÆock + ( +±h»ad_rwlock_t + * +__rwlock +) + +912 +__THROW + + `__nÚnuÎ + ((1)); + +918  + $±h»ad_rwlock©Œ_š™ + ( +±h»ad_rwlock©Œ_t + * +__©Œ +) + +919 +__THROW + + `__nÚnuÎ + ((1)); + +922  + $±h»ad_rwlock©Œ_de¡roy + ( +±h»ad_rwlock©Œ_t + * +__©Œ +) + +923 +__THROW + + `__nÚnuÎ + ((1)); + +926  + $±h»ad_rwlock©Œ_g‘psh¬ed + ( +__cÚ¡ + +±h»ad_rwlock©Œ_t + * + +927 +__»¡riù + +__©Œ +, + +928 * +__»¡riù + +__psh¬ed +) + +929 +__THROW + + `__nÚnuÎ + ((1, 2)); + +932  + $±h»ad_rwlock©Œ_£sh¬ed + ( +±h»ad_rwlock©Œ_t + * +__©Œ +, + +933  +__psh¬ed +) + +934 +__THROW + + `__nÚnuÎ + ((1)); + +937  + $±h»ad_rwlock©Œ_g‘kšd_Å + ( +__cÚ¡ + +±h»ad_rwlock©Œ_t + * + +938 +__»¡riù + +__©Œ +, + +939 * +__»¡riù + +__´ef +) + +940 +__THROW + + `__nÚnuÎ + ((1, 2)); + +943  + $±h»ad_rwlock©Œ_£tkšd_Å + ( +±h»ad_rwlock©Œ_t + * +__©Œ +, + +944  +__´ef +è +__THROW + + `__nÚnuÎ + ((1)); + +952  + $±h»ad_cÚd_š™ + ( +±h»ad_cÚd_t + * +__»¡riù + +__cÚd +, + +953 +__cÚ¡ + +±h»ad_cÚd©Œ_t + * +__»¡riù + + +954 +__cÚd_©Œ +è +__THROW + + `__nÚnuÎ + ((1)); + +957  + $±h»ad_cÚd_de¡roy + ( +±h»ad_cÚd_t + * +__cÚd +) + +958 +__THROW + + `__nÚnuÎ + ((1)); + +961  + $±h»ad_cÚd_sigÇl + ( +±h»ad_cÚd_t + * +__cÚd +) + +962 +__THROW + + `__nÚnuÎ + ((1)); + +965  + $±h»ad_cÚd_brßdÿ¡ + ( +±h»ad_cÚd_t + * +__cÚd +) + +966 +__THROW + + `__nÚnuÎ + ((1)); + +973  + $±h»ad_cÚd_wa™ + ( +±h»ad_cÚd_t + * +__»¡riù + +__cÚd +, + +974 +±h»ad_mu‹x_t + * +__»¡riù + +__mu‹x +) + +975 + `__nÚnuÎ + ((1, 2)); + +984  + $±h»ad_cÚd_timedwa™ + ( +±h»ad_cÚd_t + * +__»¡riù + +__cÚd +, + +985 +±h»ad_mu‹x_t + * +__»¡riù + +__mu‹x +, + +986 +__cÚ¡ +  +time¥ec + * +__»¡riù + + +987 +__ab¡ime +è + `__nÚnuÎ + ((1, 2, 3)); + +992  + $±h»ad_cÚd©Œ_š™ + ( +±h»ad_cÚd©Œ_t + * +__©Œ +) + +993 +__THROW + + `__nÚnuÎ + ((1)); + +996  + $±h»ad_cÚd©Œ_de¡roy + ( +±h»ad_cÚd©Œ_t + * +__©Œ +) + +997 +__THROW + + `__nÚnuÎ + ((1)); + +1000  + $±h»ad_cÚd©Œ_g‘psh¬ed + ( +__cÚ¡ + +±h»ad_cÚd©Œ_t + * + +1001 +__»¡riù + +__©Œ +, + +1002 * +__»¡riù + +__psh¬ed +) + +1003 +__THROW + + `__nÚnuÎ + ((1, 2)); + +1006  + $±h»ad_cÚd©Œ_£sh¬ed + ( +±h»ad_cÚd©Œ_t + * +__©Œ +, + +1007  +__psh¬ed +è +__THROW + + `__nÚnuÎ + ((1)); + +1009 #ifdeà +__USE_XOPEN2K + + +1011  + $±h»ad_cÚd©Œ_g‘þock + ( +__cÚ¡ + +±h»ad_cÚd©Œ_t + * + +1012 +__»¡riù + +__©Œ +, + +1013 +__þockid_t + * +__»¡riù + +__þock_id +) + +1014 +__THROW + + `__nÚnuÎ + ((1, 2)); + +1017  + $±h»ad_cÚd©Œ_£tþock + ( +±h»ad_cÚd©Œ_t + * +__©Œ +, + +1018 +__þockid_t + +__þock_id +) + +1019 +__THROW + + `__nÚnuÎ + ((1)); + +1023 #ifdeà +__USE_XOPEN2K + + +1028  + $±h»ad_¥š_š™ + ( +±h»ad_¥šlock_t + * +__lock +,  +__psh¬ed +) + +1029 +__THROW + + `__nÚnuÎ + ((1)); + +1032  + $±h»ad_¥š_de¡roy + ( +±h»ad_¥šlock_t + * +__lock +) + +1033 +__THROW + + `__nÚnuÎ + ((1)); + +1036  + $±h»ad_¥š_lock + ( +±h»ad_¥šlock_t + * +__lock +) + +1037 +__THROW + + `__nÚnuÎ + ((1)); + +1040  + $±h»ad_¥š_Œylock + ( +±h»ad_¥šlock_t + * +__lock +) + +1041 +__THROW + + `__nÚnuÎ + ((1)); + +1044  + $±h»ad_¥š_uÆock + ( +±h»ad_¥šlock_t + * +__lock +) + +1045 +__THROW + + `__nÚnuÎ + ((1)); + +1052  + $±h»ad_b¬r›r_š™ + ( +±h»ad_b¬r›r_t + * +__»¡riù + +__b¬r›r +, + +1053 +__cÚ¡ + +±h»ad_b¬r›¿‰r_t + * +__»¡riù + + +1054 +__©Œ +,  +__couÁ +) + +1055 +__THROW + + `__nÚnuÎ + ((1)); + +1058  + $±h»ad_b¬r›r_de¡roy + ( +±h»ad_b¬r›r_t + * +__b¬r›r +) + +1059 +__THROW + + `__nÚnuÎ + ((1)); + +1062  + $±h»ad_b¬r›r_wa™ + ( +±h»ad_b¬r›r_t + * +__b¬r›r +) + +1063 +__THROW + + `__nÚnuÎ + ((1)); + +1067  + $±h»ad_b¬r›¿‰r_š™ + ( +±h»ad_b¬r›¿‰r_t + * +__©Œ +) + +1068 +__THROW + + `__nÚnuÎ + ((1)); + +1071  + $±h»ad_b¬r›¿‰r_de¡roy + ( +±h»ad_b¬r›¿‰r_t + * +__©Œ +) + +1072 +__THROW + + `__nÚnuÎ + ((1)); + +1075  + $±h»ad_b¬r›¿‰r_g‘psh¬ed + ( +__cÚ¡ + +±h»ad_b¬r›¿‰r_t + * + +1076 +__»¡riù + +__©Œ +, + +1077 * +__»¡riù + +__psh¬ed +) + +1078 +__THROW + + `__nÚnuÎ + ((1, 2)); + +1081  + $±h»ad_b¬r›¿‰r_£sh¬ed + ( +±h»ad_b¬r›¿‰r_t + * +__©Œ +, + +1082  +__psh¬ed +) + +1083 +__THROW + + `__nÚnuÎ + ((1)); + +1095  + `±h»ad_key_ü—‹ + ( +±h»ad_key_t + * +__key +, + +1096 (* +__de¡r_funùiÚ +) (*)) + +1097 +__THROW + + `__nÚnuÎ + ((1)); + +1100  + $±h»ad_key_d–‘e + ( +±h»ad_key_t + +__key +è +__THROW +; + +1103 * + $±h»ad_g‘¥ecific + ( +±h»ad_key_t + +__key +è +__THROW +; + +1106  + $±h»ad_£t¥ecific + ( +±h»ad_key_t + +__key +, + +1107 +__cÚ¡ + * +__poš‹r +è +__THROW + ; + +1110 #ifdeà +__USE_XOPEN2K + + +1112  + $±h»ad_g‘ýuþockid + ( +±h»ad_t + +__th»ad_id +, + +1113 +__þockid_t + * +__þock_id +) + +1114 +__THROW + + `__nÚnuÎ + ((2)); + +1129  + `±h»ad_©fÜk + ((* +__´•¬e +) (), + +1130 (* +__·»Á +) (), + +1131 (* +__chžd +è()è +__THROW +; + +1134 #ifdeà +__USE_EXTERN_INLINES + + +1136 +__ex‹º_šlše +  + +1137 + `__NTH + ( + $±h»ad_equ® + ( +±h»ad_t + +__th»ad1 +,…th»ad_ˆ +__th»ad2 +)) + +1139  +__th»ad1 + =ð +__th»ad2 +; + +1140 + } +} + +1143 + g__END_DECLS + + + @/usr/include/wctype.h + +24 #iâdeà +_WCTYPE_H + + +26  + ~<ã©u»s.h +> + +27  + ~ + +29 #iâdeà +__Ãed_iswxxx + + +30  + #_WCTYPE_H + 1 + + ) + +33  + #__Ãed_wšt_t + + + ) + +34  + ~ + +38 #iâdeà +WEOF + + +39  + #WEOF + (0xffffffffu) + + ) + +42 #undeà +__Ãed_iswxxx + + +47 #iâdeà +__iswxxx_defšed + + +48  + #__iswxxx_defšed + 1 + + ) + +50 +__BEGIN_NAMESPACE_C99 + + +53  + twùy³_t +; + +54 + g__END_NAMESPACE_C99 + + +56 #iâdeà +_ISwb™ + + +61  + ~<’dŸn.h +> + +62 #ià +__BYTE_ORDER + =ð +__BIG_ENDIAN + + +63  + #_ISwb™ +( +b™ +è(1 << (b™)) + + ) + +65  + #_ISwb™ +( +b™ +) \ + +66 (( +b™ +) < 8 ? () ((1UL << (bit)) << 24) \ + +67 : (( +b™ +) < 16 ? () ((1UL << (bit)) << 8) \ + +68 : (( +b™ +) < 24 ? () ((1UL << (bit)) >> 8) \ + +69 : (è((1UL << ( +b™ +)è>> 24)))) + + ) + +74 + m__ISwuµ” + = 0, + +75 + m__ISwlow” + = 1, + +76 + m__ISw®pha + = 2, + +77 + m__ISwdig™ + = 3, + +78 + m__ISwxdig™ + = 4, + +79 + m__ISw¥aû + = 5, + +80 + m__ISw´št + = 6, + +81 + m__ISwg¿ph + = 7, + +82 + m__ISwbÏnk + = 8, + +83 + m__ISwúŒl + = 9, + +84 + m__ISwpunù + = 10, + +85 + m__ISw®num + = 11, + +87 + m_ISwuµ” + = +_ISwb™ + ( +__ISwuµ” +), + +88 + m_ISwlow” + = +_ISwb™ + ( +__ISwlow” +), + +89 + m_ISw®pha + = +_ISwb™ + ( +__ISw®pha +), + +90 + m_ISwdig™ + = +_ISwb™ + ( +__ISwdig™ +), + +91 + m_ISwxdig™ + = +_ISwb™ + ( +__ISwxdig™ +), + +92 + m_ISw¥aû + = +_ISwb™ + ( +__ISw¥aû +), + +93 + m_ISw´št + = +_ISwb™ + ( +__ISw´št +), + +94 + m_ISwg¿ph + = +_ISwb™ + ( +__ISwg¿ph +), + +95 + m_ISwbÏnk + = +_ISwb™ + ( +__ISwbÏnk +), + +96 + m_ISwúŒl + = +_ISwb™ + ( +__ISwúŒl +), + +97 + m_ISwpunù + = +_ISwb™ + ( +__ISwpunù +), + +98 + m_ISw®num + = +_ISwb™ + ( +__ISw®num +) + +103 +__BEGIN_DECLS + + +105 +__BEGIN_NAMESPACE_C99 + + +112  + $isw®num + ( +wšt_t + +__wc +è +__THROW +; + +118  + $isw®pha + ( +wšt_t + +__wc +è +__THROW +; + +121  + $iswúŒl + ( +wšt_t + +__wc +è +__THROW +; + +125  + $iswdig™ + ( +wšt_t + +__wc +è +__THROW +; + +129  + $iswg¿ph + ( +wšt_t + +__wc +è +__THROW +; + +134  + $iswlow” + ( +wšt_t + +__wc +è +__THROW +; + +137  + $isw´št + ( +wšt_t + +__wc +è +__THROW +; + +142  + $iswpunù + ( +wšt_t + +__wc +è +__THROW +; + +147  + $isw¥aû + ( +wšt_t + +__wc +è +__THROW +; + +152  + $iswuµ” + ( +wšt_t + +__wc +è +__THROW +; + +157  + $iswxdig™ + ( +wšt_t + +__wc +è +__THROW +; + +162 #ifdeà +__USE_ISOC99 + + +163  + $iswbÏnk + ( +wšt_t + +__wc +è +__THROW +; + +172 +wùy³_t + + $wùy³ + ( +__cÚ¡ + * +__´Ý”ty +è +__THROW +; + +176  + $iswùy³ + ( +wšt_t + +__wc +, +wùy³_t + +__desc +è +__THROW +; + +177 +__END_NAMESPACE_C99 + + +184 +__BEGIN_NAMESPACE_C99 + + +187  +__cÚ¡ + + t__št32_t + * + twù¿ns_t +; + +188 +__END_NAMESPACE_C99 + + +189 #ifdeà +__USE_GNU + + +190 + $__USING_NAMESPACE_C99 +( +wù¿ns_t +) + +193 +__BEGIN_NAMESPACE_C99 + + +195 +wšt_t + + $towlow” + ( +wšt_t + +__wc +è +__THROW +; + +198 +wšt_t + + $towuµ” + ( +wšt_t + +__wc +è +__THROW +; + +199 +__END_NAMESPACE_C99 + + +201 +__END_DECLS + + +208 #ifdeà +_WCTYPE_H + + +214 +__BEGIN_DECLS + + +216 +__BEGIN_NAMESPACE_C99 + + +219 +wù¿ns_t + + $wù¿ns + ( +__cÚ¡ + * +__´Ý”ty +è +__THROW +; + +222 +wšt_t + + $towù¿ns + ( +wšt_t + +__wc +, +wù¿ns_t + +__desc +è +__THROW +; + +223 +__END_NAMESPACE_C99 + + +225 #ifdeà +__USE_XOPEN2K8 + + +227  + ~ + +231  + $isw®num_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +237  + $isw®pha_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +240  + $iswúŒl_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +244  + $iswdig™_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +248  + $iswg¿ph_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +253  + $iswlow”_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +256  + $isw´št_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +261  + $iswpunù_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +266  + $isw¥aû_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +271  + $iswuµ”_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +276  + $iswxdig™_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +281  + $iswbÏnk_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +285 +wùy³_t + + $wùy³_l + ( +__cÚ¡ + * +__´Ý”ty +, +__loÿË_t + +__loÿË +) + +286 +__THROW +; + +290  + $iswùy³_l + ( +wšt_t + +__wc +, +wùy³_t + +__desc +, +__loÿË_t + +__loÿË +) + +291 +__THROW +; + +299 +wšt_t + + $towlow”_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +302 +wšt_t + + $towuµ”_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +306 +wù¿ns_t + + $wù¿ns_l + ( +__cÚ¡ + * +__´Ý”ty +, +__loÿË_t + +__loÿË +) + +307 +__THROW +; + +310 +wšt_t + + $towù¿ns_l + ( +wšt_t + +__wc +, +wù¿ns_t + +__desc +, + +311 +__loÿË_t + +__loÿË +è +__THROW +; + +315 +__END_DECLS + + + @/usr/include/bits/setjmp.h + +20 #iâdeà +_BITS_SETJMP_H + + +21  + #_BITS_SETJMP_H + 1 + + ) + +23 #ià! +defšed + +_SETJMP_H + && !defšed +_PTHREAD_H + + +27  + ~ + +29 #iâdeà +_ASM + + +31 #ià +__WORDSIZE + == 64 + +32  + t__jmp_buf +[8]; + +34  + t__jmp_buf +[6]; + + @/usr/include/sched.h + +21 #iâdef +_SCHED_H + + +22  + #_SCHED_H + 1 + + ) + +24  + ~<ã©u»s.h +> + +27  + ~ + +29  + #__Ãed_size_t + + + ) + +30  + ~<¡ddef.h +> + +32  + #__Ãed_time_t + + + ) + +33  + #__Ãed_time¥ec + + + ) + +34  + ~ + +36 #iâdeà +__pid_t_defšed + + +37  +__pid_t + + tpid_t +; + +38  + #__pid_t_defšed + + + ) + +43  + ~ + +45  + #sched_´iÜ™y + +__sched_´iÜ™y + + + ) + +48 +__BEGIN_DECLS + + +51  + $sched_£¬am + ( +__pid_t + +__pid +, +__cÚ¡ +  +sched_·¿m + * +__·¿m +) + +52 +__THROW +; + +55  + $sched_g‘·¿m + ( +__pid_t + +__pid +,  +sched_·¿m + * +__·¿m +è +__THROW +; + +58  + $sched_£tscheduËr + ( +__pid_t + +__pid +,  +__pÞicy +, + +59 +__cÚ¡ +  +sched_·¿m + * +__·¿m +è +__THROW +; + +62  + $sched_g‘scheduËr + ( +__pid_t + +__pid +è +__THROW +; + +65  + $sched_y›ld + (è +__THROW +; + +68  + $sched_g‘_´iÜ™y_max + ( +__®gÜ™hm +è +__THROW +; + +71  + $sched_g‘_´iÜ™y_mš + ( +__®gÜ™hm +è +__THROW +; + +74  + $sched_¼_g‘_š‹rv® + ( +__pid_t + +__pid +,  +time¥ec + * +__t +è +__THROW +; + +77 #ifdeà +__USE_GNU + + +79  + #CPU_SETSIZE + +__CPU_SETSIZE + + + ) + +80  + #CPU_SET +( +ýu +, +ýu£ +è + `__CPU_SET_S + (ýu,  ( +ýu_£t_t +), cpu£) + + ) + +81  + #CPU_CLR +( +ýu +, +ýu£ +è + `__CPU_CLR_S + (ýu,  ( +ýu_£t_t +), cpu£) + + ) + +82  + #CPU_ISSET +( +ýu +, +ýu£ +è + `__CPU_ISSET_S + (ýu,  ( +ýu_£t_t +), \ + +83 +ýu£ +) + + ) + +84  + #CPU_ZERO +( +ýu£ +è + `__CPU_ZERO_S + ( ( +ýu_£t_t +), cpu£) + + ) + +85  + #CPU_COUNT +( +ýu£ +è + `__CPU_COUNT_S + ( ( +ýu_£t_t +), cpu£) + + ) + +87  + #CPU_SET_S +( +ýu +, +£tsize +, +ýu£ +è + `__CPU_SET_S + (ýu, s‘size, cpu£) + + ) + +88  + #CPU_CLR_S +( +ýu +, +£tsize +, +ýu£ +è + `__CPU_CLR_S + (ýu, s‘size, cpu£) + + ) + +89  + #CPU_ISSET_S +( +ýu +, +£tsize +, +ýu£ +è + `__CPU_ISSET_S + (cpu, setsize, \ + +90 +ýu£ +) + + ) + +91  + #CPU_ZERO_S +( +£tsize +, +ýu£ +è + `__CPU_ZERO_S + (£tsize, cpu£) + + ) + +92  + #CPU_COUNT_S +( +£tsize +, +ýu£ +è + `__CPU_COUNT_S + (£tsize, cpu£) + + ) + +94  + #CPU_EQUAL +( +ýu£1 +, +ýu£2 +) \ + +95 + `__CPU_EQUAL_S + ( ( +ýu_£t_t +), +ýu£1 +, +ýu£2 +) + + ) + +96  + #CPU_EQUAL_S +( +£tsize +, +ýu£1 +, +ýu£2 +) \ + +97 + `__CPU_EQUAL_S + ( +£tsize +, +ýu£1 +, +ýu£2 +) + + ) + +99  + #CPU_AND +( +de¡£t +, +¤c£t1 +, +¤c£t2 +) \ + +100 + `__CPU_OP_S + ( ( +ýu_£t_t +), +de¡£t +, +¤c£t1 +, +¤c£t2 +, &) + + ) + +101  + #CPU_OR +( +de¡£t +, +¤c£t1 +, +¤c£t2 +) \ + +102 + `__CPU_OP_S + ( ( +ýu_£t_t +), +de¡£t +, +¤c£t1 +, +¤c£t2 +, |) + + ) + +103  + #CPU_XOR +( +de¡£t +, +¤c£t1 +, +¤c£t2 +) \ + +104 + `__CPU_OP_S + ( ( +ýu_£t_t +), +de¡£t +, +¤c£t1 +, +¤c£t2 +, ^) + + ) + +105  + #CPU_AND_S +( +£tsize +, +de¡£t +, +¤c£t1 +, +¤c£t2 +) \ + +106 + `__CPU_OP_S + ( +£tsize +, +de¡£t +, +¤c£t1 +, +¤c£t2 +, &) + + ) + +107  + #CPU_OR_S +( +£tsize +, +de¡£t +, +¤c£t1 +, +¤c£t2 +) \ + +108 + `__CPU_OP_S + ( +£tsize +, +de¡£t +, +¤c£t1 +, +¤c£t2 +, |) + + ) + +109  + #CPU_XOR_S +( +£tsize +, +de¡£t +, +¤c£t1 +, +¤c£t2 +) \ + +110 + `__CPU_OP_S + ( +£tsize +, +de¡£t +, +¤c£t1 +, +¤c£t2 +, ^) + + ) + +112  + #CPU_ALLOC_SIZE +( +couÁ +è + `__CPU_ALLOC_SIZE + (couÁ) + + ) + +113  + #CPU_ALLOC +( +couÁ +è + `__CPU_ALLOC + (couÁ) + + ) + +114  + #CPU_FREE +( +ýu£t +è + `__CPU_FREE + (ýu£t) + + ) + +118  + $sched_£ffš™y + ( +__pid_t + +__pid +, +size_t + +__ýu£tsize +, + +119 +__cÚ¡ + +ýu_£t_t + * +__ýu£t +è +__THROW +; + +122  + $sched_g‘affš™y + ( +__pid_t + +__pid +, +size_t + +__ýu£tsize +, + +123 +ýu_£t_t + * +__ýu£t +è +__THROW +; + +126 +__END_DECLS + + + @/usr/include/bits/sched.h + +22 #iâdeà +__Ãed_sched·¿m + + +24 #iâdeà +_SCHED_H + + +30  + #SCHED_OTHER + 0 + + ) + +31  + #SCHED_FIFO + 1 + + ) + +32  + #SCHED_RR + 2 + + ) + +33 #ifdeà +__USE_GNU + + +34  + #SCHED_BATCH + 3 + + ) + +35  + #SCHED_IDLE + 5 + + ) + +37  + #SCHED_RESET_ON_FORK + 0x40000000 + + ) + +40 #ifdeà +__USE_GNU + + +42  + #CSIGNAL + 0x000000fà + + ) + +43  + #CLONE_VM + 0x00000100 + + ) + +44  + #CLONE_FS + 0x00000200 + + ) + +45  + #CLONE_FILES + 0x00000400 + + ) + +46  + #CLONE_SIGHAND + 0x00000800 + + ) + +47  + #CLONE_PTRACE + 0x00002000 + + ) + +48  + #CLONE_VFORK + 0x00004000 + + ) + +50  + #CLONE_PARENT + 0x00008000 + + ) + +52  + #CLONE_THREAD + 0x00010000 + + ) + +53  + #CLONE_NEWNS + 0x00020000 + + ) + +54  + #CLONE_SYSVSEM + 0x00040000 + + ) + +55  + #CLONE_SETTLS + 0x00080000 + + ) + +56  + #CLONE_PARENT_SETTID + 0x00100000 + + ) + +58  + #CLONE_CHILD_CLEARTID + 0x00200000 + + ) + +60  + #CLONE_DETACHED + 0x00400000 + + ) + +61  + #CLONE_UNTRACED + 0x00800000 + + ) + +63  + #CLONE_CHILD_SETTID + 0x01000000 + + ) + +65  + #CLONE_NEWUTS + 0x04000000 + + ) + +66  + #CLONE_NEWIPC + 0x08000000 + + ) + +67  + #CLONE_NEWUSER + 0x10000000 + + ) + +68  + #CLONE_NEWPID + 0x20000000 + + ) + +69  + #CLONE_NEWNET + 0x40000000 + + ) + +70  + #CLONE_IO + 0x80000000 + + ) + +74  + ssched_·¿m + + +76  + m__sched_´iÜ™y +; + +79 + g__BEGIN_DECLS + + +81 #ifdeà +__USE_GNU + + +83  +þÚe + ((* +__â +è(* +__¬g +), * +__chžd_¡ack +, + +84  +__æags +, * +__¬g +, ...è +__THROW +; + +87  + $unsh¬e + ( +__æags +è +__THROW +; + +90  + $sched_g‘ýu + (è +__THROW +; + +93  + $£Šs + ( +__fd +,  +__n¡y³ +è +__THROW +; + +97 +__END_DECLS + + +101 #ià! +defšed + +__defšed_sched·¿m + \ + +102 && ( +defšed + +__Ãed_sched·¿m + || defšed +_SCHED_H +) + +103  + #__defšed_sched·¿m + 1 + + ) + +105  + s__sched_·¿m + + +107  +__sched_´iÜ™y +; + +109 #undeà +__Ãed_sched·¿m + + +113 #ià +defšed + +_SCHED_H + && !defšed +__ýu_£t_t_defšed + + +114  + #__ýu_£t_t_defšed + + + ) + +116  + #__CPU_SETSIZE + 1024 + + ) + +117  + #__NCPUBITS + (8 *  ( +__ýu_mask +)) + + ) + +120  + t__ýu_mask +; + +123  + #__CPUELT +( +ýu +è((ýuè/ +__NCPUBITS +) + + ) + +124  + #__CPUMASK +( +ýu +è(( +__ýu_mask +è1 << ((ýuè% +__NCPUBITS +)) + + ) + +129 +__ýu_mask + +__b™s +[ +__CPU_SETSIZE + / +__NCPUBITS +]; + +130 } + týu_£t_t +; + +133 #ià + `__GNUC_PREREQ + (2, 91) + +134  + #__CPU_ZERO_S +( +£tsize +, +ýu£ +) \ + +135 dØ + `__bužtš_mem£t + ( +ýu£ +, '\0', +£tsize +); 0) + + ) + +137  + #__CPU_ZERO_S +( +£tsize +, +ýu£ +) \ + +139 +size_t + +__i +; \ + +140 +size_t + +__imax + = ( +£tsize +è/  ( +__ýu_mask +); \ + +141 +__ýu_mask + * +__b™s + = ( +ýu£ +)->__bits; \ + +142  +__i + = 0; __˜< +__imax +; ++__i) \ + +143 +__b™s +[ +__i +] = 0; \ + +144 + } +} 0) + + ) + +146  + #__CPU_SET_S +( +ýu +, +£tsize +, +ýu£ +) \ + +147 ( +__ex‹nsiÚ__ + \ + +148 ({ +size_t + +__ýu + = ( +ýu +); \ + +149 +__ýu + < 8 * ( +£tsize +) \ + +150 ? ((( +__ýu_mask + *è(( +ýu£ +)-> +__b™s +))[ + `__CPUELT + ( +__ýu +)] \ + +151 |ð + `__CPUMASK + ( +__ýu +)) \ + +152 : 0; })) + + ) + +153  + #__CPU_CLR_S +( +ýu +, +£tsize +, +ýu£ +) \ + +154 ( +__ex‹nsiÚ__ + \ + +155 ({ +size_t + +__ýu + = ( +ýu +); \ + +156 +__ýu + < 8 * ( +£tsize +) \ + +157 ? ((( +__ýu_mask + *è(( +ýu£ +)-> +__b™s +))[ + `__CPUELT + ( +__ýu +)] \ + +158 &ð~ + `__CPUMASK + ( +__ýu +)) \ + +159 : 0; })) + + ) + +160  + #__CPU_ISSET_S +( +ýu +, +£tsize +, +ýu£ +) \ + +161 ( +__ex‹nsiÚ__ + \ + +162 ({ +size_t + +__ýu + = ( +ýu +); \ + +163 +__ýu + < 8 * ( +£tsize +) \ + +164 ? (((( +__cÚ¡ + +__ýu_mask + *è(( +ýu£ +)-> +__b™s +))[ + `__CPUELT + ( +__ýu +)] \ + +165 & + `__CPUMASK + ( +__ýu +))) != 0 \ + +166 : 0; })) + + ) + +168  + #__CPU_COUNT_S +( +£tsize +, +ýu£ +) \ + +169 + `__sched_ýucouÁ + ( +£tsize +, +ýu£ +) + + ) + +171 #ià +__GNUC_PREREQ + (2, 91) + +172  + #__CPU_EQUAL_S +( +£tsize +, +ýu£1 +, +ýu£2 +) \ + +173 ( + `__bužtš_memcmp + ( +ýu£1 +, +ýu£2 +, +£tsize +è=ð0) + + ) + +175  + #__CPU_EQUAL_S +( +£tsize +, +ýu£1 +, +ýu£2 +) \ + +176 ( +__ex‹nsiÚ__ + \ + +177 ({ +__cÚ¡ + +__ýu_mask + * +__¬r1 + = ( +ýu£1 +)-> +__b™s +; \ + +178 +__cÚ¡ + +__ýu_mask + * +__¬r2 + = ( +ýu£2 +)-> +__b™s +; \ + +179 +size_t + +__imax + = ( +£tsize +è/  ( +__ýu_mask +); \ + +180 +size_t + +__i +; \ + +181  +__i + = 0; __˜< +__imax +; ++__i) \ + +182 ià( +__b™s +[ +__i +] != __bits[__i]) \ + +184 +__i + =ð +__imax +; })) + + ) + +187  + #__CPU_OP_S +( +£tsize +, +de¡£t +, +¤c£t1 +, +¤c£t2 +, +Ý +) \ + +188 ( +__ex‹nsiÚ__ + \ + +189 ({ +ýu_£t_t + * +__de¡ + = ( +de¡£t +); \ + +190 +__cÚ¡ + +__ýu_mask + * +__¬r1 + = ( +¤c£t1 +)-> +__b™s +; \ + +191 +__cÚ¡ + +__ýu_mask + * +__¬r2 + = ( +¤c£t2 +)-> +__b™s +; \ + +192 +size_t + +__imax + = ( +£tsize +è/  ( +__ýu_mask +); \ + +193 +size_t + +__i +; \ + +194  +__i + = 0; __˜< +__imax +; ++__i) \ + +195 (( +__ýu_mask + *è +__de¡ +-> +__b™s +)[ +__i +] = +__¬r1 +[__i] +Ý + +__¬r2 +[__i]; \ + +196 +__de¡ +; })) + + ) + +198  + #__CPU_ALLOC_SIZE +( +couÁ +) \ + +199 (((( +couÁ +è+ +__NCPUBITS + - 1è/ __NCPUBITSè*  ( +__ýu_mask +)) + + ) + +200  + #__CPU_ALLOC +( +couÁ +è + `__sched_ýu®loc + (couÁ) + + ) + +201  + #__CPU_FREE +( +ýu£t +è + `__sched_ýuä“ + (ýu£t) + + ) + +203 +__BEGIN_DECLS + + +205  + $__sched_ýucouÁ + ( +size_t + +__£tsize +, cÚ¡ +ýu_£t_t + * +__£ +) + +206 +__THROW +; + +207 +ýu_£t_t + * + $__sched_ýu®loc + ( +size_t + +__couÁ +è +__THROW + +__wur +; + +208  + $__sched_ýuä“ + ( +ýu_£t_t + * +__£t +è +__THROW +; + +210 +__END_DECLS + + + @ +1 +. +1 +/usr/include +307 +4821 +arrow_ic32.h +arrow_icon.h +assoc.c +assoc.h +basetype.h +bodyreg.c +bodyreg.h +bodyregP.h +buttons.h +buttonsD.h +buttonsP.h +check.c +check.h +check_grow.c +check_ic32.h +check_mod.c +check_shk.c +client.c +client.h +closed.c +closed.h +commit.h +commit_op.c +control.c +control.h +copyright.h +current.c +current.h +dbug_pr.c +draw.c +draw.h +drawP.h +drawicon.c +drawicon.h +drawwin.c +drawwin.h +drawwin_d.c +events.c +events.h +evsave.c +evsave.h +evsaveD.h +evsaveP.h +evsaveSH.h +evsaveX.h +evstack.c +evstack.h +evstackD.h +evstackP.h +evstackSH.h +evstackX.h +evstrings.h +exploptsP.h +explwoptsP.h +fieldP.h +frame.c +goal.c +goal.h +goalP.h +gravity.c +gravity.h +gray1_32.h +icons.c +init_tws.c +input.c +input.h +interf.c +interf.h +interf_in.c +interf_in1.c +layout.c +layout.h +listsP.h +lockscreen.c +manage.c +manage.h +manage_op.c +manage_pro.c +manage_st.c +mem.c +mem.h +menu.c +menu.h +menuD.h +menuP.h +message.c +message.h +messageP.h +null_icon.h +open.c +patchlevel.h +pause.c +pcs_enum.c +pcs_merge.c +pcs_split.c +pcs_updt.c +platformP.h +pr.c +profile.c +profile.h +property.c +redirect.c +region.c +region.h +regionP.h +rtlmenu.c +rtlmenu.h +rtlmenuD.h +rtlmenuO.h +rtlmenuP.h +rtlmenuSH.h +rtlmenuX.h +smdebug.h +state.c +state.h +stateP.h +std_defs.h +synonymsS.h +til_create.c +til_delete.c +til_enlrg.c +til_find.c +til_nbrs.c +til_panic.c +til_shrink.c +tile-listP.h +tile.h +tileD.h +tileI.h +tileP.h +tilecrsr.c +tilecrsr.h +tilecrsrP.h +tileicon.h +tileiconP.h +tilemenu.c +tilemenu.h +tilemenuP.h +tileopts.c +tileopts.h +tileoptsP.h +tileoptsS.h +tool.c +tool.h +track_menu.c +trial.h +trialP.h +try_grow.c +try_place.c +try_sat.c +try_slide.c +try_sweep.c +twin.h +twinD.h +twinI.h +twinP.h +twin_close.c +twin_creat.c +twin_desk.c +twin_dump.c +twin_init.c +twin_list.c +twin_ltst.c +twin_misc.c +twin_open.c +twin_resat.c +twin_rsz.c +twin_set.c +twin_slide.c +twin_thrd.c +twin_tmp.c +twin_undo.c +twin_util.c +twinoptsP.h +twinoptsS.h +userglob.c +userglobD.h +useropts.c +useropts.h +useroptsP.h +useroptsS.h +uservalsP.h +uservalsS.h +uwin.c +uwin.h +uwinD.h +uwinL.h +uwinP.h +uwinXD.h +uwinoptP.h +uwinoptS.h +uwinstrP.h +uwinstrS.h +uwinvalP.h +uwinvalS.h +win.c +win.h +wsys.c +xerror.c +xio.h +/usr/include/X11/X.h +/usr/include/X11/X10.h +/usr/include/X11/Xatom.h +/usr/include/X11/Xlib.h +/usr/include/X11/Xos.h +/usr/include/X11/Xutil.h +/usr/include/X11/cursorfont.h +/usr/include/math.h +/usr/include/pwd.h +/usr/include/signal.h +/usr/include/stdio.h +/usr/include/stdlib.h +/usr/include/string.h +/usr/include/sys/resource.h +/usr/include/sys/wait.h +/usr/include/unistd.h +defaults.i +icons/background.h +icons/rtl_icon.h +/usr/include/X11/Xarch.h +/usr/include/X11/Xfuncproto.h +/usr/include/X11/Xmd.h +/usr/include/X11/Xosdefs.h +/usr/include/X11/Xw32defs.h +/usr/include/X11/keysym.h +/usr/include/alloca.h +/usr/include/bits/confname.h +/usr/include/bits/environments.h +/usr/include/bits/huge_val.h +/usr/include/bits/huge_valf.h +/usr/include/bits/huge_vall.h +/usr/include/bits/inf.h +/usr/include/bits/mathcalls.h +/usr/include/bits/mathdef.h +/usr/include/bits/mathinline.h +/usr/include/bits/nan.h +/usr/include/bits/posix_opt.h +/usr/include/bits/pthreadtypes.h +/usr/include/bits/resource.h +/usr/include/bits/sigaction.h +/usr/include/bits/sigcontext.h +/usr/include/bits/siginfo.h +/usr/include/bits/signum.h +/usr/include/bits/sigset.h +/usr/include/bits/sigstack.h +/usr/include/bits/sigthread.h +/usr/include/bits/stdio-ldbl.h +/usr/include/bits/stdio.h +/usr/include/bits/stdio2.h +/usr/include/bits/stdio_lim.h +/usr/include/bits/stdlib-ldbl.h +/usr/include/bits/stdlib.h +/usr/include/bits/string.h +/usr/include/bits/string2.h +/usr/include/bits/string3.h +/usr/include/bits/sys_errlist.h +/usr/include/bits/types.h +/usr/include/bits/unistd.h +/usr/include/bits/waitflags.h +/usr/include/bits/waitstatus.h +/usr/include/fcntl.h +/usr/include/features.h +/usr/include/getopt.h +/usr/include/libio.h +/usr/include/stdint.h +/usr/include/strings.h +/usr/include/sys/file.h +/usr/include/sys/time.h +/usr/include/sys/timeb.h +/usr/include/sys/types.h +/usr/include/sys/ucontext.h +/usr/include/time.h +/usr/include/xlocale.h +/usr/include/X11/keysymdef.h +/usr/include/_G_config.h +/usr/include/bits/fcntl.h +/usr/include/bits/fcntl2.h +/usr/include/bits/libio-ldbl.h +/usr/include/bits/stat.h +/usr/include/bits/stdio-lock.h +/usr/include/bits/time.h +/usr/include/bits/typesizes.h +/usr/include/bits/wchar.h +/usr/include/bits/wordsize.h +/usr/include/ctype.h +/usr/include/endian.h +/usr/include/gnu/stubs.h +/usr/include/sys/cdefs.h +/usr/include/sys/select.h +/usr/include/sys/sysmacros.h +/usr/include/bits/byteswap.h +/usr/include/bits/endian.h +/usr/include/bits/libc-lock.h +/usr/include/bits/select.h +/usr/include/bits/timex.h +/usr/include/bits/uio.h +/usr/include/gconv.h +/usr/include/gnu/stubs-32.h +/usr/include/gnu/stubs-64.h +/usr/include/wchar.h +/usr/include/bits/wchar-ldbl.h +/usr/include/bits/wchar2.h +/usr/include/pthread.h +/usr/include/wctype.h +/usr/include/bits/setjmp.h +/usr/include/sched.h +/usr/include/bits/sched.h diff --git a/current.c b/current.c new file mode 100644 index 0000000..9586800 --- /dev/null +++ b/current.c @@ -0,0 +1,53 @@ +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" + +#ifndef BUTTONS +#include "buttonsP.h" +#endif + +#ifndef REGION +#include "regionP.h" +#endif + +#ifndef USERWIN +#include "uwinP.h" +#endif + +TWPoint current_pos; +Buttons current_but; +char current_ch; +enum ButKind current_kind; +unsigned long current_time; + +Userwin *current_uwinp; +TWRegion current_region; + +Button_State current_butstate; + +void +current_nil() +{ +} diff --git a/current.h b/current.h new file mode 100644 index 0000000..f9dd3fb --- /dev/null +++ b/current.h @@ -0,0 +1,53 @@ +/* +static char sccs_id[] = "@(#)current.h 5.5 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#ifndef BASETYPE +#include "basetype.h" +#endif + +#ifndef BUTTONS +#include "buttonsP.h" +#endif + +#ifndef REGION +#include "regionP.h" +#endif + +#ifndef USERWIN +#include "uwinP.h" +#endif + +extern TWPoint current_pos; +extern Buttons current_but; +extern char current_ch; +extern enum ButKind current_kind; +extern unsigned long current_time; + +extern Button_State current_butstate; + +extern Userwin *current_uwinp; +extern TWRegion current_region; diff --git a/custom/berman/.rtl.click b/custom/berman/.rtl.click new file mode 100644 index 0000000..f094db2 --- /dev/null +++ b/custom/berman/.rtl.click @@ -0,0 +1 @@ +rtl.focusFollowsPointer: off diff --git a/custom/berman/.rtl.layout b/custom/berman/.rtl.layout new file mode 100644 index 0000000..ac6f9c1 --- /dev/null +++ b/custom/berman/.rtl.layout @@ -0,0 +1,43 @@ + + +1000 900 + +messages + + +messages + +1 470 772 917 514 1064 26 0 470 772 470 726 510 772 470 730 1152 900 0 1151 0 899 0 +0 0 0 0 0 0 0 0 0 0 0 0 + +emacs +gmacs +* +gmacs: emacs @ edsel +gmacs +1 682 772 341 514 32 32 0 682 772 400 290 682 772 400 290 1150 894 0 1151 0 899 0 +0 0 0 0 0 0 0 0 0 0 0 0 + +console + + +console + +1 490 128 245 64 32 32 0 490 128 38 34 510 175 38 34 1152 900 0 1151 0 899 0 +0 1 0 0 0 0 0 1 0 0 0 0 + +typescript + + +typescript + +0 514 436 425 682 1056 32 0 514 472 400 290 514 526 400 290 1152 900 0 1151 0 899 1 +0 0 0 0 0 0 0 0 0 0 0 0 + +XTerm +init +* +login +xterm +0 494 342 243 149 1120 96 0 494 342 400 290 494 343 400 290 1150 894 0 1151 0 899 1 +0 0 0 0 0 0 0 0 0 0 0 0 diff --git a/custom/berman/.rtl.preferences b/custom/berman/.rtl.preferences new file mode 100644 index 0000000..ec821a8 --- /dev/null +++ b/custom/berman/.rtl.preferences @@ -0,0 +1,197 @@ +rtl.gravity: 16 +rtl.borderSize: 6 +rtl.outerBorderLinewidth: 2 +rtl.innerBorderLinewidth: 1 +rtl.headerHeight: 16 +rtl.clearBodyOnRedraw: on +rtl.distinguishCornerBordersByInverse: on +rtl.distinguishCornerBorders: on + +rtl.useIcons: on +rtl.useIconArea:on +rtl.iconAreaLeft: 400 +rtl.iconAreaRight: 1180 +rtl.iconAreaTop: 0 +rtl.iconAreaBottom: 128 + +rtl.useBorders: on +rtl.useCornerBorders: on +rtl.useMoveGadget: on +rtl.useHeader: on + +rtl.moveInHeader: off + +rtl.managerMenuInBody: off + +rtl.resetMaxOnIncrease: on +rtl.resetMinOnDecrease: on + +rtl.useRtlIcon: on +rtl.placePointerBackOnCancel: on + +rtl.focusFollowsPointer: on + +rtl.allowAggressiveRepopulation: on + +rtl.autoProrate: off +rtl.prorateLocally: off +rtl.autoProrateLocally: off + +rtl.iconPlacement: 4 +rtl.secondaryIconPlacement: 1 + +rtl.autoRepopulateLast: on +rtl.autoRepopulateOnAutoUnzoom: on +rtl.autoRepopulateOnClose: off +rtl.autoRepopulateOnExplicitUnzoom: on + +rtl.preferPreviousPositionOnAutoRepopulate: on +rtl.preferPreviousPositionOnExplicitRepopulate: on + +rtl.requirePreviousPositionOnAutoRepopulate: off +rtl.requirePreviousPositionOnLastRepopulate: off + +rtl.allowAutomaticShrinkOnAutoRepopulate: on +rtl.allowAutomaticShrinkOnExchange: on + +rtl.allowShrinkOnCornerOpen: off +rtl.allowShrinkOnResize: off + +rtl.tryCenterNeighborhoodOnOpen: on +rtl.tryEdgeNeighborhoodOnOpen: off +rtl.trySlidingOnResize: on +rtl.tryCenterNeighborhoodOnResize: on +rtl.tryEdgeNeighborhoodOnResize: off +rtl.tryCenterNeighborhoodOnExchange: on + +rtl.preferCloseToShrinkOnCornerOpen: on +rtl.preferCenterNeighborhoodToAutomaticCloseOnOpen: on +rtl.preferCenterNeighborhoodToAutomaticShrinkOnOpen: on +rtl.preferCenterNeighborhoodToShrinkOnOpen: on +rtl.preferEdgeNeighborhoodToAutomaticCloseOnOpen: on +rtl.preferDesktopToAutomaticShrinkOnAutoOpen: off +rtl.preferDesktopToShrinkOnAutoOpen: off + +rtl.preferCloseToShrinkOnResize: on +rtl.preferSlidingToAutomaticCloseOnResize: on +rtl.preferSlidingToAutomaticShrinkOnResize: on +rtl.preferSlidingToShrinkOnResize: on +rtl.preferCenterNeighborhoodToAutomaticCloseOnResize: on +rtl.preferCenterNeighborhoodToShrinkOnResize: on + +rtl.unzoomTiedListenerIfNecessary: on + +rtl*forceShrinkOnUnzoom: off +rtl*regularMinWidth: 64 +rtl*regularMinHeight: 40 +rtl*aggressivelyRepopulate: off +rtl*autoPlaceOnClientOpen: on +rtl*autoOpenOnCreate: off +rtl*autoPlaceOnUnsizedOpen: off +rtl*preferPreviousIconPosition: on + + +rtl*iconResBottom: 10 +rtl*iconHostTop: 12 +rtl*iconHostBottom: 20 + +rtl*includeClassInHeader: on +rtl*includeResClassInTitle: on +rtl*includeResNameInTitle: on +rtl*includeResClassInIconTitle: off +rtl*includeResNameInIconTitle: off +rtl*includeHostInTitle: off +rtl*includeHostInIconTitle: off +rtl*autoPlaceOnClientOpen: off +rtl*ignoreInitialPositionHints: on + +rtl.OutputOnly.useBorders: off +rtl.OutputOnly.useGadgets: off +rtl.OutputOnly.headerHeight: 4 +rtl.OutputOnly.includeResClassInTitle: off +rtl.OutputOnly.includeTitleInHeader: off + +rtl.xclock.superClass: OutputOnly +rtl.xclock.regularDesiredWidth: 74 +rtl.xclock.regularDesiredHeight: 80 +rtl.xclock.useBorders: off + +rtl.xload.superClass: OutputOnly + +rtl.xlogo.superClass: OutputOnly +rtl.xlogo.headerHeight: 2 + + +rtl.xpref.clientMinWidth: 220 +rtl.xpref.clientMinHeight: 480 + +rtl.console.superClass: OutputOnly +rtl.console.useBorders: on +rtl.console.enforceClientMinimums: off +rtl.console.fixedCompletely:on +rtl.console.requireManualClose: on +rtl.console.iconPixmapFile: ~rtl/custom/bitmaps/eye1.xbm + +rtl.xbiff.superClass: OutputOnly +rtl.xbiff.userNormalMinWidth: 64 +rtl.xbiff.userNormalMinHeight: 64 + +rtl.TextClass.clientMinWidth: 300 +rtl.TextClass.clientMinHeight: 200 +rtl.TextClass.includeHostInIconTitle: on +rtl.TextClass.includeNameInIconTitle: off +rtl.TextClass.includeTitleInPixmapIcon: on + +rtl.XTerm.superClass: TextClass +rtl.XTerm.iconPixmapFile: ~rtl/custom/bitmaps/xterm1.xbm +rtl.XTerm.iconHostLeft: 1 +rtl.XTerm.iconHostRight: 71 +rtl.XTerm.iconHostTop: 14 +rtl.XTerm.iconHostBottom: 32 +rtl.XTerm.normalDesiredWidth: 600 +rtl.XTerm.normalDesiredHeight: 390 + +rtl.Console.superClass: XTerm +rtl.Console.iconPixmapFile: ~rtl/custom/bitmaps/console1.xbm + +rtl.init.superClass: XTerm +rtl.init.iconPixmapFile: ~rtl/custom/bitmaps/tombstone.xbm +rtl.init.includeHostInIconTitle: off + +rtl.emacs.superClass: TextClass +rtl.emacs.includeHostInTitle: off +rtl.emacs.iconHostLeft: 1 +rtl.emacs.iconHostRight: 46 +rtl.emacs.iconHostTop: 24 +rtl.emacs.iconHostBottom: 52 +rtl.emacs.iconPixmapFile: ~rtl/custom/bitmaps/emacs1.xbm + +rtl.xfd.iconPixmapFile: ~rtl/custom/bitmaps/abc.xbm + +rtl.texx.iconPixmapFile: ~rtl/custom/bitmaps/tex.xbm +rtl.texx.userZoomMinWidth: 1180 +rtl.texx.userZoomMinHeight: 740 + +rtl.bitmap.iconPixmapFile:~rtl/custom/bitmaps/iconedit.xbm + +rtl.messages.superClass: TextClass +rtl.messages.iconPixmapFile: ~rtl/custom/bitmaps/zip.xbm + +rtl.xman.fixedWidth: on +rtl.xman.normalMinHeight: 200 +rtl.xman.normalDesiredHeight: 400 + +rtl.csh.superClass: TextClass +rtl.csh.iconPixmapFile: ~rtl/custom/bitmaps/tm.xbm + +rtl.typescript.superClass:TextClass +rtl.typescript.iconPixmapFile: ~rtl/custom/bitmaps/cmdtool.xbm + +rtl.help.superClass: TextClass +rtl.help.iconPixmapFile: ~rtl/custom/bitmaps/huh.xbm + +rtl.pipescript.superClass: TextClass +rtl.pipescript.iconPixmapFile: ~rtl/custom/bitmaps/pipes1.xbm + +rtl.ez.superClass: TextClass +rtl.ez.iconPixmapFile: ~rtl/custom/bitmaps/ez.xbm diff --git a/custom/berman/.rtl.profiles b/custom/berman/.rtl.profiles new file mode 100644 index 0000000..f606d72 --- /dev/null +++ b/custom/berman/.rtl.profiles @@ -0,0 +1,13 @@ +Prorate + .rtl.prorate +Click to Type + .rtl.click +Ellis + ~ellis/.rtl.preferences +Joe + ~jcc/.rtl.preferences +No Close/Shrink + .rtl.noclose +Greg + ~/Rtl/Bugs/Greg/.rtl.preferences + diff --git a/custom/berman/.rtl.prorate b/custom/berman/.rtl.prorate new file mode 100644 index 0000000..16fa55e --- /dev/null +++ b/custom/berman/.rtl.prorate @@ -0,0 +1 @@ +rtl.autoProrate: on diff --git a/custom/berman/.rtl.startup b/custom/berman/.rtl.startup new file mode 100644 index 0000000..a4c4895 --- /dev/null +++ b/custom/berman/.rtl.startup @@ -0,0 +1,7 @@ +#! /bin/sh +DISPLAY="unix:0";export DISPLAY +(console Rtl.Console) +(typescript ) +(gmacs &) +(messages ) +xset m 9 3 diff --git a/custom/berman/.rtl.tools b/custom/berman/.rtl.tools new file mode 100644 index 0000000..ea95755 --- /dev/null +++ b/custom/berman/.rtl.tools @@ -0,0 +1,38 @@ +Andrew Typescript + typescript +Andrew Console + console +Andrew Help + help +Andrew Editor + ez +Andrew Mail + messages +Terminal + xterm -fn serif10 +Clock + xclock -update 90 -analog +Stop Watch + xclock -update 1 -analog +Xterm Console + xterm -C -sb -name Console +System Load + xload +Performance Monitor + xperfmon +Control Panel + xpref +Man Page Browser + xman +Gmacs + gmacs -font 8x13 +Calculator + xcalc +Cadillac + xjumpto cadillac +Demon + xdemon +Rutgers (Aramis) + xjumpto aramis.rutgers.edu "xterm -s" +Rutgers (Suns) + xjumpto ramones.rutgers.edu "xterm -s" diff --git a/custom/bitmaps/abc.xbm b/custom/bitmaps/abc.xbm new file mode 100644 index 0000000..55c7fb5 --- /dev/null +++ b/custom/bitmaps/abc.xbm @@ -0,0 +1,14 @@ +#define abc_width 32 +#define abc_height 32 +static char abc_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, + 0x88, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, + 0x02, 0x02, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x01, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x20, 0x02, 0x00, + 0x00, 0x20, 0x01, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x20, 0x02, 0x00, + 0x00, 0x20, 0x04, 0x00, 0x00, 0x20, 0x04, 0x00, 0x00, 0x20, 0x04, 0x00, + 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x80, 0x08, + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x80, 0x08, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00}; diff --git a/custom/bitmaps/clock.xbm b/custom/bitmaps/clock.xbm new file mode 100644 index 0000000..ec443c5 --- /dev/null +++ b/custom/bitmaps/clock.xbm @@ -0,0 +1,46 @@ +#define clock_icon_width 64 +#define clock_icon_height 64 +static char clock_icon_bits[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3c, 0x80, + 0x01, 0x83, 0x01, 0x00, 0x00, 0x38, 0xc0, 0x80, 0x81, 0x40, 0xc0, 0x07, + 0x7c, 0x40, 0x00, 0x81, 0x81, 0x20, 0x30, 0x18, 0x83, 0x81, 0x01, 0x82, + 0x41, 0x10, 0x08, 0xa0, 0x00, 0x02, 0x01, 0x82, 0x41, 0x10, 0x04, 0x40, + 0x00, 0x04, 0x02, 0x82, 0x41, 0x10, 0x04, 0x40, 0x00, 0x04, 0x02, 0x82, + 0x81, 0x10, 0x82, 0xff, 0x7f, 0x08, 0x02, 0x81, 0x01, 0x00, 0xe2, 0x18, + 0x80, 0x0b, 0x01, 0x80, 0x01, 0x00, 0x1a, 0x06, 0x00, 0x0c, 0x00, 0x80, + 0x01, 0x00, 0x06, 0x01, 0x00, 0x18, 0x00, 0x80, 0x01, 0x00, 0xc3, 0x00, + 0x00, 0x60, 0x00, 0x80, 0x01, 0x80, 0x20, 0x00, 0x00, 0x80, 0x00, 0x80, + 0x01, 0x40, 0x10, 0x00, 0x00, 0x00, 0x01, 0x80, 0x01, 0x20, 0x08, 0x00, + 0x00, 0x00, 0x02, 0x80, 0x01, 0x20, 0xe8, 0x07, 0x00, 0x00, 0x02, 0x80, + 0x01, 0x10, 0xe4, 0x00, 0x00, 0x00, 0x04, 0x80, 0x01, 0x08, 0xe2, 0x07, + 0x00, 0x00, 0x08, 0x80, 0x01, 0x08, 0x22, 0x1c, 0x00, 0x00, 0x08, 0x80, + 0x01, 0x04, 0x21, 0x10, 0x00, 0x00, 0x10, 0x80, 0x01, 0x04, 0x01, 0x10, + 0x00, 0x00, 0x10, 0x80, 0x01, 0x04, 0x01, 0x0c, 0x00, 0x00, 0x10, 0x80, + 0x01, 0x82, 0x00, 0x04, 0x00, 0x00, 0x20, 0x80, 0x01, 0x82, 0x00, 0x04, + 0x00, 0x60, 0x24, 0x80, 0x01, 0x82, 0x00, 0x08, 0x1c, 0x98, 0x25, 0x80, + 0x01, 0x82, 0x00, 0xe0, 0x3f, 0x04, 0x26, 0x80, 0x01, 0x82, 0x00, 0x00, + 0x7e, 0x84, 0x27, 0x80, 0x01, 0x82, 0x00, 0x00, 0xbe, 0x03, 0x20, 0x80, + 0x01, 0x82, 0x00, 0x00, 0x1c, 0x00, 0x20, 0x80, 0x01, 0x82, 0x00, 0x00, + 0x00, 0x00, 0x20, 0x80, 0x01, 0x82, 0x00, 0x00, 0x00, 0x00, 0x20, 0x80, + 0x01, 0x04, 0x01, 0x00, 0x00, 0x00, 0x10, 0x80, 0x01, 0x04, 0x01, 0x00, + 0x00, 0x00, 0x10, 0x80, 0x01, 0x04, 0x01, 0x00, 0x00, 0x00, 0x10, 0x80, + 0x01, 0x08, 0x02, 0x00, 0x00, 0x00, 0x08, 0x80, 0x01, 0x08, 0x02, 0x00, + 0x00, 0x00, 0x08, 0x80, 0x01, 0x10, 0x04, 0x00, 0x00, 0x00, 0x04, 0x80, + 0x01, 0x20, 0x08, 0x00, 0x00, 0x00, 0x02, 0x80, 0x01, 0x20, 0x08, 0x00, + 0x00, 0x00, 0x02, 0x80, 0x01, 0x40, 0x10, 0x00, 0x00, 0x00, 0x01, 0x80, + 0x01, 0x80, 0x20, 0x00, 0x00, 0x80, 0x00, 0x80, 0x01, 0x00, 0xc3, 0x00, + 0x00, 0x60, 0x00, 0x80, 0x01, 0x00, 0x04, 0x01, 0x00, 0x10, 0x00, 0x80, + 0x01, 0x00, 0x18, 0x06, 0x00, 0x0c, 0x00, 0x80, 0x01, 0x00, 0xe0, 0x18, + 0x80, 0x03, 0x00, 0x80, 0x01, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x80, + 0x01, 0xfc, 0x00, 0x10, 0x04, 0x00, 0x00, 0x80, 0x01, 0x03, 0x01, 0x10, + 0x04, 0x00, 0x00, 0x80, 0xc1, 0x00, 0x06, 0x10, 0x0c, 0x00, 0x00, 0x80, + 0x41, 0x00, 0x08, 0x08, 0x08, 0x00, 0x00, 0x80, 0x41, 0x00, 0x18, 0x08, + 0x18, 0xe0, 0x07, 0x80, 0x81, 0x00, 0x67, 0x0c, 0x10, 0x18, 0x18, 0x80, + 0x01, 0xff, 0x80, 0x07, 0x20, 0x0c, 0x10, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x40, 0x02, 0x10, 0x80, 0x01, 0x00, 0x00, 0x00, 0x80, 0x02, 0x10, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x08, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x06, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; diff --git a/custom/bitmaps/cmdtool.xbm b/custom/bitmaps/cmdtool.xbm new file mode 100644 index 0000000..1e52edb --- /dev/null +++ b/custom/bitmaps/cmdtool.xbm @@ -0,0 +1,38 @@ +#define cmdtool_width 64 +#define cmdtool_height 64 +static char cmdtool_bits[] = { + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x04,0x00,0x00,0x00,0x00,0x00, + 0x80,0x21,0x04,0x00,0x00,0x00,0xff,0x07,0x80,0x71,0x04,0x00,0x00,0xc0,0x45, + 0x1e,0x80,0xf9,0x04,0x00,0x00,0x60,0x84,0x30,0x80,0x01,0x04,0x00,0x00,0xb0, + 0x48,0xe8,0x80,0x55,0x05,0x00,0x00,0x18,0xc9,0xc8,0x81,0xa9,0xf4,0x01,0x00, + 0x0c,0x21,0x85,0x83,0x55,0xfd,0x07,0x00,0x22,0x19,0x26,0x83,0xa9,0x6c,0x1f, + 0x00,0x23,0x09,0x04,0x87,0x55,0xfd,0x7d,0x00,0x09,0x04,0x88,0x8c,0xa9,0xc4, + 0xf7,0x01,0x51,0x02,0x50,0x8c,0x55,0x05,0xdf,0x07,0x01,0x01,0x20,0x9c,0xa9, + 0x04,0x7c,0xff,0x8d,0x00,0xc0,0x99,0x55,0x05,0xf0,0xfd,0x60,0x00,0x80,0xb8, + 0xa9,0x04,0xc0,0xf7,0x31,0x00,0x00,0xb1,0x55,0x25,0x00,0xff,0x17,0x00,0x00, + 0xb2,0xa9,0x84,0x00,0xfc,0x8f,0x01,0x00,0xb6,0x55,0x05,0x00,0x00,0xc4,0x01, + 0x00,0xb1,0xa9,0x04,0x00,0x00,0xe3,0x00,0x80,0xe0,0x55,0x6d,0x80,0xff,0x71, + 0x0c,0x40,0xf0,0xa9,0x84,0x2f,0x80,0x38,0x0e,0x60,0xe0,0x55,0x05,0x00,0xa0, + 0x18,0x07,0x50,0xe0,0xa9,0x04,0x00,0x10,0x81,0x63,0x88,0xe0,0x55,0x05,0x00, + 0x0c,0xc2,0x71,0x04,0xe3,0xa9,0x04,0x00,0x07,0xc5,0x38,0x02,0xe4,0x55,0x05, + 0xdb,0x80,0x08,0x1c,0x0d,0xf0,0xa9,0x64,0x00,0x40,0x18,0x8e,0x10,0xf0,0x55, + 0x15,0x00,0x20,0x3c,0x46,0x10,0xe0,0xa9,0x14,0x00,0x21,0x5e,0x20,0x20,0xe0, + 0x55,0x0d,0x80,0x00,0x8f,0x10,0x20,0xb0,0xa9,0x0c,0x08,0x90,0x03,0x19,0x40, + 0xb0,0x55,0x05,0x04,0xc8,0x09,0x16,0x81,0xb8,0xa9,0x04,0x03,0xe0,0x00,0x01, + 0x02,0x99,0x55,0x85,0x00,0xf2,0x08,0x10,0x02,0x8c,0xa9,0x04,0x80,0x71,0x08, + 0x11,0x02,0x84,0x55,0x45,0x40,0x38,0x08,0x10,0x00,0x86,0xa9,0x4c,0x00,0x38, + 0x08,0x00,0x04,0x83,0x55,0x1d,0x20,0x18,0x00,0x10,0x18,0x83,0xa9,0x34,0x20, + 0x1c,0x04,0x11,0xc0,0x81,0x55,0xf5,0x20,0x1c,0x00,0x61,0xc0,0x80,0xa9,0xc4, + 0x21,0x1c,0x04,0x81,0x70,0xc0,0x55,0x05,0x27,0x18,0x08,0x02,0x38,0xe0,0xa9, + 0x04,0x0e,0x38,0x10,0x04,0x1e,0xf0,0x01,0x04,0x1c,0x38,0x10,0x88,0x07,0xb8, + 0xf9,0x04,0x70,0x70,0x20,0xe0,0x01,0x9c,0x71,0x04,0xe0,0x71,0x00,0xfc,0x00, + 0x8e,0x21,0x04,0x00,0xff,0xff,0x1f,0x00,0x87,0x01,0x04,0x00,0xfc,0xff,0x03, + 0x80,0x83,0xff,0x07,0x00,0xc0,0x01,0x00,0xc0,0x81,0x01,0x00,0x00,0x80,0x03, + 0x00,0xe0,0x80,0x01,0x00,0x00,0x00,0x07,0x00,0x70,0x80,0x01,0x00,0x00,0x00, + 0x1e,0x00,0x3c,0x80,0x01,0x00,0x00,0x00,0x7c,0x00,0x1f,0x80,0x01,0x00,0x00, + 0x00,0xf0,0xff,0x07,0x80,0x01,0x00,0x00,0x00,0xc0,0xff,0x01,0x80,0x01,0x00, + 0x00,0x00,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01, + 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80, + 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00, + 0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff}; diff --git a/custom/bitmaps/console.xbm b/custom/bitmaps/console.xbm new file mode 100644 index 0000000..c43a8bd --- /dev/null +++ b/custom/bitmaps/console.xbm @@ -0,0 +1,38 @@ +#define console_width 74 +#define console_height 52 +static char console_bits[] = { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00, + 0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x1c,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xe0,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0xf0,0x00,0xc0,0x00, + 0x0c,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0xc0,0x00,0x0c,0x00,0x00,0x00,0x00, + 0x00,0xc0,0x00,0xc0,0x00,0x0c,0x7c,0xf8,0xe8,0xe1,0xc3,0xc7,0xf8,0xc0,0x00, + 0x0c,0xc6,0x8c,0x39,0x33,0x66,0xcc,0x8c,0xc1,0x00,0x0c,0x06,0x8c,0x19,0x33, + 0x60,0xcc,0x8c,0xc1,0x00,0x0c,0x06,0x8c,0x19,0xe3,0x63,0xcc,0xfc,0xc1,0x00, + 0x0c,0x06,0x8c,0x19,0x03,0x66,0xcc,0x0c,0xc0,0x00,0x0c,0xc6,0x8c,0x19,0x33, + 0x66,0xcc,0x8c,0xc1,0x00,0x0c,0x7c,0xf8,0x18,0xe3,0xc3,0xc7,0xf8,0xc0,0x00, + 0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x0c,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xc0,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00, + 0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x0c,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xc0,0x00,0x0c,0xff,0x30,0x87,0x07,0x1e,0x00,0x00,0xc0,0x00, + 0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x0c,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xc0,0x00,0x0c,0xc7,0xf7,0xf2,0x8f,0x07,0x1c,0x00,0xc0,0x00, + 0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x0c,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xc0,0x00,0x0c,0xff,0xfd,0x1b,0x8f,0xf7,0x01,0x00,0xc0,0x00, + 0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x0c,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xc0,0x00,0x0c,0x8f,0xee,0xe7,0x99,0xff,0x1f,0x00,0xc0,0x00, + 0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x1c,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xe0,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00, + 0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00, + 0x00,0x00,0x10,0x00,0x00,0x00,0x20,0x14,0x6a,0xdb,0x56,0xa8,0x10,0x00,0x00, + 0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x20,0x14,0x54,0x55, + 0x55,0xa8,0x10,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00, + 0x00,0x20,0x14,0xaa,0xaa,0x2a,0xa8,0x10,0x00,0x00,0x00,0x20,0x00,0x00,0x00, + 0x00,0x00,0x10,0x00,0x00,0x00,0x20,0x14,0x54,0x55,0x55,0xa8,0x10,0x00,0x00, + 0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x20,0x14,0x00,0x00, + 0x00,0xa8,0x10,0x00,0x00,0x00,0x20,0x00,0xea,0xff,0x57,0x00,0x10,0x00,0x00, + 0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0xe0,0xff,0xff,0xff, + 0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; diff --git a/custom/bitmaps/console1.xbm b/custom/bitmaps/console1.xbm new file mode 100644 index 0000000..978d6f0 --- /dev/null +++ b/custom/bitmaps/console1.xbm @@ -0,0 +1,47 @@ +#define console1_width 74 +#define console1_height 52 +static char console1_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0xc0, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0x0c, 0x7c, 0xf8, 0xe8, + 0xe1, 0xc3, 0xc7, 0xf8, 0xc0, 0x00, 0x0c, 0xc6, 0x8c, 0x39, 0x33, 0x66, + 0xcc, 0x8c, 0xc1, 0x00, 0x0c, 0x06, 0x8c, 0x19, 0x33, 0x60, 0xcc, 0x8c, + 0xc1, 0x00, 0x0c, 0x06, 0x8c, 0x19, 0xe3, 0x63, 0xcc, 0xfc, 0xc1, 0x00, + 0x0c, 0x06, 0x8c, 0x19, 0x03, 0x66, 0xcc, 0x0c, 0xc0, 0x00, 0x0c, 0xc6, + 0x8c, 0x19, 0x33, 0x66, 0xcc, 0x8c, 0xc1, 0x00, 0x0c, 0x7c, 0xf8, 0x18, + 0xe3, 0xc3, 0xc7, 0xf8, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x14, 0x6a, + 0xdb, 0x56, 0xa8, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x14, 0x54, 0x55, 0x55, 0xa8, 0x10, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x20, 0x14, 0xaa, 0xaa, 0x2a, 0xa8, 0x10, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x14, 0x54, + 0x55, 0x55, 0xa8, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x14, 0x00, 0x00, 0x00, 0xa8, 0x10, + 0x00, 0x00, 0x00, 0x20, 0x00, 0xea, 0xff, 0x57, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00}; diff --git a/custom/bitmaps/emacs.h b/custom/bitmaps/emacs.h new file mode 100644 index 0000000..cf1ce64 --- /dev/null +++ b/custom/bitmaps/emacs.h @@ -0,0 +1,46 @@ +#define noname_width 64 +#define noname_height 64 +static char noname_bits[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x3c, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x04, 0x58, 0x0f, 0x00, 0x00, 0x00, 0x80, 0x01, 0x0c, 0x10, 0x70, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x1c, 0x30, 0x80, 0x03, 0x00, 0x00, 0x80, + 0x01, 0x1c, 0x20, 0x02, 0x1c, 0x00, 0x00, 0x80, 0x01, 0x08, 0x40, 0x04, + 0x04, 0x00, 0x00, 0x80, 0x01, 0x00, 0xc0, 0x18, 0xf0, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x80, 0x20, 0x00, 0x07, 0x00, 0x80, 0x01, 0x00, 0x00, 0x41, + 0xc0, 0x0f, 0x00, 0x80, 0x01, 0x00, 0x00, 0x82, 0x00, 0x70, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x02, 0x03, 0x18, 0x00, 0x80, 0x01, 0x00, 0x00, 0x04, + 0x04, 0xe0, 0x03, 0x80, 0x01, 0x00, 0x00, 0x08, 0x08, 0xc0, 0x01, 0x80, + 0x01, 0x00, 0x00, 0x10, 0x10, 0x60, 0x00, 0x80, 0x01, 0x00, 0x00, 0x10, + 0x20, 0x00, 0x1f, 0x80, 0x01, 0x00, 0x00, 0xe0, 0xc0, 0x00, 0x18, 0x80, + 0x01, 0x00, 0x00, 0xc0, 0x00, 0x01, 0xe0, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x5c, 0x80, 0x01, 0x80, 0xff, 0x01, 0x03, 0x04, 0x10, 0x80, + 0x01, 0x60, 0x00, 0x06, 0x04, 0x1c, 0xe0, 0x81, 0x01, 0x10, 0xff, 0x08, + 0x18, 0x20, 0x80, 0x81, 0x01, 0x88, 0x00, 0x11, 0x20, 0x40, 0x00, 0x81, + 0x01, 0x88, 0x00, 0x11, 0xe0, 0x80, 0x00, 0x86, 0x01, 0x18, 0xff, 0x18, + 0x80, 0x01, 0x03, 0x8c, 0x01, 0x68, 0x00, 0x16, 0x00, 0x07, 0x04, 0x86, + 0x01, 0x88, 0xff, 0x11, 0x00, 0x0d, 0x08, 0x84, 0x01, 0x08, 0x00, 0x10, + 0x00, 0x0c, 0x10, 0x98, 0x01, 0x08, 0x00, 0x10, 0x00, 0x38, 0x20, 0x86, + 0x01, 0x04, 0x00, 0x20, 0x00, 0x40, 0x00, 0x9c, 0x01, 0x02, 0x00, 0x40, + 0x00, 0x80, 0x03, 0x90, 0x81, 0x01, 0x00, 0x80, 0x01, 0x00, 0x06, 0x8c, + 0x61, 0x00, 0x00, 0x00, 0x06, 0x00, 0x2a, 0x84, 0x11, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x68, 0x8a, 0x09, 0x17, 0x11, 0xc6, 0x11, 0x00, 0xc0, 0x86, + 0x09, 0xb1, 0x29, 0x29, 0x10, 0x00, 0x80, 0x8d, 0x09, 0x53, 0x39, 0xc1, + 0x10, 0x00, 0x00, 0x80, 0x09, 0x11, 0x45, 0x09, 0x11, 0x00, 0x00, 0x80, + 0x09, 0x17, 0x45, 0xe6, 0x10, 0x00, 0x00, 0x80, 0x09, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x80, 0xf9, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; diff --git a/custom/bitmaps/emacs.xbm b/custom/bitmaps/emacs.xbm new file mode 100644 index 0000000..293fb83 --- /dev/null +++ b/custom/bitmaps/emacs.xbm @@ -0,0 +1,46 @@ +#define emacs_width 64 +#define emacs_height 64 +static char emacs_bits[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, 0x80, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x3d, 0xf3, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0xe0, + 0x22, 0x80, 0x00, 0x00, 0xf1, 0x6a, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x01, 0x00, 0x00, 0xe0, 0x08, 0x80, 0x00, 0x00, 0xf1, 0x7a, 0x80, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0xdd, 0x01, 0x80, 0x08, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x80, 0xd0, 0xa7, 0x83, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x80, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0xf0, 0xf9, 0x89, 0x00, 0x00, + 0x01, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0xb0, + 0x13, 0x80, 0x00, 0x00, 0x01, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x87, 0xae, 0xfb, 0xff, + 0xff, 0xff, 0x00, 0x00, 0xf7, 0xac, 0xfb, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x95, 0xaa, 0x7b, 0x66, 0xe6, 0xcc, 0x00, 0x00, 0xb7, 0xa6, 0xfb, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x87, 0x2e, 0xf8, 0xff, 0xff, 0xff, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x71, 0xe6, 0x84, 0x0d, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x71, 0xc6, 0xfb, 0xfd, 0xcd, 0x87, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0xf1, 0xa3, 0x0f, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x47, 0x12, 0x22, 0xfe, 0xff, 0xff, 0x00, 0x00, 0x77, 0xd0, 0xba, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x45, 0xd5, 0x3a, 0x66, 0xe6, 0xcc, 0x00, 0x00, + 0x77, 0x15, 0xfa, 0xfe, 0xff, 0xff, 0x00, 0x00, 0x47, 0xd5, 0x22, 0xfe, + 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/custom/bitmaps/emacs1.xbm b/custom/bitmaps/emacs1.xbm new file mode 100644 index 0000000..6230401 --- /dev/null +++ b/custom/bitmaps/emacs1.xbm @@ -0,0 +1,31 @@ +#define emacs1_width 48 +#define emacs1_height 56 +static char emacs1_bits[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x01, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf9, 0xbc, 0x01, 0xbd, 0x83, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe1, 0x63, 0x79, 0x01, 0xc0, 0x81, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xa1, 0x7f, 0x0d, 0xd5, 0xd0, 0x8f, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x79, 0x00, 0x00, 0x91, 0x4c, 0x84, + 0x21, 0xcd, 0x24, 0xa0, 0x52, 0x85, 0x11, 0x55, 0x29, 0x41, 0x8c, 0x82, + 0x79, 0xcd, 0x10, 0x20, 0x00, 0x80, 0x01, 0x44, 0x08, 0x01, 0x00, 0x80, + 0x01, 0x00, 0x00, 0xfc, 0x85, 0x86, 0xf9, 0xcd, 0x0e, 0x01, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0xce, 0x80, 0x01, 0x00, 0x00, 0x01, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0xac, 0xfd, 0xff, 0xff, 0xff, + 0xf7, 0xa8, 0xfd, 0xff, 0xff, 0xff, 0x95, 0xaa, 0xcd, 0xcc, 0xcc, 0xfc, + 0xb7, 0xa2, 0xfd, 0xff, 0xff, 0xff, 0x87, 0x26, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x47, 0x12, 0x22, 0xfe, 0xff, 0xff, + 0x77, 0xd0, 0xba, 0xff, 0xff, 0xff, 0x65, 0xd5, 0x3a, 0x66, 0x66, 0xf2, + 0x77, 0x15, 0xfa, 0xfe, 0xff, 0xff, 0x47, 0xd5, 0x22, 0xfe, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; diff --git a/custom/bitmaps/eye1.xbm b/custom/bitmaps/eye1.xbm new file mode 100644 index 0000000..2b91c00 --- /dev/null +++ b/custom/bitmaps/eye1.xbm @@ -0,0 +1,20 @@ +#define eye1_width 56 +#define eye1_height 35 +static char eye1_bits[] = { + 0x00,0x00,0x58,0x32,0x09,0x00,0x00,0x00,0x00,0x50,0x14,0x09,0x00,0x00,0x00, + 0x44,0x53,0x94,0x49,0x00,0x00,0x00,0x6c,0x92,0x94,0x28,0x12,0x00,0x00,0x48, + 0x92,0xb4,0x34,0x17,0x00,0x80,0x48,0xb2,0x96,0x32,0x15,0x00,0x28,0xb3,0xb6, + 0xf7,0x32,0xb5,0x00,0x48,0xfc,0xff,0xff,0x7b,0x5d,0x00,0x91,0xfb,0xff,0xff, + 0xff,0x8e,0x01,0x6a,0xff,0x41,0x5d,0x85,0xe7,0x04,0xfd,0x0f,0xf0,0xeb,0x10, + 0x3c,0x05,0xf9,0x01,0x58,0x55,0x10,0xf0,0x2b,0x3e,0x00,0xf8,0x3e,0x18,0xc8, + 0x15,0x1a,0x00,0x5c,0x1f,0x34,0x80,0x2f,0x0f,0x00,0xbc,0x1f,0x3b,0x10,0x1f, + 0x0c,0x00,0xdc,0xff,0x3d,0x40,0x0a,0x14,0x00,0xac,0xff,0x3b,0x80,0x1e,0x08, + 0x00,0xdc,0xff,0x35,0x00,0x1e,0x38,0x00,0xac,0xff,0x3b,0x40,0x1f,0x10,0x00, + 0xfc,0xfd,0x3f,0x00,0x1e,0x30,0x00,0xac,0xff,0x3a,0x00,0x1f,0x60,0x00,0x78, + 0x7f,0x1d,0x40,0x0e,0xc0,0x02,0xb8,0xaa,0x1f,0x00,0x0f,0xc0,0x01,0xf0,0x57, + 0x0d,0x50,0x07,0x00,0x07,0xe0,0xba,0x07,0x80,0x03,0x00,0x0a,0xc0,0xff,0x03, + 0xe4,0x00,0x00,0x38,0x00,0xff,0x00,0x70,0x00,0x00,0xe0,0x03,0x00,0x00,0x0f, + 0x00,0x00,0x00,0x7f,0x00,0xf0,0x01,0x00,0x00,0x00,0xf0,0xff,0x3f,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00}; diff --git a/custom/bitmaps/ez.xbm b/custom/bitmaps/ez.xbm new file mode 100644 index 0000000..cc15b85 --- /dev/null +++ b/custom/bitmaps/ez.xbm @@ -0,0 +1,27 @@ +#define ez_width 48 +#define ez_height 48 +static char ez_bits[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0x07, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xf9, 0xff, 0xff, 0xff, + 0xe7, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xe7, 0xff, 0xfb, 0xff, 0xff, 0xff, + 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xdf, 0xff, 0xff, 0xff, 0xff, + 0xe7, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xcf, 0xff, 0xff, 0xff, 0xff, + 0x07, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x07, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0xe7, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xdf, 0xff, 0xff, 0xff, 0xff, + 0xe7, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xe7, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xe7, 0xff, 0xfb, 0xff, 0xff, 0xff, + 0xc7, 0xff, 0xf9, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x07, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xe3, + 0xff, 0xff, 0xff, 0xfd, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xf8, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfe, + 0xff, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0xff, 0xef, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xef, + 0xff, 0xff, 0xff, 0xc7, 0xff, 0xe7, 0xff, 0xff, 0xff, 0x03, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0x01, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; diff --git a/custom/bitmaps/gvmstat.xbm b/custom/bitmaps/gvmstat.xbm new file mode 100644 index 0000000..b3af7f7 --- /dev/null +++ b/custom/bitmaps/gvmstat.xbm @@ -0,0 +1,46 @@ +#define noname_width 64 +#define noname_height 64 +static char noname_bits[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf9, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x9f, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x09, 0x00, 0x60, 0x00, 0x00, 0x02, 0x00, 0x90, 0x09, 0x00, 0x60, 0x00, + 0x00, 0x02, 0x00, 0x90, 0x09, 0x00, 0x50, 0x00, 0x00, 0x85, 0x00, 0x90, + 0x09, 0x00, 0x90, 0x00, 0x00, 0x45, 0x21, 0x90, 0x09, 0x00, 0x90, 0x00, + 0x00, 0x25, 0x51, 0x90, 0x09, 0x00, 0x90, 0x00, 0x00, 0x25, 0x52, 0x90, + 0x09, 0x00, 0x90, 0x00, 0x80, 0x18, 0x8a, 0x90, 0x09, 0x40, 0x08, 0x01, + 0x80, 0x08, 0x8c, 0x90, 0x09, 0xc0, 0x08, 0x01, 0x80, 0x00, 0x04, 0x91, + 0x09, 0xa0, 0x08, 0x01, 0x48, 0x00, 0x00, 0x91, 0x09, 0x20, 0x09, 0x41, + 0x48, 0x00, 0x00, 0x91, 0x09, 0x14, 0x09, 0xc2, 0x54, 0x00, 0x00, 0x92, + 0x09, 0x14, 0x0a, 0x22, 0x55, 0x00, 0x00, 0x92, 0x09, 0x1a, 0x06, 0x22, + 0x23, 0x00, 0x00, 0x94, 0x09, 0x0a, 0x04, 0x3c, 0x22, 0x00, 0x00, 0x94, + 0xf9, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x90, 0x09, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x90, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x01, 0x80, 0x01, 0x80, 0x89, 0x6c, 0xdc, 0x99, 0x03, 0x80, + 0x01, 0x40, 0x52, 0x92, 0x82, 0x20, 0x01, 0x80, 0x01, 0x40, 0x52, 0x92, + 0x8c, 0x38, 0x01, 0x80, 0x01, 0x80, 0x23, 0x92, 0x90, 0x24, 0x01, 0x80, + 0x01, 0x00, 0x22, 0x92, 0x8e, 0x38, 0x01, 0x80, 0x01, 0x40, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; diff --git a/custom/bitmaps/h19.pend.xbm b/custom/bitmaps/h19.pend.xbm new file mode 100644 index 0000000..ebeba84 --- /dev/null +++ b/custom/bitmaps/h19.pend.xbm @@ -0,0 +1,46 @@ +#define noname_width 64 +#define noname_height 64 +static char noname_bits[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x84, 0x81, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x82, + 0x11, 0xff, 0xff, 0xff, 0xff, 0xff, 0x13, 0x84, 0x91, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x27, 0x88, 0x91, 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0x88, + 0x91, 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0x88, 0x91, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x27, 0x88, 0x91, 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0x88, + 0x91, 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0x88, 0x91, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x27, 0x88, 0x91, 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0x88, + 0x91, 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0x88, 0x91, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x27, 0x88, 0x91, 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0x88, + 0x91, 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0x88, 0x91, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x27, 0x88, 0x91, 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0x88, + 0x91, 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0x88, 0x91, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x27, 0x88, 0x91, 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0x88, + 0x91, 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0x88, 0x91, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x27, 0x88, 0x91, 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0x88, + 0x91, 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0x88, 0x91, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x27, 0x88, 0x91, 0xff, 0xff, 0xff, 0xff, 0xff, 0x27, 0x88, + 0x11, 0xff, 0xff, 0xff, 0xff, 0xff, 0x23, 0x88, 0x11, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x20, 0x88, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x88, + 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x88, 0x81, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x8b, 0x01, 0x01, 0x80, 0x00, 0x01, 0x00, 0x00, 0x8c, + 0x01, 0xfe, 0x7f, 0x81, 0xfe, 0xff, 0xff, 0x87, 0x01, 0x00, 0x00, 0x81, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x81, 0x00, 0x00, 0xc0, 0x8f, 0x01, 0x00, 0x00, 0x81, + 0x00, 0x00, 0x20, 0x90, 0x01, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xa3, + 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x41, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xa5, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xa4, + 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xa4, 0x11, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xa4, 0x11, 0x00, 0x10, 0x11, 0x07, 0x00, 0x80, 0xa4, + 0x11, 0x00, 0x10, 0x91, 0x08, 0x00, 0x80, 0xa4, 0x11, 0x00, 0xf0, 0x11, + 0x0f, 0x00, 0x80, 0xa4, 0x11, 0x00, 0x10, 0x11, 0x08, 0x00, 0x80, 0xa2, + 0x11, 0x00, 0x10, 0x11, 0x07, 0x00, 0x80, 0xa1, 0x11, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x90, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x90, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x01, 0x00, 0x00, 0x00, + 0xf0, 0x01, 0x00, 0x88, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x02, 0x00, 0x86, + 0x01, 0x00, 0x00, 0x00, 0x08, 0x04, 0xe0, 0x83, 0x01, 0x00, 0x00, 0x00, + 0x08, 0x1c, 0x3c, 0x80, 0x01, 0x00, 0x00, 0x00, 0x0f, 0xe2, 0x07, 0x80, + 0x01, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; diff --git a/custom/bitmaps/h19.xbm b/custom/bitmaps/h19.xbm new file mode 100644 index 0000000..697f327 --- /dev/null +++ b/custom/bitmaps/h19.xbm @@ -0,0 +1,46 @@ +#define noname_width 64 +#define noname_height 64 +static char noname_bits[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x84, 0x81, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x82, + 0x11, 0xff, 0xff, 0xff, 0xff, 0xff, 0x13, 0x84, 0x91, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x24, 0x88, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x88, + 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x88, 0x91, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x24, 0x88, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x88, + 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x88, 0x91, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x24, 0x88, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x88, + 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x88, 0x91, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x24, 0x88, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x88, + 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x88, 0x91, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x24, 0x88, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x88, + 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x88, 0x91, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x24, 0x88, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x88, + 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x88, 0x91, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x24, 0x88, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x88, + 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x88, 0x91, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x24, 0x88, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x88, + 0x11, 0xff, 0xff, 0xff, 0xff, 0xff, 0x23, 0x88, 0x11, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x20, 0x88, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x88, + 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x88, 0x81, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x8b, 0x01, 0x01, 0x80, 0x00, 0x01, 0x00, 0x00, 0x8c, + 0x01, 0xfe, 0x7f, 0x81, 0xfe, 0xff, 0xff, 0x87, 0x01, 0x00, 0x00, 0x81, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x81, 0x00, 0x00, 0xc0, 0x8f, 0x01, 0x00, 0x00, 0x81, + 0x00, 0x00, 0x20, 0x90, 0x01, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xa3, + 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x41, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xa5, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xa4, + 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xa4, 0x11, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xa4, 0x11, 0x00, 0x10, 0x11, 0x07, 0x00, 0x80, 0xa4, + 0x11, 0x00, 0x10, 0x91, 0x08, 0x00, 0x80, 0xa4, 0x11, 0x00, 0xf0, 0x11, + 0x0f, 0x00, 0x80, 0xa4, 0x11, 0x00, 0x10, 0x11, 0x08, 0x00, 0x80, 0xa2, + 0x11, 0x00, 0x10, 0x11, 0x07, 0x00, 0x80, 0xa1, 0x11, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x90, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x90, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x01, 0x00, 0x00, 0x00, + 0xf0, 0x01, 0x00, 0x88, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x02, 0x00, 0x86, + 0x01, 0x00, 0x00, 0x00, 0x08, 0x04, 0xe0, 0x83, 0x01, 0x00, 0x00, 0x00, + 0x08, 0x1c, 0x3c, 0x80, 0x01, 0x00, 0x00, 0x00, 0x0f, 0xe2, 0x07, 0x80, + 0x01, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; diff --git a/custom/bitmaps/huh.xbm b/custom/bitmaps/huh.xbm new file mode 100644 index 0000000..e07ab47 --- /dev/null +++ b/custom/bitmaps/huh.xbm @@ -0,0 +1,20 @@ +#define huh_width 40 +#define huh_height 50 +static char huh_bits[] = { + 0x00,0x90,0x1f,0x00,0x00,0x00,0xe0,0x7f,0x00,0x00,0x00,0xff,0x7f,0x00,0x00, + 0x00,0xfc,0xff,0x00,0x00,0x00,0xfc,0xff,0x00,0x00,0x00,0xf8,0xff,0x00,0x00, + 0x00,0xf8,0xff,0x00,0x00,0x00,0xf8,0xff,0x00,0x00,0x00,0xf8,0x7f,0x00,0x30, + 0x00,0xfc,0x7f,0x00,0x70,0x00,0xfc,0xff,0x00,0x70,0x00,0xf0,0x7f,0x00,0x73, + 0x00,0xc0,0x7f,0x38,0xf6,0x00,0xc0,0x7f,0x7c,0xfc,0x00,0x00,0x7e,0x7f,0xfc, + 0x00,0x00,0xfe,0x7f,0xf8,0x00,0x00,0xfc,0x7f,0xf0,0x00,0xc0,0xff,0xff,0x70, + 0x00,0xe0,0xff,0xff,0xf8,0x00,0xe0,0xff,0xff,0xf8,0x00,0xe0,0x3f,0xfc,0xf9, + 0x00,0xe0,0x9f,0xf9,0xf9,0x00,0xe0,0x9f,0xf9,0x7d,0x72,0xe0,0xff,0xf9,0x7d, + 0xc2,0xe0,0xff,0xfc,0x3f,0xcd,0xe0,0x7f,0xfe,0x3f,0xfe,0xe5,0x7f,0xfe,0x3f, + 0xfc,0xff,0xff,0xff,0x3f,0xf8,0xff,0x7f,0xfe,0x1b,0x00,0xff,0x7f,0xfe,0x03, + 0x80,0xff,0xff,0xff,0x03,0x00,0xff,0xff,0xff,0x03,0x00,0xfc,0xff,0xff,0x03, + 0x00,0xe8,0xfe,0xff,0x03,0x00,0x00,0xfe,0xff,0x03,0x00,0x00,0xfe,0xff,0x03, + 0x00,0x00,0xff,0xff,0x03,0x00,0x00,0xff,0xff,0x03,0x00,0x00,0xff,0xff,0x03, + 0x00,0x00,0xff,0x01,0x03,0x00,0x00,0x03,0x00,0x02,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x20,0x38,0x00,0x00,0x22,0x20,0x64, + 0x00,0x00,0x22,0x20,0x64,0x00,0x00,0xbe,0xe4,0x30,0x00,0x00,0xa2,0x24,0x11, + 0x00,0x00,0xa2,0x24,0x01,0x00,0x00,0x22,0x2f,0x11}; diff --git a/custom/bitmaps/iconedit.xbm b/custom/bitmaps/iconedit.xbm new file mode 100644 index 0000000..33003a6 --- /dev/null +++ b/custom/bitmaps/iconedit.xbm @@ -0,0 +1,38 @@ +#define iconedit_width 64 +#define iconedit_height 64 +static char iconedit_bits[] = { + 0xf9,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x7f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x0f,0x00,0x00,0x00,0x00,0x00, + 0x00,0xf0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x07,0x00,0x00,0x80,0x01, + 0x00,0x00,0xe0,0x07,0x00,0x00,0xc0,0x03,0x00,0x00,0xe0,0x07,0x00,0x00,0xe0, + 0x07,0x00,0x00,0xe0,0x07,0x00,0x00,0xf0,0x0d,0x00,0x00,0xe0,0x07,0x00,0x00, + 0xb0,0x1d,0x00,0x00,0xe0,0x07,0x00,0x00,0x98,0x19,0x00,0x00,0xe0,0x07,0xfe, + 0xff,0xff,0xff,0xff,0x7f,0xe0,0x07,0x02,0x00,0xfc,0x3f,0x00,0x40,0xe0,0x07, + 0x02,0x00,0x00,0x00,0x00,0x40,0xe0,0x07,0x02,0x00,0x00,0x07,0x00,0x40,0xe0, + 0x07,0x02,0x00,0x80,0x05,0x00,0x40,0xe0,0x07,0x02,0x00,0x80,0x0a,0x00,0x40, + 0xe0,0x07,0x02,0x00,0xc0,0x1a,0x00,0x40,0xe0,0x07,0x02,0xc0,0xff,0xff,0x3f, + 0x40,0xe0,0x07,0x02,0x40,0x00,0x00,0x20,0x40,0xe0,0x07,0x02,0x40,0x00,0x00, + 0x20,0x40,0xe0,0x07,0x02,0x40,0x00,0x0c,0x20,0x40,0xe0,0x07,0x02,0x40,0x80, + 0x7f,0x20,0x40,0xe0,0x07,0x02,0x40,0x80,0x40,0x20,0x40,0xe0,0x07,0x02,0x40, + 0x80,0x40,0x20,0x40,0xe0,0x07,0x02,0x40,0x80,0x7f,0x20,0x40,0xe0,0x07,0x02, + 0x40,0x00,0x21,0x20,0x40,0xe0,0x07,0x02,0x40,0x80,0x40,0x20,0x40,0xe0,0x07, + 0x02,0xc0,0xff,0xff,0x3f,0x40,0xe0,0x07,0x02,0xc0,0xff,0xff,0x3f,0x40,0xe0, + 0x07,0x02,0x00,0x0c,0x04,0x0c,0x40,0xe0,0x07,0x02,0x00,0x06,0x04,0x08,0x40, + 0xe0,0x07,0x02,0x00,0x06,0x00,0x18,0x40,0xe0,0x07,0x02,0x00,0x03,0x00,0x10, + 0x40,0xe0,0x07,0x02,0x00,0x03,0x00,0x30,0x40,0xe0,0x07,0x02,0x00,0x00,0x00, + 0x00,0x40,0xe0,0x07,0x02,0x00,0x00,0x00,0x00,0x40,0xe0,0x07,0xfe,0xff,0xff, + 0xff,0xff,0x7f,0xe0,0x07,0x02,0x00,0x00,0x00,0x00,0x40,0xe0,0x07,0x02,0x00, + 0x00,0x00,0x00,0x40,0xe0,0x07,0xfe,0xff,0xff,0xff,0xff,0x7f,0xe0,0x07,0xc0, + 0x00,0x00,0x03,0x00,0x06,0xe0,0x07,0xc0,0x00,0x00,0x03,0x00,0x06,0xe0,0x07, + 0xe0,0x00,0x00,0x03,0x00,0x0e,0xe0,0x07,0x60,0x00,0x00,0x03,0x00,0x0c,0xe0, + 0x07,0x70,0x00,0x00,0x03,0x00,0x1c,0xe0,0x07,0x30,0x00,0x00,0x00,0x00,0x18, + 0xe0,0x07,0x38,0x00,0x00,0x00,0x00,0x38,0xe0,0x07,0x18,0x00,0x00,0x00,0x00, + 0x30,0xe0,0x07,0x1c,0x00,0x00,0x00,0x00,0x70,0xe0,0x07,0x0c,0x00,0x00,0x00, + 0x00,0x70,0xe0,0x07,0x0e,0x00,0x00,0x00,0x00,0xe0,0xe0,0x07,0x06,0x00,0x00, + 0x00,0x00,0xe0,0xe0,0x07,0x07,0x00,0x00,0x00,0x00,0xc0,0xe1,0x07,0x03,0x00, + 0x00,0x00,0x00,0xc0,0xe1,0x87,0x03,0x00,0x00,0x00,0x00,0x80,0xe1,0x87,0x01, + 0x00,0x00,0x00,0x00,0x80,0xe3,0xc7,0x01,0x00,0x00,0x00,0x00,0x00,0xe3,0xc7, + 0x00,0x00,0x00,0x00,0x00,0x00,0xe3,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xe0, + 0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x7f,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xfc,0xff,0xff,0xff,0xff,0xff, + 0xff,0x7f}; diff --git a/custom/bitmaps/lightgrey.xbm b/custom/bitmaps/lightgrey.xbm new file mode 100644 index 0000000..9ded2cf --- /dev/null +++ b/custom/bitmaps/lightgrey.xbm @@ -0,0 +1,6 @@ +#define lightgrey_width 16 +#define lightgrey_height 16 +static char lightgrey_bits[] = { + 0x44,0x44,0x11,0x11,0x44,0x44,0x11,0x11,0x44,0x44,0x11,0x11,0x44,0x44,0x11, + 0x11,0x44,0x44,0x11,0x11,0x44,0x44,0x11,0x11,0x44,0x44,0x11,0x11,0x44,0x44, + 0x11,0x11}; diff --git a/custom/bitmaps/mailbox_checked.xbm b/custom/bitmaps/mailbox_checked.xbm new file mode 100644 index 0000000..56564fe --- /dev/null +++ b/custom/bitmaps/mailbox_checked.xbm @@ -0,0 +1,38 @@ +#define mailbox_checked_width 64 +#define mailbox_checked_height 64 +static char mailbox_checked_bits[] = { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xff,0xff,0xff,0x7f,0x00, + 0x00,0x00,0x18,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0x80, + 0x00,0x00,0x00,0xf4,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0x71,0x1c,0x00, + 0x00,0x01,0x00,0xfc,0xff,0x63,0x0c,0x02,0x00,0x03,0x00,0x04,0x00,0xa2,0x0a, + 0xc5,0x09,0x02,0x00,0x64,0x82,0x23,0x89,0x88,0x08,0x02,0x00,0x04,0xd5,0x22, + 0x89,0x88,0x08,0x02,0x00,0x08,0x38,0x23,0x88,0x8f,0x08,0x02,0x00,0xc8,0x07, + 0x23,0x88,0x88,0x48,0x02,0x00,0x3e,0x80,0x22,0x88,0x88,0x38,0x02,0x00,0x06, + 0x40,0x22,0x88,0xc8,0x01,0x02,0x00,0xfe,0x3f,0x22,0x88,0x1c,0x80,0x03,0x00, + 0x02,0x00,0x22,0xc8,0x01,0xf0,0x00,0x00,0x06,0x00,0x22,0x1c,0x00,0x0e,0x00, + 0x00,0x04,0xc0,0x73,0x00,0xe0,0x01,0x00,0x00,0x04,0x70,0x02,0x00,0x1e,0x00, + 0x00,0x00,0x04,0x6f,0x02,0xf0,0x03,0x00,0x00,0x00,0xe4,0xc1,0x02,0x1e,0x02, + 0x00,0x00,0x00,0x1c,0x80,0x83,0x23,0x02,0x00,0x00,0x00,0x00,0x00,0x63,0x24, + 0x02,0x00,0x00,0x00,0x00,0x00,0x1e,0x24,0x02,0x00,0x00,0x00,0x00,0x00,0x00, + 0x24,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x24,0x02,0x00,0x00,0x00,0x00,0x00, + 0x00,0x24,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x24,0x02,0x00,0x00,0x00,0x00, + 0x00,0x00,0x24,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x24,0x02,0x00,0x00,0x00, + 0x00,0x00,0x94,0x25,0x02,0x00,0x00,0x00,0x00,0x00,0x98,0x24,0x02,0x00,0x00, + 0x00,0x00,0x00,0xb4,0x24,0x02,0x00,0x00,0x00,0x00,0x00,0xee,0x24,0x02,0x00, + 0x00,0x00,0x00,0x00,0xf0,0x24,0xc2,0x00,0x00,0x00,0x00,0x00,0xa0,0x25,0x7a, + 0x00,0x00,0x00,0x00,0x00,0x7c,0x27,0x36,0x03,0x00,0x00,0x00,0x00,0x1c,0x26, + 0x0f,0x02,0x00,0x00,0x00,0x00,0x04,0x26,0x0b,0x00,0x00,0x00,0x00,0x00,0x00, + 0xa4,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xa4,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0xac,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x02,0x00,0x00,0x00,0x00, + 0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00}; diff --git a/custom/bitmaps/nobozos.xbm b/custom/bitmaps/nobozos.xbm new file mode 100644 index 0000000..3eac9a8 --- /dev/null +++ b/custom/bitmaps/nobozos.xbm @@ -0,0 +1,38 @@ +#define nobozos_width 64 +#define nobozos_height 64 +static char nobozos_bits[] = { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x3f,0x00,0x00, + 0x00,0x00,0x00,0x80,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0xf0,0xff,0xff,0x1f, + 0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0xff,0xff,0xff, + 0xff,0x01,0x00,0x00,0x80,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0xe0,0xff,0xff, + 0xff,0xff,0x0f,0x00,0x00,0xf0,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0xf8,0xff, + 0x0f,0xe0,0xff,0x3f,0x00,0x00,0xfc,0xff,0x00,0x00,0xfe,0x7f,0x00,0x00,0xfe, + 0x3f,0x00,0x00,0xf8,0xff,0x00,0x00,0xff,0x0f,0x00,0x00,0xe0,0xff,0x01,0x80, + 0xff,0x1f,0x00,0x00,0xc0,0xff,0x03,0x80,0xff,0x3f,0x00,0x00,0x00,0xff,0x03, + 0xc0,0xff,0x7f,0x00,0x00,0x00,0xfe,0x07,0xe0,0x7f,0xfc,0x00,0x00,0x00,0xf8, + 0x0f,0xe0,0x07,0xf9,0x01,0x00,0x00,0x8a,0x0f,0xf0,0x17,0x83,0x03,0x00,0x00, + 0xa3,0x1f,0xf0,0xf1,0x2a,0x07,0x00,0x50,0x3d,0x1e,0xf8,0xac,0x67,0x0f,0x00, + 0x98,0xd7,0x3c,0xf8,0x6a,0x5d,0x1e,0x00,0xe8,0x5a,0x3d,0x38,0x66,0xfb,0x3c, + 0x00,0x7c,0x9b,0x31,0xbc,0x5d,0x9f,0x19,0x00,0xe6,0xeb,0x76,0x3c,0xdd,0x75, + 0xc3,0x07,0xba,0xee,0x72,0x1c,0xf7,0xef,0x37,0x58,0xdf,0xbf,0x63,0xdc,0xfe, + 0xbe,0x0e,0x60,0xf5,0xfd,0x6d,0x9e,0xba,0xbb,0x07,0xc0,0x77,0x77,0xe5,0x3e, + 0xf6,0xee,0x03,0x80,0xde,0xbd,0xf1,0xbe,0xfd,0x7d,0x01,0x00,0xfb,0xfe,0xf6, + 0x3e,0x75,0xd7,0x78,0x3c,0xae,0xbb,0xf2,0x7e,0xdc,0xbf,0xcc,0x66,0xf6,0xef, + 0xf8,0x7e,0xfb,0xfa,0x84,0x42,0x7e,0x7d,0xfb,0x7e,0x8a,0x77,0xb4,0x5a,0xac, + 0x47,0xf9,0xfe,0x60,0x75,0xb4,0x5b,0xac,0x1a,0xfc,0xfe,0x41,0x41,0xc4,0x47, + 0x04,0x0a,0xff,0xfe,0x01,0x40,0xfc,0x7f,0x04,0x00,0xff,0xfe,0x01,0x40,0xe0, + 0x0f,0x14,0x80,0xff,0xfc,0x03,0x40,0xe0,0x0f,0x34,0x80,0x7f,0xfc,0x03,0x40, + 0xc0,0x07,0x74,0x80,0x7f,0xfc,0x03,0x40,0x8c,0x63,0xf4,0x80,0x7f,0xfc,0x07, + 0x80,0x1e,0xf0,0xf2,0xc1,0x7f,0xf8,0x07,0x80,0x36,0xd8,0xfa,0xc3,0x3f,0xf8, + 0x0f,0x80,0xcc,0x67,0xfa,0xe7,0x3f,0xf8,0x0f,0x00,0x19,0x30,0xf9,0xef,0x3f, + 0xf0,0x1f,0x00,0xf2,0x9f,0xfc,0xff,0x1f,0xf0,0x3f,0x00,0x06,0xc0,0xfe,0xff, + 0x1f,0xe0,0x3f,0x00,0x0c,0x60,0xfe,0xff,0x0f,0xe0,0x7f,0x00,0x30,0x18,0xff, + 0xff,0x0f,0xc0,0xff,0x00,0xc0,0x07,0xfc,0xff,0x07,0x80,0xff,0x01,0x00,0x00, + 0xf8,0xff,0x03,0x80,0xff,0x07,0x00,0x00,0xf0,0xff,0x03,0x00,0xff,0x0f,0x00, + 0x00,0xe0,0xff,0x01,0x00,0xfe,0x3f,0x00,0x00,0xf8,0xff,0x00,0x00,0xfc,0xff, + 0x00,0x00,0xfe,0x7f,0x00,0x00,0xf8,0xff,0x0f,0xe0,0xff,0x3f,0x00,0x00,0xf0, + 0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0x0f,0x00,0x00, + 0x80,0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x01,0x00, + 0x00,0x00,0xfc,0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0xf0,0xff,0xff,0x1f,0x00, + 0x00,0x00,0x00,0x80,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0xf8,0x3f,0x00, + 0x00,0x00}; diff --git a/custom/bitmaps/perfmon.xbm b/custom/bitmaps/perfmon.xbm new file mode 100644 index 0000000..1ec68f7 --- /dev/null +++ b/custom/bitmaps/perfmon.xbm @@ -0,0 +1,72 @@ +/* +static char sccs_id[] = "%W% %H%"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#define perfmon_icon_width 64 +#define perfmon_icon_height 64 +static char perfmon_icon_bits[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf9, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x9f, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x09, 0x00, 0x60, 0x00, 0x00, 0x02, 0x00, 0x90, 0x09, 0x00, 0x60, 0x00, + 0x00, 0x02, 0x00, 0x90, 0x09, 0x00, 0x50, 0x00, 0x00, 0x85, 0x00, 0x90, + 0x09, 0x00, 0x90, 0x00, 0x00, 0x45, 0x21, 0x90, 0x09, 0x00, 0x90, 0x00, + 0x00, 0x25, 0x51, 0x90, 0x09, 0x00, 0x90, 0x00, 0x00, 0x25, 0x52, 0x90, + 0x09, 0x00, 0x90, 0x00, 0x80, 0x18, 0x8a, 0x90, 0x09, 0x40, 0x08, 0x01, + 0x80, 0x08, 0x8c, 0x90, 0x09, 0xc0, 0x08, 0x01, 0x80, 0x00, 0x04, 0x91, + 0x09, 0xa0, 0x08, 0x01, 0x48, 0x00, 0x00, 0x91, 0x09, 0x20, 0x09, 0x41, + 0x48, 0x00, 0x00, 0x91, 0x09, 0x14, 0x09, 0xc2, 0x54, 0x00, 0x00, 0x92, + 0x09, 0x14, 0x0a, 0x22, 0x55, 0x00, 0x00, 0x92, 0x09, 0x1a, 0x06, 0x22, + 0x23, 0x00, 0x00, 0x94, 0x09, 0x0a, 0x04, 0x3c, 0x22, 0x00, 0x00, 0x94, + 0xf9, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x90, 0x09, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x90, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x01, 0x80, 0x01, 0x80, 0x89, 0x6c, 0xdc, 0x99, 0x03, 0x80, + 0x01, 0x40, 0x52, 0x92, 0x82, 0x20, 0x01, 0x80, 0x01, 0x40, 0x52, 0x92, + 0x8c, 0x38, 0x01, 0x80, 0x01, 0x80, 0x23, 0x92, 0x90, 0x24, 0x01, 0x80, + 0x01, 0x00, 0x22, 0x92, 0x8e, 0x38, 0x01, 0x80, 0x01, 0x40, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; diff --git a/custom/bitmaps/pinhead.xbm b/custom/bitmaps/pinhead.xbm new file mode 100644 index 0000000..71d3ff6 --- /dev/null +++ b/custom/bitmaps/pinhead.xbm @@ -0,0 +1,32 @@ +/* +static char sccs_id[] = "%W% %H%"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#define 64x64_width 16 +#define 64x64_height 16 +static char 64x64_bits[] = { + 0x00, 0x38, 0x00, 0x7c, 0x00, 0xfe, 0x00, 0xfe, 0x00, 0xfe, 0x00, 0x7c, + 0x00, 0x3a, 0x00, 0x01, 0x80, 0x00, 0x40, 0x1e, 0x20, 0x10, 0x10, 0x08, + 0x08, 0x04, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00}; diff --git a/custom/bitmaps/pipes1.xbm b/custom/bitmaps/pipes1.xbm new file mode 100644 index 0000000..460e7b7 --- /dev/null +++ b/custom/bitmaps/pipes1.xbm @@ -0,0 +1,60 @@ +#define noname_width 68 +#define noname_height 76 +static char noname_bits[] = { + 0xff, 0xff, 0xff, 0xff, 0x1f, 0x06, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x01, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x17, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x0f, 0x00, 0x0f, 0x04, 0x00, 0x00, 0x00, 0x00, 0x60, 0xf8, 0xff, + 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x00, 0x01, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x08, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xf8, 0xff, + 0x61, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x02, 0x0f, 0x00, 0x1f, 0x00, 0x00, + 0xf0, 0x7f, 0x00, 0x81, 0x0e, 0x00, 0x07, 0x00, 0x00, 0x38, 0xe0, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x82, 0x81, 0xc1, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x06, 0x02, 0x83, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x13, 0x48, 0x86, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x28, 0x06, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x0c, 0x22, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x04, 0x0c, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x0c, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x82, 0x0d, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0c, 0x22, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x8c, 0xff, 0x00, 0xf0, 0x3f, 0x00, 0x00, + 0x01, 0x00, 0x8c, 0xc1, 0x00, 0xf0, 0x3f, 0x00, 0x00, 0x23, 0x20, 0x86, + 0xc1, 0x00, 0x00, 0x03, 0x00, 0x00, 0x13, 0x40, 0x06, 0x41, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x06, 0x02, 0x03, 0x81, 0x0e, 0x1c, 0x03, 0x00, 0x00, + 0x0c, 0x82, 0x01, 0x01, 0x0f, 0xfc, 0x1f, 0x00, 0x00, 0x38, 0xe0, 0x00, + 0x01, 0xf8, 0x07, 0x60, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x01, 0x08, 0x04, + 0x80, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x01, 0x08, 0x04, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x08, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x01, 0xf8, 0x07, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0xfc, + 0x0f, 0x04, 0x00, 0x00, 0x00, 0x00, 0x81, 0x0e, 0x1c, 0x10, 0x08, 0x00, + 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x00, 0x80, + 0xc1, 0x00, 0x00, 0x30, 0x18, 0x00, 0x00, 0x00, 0x80, 0xc1, 0x00, 0x00, + 0x30, 0x18, 0x00, 0x07, 0x00, 0x80, 0xff, 0x00, 0x00, 0xf0, 0x1f, 0x00, + 0x1f, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x80, 0x00, 0x00, 0x81, 0x00, 0x00, 0x22, 0x00, 0x00, + 0x80, 0x00, 0x00, 0x01, 0x01, 0x00, 0x22, 0x00, 0x00, 0x40, 0x01, 0x00, + 0x01, 0x02, 0x00, 0x22, 0x00, 0x00, 0x40, 0x01, 0x00, 0x01, 0x04, 0x00, + 0x22, 0x00, 0x00, 0x80, 0x00, 0x00, 0x0f, 0x04, 0x00, 0x22, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x17, 0x08, 0x00, 0x22, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x20, 0x08, 0x00, 0x22, 0x00, 0x00, 0x00, 0x02, 0x00, 0x30, 0x18, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x05, 0x00, 0x30, 0x18, 0x00, 0x22, 0x00, 0x00, + 0x00, 0x05, 0x00, 0xf0, 0x1f, 0x00, 0x22, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x40, 0x04, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x00, 0x22, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x40, 0x04, 0x00, 0x22, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x40, 0x04, 0x00, 0x22, 0x00, 0x00, 0x80, 0x02, 0x00, 0x40, 0x04, 0x00, + 0x22, 0x00, 0x00, 0x80, 0x02, 0x00, 0x40, 0x04, 0x00, 0x22, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x40, 0x04, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x40, 0x04, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x00, 0x22, 0x70, 0xe0, + 0xff, 0xff, 0x0f, 0x40, 0x04, 0x00, 0x22, 0xf0, 0x41, 0x00, 0x00, 0x04, + 0x7f, 0xfc, 0xff, 0xff, 0x1f, 0x86, 0x00, 0x00, 0x02, 0x40, 0x04, 0x00, + 0x00, 0x10, 0x08, 0x01, 0x00, 0x01, 0x40, 0x04, 0x00, 0x00, 0x10, 0x10, + 0x02, 0x80, 0x00, 0x40, 0x04, 0x00, 0x00, 0x10, 0x20, 0x04, 0x40, 0x00, + 0x7f, 0xfc, 0xff, 0xff, 0x1f, 0x40, 0x08, 0x20, 0x00, 0x40, 0x04, 0x00, + 0x22, 0xf0, 0x40, 0x10, 0x10, 0x00, 0x40, 0x04, 0x00, 0x22, 0x70, 0x81, + 0x20, 0x08, 0x00, 0x40, 0x04, 0x00, 0x22, 0x00, 0x82, 0x40, 0x04, 0x00, + 0x40, 0x04, 0x00, 0x22, 0x00, 0x83, 0x41, 0x04, 0x00, 0x40, 0x04, 0x00, + 0x22, 0x00, 0x83, 0x41, 0x04, 0x00, 0x40, 0x04, 0x00, 0x22, 0x00, 0xff, + 0x41, 0x04, 0x00, 0x40, 0x04, 0x00, 0x22, 0x00, 0x44, 0x40, 0x04, 0x00}; diff --git a/custom/bitmaps/realeye.xbm b/custom/bitmaps/realeye.xbm new file mode 100644 index 0000000..aaa94bf --- /dev/null +++ b/custom/bitmaps/realeye.xbm @@ -0,0 +1,73 @@ +#define realeye_width 112 +#define realeye_height 75 +static char realeye_bits[] = { + 0x12,0x49,0x54,0x80,0x22,0x51,0x8a,0xa8,0x0a,0x02,0xa0,0x88,0x14,0x04,0xa5, + 0x92,0x80,0x2a,0x48,0xa2,0x24,0x02,0x40,0x54,0x05,0x12,0xa1,0x52,0x49,0x44, + 0x4a,0x40,0x95,0x14,0x49,0xa9,0x8a,0x00,0xa8,0xa4,0x04,0x08,0x95,0x12,0x10, + 0x95,0x20,0x21,0x12,0x12,0x50,0xaa,0x42,0x12,0xa8,0xa2,0x22,0x49,0x45,0x28, + 0x55,0x4a,0x49,0x49,0x05,0x00,0x14,0x49,0x01,0x04,0xaa,0x24,0x88,0x42,0x82, + 0x94,0x24,0x22,0xa8,0xaa,0x40,0x24,0xaa,0xa8,0x49,0x92,0x52,0x55,0x34,0x11, + 0x89,0x84,0x02,0x10,0x25,0x41,0x00,0x01,0x92,0x44,0x84,0x94,0x4a,0xaa,0x52, + 0x29,0xa8,0x0a,0x00,0x94,0xaa,0x54,0x24,0x29,0x29,0xa5,0x94,0x12,0x04,0x42, + 0x01,0xa0,0xaa,0x20,0x20,0x22,0x4a,0x4a,0x52,0xa9,0x22,0xa9,0x52,0x14,0xaa, + 0x12,0x00,0x8a,0x8a,0x48,0x55,0x91,0xaa,0x4a,0x55,0x45,0x84,0x20,0x00,0x40, + 0x95,0x00,0x20,0x12,0x92,0x4a,0xa9,0x52,0xa2,0x92,0x12,0x45,0x29,0x15,0x00, + 0x54,0x89,0xa4,0xa5,0x94,0xaa,0x2a,0x55,0x24,0x41,0x08,0x00,0x40,0x55,0x01, + 0x20,0x12,0x54,0x51,0xaa,0x54,0x25,0x49,0x5a,0xf5,0xb6,0x12,0x00,0x24,0x85, + 0x48,0x15,0x55,0x55,0x49,0x49,0x22,0xa5,0x4a,0x49,0x80,0x54,0x01,0x28,0xa2, + 0x54,0xa5,0x54,0x55,0x92,0xd4,0xaa,0xaa,0xaa,0x5f,0x82,0x54,0x81,0x08,0x55, + 0x29,0xab,0xaa,0x4a,0x5b,0x25,0x11,0x12,0x50,0x15,0x02,0x24,0xa2,0xa5,0x6a, + 0xa9,0xaa,0xa2,0xae,0x54,0xca,0xa4,0xb6,0xa2,0x94,0x80,0x08,0x54,0x95,0x56, + 0x25,0x55,0x45,0x25,0x11,0xa9,0x44,0x1d,0x01,0x29,0x52,0xaa,0xaa,0xaa,0x6a, + 0x55,0x29,0x54,0x4a,0x22,0x29,0xf1,0x2a,0x84,0x88,0x55,0x55,0x55,0x89,0xaa, + 0x52,0x35,0x11,0xa4,0x52,0xa5,0x92,0x10,0x51,0x52,0xa9,0xaa,0x6a,0x55,0xa4, + 0xaa,0xa4,0x29,0x04,0x95,0x16,0x25,0x02,0xaa,0xaa,0x55,0xd5,0x96,0x5a,0x5b, + 0x4d,0xaa,0x52,0x28,0x55,0x49,0xa9,0xaa,0xaa,0x5a,0x55,0x55,0x54,0xdd,0x29, + 0x59,0xa9,0xa2,0xaa,0x94,0x24,0x5a,0x6b,0xab,0x5a,0x5b,0x0b,0xbd,0xaa,0x3a, + 0x81,0x14,0x51,0x25,0x49,0xab,0xaa,0xaa,0x56,0x6b,0xa9,0xec,0xab,0x5c,0x55, + 0xa5,0xaa,0x4b,0x95,0x6a,0x75,0xb5,0x4a,0xac,0xa6,0x76,0x56,0xbd,0xa4,0x45, + 0x95,0x54,0x52,0xaa,0xaa,0xaa,0xaa,0x36,0x55,0x7c,0x5b,0x5d,0x89,0x92,0x52, + 0xab,0x4a,0xaa,0x56,0x6d,0xab,0x5a,0x2e,0xf9,0xfe,0x7f,0xf3,0xa2,0xd5,0x48, + 0x92,0x5a,0x6d,0xab,0x4a,0x9d,0x75,0xed,0xff,0xff,0xfe,0x54,0x35,0x95,0xa4, + 0xd5,0xaa,0x6a,0x95,0xb8,0x6d,0xfa,0xff,0x7f,0xf3,0xa2,0xe9,0xaa,0x2a,0x5a, + 0xf5,0xaa,0x2d,0x65,0xfb,0xff,0xff,0xde,0xbf,0x6a,0x1d,0x25,0x51,0x55,0xad, + 0x55,0xab,0xd4,0xff,0xff,0xff,0xf5,0xbf,0xfb,0x55,0x5a,0xa6,0xab,0xea,0x5a, + 0x5d,0xe5,0xff,0xff,0x7f,0xab,0x7e,0xd5,0x55,0x95,0x8a,0x6d,0xdb,0xd6,0x6a, + 0xeb,0xff,0xff,0xff,0xdf,0xff,0x7f,0x8d,0x52,0xb1,0x5a,0x55,0x97,0xf6,0xff, + 0xff,0xff,0xf7,0xff,0xdf,0xdf,0xab,0x24,0xaa,0xb5,0xaa,0xbb,0xfa,0xde,0xff, + 0xff,0xfd,0xdf,0x7f,0xf7,0x56,0x49,0x55,0x56,0xb5,0xae,0xf6,0xff,0xff,0xdf, + 0xff,0x7b,0x4f,0xd8,0x5f,0x9b,0x48,0xaa,0xab,0xfd,0xfd,0xff,0xff,0x77,0xf5, + 0xdf,0x1d,0x40,0xfb,0x76,0x2b,0x55,0x5d,0xb5,0xfe,0xff,0xf7,0xdf,0xea,0xbf, + 0x5f,0xc0,0x5d,0xab,0x4a,0x55,0xb5,0xfa,0xff,0xff,0xf9,0x5b,0xfc,0x07,0x30, + 0x00,0xf4,0xfe,0x55,0xaa,0xd6,0xa7,0xff,0x7f,0xf1,0x86,0xf0,0x13,0x68,0x00, + 0xa0,0x55,0xbf,0x4a,0xf5,0xff,0xff,0x17,0xf0,0x9f,0xed,0x03,0x74,0x00,0x00, + 0xef,0xeb,0x55,0xf5,0xff,0xff,0x0f,0xf4,0x9a,0xf5,0x03,0x2c,0x00,0x40,0xd5, + 0xbf,0xa9,0xaa,0xfd,0xff,0x93,0xf0,0x07,0xf0,0x47,0x6a,0x00,0x00,0x65,0x55, + 0xaa,0xfe,0xff,0xff,0x06,0xf0,0x55,0xfe,0x83,0x76,0x00,0xa0,0xd2,0x5b,0xaa, + 0xea,0xff,0xff,0x13,0xf0,0x87,0xfa,0x03,0x5d,0x00,0x08,0xea,0x56,0x89,0xbe, + 0xff,0xff,0x02,0xf0,0x5a,0xfd,0xd7,0x6a,0x00,0xe1,0xa4,0x55,0x52,0xf1,0xff, + 0xff,0x15,0xe4,0xa3,0xf6,0xad,0x1e,0xa0,0x9a,0x7a,0x0b,0xa5,0xf6,0xff,0xb7, + 0x03,0xe0,0x56,0xbb,0x4b,0x7d,0x00,0x55,0xd5,0x52,0xaa,0xfd,0xff,0x5b,0x2d, + 0xa1,0xeb,0x6e,0xdf,0x17,0x6a,0xaa,0xaa,0x04,0x29,0xeb,0x7e,0xff,0x4a,0xe0, + 0xbf,0xfb,0xb7,0x74,0x55,0x51,0x55,0x52,0xa4,0xfe,0xfd,0xbf,0x95,0xa4,0xf7, + 0xee,0xaf,0x55,0xac,0x4a,0x4a,0x84,0xa9,0x10,0xd7,0xff,0xbf,0x4a,0xaf,0xf5, + 0x5a,0xa5,0x21,0x94,0x92,0x12,0x44,0xed,0xfa,0xdd,0xeb,0xdf,0x90,0x94,0xbe, + 0x4b,0xad,0xa2,0x94,0x48,0x29,0x55,0xed,0xf7,0x5f,0xad,0x24,0xa9,0xf5,0x2b, + 0x49,0x29,0x29,0x92,0x44,0x92,0xf5,0x7e,0xfb,0xff,0xff,0xf6,0x9e,0x42,0x15, + 0x44,0x42,0x25,0x91,0xa4,0x5a,0xd5,0xb7,0xab,0xaf,0x95,0xa2,0x14,0x49,0xa9, + 0x2c,0x48,0x4a,0x92,0xaa,0xed,0xe6,0x7a,0x97,0xa1,0x2a,0xa1,0x92,0x12,0x91, + 0x95,0x24,0x29,0x55,0xb5,0xad,0xd3,0xa7,0x55,0xb1,0x42,0x28,0xa4,0x4a,0x22, + 0x81,0x44,0x54,0x75,0xb5,0x2e,0x4b,0xa9,0x24,0x14,0x45,0x49,0x92,0x94,0x54, + 0x92,0xa2,0x5a,0xed,0x95,0x91,0x24,0x42,0x21,0x92,0x92,0x24,0x25,0x22,0x24, + 0x95,0xd4,0xaa,0x4a,0x4b,0x41,0x14,0x44,0x48,0x22,0x49,0x89,0x94,0x52,0x22, + 0x95,0x52,0x95,0x22,0x29,0xa1,0x90,0x92,0x94,0x94,0x52,0x40,0x84,0x54,0x51, + 0x49,0x22,0x88,0x84,0x04,0x22,0x22,0x22,0x21,0x84,0x2a,0x29,0x89,0x2a,0xa5, + 0x44,0x41,0x51,0x90,0x88,0x94,0x44,0xaa,0x52,0x81,0x40,0x12,0x50,0x02,0x29, + 0x8a,0x02,0x41,0x52,0x21,0x29,0x45,0x24,0x54,0x2a,0x49,0x85,0x54,0x42,0x21, + 0x28,0x14,0x04,0x4a,0x92,0x28,0x89,0x89,0x44,0x92,0x54,0x49,0x29,0x44,0x01, + 0x41,0xa9,0x90,0x44,0x12,0x22,0x22,0x11,0x21,0x12,0x91,0x44,0x11,0x24,0x14, + 0x02,0x22,0x92,0xa4,0x54,0x49,0xa4,0x44,0x44,0x22,0x12,0x84,0x90,0xa2,0xa8, + 0x94,0x48,0x8a,0x82,0x04,0x09,0x88,0x90,0x94,0x40,0x21,0x22,0x08,0x02,0x01, + 0x91,0x50,0x28,0x51,0xa2,0x22,0x25,0x40,0x0a,0x44,0x49,0x45,0x54,0xaa,0x24, + 0x85,0x52,0x24,0x08,0x48,0x88,0x2a,0x50,0x11,0x04,0x10,0x81,0x40,0x4a,0x2a, + 0x85,0x92,0xa2,0x22,0x21,0x80,0x02,0x44,0x51,0x41,0x14,0x15,0x91,0x50,0x28}; diff --git a/custom/bitmaps/rtl.h b/custom/bitmaps/rtl.h new file mode 100644 index 0000000..e34ca4b --- /dev/null +++ b/custom/bitmaps/rtl.h @@ -0,0 +1,46 @@ +#define noname_width 64 +#define noname_height 64 +static char noname_bits[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, 0xe1, 0x08, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x11, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x11, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, 0x11, 0x88, 0xa9, 0x31, + 0xc5, 0x09, 0x00, 0x80, 0xe1, 0x48, 0x5a, 0x4a, 0x2b, 0x08, 0x00, 0x80, + 0x01, 0xc9, 0x4b, 0x7a, 0xc9, 0x08, 0x00, 0x80, 0x01, 0x49, 0x48, 0x0a, + 0x09, 0x09, 0x00, 0x80, 0x11, 0x49, 0x4a, 0x4a, 0x29, 0x09, 0x00, 0x80, + 0xe1, 0x88, 0x49, 0x32, 0xc9, 0x08, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0xf0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x10, 0xff, 0xe1, 0x7f, 0x0c, 0x80, 0x01, 0x00, 0x10, 0xff, + 0xe3, 0x7f, 0x0c, 0x80, 0x01, 0x00, 0x10, 0x03, 0x03, 0x06, 0x0c, 0x80, + 0x01, 0x00, 0x10, 0x03, 0x03, 0x06, 0x0c, 0x80, 0x01, 0x00, 0x10, 0x03, + 0x03, 0x06, 0x0c, 0x80, 0x01, 0x00, 0x10, 0xff, 0x01, 0x06, 0x0c, 0x80, + 0x01, 0x00, 0x10, 0xff, 0x01, 0x06, 0x0c, 0x80, 0x01, 0x00, 0x10, 0x03, + 0x03, 0x06, 0x0c, 0x80, 0x01, 0x00, 0x10, 0x03, 0x03, 0x06, 0x0c, 0x80, + 0x01, 0x00, 0x10, 0x03, 0x03, 0x06, 0x0c, 0x80, 0x01, 0x00, 0x10, 0x03, + 0x03, 0x06, 0xfc, 0x87, 0x01, 0x00, 0x10, 0x03, 0x03, 0x06, 0xfc, 0x87, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; diff --git a/custom/bitmaps/rtl.xbm b/custom/bitmaps/rtl.xbm new file mode 100644 index 0000000..48a7833 --- /dev/null +++ b/custom/bitmaps/rtl.xbm @@ -0,0 +1,72 @@ +/* +static char sccs_id[] = "%W% %H%"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#define rtl_icon_width 64 +#define rtl_icon_height 64 +static char rtl_icon_bits[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, 0xe1, 0x08, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x11, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x11, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, 0x11, 0x88, 0xa9, 0x31, + 0xc5, 0x09, 0x00, 0x80, 0xe1, 0x48, 0x5a, 0x4a, 0x2b, 0x08, 0x00, 0x80, + 0x01, 0xc9, 0x4b, 0x7a, 0xc9, 0x08, 0x00, 0x80, 0x01, 0x49, 0x48, 0x0a, + 0x09, 0x09, 0x00, 0x80, 0x11, 0x49, 0x4a, 0x4a, 0x29, 0x09, 0x00, 0x80, + 0xe1, 0x88, 0x49, 0x32, 0xc9, 0x08, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0xf0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x10, 0xff, 0xe1, 0x7f, 0x0c, 0x80, 0x01, 0x00, 0x10, 0xff, + 0xe3, 0x7f, 0x0c, 0x80, 0x01, 0x00, 0x10, 0x03, 0x03, 0x06, 0x0c, 0x80, + 0x01, 0x00, 0x10, 0x03, 0x03, 0x06, 0x0c, 0x80, 0x01, 0x00, 0x10, 0x03, + 0x03, 0x06, 0x0c, 0x80, 0x01, 0x00, 0x10, 0xff, 0x01, 0x06, 0x0c, 0x80, + 0x01, 0x00, 0x10, 0xff, 0x01, 0x06, 0x0c, 0x80, 0x01, 0x00, 0x10, 0x03, + 0x03, 0x06, 0x0c, 0x80, 0x01, 0x00, 0x10, 0x03, 0x03, 0x06, 0x0c, 0x80, + 0x01, 0x00, 0x10, 0x03, 0x03, 0x06, 0x0c, 0x80, 0x01, 0x00, 0x10, 0x03, + 0x03, 0x06, 0xfc, 0x87, 0x01, 0x00, 0x10, 0x03, 0x03, 0x06, 0xfc, 0x87, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; diff --git a/custom/bitmaps/tex.xbm b/custom/bitmaps/tex.xbm new file mode 100644 index 0000000..9adf195 --- /dev/null +++ b/custom/bitmaps/tex.xbm @@ -0,0 +1,22 @@ +#define noname_width 54 +#define noname_height 32 +static char noname_bits[] = { + 0xff, 0xff, 0x07, 0x00, 0x7f, 0x00, 0x3f, 0xff, 0xff, 0x07, 0x00, 0x1c, + 0x00, 0x0c, 0x07, 0x07, 0x07, 0x00, 0x1c, 0x00, 0x04, 0x03, 0x07, 0x06, + 0x00, 0x38, 0x00, 0x06, 0x01, 0x07, 0x04, 0x00, 0x70, 0x00, 0x03, 0x01, + 0x07, 0x04, 0x00, 0x70, 0x80, 0x01, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x80, + 0x00, 0x00, 0x07, 0xfe, 0xff, 0xc1, 0xc1, 0x00, 0x00, 0x07, 0xfc, 0xff, + 0xc1, 0x61, 0x00, 0x00, 0x07, 0x1c, 0xc0, 0x81, 0x33, 0x00, 0x00, 0x07, + 0x1c, 0x80, 0x01, 0x17, 0x00, 0x00, 0x07, 0x1c, 0x00, 0x01, 0x1f, 0x00, + 0x00, 0x07, 0x1c, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x07, 0x1c, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x07, 0x1c, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x07, 0x1c, + 0x00, 0x00, 0x3b, 0x00, 0x00, 0x07, 0x1c, 0x08, 0x80, 0x71, 0x00, 0x00, + 0x07, 0x1c, 0x08, 0xc0, 0x70, 0x00, 0x00, 0x07, 0xfc, 0x0f, 0x40, 0xe0, + 0x00, 0x00, 0x07, 0xfc, 0x0f, 0x60, 0xc0, 0x01, 0x00, 0x07, 0x1c, 0x08, + 0x30, 0xc0, 0x01, 0x00, 0x07, 0x1c, 0x08, 0x18, 0x80, 0x03, 0x00, 0x07, + 0x1c, 0x00, 0x08, 0x00, 0x07, 0x00, 0x07, 0x1c, 0x00, 0x0c, 0x00, 0x07, + 0xc0, 0x1f, 0x1c, 0x00, 0x7f, 0x80, 0x3f, 0x00, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x1c, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0x01, 0x00, 0x00}; diff --git a/custom/bitmaps/timex.xbm b/custom/bitmaps/timex.xbm new file mode 100644 index 0000000..ebcad2f --- /dev/null +++ b/custom/bitmaps/timex.xbm @@ -0,0 +1,38 @@ +#define timex_width 64 +#define timex_height 64 +static char timex_bits[] = { + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x07,0xe0,0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0xfe, + 0xff,0xff,0xff,0xff,0x0f,0x40,0x06,0xf0,0xff,0xff,0xff,0xff,0x03,0x40,0x09, + 0xc0,0xff,0xff,0xff,0xff,0x00,0x40,0x08,0x00,0xff,0xff,0xff,0x7f,0x00,0x40, + 0x06,0x00,0xfe,0xff,0xff,0x1f,0x24,0x40,0x01,0x10,0xf8,0xff,0xff,0x0f,0x24, + 0x40,0x01,0x10,0xf0,0xff,0xff,0x07,0x24,0x40,0x0f,0x10,0xe0,0xff,0xff,0x03, + 0x24,0x00,0x00,0x10,0xc0,0xff,0xff,0x01,0x24,0x00,0x00,0x10,0x80,0xff,0xff, + 0x00,0x24,0x00,0x00,0x10,0x00,0xff,0xff,0x00,0x24,0x00,0x00,0x10,0x00,0xff, + 0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x3f,0x00,0x00,0x00,0x00,0x00,0x00, + 0xfc,0x3f,0x32,0x00,0x00,0x00,0x00,0x30,0xfc,0x1f,0x4a,0x00,0x00,0x00,0x00, + 0x48,0xf8,0x1f,0x4a,0x00,0x00,0x00,0x00,0x40,0xf8,0x0f,0x4a,0x00,0x00,0x00, + 0x00,0x30,0xf0,0x0f,0x4a,0x00,0x00,0x00,0x00,0x08,0xf0,0x0f,0x4a,0x00,0x00, + 0x00,0x00,0x08,0xf0,0x07,0x32,0x00,0x00,0x00,0x00,0x78,0xe0,0x07,0x00,0x00, + 0x00,0x00,0x00,0x00,0xe0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x07,0x00, + 0x00,0x00,0x00,0x00,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xc3, + 0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x23,0x01,0x00,0x00,0x00,0x00,0x00,0xc3, + 0x23,0x01,0x00,0x80,0x01,0x00,0x80,0xc4,0xc3,0x01,0x00,0xc0,0x03,0x00,0x00, + 0xc4,0x03,0x01,0x00,0xc0,0x03,0x00,0x00,0xc3,0x23,0x01,0x00,0x80,0x01,0x00, + 0x00,0xc4,0xc3,0x00,0x00,0x00,0x00,0x00,0x80,0xc4,0x03,0x00,0x00,0x00,0x00, + 0x00,0x00,0xc3,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x07,0x00,0x00,0x00, + 0x00,0x00,0x00,0xe0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x07,0x00,0x00, + 0x00,0x00,0x00,0x00,0xe0,0x07,0x0c,0xe0,0x2b,0xba,0x04,0x00,0xe0,0x0f,0x12, + 0x80,0x68,0x0b,0x03,0x48,0xf0,0x0f,0x12,0x80,0x68,0x1b,0x03,0x48,0xf0,0x0f, + 0x0c,0x80,0xa8,0x0a,0x03,0x48,0xf0,0x1f,0x12,0x80,0xa8,0xba,0x04,0x78,0xf8, + 0x1f,0x12,0x00,0x00,0x00,0x00,0x40,0xf8,0x1f,0x0c,0x00,0x00,0x00,0x00,0x40, + 0xfc,0x3f,0x00,0x00,0x00,0x00,0x00,0x40,0xfc,0x7f,0x00,0x00,0x00,0x00,0x00, + 0x00,0xfe,0xff,0x00,0x3c,0x00,0x00,0x3c,0x00,0xff,0xff,0x00,0x20,0x00,0x00, + 0x04,0x00,0xff,0xff,0x01,0x20,0x00,0x00,0x04,0x80,0xff,0xff,0x03,0x10,0x00, + 0x00,0x1c,0xc0,0xff,0xff,0x07,0x10,0x80,0x01,0x20,0xe0,0xff,0xff,0x0f,0x10, + 0x40,0x02,0x24,0xf0,0xff,0xff,0x1f,0x10,0x40,0x00,0x18,0xf8,0xff,0xff,0x7f, + 0x00,0xc0,0x01,0x00,0xfe,0xff,0xff,0xff,0x00,0x40,0x02,0x00,0xff,0xff,0xff, + 0xff,0x03,0x40,0x02,0xc0,0xff,0xff,0xff,0xff,0x0f,0x80,0x01,0xf0,0xff,0xff, + 0xff,0xff,0x7f,0x00,0x00,0xfe,0xff,0xff,0xff,0xff,0xff,0x07,0xe0,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff}; diff --git a/custom/bitmaps/tm.xbm b/custom/bitmaps/tm.xbm new file mode 100644 index 0000000..c169857 --- /dev/null +++ b/custom/bitmaps/tm.xbm @@ -0,0 +1,47 @@ +#define tm_width 74 +#define tm_height 52 +static char tm_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x0c, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, + 0x0c, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, + 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0xf8, + 0x01, 0x6d, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x60, 0x00, 0xdb, + 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x60, 0x00, 0xdb, 0x00, 0x00, + 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x60, 0x00, 0xdb, 0x00, 0x00, 0xc0, 0x00, + 0x0c, 0x00, 0x00, 0x60, 0x00, 0xdb, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, + 0x00, 0x60, 0x03, 0xdb, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0xc0, + 0x01, 0xdb, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x14, 0x6a, + 0xdb, 0x56, 0xa8, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x14, 0x54, 0x55, 0x55, 0xa8, 0x10, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x20, 0x14, 0xaa, 0xaa, 0x2a, 0xa8, 0x10, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x14, 0x54, + 0x55, 0x55, 0xa8, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x14, 0x00, 0x00, 0x00, 0xa8, 0x10, + 0x00, 0x00, 0x00, 0x20, 0x00, 0xea, 0xff, 0x57, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00}; diff --git a/custom/bitmaps/tombstone.xbm b/custom/bitmaps/tombstone.xbm new file mode 100644 index 0000000..a52d846 --- /dev/null +++ b/custom/bitmaps/tombstone.xbm @@ -0,0 +1,38 @@ +#define tombstone_width 64 +#define tombstone_height 64 +static char tombstone_bits[] = { + 0x00,0x00,0x00,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0xc0,0xfa,0x07,0x00,0x00, + 0x00,0x00,0x00,0x70,0x2f,0x3a,0x00,0x00,0x00,0x00,0x00,0xbc,0x89,0xe8,0x00, + 0x00,0x00,0x00,0x00,0x76,0x11,0x11,0x01,0x00,0x00,0x00,0x00,0x6b,0x44,0x44, + 0x02,0x00,0x00,0x00,0x80,0x36,0x22,0x22,0x06,0x00,0x00,0x00,0x40,0x8d,0x88, + 0x88,0x0c,0x00,0x00,0x00,0xc0,0x16,0x11,0x11,0x11,0x00,0x00,0x00,0xa0,0x45, + 0x44,0x44,0x14,0x00,0x00,0x00,0xe0,0x22,0x22,0x22,0x22,0x00,0x00,0x00,0xb0, + 0x8b,0x88,0x88,0x28,0x00,0x00,0x00,0xd0,0x12,0x11,0x11,0x31,0x00,0x00,0x00, + 0xb8,0x45,0x44,0x44,0x44,0x00,0x00,0x00,0x78,0x23,0x22,0x22,0x62,0x00,0x00, + 0x00,0xa8,0x89,0x88,0x88,0x48,0x00,0x00,0x00,0x58,0x11,0x11,0x11,0x51,0x00, + 0x00,0x00,0xa8,0x45,0x44,0x44,0x44,0x00,0x00,0x00,0x58,0x23,0x22,0x22,0x62, + 0x00,0x00,0x00,0xa8,0x89,0x88,0x88,0x48,0x00,0x00,0x00,0x58,0xff,0xff,0xff, + 0x7f,0x00,0x00,0x00,0xa8,0x03,0x00,0x00,0x60,0x00,0x00,0x00,0x58,0xfb,0xc0, + 0xe3,0x67,0x00,0x00,0x00,0xa8,0x33,0x81,0xc1,0x6c,0x00,0x00,0x00,0x58,0x33, + 0x83,0xc1,0x6c,0x00,0x00,0x00,0xa8,0x33,0x83,0xc1,0x6c,0x00,0x00,0x00,0x58, + 0x33,0x81,0xc1,0x6c,0x00,0x00,0x00,0xa8,0xf3,0x80,0xc1,0x67,0x00,0x00,0x00, + 0x58,0xb3,0x80,0xc1,0x60,0x00,0x00,0x00,0xa8,0xb3,0x81,0xc1,0x60,0x00,0x00, + 0x00,0x58,0xb3,0x81,0xc1,0x60,0x00,0x00,0x00,0xa8,0x33,0x97,0xc9,0x64,0x00, + 0x00,0x00,0x58,0x7b,0xd6,0xeb,0x65,0x00,0x00,0x00,0xa8,0x03,0x00,0x00,0x60, + 0x00,0x00,0x00,0x58,0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0xa8,0x89,0x88,0x88, + 0x48,0x00,0x00,0x00,0x58,0x11,0x11,0x11,0x51,0x00,0x00,0x00,0xa8,0x45,0x44, + 0x44,0x44,0x00,0x00,0x00,0x58,0x23,0x22,0x22,0x62,0x00,0x00,0x00,0xa8,0x89, + 0x88,0x88,0x48,0x00,0x00,0x00,0x58,0x11,0x11,0x11,0x51,0x00,0x00,0x00,0xa8, + 0x45,0x44,0x44,0x44,0x00,0x00,0x80,0x58,0x23,0x22,0x22,0x62,0x00,0x00,0x80, + 0xac,0x89,0x88,0x88,0x48,0x00,0x00,0x40,0x5d,0x11,0x11,0x11,0x51,0x08,0x00, + 0x40,0xab,0x45,0x44,0x44,0x44,0x08,0x00,0x40,0xfb,0x33,0x22,0x22,0x63,0x1c, + 0x00,0x90,0xae,0x99,0x8a,0xa8,0x69,0x9c,0x00,0xa0,0xfe,0xd9,0x57,0x59,0xd1, + 0x6a,0x00,0xa0,0xfa,0x5d,0x5f,0xdd,0xf5,0x7a,0x00,0xc0,0xfc,0xeb,0xba,0x2a, + 0xeb,0x75,0x00,0x40,0xd5,0xff,0xff,0xff,0xff,0x73,0x00,0x80,0xc3,0x74,0x75, + 0x2b,0xf5,0x9a,0x00,0x80,0x83,0x34,0x75,0x5d,0x8b,0x95,0x00,0x00,0x00,0x18, + 0x2e,0x49,0x3d,0x0a,0x00,0x00,0x00,0x00,0x68,0x35,0x12,0x00,0x00,0x00,0x00, + 0x00,0x00,0x43,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00}; diff --git a/custom/bitmaps/traffic.xbm b/custom/bitmaps/traffic.xbm new file mode 100644 index 0000000..634caa3 --- /dev/null +++ b/custom/bitmaps/traffic.xbm @@ -0,0 +1,38 @@ +#define traffic_width 64 +#define traffic_height 64 +static char traffic_bits[] = { + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x7f,0x7f,0xff,0xfe,0x00, + 0x80,0x01,0x00,0x7f,0x7f,0xff,0xfe,0x00,0x80,0x01,0x00,0xff,0x7f,0xff,0xff, + 0x00,0x80,0x01,0x00,0xff,0x7f,0xff,0xc7,0x00,0x80,0x01,0x00,0xff,0x7f,0xff, + 0xc7,0x00,0x80,0x01,0x00,0x7f,0x7f,0xff,0xc6,0x00,0x80,0x01,0x00,0x7f,0x7f, + 0xff,0xc6,0x00,0x80,0x01,0x00,0xe3,0x7f,0xff,0xc7,0x00,0x80,0x01,0x00,0xe3, + 0x7f,0xff,0xc7,0x00,0x80,0x01,0x00,0xe3,0x7f,0xff,0xff,0x00,0x80,0x01,0x00, + 0x63,0x7f,0xff,0xfe,0x00,0x80,0x01,0x00,0x63,0x7f,0xff,0xfe,0x00,0x80,0x01, + 0x00,0xe3,0x7f,0xff,0xff,0x00,0x80,0x01,0x00,0xff,0x7f,0xff,0xff,0x00,0x80, + 0x01,0x00,0xff,0x7f,0xff,0xff,0x00,0x80,0xff,0x7f,0x7f,0x63,0xff,0xfe,0xfe, + 0xff,0xff,0x7f,0x7f,0x63,0xff,0xfe,0xfe,0xff,0xf1,0x7f,0xff,0x63,0xff,0xff, + 0xfe,0xff,0xf1,0x7f,0xff,0x63,0xff,0xff,0xfe,0xff,0xf1,0x7f,0xff,0x63,0xff, + 0xff,0xfe,0xff,0xff,0x7f,0x7f,0x63,0xff,0xfe,0xfe,0xff,0xff,0x7f,0x7f,0x63, + 0xff,0xfe,0xfe,0xff,0x39,0x67,0xff,0x7f,0xff,0xff,0xce,0xb9,0xff,0x7f,0xff, + 0x7f,0xff,0xff,0xfe,0xff,0xff,0x7f,0xff,0x7f,0xff,0xff,0xfe,0xff,0xff,0x7f, + 0x7f,0x7f,0xff,0xfe,0xfe,0xff,0xff,0x7f,0x7f,0x7f,0xff,0xfe,0xfe,0xff,0xff, + 0x7f,0xff,0x7f,0xff,0xff,0xfe,0xff,0xff,0x7f,0xff,0x7f,0xff,0xff,0xfe,0xff, + 0xff,0x7f,0xff,0x7f,0xff,0xff,0xfe,0xff,0x01,0x00,0x7f,0x7f,0xff,0xfe,0x00, + 0x80,0xff,0x7f,0x7f,0x7f,0xff,0xfe,0xfe,0xff,0xff,0x7f,0xff,0x7f,0xff,0xff, + 0xfe,0xff,0xff,0x7f,0xff,0x7f,0xff,0xff,0xfe,0xff,0xff,0x7f,0xff,0x7f,0xff, + 0xff,0xfe,0xff,0xff,0x7f,0x7f,0x7f,0xff,0xfe,0xfe,0xff,0xff,0x7f,0x7f,0x7f, + 0xff,0xfe,0xfe,0xff,0xff,0x7f,0xff,0x7f,0xff,0xff,0xfe,0xff,0xff,0x7f,0xff, + 0x7f,0xff,0xff,0xfe,0xff,0x39,0x67,0xff,0x7f,0xff,0xff,0xce,0xb9,0xff,0x7f, + 0x7f,0x7f,0xff,0xfe,0xfe,0xff,0xff,0x7f,0x7f,0x7f,0xff,0xfe,0xfe,0xff,0xff, + 0x7f,0xff,0x7f,0xff,0xff,0x3e,0xf0,0xff,0x7f,0xff,0x7f,0xff,0xff,0x3e,0xf0, + 0xff,0x7f,0xff,0x7f,0xff,0xff,0x3e,0xf0,0xff,0x7f,0x7f,0x7f,0xff,0xfe,0xfe, + 0xff,0xff,0x7f,0x7f,0x7f,0xff,0xfe,0xfe,0xff,0x01,0x00,0xff,0x7f,0xff,0xff, + 0x00,0x80,0x01,0x00,0xff,0x7f,0xff,0xff,0x00,0x80,0x01,0x00,0xe3,0x7f,0xff, + 0xff,0x00,0x80,0x01,0x00,0x63,0x7f,0xff,0xfe,0x00,0x80,0x01,0x00,0x63,0x7f, + 0xff,0xfe,0x00,0x80,0x01,0x00,0xe3,0x7f,0xff,0xff,0x00,0x80,0x01,0x00,0xe3, + 0x7f,0xff,0xff,0x00,0x80,0x01,0x00,0xe3,0x7f,0xff,0xff,0x00,0x80,0x01,0x00, + 0x7f,0x7f,0xff,0xfe,0x00,0x80,0x01,0x00,0x7f,0x7f,0xff,0xfe,0x00,0x80,0x01, + 0x00,0xff,0x7f,0xff,0xff,0x00,0x80,0x01,0x00,0xff,0x7f,0xff,0xff,0x00,0x80, + 0x01,0x00,0xff,0x7f,0xff,0xff,0x00,0x80,0x01,0x00,0x7f,0x7f,0xff,0xfe,0x00, + 0x80,0x01,0x00,0x7f,0x7f,0xff,0xfe,0x00,0x80,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff}; diff --git a/custom/bitmaps/typescript.xbm b/custom/bitmaps/typescript.xbm new file mode 100644 index 0000000..9093c4f --- /dev/null +++ b/custom/bitmaps/typescript.xbm @@ -0,0 +1,46 @@ +#define noname_width 64 +#define noname_height 64 +static char noname_bits[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0x11, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x84, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x88, + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x90, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc2, 0x90, + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x91, 0x09, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x91, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x91, + 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x90, 0xe1, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x7f, 0x88, 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, + 0x01, 0x20, 0x00, 0x00, 0x1c, 0xf0, 0x00, 0x88, 0x01, 0x10, 0xc0, 0x1f, + 0xe3, 0x9d, 0x01, 0x84, 0x01, 0x10, 0x3c, 0xf0, 0x01, 0x00, 0x06, 0x84, + 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x01, 0x08, 0xe0, 0x07, + 0x70, 0xf0, 0x03, 0x82, 0x01, 0x08, 0x9e, 0xec, 0xcb, 0x1f, 0x04, 0x82, + 0x01, 0x04, 0x00, 0x10, 0x04, 0x00, 0x00, 0x81, 0x01, 0x04, 0x70, 0x00, + 0x00, 0xd8, 0x01, 0x81, 0x01, 0x04, 0x9f, 0xfb, 0xc7, 0x27, 0x02, 0x81, + 0x01, 0x82, 0x00, 0x04, 0x38, 0x01, 0x80, 0x80, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x80, 0x01, 0x41, 0x18, 0x08, 0x80, 0x13, 0x40, 0x80, + 0x01, 0x41, 0x67, 0xfd, 0xf3, 0xee, 0x40, 0x80, 0x81, 0x80, 0x80, 0x00, + 0x0e, 0x00, 0x20, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x80, + 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x80, 0x41, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x80, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x80, + 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x80, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x80, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80, + 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x80, 0x11, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x80, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x80, + 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x80, 0x09, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x80, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, 0x05, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x80, 0x05, 0x93, 0xc7, 0x61, 0x18, 0x00, 0x01, 0x80, + 0x05, 0x60, 0x24, 0x9e, 0x37, 0x04, 0x01, 0x80, 0x05, 0x00, 0x18, 0x0c, + 0xc0, 0x03, 0x01, 0x80, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, + 0x05, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0xc5, 0x42, 0x38, 0x00, + 0x00, 0x08, 0x01, 0x80, 0x05, 0xbc, 0x6f, 0xf8, 0x3c, 0x0c, 0xff, 0x8f, + 0x05, 0x08, 0x80, 0x07, 0xc3, 0x07, 0x81, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x41, 0xa0, 0x05, 0x40, 0x00, 0x00, 0x00, 0x00, 0x41, 0xa0, + 0x85, 0xe7, 0x7c, 0x10, 0x18, 0x04, 0x41, 0xa2, 0x85, 0x94, 0x83, 0x6e, + 0xae, 0x1f, 0x81, 0xa1, 0x09, 0x08, 0x00, 0x83, 0xe1, 0x10, 0x02, 0xa0, + 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x90, 0x31, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x88, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; diff --git a/custom/bitmaps/xterm.xbm b/custom/bitmaps/xterm.xbm new file mode 100644 index 0000000..db91ff0 --- /dev/null +++ b/custom/bitmaps/xterm.xbm @@ -0,0 +1,38 @@ +#define xterm_width 74 +#define xterm_height 52 +static char xterm_bits[] = { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00, + 0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x1c,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xe0,0x00,0x0c,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0xc0,0x00, + 0x0c,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0xc0,0x00,0x0c,0x00,0x00,0x06,0x00, + 0x00,0x00,0x00,0xc0,0x00,0x0c,0x00,0xb3,0x1f,0x3e,0x76,0xda,0x00,0xc0,0x00, + 0x0c,0x00,0x33,0x06,0x63,0xde,0xb6,0x01,0xc0,0x00,0x0c,0x00,0x1e,0x06,0x63, + 0x06,0xb6,0x01,0xc0,0x00,0x0c,0x00,0x0c,0x06,0x7f,0x06,0xb6,0x01,0xc0,0x00, + 0x0c,0x00,0x1e,0x06,0x03,0x06,0xb6,0x01,0xc0,0x00,0x0c,0x00,0x33,0x36,0x63, + 0x06,0xb6,0x01,0xc0,0x00,0x0c,0x00,0x33,0x1c,0x3e,0x06,0xb6,0x01,0xc0,0x00, + 0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x0c,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xc0,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00, + 0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x0c,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xc0,0x00,0x0c,0xff,0x30,0x87,0x07,0x1e,0x00,0x00,0xc0,0x00, + 0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x0c,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xc0,0x00,0x0c,0xc7,0xf7,0xf2,0x8f,0x07,0x1c,0x00,0xc0,0x00, + 0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x0c,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xc0,0x00,0x0c,0xff,0xfd,0x1b,0x8f,0xf7,0x01,0x00,0xc0,0x00, + 0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x0c,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xc0,0x00,0x0c,0x8f,0xee,0xe7,0x99,0xff,0x1f,0x00,0xc0,0x00, + 0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,0x1c,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xe0,0x00,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00, + 0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x20,0x00,0x00,0x00, + 0x00,0x00,0x10,0x00,0x00,0x00,0x20,0x14,0x6a,0xdb,0x56,0xa8,0x10,0x00,0x00, + 0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x20,0x14,0x54,0x55, + 0x55,0xa8,0x10,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00, + 0x00,0x20,0x14,0xaa,0xaa,0x2a,0xa8,0x10,0x00,0x00,0x00,0x20,0x00,0x00,0x00, + 0x00,0x00,0x10,0x00,0x00,0x00,0x20,0x14,0x54,0x55,0x55,0xa8,0x10,0x00,0x00, + 0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x20,0x14,0x00,0x00, + 0x00,0xa8,0x10,0x00,0x00,0x00,0x20,0x00,0xea,0xff,0x57,0x00,0x10,0x00,0x00, + 0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0xe0,0xff,0xff,0xff, + 0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; diff --git a/custom/bitmaps/xterm1.xbm b/custom/bitmaps/xterm1.xbm new file mode 100644 index 0000000..e06bd33 --- /dev/null +++ b/custom/bitmaps/xterm1.xbm @@ -0,0 +1,47 @@ +#define xterm1_width 74 +#define xterm1_height 52 +static char xterm1_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x0c, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, + 0x0c, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, + 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0xb3, 0x1f, + 0x3e, 0x76, 0xda, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x33, 0x06, 0x63, 0xde, + 0xb6, 0x01, 0xc0, 0x00, 0x0c, 0x00, 0x1e, 0x06, 0x63, 0x06, 0xb6, 0x01, + 0xc0, 0x00, 0x0c, 0x00, 0x0c, 0x06, 0x7f, 0x06, 0xb6, 0x01, 0xc0, 0x00, + 0x0c, 0x00, 0x1e, 0x06, 0x03, 0x06, 0xb6, 0x01, 0xc0, 0x00, 0x0c, 0x00, + 0x33, 0x36, 0x63, 0x06, 0xb6, 0x01, 0xc0, 0x00, 0x0c, 0x00, 0x33, 0x1c, + 0x3e, 0x06, 0xb6, 0x01, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x14, 0x6a, + 0xdb, 0x56, 0xa8, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x14, 0x54, 0x55, 0x55, 0xa8, 0x10, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x20, 0x14, 0xaa, 0xaa, 0x2a, 0xa8, 0x10, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x14, 0x54, + 0x55, 0x55, 0xa8, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x14, 0x00, 0x00, 0x00, 0xa8, 0x10, + 0x00, 0x00, 0x00, 0x20, 0x00, 0xea, 0xff, 0x57, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00}; diff --git a/custom/bitmaps/zip.xbm b/custom/bitmaps/zip.xbm new file mode 100644 index 0000000..2f2ce60 --- /dev/null +++ b/custom/bitmaps/zip.xbm @@ -0,0 +1,24 @@ +#define zip_width 48 +#define zip_height 52 +static char zip_bits[] = { + 0x00,0x00,0x00,0xfc,0x03,0x00,0x00,0x00,0xc0,0xff,0x1f,0x00,0x00,0x00,0xf0, + 0xff,0x3f,0x00,0x00,0x00,0xf8,0xff,0x7f,0x00,0x00,0x00,0xfe,0xff,0x7f,0x00, + 0x00,0x00,0xff,0xff,0x7f,0x00,0x00,0xc0,0xff,0xff,0x7f,0x00,0x00,0xe0,0xff, + 0xff,0x3f,0x00,0x00,0xf0,0xff,0xff,0x1f,0x00,0x00,0xf8,0xff,0xff,0x0f,0x00, + 0x00,0xfc,0xff,0xff,0x07,0x00,0x00,0xfe,0xff,0xff,0xff,0x07,0x00,0xff,0xff, + 0xff,0x0f,0x78,0x80,0xff,0xff,0xff,0x0f,0x84,0xc0,0xff,0xe1,0xff,0x1f,0x60, + 0xe0,0x1f,0xe0,0xff,0x1f,0x1e,0xe0,0x01,0xe0,0xff,0xbf,0x01,0x70,0x00,0xe0, + 0xff,0x7f,0x00,0x18,0x00,0xe0,0xff,0x3f,0x00,0x00,0x00,0xc0,0xff,0x0f,0x00, + 0x00,0x00,0x80,0xff,0x07,0x00,0x00,0x00,0xc0,0xff,0x03,0x00,0x00,0x00,0xe0, + 0xff,0x01,0x00,0x00,0x00,0xf0,0xff,0x00,0x00,0x00,0x00,0xf8,0xff,0x00,0x00, + 0x00,0x00,0xfc,0xff,0x00,0x00,0x00,0x00,0xfe,0xfb,0x00,0x00,0x00,0x00,0xff, + 0x79,0x00,0x00,0x00,0x80,0xff,0x78,0x00,0x00,0x00,0xc0,0x7f,0x58,0x00,0x00, + 0x00,0xe0,0x3f,0xc0,0x07,0x00,0x00,0x00,0x00,0xe0,0x0f,0x00,0x00,0x00,0x00, + 0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0x03, + 0x00,0xfe,0xff,0xff,0xff,0x03,0x00,0xfe,0xff,0xff,0xff,0x03,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x06,0x0c,0x82,0x19,0x00,0x04,0x0e,0x0e,0x87,0x19,0x20, + 0x04,0x1e,0x0f,0x87,0x19,0x20,0x1f,0xbe,0x8f,0x8d,0x19,0xf8,0x0e,0xf6,0x8d, + 0x8d,0x19,0x70,0x0a,0xe6,0xcc,0x9f,0x19,0x50,0x11,0x46,0xcc,0x9f,0x19,0x88, + 0x00,0x06,0xec,0xb0,0xf9,0x03,0x00,0x06,0x6c,0xb0,0xf9,0x03,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,0x03, + 0x00,0xfe,0xff,0xff,0xff,0x03,0x00,0xfe,0xff,0xff,0xff,0x03}; diff --git a/custom/ellis/.rtl.enlarge_prorate b/custom/ellis/.rtl.enlarge_prorate new file mode 100644 index 0000000..e107c61 --- /dev/null +++ b/custom/ellis/.rtl.enlarge_prorate @@ -0,0 +1,2 @@ +rtl.autoProrate: on +rtl.biasedAutoProrate: on diff --git a/custom/ellis/.rtl.hack b/custom/ellis/.rtl.hack new file mode 100644 index 0000000..4fd5e16 --- /dev/null +++ b/custom/ellis/.rtl.hack @@ -0,0 +1,6 @@ +rtl.iconPlacement: 4 +rtl.secondaryIconPlacement: 5 +rtl.preferPreviousIconPosition: off +rtl.focusFollowsCursor: off +rtl.gravity: 32 + diff --git a/custom/ellis/.rtl.layout b/custom/ellis/.rtl.layout new file mode 100644 index 0000000..c7f03eb --- /dev/null +++ b/custom/ellis/.rtl.layout @@ -0,0 +1,43 @@ + + +1000 900 + +messages + + +messages + +1 552 530 876 635 32 32 0 552 530 552 530 510 526 38 34 1152 900 0 1151 0 899 0 +0 0 0 0 0 0 0 0 0 0 0 0 + +XTerm +Console +* +Console +xterm +1 600 184 300 808 1051 26 0 600 184 200 120 600 343 200 120 1150 894 0 1151 0 899 1 +0 0 0 0 0 0 0 0 0 0 0 0 + +XTerm +xterm +* +xterm +xterm +1 552 306 876 217 829 26 0 694 306 200 120 694 343 200 120 1150 894 0 1151 0 899 1 +0 0 0 0 0 0 0 0 0 0 0 0 + +XClock +xclock +* +xclock +xclock +1 70 64 1053 32 32 32 0 70 64 38 34 164 169 38 34 1150 894 0 1151 0 899 0 +0 0 0 0 0 0 0 0 0 0 0 0 + +emacs +gmacs +* +gmacs: emacs @ audi +gmacs +1 600 716 300 358 32 32 0 600 716 84 94 600 716 84 94 1150 894 0 1151 0 899 0 +0 0 0 0 0 0 0 0 0 0 0 0 diff --git a/custom/ellis/.rtl.nonauto b/custom/ellis/.rtl.nonauto new file mode 100644 index 0000000..722b62c --- /dev/null +++ b/custom/ellis/.rtl.nonauto @@ -0,0 +1,19 @@ + +rtl.autoRepopulateLast: off +rtl.autoRepopulateOnAutoUnzoom: off +rtl.autoRepopulateOnClose: off +rtl.autoRepopulateOnExplicitUnzoom: off + +rtl.requirePreviousPosition: on + +rtl.allowShrinkOnCornerOpen: off +rtl.allowShrinkOnResize: off + +rtl.tryCenterNeighborhoodOnOpen: off +rtl.tryEdgeNeighborhoodOnOpen: off +rtl.trySlidingOnResize: off +rtl.tryCenterNeighborhoodOnResize: off +rtl.tryEdgeNeighborhoodOnResize: off +rtl.tryCenterNeighborhoodOnExchange: off + +rtl.autoDesiredEnlarge: off diff --git a/custom/ellis/.rtl.preferences b/custom/ellis/.rtl.preferences new file mode 100644 index 0000000..982752a --- /dev/null +++ b/custom/ellis/.rtl.preferences @@ -0,0 +1,139 @@ +rtl.gravity: 16 +rtl.borderSize: 5 +rtl.outerBorderLinewidth: 2 +rtl.innerBorderLinewidth: 1 +rtl.clearBodyOnRedraw: on +rtl.distinguishCornerBordersByInverse: on +rtl.distinguishCornerBorders: on + +rtl.useRtlIcon: on +rtl.placeCursorBackOnCancel: on + +rtl.focusFollowsPointer: on + +rtl.allowAggressiveRepopulation: on + +rtl.autoProrate: off + +rtl.iconPlacement: 1 +rtl.secondaryIconPlacement: 4 + +rtl.autoRepopulateLast: on +rtl.autoRepopulateOnAutoUnzoom: on +rtl.autoRepopulateOnClose: on +rtl.autoRepopulateOnExplicitUnzoom: on + +rtl.preferPreviousPositionOnAutoRepopulate: on +rtl.preferPreviousPositionOnExplicitRepopulate: on + +rtl.requirePreviousPositionOnAutoRepopulate: on +rtl.requirePreviousPositionOnLastRepopulate: on + +rtl.allowAutomaticShrinkOnAutoRepopulate: on +rtl.allowAutomaticShrinkOnExchange: on + +rtl.allowShrinkOnCornerOpen: on +rtl.allowShrinkOnResize: off + +rtl.tryCenterNeighborhoodOnOpen: on +rtl.tryEdgeNeighborhoodOnOpen: off +rtl.trySlidingOnResize: on +rtl.tryCenterNeighborhoodOnResize: on +rtl.tryEdgeNeighborhoodOnResize: off +rtl.tryCenterNeighborhoodOnExchange: on + +rtl.preferCloseToShrinkOnCornerOpen: on +rtl.preferCenterNeighborhoodToAutomaticCloseOnOpen: on +rtl.preferCenterNeighborhoodToAutomaticShrinkOnOpen: on +rtl.preferCenterNeighborhoodToShrinkOnOpen: on +rtl.preferEdgeNeighborhoodToAutomaticCloseOnOpen: on +rtl.preferDesktopToAutomaticShrinkOnAutoOpen: off +rtl.preferDesktopToShrinkOnAutoOpen: off + +rtl.preferCloseToShrinkOnResize: on +rtl.preferSlidingToAutomaticCloseOnResize: on +rtl.preferSlidingToAutomaticShrinkOnResize: on +rtl.preferSlidingToShrinkOnResize: on +rtl.preferCenterNeighborhoodToAutomaticCloseOnResize: on +rtl.preferCenterNeighborhoodToShrinkOnResize: on + +rtl.unzoomTiedListenerIfNecessary: off + + +rtl*aggressivelyRepopulate: off +rtl*forceShrinkOnUnzoom: off +rtl*ignoreInitialPositionHints: on +rtl*listenerTiedToZoom: off +rtl*preferPreviousIconPosition: on +rtl*autoPlaceOnClientOpen: off + + + +rtl.outputonly.useBorders: off +rtl.outputonly.useGadgets: off +rtl.outputonly.headerHeight: 4 +rtl.outputonly.includeResClassInTitle: off +rtl.outputonly.includeTitleInHeader: off + +rtl.xclock.superClass: outputonly +rtl.xclock.normalDesiredWidth: 74 +rtl.xclock.normalDesiredHeight: 80 + +rtl.xload.superClass: outputonly + +rtl.xlogo.superClass: outputonly +rtl.xlogo.headerHeight: 2 + +rtl.xbiff.superClass: outputonly +rtl.xbiff.userNormalMinWidth: 64 +rtl.xbiff.userNormalMinHeight: 64 +rtl.xbiff.iconPixmapFile: ~rtl/custom/bitmaps/zip.xbm + + + +rtl.emacs.includeHostInTitle: off +rtl.emacs.includeResClassInTitle: off +rtl.emacs.includeResClassInIconTitle: off +rtl.emacs.includeNameInIconTitle: off +rtl.emacs.includeTitleInPixmapIcon: on +rtl.emacs.iconHostLeft: 1 +rtl.emacs.iconHostRight: 46 +rtl.emacs.iconHostTop: 24 +rtl.emacs.iconHostBottom: 52 +rtl.emacs.iconPixmapFile: ~rtl/custom/bitmaps/emacs1.xbm + +rtl.XTerm.includeResClassInTitle: off +rtl.XTerm.includeHostInIconTitle: on +rtl.XTerm.includeNameInIconTitle: off +rtl.XTerm.includeResClassInIconTitle: off +rtl.XTerm.includeTitleInPixmapIcon: on +rtl.XTerm.iconPixmapFile: ~rtl/custom/bitmaps/xterm1.xbm +rtl.XTerm.iconHostLeft: 1 +rtl.XTerm.iconHostRight: 71 +rtl.XTerm.iconHostTop: 14 +rtl.XTerm.iconHostBottom: 32 +rtl.XTerm.clientMinWidth: 200 +rtl.XTerm.clientMinHeight: 120 +rtl.XTerm.normalDesiredWidth: 400 +rtl.XTerm.normalDesiredHeight: 292 + +rtl.Console.includeHostInTitle: off +rtl.Console.iconPixmapFile: ~rtl/custom/bitmaps/console1.xbm + +rtl.init.iconPixmapFile: ~rtl/custom/bitmaps/nobozos.xbm +rtl.init.includeTitleInPixmapIcon: off + + + +rtl.xfd.iconPixmapFile: ~rtl/custom/bitmaps/abc.xbm + +rtl.xpref.includeHostInTitle: off +rtl.xpref.clientMinWidth: 220 +rtl.xpref.clientMinHeight: 480 + + +rtl.messages.includeResClassInTitle: off +rtl.messages.includeHostInIconTitle: on +rtl.messages.includeNameInIconTitle: off +rtl.messages.includeTitleInPixmapIcon: on +rtl.messages.iconPixmapFile: ~rtl/custom/bitmaps/zip.xbm diff --git a/custom/ellis/.rtl.profiles b/custom/ellis/.rtl.profiles new file mode 100644 index 0000000..622624a --- /dev/null +++ b/custom/ellis/.rtl.profiles @@ -0,0 +1,12 @@ +Prorate + .rtl.prorate +Listener -> Zoom + .rtl.zoom +Listener -> Zoom/Prorate + .rtl.zoom_prorate +Listener -> Enlarge/Prorate + .rtl.enlarge_prorate +Hack + ~/.rtl.enlarge_prorate ~ellis/.rtl.hack +Non-Automatic + .rtl.nonauto diff --git a/custom/ellis/.rtl.prorate b/custom/ellis/.rtl.prorate new file mode 100644 index 0000000..16fa55e --- /dev/null +++ b/custom/ellis/.rtl.prorate @@ -0,0 +1 @@ +rtl.autoProrate: on diff --git a/custom/ellis/.rtl.startup b/custom/ellis/.rtl.startup new file mode 100644 index 0000000..7427e8f --- /dev/null +++ b/custom/ellis/.rtl.startup @@ -0,0 +1,15 @@ +#! /bin/csh + +setenv DISPLAY "unix:0" +cd $HOME + +xsetroot -bitmap ~rtl/custom/bitmaps/lightgrey.xbm + +xterm -C -sb -name Console & + +xclock -update 90 -analog & + +xterm -sb & +messages & + +gmacs & diff --git a/custom/ellis/.rtl.tools b/custom/ellis/.rtl.tools new file mode 100644 index 0000000..533d9e7 --- /dev/null +++ b/custom/ellis/.rtl.tools @@ -0,0 +1,34 @@ +Andrew Typescript + typescript +Andrew Console + console +Andrew Help + help +Andrew Editor + ez +Andrew Mail + messages +Transcript + xterm -sb +Console + xterm -C -sb -name Console +Terminal + xterm -fn serif10 +Clock + xclock -update 90 -analog +Gmacs + gmacs +GMACS + gmacs -font 9x15 +Preferences + xpref +System Load + xload +Performance Monitor + xperfmon +Calculator + xcalc +Demon + xdemon +NoOp + cat + +#include "std_defs.h" +#include "basetype.h" +#include "twinD.h" +#include "stateP.h" +#include "uwinD.h" + +/* ------------------------------------------------------------ */ + +static int prtitle( uwinp ) + Userwin *uwinp; +{ + char *uclass, *utitle; + + + uclass = uwinp->window_class; + utitle = uwinp->title; + + if ( (uclass == NULL) && (utitle == NULL) ) + { + printf( "\n#0 RTL "); + } + else + { + if ( uclass == NULL ) + uclass = ""; + + if ( utitle == NULL ) + utitle = ""; + + printf( "#%d (%d)", + uwinp->winnum, (int)uwinp); + + printf( "%s: %s", + uclass, utitle ); + } + + return 0; + +} + +/* ------------------------------------------------------------ */ + +static int pricon( uwinp ) + Userwin *uwinp; +{ + Tilwin *winp; + + + + winp = (Tilwin *)(uwinp->iconp); + + if ( Tilwin_Is_Open(winp) ) + { + printf( "[ ICON ] topleft (%d,%d)", + winp->rect.left_x, + winp->rect.top_y); + + printf( "bottom right (%d,%d)", + winp->rect.right_x, + winp->rect.bottom_y); + + printf( "center @ (%d,%d)", + winp->center.x, + winp->center.y); + } + + return 0; + +} + +/* ------------------------------------------------------------ */ + +static int prwin( uwinp ) + Userwin *uwinp; +{ + Tilwin *winp; + + + + winp = (Tilwin *)(uwinp->winp); + + printf( "[ %s ] %s", + (Tilwin_Is_Open(winp) ? "OPEN" : "CLOSED"), + (uwinp->zoomed ? " *ZOOMED* " : "" )); + + printf( "top left (%d,%d)", + winp->rect.left_x, + winp->rect.top_y); + + printf( "bottom right (%d,%d)", + winp->rect.right_x, + winp->rect.bottom_y); + + printf( "center @ (%d,%d)", + winp->center.x, + winp->center.y); + + return 0; + +} + +/* ------------------------------------------------------------ */ + +static int prinfo( uwinp ) + Userwin *uwinp; +{ + Tilwin *winp; + + + + winp = (Tilwin *)(uwinp->winp); + + printf( " size: [%d,%d]", + winp->size.width, + winp->size.height); + + printf( " max: [%d,%d]", + winp->max_size.width, + winp->max_size.height); + + + printf( " min: [%d,%d]", + winp->min_size.width, + winp->min_size.height); + + printf( " desire: [%d,%d]", + winp->desired_size.width, + winp->desired_size.height); + + + if ( uwinp->zoomed) + { + printf( " regular_min: [%d,%d]", + uwinp->regular_min.width, + uwinp->regular_min.height); + + printf( " desire: [%d,%d]", + uwinp->regular_size.width, + uwinp->regular_size.height); + } + else + { + printf( " Zoom min: [%d,%d]", + uwinp->zoom_min.width, + uwinp->zoom_min.height); + + printf( " desire: [%d,%d]", + uwinp->zoom_size.width, + uwinp->zoom_size.height); + } + + return 0; +} + +/* ------------------------------------------------------------ */ + +int pru( uwinp ) + Userwin *uwinp; +{ + prtitle( uwinp ); + if ( uwinp->winp == WIN_NULL ) + pricon( uwinp ); + else if ( Tilwin_Is_Open( uwinp->winp ) ) + { + prwin( uwinp ); + prinfo( uwinp ); + pricon( uwinp ); + } + else + { + pricon( uwinp ); + prwin( uwinp ); + prinfo( uwinp ); + } + return 0; +} + +/* ------------------------------------------------------------ */ + +int prw( winp ) + Tilwinp winp; +{ + return pru( Userwin_Get(winp) ); +} + +/* ------------------------------------------------------------ */ + +int prn( num ) +{ + Tilwinp winp; + WinpHandle handle; + + + + handle = State_Generate_Closed_Windows(); + while ( (winp = (Tilwinp)State_Coerce(handle)) != WIN_NULL ) + { + if ( Userwin_Get(winp)->winnum == num ) + { + prw(winp); + return; + } + State_Next_Window(&handle); + } + + printf( "No such number..." ); + + return 0; + +} + +/* ------------------------------------------------------------ */ + +int pro() +{ + Tilwinp winp; + WinpHandle handle; + Userwin *uwinp; + handle = State_Generate_Open_Windows(); + while ( (winp = (Tilwinp)State_Coerce(handle)) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( uwinp->winp == winp ) + { + prtitle( uwinp ); + prwin( uwinp ); + prinfo( uwinp ); + } + State_Next_Window(&handle); + } + return 0; +} + +/* ------------------------------------------------------------ */ + +int pri() +{ + Tilwinp winp; + WinpHandle handle; + Userwin *uwinp; + handle = State_Generate_Open_Windows(); + while ( (winp = (Tilwinp)State_Coerce(handle)) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( uwinp->iconp == winp ) + { + prtitle( uwinp ); + pricon( uwinp ); + } + State_Next_Window(&handle); + } + return 0; +} + +/* ------------------------------------------------------------ */ + +int prc() +{ + Tilwinp winp; + WinpHandle handle; + Userwin *uwinp; + handle = State_Generate_Closed_Windows(); + while ( (winp = (Tilwinp)State_Coerce(handle)) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( uwinp->winp == winp ) + { + prtitle( uwinp ); + pricon( uwinp ); + } + State_Next_Window(&handle); + } + return 0; +} diff --git a/defaults.i b/defaults.i new file mode 100644 index 0000000..61a1816 --- /dev/null +++ b/defaults.i @@ -0,0 +1,485 @@ +/* +static char sccs_id[] = "@(#)defaults.i 5.3 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +static void Profile_Defaults() +{ + Tilwin_Set_Global_Option( ADJUST_PLACEMENT_FAIRLY, TRUE ); + Tilwin_Set_Global_Option( ALLOW_AUTOMATIC_CLOSE, TRUE ); + Tilwin_Set_Global_Option( ALLOW_AUTO_CLOSE_MORE_RECENT, TRUE ); + Tilwin_Set_Global_Option( ALLOW_AUTOMATIC_SHRINK, TRUE ); + Tilwin_Set_Global_Option( ALLOW_AUTO_SHRINK_MORE_RECENT, TRUE ); + Tilwin_Set_Global_Option( BEST_FIT_IS_TIGHT, FALSE ); + Tilwin_Set_Global_Option( BREAK_MINIMUMS_FAIRLY, TRUE ); + Tilwin_Set_Global_Option( ENABLE_GRAVITY, TRUE ); + Tilwin_Set_Global_Option( ENFORCE_MAXIMUMS, TRUE ); + Tilwin_Set_Global_Option( ENFORCE_MINIMUMS, TRUE ); + Tilwin_Set_Global_Option( FIRST_FIT, FALSE ); + Tilwin_Set_Global_Option( PREFER_CLOSE_TO_SHRINK, TRUE ); + Tilwin_Set_Global_Option( PREFER_AUTOMATIC_CLOSE_TO_SEARCH, FALSE ); + Tilwin_Set_Global_Option( PREFER_AUTO_SHRINK_TO_SEARCH, FALSE ); + Tilwin_Set_Global_Option( PREFER_SHRINK_TO_SEARCH, FALSE ); + Tilwin_Set_Global_Option( PRORATE_VERTICALLY_FIRST, TRUE ); + + /* ------------------------------------------------------------ */ + + Tilwin_Set_Default_Option( EXPENSIVE_TO_REDRAW, FALSE ); + Tilwin_Set_Default_Option( FIXED_COMPLETELY, FALSE ); + Tilwin_Set_Default_Option( FIXED_BOTTOM_EDGE, FALSE ); + Tilwin_Set_Default_Option( FIXED_TOP_EDGE, FALSE ); + Tilwin_Set_Default_Option( FIXED_LEFT_EDGE, FALSE ); + Tilwin_Set_Default_Option( FIXED_RIGHT_EDGE, FALSE ); + Tilwin_Set_Default_Option( FIXED_SIZE, FALSE ); + Tilwin_Set_Default_Option( FIXED_HEIGHT, FALSE ); + Tilwin_Set_Default_Option( FIXED_WIDTH, FALSE ); + Tilwin_Set_Default_Option( REQUIRE_MANUAL_CLOSE, FALSE ); + Tilwin_Set_Default_Option( SHRINK_BASED_ON_CURRENT_SIZE, FALSE ); + Tilwin_Set_Default_Option( WEIGHTED_SHRINK, FALSE ); + + /* ------------------------------------------------------------ */ + /* Global Semantic Options */ + + UserGlobals_Set_Option( ALLOW_AGGRESSIVE_REPOPULATION, TRUE ); + + UserGlobals_Set_Option( + ALLOW_AUTO_SHRINK_ON_AUTO_REPOP, FALSE ); + UserGlobals_Set_Option( + ALLOW_AUTO_SHRINK_ON_EXPL_REPOP, TRUE ); + + UserGlobals_Set_Option( ALLOW_AUTO_SHRINK_ON_EXCHANGE, TRUE ); + UserGlobals_Set_Option( ALLOW_AUTO_CLOSE_ON_EXCHANGE, FALSE ); + + UserGlobals_Set_Option( ALLOW_AUTOMATIC_SHRINK_BY_CLIENT, TRUE ); + UserGlobals_Set_Option( ALLOW_AUTOMATIC_CLOSE_BY_CLIENT, TRUE ); + + UserGlobals_Set_Option( ALLOW_LISTENER_TO_CLOSE, TRUE ); + UserGlobals_Set_Option( ALLOW_LSNR_TO_CHANGE_BY_CLIENT, FALSE ); + UserGlobals_Set_Option( ALLOW_LSNR_TO_CLOSE_BY_CLIENT, FALSE ); + + UserGlobals_Set_Option( ALLOW_SHRINK_ON_AUTO_OPEN, TRUE ); + UserGlobals_Set_Option( ALLOW_SHRINK_ON_CENTER_OPEN, TRUE ); + UserGlobals_Set_Option( ALLOW_SHRINK_ON_CORNER_OPEN, FALSE ); + UserGlobals_Set_Option( ALLOW_SHRINK_ON_RESIZE, FALSE ); + + UserGlobals_Set_Option( AUTO_DESIRED_ENLARGE, TRUE ); + + UserGlobals_Set_Option( AUTO_PRORATE, FALSE ); + UserGlobals_Set_Option( AUTO_PRORATE_LOCALLY, TRUE ); + + UserGlobals_Set_Option( AUTO_REPOPULATE_LAST, FALSE ); + UserGlobals_Set_Option( AUTO_REPOPULATE_ON_AUTO_UNZOOM, TRUE ); + UserGlobals_Set_Option( AUTO_REPOPULATE_ON_CLOSE, TRUE ); + UserGlobals_Set_Option( AUTO_REPOP_ON_DESKTOP_RESIZE, TRUE ); + UserGlobals_Set_Option( AUTO_REPOP_ON_EXPLICIT_UNZOOM, TRUE ); + + UserGlobals_Set_Option( BIASED_AUTO_PRORATE, FALSE ); + UserGlobals_Set_Option( BIASED_EXPLICIT_PRORATE, FALSE ); + + UserGlobals_Set_Option( ENABLE_AUTO_REPOP_DURING_LAYOUT, FALSE ); + UserGlobals_Set_Option( ENABLE_AUTO_SIZING_DURING_LAYOUT, FALSE ); + + UserGlobals_Set_Option( FULL_SCREEN, FALSE ); + + UserGlobals_Set_Option( ONLY_REPOP_SINCE_ON_AUTO_UNZOOM, TRUE ); + UserGlobals_Set_Option( ONLY_REPOPULATE_SINCE_ON_CLOSE, TRUE ); + UserGlobals_Set_Option( + ONLY_REPOP_SINCE_ON_EXPL_UNZOOM, TRUE ); + + UserGlobals_Set_Option( PREFER_CL_TO_SHR_ON_AUTO_OPEN, FALSE ); + UserGlobals_Set_Option( PREFER_CL_TO_SHR_ON_CENTER_OPEN, FALSE ); + UserGlobals_Set_Option( PREFER_CL_TO_SHR_ON_CORNER_OPEN, TRUE ); + UserGlobals_Set_Option( PREFER_CL_TO_SHR_ON_EXCHANGE, FALSE ); + UserGlobals_Set_Option( PREFER_CL_TO_SHR_ON_RESIZE, TRUE ); + + UserGlobals_Set_Option( PREFER_EXC_LOC_ON_ICONIZING, TRUE ); + UserGlobals_Set_Option( PREFER_EXCHANGED_LOC_ON_OPENING, TRUE ); + + UserGlobals_Set_Option( + PREFER_PREV_POS_ON_AUTO_REPOP, TRUE ); + UserGlobals_Set_Option( + PREFER_PREV_POS_ON_EXPL_REPOP, TRUE ); + + UserGlobals_Set_Option( + PF_CTR_NBR_2_AUTO_CL_ON_OPEN, FALSE ); + UserGlobals_Set_Option( + PF_CTR_NBR_2_AUTO_SHR_ON_OPEN, FALSE ); + UserGlobals_Set_Option( + PF_CTR_NBR_2_SHRINK_ON_OPEN, FALSE ); + UserGlobals_Set_Option( + PF_EDGE_NBR_2_AUTO_CL_ON_OPEN, FALSE ); + UserGlobals_Set_Option( + PF_EDGE_NBR_2_AUTO_SHR_ON_OPEN, FALSE ); + UserGlobals_Set_Option( + PF_EDGE_NBR_2_SHRINK_ON_OPEN, FALSE ); + + UserGlobals_Set_Option( + PF_DTOP_2_AUTO_CL_ON_AUTO_OPEN, TRUE ); + UserGlobals_Set_Option( + PF_DTOP_2_AUTO_SHR_ON_AUTO_OPEN, TRUE ); + UserGlobals_Set_Option( + PF_DTOP_2_SHRINK_ON_AUTO_OPEN, TRUE ); + + UserGlobals_Set_Option( + PREF_SLD_TO_AUTO_CL_ON_RESIZE, FALSE ); + UserGlobals_Set_Option( + PREF_SLD_TO_AUTO_SHR_ON_RESIZE, FALSE ); + UserGlobals_Set_Option( + PREF_SLD_TO_SHRINK_ON_RESIZE, FALSE ); + UserGlobals_Set_Option( + PF_CTR_NBR_2_AUTO_CL_ON_RESIZE, FALSE ); + UserGlobals_Set_Option( + PF_CTR_NBR_2_AUTO_SHR_ON_RESIZE, FALSE ); + UserGlobals_Set_Option( + PF_CTR_NBR_2_SHRINK_ON_RESIZE, FALSE ); + UserGlobals_Set_Option( + PF_EDGE_NBR_2_AUTO_CL_ON_RESIZE, FALSE ); + UserGlobals_Set_Option( + PF_EDGE_NBR_2_AUTO_SHR_ON_RESIZE, FALSE ); + UserGlobals_Set_Option( + PF_EDGE_NBR_2_SHRINK_ON_RESIZE, FALSE ); + + UserGlobals_Set_Option( PREFER_UNZOOM_TO_CLOSE, TRUE ); + + UserGlobals_Set_Option( PRORATE_LOCALLY, TRUE ); + + UserGlobals_Set_Option( REPOPULATE_STRICTLY, FALSE ); + UserGlobals_Set_Option( REPOPULATE_AUTO_CLOSED_ONLY, TRUE ); + + UserGlobals_Set_Option( + REQUIRE_PREV_POS_ON_AUTO_REPOP, TRUE ); + UserGlobals_Set_Option( + REQUIRE_PREV_POS_ON_EXPL_REPOP, FALSE ); + + UserGlobals_Set_Option( RESET_MAX_ON_INCREASE, TRUE ); + UserGlobals_Set_Option( RESET_MAX_ON_SHRINK, FALSE ); + + UserGlobals_Set_Option( RESET_MIN_ON_DECREASE, TRUE ); + UserGlobals_Set_Option( RESET_MIN_ON_ENLARGE, FALSE ); + UserGlobals_Set_Option( RESET_TIED_ZOOMED_MIN_ON_ENLARGE, FALSE ); + UserGlobals_Set_Option( RESET_MIN_MAX_ON_UNSZD_MAN_OPEN, TRUE ); + + UserGlobals_Set_Option( RESET_ZOOM_MIN, FALSE ); + UserGlobals_Set_Option( RESET_ZOOM_MIN_ALLOWS_DECREASE, FALSE ); + UserGlobals_Set_Option( RESET_ZOOM_MIN_USES_DESIRE, TRUE ); + + UserGlobals_Set_Option( TREAT_MOVE_LIKE_RELOCATE, FALSE ); + + UserGlobals_Set_Option( TRY_CTR_NBRHD_ON_EXCHANGE, FALSE ); + + UserGlobals_Set_Option( TRY_CTR_NBRHD_ON_OPEN, FALSE ); + UserGlobals_Set_Option( TRY_EDGE_NEIGHBORHOOD_ON_OPEN, FALSE ); + + UserGlobals_Set_Option( TRY_SLIDING_ON_RESIZE, FALSE ); + UserGlobals_Set_Option( TRY_CTR_NBRHD_ON_RESIZE, FALSE ); + UserGlobals_Set_Option( TRY_EDGE_NEIGHBORHOOD_ON_RESIZE, FALSE ); + + UserGlobals_Set_Option( TRY_REPOP_AGAIN_AFT_AUTO_PRORATE, TRUE ); + + UserGlobals_Set_Option( UNZOOM_TIED_LSNR_IF_NECESSARY, FALSE ); + + UserGlobals_Set_Option( ZOOM_ON_CREATE, FALSE ); + + /* ------------------------------------------------------------ */ + /* Global Interface Options */ + + UserGlobals_Set_Option( ACCEPT_NON_LISTENER_IN_BODY, TRUE ); + UserGlobals_Set_Option( ACCEPT_NON_LISTENER_IN_BORDER, FALSE ); + UserGlobals_Set_Option( ACCEPT_NON_LISTENER_IN_GADGET, FALSE ); + UserGlobals_Set_Option( ACCEPT_NON_LISTENER_IN_HEADER, TRUE ); + + UserGlobals_Set_Option( AUTO_PLACE_ON_ICON_OPEN, FALSE ); + UserGlobals_Set_Option( AUTO_PLACE_ON_MENU_OPEN, FALSE ); + UserGlobals_Set_Option( AUTO_PLACE_ON_UNSIZED_OPEN, TRUE ); + + UserGlobals_Set_Option( BUTTON_MAKES_LISTENER_IN_BODY, TRUE ); + UserGlobals_Set_Option( BUTTON_MAKES_LISTENER_IN_HEADER, TRUE ); + + UserGlobals_Set_Option( CENTER_CURSOR_ON_MOVE, TRUE ); + UserGlobals_Set_Option( CENTER_CURSOR_ON_RELOCATE, TRUE ); + + UserGlobals_Set_Option( CLEAR_BODY_ON_REDRAW, TRUE ); + + UserGlobals_Set_Option( CLOSE_IN_HEADER, FALSE ); + UserGlobals_Set_Option( CLOSE_IN_CORNER_BORDER, FALSE ); + UserGlobals_Set_Option( CLOSE_IN_SIDE_BORDER, FALSE ); + UserGlobals_Set_Option( CLOSE_IN_MOVE_GADGET, TRUE ); + UserGlobals_Set_Option( CLOSE_IN_ZOOM_GADGET, TRUE ); + + UserGlobals_Set_Option( DESIRE_IN_HEADER, FALSE ); + UserGlobals_Set_Option( DESIRE_IN_CORNER_BORDER, FALSE ); + UserGlobals_Set_Option( DESIRE_IN_SIDE_BORDER, FALSE ); + UserGlobals_Set_Option( DESIRE_IN_MOVE_GADGET, FALSE ); + UserGlobals_Set_Option( DESIRE_IN_ZOOM_GADGET, TRUE ); + + UserGlobals_Set_Option( DISTINGUISH_CORNER_BORDERS, TRUE ); + UserGlobals_Set_Option( + DISTNGSH_CORNER_BORDERS_BY_INV, TRUE ); + + UserGlobals_Set_Option( DRAW_X_ON_MOVE, TRUE ); + UserGlobals_Set_Option( DRAW_X_ON_OPEN, TRUE ); + UserGlobals_Set_Option( DRAW_X_ON_RESIZE, TRUE ); + + UserGlobals_Set_Option( ENLARGE_IN_HEADER, FALSE ); + UserGlobals_Set_Option( ENLARGE_IN_CORNER_BORDER, FALSE ); + UserGlobals_Set_Option( ENLARGE_IN_SIDE_BORDER, FALSE ); + UserGlobals_Set_Option( ENLARGE_IN_MOVE_GADGET, FALSE ); + UserGlobals_Set_Option( ENLARGE_IN_ZOOM_GADGET, TRUE ); + + UserGlobals_Set_Option( EXCHANGE_IN_HEADER, FALSE ); + UserGlobals_Set_Option( EXCHANGE_IN_ICON, TRUE ); + UserGlobals_Set_Option( EXCHANGE_IN_CORNER_BORDER, TRUE ); + UserGlobals_Set_Option( EXCHANGE_IN_SIDE_BORDER, FALSE ); + UserGlobals_Set_Option( EXCHANGE_IN_MOVE_GADGET, TRUE ); + UserGlobals_Set_Option( EXCHANGE_IN_ZOOM_GADGET, FALSE ); + + UserGlobals_Set_Option( + INCL_BGRND_MENU_IN_WINDOW_MENU, TRUE ); + + UserGlobals_Set_Option( KEY_MAKES_LISTENER_IN_BODY, TRUE ); + UserGlobals_Set_Option( KEY_MAKES_LISTENER_IN_BORDER, FALSE ); + UserGlobals_Set_Option( KEY_MAKES_LISTENER_IN_GADGET, FALSE ); + UserGlobals_Set_Option( KEY_MAKES_LISTENER_IN_HEADER, FALSE ); + + UserGlobals_Set_Option( FOCUS_FOLLOWS_CURSOR, TRUE ); + + UserGlobals_Set_Option( MANAGER_MENU_IN_BODY, FALSE ); + UserGlobals_Set_Option( MANAGER_MENU_IN_HEADER, TRUE ); + UserGlobals_Set_Option( MANAGER_MENU_IN_ICON, TRUE ); + UserGlobals_Set_Option( MANAGER_MENU_IN_CORNER_BORDER, TRUE ); + UserGlobals_Set_Option( MANAGER_MENU_IN_SIDE_BORDER, TRUE ); + UserGlobals_Set_Option( MANAGER_MENU_IN_MOVE_GADGET, FALSE ); + UserGlobals_Set_Option( MANAGER_MENU_IN_ZOOM_GADGET, FALSE ); + + UserGlobals_Set_Option( MIDDLE_MENU, FALSE ); + + UserGlobals_Set_Option( MOVE_IN_HEADER, TRUE ); + UserGlobals_Set_Option( MOVE_IN_ICON, TRUE ); + UserGlobals_Set_Option( MOVE_IN_CORNER_BORDER, TRUE ); + UserGlobals_Set_Option( MOVE_IN_SIDE_BORDER, TRUE ); + UserGlobals_Set_Option( MOVE_IN_MOVE_GADGET, TRUE ); + UserGlobals_Set_Option( MOVE_IN_ZOOM_GADGET, FALSE ); + + UserGlobals_Set_Option( PLACE_CSR_IN_BODY_NOT_BORDER, TRUE ); + UserGlobals_Set_Option( PLACE_CSR_IN_BODY_NOT_GADGET, TRUE ); + + UserGlobals_Set_Option( + PLACE_CSR_IN_BORDER_AFTER_RESIZE, FALSE ); + + UserGlobals_Set_Option( + PLACE_CSR_GDGT_AFT_CL_AUTO_OPEN, FALSE ); + UserGlobals_Set_Option( + PLACE_CSR_GDGT_AFT_US_AUTO_OPEN, TRUE ); + UserGlobals_Set_Option( + PLACE_CSR_IN_GADGET_AFT_MAN_OPEN, TRUE ); + + UserGlobals_Set_Option( + PLACE_CSR_IN_GADGET_AFT_EXCHANGE, TRUE ); + UserGlobals_Set_Option( + PLACE_CSR_IN_GADGET_AFT_MOVE, TRUE ); + + UserGlobals_Set_Option( PLACE_CSR_IN_ICON_AFTER_CLOSE, FALSE ); + + UserGlobals_Set_Option( PLACE_CSR_BACK_AFTER_MENU_OP, TRUE ); + UserGlobals_Set_Option( PLACE_CSR_BACK_ON_CANCEL, TRUE ); + + UserGlobals_Set_Option( REDRAW_IN_HEADER, FALSE ); + UserGlobals_Set_Option( REDRAW_IN_ICON, TRUE ); + UserGlobals_Set_Option( REDRAW_IN_CORNER_BORDER, TRUE ); + UserGlobals_Set_Option( REDRAW_IN_SIDE_BORDER, TRUE ); + UserGlobals_Set_Option( REDRAW_IN_MOVE_GADGET, TRUE ); + UserGlobals_Set_Option( REDRAW_IN_ZOOM_GADGET, TRUE ); + + UserGlobals_Set_Option( RELOCATE_IN_HEADER, FALSE ); + UserGlobals_Set_Option( RELOCATE_IN_CORNER_BORDER, FALSE ); + UserGlobals_Set_Option( RELOCATE_IN_SIDE_BORDER, FALSE ); + UserGlobals_Set_Option( RELOCATE_IN_MOVE_GADGET, TRUE ); + UserGlobals_Set_Option( RELOCATE_IN_ZOOM_GADGET, FALSE ); + + UserGlobals_Set_Option( RESIZE_IN_HEADER, FALSE ); + UserGlobals_Set_Option( RESIZE_IN_CORNER_BORDER, TRUE ); + UserGlobals_Set_Option( RESIZE_IN_SIDE_BORDER, TRUE ); + UserGlobals_Set_Option( RESIZE_IN_MOVE_GADGET, FALSE ); + UserGlobals_Set_Option( RESIZE_IN_ZOOM_GADGET, FALSE ); + + UserGlobals_Set_Option( SHOW_LISTENER_IN_BORDERS, FALSE ); + UserGlobals_Set_Option( SHOW_LISTENER_IN_HEADER, TRUE ); + UserGlobals_Set_Option( SHOW_FOCUS_IN_BORDERS, TRUE ); + UserGlobals_Set_Option( SHOW_FOCUS_IN_HEADER, FALSE ); + + UserGlobals_Set_Option( USE_CORNER_BORDERS, TRUE ); + + UserGlobals_Set_Option( USE_ICON_AREA, FALSE ); + UserGlobals_Set_Option( USE_ICONS, TRUE ); + UserGlobals_Set_Option( USE_RTL_ICON, TRUE ); + + UserGlobals_Set_Option( USER_MENU_IN_BODY, FALSE ); + UserGlobals_Set_Option( USER_MENU_IN_HEADER, FALSE ); + UserGlobals_Set_Option( USER_MENU_IN_SIDE_BORDER, FALSE ); + UserGlobals_Set_Option( USER_MENU_IN_CORNER_BORDER, FALSE ); + UserGlobals_Set_Option( USER_MENU_IN_ICON, FALSE ); + UserGlobals_Set_Option( USER_MENU_IN_MOVE_GADGET, FALSE ); + UserGlobals_Set_Option( USER_MENU_IN_ZOOM_GADGET, FALSE ); + + UserGlobals_Set_Option( ZOOM_IN_HEADER, FALSE ); + UserGlobals_Set_Option( ZOOM_IN_CORNER_BORDER, FALSE ); + UserGlobals_Set_Option( ZOOM_IN_SIDE_BORDER, FALSE ); + UserGlobals_Set_Option( ZOOM_IN_MOVE_GADGET, FALSE ); + UserGlobals_Set_Option( ZOOM_IN_ZOOM_GADGET, TRUE ); + + /* ------------------------------------------------------------ */ + + Userwin_Set_Default_Option( ACCEPT_BUTTON_IN_BODY, TRUE ); + Userwin_Set_Default_Option( ACCEPT_BUTTON_IN_HEADER, TRUE ); + Userwin_Set_Default_Option( ACCEPT_BUTTON_IN_ICON, TRUE ); + + Userwin_Set_Default_Option( ACCEPT_KEY_IN_BODY, TRUE ); + Userwin_Set_Default_Option( ACCEPT_KEY_IN_BORDER, TRUE ); + Userwin_Set_Default_Option( ACCEPT_KEY_IN_GADGET, TRUE ); + Userwin_Set_Default_Option( ACCEPT_KEY_IN_HEADER, TRUE ); + Userwin_Set_Default_Option( ACCEPT_KEY_IN_ICON, TRUE ); + + Userwin_Set_Default_Option( AGGRESSIVELY_REPOPULATE, FALSE ); + + Userwin_Set_Default_Option( ALLOW_SHRINK_ON_UNZOOM, TRUE ); + Userwin_Set_Default_Option( ALLOW_SHRINK_ON_AUTO_UNZOOM, TRUE ); + + Userwin_Set_Default_Option( ALLOW_ZOOM_CLOSE, TRUE ); + + Userwin_Set_Default_Option( AUTO_OPEN_ON_CREATE, TRUE ); + Userwin_Set_Default_Option( AUTO_OPEN_ON_WRITE, FALSE ); + + Userwin_Set_Default_Option( AUTO_PLACE_ON_CLIENT_OPEN, TRUE ); + + Userwin_Set_Default_Option( AUTO_RESATISFY_ON_RESET_MINMAX, TRUE ); + + Userwin_Set_Default_Option( CLIENT_DRAWS_ICON, FALSE ); + Userwin_Set_Default_Option( CLIENT_PROVIDES_HEADER, FALSE ); + + Userwin_Set_Default_Option( CONSIDER_FOR_REPOPULATION, TRUE ); + + Userwin_Set_Default_Option( ENFORCE_CLIENT_MINIMUMS, TRUE ); + Userwin_Set_Default_Option( ENFORCE_CLIENT_MAXIMUMS, FALSE ); + + Userwin_Set_Default_Option( LISTENER_TIED_TO_ZOOM, FALSE ); + + Userwin_Set_Default_Option( FORCE_SHRINK_ON_UNZOOM, TRUE ); + Userwin_Set_Default_Option( FORCE_SHRINK_ON_AUTO_UNZOOM, FALSE ); + + Userwin_Set_Default_Option( GLASS_CLIENT, FALSE ); + + Userwin_Set_Default_Option( ICON_DRAWN_BY_CLIENT, FALSE ); + + Userwin_Set_Default_Option( IGNORE_INITIAL_POSITION_HINTS, FALSE ); + Userwin_Set_Default_Option( IGNORE_INITIAL_SIZE_HINTS, FALSE ); + Userwin_Set_Default_Option( IGNORE_POSITION_HINTS, FALSE ); + Userwin_Set_Default_Option( IGNORE_SIZE_HINTS, FALSE ); + + Userwin_Set_Default_Option( INCLUDE_RES_CLASS_IN_TITLE, TRUE ); + Userwin_Set_Default_Option( INCLUDE_RES_CLASS_IN_ICON_TITLE, TRUE ); + Userwin_Set_Default_Option( INCLUDE_RES_NAME_IN_TITLE, FALSE ); + Userwin_Set_Default_Option( INCLUDE_RES_NAME_IN_ICON_TITLE, FALSE ); + Userwin_Set_Default_Option( INCLUDE_NAME_IN_TITLE, TRUE ); + Userwin_Set_Default_Option( INCLUDE_NAME_IN_ICON_TITLE, TRUE ); + Userwin_Set_Default_Option( INCLUDE_HOST_IN_TITLE, TRUE ); + Userwin_Set_Default_Option( INCLUDE_HOST_IN_ICON_TITLE, TRUE ); + + Userwin_Set_Default_Option( INCLUDE_TITLE_IN_HEADER, TRUE ); + Userwin_Set_Default_Option( INCLUDE_TITLE_IN_PIXMAP_ICON, FALSE ); + Userwin_Set_Default_Option( INCLUDE_TITLE_IN_CLIENT_ICON, FALSE ); + + Userwin_Set_Default_Option( INVERT_ICON_WHEN_PENDING, TRUE ); + + Userwin_Set_Default_Option( NOTE_LISTENER, TRUE ); + Userwin_Set_Default_Option( NOTE_LISTENER_INPUT, FALSE ); + Userwin_Set_Default_Option( NOTE_CLOSED_INPUT, FALSE ); + Userwin_Set_Default_Option( NOTE_CLOSED_OUTPUT, FALSE ); + Userwin_Set_Default_Option( NOTE_OPEN_INPUT, FALSE ); + Userwin_Set_Default_Option( NOTE_OPEN_OUTPUT, FALSE ); + + Userwin_Set_Default_Option( PREFER_PREVIOUS_ICON_POSITION, TRUE ); + Userwin_Set_Default_Option( PREFER_PREV_POS, TRUE ); + Userwin_Set_Default_Option( REQUIRE_PREVIOUS_ICON_POSITION, FALSE ); + Userwin_Set_Default_Option( REQUIRE_PREV_POS, FALSE ); + + Userwin_Set_Default_Option( SAVE_IN_LAYOUT, TRUE ); + + Userwin_Set_Default_Option( SHOW_ICON, TRUE ); + + Userwin_Set_Default_Option( USE_BORDERS, TRUE ); + Userwin_Set_Default_Option( USE_GADGETS, TRUE ); + Userwin_Set_Default_Option( USE_HEADER, TRUE ); + Userwin_Set_Default_Option( USE_MOVE_GADGET, TRUE ); + + Userwin_Set_Default_Option( ZOOM_FULL_EXPLICIT, FALSE ); + Userwin_Set_Default_Option( ZOOM_FULL_HEIGHT, FALSE ); + Userwin_Set_Default_Option( ZOOM_FULL_WIDTH, FALSE ); + + Userwin_Set_Default_Option( ZOOM_ON_OPEN, FALSE ); + + /* ------------------------------------------------------------ */ + + UserGlobals_Set_Value( ICON_PLACEMENT, (int)Icon_Top ); + UserGlobals_Set_Value( + SECONDARY_ICON_PLACEMENT, (int)Icon_Left ); + + UserGlobals_Set_Value( NEIGHBORHOOD_SHRINK_FACTOR, 50 ); + + UserGlobals_Set_Value( GRAVITY, 12 ); + + UserGlobals_Set_Value( BORDER_SIZE, 5 ); + UserGlobals_Set_Value( OUTER_BORDER_LINEWIDTH, 2 ); + UserGlobals_Set_Value( INNER_BORDER_LINEWIDTH, 1 ); + + UserGlobals_Set_Value( GADGET_WIDTH, 12 ); + + /* ------------------------------------------------------------ */ + + Userwin_Set_Default_Value( HEADER_HEIGHT, 16 ); + + Userwin_Set_Default_Value( ICON_WIDTH, 64 ); + Userwin_Set_Default_Value( ICON_HEIGHT, 64 ); + + Userwin_Set_Default_Value( ICON_BODY_TOP, 2 ); + Userwin_Set_Default_Value( ICON_BODY_BOTTOM, 61 ); + Userwin_Set_Default_Value( ICON_BODY_LEFT, 2 ); + Userwin_Set_Default_Value( ICON_BODY_RIGHT, 61 ); + + Userwin_Set_Default_Value( ICON_RES_TOP, 2 ); + Userwin_Set_Default_Value( ICON_RES_BOTTOM, 10 ); + Userwin_Set_Default_Value( ICON_RES_LEFT, 2 ); + Userwin_Set_Default_Value( ICON_RES_RIGHT, 61 ); + + Userwin_Set_Default_Value( ICON_HOST_TOP, 12 ); + Userwin_Set_Default_Value( ICON_HOST_BOTTOM, 20 ); + Userwin_Set_Default_Value( ICON_HOST_LEFT, 2 ); + Userwin_Set_Default_Value( ICON_HOST_RIGHT, 61 ); + + Userwin_Set_Default_Value( ICON_NAME_TOP, 22 ); + Userwin_Set_Default_Value( ICON_NAME_BOTTOM, 61 ); + Userwin_Set_Default_Value( ICON_NAME_LEFT, 2 ); + Userwin_Set_Default_Value( ICON_NAME_RIGHT, 61 ); +} + diff --git a/defaults1.i b/defaults1.i new file mode 100644 index 0000000..2cab3a3 --- /dev/null +++ b/defaults1.i @@ -0,0 +1,489 @@ +/* +static char sccs_id[] = "@(#)defaults1.i 5.3 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +static void Profile_Defaults() +{ + Tilwin_Set_Global_Option( ADJUST_PLACEMENT_FAIRLY, TRUE ); + Tilwin_Set_Global_Option( ALLOW_AUTOMATIC_CLOSE, TRUE ); + Tilwin_Set_Global_Option( ALLOW_AUTO_CLOSE_MORE_RECENT, TRUE ); + Tilwin_Set_Global_Option( ALLOW_AUTOMATIC_SHRINK, TRUE ); + Tilwin_Set_Global_Option( ALLOW_AUTO_SHRINK_MORE_RECENT, TRUE ); + Tilwin_Set_Global_Option( BEST_FIT_IS_TIGHT, FALSE ); + Tilwin_Set_Global_Option( BREAK_MINIMUMS_FAIRLY, TRUE ); + Tilwin_Set_Global_Option( ENABLE_GRAVITY, TRUE ); + Tilwin_Set_Global_Option( ENFORCE_MAXIMUMS, TRUE ); + Tilwin_Set_Global_Option( ENFORCE_MINIMUMS, TRUE ); + Tilwin_Set_Global_Option( FIRST_FIT, FALSE ); + Tilwin_Set_Global_Option( PREFER_CLOSE_TO_SHRINK, TRUE ); + Tilwin_Set_Global_Option( PREFER_AUTOMATIC_CLOSE_TO_SEARCH, FALSE ); + Tilwin_Set_Global_Option( PREFER_AUTO_SHRINK_TO_SEARCH, FALSE ); + Tilwin_Set_Global_Option( PREFER_SHRINK_TO_SEARCH, FALSE ); + Tilwin_Set_Global_Option( PRORATE_VERTICALLY_FIRST, TRUE ); + + /* ------------------------------------------------------------ */ + + Tilwin_Set_Default_Option( EXPENSIVE_TO_REDRAW, FALSE ); + Tilwin_Set_Default_Option( FIXED_COMPLETELY, FALSE ); + Tilwin_Set_Default_Option( FIXED_BOTTOM_EDGE, FALSE ); + Tilwin_Set_Default_Option( FIXED_TOP_EDGE, FALSE ); + Tilwin_Set_Default_Option( FIXED_LEFT_EDGE, FALSE ); + Tilwin_Set_Default_Option( FIXED_RIGHT_EDGE, FALSE ); + Tilwin_Set_Default_Option( FIXED_SIZE, FALSE ); + Tilwin_Set_Default_Option( FIXED_HEIGHT, FALSE ); + Tilwin_Set_Default_Option( FIXED_WIDTH, FALSE ); + Tilwin_Set_Default_Option( REQUIRE_MANUAL_CLOSE, FALSE ); + Tilwin_Set_Default_Option( SHRINK_BASED_ON_CURRENT_SIZE, FALSE ); + Tilwin_Set_Default_Option( WEIGHTED_SHRINK, FALSE ); + + /* ------------------------------------------------------------ */ + /* Global Semantic Options */ + + UserGlobals_Set_Option( ALLOW_AGGRESSIVE_REPOPULATION, TRUE ); + + UserGlobals_Set_Option( + ALLOW_AUTO_SHRINK_ON_AUTO_REPOP, FALSE ); + UserGlobals_Set_Option( + ALLOW_AUTO_SHRINK_ON_EXPL_REPOP, TRUE ); + + UserGlobals_Set_Option( ALLOW_AUTO_SHRINK_ON_EXCHANGE, TRUE ); + UserGlobals_Set_Option( ALLOW_AUTO_CLOSE_ON_EXCHANGE, FALSE ); + + UserGlobals_Set_Option( ALLOW_AUTOMATIC_SHRINK_BY_CLIENT, TRUE ); + UserGlobals_Set_Option( ALLOW_AUTOMATIC_CLOSE_BY_CLIENT, TRUE ); + + UserGlobals_Set_Option( ALLOW_LISTENER_TO_CLOSE, TRUE ); + UserGlobals_Set_Option( ALLOW_LSNR_TO_CHANGE_BY_CLIENT, FALSE ); + UserGlobals_Set_Option( ALLOW_LSNR_TO_CLOSE_BY_CLIENT, FALSE ); + + UserGlobals_Set_Option( ALLOW_SHRINK_ON_AUTO_OPEN, TRUE ); + UserGlobals_Set_Option( ALLOW_SHRINK_ON_CENTER_OPEN, TRUE ); + UserGlobals_Set_Option( ALLOW_SHRINK_ON_CORNER_OPEN, FALSE ); + UserGlobals_Set_Option( ALLOW_SHRINK_ON_RESIZE, FALSE ); + + UserGlobals_Set_Option( AUTO_DESIRED_ENLARGE, TRUE ); + + UserGlobals_Set_Option( AUTO_PRORATE, FALSE ); + UserGlobals_Set_Option( AUTO_PRORATE_LOCALLY, TRUE ); + + UserGlobals_Set_Option( AUTO_REPOPULATE_LAST, FALSE ); + UserGlobals_Set_Option( AUTO_REPOPULATE_ON_AUTO_UNZOOM, TRUE ); + UserGlobals_Set_Option( AUTO_REPOPULATE_ON_CLOSE, TRUE ); + UserGlobals_Set_Option( AUTO_REPOP_ON_DESKTOP_RESIZE, TRUE ); + UserGlobals_Set_Option( AUTO_REPOP_ON_EXPLICIT_UNZOOM, TRUE ); + + UserGlobals_Set_Option( BIASED_AUTO_PRORATE, FALSE ); + UserGlobals_Set_Option( BIASED_EXPLICIT_PRORATE, FALSE ); + + UserGlobals_Set_Option( ENABLE_AUTO_REPOP_DURING_LAYOUT, FALSE ); + UserGlobals_Set_Option( ENABLE_AUTO_SIZING_DURING_LAYOUT, FALSE ); + + UserGlobals_Set_Option( FULL_SCREEN, FALSE ); + + UserGlobals_Set_Option( ONLY_REPOP_SINCE_ON_AUTO_UNZOOM, TRUE ); + UserGlobals_Set_Option( ONLY_REPOPULATE_SINCE_ON_CLOSE, TRUE ); + UserGlobals_Set_Option( + ONLY_REPOP_SINCE_ON_EXPL_UNZOOM, TRUE ); + + UserGlobals_Set_Option( PREFER_CL_TO_SHR_ON_AUTO_OPEN, FALSE ); + UserGlobals_Set_Option( PREFER_CL_TO_SHR_ON_CENTER_OPEN, FALSE ); + UserGlobals_Set_Option( PREFER_CL_TO_SHR_ON_CORNER_OPEN, TRUE ); + UserGlobals_Set_Option( PREFER_CL_TO_SHR_ON_EXCHANGE, FALSE ); + UserGlobals_Set_Option( PREFER_CL_TO_SHR_ON_RESIZE, TRUE ); + + UserGlobals_Set_Option( PREFER_EXC_LOC_ON_ICONIZING, TRUE ); + UserGlobals_Set_Option( PREFER_EXCHANGED_LOC_ON_OPENING, TRUE ); + + UserGlobals_Set_Option( + PREFER_PREV_POS_ON_AUTO_REPOP, TRUE ); + UserGlobals_Set_Option( + PREFER_PREV_POS_ON_EXPL_REPOP, TRUE ); + + UserGlobals_Set_Option( + PF_CTR_NBR_2_AUTO_CL_ON_OPEN, FALSE ); + UserGlobals_Set_Option( + PF_CTR_NBR_2_AUTO_SHR_ON_OPEN, FALSE ); + UserGlobals_Set_Option( + PF_CTR_NBR_2_SHRINK_ON_OPEN, FALSE ); + UserGlobals_Set_Option( + PF_EDGE_NBR_2_AUTO_CL_ON_OPEN, FALSE ); + UserGlobals_Set_Option( + PF_EDGE_NBR_2_AUTO_SHR_ON_OPEN, FALSE ); + UserGlobals_Set_Option( + PF_EDGE_NBR_2_SHRINK_ON_OPEN, FALSE ); + + UserGlobals_Set_Option( + PF_DTOP_2_AUTO_CL_ON_AUTO_OPEN, TRUE ); + UserGlobals_Set_Option( + PF_DTOP_2_AUTO_SHR_ON_AUTO_OPEN, TRUE ); + UserGlobals_Set_Option( + PF_DTOP_2_SHRINK_ON_AUTO_OPEN, TRUE ); + + UserGlobals_Set_Option( + PREF_SLD_TO_AUTO_CL_ON_RESIZE, FALSE ); + UserGlobals_Set_Option( + PREF_SLD_TO_AUTO_SHR_ON_RESIZE, FALSE ); + UserGlobals_Set_Option( + PREF_SLD_TO_SHRINK_ON_RESIZE, FALSE ); + UserGlobals_Set_Option( + PF_CTR_NBR_2_AUTO_CL_ON_RESIZE, FALSE ); + UserGlobals_Set_Option( + PF_CTR_NBR_2_AUTO_SHR_ON_RESIZE, FALSE ); + UserGlobals_Set_Option( + PF_CTR_NBR_2_SHRINK_ON_RESIZE, FALSE ); + UserGlobals_Set_Option( + PF_EDGE_NBR_2_AUTO_CL_ON_RESIZE, FALSE ); + UserGlobals_Set_Option( + PF_EDGE_NBR_2_AUTO_SHR_ON_RESIZE, FALSE ); + UserGlobals_Set_Option( + PF_EDGE_NBR_2_SHRINK_ON_RESIZE, FALSE ); + + UserGlobals_Set_Option( PREFER_UNZOOM_TO_CLOSE, TRUE ); + + UserGlobals_Set_Option( PRORATE_LOCALLY, TRUE ); + + UserGlobals_Set_Option( REPOPULATE_STRICTLY, FALSE ); + UserGlobals_Set_Option( REPOPULATE_AUTO_CLOSED_ONLY, TRUE ); + + UserGlobals_Set_Option( + REQUIRE_PREV_POS_ON_AUTO_REPOP, TRUE ); + UserGlobals_Set_Option( + REQUIRE_PREV_POS_ON_EXPL_REPOP, FALSE ); + + UserGlobals_Set_Option( RESET_MAX_ON_INCREASE, TRUE ); + UserGlobals_Set_Option( RESET_MAX_ON_SHRINK, FALSE ); + + UserGlobals_Set_Option( RESET_MIN_ON_DECREASE, TRUE ); + UserGlobals_Set_Option( RESET_MIN_ON_ENLARGE, FALSE ); + UserGlobals_Set_Option( RESET_TIED_ZOOMED_MIN_ON_ENLARGE, FALSE ); + UserGlobals_Set_Option( RESET_MIN_MAX_ON_UNSZD_MAN_OPEN, TRUE ); + + UserGlobals_Set_Option( RESET_ZOOM_MIN, FALSE ); + UserGlobals_Set_Option( RESET_ZOOM_MIN_ALLOWS_DECREASE, FALSE ); + UserGlobals_Set_Option( RESET_ZOOM_MIN_USES_DESIRE, TRUE ); + + UserGlobals_Set_Option( TREAT_MOVE_LIKE_RELOCATE, FALSE ); + + UserGlobals_Set_Option( TRY_CTR_NBRHD_ON_EXCHANGE, FALSE ); + + UserGlobals_Set_Option( TRY_CTR_NBRHD_ON_OPEN, FALSE ); + UserGlobals_Set_Option( TRY_EDGE_NEIGHBORHOOD_ON_OPEN, FALSE ); + + UserGlobals_Set_Option( TRY_SLIDING_ON_RESIZE, FALSE ); + UserGlobals_Set_Option( TRY_CTR_NBRHD_ON_RESIZE, FALSE ); + UserGlobals_Set_Option( TRY_EDGE_NEIGHBORHOOD_ON_RESIZE, FALSE ); + + UserGlobals_Set_Option( TRY_REPOP_AGAIN_AFT_AUTO_PRORATE, TRUE ); + + UserGlobals_Set_Option( UNZOOM_TIED_LSNR_IF_NECESSARY, FALSE ); + + UserGlobals_Set_Option( ZOOM_ON_CREATE, FALSE ); + + /* ------------------------------------------------------------ */ + /* Global Interface Options */ + + UserGlobals_Set_Option( ACCEPT_NON_LISTENER_IN_BODY, TRUE ); + UserGlobals_Set_Option( ACCEPT_NON_LISTENER_IN_BORDER, FALSE ); + UserGlobals_Set_Option( ACCEPT_NON_LISTENER_IN_GADGET, FALSE ); + UserGlobals_Set_Option( ACCEPT_NON_LISTENER_IN_HEADER, TRUE ); + + UserGlobals_Set_Option( AUTO_PLACE_ON_ICON_OPEN, FALSE ); + UserGlobals_Set_Option( AUTO_PLACE_ON_MENU_OPEN, FALSE ); + UserGlobals_Set_Option( AUTO_PLACE_ON_UNSIZED_OPEN, TRUE ); + + UserGlobals_Set_Option( BUTTON_MAKES_LISTENER_IN_BODY, TRUE ); + UserGlobals_Set_Option( BUTTON_MAKES_LISTENER_IN_HEADER, TRUE ); + + UserGlobals_Set_Option( CENTER_CURSOR_ON_MOVE, TRUE ); + UserGlobals_Set_Option( CENTER_CURSOR_ON_RELOCATE, TRUE ); + + UserGlobals_Set_Option( CLEAR_BODY_ON_REDRAW, TRUE ); + + UserGlobals_Set_Option( CLOSE_IN_HEADER, FALSE ); + UserGlobals_Set_Option( CLOSE_IN_CORNER_BORDER, FALSE ); + UserGlobals_Set_Option( CLOSE_IN_SIDE_BORDER, FALSE ); + UserGlobals_Set_Option( CLOSE_IN_MOVE_GADGET, TRUE ); + UserGlobals_Set_Option( CLOSE_IN_ZOOM_GADGET, TRUE ); + + UserGlobals_Set_Option( DESIRE_IN_HEADER, FALSE ); + UserGlobals_Set_Option( DESIRE_IN_CORNER_BORDER, FALSE ); + UserGlobals_Set_Option( DESIRE_IN_SIDE_BORDER, FALSE ); + UserGlobals_Set_Option( DESIRE_IN_MOVE_GADGET, FALSE ); + UserGlobals_Set_Option( DESIRE_IN_ZOOM_GADGET, TRUE ); + + UserGlobals_Set_Option( DISTINGUISH_CORNER_BORDERS, TRUE ); + UserGlobals_Set_Option( + DISTNGSH_CORNER_BORDERS_BY_INV, TRUE ); + + UserGlobals_Set_Option( DRAW_X_ON_MOVE, TRUE ); + UserGlobals_Set_Option( DRAW_X_ON_OPEN, TRUE ); + UserGlobals_Set_Option( DRAW_X_ON_RESIZE, TRUE ); + + UserGlobals_Set_Option( ENLARGE_IN_HEADER, FALSE ); + UserGlobals_Set_Option( ENLARGE_IN_CORNER_BORDER, FALSE ); + UserGlobals_Set_Option( ENLARGE_IN_SIDE_BORDER, FALSE ); + UserGlobals_Set_Option( ENLARGE_IN_MOVE_GADGET, FALSE ); + UserGlobals_Set_Option( ENLARGE_IN_ZOOM_GADGET, TRUE ); + + UserGlobals_Set_Option( EXCHANGE_IN_HEADER, FALSE ); + UserGlobals_Set_Option( EXCHANGE_IN_ICON, TRUE ); + UserGlobals_Set_Option( EXCHANGE_IN_CORNER_BORDER, FALSE ); + UserGlobals_Set_Option( EXCHANGE_IN_SIDE_BORDER, FALSE ); + UserGlobals_Set_Option( EXCHANGE_IN_MOVE_GADGET, TRUE ); + UserGlobals_Set_Option( EXCHANGE_IN_ZOOM_GADGET, FALSE ); + + UserGlobals_Set_Option( + INCL_BGRND_MENU_IN_WINDOW_MENU, TRUE ); + + UserGlobals_Set_Option( KEY_MAKES_LISTENER_IN_BODY, TRUE ); + UserGlobals_Set_Option( KEY_MAKES_LISTENER_IN_BORDER, FALSE ); + UserGlobals_Set_Option( KEY_MAKES_LISTENER_IN_GADGET, FALSE ); + UserGlobals_Set_Option( KEY_MAKES_LISTENER_IN_HEADER, FALSE ); + + UserGlobals_Set_Option( FOCUS_FOLLOWS_CURSOR, TRUE ); + + UserGlobals_Set_Option( MANAGER_MENU_IN_BODY, FALSE ); + UserGlobals_Set_Option( MANAGER_MENU_IN_HEADER, TRUE ); + UserGlobals_Set_Option( MANAGER_MENU_IN_ICON, TRUE ); + UserGlobals_Set_Option( MANAGER_MENU_IN_CORNER_BORDER, FALSE ); + UserGlobals_Set_Option( MANAGER_MENU_IN_SIDE_BORDER, FALSE ); + UserGlobals_Set_Option( MANAGER_MENU_IN_MOVE_GADGET, FALSE ); + UserGlobals_Set_Option( MANAGER_MENU_IN_ZOOM_GADGET, FALSE ); + + UserGlobals_Set_Option( MIDDLE_MENU, FALSE ); + + UserGlobals_Set_Option( MOVE_IN_HEADER, TRUE ); + UserGlobals_Set_Option( MOVE_IN_ICON, TRUE ); + UserGlobals_Set_Option( MOVE_IN_CORNER_BORDER, TRUE ); + UserGlobals_Set_Option( MOVE_IN_SIDE_BORDER, TRUE ); + UserGlobals_Set_Option( MOVE_IN_MOVE_GADGET, TRUE ); + UserGlobals_Set_Option( MOVE_IN_ZOOM_GADGET, FALSE ); + + UserGlobals_Set_Option( PLACE_CSR_IN_BODY_NOT_BORDER, TRUE ); + UserGlobals_Set_Option( PLACE_CSR_IN_BODY_NOT_GADGET, TRUE ); + + UserGlobals_Set_Option( + PLACE_CSR_IN_BORDER_AFTER_RESIZE, FALSE ); + + UserGlobals_Set_Option( + PLACE_CSR_GDGT_AFT_CL_AUTO_OPEN, FALSE ); + UserGlobals_Set_Option( + PLACE_CSR_GDGT_AFT_US_AUTO_OPEN, TRUE ); + UserGlobals_Set_Option( + PLACE_CSR_IN_GADGET_AFT_MAN_OPEN, TRUE ); + + UserGlobals_Set_Option( + PLACE_CSR_IN_GADGET_AFT_EXCHANGE, TRUE ); + UserGlobals_Set_Option( + PLACE_CSR_IN_GADGET_AFT_MOVE, TRUE ); + + UserGlobals_Set_Option( PLACE_CSR_IN_ICON_AFTER_CLOSE, FALSE ); + + UserGlobals_Set_Option( PLACE_CSR_BACK_AFTER_MENU_OP, TRUE ); + UserGlobals_Set_Option( PLACE_CSR_BACK_ON_CANCEL, TRUE ); + + UserGlobals_Set_Option( REDRAW_IN_HEADER, TRUE ); + UserGlobals_Set_Option( REDRAW_IN_ICON, FALSE ); + UserGlobals_Set_Option( REDRAW_IN_CORNER_BORDER, TRUE ); + UserGlobals_Set_Option( REDRAW_IN_SIDE_BORDER, TRUE ); + UserGlobals_Set_Option( REDRAW_IN_MOVE_GADGET, FALSE ); + UserGlobals_Set_Option( REDRAW_IN_ZOOM_GADGET, FALSE ); + + UserGlobals_Set_Option( RELOCATE_IN_HEADER, FALSE ); + UserGlobals_Set_Option( RELOCATE_IN_CORNER_BORDER, FALSE ); + UserGlobals_Set_Option( RELOCATE_IN_SIDE_BORDER, FALSE ); + UserGlobals_Set_Option( RELOCATE_IN_MOVE_GADGET, TRUE ); + UserGlobals_Set_Option( RELOCATE_IN_ZOOM_GADGET, FALSE ); + + UserGlobals_Set_Option( RESIZE_IN_HEADER, FALSE ); + UserGlobals_Set_Option( RESIZE_IN_CORNER_BORDER, TRUE ); + UserGlobals_Set_Option( RESIZE_IN_SIDE_BORDER, TRUE ); + UserGlobals_Set_Option( RESIZE_IN_MOVE_GADGET, FALSE ); + UserGlobals_Set_Option( RESIZE_IN_ZOOM_GADGET, FALSE ); + + UserGlobals_Set_Option( SHOW_LISTENER_IN_BORDERS, FALSE ); + UserGlobals_Set_Option( SHOW_LISTENER_IN_HEADER, TRUE ); + UserGlobals_Set_Option( SHOW_FOCUS_IN_BORDERS, TRUE ); + UserGlobals_Set_Option( SHOW_FOCUS_IN_HEADER, FALSE ); + + UserGlobals_Set_Option( USE_CORNER_BORDERS, TRUE ); + + UserGlobals_Set_Option( USE_ICON_AREA, FALSE ); + UserGlobals_Set_Option( USE_ICONS, TRUE ); + UserGlobals_Set_Option( USE_RTL_ICON, TRUE ); + + UserGlobals_Set_Option( USER_MENU_IN_BODY, FALSE ); + UserGlobals_Set_Option( USER_MENU_IN_HEADER, FALSE ); + UserGlobals_Set_Option( USER_MENU_IN_SIDE_BORDER, FALSE ); + UserGlobals_Set_Option( USER_MENU_IN_CORNER_BORDER, FALSE ); + UserGlobals_Set_Option( USER_MENU_IN_ICON, FALSE ); + UserGlobals_Set_Option( USER_MENU_IN_MOVE_GADGET, FALSE ); + UserGlobals_Set_Option( USER_MENU_IN_ZOOM_GADGET, FALSE ); + + UserGlobals_Set_Option( ZOOM_IN_HEADER, FALSE ); + UserGlobals_Set_Option( ZOOM_IN_CORNER_BORDER, FALSE ); + UserGlobals_Set_Option( ZOOM_IN_SIDE_BORDER, FALSE ); + UserGlobals_Set_Option( ZOOM_IN_MOVE_GADGET, FALSE ); + UserGlobals_Set_Option( ZOOM_IN_ZOOM_GADGET, TRUE ); + + /* ------------------------------------------------------------ */ + + Userwin_Set_Default_Option( ACCEPT_BUTTON_IN_BODY, TRUE ); + Userwin_Set_Default_Option( ACCEPT_BUTTON_IN_HEADER, TRUE ); + Userwin_Set_Default_Option( ACCEPT_BUTTON_IN_ICON, TRUE ); + + Userwin_Set_Default_Option( ACCEPT_KEY_IN_BODY, TRUE ); + Userwin_Set_Default_Option( ACCEPT_KEY_IN_BORDER, TRUE ); + Userwin_Set_Default_Option( ACCEPT_KEY_IN_GADGET, TRUE ); + Userwin_Set_Default_Option( ACCEPT_KEY_IN_HEADER, TRUE ); + Userwin_Set_Default_Option( ACCEPT_KEY_IN_ICON, TRUE ); + + Userwin_Set_Default_Option( AGGRESSIVELY_REPOPULATE, FALSE ); + + Userwin_Set_Default_Option( ALLOW_SHRINK_ON_UNZOOM, TRUE ); + Userwin_Set_Default_Option( ALLOW_SHRINK_ON_AUTO_UNZOOM, TRUE ); + + Userwin_Set_Default_Option( ALLOW_ZOOM_CLOSE, TRUE ); + + Userwin_Set_Default_Option( AUTO_OPEN_ON_CREATE, TRUE ); + Userwin_Set_Default_Option( AUTO_OPEN_ON_WRITE, FALSE ); + + Userwin_Set_Default_Option( AUTO_PLACE_ON_CLIENT_OPEN, TRUE ); + + Userwin_Set_Default_Option( AUTO_RESATISFY_ON_RESET_MINMAX, TRUE ); + + Userwin_Set_Default_Option( CLIENT_DRAWS_ICON, FALSE ); + Userwin_Set_Default_Option( CLIENT_PROVIDES_HEADER, FALSE ); + + Userwin_Set_Default_Option( CONSIDER_FOR_REPOPULATION, TRUE ); + + Userwin_Set_Default_Option( ENFORCE_CLIENT_MINIMUMS, TRUE ); + Userwin_Set_Default_Option( ENFORCE_CLIENT_MAXIMUMS, FALSE ); + + Userwin_Set_Default_Option( LISTENER_TIED_TO_ZOOM, FALSE ); + + Userwin_Set_Default_Option( FORCE_SHRINK_ON_UNZOOM, TRUE ); + Userwin_Set_Default_Option( FORCE_SHRINK_ON_AUTO_UNZOOM, FALSE ); + + Userwin_Set_Default_Option( GLASS_CLIENT, FALSE ); + + Userwin_Set_Default_Option( ICON_DRAWN_BY_CLIENT, FALSE ); + + Userwin_Set_Default_Option( INCLUDE_RES_CLASS_IN_TITLE, TRUE ); + Userwin_Set_Default_Option( INCLUDE_RES_CLASS_IN_ICON_TITLE, TRUE ); + Userwin_Set_Default_Option( INCLUDE_RES_NAME_IN_TITLE, FALSE ); + Userwin_Set_Default_Option( INCLUDE_RES_NAME_IN_ICON_TITLE, FALSE ); + Userwin_Set_Default_Option( INCLUDE_NAME_IN_TITLE, TRUE ); + Userwin_Set_Default_Option( INCLUDE_NAME_IN_ICON_TITLE, TRUE ); + Userwin_Set_Default_Option( INCLUDE_HOST_IN_TITLE, TRUE ); + Userwin_Set_Default_Option( INCLUDE_HOST_IN_ICON_TITLE, TRUE ); + + Userwin_Set_Default_Option( INCLUDE_TITLE_IN_HEADER, TRUE ); + Userwin_Set_Default_Option( INCLUDE_TITLE_IN_PIXMAP_ICON, FALSE ); + Userwin_Set_Default_Option( INCLUDE_TITLE_IN_CLIENT_ICON, FALSE ); + + Userwin_Set_Default_Option( INVERT_ICON_WHEN_PENDING, TRUE ); + + Userwin_Set_Default_Option( NOTE_LISTENER, TRUE ); + Userwin_Set_Default_Option( NOTE_LISTENER_INPUT, FALSE ); + Userwin_Set_Default_Option( NOTE_CLOSED_INPUT, FALSE ); + Userwin_Set_Default_Option( NOTE_CLOSED_OUTPUT, FALSE ); + Userwin_Set_Default_Option( NOTE_OPEN_INPUT, FALSE ); + Userwin_Set_Default_Option( NOTE_OPEN_OUTPUT, FALSE ); + + Userwin_Set_Default_Option( PREFER_PREVIOUS_ICON_POSITION, TRUE ); + Userwin_Set_Default_Option( PREFER_PREV_POS, TRUE ); + Userwin_Set_Default_Option( REQUIRE_PREVIOUS_ICON_POSITION, FALSE ); + Userwin_Set_Default_Option( REQUIRE_PREV_POS, FALSE ); + + Userwin_Set_Default_Option( SAVE_IN_LAYOUT, TRUE ); + + Userwin_Set_Default_Option( SHOW_ICON, TRUE ); + + Userwin_Set_Default_Option( USE_BORDERS, TRUE ); + Userwin_Set_Default_Option( USE_GADGETS, TRUE ); + Userwin_Set_Default_Option( USE_HEADER, TRUE ); + Userwin_Set_Default_Option( USE_MOVE_GADGET, TRUE ); + + Userwin_Set_Default_Option( ZOOM_FULL_EXPLICIT, FALSE ); + Userwin_Set_Default_Option( ZOOM_FULL_HEIGHT, FALSE ); + Userwin_Set_Default_Option( ZOOM_FULL_WIDTH, FALSE ); + + Userwin_Set_Default_Option( ZOOM_ON_OPEN, FALSE ); + + /* ------------------------------------------------------------ */ + + UserGlobals_Set_Value( ICON_PLACEMENT, (int)Icon_Top ); + UserGlobals_Set_Value( + SECONDARY_ICON_PLACEMENT, (int)Icon_Left ); + + UserGlobals_Set_Value( NEIGHBORHOOD_SHRINK_FACTOR, 50 ); + + UserGlobals_Set_Value( GRAVITY, 12 ); + + UserGlobals_Set_Value( RTL_LEFT_X, 0 ); + UserGlobals_Set_Value( RTL_TOP_Y, 0 ); + + UserGlobals_Set_Value( RTL_WIDTH, 540 ); + UserGlobals_Set_Value( RTL_HEIGHT, 600 ); + + UserGlobals_Set_Value( FULL_WIDTH, 1150 ); + UserGlobals_Set_Value( FULL_HEIGHT, 894 ); + + UserGlobals_Set_Value( BORDER_SIZE, 5 ); + UserGlobals_Set_Value( OUTER_BORDER_LINEWIDTH, 2 ); + UserGlobals_Set_Value( INNER_BORDER_LINEWIDTH, 1 ); + + UserGlobals_Set_Value( GADGET_WIDTH, 12 ); + + /* ------------------------------------------------------------ */ + + Userwin_Set_Default_Value( HEADER_HEIGHT, 16 ); + + Userwin_Set_Default_Value( ICON_WIDTH, 64 ); + Userwin_Set_Default_Value( ICON_HEIGHT, 64 ); + + Userwin_Set_Default_Value( ICON_BODY_TOP, 2 ); + Userwin_Set_Default_Value( ICON_BODY_BOTTOM, 61 ); + Userwin_Set_Default_Value( ICON_BODY_LEFT, 2 ); + Userwin_Set_Default_Value( ICON_BODY_RIGHT, 61 ); + + Userwin_Set_Default_Value( ICON_RES_TOP, 2 ); + Userwin_Set_Default_Value( ICON_RES_BOTTOM, 10 ); + Userwin_Set_Default_Value( ICON_RES_LEFT, 2 ); + Userwin_Set_Default_Value( ICON_RES_RIGHT, 61 ); + + Userwin_Set_Default_Value( ICON_HOST_TOP, 12 ); + Userwin_Set_Default_Value( ICON_HOST_BOTTOM, 20 ); + Userwin_Set_Default_Value( ICON_HOST_LEFT, 2 ); + Userwin_Set_Default_Value( ICON_HOST_RIGHT, 61 ); + + Userwin_Set_Default_Value( ICON_NAME_TOP, 22 ); + Userwin_Set_Default_Value( ICON_NAME_BOTTOM, 61 ); + Userwin_Set_Default_Value( ICON_NAME_LEFT, 2 ); + Userwin_Set_Default_Value( ICON_NAME_RIGHT, 61 ); +} + diff --git a/doc/ANNOUNCEMENT b/doc/ANNOUNCEMENT new file mode 100644 index 0000000..c5c0a22 --- /dev/null +++ b/doc/ANNOUNCEMENT @@ -0,0 +1,101 @@ +RELEASE 5.1 OF THE SIEMENS RTL TILED WINDOW MANAGER + +is now available in the /contrib/rtl5.1 directory on +expo.lcs.mit.edu. It includes C source code (with an +Imakefile) as well as as manuals and tutorials in Scribe, Tex, +Postscript, and plaintext formats. + +It is quite similar to the beta release, with a few bug fixes, +and portability improvements (12 char filenames, xio.h) + +This software is being submitted to the X Consortium for +inclusion on the contributor's tape for Release 3. It will +also be submitted to comp.sources.x. + +Due to limited resources, we are unable to distribute +tapes. The size of the system precludes the use of +electronic mail for distribution. + +Features of this distribution: + + - This is a tiled window manager. Windows and + icons do not overlap (except for transient and + override-redirect windows). Arbitrary tiled layouts + are supported, not just columns. + + - Automatic strategies are provided for window + placement and sizing. The degree of automation + is controlled by a variety of options. + + - Windows are decorated with titlebars,borders and + gadgets. The size and presence of these decorations + can be individually controlled. + + - Supports most of the X11R2 version of the conventions + for Client / Window Manager communications, except + for wm installation of colormaps + + - The user can save and restore window layouts. + That is, RTL is a session manager as well as a + window manager. + + - Both click-to-type and real-estate-driven + focus models are available. + + - The user can specify a separate icon area + and control icon layout within it. + + - The wm will optionally write application-specific + information over specified regions of pixmap icons. + + - The user can override the client's pixmap icon. + A variety of snazzy icons are provided for the + usual applications. + + - Users can perform group-iconification -- display + a single icon for a group of top-level windows (for + clients that define window groups). + + - Support is provided for both 3-button and 1-button + mice. + + - Using preference files, users can organize + applications in a class hierarchy, for purposes of + inheriting option settings. + +The /contrib/rtl5.1 directory contains a README file as +well as a number of files in compressed tar format. +The README file contains complete instructions +for uncompressing the files, and for installing the +system. A SUMS file is included as well, for checking on the +results of ftp. + +Please note again, that due to limited resources, +we cannot send out tapes of the system or distribute +it via electronic mail. + +We are happy to receive comments and questions, +and will do our best to respond to them. Send +them to + + rtl@siemens.com + +or + + Software Technology Department + Siemens RTL + 105 College Rd East, + Princeton NJ, 08540. + Attn: Tiled Window Manager + +This is the first tiled window manager developed that +supports arbitrary layouts, and is as much a research +vehicle as a production-quality window manager. +Consequently, there are an extremely large number of options +that may be set by the user (although naive users can +use the default option settings, or one of the preference +files distributed with the system). We are particularly +interested in users' experiences with various option settings. + +Enjoy! + diff --git a/doc/plaintext/manual5.doc b/doc/plaintext/manual5.doc new file mode 100644 index 0000000..f77095c --- /dev/null +++ b/doc/plaintext/manual5.doc @@ -0,0 +1,2379 @@ + MANUAL FOR THE + SIEMENS RTL + TILED WINDOW MANAGER + + RELEASE 5.1 + FOR USE WITH X11R3 + + + ELLIS S. COHEN + SIEMENS RESEARCH & TECHNOLOGY LABORATORIES + 105 COLLEGE ROAD EAST + PRINCETON NJ 08540-6668 + (609) 734-6524 + + COMMENTS OR QUESTIONS TO + rtl@cadillac.siemens.com (INTERNET) + princeton!siemens!cadillac!rtl (UUCP) + + 1 September 1988 + + + Copyright 1988 by Siemens Research and Technology Laboratories, + Princeton, NJ + + Permission to use, copy, modify, and distribute this documentation + and the software described for any purpose and without fee is hereby + granted, provided that the above copyright notice appear in all copies + and that both that copyright notice and this permission notice appear + in supporting documentation, and that the name of Siemens Research and + Technology Laboratories not be used in advertising or publicity + pertaining to distribution of the software without specific, written + prior permission. + + SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + EVENT SHALL SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + + This manual provides a detailed description of Release 5.1 of the + Siemens RTL Tiled Window Manager, a window manager for X11(X11 and + the X Window System are trademarks of MIT) clients. + + A separate document, "Tutorial: Initial Setup for Using the Siemens RTL + Tiled Window Manager", should be read first by novice users of the + system. + + + +Except for menus and transient pop-up windows, a tiled window manager does not +permit windows to overlap. + +When an attempt is made to open, move, or resize a window, other windows may be +occupying the space needed. This space conflict is resolved by + + - Shrinking, closing, or moving the windows in the way, or + - Opening, moving, or resizing the window at a different size or + position than specified, or + - Refusing to perform the operation. + +Such side effects are a major feature distinguishing our tiled window manager +from existing overlapping window managers. + +The Siemens RTL Tiled Window Manager supports an arbitrary layout of tiled +windows. Windows may be placed anywhere; they do not necessarily line up in +columns. + +The window manager does not attempt to fill the screen. Windows have a desired +size, and are not made larger than this unless requested by the user. +Consequently, there may be blank space on the screen. + +While overlapping windows are more familiar, the Siemens RTL Tiled Window +Manager has some important benefits: + + - It keeps the desktop well organized -- the desktop does not look + messy. + + - Windows are always easy to find. Windows cannot get lost underneath + other windows, and window headers are not obscured by other windows. + + - Important information is never obscured by other windows. Obscured + windows are shrunk instead, and the application gets a chance to + reformat information to make use of the available space. + + - Screen space is not wasted by partially visible slivers that contain + useless information. Windows can have their minimum size set to + ensure that all essential information can be presented. If there is + no room on the screen for the window to be fully visible at its + minimum size, the window is automatically iconized. + + - Users do not have to manually move or shrink adjacent windows to keep + them fully visible when they enlarge or open a window -- the window + manager reorganizes screen space automatically. + +This release of the Siemens RTL Tiled Window Manager has the following +features: + + - Automatic strategies are provided for window placement and sizing. + The degree of automation is controlled by a variety of options. + + - Windows are decorated with titlebars,borders and gadgets. The size + and presence of these decorations can be individually controlled. + + - Supports the X11R2 version of the conventions for Client / Window + Manager communications. + + - The user can save and restore window layouts. That is, RTL is a + session manager as well as a window manager. + + - Both click-to-type and real-estate-driven focus models are available. + + - The user can specify a separate icon area and control icon layout + within it. + + - The wm will optionally write application-specific information over + specified regions of pixmap icons. + + - The user can override the client's pixmap icon. A variety of snazzy + icons are provided for the usual applications. + + - Users can perform group-iconification -- display a single icon for a + group of top-level windows (for clients that define window groups). + + - Support is provided for both 3-button and 1-button mice. + + - Using preference files, users can organize applications in a class + hierarchy, for purposes of inheriting option settings. + +This is the first tiled window manager developed that supports arbitrary +layouts, and is as much a research vehicle as a production-quality window +manager. Consequently, there are an extremely large number of options that may +be set by the user (although naive users can use the default option settings, +or one of the preference files distributed with the system). We are +particularly interested in users' experiences with various option settings. + +The manual is organized as follows: + + 1. Windows and Icons: This describes how the window manager decorates + client windows with a header, borders and gadgets, and how they are + used. It also describes the contents, use, and placement of icons. + + 2. Window Sizes and Positions: Describes minimum, maximum, and desired + sizes for both normal and zoomed windows, and desired positions. + + 3. The Pointer Interface: Describes pointer related aspects of the user + interface, including the difference between the focus and the + listener window. + + 4. Manager Menu: Describes the global operations that can be performed + from the window manager menu. + + 5. Window Menu: Describes the operations that can be performed on an + individual window. + + 6. Icon Menu: Describes the operations that can be performed on an + icon. + + 7. Customization and Startup: Explains how to customize the window + manager via various files specifying tools, preference files (which + set options globally or on a per window-class basis), and startup + and layout files. Indicates how these are used on startup. + + 8. Automatic Strategies: How the window manager automatically adjusts + the size and position of windows to keep the desktop tiled and + balance competing demands for screen space. + + 9. Standard X11 Properties: How standard X11 properties are used by the + window manager. + + 10. Client Placement: Actions that a client can take which affect the + placement of windows. + + 11. Options: Describes the options and their default values. + +Both a tutorial manual, and a separate "Quick Reference Page" are available as +part of the distribution. + +In addition, an 18 minute videotaped demonstration of the system (previously +shown as part of the video program at both CHI+GI '87 in Toronto and Interact +'87 in Stuttgart) is available for loan by writing to + + Software Technology Department + Siemens RTL + 105 College Rd East, + Princeton NJ, 08540. + +1. Windows and Icons + + + +1.1. Windows + +Windows created by an X11 client are reparented within a larger window owned by +the window manager. In addition to the client's window, the larger window is +decorated by the window manager with a border, a header, and two "gadgets". + +The border is used primarily for resizing -- the sides for one-dimensional +resizing, and the corners for two-dimensional resizing. A window's border is +shown in reverse image when that window is the focus -- that is, when a key +press would be transmitted to the client which owns the window. The border is +also used for initiating constrained window moves. + +The border described is provided by the window manager, not the one that X11 +supports as part of the basic window structure. In fact the window manager +hides the client's border while it is running. + +The header can display the window class, the window name, and/or the client +machine on which the application is running. It is also used for popping up a +menu of window operations. A window's header is shown in reverse image when +that window is the listener -- that is, when it is the last window which has +received input. + +To the left of the header is the zoom gadget -- it is used for "zooming" and +"unzooming" windows, and for enlarging a window to its desired or maximum size. +When a window is unzoomed, the gadget displays a "closed box", and when it is +zoomed, it displays an "open box". + +It is possible to tie listener to zoom -- that is, whenever a window becomes +the listener, it is automatically zoomed, and when it is no longer the +listener, it is automatically unzoomed. Windows so tied have a horizontal line +through their zoom gadget. + +To the right of the header is the move gadget -- it is used for moving, +relocating, and exchanging windows. + +Various options are available for setting the sizes of decorations, and for +determining, on a per-window basis, whether they should used. + + + +1.2. Icons + +When a window is closed, the window title is placed in a submenu of the window +manager menu, and an icon for the window may optionally be displayed. + +Through the WM_HINTS standard property, X11 allows the client to provide an +icon pixmap which will be displayed when the window is iconized. Through +preference files, the user can specify an icon pixmap, and this will override +the one provided by the client. + +If an icon pixmap is not provided, a default icon is created by the window +manager containing the window class, the icon name (or window name if no icon +name is provided), and/or the client machine. + +Preferences can designate the area of the screen to be used for icons and can +specify the layout of the icons within that area. + +X11 allows clients to indicate a client icon window in the WM_HINTS structure +-- that is, a window into which the client can draw, which acts as an icon. +Client icon windows are not supported in release 5.1. However, if a client +attempts to map a client icon, a default icon, or one containing an icon pixmap +(if provided) is used instead. + +Icons provide a limited input channel to the client. Key presses when the icon +window is the focus may optionally be routed to the client. In addition, mouse +button combinations that are not interpreted by the window manager may also be +routed to the the client, and may be used by clients that wish to put up +special icon menus or take other actions. + +A special icon, the Siemens RTL icon, may be included on the screen. Through +it, the main window manager menu may be popped up (though it may also be popped +up from the background or as a submenu of each window menu). + +2. Window Sizes and Positions + +Windows have a user minimum size and a user maximum size which may be set by +the user. A window will be closed if less than the minimum space is available +for the window, and those operations which enlarge a window (Enlarge, Expand, +and Fill) will never enlarge a window above its maximum size. + +Windows also have a client minimum and a client maximum size -- set by a client +using the X11 standard property WM_NORMAL_HINTS. The client minimum and +maximum are optionally enforced. If they are enforced, the user minimum may +not be set smaller than the client minimum, and the user maximum may not be set +larger than the client maximum. + +Windows have a a desired size. Whenever a window is explicitly resized (by +either the user or the client), its desired size is set to this size. Whenever +possible, the window manager tries to ensure that a window is at least as large +as its desired size, enlarging a window to its desired size when space becomes +available. The desired size may also be set by a client using WM_NORMAL_HINTS. + +Users may leave windows in their normal state, or they may zoom them (later +unzooming them to restore them back to their normal state). There are separate +desired and user minimum sizes for the normal and zoomed states. The window +manager ensures that the zoomed sizes are always at least as large as their +normal (unzoomed) counterparts. + +Windows have a desired position -- a location at which the window manager tries +to keep the window centered. Each time the user manually changes the size or +placement of a window, its center becomes the new desired position. + +The client may change the desired position by specifying the top-left of the +window in WM_NORMAL_HINTS. If a size is specified in WM_NORMAL_HINTS as well, +then the center of the rectangle determined by that size and the top_left +coordinates are taken to be the new desired position. If no size is specified, +then the current window size is used. + +Icon sizes are fixed, although, if the icon_pixmap is changed, the icon size +will change as well. + +Like windows, icons have a desired position, and this changes when the user +moves the icon. The client can change the icon desired position by specifying +a new position using WM_HINTS. + +3. The Pointer Interface + + NOTE: This manual descibes the default user interface based on a + three button mouse with the default meanings for mouse button usage. + These defaults may be changed. A Quick Reference Page is available for + this default interface, as well as for the default interface provided + for use of a one-button mouse. See the section on Customizations and + Startup. + +We have adopted a number of important principles that relate to use of the +pointer, which are described below. We believe these contribute to the +pleasant "feel" of the system. + + + +3.1. Mouse Button Model + + Press-Move-Release vs Click-Move-Click + +The press-move-release, and the click-move-click buttoning styles are +interchangeable. For example, to begin moving a window, the user can hold the +SHIFT key down while using the middle button of a border. + + - For the press-move-release style, the user can press the middle + button in the border, hold it down while moving the mouse to another + location, and then release the button. + + - For the click-move-click style, the user can click the middle button + in the border, move the mouse to another location, and then click + again. + + Cancellation while Tracking + +Every operation that involves mouse movement is cancellable at any time by +pressing the right mouse button. For example, after pressing or clicking the +middle button in the border, the user can begin moving the window around. At +any time, if the right button is pressed, (whether the middle button is being +held down or was clicked), the move is cancelled, and the pointer is +(optionally) moved back to the position at which the operation was started. + + Redundancy of Buttons and Decorations + +In the default interface, the left button is used for sizing windows, the +middle button for moving windows, and the right button for popping up menus and +cancelling operations. + +There is a redundant correspondence between the button used and the decoration +used. For example, the zoom gadget is used for sizing operations, and is +primarily used with the left button. The move gadget is primarily used with +the middle button, and popping up menus is done in the header with the right +button. + +This redundancy provides a certain amount of flexibility. First, it means that +a three button mouse is not necessary. The decoration in which a button is +pressed, could, along with modifier keys (e.g. SHIFT and CTRL) be used to +distinguish operations. + +On the other hand, the decorations can be made optional. In fact, windows are +not required to have borders, headers or gadgets (and can even have just the +zoom but not the move gadget). To support this, the bindings of operations to +decorations are specified by options and can be changed so that, for example, +all operations can be performed from the borders. + + Consistent use of CTRL and SHIFT + +CTRL and SHIFT are used as modifiers to distinguish similar sorts of +operations. For example, there are three kinds of move operations obtained by +using the middle button in the move gadget: Relocate, used for changing the +size and location of a window, uses no modifiers; Move, for moving a window at +its current size, requires the SHIFT key; and Exchange requires the CTRL key. + +Use of both CTRL and SHIFT is reserved for special cases. CTRL and SHIFT left +or middle button in either gadget redraws the window. CTRL and SHIFT right +button (the "cancel" button) in either gadget closes the window. + + + +3.2. Feedback + + Watch Cursor + +When the system is completing a user operation, or a client operation that may +affect screen layout, a watch cursor is displayed, and input is queued. + + Cursor shows State + +In the midst of tracking a window operation, the cursor indicates both the +operation and the state. For example, during the Move operation, the cursor +changes to a hand. There are some operations (such as Relocate, discussed +later) where the state may change during the operation. When the state +changes, the cursor changes as well. + + Cursor indicates Pointer Position + +When the system is not in the midst of tracking a window operation, the cursor +changes to indicate the sort of decoration in which it is positioned. For +instance, there are eight different sorts of border areas (four sides and the +four corners), and a different cursor for each one. The cursor changes +immediately when it moves from one to another. Consequently, there is no need +to guess (from the position alone) whether the cursor is in the header or +border, or in a side border vs. a corner border. + + Confirmation + +Some irrevocable operations (e.g. deleting a window, saving the layout, exiting +from the window manager) require confirmation. The cursor changes to a +question mark in this case. To cancel the operation, the right ( "cancel" ) +button is used. The left or middle buttons confirm the operation. + + Rubber Banding during Tracking + +Rubber-banding is used to provide feedback about the final window size during +resizing, moving, and opening a window. This is especially important because +of gravity, which adjusts the edge of the rubber-band when it is near the edge +of another window. + + Warping + +After an operation is completed, the pointer (optionally) is warped to a +position where the operation can be easily modified. For example, after moving +a window, the pointer is placed in the move gadget so that it can be moved +again. + + + +3.3. Focus and Listener + +Our window manager distinguishes between the focus -- the window to which a +keypress would currently be sent, and the listener -- the window to which input +was last directed. + Focus Follows Pointer + +When the option focusFollowsPointer is on, a "Real-Estate-Driven" interface is +used -- the focus is the window which contains the pointer. However, if the +client has set the input field in WM_HINTS for that window to false, there will +be no focus when the pointer is in the window; the client must explicitly set +the input focus to obtain keyboard input. + +When the option focusFollowsPointer is off, the interface changes to +"Click-To-Type" -- the user must click a mouse button in the window in order to +change the focus (and since the click is sent to the client, the listener +changes as well). If the client has set the input field in WM_HINTS for that +window to false, then the click is reported to the client, but the current +focus and listener are simply deselected; as described above, the client must +explicitly set the input focus to obtain keyboard input. + + Preventing Client Side Effects to an Active Listener + +When the listener window is also the focus, we call it an active listener. +Since input has just been sent to it and the pointer remains within it, it is +actively in use, and the window manager treats such windows specially for the +reason described below. + +X11 clients can open, move or resize a window independently of the user. Such +actions may be unpredictable -- they may happen at any time -- and they may +affect other windows, causing them to shrink or close. Such asynchronous +unpredictable actions can be especially annoying when they affect the window in +which the user is currently working. + +Consequently, as an option, it is possible to prevent a listener from being +closed, and to prevent an active listener from being resized or moved as a side +effect of an operation performed by a client. + + Listener Tied To Zoom + +Some overlapping window managers automatically raise a window when it becomes +the listener, on the belief that a window in use should be completely visible. +We allow a window to be zoomed when it becomes the listener for a similar +reason. + +In our tiled window manager, a window may be shrunk as a result of side effects +caused by operations on other windows. When it becomes the listener, the user +may desire that it be zoomed to an effective working size. When the window is +no longer the listener, it may be allowed to be unzoomed. This behavior ensues +if the window option listenerTiedToZoom is on. + +If the window option zoomTiedToDesire is set, then a window's zoom desire size +is taken to be it's normal desire size -- that is, when the window is zoomed, +it is zoomed to its normal desired size. + + Preventing a Change of Listener + +Users may wish to direct input to another window without changing the listener. +There are two reasons why this is useful: + + 1. The listener is generally prevented from being closed as a side + effect of an operation by a client. The user may want to retain + this property of the current listener while temporarily typing into + another window. + + 2. Even though the user has tied a window's listener to zoom, he may + only need to temporarily type something in it (e.g. start a + compilation) and there is no reason to zoom it (and correspondingly + unzoom the current listener if it is tied as well). + +If focusFollowsPointer is on, the user may simply move the pointer to the +header of the other window and type. Input is directed to that window's +client. However, the original listener remains unchanged, and is still +prevented from being closed (but not moved or resized) as a side effect of a +client operation. The temporary listener is prevented from being closed, moved +or resized while it is the focus. + +If focusFollowsPointer is off, the user may obtain the same result by clicking +in the header of the other window. To return the focus to the original +listener, the user just leaves the temporary listener window. + +4. Manager Menu + +Pressing or clicking the right button in the background or in the RTL icon will +pop up the main manager menu. This menu also appears as a submenu of the +window menu. It contains the following entries: + + 1. Redraw All -- Redraws the screen + + 2. Lock Screen -- Locks the screen until the user types a password. + + 3. Closed Windows -- Pops up a submenu of all closed windows. + Selecting one opens it. Depending upon an option, the user either + will be asked to place it, or a place will be found automatically + for it. + + If the user is asked to place it, the cursor changes to a dotted box + and the corresponding icon (if it is open) will be highlighted. The + user can then move the pointer into the icon (the cursor will change + to a draped box) and click to have the window opened automatically + at a position selected by the window manager. + + Alternately, the user can leave the pointer outside of the icon. + Double clicking will place the window with its center at (or near) + the pointer. + + However, just pressing (or single clicking) changes the cursor + again, to an "anchored arrow" signifying that the user is to size + the window. The current pointer location becomes the top left + corner of the window. The user can then move the pointer to specify + the bottom right corner. + + Releasing (or clicking again) finishes the sizing and places the + window at or near the size and position specified. The window's + desired size is set to the size indicated by the user unless the + CTRL button is depressed. + + 4. Tools -- Pops up a submenu of applications. Clicking on one of + these runs the corresponding application. The section on + customization describes how the Tools submenu is specified. + + 5. Prorate -- Fairly reallocates space to the windows based upon their + minimum and desired sizes. + + 6. Fill -- Allows each window to grow to its maximum size in an attempt + to use up screen space. + + 7. Undo -- Undoes the last operation by the user which changed the + layout of the screen. + + 8. Repopulate -- Reopens closed windows. A submenu indicates three + kinds of repopulation: + - Repopulate Auto -- Attempts to reopen windows that were + automatically closed. + - Repopulate All -- Attempts to reopen all closed windows. + - Repopulate Last -- Attempts to reopen windows which were + automatically closed during the previous window operation. + + 9. Read Profile -- Rereads a user profile and updates option settings + in existing windows corresponding to options that have changed in + the profile. See the Customization and Options sections for more + information. + + 10. Finish Layout or Save Layout -- When the window manager is initially + started up, the windows already on the screen are matched against + ones described in the .rtl.layout file; when one matches, the + window's size, position, state, and options are restored from the + information associated with window in the saved layout file. The + same is done even after the window manager is already running and a + client initially maps a new window or icon. + + Until every saved window in .rtl.layout is matched by an opened + window or icon, certain automatic strategies used by the window + manager to balance screen space are disabled in order to allow the + saved layout to be precisely restored. + + In the meantime, "Finish Layout" appears in the window manager menu. + If an expected window does not open for some reason (host down, + program bombs, etc.), the user can tell the window manager to treat + the layout as finished by selecting "Finish Layout". + + Alternately, by specifying the flag "-f" when the rtl is started, + the windows on the screen when rtl is started are laid out, but + then, the layout is treated as finished and "Finish Layout" does not + appear. If you specify the flag "-i", then the layout file is + ignored entirely. + + When "Finish Layout" does not appear, "Save Layout" appears in its + place. Selecting "Save Layout" saves information about all open and + closed windows and their icons in .rtl.layout. + + 11. Notify All -- Send a BANG! message to all windows that accept the + message. Not implemented in Release 5.1. + + 12. Soft Kill All -- If a client has a window that accepts a BANG! + message, the message is sent to that window. When each such client + has updated the WM_COMMAND property of its accepting window, the wm + kills the client. All other clients (all clients in release 5.1) + are killed immediately. + + 13. Hard Exit -- Kills all clients and exits the window manager. + + 14. Detach Manager -- Opens all client windows and exits the window + manager. + +5. Window Menu + +Pressing or clicking the right button in the header or border of a window pops +up a menu of entries which apply to that window. Most of the window operations +which can be invoked through the menu can also be invoked, as indicated in +parentheses, by buttoning the mouse in a border or gadget. + + 1. Title -- Moving the pointer to the right of the menu entry displays + the full window title (in case the window header is too small to + fully display it). + + 2. Redraw (CTRL SHIFT LEFT/MIDDLE BUTTON IN GADGET) -- Redraws the + window. + + 3. Manager -- Pops up the main window manager menu. + + 4. Close (CTRL SHIFT RIGHT BUTTON IN GADGET) -- Closes the window. + + 5. Group Close -- If the window is part of a window group, hides all + windows and icons in the group and opens an icon for the group + leader. If not part of a group, acts like Close. + + 6. Resize (LEFT BUTTON IN BORDER) -- For resizing the window. + + The user moves the pointer on or near the appropriate place on the + window border to determine the side or corner to be resized. The + cursor changes to indicate which one would be selected. + + The user then presses or clicks (with any but the right button) to + begin resizing. If the button is clicked with SHIFT depressed, then + gravity is disabled (though if gravity is currently disabled by an + option setting, SHIFT enables it). + + The mouse is then tracked by a window outline, which will be bounded + by the client minimum and client maximum size if these are enforced. + Depending upon option settings, the window outline may also be + bounded by the user minimum and maximum size. If they are not so + bounded, and the user resizes the window above the user maximum or + below the user minimum size, the user maximum or minimum size will + be reset. + + Releasing or re-clicking the mouse button finishes the resize. The + window's desired size is set to the size indicated by the user + unless the CTRL button is depressed. + + 7. Relocate (MIDDLE BUTTON IN MOVE-GADGET) -- For relocating the window + to a new location possibly with a new size. + + The cursor changes to a dotted box and is warped to the center of + the window. The user then can move the pointer to another location. + + Double clicking will relocate the window with its center at (or + near) the pointer. + + However, just pressing (or single clicking) changes the cursor + again, to an "anchored arrow" signifying that the user is to size + the window. The current pointer location becomes the top left + corner of the window. The user can then move the pointer to specify + the bottom right corner. + + Releasing (or clicking again) finishes the sizing and relocates the + window at or near the size and position specified. The window's + desired size is set to the size indicated by the user unless the + CTRL button is depressed. + + 8. Move (SHIFT MIDDLE BUTTON IN MOVE-GADGET) -- For moving the window + at its current size to a new location. The cursor changes to a hand + and is warped to the center of the window. The user then can move + the pointer to another location. + + Clicking finishes the move and places the window exactly where + specified. + + (MIDDLE BUTTON IN BORDER) also initiates a move. In the side + border, the move is constrained in one dimension. If the SHIFT key + is held down as well, gravity is toggled during the move. + + 9. Exchange (CTRL MIDDLE BUTTON IN MOVE-GADGET) -- Used for exchanging + the location of two windows, or of a window and an icon. The cursor + changes to a pair of opposite pointing arrows. The user can then + move the pointer to an icon or another window. + + Clicking in a window exchanges the locations of the two windows. + Clicking in an icon closes the open window and opens the iconized + window in its place. + + 10. Expand -- Expands the window in the available white space + surrounding it (up to its maximum size), without affecting any other + windows. Sets the window's desired size to the resulting size. + + 11. Desire (LEFT BUTTON IN ZOOM-GADGET) -- Enlarges the window up to its + desired size, by shrinking (but not closing) the other windows on + the screen. + + 12. Shrink -- Shrinks the window to its minimum size. The desired size + is not changed though, so on subsequent window operations, the + window will grow back to its desired size. + + 13. Enlarge (CTRL LEFT BUTTON IN ZOOM-GADGET) -- Makes the window as + large as possible up to its maximum size, by shrinking (but not + closing) the other windows on the screen. + + 14. Zoom or Unzoom (SHIFT LEFT BUTTON IN ZOOM-GADGET) -- Zooms or + unzooms the window. + + 15. Set Size -- A submenu for setting the various sizes associated with + the window (Normal Min, Normal Desired, Zoom Min, Zoom Desired, + Max). The details are the same as for Resize. + + 16. Options -- A submenu for setting and unsetting various window + options. The option is set if it is checked in the menu. Selecting + the entry toggles the setting. + - Locked Open -- prevents the window from being automatically + closed. + - Fixed Width -- prevents the window's width from being + automatically changed. + - Fixed Height -- prevents the window's height from being + automatically changed. + - Fixed Edges -- prevents the window from being moved or resized + automatically. + - Listener Tied To Zoom -- Zooms (unzooms) the window when it + becomes (no longer is) the listener. + - Zoom Tied To Desire -- Uses the normal desired size in place of + the zoom desire size. + + 17. Notify -- Sends the BANG! message to the window if it accepts it. + Not implemented in release 5.1. + + 18. Soft Kill -- If the window accepts the BANG! message, it is sent to + it. When the client has updated the WM_COMMAND property of its + accepting window, the wm kills the client. If the window does not + accept the BANG! message, the client is immediately killed. In + release 5.1, simply kills the client. + + 19. Hard Kill -- Kills the client. + +6. Icon Menu + +The icon menu is very similar to the window menu. It is popped up by pressing +the right button inside the icon. + + 1. Title -- Displays the title. + + 2. Redraw (CTRL SHIFT LEFT/MIDDLE BUTTON) -- Redraws the icon. + + 3. Manager -- Pops up the main window manager menu. + + 4. Open (LEFT BUTTON) -- If the icon is associated with a closed group, + restores the windows and icons of that group. + + If the icon corresponds to a single window, then Open is used for + opening that window: + + The cursor changes to a draped box. + + The user can leave the pointer in the icon (or move it there if the + menu selection left it outside the icon), and click, and the window + will be opened automatically at a position selected by the window + manager. + + Or, the user can move the pointer outside of the icon. It will + change to a dotted box and the user can then specify the size and + potentially the location just as for a Relocate. + + 5. Move (MIDDLE BUTTON) -- For moving the icon to a new location. + + 6. Exchange (CTRL MIDDLE BUTTON) -- Used for exchanging the location of + two icons, or of a window and an icon. Exchanging two icons + exchanges their positions. Exchanging an icon and a window closes + the open window and opens the iconized window in its place. + + 7. Options -- The submenu for setting and unsetting various window + options. + + 8. Notify -- Sends the BANG! message to the window if it accepts it. + Not implemented in release 5.1. + + 9. Soft Kill (CTRL SHIFT RIGHT BUTTON) -- If the window accepts the + BANG! message, it is sent to it. When the client has updated the + WM_COMMAND property of its accepting window, the wm kills the + client. If the window does not accept the BANG! message, the client + is immediately killed. In release 5.1, simply kills the client. + + 10. Hard Kill -- Kills the client. + +7. Customization and Startup + +The window manager can be customized via files in three ways: by setting +options in preference files, by specifying the tools to appear in the tools +submenu, and by arranging for applications to be started up automatically when +the window manager is started. + +All files opened by the window manager are looked up in the directory named in +the RTLENV environment variable, and if that fails, in the user's home +directory. + +Copies of the files used by the developers may be found in the subdirectory +custom in the distribution. + + + +7.1. Startup + +If the "-s" flag is specified when the window manager is started up, the file +.rtl.startup is executed. Typically it contains a shell file which starts up +various applications. + +If the "-l" flag is specified when starting the window manager, and a window +saved in the .rtl.layout file does not appear on the screen, then a process is +started which would open that window. Both the host and the command line are +obtained from the layout file; when the layout file was saved, these were +obtained respectively from the WM_CLIENT_MACHINE and WM_COMMAND properties of +the window. Not implemented in release 5.1. + +If the flag "-f" is specified when the window manager is started, then the +layout is treated as finished. However, if the "-l" flag is specified as well, +the commands associated with missing windows are still executed. +7.2. Tools + +Each tool is registered in the file .rtl.tools as a pair of lines. The first +line is the name of the tool as it should appear in the tools submenu. The +second line is a command to be executed when the menu entry is selected. + + + +7.3. Preference Files + +Options that control the behavior of individual windows, or of the window +manager as a whole, are obtained from a number of preference files, primarily +".Xdefaults", and ".rtl.preferences". Release 5.1 reads these files +directly, and does not use the resource database described in the Xlib manual. + +Options that control the behavior of windows of a specified name or class are +additionally obtained from the files ..preferences and +..preferences, where "" and "" refer to the resource name +and resource class of the window (specified by the WM_CLASS property). + +Preferences used by window manager take the form + + Wm.option: value +or + Wm..option: value +or + Wm..option: value +or + Wm*option: value + +Wm is the class for all window managers. Instead of Wm, rtl, the name of our +window manager, can be used instead. + +Some options are global and refer to the window manager as a whole. These use +the form "Wm.option". + +Others are applied on a per-window basis. + +Per-window options prefixed by Wm and a class are used to determine the the +value of that option for all windows of that resource-class. + +Per-window options prefixed by Wm and a name are used to determine the the +value of that option for all windows of that resource-name, and override the +class-prefixed option value for that window if specified. + +Options prefixed by Wm* are used to set default option values for all windows. + +The resource-class and resource-name of a window come from its WM_CLASS +property. + + NOTE: Some older applications do not set a window's WM_CLASS. In + that case, its resource-class is taken to be the same as its window + name (i.e WM_NAME). + + NOTE: Some applications incorrectly use strings for the resource name + and resource class that contain spaces. These cannot be used to obtain + options. + +The order of "Wm"-, class-, and name-prefixed options in the .rtl.preferences +file is immaterial. + +Users may change the any of the preference files and reread them by selecting +"Preferences" from the "Read Profile" submenu of the main manager menu. Any +changes in the file will be immediately reflected in all windows -- open or +closed. + +The file .../src/defaults.i contains the default settings for all options. + +Certain options may be changed on a per-window basis through the "Options" +entry of each window menu. The submenu entries and the options affected are + + Menu Entry Option + ---------- ------ + + Locked Open requireManualClose + Fixed Width fixedWidth + Fixed Height fixedHeight + Fixed Edges fixedCompletely + Listener Tied To Zoom listenerTiedToZoom + Zoom Tied To Desire zoomTiedToDesire + +When these options are changed explicitly through the "Options" submenu, +changes made to them via rereading preference files will have no effect. The +current values of these options are saved for each window in the .rtl.layout +file and are restored as each window is reopened when the window manager is +restarted. + + + +7.4. Profile Menu + +The file .rtl.profiles menu is used for adding additional entries to the "Read +Profile" submenu. + +Each profile is registered in the file .rtl.profiles as a pair of lines. The +first line is the name of the profile as it should appear in the "Read Profile" +submenu. The second line contains a list of preference files (separated by +blanks) to be read when the menu entry is selected. + +These named preference files, like all other customization files opened by the +window manager, are looked up in the directory named in the RTLENV environment +variable, and if that fails, in the user's home directory. Support is also +provided for files named by paths beginning with "/" (absolute path names) and +with "~" (paths rooted in a user's home directory). + +When an entry is selected from the "Read Profile" submenu, the standard +preference files are read first, before the files associated with the menu +entry. Thus the additional preference files can be used to add or override +options specified in the standard preference files. + +There are a number of additional preference files included with the +distribution. These illustrate many of the issues described in the section +below on "Automatic Strategies". + + + +7.5. Button Semantics + +The file .../src/interf_init.c in the distribution determines the association +of mouse buttons / modifier combinations (e.g. CTRL Middle Button) with a +particular window manager action. + +Part of the file .../src/defaults.i (look for "Global Interface Options") +determines whether a particular mouse button / modifier combination takes +effect in a specified region (e.g. header, border, gadget, etc.). + +By changing these files and recompiling, these associations can be changed. + +In particular, the files .../src/interf_init_one.c and .../src/defaults_one.i +in the distribution contain the default settings for a one-button mouse. + +8. Automatic Strategies + +The Siemens RTL Tiled Window Manager can automatically adjust the size and +position of windows to balance competing demands for screen space, or it can be +completely prevented from doing so. + +In the simplest case, windows are placed exactly at the size and location that +the user specifies. Via options, it is possible to prevent windows from ever +being automatically shrunk or closed, and to ensure that windows opened +automatically are reopened exactly at their previous location. If a window +cannot be opened, moved or resized exactly as specified without causing side +effects, the window manager will refuse to do the operation. + +The options permit considerably more flexibility. There are large number of +options that control automatic behavior and they are described in detail in the +"Options" section. In this section, we attempt to describe some of the more +common changes in behavior that our users have explored. + + + +8.1. Default Automatic Behavior + +The default option settings, those in effect if no preference files are read at +all, provide what we consider the minimum automatic behavior that a user would +find acceptable: + + - Windows may automatically be shrunk and closed (except for an active + listener as a result of a client's action). This may be prevented on + a per-window basis as a result of setting "Locked Open", "Fixed + Width", Fixed Height", or "Fixed Edges" in the "Options" submenu of a + window menu. + + - When space is available, windows which were shrunk regrow towards + their desired sizes, though they may not necessarily be located at + their exact original position. + + - When the window manager automatically places a window, an attempt is + made to place it at its previous location, even if other windows have + to be shrunk or closed. If this fails, however, the window is opened + at the best location nearby. + + - When a window is unzoomed, an attempt is made to open (or + "repopulate") windows which were automatically closed since the + window was zoomed, but only at their previous positions, and only if + no other windows will be shrunk or closed. A similar attempt is made + when a window is explicitly closed -- to repopulate windows + automatically closed since the window was opened. + + + +8.2. Neighborhood Placement + +When a window is opened or moved, it may not be possible to place it exactly at +the size and location specified. Options are available which allow it to be +placed nearby its specified location and/or shrunk below its desired size. + +By nearby, we mean within a "neighborhood" of the specified location. Two +kinds of neighborhoods are supported: + + - A window is placed within a center neighborhood if the window as + actually placed contains the center of the window as it was + specified. + + - A window is placed within an edge neighborhood if the window as + actually placed overlaps the window as it was specified. + +Pure neighborhoods, as defined above, are somewhat excessive for larger +windows. For example, the edge neighborhood of a window 1/3 the height and 1/3 +the width of the screen which is placed at the center of the screen consists of +the entire screen -- that is, it could be placed anywhere. + +Therefore, we include a neighborhoodShrinkFactor option which shrinks +neighborhoods relative to the window size. + +A number of try.. options determine whether neighborhoods are to be used at +all. + +An excessively large number of prefer... options determine whether +neighborhoods are to used in preference to closing or shrinking adjacent +windowa, or shrinking the window being explicitly affected below its desired +size. + + + +8.3. Resize + +When the user resizes a window, the operation fails by default if the size +specified cannot be attained. An option permits the window to be resized to a +smaller size, but this is not always desired. + +To avoid a failed resize, or simply to prevent other windows from being shrunk +or closed, an option permits a resized window to "slide". For example, if the +user attempts to enlarge a window by resizing its left edge, and a window is on +its left, but there is space on its right, the window will grow to the right +instead of to the left. + +It is also possible to set options that will move a window being resized if the +resize fails or would close or shrink other windows. + + + +8.4. Listener Tied to Zoom + +When a window has the option listenerTiedToZoom set, it will be enlarged to its +zoom size when it becomes the listener. Depending on various other options, +when it is no longer the listener, it may shrink to its unzoomed size, or just +shrink enough to allow adjacent window to grow back towards their desired size. +In particular, if another window becomes the listener, it will shrink to +provide space for the new listener to zoom. + +Some users prefer all windows to have listenerTiedToZoom set. The effect is +similar to overlapping window systems that raise a window when it becomes the +listener, and that allow the window to be covered again when another window +becomes the listener. + +Some users prefer the window option zoomTiedToDesire to be set as well, so that +when a window becomes the listener, it is enlarged to its current desired size, +rather than a separate zoom size. + +When a window is zoomed, it may become so large that other windows may close. +The option automaticRepopulateOnAutoUnzoom reopens them if possible, providing +the illusion that they were hidden by the zoomed window, and were then exposed +when the window was unzoomed. + + + +8.5. Moving Conflicting Windows + +When a window is being opened, resized, or moved, the window manager appears to +move other windows, which occupy the needed space, out of the way. This +appears to happen for two reasons. + + - A window in the way is actually shrunk, say on its left, to make + room, and then (because autoDesiredEnlarge is set), it grows towards + its right (where there is blank space) back to its desired size. + Thus it appears to move to the right. + + - A window in the way is actually closed. However, the option + autoRepoulateLast is set, and this tries to reopen windows closed + during an operation. To achieve the effect of moving the window + nearby, either the option preferPreviousPositionOnAutoRepopulate or + the option preferPreviousPosition should be set. This will attempt + to reopen the window as near as possible to its previous location. + + Beware: Neither the option requirePreviousPosition nor the option + requirePreviousPositionOnAutoRepopulate should be set in conjunction + with autoRepoulateLast, since they will force the window to be opened + exactly at its previous location, and this will naturally fail. + + + +8.6. Automatic Unzooming + +When a window is being opened, resized, or moved, one or more of the windows in +the way may be zoomed. Two options determine whether the window manager should +automatically unzoom the window rather than simply closing it or refusing to do +the operation -- preferUnzoomToClose and unzoomTiedListenerIfNecessary. + +The option preferUnzoomToClose will unzoom a window rather than closing it. + +However, the listener window is treated specially. For various reasons, the +listener may not be permitted to close. In particular, the default setting for +the option allowListenerToCloseByClient prevents clients from performing an +operation (like opening a window) that would allow the listener to be closed. +To allow the listener to be unzoomed in this situation, the option +unzoomTiedListenerIfNecessary should be set. + + + +8.7. Automatic Prorating + +The option autoProrate fairly reallocates screen space after each window +operation, based on the minimum and desired size of each window. This may +cause windows to shrink. However, the previous two windows that had their +desired sizes reset will not be shrunk below their desired sizes. + +If the option biasedAutoProrate is additionally set, then after each operation, +it gives as much space as possible to the listener without closing other +windows on the screen. + +To both make windows as large as possible when they become the listener, and +ensure that the window at least attains its zoom minimum, the options +autoProrate, biasedAutoProrate and listenerTiedToZoom can all be set. + +9. Standard X11 Properties + +Release 5.1 of the Siemens RTL Tiled Window Manager supports the standard +properties described in the Inter Client Communications Conventions Manual as +released on the V11R2 tape. The properties and their uses are described below. + + 1. WM_TRANSIENT_FOR + + Windows which are transient pop-ups and have extremely short + lifetimes may have the override-redirect attribute set so the window + manager will not be involved. However, if the transient window has + a long enough lifetime that its size or position may need to be + manipulated by the user, override-redirect should not be used. + Instead, the window's WM_TRANSIENT_FOR property should be set to + refer to the window with which it is associated. The Siemens RTL + Tiled Window Manager will not tile such a window -- it will sit + above the tiled desktop. It has no decorations and can be moved, + mapped and unmapped only by the client. + + 2. WM_CLASS + + WM_CLASS is a structure containing two strings: res_name and + res_class. + + The res_class field identifues the application. The res_name field + is a string that more specifically identifies the instance of the + application. + + They are used in the .rtl.layout file for distinguishing windows on + startup, and for setting the window options from preferences files. + + Both optionally appear in the window header and in icons. + + 3. WM_COMMAND + + Holds the command that would be used to restart the application -- + typically the command used to run the application initially. The + window manager saves it in the layout file for identifying a window, + and for restarting the application. + + If the "-l" flag is specified when starting the window manager, and + a window saved in the .rtl.layout file does not appear on the + screen, then its corresponding command is executed (not in Release + 5.1). + + 4. WM_CLIENT_MACHINE + + The machine on which the application is running. Typically set + once, but may be changed by applications which migrate from machine + to machine. It optionally appears in the window header and icon, + and is used in the layout file for identifying windows. + + 5. WM_NAME + + Information about the application or its current state which is + optionally placed in the window header. It also is used in an icon + when WM_ICON_NAME is not provided. + + 6. WM_ICON_NAME + + Information about the application or its current state which is + optionally placed in an icon. + + 7. WM_NORMAL_HINTS + + In release 5.1, only the size, position, minimum, and maximum sizes + are used. + + 8. WM_HINTS + + The input field determines whether the window manager or the client + is responsible for setting the input focus. See the section on + "Focus Follows Pointer". + + The initial_state is used to initially determine the display state + of a window when it is first mapped by the client, and can later be + used to change the display state. See the section on "Client + Placement". + + The icon_pixmap is used to determine the contents of an icon. If no + icon_pixmap is provided, a default icon is built from WM_CLASS, + WM_ICON_NAME (or WM_NAME) and/or WM_CLIENT_MACHINE. + + The client may provide an icon_window, but release 5.1 of the window + manager will not map it. An attempt to map it will cause the icon + pixmap (or default icon) to be mapped instead. + + The icon_mask is ignored in release 5.1. + + The window_group field specifies a "group leader". All windows with + the same group leader are part of the same group. The user can + close the whole group, and the icon for the group ledaer is + displayed. + +10. Client Placement + +A client can affect the size, location, and presence of a tiled window by +setting properties (particularly WM_NORMAL_HINTS and WM_HINTS), by mapping or +unmapping a window, by attempting to map a client icon, or by attempting to +reconfigure a window. These are discussed below. + + + +10.1. Initial Window and Icon Mapping + +When a window is newly created, it or its icon will eventually be opened. An +attempt to open the window may fail if there is not enough room on the screen +for it, and if windows in the way cannot be shrunk or closed. In that case, +the window's title is placed in the menu of closed windows, and if icons are to +be used, the icon is opened. If the icon cannot be opened immediately (due to +lack of available space), it will be subsequently opened at the earliest +opportunity. + +A window or icon initially will be opened when one of the following two events +occurs: + + 1. The client maps the window: + + - If the window matches one in the saved layout file + (.rtl.layout): Either the window or icon will be open based on + which was open when the layout was saved. If the window is + opened, it will be zoomed if it was when the layout was saved. + + - If the window does not match one in the saved layout file (or + there is no saved layout file), and WM_HINTS indicates an + initial state of + + * Ignore or Inactive: Neither window nor icon is opened. + * Iconic: The icon is opened if icons are in use. + * ClientIcon or Normal: The window is opened unzoomed. + * DontCare, or the initial state was not set: The window is + opened if the window's option autoOpenOnCreate is set; + else, the icon is opened. + + 2. The client maps its client icon window: + + - If the window matches one in the saved layout file + (.rtl.layout): Either the window or icon will be open based on + which was open when the layout was saved. If the window is + opened, it will be zoomed if it was when the layout was saved. + + - If the window does not match one in the saved layout file (or + there is no saved layout file), and WM_HINTS indicates an + initial state of + + * Ignore or Inactive: Neither window or icon is opened. + * Iconic or Normal: The icon is opened if icons are in use. + * ClientIcon: The window is opened unzoomed. + * DontCare, or the initial state was not set: The window is + opened if the window's option autoOpenOnCreate is set; + else, the icon is opened. + + + +10.2. Initial Size and Placement + +A window's initial size is determined by the size specified when the window was +created. This may be overridden by a size specified by a client in setting +WM_NORMAL_HINTS. This may be overridden by the DESIRED_HEIGHT and/or +DESIRED_WIDTH preferences. + +A window's initial position is determined by the size specified when the window +was created. This may be overridden by a position specified by a client in +setting WM_NORMAL_HINTS. + +However, when a window matches one in the saved layout file, both its size and +position are taken from the layout file. + +When a window is to be initially mapped, it will be automatically placed by the +window manager under the following conditions: + + - The size and position are both specified via WM_NORMAL_HINTS, and + none of the options ignoreSizeHints, ignoreInitialSizeHints, + ignorePositionHints, or ignoreInitialPositionHints are set. + + - The window option autoPlaceOnClientOpen is set, the size has been + specified, and neither ignoreSizeHints or ignoreInitialSizeHints has + been set. + + - The window option autoPlaceOnClientOpen is set, and the global option + autoPlaceOnUnsizedOpen is set. + +If none of these conditions holds, the user is asked to place the window +manually. This is indicated by a change in the cursor. + +When the window is being automatically placed and its position has been +provided and the window option requirePreviousPosition is set, it will be +opened exactly where specified; if it cannot be opened there, it will be +iconized instead. If preferPreviousPosition is set instead, it will be opened +as close as posssible to the provided position. Otherwise, the window is +opened at the "best" possible location -- a place where it interferes least +with other windows currently on the screen. + +When the window manager is initially started, client windows and icons may +already be open. These are treated as if they were explicitly mapped by the +client after the window manager started up. However, if such a window does not +match a window saved in the layout file, it is always placed as close as +possible to its current size and position. + + + +10.3. Subsequent Window and Icon Mapping and Unmapping + +A later attempt by a client to map a window has the following effect depending +upon the value of WM_HINTS.initial_state. + + - Ignore, Inactive, Iconic, or ClientIcon: No effect + - Normal, DontCare, or initial_state was not set: The window is opened + at or near its previous location depending on the options + requirePreviousPosition or preferPreviousPosition. If neither is + set, the "best" location is found. If no location can be found, it + remains iconized. An attempt is always made to map it at its desired + size. The window will be zoomed if it was zoomed when it was last + open. + +When a client unmaps its window, this has the following effect depending upon +WM_HINTS.initial_state. + + - Ignore, Inactive or Iconic: No effect + - ClientIcon: Remap the window. + - Normal, DontCare, or initial_state was not set: The pixmap or default + icon is opened. + +Attempt by a client to map its client icon window (other than the first time) +has the following effect depending upon the value of WM_HINTS.initial_state. + + - Ignore, Inactive, Iconic, or ClientIcon: No effect + - Normal, DontCare, or initial_state was not set: The pixmap or default + icon is opened. + + + +10.4. Configure + +When a client changes the size or position of a tiled window via +XConfigureWindow, the window manager attempts to comply. If just the size has +been changed, the window is enlarged or shrunk. If the position has been +changed, the window is moved as close as possible to the specified location. + +An attempt to change the border width will be ignored; the window manager +forces the border width to zero. + +Attempts to change the stacking order will also be ignored; tiled windows do +not overlap and are all on the same level. + +Note that transient windows are not tiled, and attempts to reconfigure them +will will succeed as requested, except that attempting to place a transient +window below a tiled window will place it below all transient windows, but +above all tiled windows. + + + +10.5. Size Hints + +Clients setting WM_NORMAL_HINTS while a window is open can cause changes in the +size or location of the window. + +If the option autoResatisfyOnResetMinmax is set, and the window no longer +satisfies its client minimum or maximum size, an attempt will be made to +enlarge or shrink the window. Even if the window cannot be enlarged, it will +not be automatically closed. However subsequent user operations will enforce +the client minimum size if enforceClientMinimums is set. + +If a new size was specified, it becomes the normal or zoom desired size. + +If either a size or position was specified, and autoResatisfyOnResetMinmax is +set, then an attempt is made to change the size or position of the window. + +Both position and size can be specified as provided by either the user or +program. If either is specified as user supplied, then the hint is treated as +a direct effect of a user action. Consequently, the limits on client actions +ordinarily determined by the option allowAutomaticCloseByClient, the option +allowAutomaticShrinkByClient, allowListenerToChangeByClient, and +allowListenerToCloseByClient do not apply. + + + +10.6. WM_HINTS + +Our window manager supports dynamic changes to WM_HINTS. In particular, +changes in the initial_state field are treated as direction to change the +display state of the window: + +The states have the following effects: + + - Ignore: Closes the window or icon if either was open, and removes it + from the closed menu list. + + - Inactive: Closes the window or icon if either was open. + + - Iconic: Closes the window if it was open. Opens an icon if icons are + in use. + + - Normal or ClientIcon: Opens the window if it was closed. + + - DontCare: No change. + +Changes to the other supported fields -- input, icon_pixmap, icon_x, icon_y, +icon_window, and window_group take immediate effect as well. + +11. Options + +Options are specified in Preference Files as described in the section of that +name. + +Options may either be global, referring to the window manager as a whole, or +per-window. + +Options may either be boolean, in which case they take on the values on and +off, numeric, in which case, they take on numeric values, or strings. + +Options and values may be semantic, in which case they control the decisions +made by the window manager, or they may strictly be interface-related -- that +is, they simply control the way the screen looks. + +This section, then, is divided into a number of parts, based on the orthogonal +distinctions of global vs per-window, boolean option vs value vs string, and +semantic vs. interface-related. Each section contains a list of the relevant +option names with their default value. + + + +11.1. Global Semantic Options + + - allowAggressiveRepopulation: on + If on, attempts to open automatically closed windows with the + aggressivelyRepopulate option on whenever possible. + + - allowAutomaticClose: on + Determines whether windows can be closed automatically (as a side + effect of an operation on another window). + + - allowAutomaticCloseMoreRecent: on + If allowAutomaticClose is on, but this option is off, then a window + can be closed as a result of a side effect on another window only if + the other window has been used more recently. + + - allowAutomaticShrink: on + Determines whether windows can be shrunk automatically (as a side + effect of an operation on another window). + + - allowAutomaticShrinkMoreRecent: on + If allowAutomaticShrink is on, but this option is off, then a window + can be shrunk as a result of a side effect on another window only if + the other window has been used more recently. + + - allowAutomaticShrinkOnAutoRepopulate: off + allowAutomaticShrinkOnExplicitRepopulate: on + Determines whether windows on the screen can be shrunk as a result of + a Repopulate. Explicit repopulates are those done when the user + selects Repopulate from the menu. Automatic repopulates include all + other attempt by the window manager to automatically open a closed + window. + + - allowAutomaticCloseOnExchange: off + allowAutomaticShrinkOnExchange: on + Determines whether the other windows on the screen can be shrunk or + closed as a side effect of an Exchange. + + - allowAutomaticCloseByClient: on + allowAutomaticShrinkByClient: on + When a client invokes a window operation, these options determine + whether other windows on the screen can be shrunk or closed as a side + effect. + + - allowListenerToClose: on + If off, then the window which is the listener cannot close as a side + effect of an operation on another window. + + - allowListenerToChangeByClient: off + allowListenerToCloseByClient: off + When a client invokes a window operation, these options determine + whether an active listener can be shrunk or closed as a side effect. + + - allowShrinkOnAutoOpen: on + allowShrinkOnCenterOpen: on + allowShrinkOnCornerOpen: off + An attempt to place a window may not succeed if surrounding windows + are in the way which cannot be shrunk or closed. In that case, the + window being placed may have to be made smaller than its desired + size. These options determine whether that is permitted. A corner + open is one where the new location and corners of the window are + chosen by the user. A center open is one where only the center is + chosen by the user. If they are not set and shrinking is necessary, + the operation will fail. + + - allowShrinkOnResize: off + When a user explicitly resizes a window, the size selected may be too + large -- that is, adjacent windows may not be able to be shrunk or + closed. If the option is on, the window will be made as large as + possible up to the size requested. If it is off, the resize will + fail. + + - autoDesiredEnlarge: on + If on, then an attempt is made after every operation to enlarge each + window to its desired size without moving or shrinking other windows. + + - autoProrate: off + If on, then automatically prorates after each operation. + + - autoRepopulateLast: off + If on, then if a window is closed automatically during an operation, + an attempt is made to reopen it. The window may appear to have been + moved, but it was closed and then reopened. + + - autoRepopulateOnAutoUnzoom: on + autoRepopulateOnExplicitUnzoom: on + These determine whether an attempt is made to repopulate closed + windows following an unzoom. An automatic unzoom occurs when a + zoomed window which has listenerTiedToZoom is no longer the listener. + If the window is destroyed, then repopulation will be done if either + of these options is set. + + - autoRepopulateOnClose: on + This determines whether an attempt is made to repopulate closed + windows following an explicit close of the window or the termination + of the client. + + - biasedAutoProrate: off + When set, forces automatic prorating to make the most recently used + windows the largest. + + - enableAutoRepopulationDuringLayout: off + enableAutoSizingDuringLayout: off + When initially starting the window manager, if these options are off, + then automatic repopulation, automatic enlargement to desired size, + and automatic prorating are disabled until all windows matching + entries in .rtl.layout have been created. + + - enableGravity: on + Uses gravity to line up windows. + + - onlyRepopulateSinceOnAutoUnzoom: on + onlyRepopulateSinceOnExplicitUnzoom: on + If on, then following an unzoom or destroy, only windows closed since + the window was zoomed will be reopened. + + - onlyRepopulateSinceOnClose: on + If on, then following an explicit close or destroy, only windows + closed since the window was last opened will be reopened. + + - preferCloseToShrinkOnAutoOpen: off + preferCloseToShrinkOnCenterOpen: off + preferCloseToShrinkOnCornerOpen: on + preferCloseToShrinkOnExchange: off + preferCloseToShrinkOnResize: on + Determine whether it is better to close other windows or to shrink + the window being operated upon (assuming both are permitted by other + options). + + - preferExchangedLocationOnIconizing: on + When exchanging an iconized window and an open window, determines + whether the preferred location of the icon for the newly closed + window is its previous icon position, or the position of the + currently icon. + + - preferExchangedLocationOnOpening: on + If the option is set when exchanging an iconized window and an open + window, and if the currently closed window has not been positioned or + does not require placement at its previous position, then an attempt + is made to place the newly opened window at the location of the + window it is being exchanged with. + + - preferPreviousPositionOnAutoRepopulate: on + preferPreviousPositionOnExplicitRepopulate: on + When a window is being repopulated, determines if an attempt is first + made to place it at its previous location. + + - preferCenterNeighborhoodToAutomaticCloseOnOpen: off + preferCenterNeighborhoodToAutomaticShrinkOnOpen: off + preferCenterNeighborhoodToShrinkOnOpen: off + When a window is being placed at a location, it may be placed + anywhere where that location is inside the window -- that is called + its "center neighborhood" -- depending upon the + tryCenterNeighborhood... options. If none of these options are set, + the center neighborhood will only be tried if the window cannot be + exactly placed where requested. These options additionally try the + center neighborhood if exact placement would succeed, but would close + (AutomaticClose) or shrink (AutomaticShrink) other windows or would + cause the window being opened to shrink (Shrink). + + - preferEdgeNeighborhoodToAutomaticCloseOnOpen: off + preferEdgeNeighborhoodToAutomaticShrinkOnOpen: off + preferEdgeNeighborhoodToShrinkOnOpen: off + When a window is being placed at a location, it may be placed + anywhere where the window would overlap with the exact location -- + that is called its "center neighborhood" -- depending upon the + tryEdgeNeighborhood... options. If none of these options are set, + the edge neighborhood will only be tried if the window cannot be + exactly placed closer. These options additionally try the edge + neighborhood if closer placement would succeed, but would close + (AutomaticClose) or shrink (AutomaticShrink) other windows or would + cause the window being opened to shrink (Shrink). + + - preferDesktopToAutomaticCloseOnAutoOpen: on + preferDesktopToAutomaticShrinkOnAutoOpen: on + preferDesktopToShrinkOnAutoOpen: on + When a window is automatically opened, it may express a preference + for being placed at its previous location. If it cannot be opened + there (or in a neighborhood of it), we will try to place it anywhere + on the desktop. These options additionally try the entire desktop if + closer placement would succeed, but would close (AutomaticClose) or + shrink (AutomaticShrink) other windows or would cause the window + being opened to shrink (Shrink). + + - preferSlidingToAutomaticCloseOnResize: off + preferSlidingToAutomaticShrinkOnResize: off + preferSlidingToShrinkOnResize: off + When a window is being resized in one direction, another window may + be in its way. In that case, we try resizing it in the other + direction if trySlidingOnResize is set. These options additionally + try sliding if resizing would succeed, but would close + (AutomaticClose) or shrink (AutomaticShrink) other windows or would + cause the window being opened to shrink (Shrink). + + - preferCenterNeighborhoodToAutomaticCloseOnResize: off + preferCenterNeighborhoodToAutomaticShrinkOnResize: off + preferCenterNeighborhoodToShrinkOnResize: off + preferEdgeNeighborhoodToAutomaticCloseOnResize: off + preferEdgeNeighborhoodToAutomaticShrinkOnResize: off + preferEdgeNeighborhoodToShrinkOnResize: off + When a window is resized, it may be moved within its center or edge + neighborhoods if the resize or sliding resize cannot be done or cause + windows to close or shrink. These options control when movement + within the neighborhood is tried. + + - preferUnzoomToClose: on + When a zoomed window cannot be opened on an explicit or repopulating + open, unzooming may allow the window to open. This option determines + whether unzooming is allowed in this case. + + - prorateVerticallyFirst: on + The current prorating algorithm prorates in each dimension + separately. This option determines whether to prorate vertically + first. + + - repopulateStrictly: off + Windows are repopulated most recently closed first. If a closed + window cannot be repopulated, and this option is on, then no attempt + is made to repopulate other windows closed less recently. + + - repopulateAutoClosedOnly: on + If this option is set, then no attempt is made to repopulate windows + which were explicitly closed on an explicit repopulate. + + - requirePreviousPositionOnAutoRepopulate: on + requirePreviousPositionOnExplicitRepopulate: off + When a window is being repopulated, these options require that it be + placed at its previous position. + + - resetZoomMin: off + resetZoomMinAllowsDecrease: off + resetZoomMinUsesDesire: on + If resetZoomMin is set alone, then zooming a window sets the zoom_min + of the window to be its current (pre-zoom) size. If + resetZoomMinUsesDesire is set along with it, then the the zoom min is + set to the smaller of the current and normal desired size. If + resetZoomMinAllowsDecrease is not set, the zoom min will not be + decreased as a result of this. + + - treatMoveLikeRelocate: off + If set, then a Move acts just like a Relocate in terms of allowed + placement. If it is not set, then moving a window requires that it + be placed at its current size (without shrinking) and at the exact + location indicated by the user. + + - tryCenterNeighborhoodOnExchange: off + Determines whether windows being exchanged can be placed in each + others center neighborhoods, or whether they must be placed at + exactly the same position. + + - tryCenterNeighborhoodOnOpen: off + tryEdgeNeighborhoodOnOpen: off + Determines whether edge and center neighborhoods can be used when + placing a window. + + - trySlidingOnResize: off + tryCenterNeighborhoodOnResize: off + tryEdgeNeighborhoodOnResize: off + Determines whether sliding, edge and center neighborhoods can be used + when resizing a window. + + - tryRepopulateAgainAfterAutoProrate: on + When automatically prorating, we repopulate before prorating. This + options determines whether to try repopulating after prorating as + well (followed, if necessary by re-prorating and repopulating etc.) + + - unzoomTiedListenerIfNecessary: off + If an operation would fail, this option determines whether to unzoom + the listener if it has listenerTiedToZoom set and try the operation + again. + + + +11.2. Global Semantic Values + + - absMinWidth: 38 + absMinHeight: 34 + The absolute minimum size of a window (including header and border). + + - gravity: 12 + The number of pixels within which gravity operates + + - iconPlacement: 1 + Where icons should be placed within the icon area (or within the root + if no icon area is used): + + 0: In no particular place + 1: Across the Top + 2: Across the Bottom + 3: Along the Left Side + 4: Along the Right Side + + - secondaryIconPlacement: 3 + Where icons should be placed within the region determined by + iconPlacement. + + 0: In no special place + 1: At the top (for Left & Right iconPlacement) + 2: At the bottom (for Left & Right iconPlacement) + 3: At the left (for Top & Bottom iconPlacement) + 4: At the right (for Top & Bottom iconPlacement) + 5: In the middle + + - neighborhoodShrinkFactor: 50 + A factor by which the window of a neighborhood is shrunk relative to + the window size. Expressed as a percent from 0 to 100. The higher + the shrink factor, the smaller the neighborhood for large windows. + + If a window has width w, the neighborhoodShrinkFactor is 100*f, and + the desktop width is d then the width of the side border of the + neighborhood surrounding the window (on each side) + + for a center neighborhood is + w * ( d - (f * w) ) / (2 * d) + and for an edge neighborhood is + w * ( d - (f * w) ) / d + + And similarly for the length. Consider a window whose width is half + that of the desktop. With a neighborhoodShrinkFactor of 0, the + border for a center neighborhood is 1/4 of the desktop width. For a + factor of 50, the border is 3/16 of the desktop width. For a factor + of 100, the border is just 1/8 of the desktop width. + + + +11.3. Global Interface Options + + - acceptNonListenerInBody: on + acceptNonListenerInBorder: off + acceptNonListenerInGadget: off + acceptNonListenerInHeader: on + Determines whether keyboard input will be passed to a client if the + pointer is in the named region, and the window is not the listener. + + - autoPlaceOnIconOpen: off + If on, a single click in an icon automatically places the opened + window. If off, a double click is required, and a single click + permits manual placement. + + - autoPlaceOnMenuOpen: off + If on, selecting a closed window from the menu of closed windows + automatically places it. If off, the window must be manually placed. + + - autoPlaceOnUnsizedOpen: on + If off, and a size has not been provided for a window via a hint, a + preference, or the layout file, then manual placement is required + when it is initially opened. + + - buttonMakesListenerInBody: on + buttonMakesListenerInHeader: on + Determines whether clicking a mouse button in the named region makes + the window the listener when focusFollowsPointer is on. If it is not + on, clicking makes the window the listener only if the corresponding + keyMakesListener... is on as well; otherwise it is used for + temporarily typing without changing the listener if the corresponding + acceptNonListener... is on as well. + + - centerPointerOnMove: on + centerPointerOnRelocate: on + Determines whether to move the pointer to the middle of the window + when moving or relocating it, or to leave it where it is. + + - closeInHeader: off + closeInCornerBorder: off + closeInSideBorder: off + closeInMoveGadget: on + closeInZoomGadget: on + Determines whether the appropriate mouse clicks in the named regions + cause the window to close. + + - desireInHeader: off + desireInCornerBorder: off + desireInSideBorder: off + desireInMoveGadget: off + desireInZoomGadget: on + Determines whether the appropriate mouse clicks in the named regions + cause the window to grow to its desired size. + + - distinguishCornerBorders: on + distinguishCornerBordersByInverse: on + Determines whether the corner borders are distinguished, and if so, + whether by drawing an outline, or by inverting it. + + - drawXOnMove: on + drawXOnOpen: on + drawXOnResize: on + Determines whether an X is drawn along with the window outline when + tracking the named operations + + - enlargeInHeader: off + enlargeInCornerBorder: off + enlargeInSideBorder: off + enlargeInMoveGadget: off + enlargeInZoomGadget: on + Determines whether the appropriate mouse clicks in the named regions + cause the window to grow to its maximum size. + + - exchangeInHeader: off + exchangeInCornerBorder: on + exchangeInSideBorder: off + exchangeInMoveGadget: on + exchangeInZoomGadget: off + exchangeInIcon: on + Determines whether the appropriate mouse clicks in the named regions + initiate the Exchange operation. + + - includeBackgroundMenuInWindowMenu: on + Determines whether each window menu has the main window manager menu + as a submenu. + + - keyMakesListenerInBody: on + keyMakesListenerInBorder: off + keyMakesListenerInGadget: off + keyMakesListenerInHeader: off + Determines whether typing a key with the pointer in the named region + causes the window to become the listener. + + - focusFollowsPointer: on + If on, the focus is real-estate driven. If off, the click-to-type + model is used. + + - managerMenuInHeader: on + managerMenuInCornerBorder: on + managerMenuInSideBorder: on + managerMenuInMoveGadget: off + managerMenuInZoomGadget: off + managerMenuInIcon: on + Determines whether the appropriate mouse clicks in the named regions + bring up a window menu. + + - middleMenu: off + If on, then the role of the middle and right buttons in the default + interface are switched. (Horrible Hack!) + + - moveInHeader: off + moveInCornerBorder: on + moveInSideBorder: on + moveInMoveGadget: on + moveInZoomGadget: off + moveInIcon: on + Determines whether the appropriate mouse clicks in the named regions + initiate the Move operation. + + - placePointerInBodyInsteadOfGadget: on + If on, then the following options place the pointer in the body just + below the move gadget rather in the move gadget itself. + + - placePointerInGadgetAfterClientAutoOpen: off + placePointerInGadgetAfterUserAutoOpen: on + placePointerInGadgetAfterManualOpen: on + If on, then the pointer is placed in the window's move gadget after + the window is opened (1) by the client and placed automatically, (2) + by the user and placed automatically, (3) by the user and placed + manually. If off, the pointer stays where it is. + + - placePointerInGadgetAfterExchange: on + placePointerInGadgetAfterMove: on + If on, then the pointer is placed in the window's move gadget after + the window is exchanged, moved or relocated. + + - placePointerInBodyInsteadOfBorder: off + If on, then the following option places the pointer in the body just + just inside the border rather in the border itself. + + - placePointerInBorderAfterResize: on + If on, then the pointer is placed in the window's border after the + window is resized. + + - placePointerInIconAfterClose: off + If on, then after explicitly closing a window, the pointer is placed + in its icon. + + - placePointerBackAfterMenuOperation: on + If on, then completing a menu operation that doesn't involve + tracking, the pointer is moved back to its position when the menu was + first raised. + + - placePointerBackOnCancel: on + If on, then after cancelling an operation, the pointer is moved back + to its position when the operation was initiated. + + - redrawInHeader: off + redrawInCornerBorder: on + redrawInSideBorder: on + redrawInMoveGadget: on + redrawInZoomGadget: on + redrawInIcon: on + Determines whether the appropriate mouse clicks in the named regions + redraw the window. + + - relocateInHeader: off + relocateInCornerBorder: off + relocateInSideBorder: off + relocateInMoveGadget: on + relocateInZoomGadget: off + Determines whether the appropriate mouse clicks in the named regions + initiate the Relocate operation. + + - resizeInHeader: off + resizeInCornerBorder: on + resizeInSideBorder: on + resizeInMoveGadget: off + resizeInZoomGadget: off + Determines whether the appropriate mouse clicks in the named regions + initiate the Resize operation. + + - showListenerInBorders: off + showListenerInHeader: on + showFocusInBorders: on + showFocusInHeader: off + When a window becomes the listener or focus, either the header or + border can be reversed. + + - useCornerBorders: on + Determines whether the corner window borders are active -- + essentially controls whether corner resizing is allowed without the + menu. + + - useIconArea: off + If on, then the iconArea... options specify a preferred area for + icons. + + - useIcons: on + If on, closed windows are represented by icons. + + - useRtlIcon: on + If on and icons are in use, then a special RTL icon is visible with + special meanings for window clicks. + + - zoomInHeader: off + zoomInCornerBorder: off + zoomInSideBorder: off + zoomInMoveGadget: off + zoomInZoomGadget: on + Determines whether the appropriate mouse clicks in the named regions + zoom and unzoom the window. + + + +11.4. Global Interface Values + + - borderSize: 5 + outerBorderLinewidth: 2 + innerBorderLinewidth: 1 + The size of window borders, and the width of the inner and outer + lines of the border. + + - gadgetWidth: 12 + The width of the gadgets + + - iconAreaTop + iconAreaBottom + iconAreaLeft + iconAreaRight + If useIconArea is set, these specify the preferred area of the root + in which icons are to be placed. There are no default values. + + + +11.5. Window Semantic Options + + - aggressivelyRepopulate: off + Determines whether this window is to be aggressively repopulated if + the global option allowAggressiveRepopulation allows it. + + - allowShrinkOnUnzoom: on + allowShrinkOnAutoUnzoom: on + Determines whether the window is allowed to be shrunk when it is + unzoomed in order to allow adjacent windows to be enlarged back to + their desired size or to allow windows to be repopulated. + + - allowZoomClose: on + Determines whether other windows are allowed to be closed in order to + allow this window to be zoomed. + + - autoOpenOnCreate: on + Determines whether the window is to be opened automatically when it + is created. Used if WM_HINTS indicates DontCareState (or if + initial_state is not provided) and if there is no matching layout. + + - autoResatisfyOnResetMinmax: on + When a client resets the client minimum or maximum size, determines + whether or not the window should change size immediately if + necessary, or wait until the window is operated upon. + + - considerForRepopulation: on + Determines whether the window is to be considered for repopulation + + - enforceClientMinimums: on + enforceClientMaximums: off + Determines whether minimums and maximums set by the client are to be + enforced or not. + + - expensiveToRedraw: off + The system tries to avoid having side effects upon windows which are + expensive to redraw + + - fixedSize: off + fixedHeight: off + fixedWidth: off + If a window has its width or height (size means both width and + height) fixed, then that dimension cannot be changed as a side effect + of an operation on another window, and the window cannot be + automatically shrunk in that dimension when it is being placed or + resized. + + - fixedCompletely: off + A window which is fixed completely has all of its edges fixed. + + - forceShrinkOnUnzoom: on + forceShrinkOnAutoUnzoom: off + When a window is unzoomed, determines whether it is to be shrunk to + its normal desired size. + + - ignoreInitialPositionHints: off + ignoreInitialSizeHints: off + ignorePositionHints: off + ignoreSizeHints: off + Determines whether to use the size and positions hints provided in + WM_NORMAL_HINTS. + + - listenerTiedToZoom: off + A window with listener tied to zoom is automatically zoomed when it + becomes the listener, and is automatically unzoomed when it loses the + listener. + + - noteListener: on + Open windows are ordered in terms of most recent use for a variety of + reasons. A window is "used" when it is opened. This option + determines whether becoming the listener constitutes "use" as well. + + - preferPreviousIconPosition: on + When the icon is placed, prefer placing it as near to its previous + location as possible within the constraints of the icon area and + iconPlacement. + + - requirePreviousIconPosition: off + When the icon is placed, try first to place it at its previous icon + position, even if that is not within the constraints of the icon area + and iconPlacement. + + - preferPreviousPosition: on + requirePreviousPosition: off + When a window is automatically placed, determines whether it prefers + or requires to be reopened at its previous position. + + - requireManualClose: off + If on, then the window may not be closed as a side effect of an + operation on another window. + + - saveInLayout: on + Determines whether an entry for this window is saved in .rtl.layout + when a Save Layout operation is done. + + - zoomFullExplicit: off + zoomFullHeight: off + zoomFullWidth: off + Determines whether zooming always causes the window to grow to the + full width and or height of the desktop. + + - zoomOnOpen: off + If set, then automatically zooms the window each time it is opened. + + - zoomTiedToDesire: off + When set, zoom a window to its normal desired size, rather than to + its zoom desired size. + + + +11.6. Window Semantic Values + +These options initialize window sizes. All sizes include space for borders and +headers. + + - normalDesiredWidth + normalDesiredHeight + Specifies the initial desired window size. Overrides the initial + window size specified by the client. + + - zoomDesiredWidth + zoomDesiredHeight + Specifies the desired size when the window is first zoomed. + + - clientMinWidth + clientMinHeight + clientMaxWidth + clientMaxHeight + Overrides the minimum and maxmum sizes specified by the client. + + - userNormalMinWidth + userNormalMinHeight + userZoomMinWidth + userZoomMinHeight + Specifies the initial user minimum size when the window is normal + (unzoomed) and zoomed. + + - iconWidth: 64 + iconHeight: 64 + Width and height of default icons (produced by RTL when no pixmap has + been provided). + + + +11.7. Window Interface Options + + - acceptButtonInBody: on + acceptButtonInHeader: on + acceptButtonInIcon: on + Determines whether a button press can ever be passed to the client + when the pointer is in the named region. + + - acceptKeyInBody: on + acceptKeyInHeader: on + acceptKeyInGadget: on + acceptKeyInBorder, : on + acceptKeyInIcon: on + Determines whether a key press can ever be passed to the client when + the pointer is in the named region. + + - autoPlaceOnClientOpen: on + Determines whether automatic or manual placement is used when the + client opens the window. + + - includeResClassInTitle: on + includeResClassInIconTitle: on + includeResNameInTitle: off + includeResNameInIconTitle: off + includeNameInTitle: on + includeNameInIconTitle: on + includeHostInTitle: on + includeHostInIconTitle: on + Determines whether the manager should include the the res_class, + res_name, the window or icon name, and the host name in the window or + icon title. But see just below ... + + - includeTitleInHeader: on + Determines whether the window title should be displayed in the window + header. + + - includeTitleInPixmapIcon: off + Determine whether the icon title should be drawn on top of the pixmap + icon if one has been supplied by either the client or via the + preferences file. + + - useBorders: on + useGadgets: on + useHeader: on + useMoveGadget: on + Determines whether the various regions of the window should be drawn. + + + +11.8. Window Interface Values + + - headerHeight: 16 + The height of the window's header. + + - iconResTop: 2 + iconResBottom: 10 + iconResLeft: 2 + iconResRight: 61 + Determines where the window resource class and resource name appear + in the icon + + - iconHostTop: 12 + iconHostBottom: 20 + iconHostLeft: 2 + iconHostRight: 61 + Determines where the host name appears in the icon. + + - iconNameTop: 22 + iconNameBottom: 61 + iconNameLeft: 2 + iconNameRight: 61 + Determines where the icon name appears in the icon. + + + +11.9. Window Semantic Strings + + - iconPixmapFile + Names a file containing an icon pixmap (in the standard X11 bitmap + format). Overrides the pixmap provided by the client. + + - superClass + The string names a superclass. The window will inherit all options + from its superclass unless explicitly overridden. + +12. Acknowledgements + +Mike Berman, Mark Biggers, and Joe Camaratta have shared in the design and +implementation of major parts of the system. + +In addition, Kevin Kelly has worked on automatic placement and prorating, Pete +Litwinowicz worked on the original Andrew-based client interface, and Adam +Richter helped with the interface to X11. + + QUICK REFERENCE PAGE + SIEMENS RTL TILED WINDOW MANAGER + RELEASE 5.1 FOR USE WITH X11R3 + + 3 BUTTON MOUSE + + + +Borders Icon + + LEFT -- Resize LEFT -- Open + SHIFT LEFT -- Resize* CTRL SHIFT LEFT -- Redraw + + MIDDLE -- Move MIDDLE -- Move + SHIFT MIDDLE -- Move* SHIFT MIDDLE -- Move* + CTRL MIDDLE -- Exchange + RIGHT -- Window Menu CTRL SHIFT MIDDLE -- Redraw + + Side borders constrain move and RIGHT -- Icon Menu + resize CTRL SHIFT RIGHT -- Soft Kill + +Zoom Gadget + All other combinations are + LEFT -- Desire transmitted to the client + SHIFT LEFT -- Zoom / Unzoom + CTRL LEFT -- Enlarge Note: When opening the icon, + CTRL SHIFT LEFT -- Redraw double clicking automatically places + the window. A single press or click + CTRL SHIFT MIDDLE -- Redraw allows the user to place it + manually. + CTRL SHIFT RIGHT -- Close + Rtl Icon + +Move Gadget LEFT -- Deselect Listener + CTRL SHIFT LEFT -- Redraw All + CTRL SHIFT LEFT -- Redraw + MIDDLE -- Move + MIDDLE -- Relocate SHIFT MIDDLE -- Move* + SHIFT MIDDLE -- Move CTRL MIDDLE -- Exchange + CTRL MIDDLE -- Exchange CTRL SHIFT MIDDLE -- Redraw All + CTRL SHIFT MIDDLE -- Redraw + RIGHT -- Main Manager Menu + CTRL SHIFT RIGHT -- Close + All other combinations deselect + the listener as well +Header + Background + MIDDLE -- Move + SHIFT MIDDLE -- Move* LEFT -- Deselect Listener + CTRL SHIFT LEFT -- Redraw All + RIGHT -- Window Menu + CTRL SHIFT MIDDLE -- Redraw All + All other combinations are + transmitted to the client RIGHT -- Main Manager Menu + + All other combinations deselect + * Toggles gravity during operation the listener as well + + To cancel an operation, press the RIGHT mouse button. + + A question mark cursor is a request for confirmation. Click the LEFT or + MIDDLE mouse button to confirm, the RIGHT mouse button to cancel. + + QUICK REFERENCE PAGE + SIEMENS RTL TILED WINDOW MANAGER + RELEASE 5.1 FOR USE WITH X11R3 + + 1 BUTTON MOUSE + + + +Borders Icon + + NONE -- Resize NONE -- Open + SHIFT -- Move SHIFT -- Move + CTRL -- Resize* CTRL -- Exchange + CTRL SHIFT -- Redraw CTRL SHIFT -- Icon Menu + + * Toggles gravity during operation Note: When opening the icon, + double clicking automatically places + Side borders constrain move and the window. A single press or click + resize allows the user to place it + manually. +Zoom Gadget + Rtl Icon + NONE -- Desire + SHIFT -- Zoom / Unzoom NONE -- Main Manager Menu + CTRL -- Enlarge SHIFT -- Move + CTRL SHIFT -- Close CTRL -- Exchange + CTRL SHIFT -- Main Manager Menu + +Move Gadget + Background + NONE -- Relocate + SHIFT -- Move NONE -- Main Manager Menu + CTRL -- Exchange SHIFT -- Deselect Listener + CTRL SHIFT -- Close CTRL -- Deselect Listener + CTRL SHIFT -- Redraw All + +Header + + NONE -- Window Menu + SHIFT -- Move + CTRL -- Sent to client + CTRL SHIFT -- Redraw + + + To cancel an operation, hold CTRL and SHIFT while releasing or clicking + the mouse button. + + A question mark cursor is a request for confirmation. Click the mouse + button to confirm, hold CTRL and SHIFT and click the mouse button to cancel. diff --git a/doc/plaintext/refpage5.doc b/doc/plaintext/refpage5.doc new file mode 100644 index 0000000..ea99c8a --- /dev/null +++ b/doc/plaintext/refpage5.doc @@ -0,0 +1,62 @@ + QUICK REFERENCE PAGE + SIEMENS RTL TILED WINDOW MANAGER + RELEASE 5 FOR USE WITH X11R2 + + 3 BUTTON MOUSE + + + +Borders Icon + + LEFT -- Resize LEFT -- Open + SHIFT LEFT -- Resize* CTRL SHIFT LEFT -- Redraw + + MIDDLE -- Move MIDDLE -- Move + SHIFT MIDDLE -- Move* SHIFT MIDDLE -- Move* + CTRL MIDDLE -- Exchange + RIGHT -- Window Menu CTRL SHIFT MIDDLE -- Redraw + + Side borders constrain move and RIGHT -- Icon Menu + resize CTRL SHIFT RIGHT -- Soft Kill + +Zoom Gadget + All other combinations are + LEFT -- Desire transmitted to the client + SHIFT LEFT -- Zoom / Unzoom + CTRL LEFT -- Enlarge Note: When opening the icon, + CTRL SHIFT LEFT -- Redraw double clicking automatically places + the window. A single press or click + CTRL SHIFT MIDDLE -- Redraw allows the user to place it + manually. + CTRL SHIFT RIGHT -- Close + Rtl Icon + +Move Gadget LEFT -- Deselect Listener + CTRL SHIFT LEFT -- Redraw All + CTRL SHIFT LEFT -- Redraw + MIDDLE -- Move + MIDDLE -- Relocate SHIFT MIDDLE -- Move* + SHIFT MIDDLE -- Move CTRL MIDDLE -- Exchange + CTRL MIDDLE -- Exchange CTRL SHIFT MIDDLE -- Redraw All + CTRL SHIFT MIDDLE -- Redraw + RIGHT -- Main Manager Menu + CTRL SHIFT RIGHT -- Close + All other combinations deselect + the listener as well +Header + Background + MIDDLE -- Move + SHIFT MIDDLE -- Move* LEFT -- Deselect Listener + CTRL SHIFT LEFT -- Redraw All + RIGHT -- Window Menu + CTRL SHIFT MIDDLE -- Redraw All + All other combinations are + transmitted to the client RIGHT -- Main Manager Menu + + All other combinations deselect + * Toggles gravity during operation the listener as well + + To cancel an operation, press the RIGHT mouse button. + + A question mark cursor is a request for confirmation. Click the LEFT or + MIDDLE mouse button to confirm, the RIGHT mouse button to cancel. diff --git a/doc/plaintext/refpage_one5.doc b/doc/plaintext/refpage_one5.doc new file mode 100644 index 0000000..00d7e46 --- /dev/null +++ b/doc/plaintext/refpage_one5.doc @@ -0,0 +1,49 @@ + QUICK REFERENCE PAGE + SIEMENS RTL TILED WINDOW MANAGER + RELEASE 5 FOR USE WITH X11R2 + + 1 BUTTON MOUSE + + + +Borders Icon + + NONE -- Resize NONE -- Open + SHIFT -- Move SHIFT -- Move + CTRL -- Resize* CTRL -- Exchange + CTRL SHIFT -- Redraw CTRL SHIFT -- Icon Menu + + * Toggles gravity during operation Note: When opening the icon, + double clicking automatically places + Side borders constrain move and the window. A single press or click + resize allows the user to place it + manually. +Zoom Gadget + Rtl Icon + NONE -- Desire + SHIFT -- Zoom / Unzoom NONE -- Main Manager Menu + CTRL -- Enlarge SHIFT -- Move + CTRL SHIFT -- Close CTRL -- Exchange + CTRL SHIFT -- Main Manager Menu + +Move Gadget + Background + NONE -- Relocate + SHIFT -- Move NONE -- Main Manager Menu + CTRL -- Exchange SHIFT -- Deselect Listener + CTRL SHIFT -- Close CTRL -- Deselect Listener + CTRL SHIFT -- Redraw All + +Header + + NONE -- Window Menu + SHIFT -- Move + CTRL -- Sent to client + CTRL SHIFT -- Redraw + + + To cancel an operation, hold CTRL and SHIFT while releasing or clicking + the mouse button. + + A question mark cursor is a request for confirmation. Click the mouse + button to confirm, hold CTRL and SHIFT and click the mouse button to cancel. diff --git a/doc/plaintext/tutorial5.doc b/doc/plaintext/tutorial5.doc new file mode 100644 index 0000000..42e0bb5 --- /dev/null +++ b/doc/plaintext/tutorial5.doc @@ -0,0 +1,236 @@ + TUTORIAL: + INITIAL SETUP FOR USING THE + SIEMENS RTL + TILED WINDOW MANAGER + + RELEASE 5 + FOR USE WITH X11R2 + + + ELLIS S. COHEN + SIEMENS RESEARCH & TECHNOLOGY LABORATORIES + 105 COLLEGE ROAD EAST + PRINCETON NJ 08540-6668 + (609) 734-6524 + + COMMENTS OR QUESTIONS TO + rtl@cadillac.siemens.com (INTERNET) + princeton!siemens!cadillac!rtl (UUCP) + + 17 JUNE 1988 + + + Copyright 1988 by Siemens Research and Technology Laboratories, + Princeton, NJ + + Permission to use, copy, modify, and distribute this documentation + and the software described for any purpose and without fee is hereby + granted, provided that the above copyright notice appear in all copies + and that both that copyright notice and this permission notice appear + in supporting documentation, and that the name of Siemens Research and + Technology Laboratories not be used in advertising or publicity + pertaining to distribution of the software without specific, written + prior permission. + + SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + EVENT SHALL SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR + CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + + + + This tutorial describes how to become an initial user of the Siemens + rtl Tiled Window Manager. It assumes that you already know how to + start the X11R2 (X11 and the X Window System are trademarks of MIT) + server and are familiar with X11 applications. + + The tutorial explains how to set up customization files, how to set up + your initial window layout along with per-window options, and how to + save that layout. Once the layout is saved, it will automatically be + recreated when you start up the system in the future. + + A Quick Reference Page describing the actions associated with mouse + buttons, and a Manual are also available. + + + +Except for menus and transient pop-up windows, the rtl window manager does not +permit windows to overlap. Because of this, rtl has features and constraints +not found in other window managers. Getting your environment set up so that +you can use rtl effectively takes some extra time. IT IS WORTH IT! + +1. Preparation + +First, make sure that you have the following two files in your home directory: + + - .rtl.tools -- initializes a menu from which you can easily start up + new applications once rtl is running. + + - .rtl.preferences -- specifies global and per-window-class options + that control both the semantics and the appearance of rtl. + +Find out where the rtl distribution is located on your filesystem. In the +custom subdirectory, you will find example .rtl.tools and .rtl.preferences +files that we use at our lab. + + NOTE: If you don't use a .rtl.preferences file, defaults are chosen + that provide a fairly conservative interface. The .rtl.preferences + file in the custom subdirectory allows windows to be automatically + moved and resized a bit more easily and tailors the interface + specifically for individual applications. The last section of the + manual describes the options in detail. + + NOTE: The .rtl.preferences file in the custom subdirectory has a + number of "iconPixmapFile" entries. These designate a file containing + a bitmap to be used for the corresponding application's icon. The + bitmap files are stored in the custom subdirectory. Make sure that the + path to the custom subdirectory is correct for the "iconPixmapFile" + entries. + +The Customization section of the manual has information about additional ways +you can customize your environment. + +2. Starting up RTL and your Applications + +Once your X server is running, you can start up rtl. If X clients are already +mapped, rtl will tile them. + +Now, start up the remaining applications you typically want running. + +Some applications request to be initially iconized via their WM_HINTS +property,(Each X11 window can have various "properties" associated with it. +Some of these properties are set by clients to communicate with the window +manager. See section 9.1 of the Xlib manual if you want more information.) +and rtl will do so. Otherwise, the window is initially mapped. + +By default, the option autoPlaceOnClientOpen is on, which means that rtl will +automatically find a place for the window. + +If you have set it off in your preference file, you may be asked to place it +automatically, depending upon whether the client has specified an initial size +and position (in the WM_NORMAL_HINTS property). + + - If the client provided both a size and position hint, the window will + be placed automatically, though because of tiling, not necessarily at + exactly the size or position requested. + + - Otherwise, you will asked to determine both its size and position. + The cursor will change to a dotted box. Pressing or clicking the + left mouse button designates the top-left corner. Releasing or + re-clicking designates the bottom-right corner. Pressing the right + mouse button iconizes the window instead. (For a one-button mouse, + hold CTRL and SHIFT and click to iconize). + +Some clients set bogus initial window positions (usually <0,0>), and are +automatically placed by rtl even when that is not appropriate. You can tell +rtl to ignore the initial position set by the client by setting the option +ignoreInitialPositionHints for those clients. + +If you do not like the layout, you can change it by resizing or moving windows +around. See the Quick Reference Page which explains how to use the mouse +buttons, or see the Manual for more details. + +3. Client Minimum and Maximum Size + +Many clients set a reasonable client minimum size via the WM_NORMAL_HINTS +property. Some do not. You can tell by trying to resize the window. By +default, the window manager will not allow the window to be made smaller than +its client minimum size. + +If the size set by the client seems too small, you can override it by setting +"clientMinimumWidth" and "clientMinimumHeight" in your preferences file. If +you reread your preferences file (via the "Read Profile" entry in the manager +menu), these will affect future applications of the same class. + +You can also set "clientMaximumWidth" and "clientMaximumHeight" to override the +client's maximum size hint. + +4. User Minimum Size + +When a window is enlarged or opened, an adjacent window may be shrunk +automatically by rtl. A window is never shrunk any smaller than its user +minimum size. The wm will not let you make the user minimum size smaller than +the client minimum size. + +You may set a window's user minimum size by selecting "Set Size" from a +window's menu, and then selecting "Normal Min" from the submenu. You can then +press or click on a side or corner, and resize to indicate the minimum size. + +You can set the user minimum size on a per-window-class basis by setting +"userNormalMinWidth" and "userNormalMinHeight" in your preferences files, but +these will not be applied to existing windows. + +If you plan to zoom the window, you can set the zoom minimum size similarly. + +5. Per Window Options + +By selecting "Options" from a window menu, a submenu indicates various +per-window options that you can select: + + - Locked Open -- prevents the window from being automatically closed. + + - Fixed Width -- prevents the window's width from being automatically + changed. + + - Fixed Height -- prevents the window's height from being automatically + changed. + + - Fixed Edges -- prevents the window from being moved or resized + automatically. + + - Listener Tied To Zoom -- Zooms (unzooms) the window when it becomes + (no longer is) the listener. + +These options can be set on a per-window-class basis by setting the +corresponding options in the preferences file. See the Customization section +of the Manual. + +6. Save the Layout + +Once you have the windows where you want them, have set the minimum size of +your windows, and have determined their per-window options, you are ready to +save the layout. + +Select "Save Layout" from the manager menu. A question mark cursor asks for +confirmation. Click with the left button to confirm, with the right button to +cancel. (For a one-button mouse, hold CTRL and SHIFT and click to cancel). + +Selecting "Save Layout" saves information about all open and closed windows and +their icons in .rtl.layout file in your home directory. + +7. Build a Startup File + +Now that you know which applications you typically like running, you can build +a shell file that starts them up. + +If you name the shell file .rtl.startup, and put in your home directory, it +will automatically get executed, if you invoke rtl with the "-s" flag + +8. Restarting + +When you subsequently start rtl, the .rtl.layout file will be read in and will +be used to match up applications that have already started or which you will +start up in the future. + +Until every saved window in .rtl.layout is matched by an opened window or icon, +certain automatic strategies used by the window manager to balance screen space +are disabled in order to allow the saved layout to be precisely restored. + +In the meantime, "Finish Layout" appears in the window manager menu. If an +expected window does not open for some reason (host down, program bombs, etc.), +the user can tell the window manager to treat the layout as finished by +selecting "Finish Layout". + +Alternately, by specifying the flag "-f" when the rtl is started, the windows +on the screen when rtl is started are laid out, but then, the layout is treated +as finished and "Finish Layout" does not appear. If you specify the flag "-i", +then the layout file is ignored entirely. + +When the layout has been finished, in whatever way, "Save Layout" appears in +the place of "Finish Layout", allowing the user to change the layout, and +resave it, overwriting the old layout file. + +Enjoy! diff --git a/doc/postscript/manual5.ps b/doc/postscript/manual5.ps new file mode 100644 index 0000000..639d7ae --- /dev/null +++ b/doc/postscript/manual5.ps @@ -0,0 +1,23424 @@ +%! for use by dvi2ps Version 2.00 +% a start (Ha!) at a TeX mode for PostScript. +% The following defines procedures assumed and used by program "dvi2ps" +% and must be downloaded or sent as a header file for all TeX jobs. + +% By: Neal Holtz, Carleton University, Ottawa, Canada +% +% +% June, 1985 +% Last Modified: Aug 25/85 +% oystr 12-Feb-1986 +% Changed @dc macro to check for a badly formed bits in character +% definitions. Can get a <> bit map if a character is not actually +% in the font file. This is absolutely guaranteed to drive the +% printer nuts - it will appear that you can no longer define a +% new font, although the built-ins will still be there. + +% To convert this file into a downloaded file instead of a header +% file, uncomment all of the lines beginning with %-% + +%-%0000000 % Server loop exit password +%-%serverdict begin exitserver +%-% systemdict /statusdict known +%-% {statusdict begin 9 0 3 setsccinteractive /waittimeout 300 def end} +%-% if + +/TeXDict 200 dict def % define a working dictionary +TeXDict begin % start using it. + + % units are in "dots" (300/inch) +/Resolution 300 def +/Inch {Resolution mul} def % converts inches to internal units + +/Mtrx 6 array def + +%%%%%%%%%%%%%%%%%%%%% Page setup (user) options %%%%%%%%%%%%%%%%%%%%%%%% + +% dvi2ps will output coordinates in the TeX system ([0,0] 1" down and in +% from top left, with y +ive downward). The default PostScript system +% is [0,0] at bottom left, y +ive up. The Many Matrix Machinations in +% the following code are an attempt to reconcile that. The intent is to +% specify the scaling as 1 and have only translations in the matrix to +% properly position the text. Caution: the default device matrices are +% *not* the same in all PostScript devices; that should not matter in most +% of the code below (except for lanscape mode -- in that, rotations of +% -90 degrees resulted in the the rotation matrix [ e 1 ] +% [ 1 e ] +% where the "e"s were almost exactly but not quite unlike zeros. + +/@letter + { letter initmatrix + 72 Resolution div dup neg scale % set scaling to 1. + 310 -3005 translate % move origin to top (these are not exactly 1" + Mtrx currentmatrix pop % and -10" because margins aren't set exactly right) + } def + % note mode is like letter, except it uses less VM +/@note + { note initmatrix + 72 Resolution div dup neg scale % set scaling to 1. + 310 -3005 translate % move origin to top + Mtrx currentmatrix pop + } def + +/@landscape + { letter initmatrix + 72 Resolution div dup neg scale % set scaling to 1. +% -90 rotate % it would be nice to be able to do this + Mtrx currentmatrix 0 0.0 put % but instead we have to do things like this because what + Mtrx 1 -1.0 put % should be zero terms aren't (and text comes out wobbly) + Mtrx 2 1.0 put % Fie! This likely will not work on QMS printers + Mtrx 3 0.0 put % (nor on others where the device matrix is not like + Mtrx setmatrix % like it is on the LaserWriter). + 300 310 translate % move origin to top + Mtrx currentmatrix pop + } def + +/@legal + { legal initmatrix + 72 Resolution div dup neg scale % set scaling to 1. + 295 -3880 translate % move origin to top + Mtrx currentmatrix pop + } def + +/@manualfeed + { statusdict /manualfeed true put + } def + % n @copies - set number of copies +/@copies + { /#copies exch def + } def + +%%%%%%%%%%%%%%%%%%%% Procedure Defintions %%%%%%%%%%%%%%%%%%%%%%%%%% + +/@newfont % id @newfont - -- initialize a new font dictionary + { /newname exch def + pop + newname 7 dict def % allocate new font dictionary + newname load begin + /FontType 3 def + /FontMatrix [1 0 0 -1 0 0] def + /FontBBox [0 0 1 1] def + /BitMaps 128 array def + /BuildChar {CharBuilder} def + /Encoding 128 array def + 0 1 127 {Encoding exch /.undef put} for + end + newname newname load definefont pop + } def + + +% the following is the only character builder we need. it looks up the +% char data in the BitMaps array, and paints the character if possible. +% char data -- a bitmap descriptor -- is an array of length 6, of +% which the various slots are: + +/ch-image {ch-data 0 get} def % the hex string image +/ch-width {ch-data 1 get} def % the number of pixels across +/ch-height {ch-data 2 get} def % the number of pixels tall +/ch-xoff {ch-data 3 get} def % number of pixels below origin +/ch-yoff {ch-data 4 get} def % number of pixels to left of origin +/ch-tfmw {ch-data 5 get} def % spacing to next character + +/CharBuilder % fontdict ch Charbuilder - -- image one character + { /ch-code exch def % save the char code + /font-dict exch def % and the font dict. + /ch-data font-dict /BitMaps get ch-code get def % get the bitmap descriptor for char + ch-data null eq not + { ch-tfmw 0 ch-xoff neg ch-yoff neg ch-width ch-xoff sub ch-height ch-yoff sub + setcachedevice + ch-width ch-height true [1 0 0 1 ch-xoff ch-yoff] + {ch-image} imagemask + } + if + } def + + +/@sf % fontdict @sf - -- make that the current font + { setfont() pop + } def + + % in the following, the font-cacheing mechanism requires that + % a name unique in the particular font be generated + +/@dc % char-data ch @dc - -- define a new character bitmap in current font + { /ch-code exch def +% ++oystr 12-Feb-86++ + dup 0 get + length 2 lt + { pop [ <00> 1 1 0 0 8.00 ] } % replace <> with null + if +% --oystr 12-Feb-86-- + /ch-data exch def + currentfont /BitMaps get ch-code ch-data put + currentfont /Encoding get ch-code + dup ( ) cvs cvn % generate a unique name simply from the character code + put + } def + +/@bop0 % n @bop0 - -- begin the char def section of a new page + { + } def + +/@bop1 % n @bop1 - -- begin a brand new page + { pop + erasepage initgraphics + Mtrx setmatrix + /SaveImage save def() pop + } def + +/@eop % - @eop - -- end a page + { showpage + SaveImage restore() pop + } def + +/@start % - @start - -- start everything + { @letter % (there is not much to do) + } def + +/@end % - @end - -- done the whole shebang + { end + } def + +/p % x y p - -- move to position + { moveto + } def + +/r % x r - -- move right + { 0 rmoveto + } def + +/s % string s - -- show the string + { show + } def + +/c % ch c - -- show the character (code given) + { c-string exch 0 exch put + c-string show + } def + +/c-string ( ) def + +/ru % dx dy ru - -- set a rule (rectangle) + { /dy exch neg def % because dy is height up from bottom + /dx exch def + /x currentpoint /y exch def def % remember current point + newpath x y moveto + dx 0 rlineto + 0 dy rlineto + dx neg 0 rlineto + closepath fill + x y moveto + } def + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% the \special command junk +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% The structure of the PostScript produced by dvi2ps for \special is: +% @beginspecial +% - any number of @hsize, @hoffset, @hscale, etc., commands +% @setspecial +% - the users file of PostScript commands +% @endspecial + +% The @beginspecial command recognizes whether the Macintosh Laserprep +% has been loaded or not, and redfines some Mac commands if so. +% The @setspecial handles the users shifting, scaling, clipping commands + + +% The following are user settable options from the \special command. + +/@SpecialDefaults + { /hs 8.5 Inch def + /vs 11 Inch def + /ho 0 def + /vo 0 def + /hsc 1 def + /vsc 1 def + /CLIP false def + } def + +% d @hsize - specify a horizontal clipping dimension +% these 2 are executed before the MacDraw initializations +/@hsize {/hs exch def /CLIP true def} def +/@vsize {/vs exch def /CLIP true def} def +% d @hoffset - specify a shift for the drwgs +/@hoffset {/ho exch def} def +/@voffset {/vo excl def} def +% s @hscale - set scale factor +/@hscale {/hsc exch def} def +/@vscale {/vsc exch def} def + +/@setclipper + { hsc vsc scale + CLIP + { newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip } + if + } def + +% this will be invoked as the result of a \special command (for the +% inclusion of PostScript graphics). The basic idea is to change all +% scaling and graphics back to defaults, but to shift the origin +% to the current position on the page. Due to TeXnical difficulties, +% we only set the y-origin. The x-origin is set at the left edge of +% the page. + +/@beginspecial % - @beginspecial - -- enter special mode + { gsave /SpecialSave save def + % the following magic incantation establishes the current point as + % the users origin, and reverts back to default scalings, rotations + currentpoint transform initgraphics itransform translate + @SpecialDefaults % setup default offsets, scales, sizes + @MacSetUp % fix up Mac stuff + } def + +/@setspecial % to setup user specified offsets, scales, sizes (for clipping) + { + MacDrwgs + {md begin /pxt ho def /pyt vo neg def end} + {ho vo translate @setclipper} + ifelse + } def + +/@endspecial % - @endspecial - -- leave special mode + { SpecialSave restore + grestore + } def + +/MacDrwgs false def % will get set if we think the Mac LaserPrep file has been loaded + + % - @MacSetUp - turn-off/fix-up all the MacDraw stuff that might hurt us + % we depend on 'psu' being the first procedure executed + % by a Mac document. We redefine 'psu' to adjust page + % translations, and to do all other the fixups required. + % This stuff will not harm other included PS files +/@MacSetUp + { userdict /md known % if md is defined + { userdict /md get type /dicttype eq % and if it is a dictionary + { /MacDrwgs true def + md begin % then redefine some stuff + /psu % redfine psu to set origins, etc. + /psu load + % this procedure contains almost all the fixup code + { /letter {} def % it is bad manners to execute the real + /note {} def % versions of these (clears page image, etc.) + /legal {} def + statusdict /waittimeout 300 put + /page {pop} def % no printing of pages + /pyt vo neg def % x & y pixel translations + /pxt ho def + } + concatprocs + def + /od % redefine od to set clipping region + /od load + { @setclipper } + concatprocs + def + end } + if } + if + } def + +% p1 p2 concatprocs p - concatenate procedures +/concatprocs + { /p2 exch cvlit def + /p1 exch cvlit def + /p p1 length p2 length add array def + p 0 p1 putinterval + p p1 length p2 putinterval + p cvx + } def + +end % revert to previous dictionary +TeXDict begin @start +%%Title: /usr/cadillac/berman/Papers/Rtl/manual/manual5.dvi +%%Creator: dvi2ps +%%EndProlog +38 @bop0 +[ 360 ] /cmbx10.360 @newfont +cmbx10.360 @sf +[<7FFFF07FFFF001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8 + 0001F80001F80001F80001F80001F80001F80001F80001F80001F80001F800FDF800FFF80003F800007800003800> 24 32 -4 0 28.642] 49 @dc +[<3C007E00FF00FF00FF00FF007E003C00> 16 8 -4 0 15.912] 46 @dc +[<03F800000FFF00001C0FC0001E03E0003F01F0003F00F8003F00FC003F00FC001E007E0000007E0000007E0000007F0003FC + 7F000FFE7F001F017F003E01FF007E00FF007E00FF00FE007F00FE007F00FE007F00FE007F00FE007E00FE007E00FE007E00 + 7E007C007E007C003E00F8001F00F0000F83E00007FFC00000FF0000> 32 32 -2 0 28.642] 57 @dc +[<00006000060000000000E000070000000000F0000F0000000001F0000F8000000001F0000F8000000003F8001FC000000003 + F8001FC000000003FC003FC000000007FC003FE000000007FC003FE000000007F6007F600000000FE6007F300000000FE600 + 7F300000001FE300FE380000001FC300FE180000001FC381FE180000003F8181FC0C0000003F8181FC0C0000007F80C3F80E + 0000007F00C3F8060000007F00E7F806000000FF0067F003000000FE0067F003000000FE003FF003000001FC003FE0018000 + 01FC003FE001800003FC001FC001C00003F8001FC000C00003F8003FC000C00007F8003F8000600007F0003F8000600007F0 + 007F0000F000FFFF07FFF80FFF00FFFF07FFF80FFF00> 64 34 -1 0 59.221] 87 @dc +[ 16 36 -2 0 15.912] 105 @dc +[ 32 22 -3 0 31.824] 110 @dc +[<01FC3FE007FF3FE00F81FF001F007F003E003F007E003F007C003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC00 + 3F00FC003F007C003F007C003F007E003F003E003F001F007F000FC1FF0007FFBF0000FE3F0000003F0000003F0000003F00 + 00003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F000001FF000001FF00> 32 35 -2 0 31.824] 100 @dc +[<00FF000007FFE0000F81F0001F00F8003E007C007E007E007C003E00FC003F00FC003F00FC003F00FC003F00FC003F00FC00 + 3F00FC003F007C003E007C003E007C003E003E007C001F00F8000F81F00007FFE00000FF0000> 32 22 -2 0 28.642] 111 @dc +[<0018006000001C00E000003C00F000003E01F000007E01F800007F03F800007F03F80000FF03EC0000FD87CC0001FD87C600 + 01F8CFC60001F8CF860003F0CF830003F07F030007E07F018007E03F01800FE03E01C00FC07E00C00FC07C00C01F807C00E0 + FFF3FF87FCFFF3FF87FC> 40 22 -1 0 41.371] 119 @dc +[<807FC000E7FFF000FF807800FC001C00F0001E00E0000F00E0000F00C0000F80C0000F80C0000F8000001F8000001F800000 + 3F800001FF00003FFF0003FFFF0007FFFE001FFFFC003FFFF8003FFFE0007FFF8000FFF00000FF000000FC000000FC000600 + F8000600F800060078000E0078000E003C001E003C007E001F01FE0007FFCE0001FE0200> 32 34 -3 0 31.824] 83 @dc +[<00FF0003FFC00F80F01F00303E00387E00187E0000FC0000FC0000FC0000FC0000FFFFF8FFFFF8FC0078FC00F87C00F87E00 + F03E00F01F01E00F83E007FF8000FE00> 24 22 -2 0 26.255] 101 @dc +[ 48 22 -3 0 47.736] 109 @dc +[<07E03F801FF8FF807E0CF8007C02F800F801F800F801F800F801F800F801F8007C01F8003E01F8001F81F80003FDF800003F + F8000001F8000001F8001E01F8003F01F8003F01F0003F03F0003F07E0001FFF800007FE0000> 32 22 -2 0 27.846] 97 @dc +[<00FC0003FE0007E30007C1800FC1800FC1800FC1800FC1800FC1800FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0 + 000FC0000FC0000FC000FFFF00FFFF001FC0000FC00007C00003C00001C00001C00000C00000C00000C00000C000> 24 32 -1 0 22.277] 116 @dc +[<00FE0007FF800FC0E01F00603F00307E00007E00007C0000FC0000FC0000FC0000FC0000FC0000FC00007C00007C01E07E03 + F03E03F01F03F00F83F007FFE000FF80> 24 22 -2 0 25.459] 99 @dc +[ 24 22 -2 0 23.591] 114 @dc +[<01FFE0000FFFFC001F807E003E001F007C000F80F80007C0F80007C0F80007C078000FC07C001FC01FFFFF8007FFFF000FFF + FF001FFFFC001FFFE0001C000000180000001800000008FE00000BFF80000F83E0001F01F0001E00F0003E00F8003E00F800 + 3E00F8003E00F8003E00F8001E00F0001F01F3C00F83E3C003FF9FC000FE0F80> 32 33 -1 11 28.642] 103 @dc +[ 24 22 -2 0 22.595] 115 @dc +[ 329 ] /cmsy10.329 @newfont +cmsy10.329 @sf +[<07E0001FF8003FFC007FFE007FFE00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF007FFE007FFE003FFC001FF8 + 0007E000> 24 18 -3 -2 22.727] 15 @dc +[ 329 ] /cmbx10.329 @newfont +cmbx10.329 @sf +[ 16 33 -2 0 14.520] 105 @dc +[<01FC0007FF001F81C03F00C03E00607E00007C0000FC0000FC0000FC0000FC0000FC0000FC00007C03007C0FC03E0FC03E0F + C01F0FC007FF8001FE00> 24 20 -2 0 23.232] 99 @dc +[<01FF0007FFC01F83F03E00F83E00F87C007C7C007CFC007EFC007EFC007EFC007EFC007EFC007E7C007C7C007C3E00F83E00 + F81F83F007FFC001FF00> 24 20 -1 0 26.136] 111 @dc +[ 32 20 -3 0 29.040] 110 @dc +[ 32 31 -2 0 35.731] 80 @dc +[ 32 20 -1 0 27.588] 120 @dc +[ 40 20 -3 0 43.559] 109 @dc +[<0FE07E3FF9FE7E0DE0FC05E0F803E0F803E0F803E07C03E03C03E01F03E007FBE0007FE00003E00C03E03F03E03F03E03F07 + C03F0F801FFF0007FC00> 24 20 -1 0 25.410] 97 @dc +[ 32 29 -2 9 29.040] 112 @dc +[ 32 31 -2 0 32.890] 70 @dc +[ 16 32 -2 0 14.520] 108 @dc +[<00FF8007FFE00F80703F00383E00187E00007C0000FC0000FC0000FC0000FFFFF8FFFFF8FC00F8FC00F87E00F87E00F03F01 + F01F83E007FF8001FE00> 24 20 -1 0 23.958] 101 @dc +[ 329 ] /cmr10.329 @newfont +cmr10.329 @sf +[ 32 31 -2 0 34.090] 78 @dc +[<0F83C0386720781E10F01E10F00E10F00E10F00E10780E00380E001E0E00078E0000FE00000E00000E00000E00300E00781C + 007818003030001FE000> 24 20 -2 0 22.727] 97 @dc +[ 40 20 -1 0 37.878] 109 @dc +[<01F8000706000C0100180080380080700000700000F00000F00000F00000FFFF80F00380F003807003807007003807003807 + 001C0E000E1C0003F000> 24 20 -1 0 20.202] 101 @dc +[<8F80D060E030C018C01880188018803800700FF03FE07F807800E000C010C010C010403030701F90> 16 20 -2 0 17.929] 115 @dc +[<7FC3FE0700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700 + E00700E00700E0FFFFE00700000700000700000700000700000700000701E00701E00381E001C0C000E0C0003F00> 24 32 0 0 25.252] 12 @dc +[ 16 32 0 0 12.626] 108 @dc +[<03F0000E0C001C0200380100380100700000700000F00000F00000F00000F00000F00000F00000700000700000380C00381E + 001C1E000E0C0003F800> 24 20 -2 0 20.202] 99 @dc +[<01F800070E001C03803801C03801C07000E07000E0F000F0F000F0F000F0F000F0F000F0F000F07000E07000E03801C03801 + C01C0380070E0001F800> 24 20 -1 0 22.727] 111 @dc +[ 24 20 -1 0 25.252] 110 @dc +[<01E0031006100E080E080E080E080E080E000E000E000E000E000E000E000E000E000E000E00FFF83E000E000E0006000600 + 020002000200> 16 28 -1 0 17.676] 116 @dc +[ 16 31 0 0 12.626] 105 @dc +[<03FC001C03803000C0600060C00030C00030C00030C000306000703001E00FFFC01FFF803FFE003000003000002000002000 + 0033E0001E38001C1C00380E00780F00780F00780F00780F00780F00380E001C1C300E3A3003E1E0> 24 30 -1 10 22.727] 103 @dc +[ 24 29 -1 9 25.252] 112 @dc +[ 24 20 0 0 23.989] 120 @dc +[<0020004000800100020006000C000C00180018003000300030007000600060006000E000E000E000E000E000E000E000E000 + E000E000E000E0006000600060007000300030003000180018000C000C00060002000100008000400020> 16 46 -3 12 17.676] 40 @dc +[ 24 32 -1 0 25.252] 104 @dc +[<03E3F80E1B801C0780380780380380700380700380F00380F00380F00380F00380F00380F003807003807003803803803803 + 801C0780061B8003E380000380000380000380000380000380000380000380000380000380000380003F80000380> 24 32 -2 0 25.252] 100 @dc +[ 16 20 -1 0 17.803] 114 @dc +[ 32 31 -1 0 34.090] 88 @dc +[ 16 29 -4 0 22.727] 49 @dc +[<083E000CC3000D01C00F00E00E00E00E00700E00700E00780E00780E00780E00780E00780E00780E00700E00700E00E00F00 + E00F01C00EC3800E3E000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0000FE00000E0000> 24 32 -1 0 25.252] 98 @dc +[<7FF0000700000700000700000700000700000700000700000700000700000700000700000700000700000700000700000700 + 00070000070000FFF000070000070000070000070000070000070000070000070600038F00018F0000C600007C00> 24 32 0 0 13.889] 102 @dc +[<800040002000100008000C00060006000300030001800180018001C000C000C000C000E000E000E000E000E000E000E000E0 + 00E000E000E000E000C000C000C001C001800180018003000300060006000C0008001000200040008000> 16 46 -3 12 17.676] 41 @dc +[<70F8F8F870> 8 5 -4 0 12.626] 46 @dc +[<003FC00000F0F00003C03C0007801E000F000F001E0007801E0007803C0003C07C0003E07C0003E0780001E0F80001F0F800 + 01F0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0780001E07C0003E03C0003C03C0003C01E000780 + 1E0007800F000F0007801E0003C03C0000E07000003FC000> 32 31 -3 0 35.353] 79 @dc +[<00200000700000700000700000E80000E80001EC0001C40001C4000382000382000382000701000701000E00800E00800E00 + 801C00C01E01E0FF83F8> 24 20 -1 0 23.989] 118 @dc +[<3C0000620000F10000F08000F0800000400000400000400000200000200000700000700000700000E80000E80001EC0001C4 + 0001C4000382000382000382000701000701000E00800E00800E00801C00C01E01E0FF83F8> 24 29 -1 9 23.989] 121 @dc +cmbx10.329 @sf +[ 24 20 -2 0 20.618] 115 @dc +[<03F8FF0007FCFF000F06F8001F01F8001F01F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00 + F8001F00F8001F00F8001F00F8001F00F8001F00F800FF07F800FF07F800> 32 20 -3 0 29.040] 117 @dc +[ 24 20 -2 0 21.527] 114 @dc +[<0007FC00003FFF8000FE01C003F0007007E000380FC000181F80000C3F00000C3F0000067F0000067E0000067E000000FE00 + 0000FE000000FE000000FE000000FE000000FE000000FE0000007E0000067E0000067F0000063F00000E3F00000E1F80001E + 0FC0001E07E0003E03F000FE00FE03DE003FFF0E0007FC02> 32 31 -3 0 37.751] 67 @dc +cmr10.329 @sf +[<07FFFE00001F8000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F + 0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000800F0010800F0010800F0010800F0010 + C00F0030400F0020400F0020600F0060780F01E07FFFFFE0> 32 31 -2 0 32.828] 84 @dc +[<01F1FC030DC00603C00E03C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01 + C00E01C0FE1FC00E01C0> 24 20 -1 0 25.252] 117 @dc +[<004008000060180000E01C0000E01C0000F03C0001D03A0001D0320003C8730003887100038861000704E0800704C0800707 + C0800E03C0400E0380400E0380401C0380201C0300603C078070FF9FE1FC> 32 20 -1 0 32.828] 119 @dc +[ 432 ] /cmbx10.432 @newfont +cmbx10.432 @sf +[<7FFFFE7FFFFE7FFFFE00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE + 0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00F8FE00FF + FE00FFFE0007FE00007E00001E00000E00> 24 39 -5 0 34.370] 49 @dc +[ 32 39 -3 0 34.370] 50 @dc +[ 48 41 -2 0 51.970] 65 @dc +[<001FE00000FFFC0003F01F000FE007801FC003C03FC001C03F8001C07F8000007F000000FF000000FF000000FF000000FF00 + 0000FF000000FF000000FF000000FF000000FF0000007F0000007F801F003F803F803F803F801FC03F800FE03F8003F01F00 + 00FFFE00001FF800> 32 27 -2 0 30.551] 99 @dc +[ 32 42 -2 0 36.280] 107 @dc +[ 40 27 -3 0 38.189] 110 @dc +[<003FE00001FFFC0007F07F000FC01F801F800FC03F800FE03F800FE07F0007F07F0007F0FF0007F8FF0007F8FF0007F8FF00 + 07F8FF0007F8FF0007F8FF0007F8FF0007F87F0007F07F0007F07F0007F03F0007E03F800FE01F800FC00FC01F8003F07E00 + 01FFFC00003FE000> 32 27 -2 0 34.370] 111 @dc +[<00078003C00000078003C000000FC007E000000FC007E000000FC007E000001FE00FF000001FE00FF000003FF01FF800003F + F01FB800003FF01FB800007F783F3C00007F383F1C0000FF383F1E0000FE1C7E0E0000FE1C7E0E0001FE1EFC0F0001FC0EFC + 070001FC0EFC070003F807F8038003F807F8038007F807F803C007F003F001C007F003F001C00FE007E000E0FFFE7FFC0FFE + FFFE7FFC0FFEFFFE7FFC0FFE> 48 27 -1 0 49.646] 119 @dc +[ 16 42 -3 0 19.094] 108 @dc +[<001FF00000FFFE0003F81F800FE003C01FC001C03F8001E03F8000E07F8000007F000000FF000000FF000000FF000000FF00 + 0000FFFFFFE0FFFFFFE0FF0007E0FF0007E0FF0007E07F0007E07F000FC03F800FC03F800FC01FC01F800FE03F0003F07E00 + 01FFF800003FE000> 32 27 -2 0 31.506] 101 @dc +[<003FC3FF8000FFF3FF8003F03FFF800FE01FF8001FC00FF8003F8007F8003F8003F8007F0003F8007F0003F800FF0003F800 + FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F8007F0003F8007F8003F800 + 3F8003F8003F8003F8001FC007F8000FE00FF80003F03FF80000FFFBF800001FE3F800000003F800000003F800000003F800 + 000003F800000003F800000003F800000003F800000003F800000003F800000003F800000003F800000003F80000003FF800 + 00003FF80000003FF800> 40 42 -2 0 38.189] 100 @dc +[<007FF00003FFFE000FC01F803F0007E07E0003F0FC0001F8F80000F8F80000F8F80000F8F80001F87C0001F87E0007F81FFF + FFF007FFFFF00FFFFFE01FFFFFC03FFFFF003FFFF8003E0000003C0000003C0000003800000018FF80001FFFE0000FC1F800 + 1F80FC003F80FE003F007E007F007F007F007F007F007F007F007F007F007F007F007F003F007E103F80FE7C1F80FC7C0FC1 + FE7C03FFE7FC00FF81F0> 32 40 -2 13 34.370] 103 @dc +[ 56 27 -3 0 57.283] 109 @dc +[<001F8000FFE001F8F003F87007F03807F03807F03807F03807F03807F03807F03807F00007F00007F00007F00007F00007F0 + 0007F00007F00007F00007F00007F00007F00007F000FFFFF0FFFFF01FFFF007F00003F00003F00001F00000F00000F00000 + F000007000007000007000007000> 24 38 -1 0 26.732] 116 @dc +[ 24 27 -2 0 27.114] 115 @dc +cmr10.329 @sf +[ 40 31 -2 0 41.666] 77 @dc +[ 24 32 -1 0 23.989] 107 @dc +[ 32 31 -2 0 32.196] 66 @dc +[<40201010080804040474FCFCF870> 8 14 -4 9 12.626] 44 @dc +[<0F800030E000407000F07800F83C00F83C00F83C00203C00003C00003C00003C00003C00003C00003C00003C00003C00003C + 00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00007C000FFFC0> 24 31 -2 0 23.358] 74 @dc +[<001FE0000070180001C0040003800200070001000E0000801E0000803C0000403C0000407C0000407800000078000000F800 + 0000F8000000F8000000F8000000F8000000F8000000F800000078000000780000407C0000403C0000403C0000C01E0000C0 + 0E0001C0070001C0038003C001C00DC0007030C0001FC040> 32 31 -3 0 32.828] 67 @dc +[<3F006180F0C0F060607000700070007000700070007000700070007000700070007000700070007000700070007000700070 + 007000F007F0007000000000000000000000000000E001F001F001F000E0> 16 40 2 9 13.889] 106 @dc +[ 16 31 -1 0 16.414] 73 @dc +[ 32 31 -2 0 35.353] 75 @dc +[ 32 31 -2 0 30.934] 80 @dc +[ 24 31 -2 0 28.408] 76 @dc +[ 24 20 -1 0 20.202] 122 @dc +[ 32 31 -1 0 34.090] 65 @dc +[ 16 2 -1 -9 15.151] 45 @dc +[ 32 31 -2 0 33.459] 82 @dc +[<07F000181C00200E00400F00F00780F80780F807C0F807C02007C00007C0000780000780000F00000E00001C0003F0000038 + 00001C00000E00000F00000F00000F80380780780780780F80780F00200E00181C0007F000> 24 29 -2 0 22.727] 51 @dc +[<03F0000C0C00300200600100600080C000C0C000C0C000C0C001C0C001C06003C0200F80103F000C7F0007FC0003F8000FF0 + 001FCC003F06003E03007803007001806001806001802001802003001006000C0C0003F000> 24 29 -2 0 22.727] 56 @dc +38 @bop1 +cmbx10.360 @sf +0 195 p (11.9) s +57 r (Windo) s +0 r 119 c +18 r (Seman) s +-1 r (tic) s +18 r (Strings) s +cmsy10.329 @sf +68 281 p 15 c +cmbx10.329 @sf +23 r (iconPixmapFile) s +cmr10.329 @sf +114 337 p (Names) s +18 r 97 c +17 r (\014le) s +18 r (con) s +0 r (taining) s +17 r (an) s +18 r (icon) s +18 r (pixmap) s +18 r (\(in) s +18 r (the) s +17 r (standard) s +18 r (X11) s +18 r (bitmap) s +18 r (format\).) s +29 r (Ov) s +-1 r (errides) s +114 394 p (the) s +15 r (pixmap) s +15 r (pro) s +0 r (vided) s +14 r 98 c +0 r 121 c +14 r (the) s +15 r (clien) s +0 r (t.) s +cmsy10.329 @sf +68 488 p 15 c +cmbx10.329 @sf +23 r (sup) s +1 r (erClass) s +cmr10.329 @sf +114 544 p (The) s +12 r (string) s +11 r (names) s +12 r 97 c +12 r (sup) s +2 r (erclass.) s +19 r (The) s +12 r (windo) s +-1 r 119 c +11 r (will) s +12 r (inherit) s +12 r (all) s +12 r (options) s +12 r (from) s +12 r (its) s +12 r (sup) s +1 r (erclass) s +12 r (unless) s +114 601 p (explicitly) s +15 r 111 c +0 r 118 c +-2 r (erridden.) s +cmbx10.432 @sf +0 744 p (12) s +69 r (Ac) s +-1 r (kno) s +-2 r (wledgemen) s +-2 r (ts) s +cmr10.329 @sf +0 845 p (Mik) s +0 r 101 c +15 r (Berman,) s +16 r (Mark) s +16 r (Biggers,) s +16 r (and) s +16 r (Jo) s +1 r 101 c +16 r (Camaratta) s +16 r (ha) s +-1 r 118 c +-1 r 101 c +15 r (shared) s +16 r (in) s +16 r (the) s +16 r (design) s +16 r (and) s +16 r (implemen) s +-1 r (tation) s +0 902 p (of) s +15 r (ma) s +3 r (jor) s +15 r (parts) s +15 r (of) s +15 r (the) s +15 r (system.) s +71 958 p (In) s +13 r (addition,) s +14 r (Kevin) s +13 r (Kelly) s +13 r (has) s +14 r 119 c +-1 r (ork) s +-1 r (ed) s +12 r (on) s +14 r (automatic) s +13 r (placemen) s +0 r 116 c +12 r (and) s +13 r (prorating,) s +14 r 80 c +0 r (ete) s +12 r (Lit) s +0 r (wino) s +-1 r (wicz) s +0 1015 p 119 c +0 r (ork) s +-2 r (ed) s +12 r (on) s +12 r (the) s +12 r (original) s +12 r (Andrew-based) s +13 r (clien) s +-1 r 116 c +12 r (in) s +-1 r (terface,) s +12 r (and) s +12 r (Adam) s +13 r (Ric) s +-1 r 104 c +-1 r (ter) s +11 r (help) s +2 r (ed) s +12 r (with) s +12 r (the) s +12 r (in) s +0 r (terface) s +0 1071 p (to) s +15 r (X11.) s +937 2828 p (38) s +@eop +37 @bop0 +cmbx10.329 @sf +[<03F8FF000FFEFF001F07F8003E01F8007E00F8007C00F8007C00F800FC00F800FC00F800FC00F800FC00F800FC00F800FC00 + F8007C00F8007C00F8007E00F8003E01F8001F83F8000FFEF80001F8F8000000F8000000F8000000F8000000F8000000F800 + 0000F8000000F8000000F8000000F8000000F8000007F8000007F800> 32 32 -2 0 29.040] 100 @dc +[ 40 31 -2 0 39.203] 82 @dc +[ 24 31 -2 0 19.823] 73 @dc +[<03FFFFC003FFFFC00007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007 + E0000007E0000007E0000007E0000007E0000007E0000007E000C007E006C007E006C007E006C007E006E007E00E6007E00C + 6007E00C7007E01C7C07E07C7FFFFFFC7FFFFFFC> 32 30 -2 0 36.362] 84 @dc +[<01F003F807CC0F860F860F860F860F860F800F800F800F800F800F800F800F800F800F80FFFCFFFC3F800F80078003800380 + 0380018001800180> 16 29 -1 0 20.328] 116 @dc +cmr10.329 @sf +[<70F8F8F8700000000000000000000070F8F8F870> 8 20 -4 0 12.626] 58 @dc +cmbx10.329 @sf +[ 40 31 -2 0 40.908] 78 @dc +cmr10.329 @sf +[<7FE3FF0007007000070070000700700007007000070070000700700007007000070070000700700007007000070070000700 + 7000070070000700700007007000070070000700700007007000FFFFFF800700700007007000070070000700700007007000 + 07007000070070000300F0300380F87801C0787800F06E30001F83E0> 32 32 0 0 26.515] 11 @dc +cmbx10.329 @sf +[ 40 31 -2 0 40.908] 72 @dc +cmr10.329 @sf +[ 32 31 -2 0 34.721] 68 @dc +cmbx10.329 @sf +[ 32 31 -2 0 37.183] 66 @dc +[<0007FC0600003FFF8E0000FE01FE0003F000FE0007E0007E000FC0007E001F80007E003F00007E003F00007E007F00007E00 + 7E00007E007E00007E00FE003FFFE0FE003FFFE0FE00000000FE00000000FE00000000FE00000000FE000000007E00000600 + 7E000006007F000006003F00000E003F00000E001F80001E000FC0001E0007E0003E0003F000FE0000FE03DE00003FFF0E00 + 0007FC0200> 40 31 -3 0 41.097] 71 @dc +[<01FF000FFFE03F01F878003C78003CF0001EF0001EF0001E70003E3C007C1FFFFC07FFF80FFFF01FFF801C00001800001800 + 0009FC000FFF000F07801E03C03E03E03E03E03E03E03E03E03E03E01E03DE0F079E07FFFE01FC3C> 24 30 -1 10 26.136] 103 @dc +[ 48 31 -2 0 49.620] 77 @dc +[<001C0000001C0000003E0000003E0000007F0000007F000000FF800000F9800001F9C00001F0C00001F0C00003E0600003E0 + 600007C0300007C030000F8018000F8018001F001C00FFE07F80FFE07F80> 32 20 -1 0 27.588] 118 @dc +cmbx10.360 @sf +[<01FF00000FFFE0001F00F0003C001C0078001C00F8000E00F0000E00F0000F00F0000F00F0001F00F0007F007801FF007803 + FE003C0FFE001F3FFC0007FFF80003FFF00007FFE0000FFF80001FFFE0001FF8F0003FE078003FC03C003F003C003E003C00 + 3C003C001C003C001C0078000E0078000701F00003FFE00000FF0000> 32 32 -2 0 28.642] 56 @dc +[ 24 34 -1 0 21.723] 73 @dc +[<7FFC007FFC000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0 + 000FC0000FC0000FC000FFFE00FFFE000FC0000FC0000FC0000FC0000FC0000FC0000FC1E00FC3F007E3F003E3F001F1F000 + FFE0001F80> 24 35 -2 0 17.503] 102 @dc +[<00001800000000003C00000000003C00000000007E00000000007E0000000000FF0000000000FF0000000000FF0000000001 + FD8000000001FD8000000003FCC000000003F8C000000007F8E000000007F0600000000FF0700000000FE0300000000FE030 + 0000001FE0180000001FC0180000003FC00C0000003F800C0000007F800E0000007F0006000000FF0007000000FE00030000 + 00FE0003000001FE0001800001FC0001800003FC0000C00003F80000C00007F80000E00007F00000F000FFFF800FFF00FFFF + 800FFF00> 48 34 -1 0 43.309] 86 @dc +[ 16 35 -2 0 15.912] 108 @dc +[<01FC3FE007FF3FE00FC1BF001F80FF001F807F001F803F001F803F001F803F001F803F001F803F001F803F001F803F001F80 + 3F001F803F001F803F001F803F001F803F001F803F001F803F001F803F00FF81FF00FF81FF00> 32 22 -3 0 31.824] 117 @dc +cmbx10.329 @sf +[ 32 32 -3 0 29.040] 104 @dc +cmr10.329 @sf +[<03F000061C000C06001807003803803803807003C07003C07003C0F003C0F003C0F003C0F00380F80380F80700F40600F21C + 00F1F000F000007000007000007800003803001807801C07800E0380070100018200007C00> 24 29 -2 0 22.727] 54 @dc +[<40201010080804040474FCFCF870> 8 14 -4 -18 12.626] 39 @dc +[ 24 29 -2 0 22.727] 50 @dc +[<03F0000E1C001C0E00380700380700700380700380700380F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003 + C0F003C0F003C0F003C0F003C07003807003807003803807003807001C0E000E1C0003F000> 24 29 -2 0 22.727] 48 @dc +cmbx10.329 @sf +[ 32 31 -2 0 31.438] 76 @dc +[<3FFC003FFC0007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C0 + 0007C000FFFC00FFFC0007C00007C00007C00007C00007C00007C3C007C7E003C7E003E7E001F3E000FFC0001F80> 24 32 -1 0 15.972] 102 @dc +cmr10.329 @sf +[<03000007800007800007800007800007800007800003800003800003800003800001800001800001C00000C00000C0000040 + 000060000020000010000010000008008004008004008002004001007FFF807FFF807FFFC0400000> 24 30 -3 0 22.727] 55 @dc +37 @bop1 +cmsy10.329 @sf +68 195 p 15 c +cmbx10.329 @sf +23 r (includeResClassInTitle) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 252 p (includeResClassInIconTitle) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 308 p (includeResNameInTitle) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 364 p (includeResNameInIconTitle) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 421 p (includeNameInTitle) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 477 p (includeNameInIconTitle) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 534 p (includeHostInTitle) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 590 p (includeHostInIconTitle) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 647 p (Determines) s +14 r (whether) s +14 r (the) s +15 r (manager) s +14 r (should) s +14 r (include) s +15 r (the) s +14 r (the) s +14 r (res) s +3 r 14 2 ru +14 r (class,) s +14 r (res) s +3 r 14 2 ru +13 r (name,) s +15 r (the) s +14 r (windo) s +0 r 119 c +13 r (or) s +114 703 p (icon) s +15 r (name,) s +15 r (and) s +15 r (the) s +15 r (host) s +15 r (name) s +16 r (in) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (or) s +15 r (icon) s +15 r (title.) s +20 r (But) s +15 r (see) s +16 r (just) s +15 r 98 c +1 r (elo) s +0 r 119 c +14 r (...) s +cmsy10.329 @sf +68 797 p 15 c +cmbx10.329 @sf +23 r (includeTitleInHeader) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 853 p (Determines) s +15 r (whether) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (title) s +15 r (should) s +15 r 98 c +2 r 101 c +15 r (displa) s +-1 r 121 c +-1 r (ed) s +14 r (in) s +15 r (the) s +16 r (windo) s +-1 r 119 c +15 r (header.) s +cmsy10.329 @sf +68 947 p 15 c +cmbx10.329 @sf +23 r (includeTitleInPixmapIcon) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 1004 p (Determine) s +13 r (whether) s +13 r (the) s +13 r (icon) s +13 r (title) s +13 r (should) s +13 r 98 c +2 r 101 c +13 r (dra) s +-1 r (wn) s +12 r (on) s +14 r (top) s +13 r (of) s +13 r (the) s +13 r (pixmap) s +13 r (icon) s +13 r (if) s +13 r (one) s +13 r (has) s +13 r 98 c +2 r (een) s +114 1060 p (supplied) s +15 r 98 c +0 r 121 c +14 r (either) s +15 r (the) s +15 r (clien) s +0 r 116 c +14 r (or) s +15 r (via) s +15 r (the) s +15 r (preferences) s +15 r (\014le.) s +cmsy10.329 @sf +68 1154 p 15 c +cmbx10.329 @sf +23 r (useBorders) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 1210 p (useGadgets) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 1267 p (useHeader) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 1323 p (useMo) s +-1 r 118 c +-1 r (eGadget) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +114 1380 p (Determines) s +15 r (whether) s +15 r (the) s +15 r 118 c +-1 r (arious) s +14 r (regions) s +15 r (of) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (should) s +15 r 98 c +1 r 101 c +16 r (dra) s +-1 r (wn.) s +cmbx10.360 @sf +0 1502 p (11.8) s +57 r (Windo) s +0 r 119 c +18 r (In) s +-1 r (terface) s +18 r 86 c +-3 r (alues) s +cmsy10.329 @sf +68 1587 p 15 c +cmbx10.329 @sf +23 r (headerHeigh) s +-1 r 116 c +cmr10.329 @sf +0 r 58 c +20 r (16) s +114 1644 p (The) s +15 r (heigh) s +0 r 116 c +14 r (of) s +15 r (the) s +15 r (windo) s +0 r (w's) s +14 r (header.) s +cmsy10.329 @sf +68 1738 p 15 c +cmbx10.329 @sf +23 r (iconResT) s +-3 r (op) s +cmr10.329 @sf +0 r 58 c +19 r 50 c +cmbx10.329 @sf +114 1794 p (iconResBottom) s +cmr10.329 @sf +0 r 58 c +20 r (10) s +cmbx10.329 @sf +114 1850 p (iconResLeft) s +cmr10.329 @sf +0 r 58 c +20 r 50 c +cmbx10.329 @sf +114 1907 p (iconResRigh) s +-1 r 116 c +cmr10.329 @sf +0 r 58 c +19 r (61) s +114 1963 p (Determines) s +15 r (where) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (resource) s +15 r (class) s +15 r (and) s +15 r (resource) s +16 r (name) s +15 r (app) s +1 r (ear) s +15 r (in) s +15 r (the) s +15 r (icon) s +cmsy10.329 @sf +68 2057 p 15 c +cmbx10.329 @sf +23 r (iconHostT) s +-3 r (op) s +cmr10.329 @sf +0 r 58 c +19 r (12) s +cmbx10.329 @sf +114 2114 p (iconHostBottom) s +cmr10.329 @sf +0 r 58 c +20 r (20) s +cmbx10.329 @sf +114 2170 p (iconHostLeft) s +cmr10.329 @sf +0 r 58 c +20 r 50 c +cmbx10.329 @sf +114 2227 p (iconHostRigh) s +-1 r 116 c +cmr10.329 @sf +0 r 58 c +19 r (61) s +114 2283 p (Determines) s +15 r (where) s +15 r (the) s +15 r (host) s +15 r (name) s +15 r (app) s +2 r (ears) s +15 r (in) s +15 r (the) s +15 r (icon.) s +cmsy10.329 @sf +68 2377 p 15 c +cmbx10.329 @sf +23 r (iconNameT) s +-3 r (op) s +cmr10.329 @sf +0 r 58 c +19 r (22) s +cmbx10.329 @sf +114 2433 p (iconNameBottom) s +cmr10.329 @sf +0 r 58 c +20 r (61) s +cmbx10.329 @sf +114 2490 p (iconNameLeft) s +cmr10.329 @sf +0 r 58 c +20 r 50 c +cmbx10.329 @sf +114 2546 p (iconNameRigh) s +-1 r 116 c +cmr10.329 @sf +0 r 58 c +19 r (61) s +114 2603 p (Determines) s +15 r (where) s +15 r (the) s +15 r (icon) s +15 r (name) s +15 r (app) s +2 r (ears) s +15 r (in) s +15 r (the) s +15 r (icon.) s +937 2828 p (37) s +@eop +36 @bop0 +cmbx10.360 @sf +[<00FF000003FFE00007C1F0000F00F8001F007C003E007E003E007E007E007F007E007F007E007F00FE007F00FE007F00FE00 + 7F00FE007F00FF007E00FF007E00FF807C00FE80F800FE7FF000FE3FC000FE0000007E0000007E0000007E0078003F00FC00 + 1F00FC001F00FC000F80FC0007C0780001F0380000FFF000001FC000> 32 32 -2 0 28.642] 54 @dc +cmbx10.329 @sf +[ 40 31 -2 0 40.087] 68 @dc +[<00018000300000000380003800000003C0007800000007C0007C00000007C0007C00000007E000FC0000000FE000FE000000 + 0FF001FE0000000FF001FE0000001FB001FB0000001F9803F30000003F9803F38000003F1803F18000003F0C07E18000007E + 0C07E0C000007E0E0FE0C000007E060FC0C00000FC060FC0600000FC031F80600001FC031F80700001F8031F80300001F801 + BF00300003F001BF00180003F001FF00180003F000FE00180007E000FE000C0007E000FE000C000FE000FC000E000FC000FC + 000E00FFFE0FFFC0FFE0FFFE0FFFC0FFE0> 56 31 -1 0 54.039] 87 @dc +cmr10.329 @sf +[<83F800CC0C00F00600E00300C00180C001808001C08001C08001C00001C00003C00003C0000780001F8003FF000FFE001FFC + 003FF0007F0000780000F00000F00000E00080E00080E00080E001806001803003803007801C198007E080> 24 31 -3 0 25.252] 83 @dc +cmbx10.329 @sf +[ 24 20 -1 0 23.232] 122 @dc +[ 32 31 -3 0 31.944] 90 @dc +cmr10.329 @sf +[<00FFE0000E00000E00000E00000E00000E00000E00000E00FFFFF0C00E00400E00200E00300E00100E00080E000C0E00040E + 00020E00010E00010E00008E00004E00006E00002E00001E00001E00000E00000600000600> 24 29 -1 0 22.727] 52 @dc +[<000400020000000C00030000000E00070000000E00070000001E00078000001F000F8000001F000F8000003F000FC000003C + 801E4000003C801E4000003C801E40000078403C20000078403C20000078403C200000F02078100000F02078100000F02078 + 100001E010F0080001E010F0080001E010F0080003C009F0040003C009E0040003C009E0040007800FE00200078007C00200 + 078007C002000F0007C001000F00078001000F00078003801F800FC007C0FFF07FF81FF0> 48 31 -1 0 46.716] 87 @dc +cmbx10.360 @sf +[<00F0000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000000F8000000F8000000F800000078 + 000000780000007C0000003C0000003C0000001C0000001E0000000E000000070000C0030000C0038000E001C0006000E000 + 600070007FFFF8007FFFF8007FFFFC003FFFFE003FFFFF003FFFFF003C00000030000000> 32 34 -3 0 28.642] 55 @dc +[<0007FE0000003FFFC00000FE07F00003F801FC0007F000FE000FE0007F001FC0003F801FC0003F803F80001FC07F80001FE0 + 7F80001FE07F00000FE0FF00000FF0FF00000FF0FF00000FF0FF00000FF0FF00000FF0FF00000FF0FF00000FF0FF00000FF0 + FF00000FF07F00000FE07F00000FE07F00000FE03F80001FC03F80001FC01F80001F801FC0003F800FE0007F0007F000FE00 + 03F801FC0000FE07F000003FFFC0000007FE0000> 40 34 -3 0 43.032] 79 @dc +[ 32 32 -2 10 31.824] 112 @dc +cmbx10.329 @sf +[<1E0000007F800000E1C00000C0E00000FC600000FC300000783000000018000000180000001C0000001C0000003E0000003E + 0000007F0000007F000000FF800000F9800001F9C00001F0C00001F0C00003E0600003E0600007C0300007C030000F801800 + 0F8018001F001C00FFE07F80FFE07F80> 32 29 -1 9 27.588] 121 @dc +[ 40 31 -2 0 40.971] 75 @dc +[<2000700018000C000E0006000600030003003B007F00FF00FF00FE007C003800> 16 16 -4 9 14.520] 44 @dc +[<001FF8000000FFFF000001F81F800007E007E0000FC003F0001F8001F8003F8001FC003F0000FC007F0000FE007F0000FE00 + 7E00007E00FE00007F00FE00007F00FE00007F00FE00007F00FE00007F00FE00007F00FE00007F00FE00007F00FE00007F00 + 7E00007E007E00007E007F0000FE003F0000FC001F0000F8001F8001F8000FC003F00007E007E00001F81F800000FFFF0000 + 001FF80000> 40 31 -3 0 39.266] 79 @dc +36 @bop1 +cmbx10.360 @sf +0 195 p (11.6) s +57 r (Windo) s +0 r 119 c +18 r (Seman) s +-1 r (tic) s +18 r 86 c +-3 r (alues) s +cmr10.329 @sf +0 281 p (These) s +15 r (options) s +15 r (initialize) s +15 r (windo) s +0 r 119 c +14 r (sizes.) s +21 r (All) s +15 r (sizes) s +15 r (include) s +15 r (space) s +15 r (for) s +15 r 98 c +2 r (orders) s +15 r (and) s +15 r (headers.) s +cmsy10.329 @sf +68 387 p 15 c +cmbx10.329 @sf +23 r (normalDesiredWidth) s +114 444 p (normalDesiredHeigh) s +-1 r 116 c +cmr10.329 @sf +114 500 p (Sp) s +1 r (eci\014es) s +16 r (the) s +16 r (initial) s +16 r (desired) s +16 r (windo) s +0 r 119 c +15 r (size.) s +23 r (Ov) s +0 r (errides) s +15 r (the) s +16 r (initial) s +16 r (windo) s +0 r 119 c +15 r (size) s +16 r (sp) s +1 r (eci\014ed) s +16 r 98 c +0 r 121 c +15 r (the) s +114 557 p (clien) s +-1 r (t.) s +cmsy10.329 @sf +68 650 p 15 c +cmbx10.329 @sf +23 r (zo) s +1 r (omDesiredWidth) s +114 707 p (zo) s +1 r (omDesiredHeigh) s +0 r 116 c +cmr10.329 @sf +114 763 p (Sp) s +1 r (eci\014es) s +15 r (the) s +15 r (desired) s +15 r (size) s +16 r (when) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (is) s +15 r (\014rst) s +15 r (zo) s +1 r (omed.) s +cmsy10.329 @sf +68 857 p 15 c +cmbx10.329 @sf +23 r (clien) s +-1 r (tMinWidth) s +114 914 p (clien) s +-1 r (tMinHeigh) s +-1 r 116 c +114 970 p (clien) s +-1 r (tMaxWidth) s +114 1026 p (clien) s +-1 r (tMaxHeigh) s +-1 r 116 c +cmr10.329 @sf +114 1083 p (Ov) s +-1 r (errides) s +15 r (the) s +15 r (minim) s +-1 r (um) s +15 r (and) s +15 r (maxm) s +-1 r (um) s +15 r (sizes) s +15 r (sp) s +1 r (eci\014ed) s +15 r 98 c +0 r 121 c +14 r (the) s +15 r (clien) s +0 r (t.) s +cmsy10.329 @sf +68 1177 p 15 c +cmbx10.329 @sf +23 r (userNormalMinWidth) s +114 1233 p (userNormalMinHeigh) s +-1 r 116 c +114 1290 p (userZo) s +1 r (omMinWidth) s +114 1346 p (userZo) s +1 r (omMinHeigh) s +0 r 116 c +cmr10.329 @sf +114 1403 p (Sp) s +1 r (eci\014es) s +12 r (the) s +12 r (initial) s +13 r (user) s +12 r (minim) s +0 r (um) s +11 r (size) s +12 r (when) s +13 r (the) s +12 r (windo) s +0 r 119 c +11 r (is) s +12 r (normal) s +13 r (\(unzo) s +1 r (omed\)) s +12 r (and) s +13 r (zo) s +1 r (omed.) s +cmsy10.329 @sf +68 1496 p 15 c +cmbx10.329 @sf +23 r (iconWidth) s +cmr10.329 @sf +0 r 58 c +20 r (64) s +cmbx10.329 @sf +114 1553 p (iconHeigh) s +-1 r 116 c +cmr10.329 @sf +0 r 58 c +19 r (64) s +114 1609 p (Width) s +15 r (and) s +15 r (heigh) s +-1 r 116 c +15 r (of) s +15 r (default) s +15 r (icons) s +15 r (\(pro) s +1 r (duced) s +15 r 98 c +0 r 121 c +14 r 82 c +-3 r (TL) s +14 r (when) s +15 r (no) s +15 r (pixmap) s +15 r (has) s +15 r 98 c +2 r (een) s +15 r (pro) s +-1 r (vided\).) s +cmbx10.360 @sf +0 1731 p (11.7) s +57 r (Windo) s +0 r 119 c +18 r (In) s +-1 r (terface) s +18 r (Options) s +cmsy10.329 @sf +68 1817 p 15 c +cmbx10.329 @sf +23 r (acceptButtonInBo) s +1 r (dy) s +cmr10.329 @sf +0 r 58 c +21 r (on) s +cmbx10.329 @sf +114 1873 p (acceptButtonInHeader) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 1930 p (acceptButtonInIcon) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 1986 p (Determines) s +16 r (whether) s +15 r 97 c +16 r (button) s +16 r (press) s +16 r (can) s +16 r (ev) s +0 r (er) s +15 r 98 c +1 r 101 c +16 r (passed) s +16 r (to) s +16 r (the) s +15 r (clien) s +0 r 116 c +15 r (when) s +16 r (the) s +16 r 112 c +1 r (oin) s +0 r (ter) s +15 r (is) s +16 r (in) s +114 2043 p (the) s +15 r (named) s +15 r (region.) s +cmsy10.329 @sf +68 2136 p 15 c +cmbx10.329 @sf +23 r (acceptKeyInBo) s +1 r (dy) s +cmr10.329 @sf +0 r 58 c +21 r (on) s +cmbx10.329 @sf +114 2193 p (acceptKeyInHeader) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 2249 p (acceptKeyInGadget) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 2306 p (acceptKeyInBorder,) s +cmr10.329 @sf +17 r 58 c +20 r (on) s +cmbx10.329 @sf +114 2362 p (acceptKeyInIcon) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 2419 p (Determines) s +15 r (whether) s +15 r 97 c +15 r 107 c +0 r (ey) s +14 r (press) s +15 r (can) s +15 r (ev) s +0 r (er) s +14 r 98 c +2 r 101 c +15 r (passed) s +15 r (to) s +15 r (the) s +15 r (clien) s +0 r 116 c +14 r (when) s +15 r (the) s +16 r 112 c +1 r (oin) s +0 r (ter) s +14 r (is) s +15 r (in) s +15 r (the) s +114 2475 p (named) s +15 r (region.) s +cmsy10.329 @sf +68 2569 p 15 c +cmbx10.329 @sf +23 r (autoPlaceOnClien) s +-1 r (tOp) s +1 r (en) s +cmr10.329 @sf +0 r 58 c +18 r (on) s +11 r (Determines) s +10 r (whether) s +11 r (automatic) s +11 r (or) s +10 r (man) s +0 r (ual) s +10 r (placemen) s +-1 r 116 c +10 r (is) s +11 r (used) s +114 2625 p (when) s +15 r (the) s +15 r (clien) s +0 r 116 c +14 r (op) s +1 r (ens) s +15 r (the) s +15 r (windo) s +0 r (w.) s +937 2828 p (36) s +@eop +35 @bop0 +cmbx10.329 @sf +[<81FF00E7FFC0FE01E0F80070E00078E00038C0003CC0003CC0003C00003C00007C0000FC0007F800FFF807FFF00FFFF01FFF + E03FFF807FFE007FC000FC0000F80000F00018F00018F000387000387000783800F81E03F80FFF3803FC08> 24 31 -3 0 29.040] 83 @dc +[ 32 32 -2 0 27.588] 107 @dc +[<0003FC0000001FFF8000007E03C00000FC00F00001F800300003F000380003F000180007E0001C0007E0000C0007E0000C00 + 07E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C00 + 07E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C00FFFF01FFE0 + FFFF01FFE0> 40 31 -2 0 40.213] 85 @dc +[ 40 31 -2 0 39.519] 65 @dc +[ 329 ] /cmcsc10.329 @newfont +cmcsc10.329 @sf +[<000600018000000600018000000600018000000F0003C000000F0003C000000F0003C000001E8007A000001E8007A000001E + 8007A000003C400F1000003C400F1000003C400F10000078201E08000078201E08000078201E080000F0103C040000F0103C + 040000F0103C040001E00878020001E00878020003E00878030003C004F0010003C004F0010007C004F00180078003E00080 + 078003E000800F8003E000C00F0003C000400F0003C000E01F8007E001F0FFF03FFC07FC> 48 31 -2 0 50.251] 87 @dc +[ 40 31 -3 0 44.948] 77 @dc +[ 32 31 -3 0 36.994] 78 @dc +[<001FE0000070380001C00E00078007800F0003C00F0003C01E0001E03C0000F03C0000F07C0000F87C0000F8F800007CF800 + 007CF800007CF800007CF800007CF800007CF800007CF800007C78000078780000787C0000F83C0000F03C0000F01E0001E0 + 0E0001C00F0003C00380070001C00E0000703800001FE000> 32 31 -4 0 38.383] 79 @dc +[ 40 31 -3 0 36.362] 82 @dc +[ 32 31 -3 0 36.994] 65 @dc +[ 32 31 -3 0 31.060] 76 @dc +[ 32 31 -3 0 36.994] 72 @dc +[ 16 31 -2 0 18.434] 73 @dc +[<03FFFF00000FC000000780000007800000078000000780000007800000078000000780000007800000078000000780000007 + 8000000780000007800000078000000780000007800000078000000780000007800080078004800780048007800480078004 + C007800C400780084007800860078018780780787FFFFFF8> 32 31 -3 0 35.731] 84 @dc +[<81FC00CE0300F00180E000C0C000E0C000608000708000708000700000700000F00000F00003E0000FE001FFC007FF801FFF + 003FFC007F80007C0000F00000F00000E00020E00020E000206000606000603000E01801E00C0E6003F020> 24 31 -4 0 27.777] 83 @dc +cmr10.329 @sf +[<381C7C3EFC7EFC7EB85C804080408040402040202010201010080804> 16 14 -5 -18 22.727] 92 @dc +[<402020101008100808040804040204020402743AFC7EFC7EF87C7038> 16 14 -2 -18 22.727] 34 @dc +cmbx10.329 @sf +[<0007FF000007FF000000F8000000F8000000F8000000F8000000F8000000F8000000F80003F8F8000FFEF8001F87F8003F01 + F8007E00F8007E00F8007C00F800FC00F800FC00F800FC00F800FC00F800FC00F800FC00F8007C00F8007E00F8003E01F800 + 3F01F8001F87780007FE380001F81800> 32 29 -2 9 27.588] 113 @dc +cmr10.329 @sf +[<003FF800038000038000038000038000038000038000038000038003E3800E13801C0B80380780380380780380700380F003 + 80F00380F00380F00380F00380F003807003807803803803803C07801C058006198003E080> 24 29 -2 9 23.989] 113 @dc +cmbx10.329 @sf +[<387CFEFEFE7C38> 8 7 -4 0 14.520] 46 @dc +[ 32 31 -2 0 34.342] 69 @dc +cmr10.329 @sf +[<07E000181C00200E00400700400780E00380F003C0F003C07003C00003C00003C00003C0000380000380100700180600160C + 0011F0001000001000001000001000001000001000001FE0001FF8001FFC001FFE00180300> 24 29 -2 0 22.727] 53 @dc +35 @bop1 +cmsy10.329 @sf +68 195 p 15 c +cmbx10.329 @sf +23 r (forceShrinkOnUnzo) s +1 r (om) s +cmr10.329 @sf +0 r 58 c +21 r (on) s +cmbx10.329 @sf +114 252 p (forceShrinkOnAutoUnzo) s +1 r (om) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 308 p (When) s +16 r 97 c +17 r (windo) s +-1 r 119 c +16 r (is) s +16 r (unzo) s +2 r (omed,) s +16 r (determines) s +17 r (whether) s +16 r (it) s +17 r (is) s +16 r (to) s +17 r 98 c +1 r 101 c +16 r (shrunk) s +17 r (to) s +16 r (its) s +17 r (normal) s +16 r (desired) s +114 364 p (size.) s +cmsy10.329 @sf +68 456 p 15 c +cmbx10.329 @sf +23 r (ignoreInitialP) s +-1 r (ositionHin) s +-1 r (ts) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 513 p (ignoreInitialSizeHin) s +-1 r (ts) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 569 p (ignoreP) s +-1 r (ositionHin) s +-1 r (ts) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 626 p (ignoreSizeHin) s +-1 r (ts) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +114 682 p (Determines) s +15 r (whether) s +15 r (to) s +15 r (use) s +15 r (the) s +15 r (size) s +16 r (and) s +15 r 112 c +1 r (ositions) s +15 r (hin) s +0 r (ts) s +14 r (pro) s +0 r (vided) s +14 r (in) s +cmcsc10.329 @sf +114 739 p (WM) s +3 r 15 2 ru +15 r (NORMAL) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +0 r 46 c +cmsy10.329 @sf +68 831 p 15 c +cmbx10.329 @sf +23 r (listenerTiedT) s +-3 r (oZo) s +0 r (om) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 887 p 65 c +14 r (windo) s +-1 r 119 c +13 r (with) s +14 r (listener) s +15 r (tied) s +14 r (to) s +14 r (zo) s +1 r (om) s +14 r (is) s +14 r (automatically) s +14 r (zo) s +1 r (omed) s +14 r (when) s +14 r (it) s +14 r 98 c +2 r (ecomes) s +14 r (the) s +14 r (listener,) s +114 943 p (and) s +15 r (is) s +15 r (automatically) s +15 r (unzo) s +1 r (omed) s +16 r (when) s +15 r (it) s +15 r (loses) s +15 r (the) s +15 r (listener.) s +cmsy10.329 @sf +68 1035 p 15 c +cmbx10.329 @sf +23 r (noteListener) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 1092 p (Op) s +1 r (en) s +13 r (windo) s +0 r (ws) s +12 r (are) s +14 r (ordered) s +13 r (in) s +14 r (terms) s +13 r (of) s +13 r (most) s +14 r (recen) s +0 r 116 c +12 r (use) s +13 r (for) s +14 r 97 c +13 r 118 c +-1 r (ariet) s +-2 r 121 c +13 r (of) s +13 r (reasons.) s +20 r 65 c +13 r (windo) s +0 r 119 c +12 r (is) s +114 1148 p (\\used") s +12 r (when) s +12 r (it) s +13 r (is) s +12 r (op) s +1 r (ened.) s +20 r (This) s +12 r (option) s +12 r (determines) s +13 r (whether) s +12 r 98 c +1 r (ecoming) s +13 r (the) s +12 r (listener) s +12 r (constitutes) s +114 1205 p (\\use") s +15 r (as) s +15 r 119 c +0 r (ell.) s +cmsy10.329 @sf +68 1297 p 15 c +cmbx10.329 @sf +23 r (preferPreviousIconP) s +-1 r (osition) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 1353 p (When) s +14 r (the) s +14 r (icon) s +14 r (is) s +14 r (placed,) s +15 r (prefer) s +14 r (placing) s +14 r (it) s +14 r (as) s +14 r (near) s +15 r (to) s +14 r (its) s +14 r (previous) s +14 r (lo) s +1 r (cation) s +15 r (as) s +14 r 112 c +1 r (ossible) s +14 r (within) s +114 1409 p (the) s +15 r (constrain) s +0 r (ts) s +14 r (of) s +15 r (the) s +15 r (icon) s +15 r (area) s +15 r (and) s +cmbx10.329 @sf +15 r (iconPlacemen) s +0 r 116 c +cmr10.329 @sf +0 r 46 c +cmsy10.329 @sf +68 1501 p 15 c +cmbx10.329 @sf +23 r (requirePreviousIconP) s +-1 r (osition) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 1558 p (When) s +14 r (the) s +14 r (icon) s +13 r (is) s +14 r (placed,) s +15 r (try) s +14 r (\014rst) s +13 r (to) s +14 r (place) s +14 r (it) s +14 r (at) s +14 r (its) s +14 r (previous) s +14 r (icon) s +14 r 112 c +1 r (osition,) s +14 r (ev) s +0 r (en) s +13 r (if) s +14 r (that) s +14 r (is) s +14 r (not) s +114 1614 p (within) s +15 r (the) s +15 r (constrain) s +0 r (ts) s +14 r (of) s +15 r (the) s +15 r (icon) s +15 r (area) s +15 r (and) s +cmbx10.329 @sf +16 r (iconPlacemen) s +-1 r 116 c +cmr10.329 @sf +0 r 46 c +cmsy10.329 @sf +68 1706 p 15 c +cmbx10.329 @sf +23 r (preferPreviousP) s +-1 r (osition) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 1763 p (requirePreviousP) s +-1 r (osition) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +114 1819 p (When) s +19 r 97 c +20 r (windo) s +-1 r 119 c +19 r (is) s +19 r (automatically) s +20 r (placed,) s +20 r (determines) s +20 r (whether) s +19 r (it) s +20 r (prefers) s +19 r (or) s +19 r (requires) s +20 r (to) s +19 r 98 c +2 r 101 c +114 1876 p (reop) s +1 r (ened) s +15 r (at) s +15 r (its) s +15 r (previous) s +16 r 112 c +1 r (osition.) s +cmsy10.329 @sf +68 1967 p 15 c +cmbx10.329 @sf +23 r (requireMan) s +-1 r (ualClose) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 2024 p (If) s +12 r (on,) s +13 r (then) s +12 r (the) s +12 r (windo) s +0 r 119 c +11 r (ma) s +0 r 121 c +11 r (not) s +12 r 98 c +1 r 101 c +12 r (closed) s +12 r (as) s +13 r 97 c +12 r (side) s +12 r (e\013ect) s +12 r (of) s +12 r (an) s +12 r (op) s +2 r (eration) s +12 r (on) s +12 r (another) s +12 r (windo) s +0 r (w.) s +cmsy10.329 @sf +68 2116 p 15 c +cmbx10.329 @sf +23 r (sa) s +-1 r 118 c +-1 r (eInLa) s +-1 r 121 c +-2 r (out) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +114 2172 p (Determines) s +17 r (whether) s +17 r (an) s +16 r (en) s +0 r (try) s +16 r (for) s +17 r (this) s +17 r (windo) s +0 r 119 c +16 r (is) s +17 r (sa) s +-1 r 118 c +-1 r (ed) s +16 r (in) s +cmbx10.329 @sf +17 r (.rtl.la) s +0 r 121 c +-2 r (out) s +cmr10.329 @sf +16 r (when) s +17 r 97 c +17 r (Sa) s +0 r 118 c +-2 r 101 c +16 r (La) s +0 r 121 c +-1 r (out) s +114 2229 p (op) s +1 r (eration) s +15 r (is) s +15 r (done.) s +cmsy10.329 @sf +68 2321 p 15 c +cmbx10.329 @sf +23 r (zo) s +1 r (omF) s +-3 r (ullExplicit) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 2377 p (zo) s +1 r (omF) s +-3 r (ullHeigh) s +-2 r 116 c +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 2433 p (zo) s +1 r (omF) s +-3 r (ullWidth) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +114 2490 p (Determines) s +18 r (whether) s +19 r (zo) s +1 r (oming) s +18 r (alw) s +0 r 97 c +-1 r (ys) s +17 r (causes) s +19 r (the) s +18 r (windo) s +0 r 119 c +17 r (to) s +19 r (gro) s +0 r 119 c +17 r (to) s +19 r (the) s +18 r (full) s +19 r (width) s +18 r (and) s +19 r (or) s +114 2546 p (heigh) s +-1 r 116 c +15 r (of) s +15 r (the) s +15 r (desktop.) s +cmsy10.329 @sf +68 2638 p 15 c +cmbx10.329 @sf +23 r (zo) s +1 r (omOnOp) s +2 r (en) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 2695 p (If) s +15 r (set,) s +15 r (then) s +15 r (automatically) s +15 r (zo) s +2 r (oms) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (eac) s +-1 r 104 c +15 r (time) s +15 r (it) s +15 r (is) s +15 r (op) s +1 r (ened.) s +937 2828 p (35) s +@eop +34 @bop0 +cmbx10.360 @sf +[<03FC000FFF001C0FC03003E06003F0F801F8FC01F8FC01FCFC01FCFC01FC7801FC0001FC0001FC0001F80001F81801F01C03 + F01E07E01FFF8019FE001800001800001800001800001FF8001FFE001FFF001FFFC01FFFE01FFFE01E00F0100030> 24 32 -3 0 28.642] 53 @dc +cmbx10.329 @sf +[ 16 4 -1 -8 17.424] 45 @dc +[<0030018000007803C000007803C000007803C00000FC07E00000FC07E00001F60FB00001F60F300001F60F300003E31E1800 + 03E31E180007C1BE0C0007C1BC0C0007C1BC0C000F80F806000F80F806001F00F803001F00F00700FFE7FE1FE0FFE7FE1FE0> 40 20 -1 0 37.751] 119 @dc +cmr10.329 @sf +[<000FC000003830000060080000E0040001C0040003C002000380020007800100078001000780010007800100078001000780 + 0100078001000780010007800100078001000780010007800100078001000780010007800100078001000780010007800100 + 078001000780010007800100078003800FC007C0FFFC3FF8> 32 31 -2 0 34.090] 85 @dc +cmbx10.329 @sf +[<3FF9FFC03FF9FFC007C03E0007C03E0007C03E0007C03E0007C03E0007C03E0007C03E0007C03E0007C03E0007C03E0007C0 + 3E0007C03E0007C03E0007C03E0007C03E0007C03E00FFFFFE00FFFFFE0007C1FE0007C0000007C0000007C0000007C03800 + 07C07C0007C07C0003E07C0001E07C0000F81C00007FF800000FE000> 32 32 0 0 29.040] 12 @dc +34 @bop1 +cmr10.329 @sf +114 195 p (If) s +cmbx10.329 @sf +14 r (useIconArea) s +cmr10.329 @sf +15 r (is) s +15 r (set,) s +15 r (these) s +15 r (sp) s +1 r (ecify) s +15 r (the) s +15 r (preferred) s +14 r (area) s +15 r (of) s +15 r (the) s +15 r (ro) s +1 r (ot) s +15 r (in) s +15 r (whic) s +0 r 104 c +13 r (icons) s +15 r (are) s +15 r (to) s +15 r 98 c +1 r 101 c +114 252 p (placed.) s +20 r (There) s +15 r (are) s +15 r (no) s +15 r (default) s +15 r 118 c +-1 r (alues.) s +cmbx10.360 @sf +0 373 p (11.5) s +57 r (Windo) s +0 r 119 c +18 r (Seman) s +-1 r (tic) s +18 r (Options) s +cmsy10.329 @sf +68 459 p 15 c +cmbx10.329 @sf +23 r (aggressiv) s +-1 r (elyRep) s +1 r (opulate) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 516 p (Determines) s +16 r (whether) s +17 r (this) s +17 r (windo) s +0 r 119 c +16 r (is) s +17 r (to) s +16 r 98 c +2 r 101 c +16 r (aggressiv) s +0 r (ely) s +16 r (rep) s +1 r (opulated) s +17 r (if) s +17 r (the) s +17 r (global) s +17 r (option) s +cmbx10.329 @sf +16 r (al-) s +114 572 p (lo) s +-1 r (wAggressiv) s +-1 r (eRep) s +0 r (opulation) s +cmr10.329 @sf +15 r (allo) s +0 r (ws) s +14 r (it.) s +cmsy10.329 @sf +68 666 p 15 c +cmbx10.329 @sf +23 r (allo) s +-1 r (wShrinkOnUnzo) s +1 r (om) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 722 p (allo) s +-1 r (wShrinkOnAutoUnzo) s +1 r (om) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 779 p (Determines) s +17 r (whether) s +18 r (the) s +17 r (windo) s +0 r 119 c +16 r (is) s +18 r (allo) s +0 r 119 c +-2 r (ed) s +17 r (to) s +17 r 98 c +2 r 101 c +17 r (shrunk) s +18 r (when) s +17 r (it) s +18 r (is) s +17 r (unzo) s +1 r (omed) s +18 r (in) s +17 r (order) s +18 r (to) s +114 835 p (allo) s +-1 r 119 c +14 r (adjacen) s +0 r 116 c +14 r (windo) s +0 r (ws) s +14 r (to) s +15 r 98 c +2 r 101 c +15 r (enlarged) s +15 r (bac) s +-1 r 107 c +15 r (to) s +15 r (their) s +15 r (desired) s +15 r (size) s +15 r (or) s +15 r (to) s +15 r (allo) s +0 r 119 c +14 r (windo) s +0 r (ws) s +14 r (to) s +15 r 98 c +1 r 101 c +114 892 p (rep) s +1 r (opulated.) s +cmsy10.329 @sf +68 985 p 15 c +cmbx10.329 @sf +23 r (allo) s +-1 r (wZo) s +1 r (omClose) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 1042 p (Determines) s +16 r (whether) s +16 r (other) s +17 r (windo) s +0 r (ws) s +15 r (are) s +16 r (allo) s +0 r 119 c +-1 r (ed) s +15 r (to) s +17 r 98 c +1 r 101 c +16 r (closed) s +17 r (in) s +16 r (order) s +16 r (to) s +17 r (allo) s +0 r 119 c +15 r (this) s +16 r (windo) s +0 r 119 c +114 1098 p (to) s +15 r 98 c +1 r 101 c +15 r (zo) s +1 r (omed.) s +cmsy10.329 @sf +68 1192 p 15 c +cmbx10.329 @sf +23 r (autoOp) s +1 r (enOnCreate) s +cmr10.329 @sf +0 r 58 c +21 r (on) s +114 1249 p (Determines) s +16 r (whether) s +16 r (the) s +16 r (windo) s +0 r 119 c +15 r (is) s +17 r (to) s +16 r 98 c +1 r 101 c +16 r (op) s +2 r (ened) s +16 r (automatically) s +16 r (when) s +16 r (it) s +17 r (is) s +16 r (created.) s +24 r (Used) s +16 r (if) s +cmcsc10.329 @sf +114 1305 p (WM) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +17 r (indicates) s +16 r (Don) s +0 r (tCareState) s +16 r (\(or) s +17 r (if) s +cmbx10.329 @sf +17 r (initial) s +3 r 16 2 ru +16 r (state) s +cmr10.329 @sf +16 r (is) s +17 r (not) s +17 r (pro) s +0 r (vided\)) s +16 r (and) s +17 r (if) s +16 r (there) s +17 r (is) s +114 1362 p (no) s +15 r (matc) s +0 r (hing) s +14 r (la) s +-1 r 121 c +-1 r (out.) s +cmsy10.329 @sf +68 1455 p 15 c +cmbx10.329 @sf +23 r (autoResatisfyOnResetMinmax) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 1512 p (When) s +16 r 97 c +16 r (clien) s +-1 r 116 c +15 r (resets) s +16 r (the) s +16 r (clien) s +0 r 116 c +15 r (minim) s +0 r (um) s +15 r (or) s +16 r (maxim) s +-1 r (um) s +15 r (size,) s +17 r (determines) s +16 r (whether) s +16 r (or) s +16 r (not) s +15 r (the) s +114 1568 p (windo) s +-1 r 119 c +16 r (should) s +17 r 99 c +0 r (hange) s +16 r (size) s +17 r (immediately) s +17 r (if) s +17 r (necessary) s +-3 r 44 c +17 r (or) s +17 r 119 c +-1 r (ait) s +16 r (un) s +0 r (til) s +16 r (the) s +17 r (windo) s +0 r 119 c +16 r (is) s +17 r (op) s +1 r (erated) s +114 1625 p (up) s +1 r (on.) s +cmsy10.329 @sf +68 1718 p 15 c +cmbx10.329 @sf +23 r (considerF) s +-3 r (orRep) s +0 r (opulation) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 1775 p (Determines) s +15 r (whether) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (is) s +15 r (to) s +15 r 98 c +2 r 101 c +15 r (considered) s +15 r (for) s +15 r (rep) s +1 r (opulation) s +cmsy10.329 @sf +68 1869 p 15 c +cmbx10.329 @sf +23 r (enforceClien) s +-1 r (tMinim) s +-1 r (ums) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +cmbx10.329 @sf +114 1925 p (enforceClien) s +-1 r (tMaxim) s +-1 r (ums) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +114 1982 p (Determines) s +15 r (whether) s +15 r (minim) s +0 r (ums) s +14 r (and) s +15 r (maxim) s +0 r (ums) s +14 r (set) s +15 r 98 c +0 r 121 c +14 r (the) s +15 r (clien) s +0 r 116 c +14 r (are) s +15 r (to) s +15 r 98 c +2 r 101 c +15 r (enforced) s +15 r (or) s +15 r (not.) s +cmsy10.329 @sf +68 2075 p 15 c +cmbx10.329 @sf +23 r (exp) s +1 r (ensiv) s +0 r (eT) s +-4 r (oRedra) s +-2 r 119 c +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +114 2132 p (The) s +15 r (system) s +15 r (tries) s +15 r (to) s +15 r 97 c +0 r 118 c +-1 r (oid) s +14 r (ha) s +0 r (ving) s +14 r (side) s +15 r (e\013ects) s +15 r (up) s +1 r (on) s +15 r (windo) s +0 r (ws) s +14 r (whic) s +0 r 104 c +14 r (are) s +15 r (exp) s +2 r (ensiv) s +-1 r 101 c +15 r (to) s +15 r (redra) s +-1 r 119 c +cmsy10.329 @sf +68 2226 p 15 c +cmbx10.329 @sf +23 r (\014xedSize) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 2282 p (\014xedHeigh) s +-1 r 116 c +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 2339 p (\014xedWidth) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 2395 p (If) s +18 r 97 c +19 r (windo) s +0 r 119 c +18 r (has) s +19 r (its) s +18 r (width) s +19 r (or) s +19 r (heigh) s +0 r 116 c +17 r (\(size) s +19 r (means) s +19 r 98 c +1 r (oth) s +19 r (width) s +19 r (and) s +19 r (heigh) s +-1 r (t\)) s +18 r (\014xed,) s +20 r (then) s +19 r (that) s +114 2452 p (dimension) s +16 r (cannot) s +17 r 98 c +1 r 101 c +17 r 99 c +0 r (hanged) s +15 r (as) s +17 r 97 c +16 r (side) s +17 r (e\013ect) s +17 r (of) s +16 r (an) s +17 r (op) s +1 r (eration) s +17 r (on) s +16 r (another) s +17 r (windo) s +0 r (w,) s +16 r (and) s +16 r (the) s +114 2508 p (windo) s +-1 r 119 c +11 r (cannot) s +12 r 98 c +1 r 101 c +11 r (automatically) s +12 r (shrunk) s +12 r (in) s +11 r (that) s +12 r (dimension) s +11 r (when) s +12 r (it) s +12 r (is) s +11 r 98 c +1 r (eing) s +12 r (placed) s +12 r (or) s +11 r (resized.) s +cmsy10.329 @sf +68 2602 p 15 c +cmbx10.329 @sf +23 r (\014xedCompletely) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 2658 p 65 c +15 r (windo) s +0 r 119 c +14 r (whic) s +-1 r 104 c +15 r (is) s +15 r (\014xed) s +15 r (completely) s +15 r (has) s +15 r (all) s +15 r (of) s +15 r (its) s +16 r (edges) s +15 r (\014xed.) s +937 2828 p (34) s +@eop +33 @bop0 +cmr10.329 @sf +[ 48 1 0 -12 45.454] 124 @dc +cmbx10.360 @sf +[<01FFFF0001FFFF000007E0000007E0000007E0000007E0000007E0000007E0000007E000FFFFFF00FFFFFF00E003E0007003 + E0003803E0001803E0000C03E0000E03E0000703E0000303E0000183E00001C3E00000E3E0000073E0000033E000001BE000 + 001FE000000FE0000007E0000003E0000003E0000001E0000000E000> 32 32 -2 0 28.642] 52 @dc +[<0001FF8060001FFFE1E0007F8073E001FC001FE003F8000FE007E0000FE00FE0000FE01FC0000FE03F80000FE03F80000FE0 + 7F80000FE07F00000FE07F00000FE0FF0007FFFEFF0007FFFEFF00000000FF00000000FF00000000FF00000000FF00000000 + FF000000007F000000607F000000607F800000603F800000E03F800000E01FC00001E00FC00001E007E00003E003F80007E0 + 01FC001FE0007F8079E0001FFFE0E00001FF0020> 40 34 -3 0 45.038] 71 @dc +[<180FE0001C3FFC001E707E001FC01F001F800F801F800FC01F8007C01F8007C01F8007E01F8007E01F8007E01F8007E01F80 + 07E01F8007E01F8007E01F8007C01F800FC01F800F801FC01F001FF03E001FBFFC001F87F0001F8000001F8000001F800000 + 1F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800000FF800000FF800000> 32 35 -2 0 31.824] 98 @dc +cmbx10.329 @sf +[<181F80001C7FE0001EC1F8001F807C001F007C001F003E001F003E001F003F001F003F001F003F001F003F001F003F001F00 + 3F001F003E001F003E001F007E001F807C001FE0F8001F7FF0001F1FC0001F0000001F0000001F0000001F0000001F000000 + 1F0000001F0000001F0000001F0000001F000000FF000000FF000000> 32 32 -2 0 29.040] 98 @dc +33 @bop1 +cmbx10.329 @sf +114 195 p (resizeInSideBorder) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 252 p (resizeInMo) s +-1 r 118 c +-1 r (eGadget) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 308 p (resizeInZo) s +1 r (omGadget) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 364 p (Determines) s +16 r (whether) s +17 r (the) s +16 r (appropriate) s +17 r (mouse) s +16 r (clic) s +0 r (ks) s +16 r (in) s +16 r (the) s +17 r (named) s +16 r (regions) s +17 r (initiate) s +16 r (the) s +17 r (Resize) s +114 421 p (op) s +1 r (eration.) s +cmsy10.329 @sf +68 515 p 15 c +cmbx10.329 @sf +23 r (sho) s +-1 r (wListenerInBorders) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 571 p (sho) s +-1 r (wListenerInHeader) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +cmbx10.329 @sf +114 628 p (sho) s +-1 r (wF) s +-4 r 111 c +0 r (cusInBorders) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 684 p (sho) s +-1 r (wF) s +-4 r 111 c +0 r (cusInHeader) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 741 p (When) s +14 r 97 c +15 r (windo) s +0 r 119 c +13 r 98 c +2 r (ecomes) s +14 r (the) s +15 r (listener) s +14 r (or) s +15 r (fo) s +1 r (cus,) s +15 r (either) s +15 r (the) s +14 r (header) s +15 r (or) s +15 r 98 c +1 r (order) s +15 r (can) s +14 r 98 c +1 r 101 c +15 r (rev) s +0 r (ersed.) s +cmsy10.329 @sf +68 834 p 15 c +cmbx10.329 @sf +23 r (useCornerBorders) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 891 p (Determines) s +18 r (whether) s +18 r (the) s +17 r (corner) s +18 r (windo) s +0 r 119 c +17 r 98 c +1 r (orders) s +18 r (are) s +18 r (activ) s +0 r 101 c +17 r 124 c +18 r (essen) s +0 r (tially) s +16 r (con) s +0 r (trols) s +17 r (whether) s +114 947 p (corner) s +15 r (resizing) s +15 r (is) s +15 r (allo) s +0 r 119 c +-1 r (ed) s +14 r (without) s +15 r (the) s +15 r (men) s +0 r (u.) s +cmsy10.329 @sf +68 1041 p 15 c +cmbx10.329 @sf +23 r (useIconArea) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 1098 p (If) s +15 r (on,) s +15 r (then) s +15 r (the) s +cmbx10.329 @sf +15 r (iconArea...) s +cmr10.329 @sf +20 r (options) s +16 r (sp) s +1 r (ecify) s +15 r 97 c +15 r (preferred) s +15 r (area) s +15 r (for) s +16 r (icons.) s +cmsy10.329 @sf +68 1191 p 15 c +cmbx10.329 @sf +23 r (useIcons) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 1248 p (If) s +15 r (on,) s +15 r (closed) s +15 r (windo) s +0 r (ws) s +14 r (are) s +15 r (represen) s +0 r (ted) s +14 r 98 c +0 r 121 c +14 r (icons.) s +cmsy10.329 @sf +68 1342 p 15 c +cmbx10.329 @sf +23 r (useR) s +-1 r (tlIcon) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 1398 p (If) s +20 r (on) s +21 r (and) s +20 r (icons) s +21 r (are) s +20 r (in) s +21 r (use,) s +21 r (then) s +21 r 97 c +20 r (sp) s +2 r (ecial) s +20 r 82 c +-3 r (TL) s +20 r (icon) s +20 r (is) s +21 r (visible) s +20 r (with) s +21 r (sp) s +1 r (ecial) s +21 r (meanings) s +20 r (for) s +114 1455 p (windo) s +-1 r 119 c +15 r (clic) s +-1 r (ks.) s +cmsy10.329 @sf +68 1548 p 15 c +cmbx10.329 @sf +23 r (zo) s +1 r (omInHeader) s +cmr10.329 @sf +0 r 58 c +21 r (o\013) s +cmbx10.329 @sf +114 1605 p (zo) s +1 r (omInCornerBorder) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 1661 p (zo) s +1 r (omInSideBorder) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 1718 p (zo) s +1 r (omInMo) s +0 r 118 c +-2 r (eGadget) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 1774 p (zo) s +1 r (omInZo) s +2 r (omGadget) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 1831 p (Determines) s +16 r (whether) s +16 r (the) s +16 r (appropriate) s +16 r (mouse) s +17 r (clic) s +-1 r (ks) s +15 r (in) s +17 r (the) s +16 r (named) s +16 r (regions) s +16 r (zo) s +1 r (om) s +17 r (and) s +16 r (unzo) s +1 r (om) s +114 1887 p (the) s +15 r (windo) s +0 r (w.) s +cmbx10.360 @sf +0 2009 p (11.4) s +57 r (Global) s +19 r (In) s +0 r (terface) s +18 r 86 c +-4 r (alues) s +cmsy10.329 @sf +68 2095 p 15 c +cmbx10.329 @sf +23 r 98 c +1 r (orderSize) s +cmr10.329 @sf +0 r 58 c +21 r 53 c +cmbx10.329 @sf +114 2151 p (outerBorderLinewidth) s +cmr10.329 @sf +0 r 58 c +20 r 50 c +cmbx10.329 @sf +114 2207 p (innerBorderLinewidth) s +cmr10.329 @sf +0 r 58 c +20 r 49 c +114 2264 p (The) s +15 r (size) s +15 r (of) s +15 r (windo) s +0 r 119 c +14 r 98 c +1 r (orders,) s +15 r (and) s +16 r (the) s +15 r (width) s +15 r (of) s +15 r (the) s +15 r (inner) s +15 r (and) s +15 r (outer) s +16 r (lines) s +15 r (of) s +15 r (the) s +15 r 98 c +1 r (order.) s +cmsy10.329 @sf +68 2358 p 15 c +cmbx10.329 @sf +23 r (gadgetWidth) s +cmr10.329 @sf +0 r 58 c +20 r (12) s +114 2414 p (The) s +15 r (width) s +15 r (of) s +15 r (the) s +15 r (gadgets) s +cmsy10.329 @sf +68 2508 p 15 c +cmbx10.329 @sf +23 r (iconAreaT) s +-3 r (op) s +114 2564 p (iconAreaBottom) s +114 2621 p (iconAreaLeft) s +114 2677 p (iconAreaRigh) s +-1 r 116 c +cmr10.329 @sf +937 2828 p (33) s +@eop +32 @bop0 +32 @bop1 +cmbx10.329 @sf +114 195 p (mo) s +-1 r 118 c +-1 r (eInIcon) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +114 252 p (Determines) s +18 r (whether) s +18 r (the) s +18 r (appropriate) s +18 r (mouse) s +18 r (clic) s +0 r (ks) s +17 r (in) s +18 r (the) s +18 r (named) s +18 r (regions) s +18 r (initiate) s +18 r (the) s +18 r (Mo) s +0 r 118 c +-1 r 101 c +114 308 p (op) s +1 r (eration.) s +cmsy10.329 @sf +68 399 p 15 c +cmbx10.329 @sf +23 r (placeP) s +-1 r (oin) s +-1 r (terInBo) s +0 r (dyInsteadOfGadget) s +cmr10.329 @sf +0 r 58 c +21 r (on) s +114 455 p (If) s +15 r (on,) s +16 r (then) s +16 r (the) s +16 r (follo) s +-1 r (wing) s +15 r (options) s +16 r (place) s +15 r (the) s +16 r 112 c +1 r (oin) s +0 r (ter) s +15 r (in) s +16 r (the) s +15 r 98 c +2 r 111 c +1 r (dy) s +16 r (just) s +15 r 98 c +1 r (elo) s +0 r 119 c +15 r (the) s +16 r (mo) s +-1 r 118 c +-1 r 101 c +15 r (gadget) s +114 511 p (rather) s +15 r (in) s +15 r (the) s +15 r (mo) s +0 r 118 c +-1 r 101 c +14 r (gadget) s +15 r (itself.) s +cmsy10.329 @sf +68 602 p 15 c +cmbx10.329 @sf +23 r (placeP) s +-1 r (oin) s +-1 r (terInGadgetAfterClien) s +-1 r (tAutoOp) s +0 r (en) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 658 p (placeP) s +-1 r (oin) s +-1 r (terInGadgetAfterUserAutoOp) s +0 r (en) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 715 p (placeP) s +-1 r (oin) s +-1 r (terInGadgetAfterMan) s +-2 r (ualOp) s +1 r (en) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 771 p (If) s +17 r (on,) s +17 r (then) s +17 r (the) s +17 r 112 c +2 r (oin) s +-1 r (ter) s +17 r (is) s +17 r (placed) s +17 r (in) s +17 r (the) s +17 r (windo) s +0 r (w's) s +16 r (mo) s +-1 r 118 c +-1 r 101 c +16 r (gadget) s +17 r (after) s +17 r (the) s +17 r (windo) s +0 r 119 c +16 r (is) s +17 r (op) s +2 r (ened) s +114 828 p (\(1\)) s +14 r 98 c +0 r 121 c +13 r (the) s +14 r (clien) s +0 r 116 c +13 r (and) s +14 r (placed) s +14 r (automatically) s +-2 r 44 c +13 r (\(2\)) s +14 r 98 c +0 r 121 c +13 r (the) s +15 r (user) s +14 r (and) s +14 r (placed) s +14 r (automatically) s +-3 r 44 c +14 r (\(3\)) s +14 r 98 c +0 r 121 c +114 884 p (the) s +15 r (user) s +15 r (and) s +15 r (placed) s +15 r (man) s +0 r (ually) s +-4 r 46 c +19 r (If) s +16 r (o\013,) s +15 r (the) s +15 r 112 c +1 r (oin) s +0 r (ter) s +14 r (sta) s +0 r (ys) s +14 r (where) s +15 r (it) s +15 r (is.) s +cmsy10.329 @sf +68 975 p 15 c +cmbx10.329 @sf +23 r (placeP) s +-1 r (oin) s +-1 r (terInGadgetAfterExc) s +-1 r (hange) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +cmbx10.329 @sf +114 1031 p (placeP) s +-1 r (oin) s +-1 r (terInGadgetAfterMo) s +-2 r 118 c +-1 r 101 c +cmr10.329 @sf +0 r 58 c +19 r (on) s +114 1088 p (If) s +12 r (on,) s +13 r (then) s +12 r (the) s +12 r 112 c +2 r (oin) s +-1 r (ter) s +12 r (is) s +12 r (placed) s +12 r (in) s +12 r (the) s +13 r (windo) s +-1 r (w's) s +12 r (mo) s +-1 r 118 c +-1 r 101 c +11 r (gadget) s +13 r (after) s +12 r (the) s +12 r (windo) s +0 r 119 c +11 r (is) s +12 r (exc) s +0 r (hanged,) s +114 1144 p (mo) s +-1 r 118 c +-1 r (ed) s +14 r (or) s +15 r (relo) s +2 r (cated.) s +cmsy10.329 @sf +68 1235 p 15 c +cmbx10.329 @sf +23 r (placeP) s +-1 r (oin) s +-1 r (terInIconAfterClose) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +114 1291 p (If) s +15 r (on,) s +15 r (then) s +15 r (after) s +15 r (explicitly) s +15 r (closing) s +16 r 97 c +15 r (windo) s +-1 r (w,) s +15 r (the) s +15 r 112 c +1 r (oin) s +0 r (ter) s +14 r (is) s +15 r (placed) s +15 r (in) s +15 r (its) s +15 r (icon.) s +cmsy10.329 @sf +68 1382 p 15 c +cmbx10.329 @sf +23 r (placeP) s +-1 r (oin) s +-1 r (terBac) s +-1 r (kAfterMen) s +-2 r (uOp) s +1 r (eration) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 1438 p (If) s +12 r (on,) s +14 r (then) s +13 r (completing) s +12 r 97 c +13 r (men) s +0 r 117 c +12 r (op) s +1 r (eration) s +13 r (that) s +13 r (do) s +1 r (esn"t) s +13 r (in) s +0 r 118 c +-2 r (olv) s +-1 r 101 c +12 r (trac) s +0 r (king,) s +12 r (the) s +13 r 112 c +1 r (oin) s +0 r (ter) s +11 r (is) s +13 r (mo) s +0 r 118 c +-1 r (ed) s +114 1495 p (bac) s +-1 r 107 c +15 r (to) s +15 r (its) s +15 r 112 c +1 r (osition) s +15 r (when) s +15 r (the) s +16 r (men) s +-1 r 117 c +14 r 119 c +0 r (as) s +14 r (\014rst) s +15 r (raised.) s +cmsy10.329 @sf +68 1585 p 15 c +cmbx10.329 @sf +23 r (placeP) s +-1 r (oin) s +-1 r (terBac) s +-1 r (kOnCancel) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +114 1642 p (If) s +14 r (on,) s +14 r (then) s +14 r (after) s +14 r (cancelling) s +14 r (an) s +14 r (op) s +1 r (eration,) s +14 r (the) s +14 r 112 c +2 r (oin) s +-1 r (ter) s +13 r (is) s +14 r (mo) s +0 r 118 c +-1 r (ed) s +13 r (bac) s +0 r 107 c +13 r (to) s +14 r (its) s +14 r 112 c +1 r (osition) s +14 r (when) s +14 r (the) s +114 1698 p (op) s +1 r (eration) s +15 r 119 c +0 r (as) s +14 r (initiated.) s +cmsy10.329 @sf +68 1789 p 15 c +cmbx10.329 @sf +23 r (redra) s +-1 r (wInHeader) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 1845 p (redra) s +-1 r (wInCornerBorder) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +cmbx10.329 @sf +114 1901 p (redra) s +-1 r (wInSideBorder) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +cmbx10.329 @sf +114 1958 p (redra) s +-1 r (wInMo) s +-1 r 118 c +-2 r (eGadget) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +cmbx10.329 @sf +114 2014 p (redra) s +-1 r (wInZo) s +1 r (omGadget) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 2071 p (redra) s +-1 r (wInIcon) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +114 2127 p (Determines) s +13 r (whether) s +14 r (the) s +14 r (appropriate) s +14 r (mouse) s +14 r (clic) s +0 r (ks) s +12 r (in) s +14 r (the) s +14 r (named) s +14 r (regions) s +14 r (redra) s +0 r 119 c +12 r (the) s +14 r (windo) s +0 r (w.) s +cmsy10.329 @sf +68 2218 p 15 c +cmbx10.329 @sf +23 r (relo) s +1 r (cateInHeader) s +cmr10.329 @sf +0 r 58 c +21 r (o\013) s +cmbx10.329 @sf +114 2274 p (relo) s +1 r (cateInCornerBorder) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 2331 p (relo) s +1 r (cateInSideBorder) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 2387 p (relo) s +1 r (cateInMo) s +0 r 118 c +-2 r (eGadget) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +cmbx10.329 @sf +114 2444 p (relo) s +1 r (cateInZo) s +2 r (omGadget) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 2500 p (Determines) s +12 r (whether) s +13 r (the) s +13 r (appropriate) s +12 r (mouse) s +13 r (clic) s +0 r (ks) s +11 r (in) s +13 r (the) s +13 r (named) s +12 r (regions) s +13 r (initiate) s +13 r (the) s +12 r (Relo) s +2 r (cate) s +114 2557 p (op) s +1 r (eration.) s +cmsy10.329 @sf +68 2647 p 15 c +cmbx10.329 @sf +23 r (resizeInHeader) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 2704 p (resizeInCornerBorder) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +937 2828 p (32) s +@eop +31 @bop0 +cmr10.329 @sf +[ 32 31 -2 0 30.934] 69 @dc +[ 32 31 -2 0 34.090] 72 @dc +[<70F8F8F8700000000000202020202070707070707070707070F8F8F8F8F8F870> 8 32 -4 0 12.626] 33 @dc +31 @bop1 +cmsy10.329 @sf +68 195 p 15 c +cmbx10.329 @sf +23 r (enlargeInHeader) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 252 p (enlargeInCornerBorder) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 308 p (enlargeInSideBorder) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 364 p (enlargeInMo) s +-1 r 118 c +-1 r (eGadget) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 421 p (enlargeInZo) s +1 r (omGadget) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 477 p (Determines) s +17 r (whether) s +17 r (the) s +18 r (appropriate) s +17 r (mouse) s +17 r (clic) s +0 r (ks) s +16 r (in) s +18 r (the) s +17 r (named) s +17 r (regions) s +18 r (cause) s +17 r (the) s +17 r (windo) s +0 r 119 c +114 534 p (to) s +15 r (gro) s +0 r 119 c +14 r (to) s +15 r (its) s +15 r (maxim) s +0 r (um) s +14 r (size.) s +cmsy10.329 @sf +68 626 p 15 c +cmbx10.329 @sf +23 r (exc) s +-1 r (hangeInHeader) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 682 p (exc) s +-1 r (hangeInCornerBorder) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +cmbx10.329 @sf +114 739 p (exc) s +-1 r (hangeInSideBorder) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 795 p (exc) s +-1 r (hangeInMo) s +-1 r 118 c +-2 r (eGadget) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +cmbx10.329 @sf +114 852 p (exc) s +-1 r (hangeInZo) s +1 r (omGadget) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 908 p (exc) s +-1 r (hangeInIcon) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +114 965 p (Determines) s +11 r (whether) s +11 r (the) s +11 r (appropriate) s +11 r (mouse) s +11 r (clic) s +0 r (ks) s +10 r (in) s +11 r (the) s +11 r (named) s +11 r (regions) s +11 r (initiate) s +11 r (the) s +11 r (Exc) s +0 r (hange) s +114 1021 p (op) s +1 r (eration.) s +cmsy10.329 @sf +68 1113 p 15 c +cmbx10.329 @sf +23 r (includeBac) s +-1 r (kgroundMen) s +-1 r (uInWindo) s +-1 r (wMen) s +-2 r 117 c +cmr10.329 @sf +0 r 58 c +19 r (on) s +114 1170 p (Determines) s +13 r (whether) s +13 r (eac) s +0 r 104 c +12 r (windo) s +0 r 119 c +12 r (men) s +0 r 117 c +12 r (has) s +13 r (the) s +13 r (main) s +14 r (windo) s +-1 r 119 c +12 r (manager) s +14 r (men) s +-1 r 117 c +13 r (as) s +13 r 97 c +13 r (submen) s +0 r (u.) s +cmsy10.329 @sf +68 1262 p 15 c +cmbx10.329 @sf +23 r 107 c +-1 r (eyMak) s +-1 r (esListenerInBo) s +0 r (dy) s +cmr10.329 @sf +0 r 58 c +21 r (on) s +cmbx10.329 @sf +114 1319 p 107 c +-1 r (eyMak) s +-1 r (esListenerInBorder) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 1375 p 107 c +-1 r (eyMak) s +-1 r (esListenerInGadget) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 1431 p 107 c +-1 r (eyMak) s +-1 r (esListenerInHeader) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +114 1488 p (Determines) s +16 r (whether) s +15 r 116 c +0 r (yping) s +15 r 97 c +16 r 107 c +0 r (ey) s +15 r (with) s +15 r (the) s +16 r 112 c +2 r (oin) s +-1 r (ter) s +15 r (in) s +16 r (the) s +16 r (named) s +16 r (region) s +16 r (causes) s +16 r (the) s +15 r (windo) s +0 r 119 c +114 1544 p (to) s +15 r 98 c +1 r (ecome) s +15 r (the) s +15 r (listener.) s +cmsy10.329 @sf +68 1637 p 15 c +cmbx10.329 @sf +23 r (fo) s +1 r (cusF) s +-3 r (ollo) s +-1 r (wsP) s +-2 r (oin) s +-1 r (ter) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +114 1693 p (If) s +15 r (on,) s +15 r (the) s +15 r (fo) s +1 r (cus) s +16 r (is) s +15 r (real-estate) s +15 r (driv) s +0 r (en.) s +19 r (If) s +15 r (o\013,) s +15 r (the) s +15 r (clic) s +0 r (k-to-t) s +-1 r (yp) s +0 r 101 c +15 r (mo) s +1 r (del) s +15 r (is) s +16 r (used.) s +cmsy10.329 @sf +68 1785 p 15 c +cmbx10.329 @sf +23 r (managerMen) s +-1 r (uInHeader) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 1842 p (managerMen) s +-1 r (uInCornerBorder) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +cmbx10.329 @sf +114 1898 p (managerMen) s +-1 r (uInSideBorder) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +cmbx10.329 @sf +114 1955 p (managerMen) s +-1 r (uInMo) s +-1 r 118 c +-2 r (eGadget) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 2011 p (managerMen) s +-1 r (uInZo) s +1 r (omGadget) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 2067 p (managerMen) s +-1 r (uInIcon) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +114 2124 p (Determines) s +15 r (whether) s +15 r (the) s +16 r (appropriate) s +15 r (mouse) s +16 r (clic) s +-1 r (ks) s +15 r (in) s +15 r (the) s +16 r (named) s +15 r (regions) s +16 r (bring) s +15 r (up) s +15 r 97 c +16 r (windo) s +0 r 119 c +114 2180 p (men) s +-1 r (u.) s +cmsy10.329 @sf +68 2273 p 15 c +cmbx10.329 @sf +23 r (middleMen) s +-1 r 117 c +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 2329 p (If) s +17 r (on,) s +19 r (then) s +18 r (the) s +17 r (role) s +18 r (of) s +18 r (the) s +18 r (middle) s +18 r (and) s +17 r (righ) s +0 r 116 c +17 r (buttons) s +18 r (in) s +17 r (the) s +18 r (default) s +18 r (in) s +0 r (terface) s +16 r (are) s +18 r (switc) s +0 r (hed.) s +114 2386 p (\(Horrible) s +15 r (Hac) s +0 r (k!\)) s +cmsy10.329 @sf +68 2478 p 15 c +cmbx10.329 @sf +23 r (mo) s +-1 r 118 c +-1 r (eInHeader) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 2534 p (mo) s +-1 r 118 c +-1 r (eInCornerBorder) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +cmbx10.329 @sf +114 2591 p (mo) s +-1 r 118 c +-1 r (eInSideBorder) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +cmbx10.329 @sf +114 2647 p (mo) s +-1 r 118 c +-1 r (eInMo) s +-2 r 118 c +-1 r (eGadget) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +cmbx10.329 @sf +114 2704 p (mo) s +-1 r 118 c +-1 r (eInZo) s +0 r (omGadget) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +937 2828 p (31) s +@eop +30 @bop0 +cmr10.329 @sf +[<40202010101008080878F8F8F0700000000000000000000070F8F8F870> 8 29 -4 9 12.626] 59 @dc +cmbx10.329 @sf +[ 40 31 -2 0 39.519] 88 @dc +30 @bop1 +cmsy10.329 @sf +68 195 p 15 c +cmbx10.329 @sf +23 r (autoPlaceOnMen) s +-1 r (uOp) s +1 r (en) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 252 p (If) s +16 r (on,) s +17 r (selecting) s +17 r 97 c +17 r (closed) s +17 r (windo) s +-1 r 119 c +16 r (from) s +17 r (the) s +16 r (men) s +0 r 117 c +16 r (of) s +17 r (closed) s +16 r (windo) s +0 r (ws) s +16 r (automatically) s +16 r (places) s +17 r (it.) s +114 308 p (If) s +15 r (o\013,) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r 109 c +0 r (ust) s +14 r 98 c +1 r 101 c +15 r (man) s +0 r (ually) s +14 r (placed.) s +cmsy10.329 @sf +68 402 p 15 c +cmbx10.329 @sf +23 r (autoPlaceOnUnsizedOp) s +1 r (en) s +cmr10.329 @sf +0 r 58 c +21 r (on) s +114 458 p (If) s +15 r (o\013,) s +15 r (and) s +15 r 97 c +15 r (size) s +15 r (has) s +15 r (not) s +16 r 98 c +1 r (een) s +15 r (pro) s +0 r (vided) s +14 r (for) s +15 r 97 c +15 r (windo) s +0 r 119 c +14 r (via) s +15 r 97 c +15 r (hin) s +0 r (t,) s +14 r 97 c +15 r (preference,) s +15 r (or) s +16 r (the) s +15 r (la) s +-1 r 121 c +-1 r (out) s +114 515 p (\014le,) s +15 r (then) s +15 r (man) s +0 r (ual) s +14 r (placemen) s +0 r 116 c +14 r (is) s +15 r (required) s +15 r (when) s +15 r (it) s +15 r (is) s +15 r (initially) s +16 r (op) s +1 r (ened.) s +cmsy10.329 @sf +68 609 p 15 c +cmbx10.329 @sf +23 r (buttonMak) s +-1 r (esListenerInBo) s +1 r (dy) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 665 p (buttonMak) s +-1 r (esListenerInHeader) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +114 721 p (Determines) s +18 r (whether) s +19 r (clic) s +0 r (king) s +17 r 97 c +19 r (mouse) s +18 r (button) s +19 r (in) s +18 r (the) s +19 r (named) s +19 r (region) s +18 r (mak) s +0 r (es) s +17 r (the) s +19 r (windo) s +0 r 119 c +17 r (the) s +114 778 p (listener) s +17 r (when) s +cmbx10.329 @sf +17 r (fo) s +2 r (cusF) s +-4 r (ollo) s +-1 r (wsP) s +-2 r (oin) s +-1 r (ter) s +cmr10.329 @sf +16 r (is) s +17 r (on.) s +27 r (If) s +17 r (it) s +17 r (is) s +18 r (not) s +17 r (on,) s +18 r (clic) s +-1 r (king) s +17 r (mak) s +-1 r (es) s +17 r (the) s +17 r (windo) s +0 r 119 c +16 r (the) s +114 834 p (listener) s +15 r (only) s +16 r (if) s +16 r (the) s +16 r (corresp) s +1 r (onding) s +cmbx10.329 @sf +16 r 107 c +0 r (eyMak) s +-2 r (esListener...) s +cmr10.329 @sf +22 r (is) s +15 r (on) s +16 r (as) s +16 r 119 c +0 r (ell;) s +15 r (otherwise) s +16 r (it) s +16 r (is) s +16 r (used) s +114 891 p (for) s +16 r (temp) s +1 r (orarily) s +17 r 116 c +-1 r (yping) s +16 r (without) s +16 r 99 c +0 r (hanging) s +15 r (the) s +17 r (listener) s +16 r (if) s +17 r (the) s +16 r (corresp) s +1 r (onding) s +cmbx10.329 @sf +17 r (acceptNonLis-) s +114 947 p (tener...) s +cmr10.329 @sf +20 r (is) s +15 r (on) s +15 r (as) s +15 r 119 c +0 r (ell.) s +cmsy10.329 @sf +68 1041 p 15 c +cmbx10.329 @sf +23 r (cen) s +-1 r (terP) s +-1 r (oin) s +-1 r (terOnMo) s +-2 r 118 c +-1 r 101 c +cmr10.329 @sf +0 r 58 c +19 r (on) s +cmbx10.329 @sf +114 1098 p (cen) s +-1 r (terP) s +-1 r (oin) s +-2 r (terOnRelo) s +1 r (cate) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 1154 p (Determines) s +21 r (whether) s +21 r (to) s +22 r (mo) s +0 r 118 c +-2 r 101 c +21 r (the) s +21 r 112 c +1 r (oin) s +0 r (ter) s +21 r (to) s +21 r (the) s +21 r (middle) s +22 r (of) s +21 r (the) s +22 r (windo) s +-1 r 119 c +21 r (when) s +21 r (mo) s +0 r (ving) s +20 r (or) s +114 1210 p (relo) s +1 r (cating) s +15 r (it,) s +15 r (or) s +15 r (to) s +16 r (lea) s +-1 r 118 c +-1 r 101 c +14 r (it) s +15 r (where) s +15 r (it) s +16 r (is.) s +cmsy10.329 @sf +68 1304 p 15 c +cmbx10.329 @sf +23 r (closeInHeader) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 1361 p (closeInCornerBorder) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 1417 p (closeInSideBorder) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 1474 p (closeInMo) s +-1 r 118 c +-1 r (eGadget) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +cmbx10.329 @sf +114 1530 p (closeInZo) s +1 r (omGadget) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 1587 p (Determines) s +17 r (whether) s +17 r (the) s +18 r (appropriate) s +17 r (mouse) s +17 r (clic) s +0 r (ks) s +16 r (in) s +18 r (the) s +17 r (named) s +17 r (regions) s +18 r (cause) s +17 r (the) s +17 r (windo) s +0 r 119 c +114 1643 p (to) s +15 r (close.) s +cmsy10.329 @sf +68 1737 p 15 c +cmbx10.329 @sf +23 r (desireInHeader) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 1793 p (desireInCornerBorder) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 1850 p (desireInSideBorder) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 1906 p (desireInMo) s +-1 r 118 c +-1 r (eGadget) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 1963 p (desireInZo) s +1 r (omGadget) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 2019 p (Determines) s +17 r (whether) s +17 r (the) s +18 r (appropriate) s +17 r (mouse) s +17 r (clic) s +0 r (ks) s +16 r (in) s +18 r (the) s +17 r (named) s +17 r (regions) s +18 r (cause) s +17 r (the) s +17 r (windo) s +0 r 119 c +114 2076 p (to) s +15 r (gro) s +0 r 119 c +14 r (to) s +15 r (its) s +15 r (desired) s +15 r (size.) s +cmsy10.329 @sf +68 2169 p 15 c +cmbx10.329 @sf +23 r (distinguishCornerBorders) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 2226 p (distinguishCornerBordersByIn) s +-1 r 118 c +-1 r (erse) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +114 2282 p (Determines) s +14 r (whether) s +14 r (the) s +15 r (corner) s +14 r 98 c +1 r (orders) s +15 r (are) s +14 r (distinguished,) s +15 r (and) s +14 r (if) s +14 r (so,) s +15 r (whether) s +14 r 98 c +0 r 121 c +13 r (dra) s +0 r (wing) s +14 r (an) s +114 2339 p (outline,) s +15 r (or) s +15 r 98 c +0 r 121 c +14 r (in) s +0 r 118 c +-2 r (erting) s +14 r (it.) s +cmsy10.329 @sf +68 2432 p 15 c +cmbx10.329 @sf +23 r (dra) s +-1 r (wX) s +-1 r (OnMo) s +-1 r 118 c +-2 r 101 c +cmr10.329 @sf +0 r 58 c +19 r (on) s +cmbx10.329 @sf +114 2489 p (dra) s +-1 r (wX) s +-1 r (OnOp) s +0 r (en) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 2545 p (dra) s +-1 r (wX) s +-1 r (OnResize) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +114 2602 p (Determines) s +13 r (whether) s +13 r (an) s +13 r 88 c +13 r (is) s +13 r (dra) s +0 r (wn) s +12 r (along) s +13 r (with) s +13 r (the) s +13 r (windo) s +0 r 119 c +12 r (outline) s +13 r (when) s +13 r (trac) s +0 r (king) s +12 r (the) s +13 r (named) s +114 2658 p (op) s +1 r (erations) s +937 2828 p (30) s +@eop +29 @bop0 +[ 329 ] /cmtt10.329 @newfont +cmtt10.329 @sf +[<01F00007FC000FFE001F1F001C07003803807803C07001C07001C0F001E0E000E0E000E0E000E0E000E0E000E0E000E0E000 + E0E000E0E000E07001C07001C07803C03803801C07001F1F000FFE0007FC0001F000> 24 28 -2 0 23.863] 48 @dc +[<78FCFCFCFC78000000000000000078FCFCFCFC78> 8 20 -9 0 23.863] 58 @dc +[<7FFF00FFFF807FFF0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0 + 0001C00001C00001C00001C00001C00001C00001C00001C0007FFF00FFFF807FFF00> 24 28 -3 0 23.863] 73 @dc +[<7FC3FCFFE7FE7FC3FC0E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00F00E00F00E00F80E00FE1 + E07FFFC0FEFF807E3F00> 24 20 0 0 23.863] 110 @dc +[<01F0000FFE001FFF003E0F803C07807803C07001C0F001E0E000E0E000E0E000E0E000E0E000E07001C07001C03803803E0F + 801FFF000FFE0001F000> 24 20 -2 0 23.863] 111 @dc +[<7FC000FFE0007FC0000E00000E00000E00000E00000E00000E00000E00000E7E000EFF800FFFC00FC3E00F80F00F00700F00 + 780F00380E00380E00380E00380E00380E00380F00780F00700F80F00FE3E07FFFC0FEFF807E3E00> 24 30 0 10 23.863] 112 @dc +[<0FE1F03FFBF07FFFF0783F00F00F00E00700E00700F007007807007F07003FFF000FFF0001FF00000700000700300F00783E + 007FFC003FF8001FE000> 24 20 -3 0 23.863] 97 @dc +[<7FFE00FFFF007FFE0003800003800003800003800003800003800003800003800003C00003C00003C00003E00003F03003FC + 787FBFF8FF9FF87F87E0> 24 20 -1 0 23.863] 114 @dc +[<007E0000FF8001FFC003C3C00381E00380E00380E00380400380000380000380000380000380000380000380000380000380 + 00FFFFC0FFFFC07FFFC0038000038000038000038000018000> 24 25 -1 0 23.863] 116 @dc +[ 24 29 -4 0 23.863] 105 @dc +[<01FC0007FF001FFF803F07C03C01C07801C0700000F00000E00000E00000E00000E00000F000007000007800003C03003F07 + 801FFF8007FF0001FE00> 24 20 -3 0 23.863] 99 @dc +[<01FCFC03FFFE07FFFC0F07E00E01E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00 + E07E07E0FE0FE07E07E0> 24 20 0 0 23.863] 117 @dc +[<7FFFC0FFFFE07FFFC000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0 + 0000E00000E00000E00000E00000E00000E00000E00000E0007FE000FFE0007FE000> 24 28 -2 0 23.863] 108 @dc +[<01FC0007FF001FFF803F07C03C01C07801C0700000F00000FFFFC0FFFFC0FFFFC0E001C0E001C0F003C07003807807803E1F + 001FFE000FFC0003F000> 24 20 -3 0 23.863] 101 @dc +[<7FFCFFFE7FFC03800380038003800380038003800380038003800380038003800380038003806380FB80FF803F800F800780 + 078003800180> 16 28 -5 0 23.863] 49 @dc +[<7F07F0FF8FF87F07F01C01C01C01C00E03800E03800FFF800FFF800FFF80070700070700070700070700030600038E00038E + 00038E00038E00018C0001DC0001DC0001DC0000D80000D80000F80000F800007000> 24 28 -1 0 23.863] 65 @dc +[ 24 20 -3 0 23.863] 115 @dc +[<7FC3FCFFE7FE7FC3FC0E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00F00E00F00E00F80E00FE1 + E00FFFC00EFF800E3F000E00000E00000E00000E00000E00007E0000FE00007E0000> 24 28 0 0 23.863] 104 @dc +[<07FF0007FF0007FF000070000070000070000070000070000070000070000070000070000070000070000070000070000070 + 00007000007000007000007000E07038E07038E07038E07038FFFFF8FFFFF87FFFF8> 24 28 -1 0 23.863] 84 @dc +[<7FFFE0FFFFE07FFFE03C00E01E00E00F800007C00003E00000F000007800003C00001E00000F000007800003C00001C00001 + E00000E00000E0F000E0F000E0F000E0F001E07003C07C0F803FFF001FFE0007F800> 24 28 -2 0 23.863] 50 @dc +[ 24 28 -1 0 23.863] 66 @dc +[<7F1F1F00FFBFBF807F1F1F001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C + 1C001C1C1C001E1E1C001E1E1C001F1F1C007FFFFC00FFFBF8007DF1F000> 32 20 1 0 23.863] 109 @dc +[<07F8001FFE003FFF007C0F80F003C0F001C0F001E0F000E00000E00000E00001E00001C00003C0000F8003FF0003FE0003FF + 00000F800003800003C00001C03001C07801C07803C07C0F803FFF001FFE0007F800> 24 28 -2 0 23.863] 51 @dc +[<03FE000FFF803FFFE07E03F07800F0F00078E00038E00038E00038F000787801F03FFFE01FFFC01FFF003C00003800003BF0 + 003FF8001FFC001E1E003C0F003807003807003807003807003807003C0F001E1F300FFFF807FFF803F1F0> 24 31 -1 11 23.863] 103 @dc +[<7FFFF0FFFFF07FFFF00E00700E00700E00700E00700E00700E00000E00000E00000E00000E00000E00000E00000E00000E00 + 000E00000E00000E00000E00000E00000E00000E00000E00007FE000FFE0007FE000> 24 28 -1 0 23.863] 76 @dc +[<7FFF007FFF007FFF0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0 + 00FFFFC0FFFFC07FFFC001C00001C00001C00001C0C001F1E000FFE0007FE0001FC0> 24 28 -1 0 23.863] 102 @dc +[ 24 28 -2 0 23.863] 83 @dc +[<03E3F00FFBF81FFFF03E3F80780F80700780F00780E00780E00380E00380E00380E00380E00380F00780700780780F803E1F + 801FFF800FFB8003F380000380000380000380000380000380001F80003F80001F80> 24 28 -2 0 23.863] 100 @dc +[<007FF000FFF8007FF0000700000700000700000700000700000700FFFFF8FFFFF8FFFFF8F007007807003807003C07001E07 + 000E070007070007870003870001C70001E70000E700007700007700003F00001F00> 24 28 -1 0 23.863] 52 @dc +[<7F00F0FF81F87F03FC1C039C1C039C1C039C1C03801C03801C03801C03801C03801C07801C0F001FFE001FFE001FFF001C0F + 801C03801C03C01C01C01C01C01C01C01C03C01C03801C0F807FFF00FFFE007FF800> 24 28 -1 0 23.863] 82 @dc +[<007000F001F003C007800F001E001C003C003800780070007000F000E000E000E000E000E000E000E000E000F00070007000 + 780038003C001C001E000F00078003C001F000F00070> 16 36 -7 4 23.863] 40 @dc +[<1F03C03FCFE07FFFF071FE70F0F870E07870E0F800E1FC00F1DC0073DC007B9E003F8E001F0E000F0F000F87000FC7000FE7 + 801EE3F01CF3F01C7BF01C38001C38001C38001C38001E78000FF00007E00003C000> 24 28 -1 0 23.863] 38 @dc +[ 24 28 -1 0 23.863] 80 @dc +[<6000F00078003C001E000F000780038003C001C001E000E000E000F00070007000700070007000700070007000F000E000E0 + 01E001C003C0038007800F001E003C007800F0006000> 16 36 -4 4 23.863] 41 @dc +[<067E000EFF800FFFC00FC3E00F80F00F00700F00780F00380E00380E00380E00380E00380E00380F00780F00700F80F00FE3 + E00FFFC00EFF800E3E000E00000E00000E00000E00000E00007E0000FE00007E0000> 24 28 0 0 23.863] 98 @dc +[<07F8001FFE003FFF007C0F80F003C0E001C0F001E0F000E06000E00000E00000E00001E01803C03E07803FFF003FFE003BFC + 003800003800003800003800003800003800003800003800003FFF803FFF801FFF80> 24 28 -2 0 23.863] 53 @dc +[ 329 ] /cmmi10.329 @newfont +cmmi10.329 @sf +[<01F0780007098600060781000E0780800E0380800E0380400E0380400E0380200E0380200E0380200701C0100701C0100701 + C0108381C0104380E01841C0E03821C0E0782180E0F8118070F00F006060> 32 20 -2 0 32.541] 119 @dc +cmsy10.329 @sf +[<018000018000018000018000018000C18300F18F00399C000FF00003C00003C0000FF000399C00F18F00C183000180000180 + 00018000018000018000> 24 20 -3 -1 22.727] 3 @dc +cmmi10.329 @sf +[<3C0000620000F3000079800031800001C00000C00000E00000E00000E00000E0000070000070000070000070000070000038 + 00003800003800003800003800001C00001C00001C00001C00001C00000E00000E0000FFF0000E00000E00000E0000070000 + 070000070000070000030C00039E00019E0000CE00007C> 24 41 -2 9 22.253] 102 @dc +[<0F0780308C40705C40703C20F01C20F01C20F00E10F00E00F00E00F00E007807007807007807003807003C03801C03800E03 + 800707800389C000F1C00001C00001C00000E00000E00000E00000E00000700000700000700000700003F8000078> 24 32 -2 0 23.658] 100 @dc +cmsy10.329 @sf +[ 32 2 -4 -10 35.353] 0 @dc +cmmi10.329 @sf +[ 24 45 -3 11 22.727] 61 @dc +cmr10.329 @sf +[ 32 31 -2 0 29.671] 70 @dc +cmbx10.360 @sf +[<01FF00000FFFE0003C03F0007801FC007C01FC00FE00FE00FE00FF00FE00FF007C00FF007C00FF000000FF000000FE000000 + FE000001FC000001F8000003E00000FF000000FF0000000FC0000003E0000003F0000001F8000C01F8001F01FC003F01FC00 + 3F81FC003F01FC003F01F8001E01F8000F03F00007FFC00000FF0000> 32 32 -2 0 28.642] 51 @dc +cmr10.329 @sf +[<0FC000107000201800700C00780E007807003007000007800003800003800003C003E3C00E13C0180BC03807C07007C07003 + C0F003C0F003C0F003C0F00380F00380F003807003807007003806001C0E000E180003F000> 24 29 -2 0 22.727] 57 @dc +29 @bop1 +cmtt10.329 @sf +209 195 p (0:) s +24 r (In) s +24 r (no) s +24 r (particular) s +24 r (place) s +209 252 p (1:) s +24 r (Across) s +24 r (the) s +24 r (Top) s +209 308 p (2:) s +24 r (Across) s +24 r (the) s +24 r (Bottom) s +209 364 p (3:) s +24 r (Along) s +24 r (the) s +24 r (Left) s +24 r (Side) s +209 421 p (4:) s +24 r (Along) s +24 r (the) s +24 r (Right) s +24 r (Side) s +cmsy10.329 @sf +68 527 p 15 c +cmbx10.329 @sf +23 r (secondaryIconPlacemen) s +-1 r 116 c +cmr10.329 @sf +0 r 58 c +20 r 51 c +114 584 p (Where) s +15 r (icons) s +15 r (should) s +15 r 98 c +1 r 101 c +16 r (placed) s +15 r (within) s +15 r (the) s +15 r (region) s +15 r (determined) s +15 r 98 c +0 r 121 c +cmbx10.329 @sf +14 r (iconPlacemen) s +0 r 116 c +cmr10.329 @sf +0 r 46 c +cmtt10.329 @sf +209 690 p (0:) s +24 r (In) s +24 r (no) s +24 r (special) s +24 r (place) s +209 746 p (1:) s +24 r (At) s +24 r (the) s +24 r (top) s +24 r (\(for) s +23 r (Left) s +24 r 38 c +24 r (Right) s +24 r (iconPlacement\)) s +209 803 p (2:) s +24 r (At) s +24 r (the) s +24 r (bottom) s +24 r (\(for) s +23 r (Left) s +24 r 38 c +24 r (Right) s +24 r (iconPlacement\)) s +209 859 p (3:) s +24 r (At) s +24 r (the) s +24 r (left) s +24 r (\(for) s +23 r (Top) s +24 r 38 c +24 r (Bottom) s +24 r (iconPlacement\)) s +209 916 p (4:) s +24 r (At) s +24 r (the) s +24 r (right) s +24 r (\(for) s +23 r (Top) s +24 r 38 c +24 r (Bottom) s +24 r (iconPlacement\)) s +209 972 p (5:) s +24 r (In) s +24 r (the) s +24 r (middle) s +cmsy10.329 @sf +68 1078 p 15 c +cmbx10.329 @sf +23 r (neigh) s +-1 r 98 c +1 r (orho) s +1 r 111 c +2 r (dShrinkF) s +-4 r (actor) s +cmr10.329 @sf +0 r 58 c +20 r (50) s +114 1135 p 65 c +20 r (factor) s +20 r 98 c +0 r 121 c +19 r (whic) s +-1 r 104 c +19 r (the) s +21 r (windo) s +-1 r 119 c +19 r (of) s +20 r 97 c +21 r (neigh) s +-1 r 98 c +1 r (orho) s +1 r 111 c +1 r 100 c +20 r (is) s +20 r (shrunk) s +20 r (relativ) s +0 r 101 c +19 r (to) s +20 r (the) s +20 r (windo) s +0 r 119 c +19 r (size.) s +114 1191 p (Expressed) s +15 r (as) s +16 r 97 c +15 r 112 c +2 r (ercen) s +-1 r 116 c +15 r (from) s +16 r 48 c +15 r (to) s +16 r (100.) s +21 r (The) s +16 r (higher) s +16 r (the) s +15 r (shrink) s +16 r (factor,) s +15 r (the) s +16 r (smaller) s +16 r (the) s +15 r (neigh-) s +114 1248 p 98 c +1 r (orho) s +1 r 111 c +1 r 100 c +16 r (for) s +15 r (large) s +15 r (windo) s +0 r (ws.) s +114 1322 p (If) s +19 r 97 c +19 r (windo) s +-1 r 119 c +18 r (has) s +19 r (width) s +cmmi10.329 @sf +19 r 119 c +cmr10.329 @sf +1 r 44 c +20 r (the) s +cmbx10.329 @sf +19 r (neigh) s +0 r 98 c +0 r (orho) s +2 r 111 c +1 r (dShrinkF) s +-3 r (actor) s +cmr10.329 @sf +18 r (is) s +19 r (100) s +cmsy10.329 @sf +12 r 3 c +cmmi10.329 @sf +13 r 102 c +cmr10.329 @sf +5 r 44 c +20 r (and) s +19 r (the) s +19 r (desktop) s +114 1378 p (width) s +16 r (is) s +cmmi10.329 @sf +16 r 100 c +cmr10.329 @sf +17 r (then) s +16 r (the) s +17 r (width) s +16 r (of) s +16 r (the) s +17 r (side) s +16 r 98 c +1 r (order) s +17 r (of) s +16 r (the) s +17 r (neigh) s +-1 r 98 c +1 r (orho) s +1 r 111 c +1 r 100 c +17 r (surrounding) s +16 r (the) s +16 r (windo) s +0 r 119 c +114 1435 p (\(on) s +15 r (eac) s +0 r 104 c +14 r (side\)) s +15 r (for) s +15 r 97 c +15 r (cen) s +0 r (ter) s +14 r (neigh) s +0 r 98 c +0 r (orho) s +1 r 111 c +2 r 100 c +15 r (is) s +cmmi10.329 @sf +852 1524 p 119 c +cmsy10.329 @sf +11 r 3 c +cmr10.329 @sf +10 r 40 c +cmmi10.329 @sf +0 r 100 c +cmsy10.329 @sf +10 r 0 c +cmr10.329 @sf +10 r 40 c +cmmi10.329 @sf +0 r 102 c +cmsy10.329 @sf +15 r 3 c +cmmi10.329 @sf +10 r 119 c +cmr10.329 @sf +2 r (\)\)) s +852 1544 p 330 2 ru +954 1586 p (\(2) s +cmsy10.329 @sf +11 r 3 c +cmmi10.329 @sf +10 r 100 c +cmr10.329 @sf +0 r 41 c +114 1672 p (and) s +15 r (for) s +15 r (an) s +15 r (edge) s +15 r (neigh) s +0 r 98 c +0 r (orho) s +2 r 111 c +1 r 100 c +15 r (is) s +cmmi10.329 @sf +852 1719 p 119 c +cmsy10.329 @sf +11 r 3 c +cmr10.329 @sf +10 r 40 c +cmmi10.329 @sf +0 r 100 c +cmsy10.329 @sf +10 r 0 c +cmr10.329 @sf +10 r 40 c +cmmi10.329 @sf +0 r 102 c +cmsy10.329 @sf +15 r 3 c +cmmi10.329 @sf +10 r 119 c +cmr10.329 @sf +2 r (\)\)) s +852 1739 p 330 2 ru +cmmi10.329 @sf +1005 1781 p 100 c +cmr10.329 @sf +114 1841 p (And) s +17 r (similarly) s +17 r (for) s +17 r (the) s +16 r (length.) s +26 r (Consider) s +17 r 97 c +17 r (windo) s +0 r 119 c +16 r (whose) s +17 r (width) s +17 r (is) s +17 r (half) s +17 r (that) s +16 r (of) s +17 r (the) s +17 r (desktop.) s +114 1897 p (With) s +15 r 97 c +cmbx10.329 @sf +16 r (neigh) s +0 r 98 c +0 r (orho) s +2 r 111 c +1 r (dShrinkF) s +-3 r (actor) s +cmr10.329 @sf +14 r (of) s +16 r (0,) s +16 r (the) s +16 r 98 c +1 r (order) s +16 r (for) s +15 r 97 c +16 r (cen) s +0 r (ter) s +14 r (neigh) s +0 r 98 c +0 r (orho) s +2 r 111 c +1 r 100 c +16 r (is) s +15 r 49 c +cmmi10.329 @sf +0 r 61 c +cmr10.329 @sf +0 r 52 c +16 r (of) s +114 1954 p (the) s +14 r (desktop) s +14 r (width.) s +20 r 70 c +-3 r (or) s +13 r 97 c +14 r (factor) s +15 r (of) s +14 r (50,) s +14 r (the) s +14 r 98 c +2 r (order) s +14 r (is) s +14 r 51 c +cmmi10.329 @sf +0 r 61 c +cmr10.329 @sf +0 r (16) s +14 r (of) s +14 r (the) s +15 r (desktop) s +14 r (width.) s +20 r 70 c +-3 r (or) s +13 r 97 c +14 r (factor) s +114 2010 p (of) s +15 r (100,) s +15 r (the) s +15 r 98 c +1 r (order) s +16 r (is) s +15 r (just) s +15 r 49 c +cmmi10.329 @sf +0 r 61 c +cmr10.329 @sf +0 r 56 c +15 r (of) s +15 r (the) s +15 r (desktop) s +15 r (width.) s +cmbx10.360 @sf +0 2131 p (11.3) s +57 r (Global) s +19 r (In) s +0 r (terface) s +18 r (Options) s +cmsy10.329 @sf +68 2217 p 15 c +cmbx10.329 @sf +23 r (acceptNonListenerInBo) s +1 r (dy) s +cmr10.329 @sf +0 r 58 c +21 r (on) s +cmbx10.329 @sf +114 2273 p (acceptNonListenerInBorder) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 2330 p (acceptNonListenerInGadget) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 2386 p (acceptNonListenerInHeader) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 2442 p (Determines) s +14 r (whether) s +14 r 107 c +-1 r (eyb) s +1 r (oard) s +14 r (input) s +13 r (will) s +14 r 98 c +2 r 101 c +14 r (passed) s +14 r (to) s +14 r 97 c +14 r (clien) s +-1 r 116 c +13 r (if) s +14 r (the) s +14 r 112 c +1 r (oin) s +0 r (ter) s +13 r (is) s +14 r (in) s +14 r (the) s +14 r (named) s +114 2499 p (region,) s +15 r (and) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (is) s +15 r (not) s +15 r (the) s +15 r (listener.) s +cmsy10.329 @sf +68 2591 p 15 c +cmbx10.329 @sf +23 r (autoPlaceOnIconOp) s +1 r (en) s +cmr10.329 @sf +0 r 58 c +21 r (o\013) s +114 2647 p (If) s +13 r (on,) s +14 r 97 c +13 r (single) s +14 r (clic) s +-1 r 107 c +13 r (in) s +13 r (an) s +14 r (icon) s +13 r (automatically) s +14 r (places) s +13 r (the) s +13 r (op) s +2 r (ened) s +13 r (windo) s +0 r (w.) s +18 r (If) s +14 r (o\013,) s +14 r 97 c +13 r (double) s +14 r (clic) s +-1 r 107 c +114 2704 p (is) s +15 r (required,) s +15 r (and) s +15 r 97 c +15 r (single) s +15 r (clic) s +0 r 107 c +14 r 112 c +2 r (ermits) s +15 r (man) s +-1 r (ual) s +15 r (placemen) s +-1 r (t.) s +937 2828 p (29) s +@eop +28 @bop0 +cmbx10.360 @sf +[ 24 32 -3 0 28.642] 50 @dc +28 @bop1 +cmsy10.329 @sf +68 195 p 15 c +cmbx10.329 @sf +23 r (resetZo) s +1 r (omMin) s +cmr10.329 @sf +0 r 58 c +21 r (o\013) s +cmbx10.329 @sf +114 252 p (resetZo) s +1 r (omMinAllo) s +0 r (wsDecrease) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 308 p (resetZo) s +1 r (omMinUsesDesire) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 364 p (If) s +cmbx10.329 @sf +16 r (resetZo) s +2 r (omMin) s +cmr10.329 @sf +16 r (is) s +16 r (set) s +17 r (alone,) s +16 r (then) s +17 r (zo) s +1 r (oming) s +17 r 97 c +16 r (windo) s +0 r 119 c +15 r (sets) s +17 r (the) s +16 r (zo) s +1 r (om) s +3 r 14 2 ru +14 r (min) s +16 r (of) s +16 r (the) s +17 r (windo) s +0 r 119 c +114 421 p (to) s +22 r 98 c +1 r 101 c +23 r (its) s +22 r (curren) s +0 r 116 c +21 r (\(pre-zo) s +2 r (om\)) s +22 r (size.) s +42 r (If) s +cmbx10.329 @sf +23 r (resetZo) s +1 r (omMinUsesDesire) s +cmr10.329 @sf +23 r (is) s +22 r (set) s +22 r (along) s +23 r (with) s +22 r (it,) s +114 477 p (then) s +21 r (the) s +20 r (the) s +21 r (zo) s +2 r (om) s +20 r (min) s +21 r (is) s +21 r (set) s +21 r (to) s +21 r (the) s +21 r (smaller) s +21 r (of) s +21 r (the) s +20 r (curren) s +0 r 116 c +20 r (and) s +21 r (normal) s +21 r (desired) s +21 r (size.) s +37 r (If) s +cmbx10.329 @sf +114 534 p (resetZo) s +1 r (omMinAllo) s +0 r (wsDecrease) s +cmr10.329 @sf +11 r (is) s +13 r (not) s +12 r (set,) s +13 r (the) s +13 r (zo) s +1 r (om) s +12 r (min) s +13 r (will) s +12 r (not) s +13 r 98 c +1 r 101 c +13 r (decreased) s +12 r (as) s +13 r 97 c +12 r (result) s +114 590 p (of) s +15 r (this.) s +cmsy10.329 @sf +68 681 p 15 c +cmbx10.329 @sf +23 r (treatMo) s +-1 r 118 c +-1 r (eLik) s +-1 r (eRelo) s +0 r (cate) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 737 p (If) s +15 r (set,) s +16 r (then) s +16 r 97 c +15 r (Mo) s +0 r 118 c +-1 r 101 c +15 r (acts) s +15 r (just) s +16 r (lik) s +0 r 101 c +14 r 97 c +16 r (Relo) s +1 r (cate) s +16 r (in) s +16 r (terms) s +15 r (of) s +16 r (allo) s +0 r 119 c +-1 r (ed) s +14 r (placemen) s +0 r (t.) s +21 r (If) s +15 r (it) s +16 r (is) s +16 r (not) s +15 r (set,) s +114 793 p (then) s +14 r (mo) s +-1 r (ving) s +13 r 97 c +14 r (windo) s +0 r 119 c +13 r (requires) s +14 r (that) s +14 r (it) s +14 r 98 c +1 r 101 c +14 r (placed) s +14 r (at) s +14 r (its) s +14 r (curren) s +0 r 116 c +13 r (size) s +14 r (\(without) s +14 r (shrinking\)) s +14 r (and) s +114 850 p (at) s +15 r (the) s +15 r (exact) s +15 r (lo) s +1 r (cation) s +16 r (indicated) s +15 r 98 c +-1 r 121 c +15 r (the) s +15 r (user.) s +cmsy10.329 @sf +68 940 p 15 c +cmbx10.329 @sf +23 r (tryCen) s +-1 r (terNeigh) s +-1 r 98 c +0 r (orho) s +2 r 111 c +1 r (dOnExc) s +0 r (hange) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +114 997 p (Determines) s +17 r (whether) s +18 r (windo) s +0 r (ws) s +17 r 98 c +1 r (eing) s +18 r (exc) s +0 r (hanged) s +16 r (can) s +18 r 98 c +1 r 101 c +18 r (placed) s +18 r (in) s +18 r (eac) s +0 r 104 c +16 r (others) s +18 r (cen) s +0 r (ter) s +17 r (neigh-) s +114 1053 p 98 c +1 r (orho) s +1 r 111 c +1 r (ds,) s +16 r (or) s +15 r (whether) s +15 r (they) s +15 r 109 c +0 r (ust) s +14 r 98 c +1 r 101 c +15 r (placed) s +15 r (at) s +16 r (exactly) s +15 r (the) s +15 r (same) s +15 r 112 c +1 r (osition.) s +cmsy10.329 @sf +68 1143 p 15 c +cmbx10.329 @sf +23 r (tryCen) s +-1 r (terNeigh) s +-1 r 98 c +0 r (orho) s +2 r 111 c +1 r (dOnOp) s +2 r (en) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 1200 p (tryEdgeNeigh) s +-1 r 98 c +1 r (orho) s +1 r 111 c +2 r (dOnOp) s +1 r (en) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 1256 p (Determines) s +15 r (whether) s +15 r (edge) s +15 r (and) s +15 r (cen) s +0 r (ter) s +14 r (neigh) s +0 r 98 c +0 r (orho) s +1 r 111 c +2 r (ds) s +15 r (can) s +15 r 98 c +1 r 101 c +15 r (used) s +16 r (when) s +15 r (placing) s +15 r 97 c +15 r (windo) s +0 r (w.) s +cmsy10.329 @sf +68 1346 p 15 c +cmbx10.329 @sf +23 r (trySlidingOnResize) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 1403 p (tryCen) s +-1 r (terNeigh) s +-1 r 98 c +0 r (orho) s +2 r 111 c +1 r (dOnResize) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 1459 p (tryEdgeNeigh) s +-1 r 98 c +1 r (orho) s +1 r 111 c +2 r (dOnResize) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 1516 p (Determines) s +19 r (whether) s +19 r (sliding,) s +20 r (edge) s +20 r (and) s +19 r (cen) s +0 r (ter) s +18 r (neigh) s +0 r 98 c +0 r (orho) s +1 r 111 c +1 r (ds) s +20 r (can) s +19 r 98 c +1 r 101 c +19 r (used) s +20 r (when) s +19 r (resizing) s +19 r 97 c +114 1572 p (windo) s +-1 r (w.) s +cmsy10.329 @sf +68 1662 p 15 c +cmbx10.329 @sf +23 r (tryRep) s +1 r (opulateAgainAfterAutoProrate) s +cmr10.329 @sf +0 r 58 c +21 r (on) s +114 1719 p (When) s +19 r (automatically) s +20 r (prorating,) s +20 r 119 c +0 r 101 c +19 r (rep) s +1 r (opulate) s +20 r 98 c +1 r (efore) s +19 r (prorating.) s +34 r (This) s +19 r (options) s +20 r (determines) s +114 1775 p (whether) s +17 r (to) s +18 r (try) s +18 r (rep) s +1 r (opulating) s +17 r (after) s +18 r (prorating) s +18 r (as) s +17 r 119 c +0 r (ell) s +17 r (\(follo) s +-1 r 119 c +-1 r (ed,) s +17 r (if) s +18 r (necessary) s +18 r 98 c +-1 r 121 c +17 r (re-prorating) s +114 1832 p (and) s +15 r (rep) s +1 r (opulating) s +15 r (etc.\)) s +cmsy10.329 @sf +68 1922 p 15 c +cmbx10.329 @sf +23 r (unzo) s +1 r (omTiedListenerIfNecessary) s +cmr10.329 @sf +0 r 58 c +21 r (o\013) s +114 1978 p (If) s +16 r (an) s +17 r (op) s +1 r (eration) s +16 r 119 c +0 r (ould) s +16 r (fail,) s +17 r (this) s +16 r (option) s +17 r (determines) s +16 r (whether) s +17 r (to) s +16 r (unzo) s +1 r (om) s +17 r (the) s +16 r (listener) s +17 r (if) s +16 r (it) s +17 r (has) s +cmbx10.329 @sf +114 2035 p (listenerTiedT) s +-4 r (oZo) s +1 r (om) s +cmr10.329 @sf +15 r (set) s +15 r (and) s +15 r (try) s +15 r (the) s +15 r (op) s +2 r (eration) s +15 r (again.) s +cmbx10.360 @sf +0 2155 p (11.2) s +57 r (Global) s +19 r (Seman) s +0 r (tic) s +18 r 86 c +-4 r (alues) s +cmsy10.329 @sf +68 2241 p 15 c +cmbx10.329 @sf +23 r (absMinWidth) s +cmr10.329 @sf +0 r 58 c +20 r (38) s +cmbx10.329 @sf +114 2297 p (absMinHeigh) s +-1 r 116 c +cmr10.329 @sf +0 r 58 c +19 r (34) s +114 2354 p (The) s +15 r (absolute) s +15 r (minim) s +0 r (um) s +14 r (size) s +15 r (of) s +15 r 97 c +15 r (windo) s +0 r 119 c +14 r (\(including) s +15 r (header) s +15 r (and) s +16 r 98 c +1 r (order\).) s +cmsy10.329 @sf +68 2444 p 15 c +cmbx10.329 @sf +23 r (gra) s +-1 r (vit) s +-1 r 121 c +cmr10.329 @sf +0 r 58 c +19 r (12) s +114 2500 p (The) s +15 r 110 c +0 r (um) s +-2 r 98 c +1 r (er) s +15 r (of) s +15 r (pixels) s +15 r (within) s +15 r (whic) s +0 r 104 c +14 r (gra) s +0 r (vit) s +-2 r 121 c +15 r (op) s +1 r (erates) s +cmsy10.329 @sf +68 2591 p 15 c +cmbx10.329 @sf +23 r (iconPlacemen) s +-1 r 116 c +cmr10.329 @sf +0 r 58 c +20 r 49 c +114 2647 p (Where) s +19 r (icons) s +19 r (should) s +19 r 98 c +1 r 101 c +19 r (placed) s +19 r (within) s +19 r (the) s +19 r (icon) s +19 r (area) s +19 r (\(or) s +19 r (within) s +19 r (the) s +19 r (ro) s +1 r (ot) s +19 r (if) s +19 r (no) s +19 r (icon) s +19 r (area) s +19 r (is) s +114 2704 p (used\):) s +937 2828 p (28) s +@eop +27 @bop0 +cmbx10.329 @sf +[<000070000000007000000000F800000000F800000001FC00000001FC00000003FE00000003F600000003F600000007E30000 + 0007E30000000FE18000000FC18000001FC1C000001F80C000003F80E000003F006000003F006000007E003000007E003000 + 00FC00180000FC00180001FC000C0001F8000C0003F8000E0003F000060007F000070007E000030007E0000380FFFE003FF8 + FFFE003FF8> 40 31 -1 0 39.519] 86 @dc +27 @bop1 +cmr10.329 @sf +114 195 p (desktop) s +17 r (if) s +17 r (closer) s +18 r (placemen) s +0 r 116 c +16 r 119 c +0 r (ould) s +16 r (succeed,) s +18 r (but) s +18 r 119 c +-1 r (ould) s +17 r (close) s +17 r 40 c +cmbx10.329 @sf +0 r (AutomaticClose) s +cmr10.329 @sf +0 r 41 c +18 r (or) s +17 r (shrink) s +114 252 p 40 c +cmbx10.329 @sf +0 r (AutomaticShrink) s +cmr10.329 @sf +0 r 41 c +19 r (other) s +20 r (windo) s +0 r (ws) s +19 r (or) s +20 r 119 c +-1 r (ould) s +19 r (cause) s +20 r (the) s +20 r (windo) s +0 r 119 c +18 r 98 c +2 r (eing) s +19 r (op) s +2 r (ened) s +20 r (to) s +19 r (shrink) s +114 308 p 40 c +cmbx10.329 @sf +0 r (Shrink) s +cmr10.329 @sf +0 r (\).) s +cmsy10.329 @sf +68 396 p 15 c +cmbx10.329 @sf +23 r (preferSlidingT) s +-3 r (oAutomaticCloseOnResize) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 452 p (preferSlidingT) s +-4 r (oAutomaticShrinkOnResize) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 509 p (preferSlidingT) s +-4 r (oShrinkOnResize) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +114 565 p (When) s +12 r 97 c +13 r (windo) s +0 r 119 c +11 r (is) s +13 r 98 c +1 r (eing) s +13 r (resized) s +12 r (in) s +13 r (one) s +13 r (direction,) s +13 r (another) s +12 r (windo) s +0 r 119 c +12 r (ma) s +0 r 121 c +11 r 98 c +1 r 101 c +13 r (in) s +13 r (its) s +12 r 119 c +0 r 97 c +-1 r 121 c +-4 r 46 c +18 r (In) s +13 r (that) s +114 622 p (case,) s +15 r 119 c +-1 r 101 c +15 r (try) s +15 r (resizing) s +15 r (it) s +15 r (in) s +15 r (the) s +15 r (other) s +15 r (direction) s +15 r (if) s +cmbx10.329 @sf +15 r (trySlidingOnResize) s +cmr10.329 @sf +16 r (is) s +15 r (set.) s +20 r (These) s +15 r (options) s +114 678 p (additionally) s +18 r (try) s +19 r (sliding) s +19 r (if) s +18 r (resizing) s +19 r 119 c +0 r (ould) s +17 r (succeed,) s +20 r (but) s +19 r 119 c +-1 r (ould) s +18 r (close) s +19 r 40 c +cmbx10.329 @sf +0 r (AutomaticClose) s +cmr10.329 @sf +0 r 41 c +18 r (or) s +114 734 p (shrink) s +19 r 40 c +cmbx10.329 @sf +0 r (AutomaticShrink) s +cmr10.329 @sf +0 r 41 c +20 r (other) s +20 r (windo) s +0 r (ws) s +19 r (or) s +19 r 119 c +0 r (ould) s +19 r (cause) s +20 r (the) s +20 r (windo) s +-1 r 119 c +19 r 98 c +1 r (eing) s +20 r (op) s +2 r (ened) s +19 r (to) s +114 791 p (shrink) s +15 r 40 c +cmbx10.329 @sf +0 r (Shrink) s +cmr10.329 @sf +0 r (\).) s +cmsy10.329 @sf +68 879 p 15 c +cmbx10.329 @sf +23 r (preferCen) s +-1 r (terNeigh) s +-1 r 98 c +0 r (orho) s +2 r 111 c +1 r (dT) s +-3 r (oAutomaticCloseOnResize) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 935 p (preferCen) s +-1 r (terNeigh) s +-1 r 98 c +0 r (orho) s +2 r 111 c +1 r (dT) s +-3 r (oAutomaticShrinkOnResize) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 992 p (preferCen) s +-1 r (terNeigh) s +-1 r 98 c +0 r (orho) s +2 r 111 c +1 r (dT) s +-3 r (oShrinkOnResize) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 1048 p (preferEdgeNeigh) s +-1 r 98 c +1 r (orho) s +1 r 111 c +2 r (dT) s +-4 r (oAutomaticCloseOnResize) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 1104 p (preferEdgeNeigh) s +-1 r 98 c +1 r (orho) s +1 r 111 c +2 r (dT) s +-4 r (oAutomaticShrinkOnResize) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 1161 p (preferEdgeNeigh) s +-1 r 98 c +1 r (orho) s +1 r 111 c +2 r (dT) s +-4 r (oShrinkOnResize) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +114 1217 p (When) s +15 r 97 c +16 r (windo) s +0 r 119 c +14 r (is) s +16 r (resized,) s +15 r (it) s +16 r (ma) s +0 r 121 c +14 r 98 c +1 r 101 c +16 r (mo) s +0 r 118 c +-1 r (ed) s +14 r (within) s +16 r (its) s +15 r (cen) s +0 r (ter) s +15 r (or) s +15 r (edge) s +16 r (neigh) s +-1 r 98 c +1 r (orho) s +1 r 111 c +1 r (ds) s +16 r (if) s +15 r (the) s +114 1274 p (resize) s +16 r (or) s +17 r (sliding) s +17 r (resize) s +17 r (cannot) s +16 r 98 c +2 r 101 c +16 r (done) s +17 r (or) s +17 r (cause) s +16 r (windo) s +0 r (ws) s +16 r (to) s +17 r (close) s +16 r (or) s +17 r (shrink.) s +25 r (These) s +17 r (options) s +114 1330 p (con) s +-1 r (trol) s +15 r (when) s +15 r (mo) s +-1 r 118 c +-1 r (emen) s +-1 r 116 c +14 r (within) s +15 r (the) s +15 r (neigh) s +0 r 98 c +0 r (orho) s +2 r 111 c +1 r 100 c +15 r (is) s +15 r (tried.) s +cmsy10.329 @sf +68 1418 p 15 c +cmbx10.329 @sf +23 r (preferUnzo) s +1 r (omT) s +-3 r (oClose) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +114 1474 p (When) s +14 r 97 c +15 r (zo) s +1 r (omed) s +14 r (windo) s +0 r 119 c +14 r (cannot) s +14 r 98 c +1 r 101 c +15 r (op) s +1 r (ened) s +15 r (on) s +14 r (an) s +15 r (explicit) s +14 r (or) s +15 r (rep) s +1 r (opulating) s +14 r (op) s +2 r (en,) s +14 r (unzo) s +2 r (oming) s +114 1531 p (ma) s +-1 r 121 c +17 r (allo) s +0 r 119 c +16 r (the) s +18 r (windo) s +0 r 119 c +16 r (to) s +18 r (op) s +1 r (en.) s +28 r (This) s +18 r (option) s +17 r (determines) s +18 r (whether) s +18 r (unzo) s +1 r (oming) s +18 r (is) s +17 r (allo) s +0 r 119 c +-1 r (ed) s +17 r (in) s +114 1587 p (this) s +15 r (case.) s +cmsy10.329 @sf +68 1675 p 15 c +cmbx10.329 @sf +23 r (prorateLo) s +1 r (cally) s +cmr10.329 @sf +0 r 58 c +21 r (on) s +114 1732 p (If) s +17 r (on,) s +18 r (then) s +18 r (prorating) s +17 r (will) s +18 r (not) s +17 r (mo) s +0 r 118 c +-1 r 101 c +16 r (windo) s +0 r (ws,) s +17 r (but) s +17 r (will) s +18 r (only) s +17 r (enlarge) s +18 r (them) s +17 r (to) s +18 r (use) s +17 r (up) s +18 r (screen) s +114 1788 p (space.) s +cmsy10.329 @sf +68 1876 p 15 c +cmbx10.329 @sf +23 r (prorateV) s +-3 r (erticallyFirst) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +114 1932 p (The) s +15 r (curren) s +0 r 116 c +15 r (prorating) s +16 r (algorithm) s +16 r (prorates) s +15 r (in) s +16 r (eac) s +0 r 104 c +15 r (dimension) s +16 r (separately) s +-3 r 46 c +21 r (This) s +16 r (option) s +16 r (deter-) s +114 1989 p (mines) s +15 r (whether) s +15 r (to) s +15 r (prorate) s +15 r 118 c +0 r (ertically) s +14 r (\014rst.) s +cmsy10.329 @sf +68 2076 p 15 c +cmbx10.329 @sf +23 r (rep) s +1 r (opulateStrictly) s +cmr10.329 @sf +0 r 58 c +21 r (o\013) s +114 2133 p (Windo) s +-1 r (ws) s +15 r (are) s +16 r (rep) s +1 r (opulated) s +15 r (most) s +16 r (recen) s +0 r (tly) s +14 r (closed) s +16 r (\014rst.) s +21 r (If) s +16 r 97 c +16 r (closed) s +15 r (windo) s +0 r 119 c +14 r (cannot) s +16 r 98 c +1 r 101 c +16 r (rep) s +1 r (opu-) s +114 2189 p (lated,) s +17 r (and) s +17 r (this) s +17 r (option) s +17 r (is) s +17 r (on,) s +18 r (then) s +17 r (no) s +17 r (attempt) s +17 r (is) s +17 r (made) s +17 r (to) s +17 r (rep) s +2 r (opulate) s +17 r (other) s +17 r (windo) s +-1 r (ws) s +16 r (closed) s +114 2246 p (less) s +15 r (recen) s +0 r (tly) s +-4 r 46 c +cmsy10.329 @sf +68 2334 p 15 c +cmbx10.329 @sf +23 r (rep) s +1 r (opulateAutoClosedOnly) s +cmr10.329 @sf +0 r 58 c +21 r (on) s +114 2390 p (If) s +16 r (this) s +15 r (option) s +16 r (is) s +16 r (set,) s +16 r (then) s +16 r (no) s +16 r (attempt) s +16 r (is) s +16 r (made) s +16 r (to) s +16 r (rep) s +1 r (opulate) s +16 r (windo) s +0 r (ws) s +15 r (whic) s +0 r 104 c +15 r 119 c +-1 r (ere) s +15 r (explicitly) s +114 2446 p (closed) s +15 r (on) s +15 r (an) s +15 r (explicit) s +15 r (rep) s +2 r (opulate.) s +cmsy10.329 @sf +68 2534 p 15 c +cmbx10.329 @sf +23 r (requirePreviousP) s +-1 r (ositionOnAutoRep) s +1 r (opulate) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 2591 p (requirePreviousP) s +-1 r (ositionOnExplicitRep) s +1 r (opulate) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 2647 p (When) s +13 r 97 c +14 r (windo) s +0 r 119 c +12 r (is) s +14 r 98 c +1 r (eing) s +14 r (rep) s +1 r (opulated,) s +14 r (these) s +14 r (options) s +13 r (require) s +14 r (that) s +14 r (it) s +13 r 98 c +1 r 101 c +14 r (placed) s +14 r (at) s +13 r (its) s +14 r (previous) s +114 2704 p 112 c +1 r (osition.) s +937 2828 p (27) s +@eop +26 @bop0 +26 @bop1 +cmr10.329 @sf +114 195 p (Determine) s +10 r (whether) s +10 r (it) s +11 r (is) s +10 r 98 c +2 r (etter) s +10 r (to) s +10 r (close) s +11 r (other) s +10 r (windo) s +0 r (ws) s +9 r (or) s +11 r (to) s +10 r (shrink) s +11 r (the) s +10 r (windo) s +0 r 119 c +9 r 98 c +1 r (eing) s +11 r (op) s +1 r (erated) s +114 252 p (up) s +1 r (on) s +15 r (\(assuming) s +15 r 98 c +1 r (oth) s +16 r (are) s +15 r 112 c +1 r (ermitted) s +15 r 98 c +0 r 121 c +14 r (other) s +15 r (options\).) s +cmsy10.329 @sf +68 345 p 15 c +cmbx10.329 @sf +23 r (preferExc) s +-1 r (hangedLo) s +1 r (cationOnIconizing) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 402 p (When) s +18 r (exc) s +-1 r (hanging) s +17 r (an) s +19 r (iconized) s +18 r (windo) s +-1 r 119 c +17 r (and) s +18 r (an) s +18 r (op) s +2 r (en) s +18 r (windo) s +0 r (w,) s +17 r (determines) s +18 r (whether) s +18 r (the) s +18 r (pre-) s +114 458 p (ferred) s +15 r (lo) s +2 r (cation) s +15 r (of) s +16 r (the) s +16 r (icon) s +15 r (for) s +16 r (the) s +16 r (newly) s +16 r (closed) s +15 r (windo) s +0 r 119 c +15 r (is) s +15 r (its) s +16 r (previous) s +16 r (icon) s +16 r 112 c +1 r (osition,) s +16 r (or) s +15 r (the) s +114 515 p 112 c +1 r (osition) s +15 r (of) s +15 r (the) s +15 r (curren) s +0 r (tly) s +14 r (icon.) s +cmsy10.329 @sf +68 609 p 15 c +cmbx10.329 @sf +23 r (preferExc) s +-1 r (hangedLo) s +1 r (cationOnOp) s +1 r (ening) s +cmr10.329 @sf +0 r 58 c +21 r (on) s +114 665 p (If) s +17 r (the) s +17 r (option) s +18 r (is) s +17 r (set) s +17 r (when) s +18 r (exc) s +-1 r (hanging) s +17 r (an) s +17 r (iconized) s +17 r (windo) s +0 r 119 c +17 r (and) s +17 r (an) s +17 r (op) s +2 r (en) s +17 r (windo) s +0 r (w,) s +16 r (and) s +18 r (if) s +17 r (the) s +114 721 p (curren) s +-1 r (tly) s +10 r (closed) s +10 r (windo) s +0 r 119 c +9 r (has) s +10 r (not) s +10 r 98 c +2 r (een) s +10 r 112 c +1 r (ositioned) s +10 r (or) s +11 r (do) s +1 r (es) s +10 r (not) s +11 r (require) s +10 r (placemen) s +0 r 116 c +9 r (at) s +10 r (its) s +10 r (previous) s +114 778 p 112 c +1 r (osition,) s +15 r (then) s +14 r (an) s +15 r (attempt) s +14 r (is) s +15 r (made) s +14 r (to) s +15 r (place) s +14 r (the) s +15 r (newly) s +14 r (op) s +2 r (ened) s +14 r (windo) s +0 r 119 c +13 r (at) s +15 r (the) s +14 r (lo) s +2 r (cation) s +14 r (of) s +15 r (the) s +114 834 p (windo) s +-1 r 119 c +15 r (it) s +15 r (is) s +15 r 98 c +1 r (eing) s +15 r (exc) s +0 r (hanged) s +14 r (with.) s +cmsy10.329 @sf +68 928 p 15 c +cmbx10.329 @sf +23 r (preferPreviousP) s +-1 r (ositionOnAutoRep) s +1 r (opulate) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 985 p (preferPreviousP) s +-1 r (ositionOnExplicitRep) s +1 r (opulate) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 1041 p (When) s +15 r 97 c +16 r (windo) s +0 r 119 c +15 r (is) s +16 r 98 c +1 r (eing) s +16 r (rep) s +1 r (opulated,) s +16 r (determines) s +16 r (if) s +16 r (an) s +15 r (attempt) s +16 r (is) s +16 r (\014rst) s +16 r (made) s +16 r (to) s +15 r (place) s +16 r (it) s +16 r (at) s +114 1098 p (its) s +15 r (previous) s +15 r (lo) s +1 r (cation.) s +cmsy10.329 @sf +68 1191 p 15 c +cmbx10.329 @sf +23 r (preferCen) s +-1 r (terNeigh) s +-1 r 98 c +0 r (orho) s +2 r 111 c +1 r (dT) s +-3 r (oAutomaticCloseOnOp) s +0 r (en) s +cmr10.329 @sf +0 r 58 c +21 r (o\013) s +cmbx10.329 @sf +114 1248 p (preferCen) s +-1 r (terNeigh) s +-1 r 98 c +0 r (orho) s +2 r 111 c +1 r (dT) s +-3 r (oAutomaticShrinkOnOp) s +0 r (en) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 1304 p (preferCen) s +-1 r (terNeigh) s +-1 r 98 c +0 r (orho) s +2 r 111 c +1 r (dT) s +-3 r (oShrinkOnOp) s +0 r (en) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 1361 p (When) s +15 r 97 c +16 r (windo) s +0 r 119 c +14 r (is) s +16 r 98 c +1 r (eing) s +16 r (placed) s +15 r (at) s +16 r 97 c +16 r (lo) s +1 r (cation,) s +16 r (it) s +15 r (ma) s +0 r 121 c +15 r 98 c +1 r 101 c +16 r (placed) s +15 r (an) s +0 r (ywhere) s +15 r (where) s +15 r (that) s +16 r (lo) s +1 r (ca-) s +114 1417 p (tion) s +13 r (is) s +14 r (inside) s +13 r (the) s +13 r (windo) s +0 r 119 c +13 r 124 c +13 r (that) s +13 r (is) s +14 r (called) s +13 r (its) s +14 r (\\cen) s +-1 r (ter) s +13 r (neigh) s +0 r 98 c +0 r (orho) s +1 r 111 c +1 r (d") s +14 r 124 c +13 r (dep) s +2 r (ending) s +13 r (up) s +1 r (on) s +14 r (the) s +cmbx10.329 @sf +114 1474 p (tryCen) s +-1 r (terNeigh) s +-1 r 98 c +0 r (orho) s +2 r 111 c +1 r (d...) s +cmr10.329 @sf +28 r (options.) s +29 r (If) s +17 r (none) s +18 r (of) s +18 r (these) s +18 r (options) s +18 r (are) s +17 r (set,) s +19 r (the) s +18 r (cen) s +0 r (ter) s +16 r (neigh-) s +114 1530 p 98 c +1 r (orho) s +1 r 111 c +1 r 100 c +16 r (will) s +15 r (only) s +16 r 98 c +1 r 101 c +16 r (tried) s +15 r (if) s +16 r (the) s +15 r (windo) s +0 r 119 c +15 r (cannot) s +15 r 98 c +1 r 101 c +16 r (exactly) s +16 r (placed) s +15 r (where) s +16 r (requested.) s +21 r (These) s +114 1587 p (options) s +21 r (additionally) s +21 r (try) s +21 r (the) s +21 r (cen) s +0 r (ter) s +20 r (neigh) s +0 r 98 c +0 r (orho) s +1 r 111 c +1 r 100 c +21 r (if) s +22 r (exact) s +21 r (placemen) s +-1 r 116 c +20 r 119 c +0 r (ould) s +20 r (succeed,) s +23 r (but) s +114 1643 p 119 c +-1 r (ould) s +19 r (close) s +19 r 40 c +cmbx10.329 @sf +0 r (AutomaticClose) s +cmr10.329 @sf +0 r 41 c +19 r (or) s +19 r (shrink) s +20 r 40 c +cmbx10.329 @sf +0 r (AutomaticShrink) s +cmr10.329 @sf +0 r 41 c +19 r (other) s +19 r (windo) s +0 r (ws) s +18 r (or) s +20 r 119 c +-1 r (ould) s +114 1699 p (cause) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r 98 c +1 r (eing) s +15 r (op) s +2 r (ened) s +15 r (to) s +15 r (shrink) s +15 r 40 c +cmbx10.329 @sf +0 r (Shrink) s +cmr10.329 @sf +0 r (\).) s +cmsy10.329 @sf +68 1793 p 15 c +cmbx10.329 @sf +23 r (preferEdgeNeigh) s +-1 r 98 c +1 r (orho) s +1 r 111 c +2 r (dT) s +-4 r (oAutomaticCloseOnOp) s +1 r (en) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 1850 p (preferEdgeNeigh) s +-1 r 98 c +1 r (orho) s +1 r 111 c +2 r (dT) s +-4 r (oAutomaticShrinkOnOp) s +1 r (en) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 1906 p (preferEdgeNeigh) s +-1 r 98 c +1 r (orho) s +1 r 111 c +2 r (dT) s +-4 r (oShrinkOnOp) s +1 r (en) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 1963 p (When) s +13 r 97 c +13 r (windo) s +0 r 119 c +13 r (is) s +13 r 98 c +1 r (eing) s +14 r (placed) s +13 r (at) s +14 r 97 c +13 r (lo) s +1 r (cation,) s +14 r (it) s +13 r (ma) s +0 r 121 c +13 r 98 c +1 r 101 c +13 r (placed) s +14 r (an) s +-1 r (ywhere) s +13 r (where) s +13 r (the) s +14 r (windo) s +-1 r 119 c +114 2019 p 119 c +-1 r (ould) s +19 r 111 c +-1 r 118 c +-1 r (erlap) s +18 r (with) s +19 r (the) s +20 r (exact) s +19 r (lo) s +1 r (cation) s +19 r 124 c +20 r (that) s +19 r (is) s +19 r (called) s +19 r (its) s +19 r (\\cen) s +0 r (ter) s +18 r (neigh) s +0 r 98 c +0 r (orho) s +2 r 111 c +1 r (d") s +19 r 124 c +19 r (de-) s +114 2076 p 112 c +1 r (ending) s +14 r (up) s +1 r (on) s +14 r (the) s +cmbx10.329 @sf +14 r (tryEdgeNeigh) s +0 r 98 c +0 r (orho) s +2 r 111 c +1 r (d...) s +cmr10.329 @sf +20 r (options.) s +20 r (If) s +14 r (none) s +14 r (of) s +14 r (these) s +14 r (options) s +14 r (are) s +14 r (set,) s +14 r (the) s +114 2132 p (edge) s +15 r (neigh) s +0 r 98 c +0 r (orho) s +1 r 111 c +2 r 100 c +15 r (will) s +16 r (only) s +15 r 98 c +2 r 101 c +15 r (tried) s +16 r (if) s +15 r (the) s +16 r (windo) s +-1 r 119 c +15 r (cannot) s +16 r 98 c +1 r 101 c +15 r (exactly) s +16 r (placed) s +15 r (closer.) s +22 r (These) s +114 2188 p (options) s +11 r (additionally) s +12 r (try) s +12 r (the) s +11 r (edge) s +12 r (neigh) s +0 r 98 c +0 r (orho) s +1 r 111 c +2 r 100 c +11 r (if) s +12 r (closer) s +12 r (placemen) s +-1 r 116 c +11 r 119 c +0 r (ould) s +11 r (succeed,) s +12 r (but) s +12 r 119 c +-1 r (ould) s +114 2245 p (close) s +12 r 40 c +cmbx10.329 @sf +0 r (AutomaticClose) s +cmr10.329 @sf +0 r 41 c +12 r (or) s +12 r (shrink) s +12 r 40 c +cmbx10.329 @sf +0 r (AutomaticShrink) s +cmr10.329 @sf +0 r 41 c +12 r (other) s +13 r (windo) s +-1 r (ws) s +11 r (or) s +13 r 119 c +-1 r (ould) s +11 r (cause) s +13 r (the) s +114 2301 p (windo) s +-1 r 119 c +15 r 98 c +1 r (eing) s +15 r (op) s +1 r (ened) s +15 r (to) s +16 r (shrink) s +15 r 40 c +cmbx10.329 @sf +0 r (Shrink) s +cmr10.329 @sf +0 r (\).) s +cmsy10.329 @sf +68 2395 p 15 c +cmbx10.329 @sf +23 r (preferDesktopT) s +-3 r (oAutomaticCloseOnAutoOp) s +0 r (en) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 2452 p (preferDesktopT) s +-4 r (oAutomaticShrinkOnAutoOp) s +1 r (en) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 2508 p (preferDesktopT) s +-4 r (oShrinkOnAutoOp) s +1 r (en) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 2564 p (When) s +22 r 97 c +22 r (windo) s +0 r 119 c +21 r (is) s +23 r (automatically) s +22 r (op) s +1 r (ened,) s +25 r (it) s +22 r (ma) s +0 r 121 c +21 r (express) s +22 r 97 c +23 r (preference) s +22 r (for) s +22 r 98 c +2 r (eing) s +22 r (placed) s +114 2621 p (at) s +21 r (its) s +21 r (previous) s +22 r (lo) s +1 r (cation.) s +39 r (If) s +21 r (it) s +22 r (cannot) s +21 r 98 c +1 r 101 c +22 r (op) s +1 r (ened) s +21 r (there) s +22 r (\(or) s +21 r (in) s +21 r 97 c +22 r (neigh) s +-1 r 98 c +1 r (orho) s +1 r 111 c +1 r 100 c +22 r (of) s +21 r (it\),) s +23 r 119 c +0 r 101 c +114 2677 p (will) s +21 r (try) s +20 r (to) s +21 r (place) s +21 r (it) s +21 r (an) s +0 r (ywhere) s +20 r (on) s +21 r (the) s +20 r (desktop.) s +38 r (These) s +21 r (options) s +21 r (additionally) s +20 r (try) s +21 r (the) s +21 r (en) s +0 r (tire) s +937 2828 p (26) s +@eop +25 @bop0 +25 @bop1 +cmsy10.329 @sf +68 195 p 15 c +cmbx10.329 @sf +23 r (autoDesiredEnlarge) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 252 p (If) s +15 r (on,) s +16 r (then) s +16 r (an) s +15 r (attempt) s +16 r (is) s +16 r (made) s +15 r (after) s +16 r (ev) s +0 r (ery) s +14 r (op) s +2 r (eration) s +15 r (to) s +16 r (enlarge) s +16 r (eac) s +-1 r 104 c +15 r (windo) s +0 r 119 c +14 r (to) s +16 r (its) s +16 r (desired) s +114 308 p (size) s +15 r (without) s +15 r (mo) s +0 r (ving) s +14 r (or) s +15 r (shrinking) s +15 r (other) s +15 r (windo) s +0 r (ws.) s +cmsy10.329 @sf +68 401 p 15 c +cmbx10.329 @sf +23 r (autoProrate) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 457 p (If) s +15 r (on,) s +15 r (then) s +15 r (automatically) s +15 r (prorates) s +15 r (after) s +16 r (eac) s +-1 r 104 c +14 r (op) s +2 r (eration.) s +cmsy10.329 @sf +68 550 p 15 c +cmbx10.329 @sf +23 r (autoRep) s +1 r (opulateLast) s +cmr10.329 @sf +0 r 58 c +21 r (o\013) s +114 606 p (If) s +19 r (on,) s +19 r (then) s +19 r (if) s +19 r 97 c +19 r (windo) s +0 r 119 c +18 r (is) s +18 r (closed) s +19 r (automatically) s +19 r (during) s +19 r (an) s +19 r (op) s +1 r (eration,) s +20 r (an) s +19 r (attempt) s +19 r (is) s +19 r (made) s +114 663 p (to) s +19 r (reop) s +2 r (en) s +19 r (it.) s +34 r (The) s +20 r (windo) s +-1 r 119 c +19 r (ma) s +0 r 121 c +18 r (app) s +2 r (ear) s +19 r (to) s +20 r (ha) s +0 r 118 c +-2 r 101 c +19 r 98 c +1 r (een) s +20 r (mo) s +0 r 118 c +-2 r (ed,) s +20 r (but) s +20 r (it) s +19 r 119 c +0 r (as) s +19 r (closed) s +20 r (and) s +19 r (then) s +114 719 p (reop) s +1 r (ened.) s +cmsy10.329 @sf +68 812 p 15 c +cmbx10.329 @sf +23 r (autoRep) s +1 r (opulateOnAutoUnzo) s +2 r (om) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 869 p (autoRep) s +1 r (opulateOnExplicitUnzo) s +2 r (om) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 925 p (These) s +19 r (determine) s +18 r (whether) s +19 r (an) s +19 r (attempt) s +19 r (is) s +19 r (made) s +19 r (to) s +19 r (rep) s +1 r (opulate) s +19 r (closed) s +19 r (windo) s +0 r (ws) s +17 r (follo) s +0 r (wing) s +18 r (an) s +114 981 p (unzo) s +1 r (om.) s +27 r (An) s +17 r (automatic) s +18 r (unzo) s +1 r (om) s +18 r 111 c +1 r (ccurs) s +17 r (when) s +18 r 97 c +17 r (zo) s +1 r (omed) s +18 r (windo) s +0 r 119 c +16 r (whic) s +0 r 104 c +16 r (has) s +cmbx10.329 @sf +18 r (listenerTied-) s +114 1038 p 84 c +-4 r (oZo) s +1 r (om) s +cmr10.329 @sf +18 r (is) s +18 r (no) s +18 r (longer) s +18 r (the) s +19 r (listener.) s +29 r (If) s +18 r (the) s +18 r (windo) s +0 r 119 c +17 r (is) s +18 r (destro) s +0 r 121 c +-1 r (ed,) s +18 r (then) s +18 r (rep) s +1 r (opulation) s +18 r (will) s +19 r 98 c +1 r 101 c +114 1094 p (done) s +15 r (if) s +15 r (either) s +15 r (of) s +15 r (these) s +15 r (options) s +16 r (is) s +15 r (set.) s +cmsy10.329 @sf +68 1187 p 15 c +cmbx10.329 @sf +23 r (autoRep) s +1 r (opulateOnClose) s +cmr10.329 @sf +0 r 58 c +21 r (on) s +114 1244 p (This) s +19 r (determines) s +20 r (whether) s +20 r (an) s +19 r (attempt) s +20 r (is) s +20 r (made) s +20 r (to) s +19 r (rep) s +2 r (opulate) s +19 r (closed) s +20 r (windo) s +0 r (ws) s +18 r (follo) s +0 r (wing) s +19 r (an) s +114 1300 p (explicit) s +15 r (close) s +15 r (of) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (or) s +15 r (the) s +15 r (termination) s +16 r (of) s +15 r (the) s +15 r (clien) s +0 r (t.) s +cmsy10.329 @sf +68 1393 p 15 c +cmbx10.329 @sf +23 r (biasedAutoProrate) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 1449 p (When) s +15 r (set,) s +15 r (forces) s +15 r (automatic) s +15 r (prorating) s +15 r (to) s +16 r (mak) s +-1 r 101 c +14 r (the) s +16 r (most) s +15 r (recen) s +-1 r (tly) s +15 r (used) s +15 r (windo) s +0 r (ws) s +14 r (the) s +15 r (largest.) s +cmsy10.329 @sf +68 1542 p 15 c +cmbx10.329 @sf +23 r (enableAutoRep) s +1 r (opulationDuringLa) s +0 r 121 c +-2 r (out) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 1599 p (enableAutoSizingDuringLa) s +-1 r 121 c +-1 r (out) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +114 1655 p (When) s +13 r (initially) s +14 r (starting) s +13 r (the) s +14 r (windo) s +-1 r 119 c +13 r (manager,) s +14 r (if) s +13 r (these) s +14 r (options) s +13 r (are) s +14 r (o\013,) s +14 r (then) s +13 r (automatic) s +14 r (rep) s +1 r (op-) s +114 1711 p (ulation,) s +16 r (automatic) s +16 r (enlargemen) s +0 r 116 c +15 r (to) s +16 r (desired) s +17 r (size,) s +16 r (and) s +16 r (automatic) s +16 r (prorating) s +17 r (are) s +16 r (disabled) s +16 r (un) s +0 r (til) s +114 1768 p (all) s +15 r (windo) s +0 r (ws) s +14 r (matc) s +-1 r (hing) s +15 r (en) s +-1 r (tries) s +14 r (in) s +cmbx10.329 @sf +16 r (.rtl.la) s +-1 r 121 c +-1 r (out) s +cmr10.329 @sf +14 r (ha) s +0 r 118 c +-2 r 101 c +14 r 98 c +2 r (een) s +15 r (created.) s +cmsy10.329 @sf +68 1861 p 15 c +cmbx10.329 @sf +23 r (enableGra) s +-1 r (vit) s +-1 r 121 c +cmr10.329 @sf +0 r 58 c +19 r (on) s +114 1917 p (Uses) s +15 r (gra) s +0 r (vit) s +-2 r 121 c +14 r (to) s +16 r (line) s +15 r (up) s +15 r (windo) s +0 r (ws.) s +cmsy10.329 @sf +68 2010 p 15 c +cmbx10.329 @sf +23 r (onlyRep) s +1 r (opulateSinceOnAutoUnzo) s +2 r (om) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 2066 p (onlyRep) s +1 r (opulateSinceOnExplicitUnzo) s +2 r (om) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 2123 p (If) s +21 r (on,) s +23 r (then) s +21 r (follo) s +-1 r (wing) s +21 r (an) s +21 r (unzo) s +1 r (om) s +21 r (or) s +22 r (destro) s +-1 r 121 c +-4 r 44 c +22 r (only) s +21 r (windo) s +0 r (ws) s +20 r (closed) s +22 r (since) s +21 r (the) s +21 r (windo) s +0 r 119 c +20 r 119 c +0 r (as) s +114 2179 p (zo) s +1 r (omed) s +15 r (will) s +15 r 98 c +1 r 101 c +16 r (reop) s +1 r (ened.) s +cmsy10.329 @sf +68 2272 p 15 c +cmbx10.329 @sf +23 r (onlyRep) s +1 r (opulateSinceOnClose) s +cmr10.329 @sf +0 r 58 c +21 r (on) s +114 2328 p (If) s +14 r (on,) s +15 r (then) s +14 r (follo) s +0 r (wing) s +13 r (an) s +14 r (explicit) s +15 r (close) s +14 r (or) s +15 r (destro) s +-1 r 121 c +-3 r 44 c +13 r (only) s +15 r (windo) s +-1 r (ws) s +14 r (closed) s +14 r (since) s +14 r (the) s +15 r (windo) s +0 r 119 c +13 r 119 c +0 r (as) s +114 2385 p (last) s +15 r (op) s +1 r (ened) s +15 r (will) s +15 r 98 c +2 r 101 c +15 r (reop) s +1 r (ened.) s +cmsy10.329 @sf +68 2478 p 15 c +cmbx10.329 @sf +23 r (preferCloseT) s +-3 r (oShrinkOnAutoOp) s +0 r (en) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 2534 p (preferCloseT) s +-4 r (oShrinkOnCen) s +-1 r (terOp) s +0 r (en) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 2591 p (preferCloseT) s +-4 r (oShrinkOnCornerOp) s +1 r (en) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 2647 p (preferCloseT) s +-4 r (oShrinkOnExc) s +-1 r (hange) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 2704 p (preferCloseT) s +-4 r (oShrinkOnResize) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +937 2828 p (25) s +@eop +24 @bop0 +24 @bop1 +cmsy10.329 @sf +68 195 p 15 c +cmbx10.329 @sf +23 r (allo) s +-1 r (wAutomaticShrink) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 252 p (Determines) s +15 r (whether) s +15 r (windo) s +0 r (ws) s +14 r (can) s +15 r 98 c +2 r 101 c +15 r (shrunk) s +15 r (automatically) s +15 r (\(as) s +15 r 97 c +16 r (side) s +15 r (e\013ect) s +15 r (of) s +15 r (an) s +16 r (op) s +1 r (eration) s +114 308 p (on) s +15 r (another) s +15 r (windo) s +0 r (w\).) s +cmsy10.329 @sf +68 396 p 15 c +cmbx10.329 @sf +23 r (allo) s +-1 r (wAutomaticShrinkMoreRecen) s +-1 r 116 c +cmr10.329 @sf +0 r 58 c +19 r (on) s +114 452 p (If) s +cmbx10.329 @sf +17 r (allo) s +0 r (wAutomaticShrink) s +cmr10.329 @sf +16 r (is) s +17 r (on,) s +18 r (but) s +18 r (this) s +17 r (option) s +18 r (is) s +17 r (o\013,) s +18 r (then) s +18 r 97 c +17 r (windo) s +0 r 119 c +16 r (can) s +17 r 98 c +2 r 101 c +17 r (shrunk) s +18 r (as) s +114 509 p 97 c +18 r (result) s +18 r (of) s +18 r 97 c +18 r (side) s +18 r (e\013ect) s +19 r (on) s +18 r (another) s +18 r (windo) s +0 r 119 c +17 r (only) s +18 r (if) s +18 r (the) s +18 r (other) s +18 r (windo) s +0 r 119 c +17 r (has) s +18 r 98 c +2 r (een) s +18 r (used) s +18 r (more) s +114 565 p (recen) s +-1 r (tly) s +-3 r 46 c +cmsy10.329 @sf +68 653 p 15 c +cmbx10.329 @sf +23 r (allo) s +-1 r (wAutomaticShrinkOnAutoRep) s +1 r (opulate) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +cmbx10.329 @sf +114 709 p (allo) s +-1 r (wAutomaticShrinkOnExplicitRep) s +1 r (opulate) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 766 p (Determines) s +21 r (whether) s +21 r (windo) s +0 r (ws) s +20 r (on) s +21 r (the) s +22 r (screen) s +21 r (can) s +21 r 98 c +2 r 101 c +21 r (shrunk) s +21 r (as) s +21 r 97 c +22 r (result) s +21 r (of) s +21 r 97 c +22 r (Rep) s +1 r (opulate.) s +114 822 p (Explicit) s +12 r (rep) s +2 r (opulates) s +12 r (are) s +13 r (those) s +13 r (done) s +12 r (when) s +13 r (the) s +13 r (user) s +13 r (selects) s +12 r (Rep) s +2 r (opulate) s +12 r (from) s +13 r (the) s +13 r (men) s +0 r (u.) s +18 r (Auto-) s +114 879 p (matic) s +14 r (rep) s +2 r (opulates) s +14 r (include) s +15 r (all) s +15 r (other) s +15 r (attempt) s +14 r 98 c +0 r 121 c +14 r (the) s +15 r (windo) s +-1 r 119 c +14 r (manager) s +15 r (to) s +15 r (automatically) s +14 r (op) s +2 r (en) s +114 935 p 97 c +15 r (closed) s +15 r (windo) s +0 r (w.) s +cmsy10.329 @sf +68 1023 p 15 c +cmbx10.329 @sf +23 r (allo) s +-1 r (wAutomaticCloseOnExc) s +-1 r (hange) s +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 1079 p (allo) s +-1 r (wAutomaticShrinkOnExc) s +-1 r (hange) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +114 1136 p (Determines) s +12 r (whether) s +13 r (the) s +12 r (other) s +13 r (windo) s +0 r (ws) s +11 r (on) s +13 r (the) s +12 r (screen) s +13 r (can) s +12 r 98 c +2 r 101 c +12 r (shrunk) s +13 r (or) s +12 r (closed) s +13 r (as) s +12 r 97 c +13 r (side) s +13 r (e\013ect) s +114 1192 p (of) s +15 r (an) s +15 r (Exc) s +0 r (hange.) s +cmsy10.329 @sf +68 1280 p 15 c +cmbx10.329 @sf +23 r (allo) s +-1 r (wAutomaticCloseByClien) s +-1 r 116 c +cmr10.329 @sf +0 r 58 c +19 r (on) s +cmbx10.329 @sf +114 1336 p (allo) s +-1 r (wAutomaticShrinkByClien) s +-1 r 116 c +cmr10.329 @sf +0 r 58 c +19 r (on) s +114 1393 p (When) s +14 r 97 c +14 r (clien) s +-1 r 116 c +13 r (in) s +0 r 118 c +-1 r (ok) s +-1 r (es) s +13 r 97 c +14 r (windo) s +-1 r 119 c +13 r (op) s +2 r (eration,) s +14 r (these) s +14 r (options) s +14 r (determine) s +14 r (whether) s +14 r (other) s +14 r (windo) s +0 r (ws) s +114 1449 p (on) s +15 r (the) s +15 r (screen) s +15 r (can) s +15 r 98 c +2 r 101 c +15 r (shrunk) s +15 r (or) s +15 r (closed) s +15 r (as) s +15 r 97 c +15 r (side) s +16 r (e\013ect.) s +cmsy10.329 @sf +68 1537 p 15 c +cmbx10.329 @sf +23 r (allo) s +-1 r (wListenerT) s +-4 r (oClose) s +cmr10.329 @sf +0 r 58 c +19 r (on) s +114 1594 p (If) s +14 r (o\013,) s +15 r (then) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (whic) s +-1 r 104 c +14 r (is) s +15 r (the) s +15 r (listener) s +15 r (cannot) s +14 r (close) s +15 r (as) s +15 r 97 c +15 r (side) s +15 r (e\013ect) s +15 r (of) s +14 r (an) s +15 r (op) s +2 r (eration) s +14 r (on) s +114 1650 p (another) s +15 r (windo) s +0 r (w.) s +cmsy10.329 @sf +68 1738 p 15 c +cmbx10.329 @sf +23 r (allo) s +-1 r (wListenerT) s +-4 r (oChangeByClien) s +-1 r 116 c +cmr10.329 @sf +0 r 58 c +19 r (o\013) s +cmbx10.329 @sf +114 1794 p (allo) s +-1 r (wListenerT) s +-4 r (oCloseByClien) s +-2 r 116 c +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 1851 p (When) s +16 r 97 c +17 r (clien) s +0 r 116 c +16 r (in) s +-1 r 118 c +-1 r (ok) s +-1 r (es) s +15 r 97 c +17 r (windo) s +0 r 119 c +16 r (op) s +1 r (eration,) s +17 r (these) s +17 r (options) s +17 r (determine) s +16 r (whether) s +17 r (an) s +17 r (activ) s +-1 r 101 c +16 r (lis-) s +114 1907 p (tener) s +15 r (can) s +15 r 98 c +1 r 101 c +15 r (shrunk) s +16 r (or) s +15 r (closed) s +15 r (as) s +15 r 97 c +15 r (side) s +15 r (e\013ect.) s +cmsy10.329 @sf +68 1995 p 15 c +cmbx10.329 @sf +23 r (allo) s +-1 r (wShrinkOnAutoOp) s +1 r (en) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 2051 p (allo) s +-1 r (wShrinkOnCen) s +-1 r (terOp) s +0 r (en) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +cmbx10.329 @sf +114 2108 p (allo) s +-1 r (wShrinkOnCornerOp) s +1 r (en) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 2164 p (An) s +20 r (attempt) s +20 r (to) s +20 r (place) s +21 r 97 c +20 r (windo) s +0 r 119 c +19 r (ma) s +0 r 121 c +19 r (not) s +20 r (succeed) s +20 r (if) s +21 r (surrounding) s +20 r (windo) s +0 r (ws) s +19 r (are) s +20 r (in) s +21 r (the) s +20 r 119 c +0 r 97 c +-2 r 121 c +114 2221 p (whic) s +-1 r 104 c +16 r (cannot) s +17 r 98 c +1 r 101 c +17 r (shrunk) s +17 r (or) s +17 r (closed.) s +25 r (In) s +17 r (that) s +16 r (case,) s +18 r (the) s +16 r (windo) s +0 r 119 c +16 r 98 c +1 r (eing) s +17 r (placed) s +17 r (ma) s +0 r 121 c +15 r (ha) s +0 r 118 c +-1 r 101 c +16 r (to) s +16 r 98 c +2 r 101 c +114 2277 p (made) s +16 r (smaller) s +16 r (than) s +16 r (its) s +16 r (desired) s +16 r (size.) s +23 r (These) s +16 r (options) s +16 r (determine) s +16 r (whether) s +17 r (that) s +16 r (is) s +16 r 112 c +1 r (ermitted.) s +23 r 65 c +114 2334 p (corner) s +19 r (op) s +1 r (en) s +19 r (is) s +19 r (one) s +19 r (where) s +20 r (the) s +19 r (new) s +19 r (lo) s +1 r (cation) s +19 r (and) s +19 r (corners) s +19 r (of) s +20 r (the) s +19 r (windo) s +-1 r 119 c +19 r (are) s +19 r 99 c +-1 r (hosen) s +19 r 98 c +-1 r 121 c +18 r (the) s +114 2390 p (user.) s +22 r 65 c +16 r (cen) s +0 r (ter) s +15 r (op) s +1 r (en) s +16 r (is) s +16 r (one) s +16 r (where) s +16 r (only) s +15 r (the) s +16 r (cen) s +0 r (ter) s +15 r (is) s +16 r 99 c +0 r (hosen) s +15 r 98 c +-1 r 121 c +15 r (the) s +16 r (user.) s +23 r (If) s +16 r (they) s +15 r (are) s +16 r (not) s +16 r (set) s +114 2446 p (and) s +15 r (shrinking) s +15 r (is) s +15 r (necessary) s +-3 r 44 c +14 r (the) s +16 r (op) s +1 r (eration) s +15 r (will) s +15 r (fail.) s +cmsy10.329 @sf +68 2534 p 15 c +cmbx10.329 @sf +23 r (allo) s +-1 r (wShrinkOnResize) s +cmr10.329 @sf +0 r 58 c +20 r (o\013) s +114 2591 p (When) s +21 r 97 c +21 r (user) s +21 r (explicitly) s +21 r (resizes) s +21 r 97 c +22 r (windo) s +-1 r (w,) s +22 r (the) s +21 r (size) s +21 r (selected) s +21 r (ma) s +0 r 121 c +20 r 98 c +1 r 101 c +22 r (to) s +1 r 111 c +21 r (large) s +21 r 124 c +21 r (that) s +21 r (is,) s +114 2647 p (adjacen) s +-1 r 116 c +15 r (windo) s +0 r (ws) s +15 r (ma) s +0 r 121 c +14 r (not) s +16 r 98 c +2 r 101 c +15 r (able) s +16 r (to) s +16 r 98 c +1 r 101 c +16 r (shrunk) s +16 r (or) s +16 r (closed.) s +22 r (If) s +16 r (the) s +16 r (option) s +16 r (is) s +16 r (on,) s +16 r (the) s +15 r (windo) s +0 r 119 c +114 2704 p (will) s +15 r 98 c +1 r 101 c +15 r (made) s +15 r (as) s +16 r (large) s +15 r (as) s +15 r 112 c +1 r (ossible) s +15 r (up) s +15 r (to) s +16 r (the) s +15 r (size) s +15 r (requested.) s +20 r (If) s +15 r (it) s +15 r (is) s +15 r (o\013,) s +16 r (the) s +15 r (resize) s +15 r (will) s +15 r (fail.) s +937 2828 p (24) s +@eop +23 @bop0 +cmbx10.360 @sf +[<00FF000003FFC0000FC3F0001F00F8003E007C003E007C007E007E007C003E007C003E00FC003F00FC003F00FC003F00FC00 + 3F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F007C003E007C003E007C003E00 + 7C003E003E007C003E007C001F00F8000FC3F00003FFC00000FF0000> 32 32 -2 0 28.642] 48 @dc +[ 48 34 -3 0 54.378] 77 @dc +[ 48 34 -2 0 44.831] 72 @dc +[ 48 34 -2 0 44.831] 78 @dc +[<03FFFFF80003FFFFF8000003F800000003F800000003F800000003F800000003F800000003F800000003F800000003F80000 + 0003F800000003F800000003F800000003F800000003F800000003F800000003F800000003F800000003F800000003F80000 + 0003F80000C003F80060C003F80060C003F80060C003F80060E003F800E0E003F800E06003F800C07003F801C07803F803C0 + 7E03F80FC07FFFFFFFC07FFFFFFFC0> 40 33 -2 0 39.849] 84 @dc +cmbx10.432 @sf +[<0000FFE00000000FFFFE0000003FC07F800000FF001FE00001FC0007F00003F80003F80007F00001FC000FF00001FE001FE0 + 0000FF001FE00000FF003FC000007F803FC000007F807FC000007FC07FC000007FC07F8000003FC0FF8000003FE0FF800000 + 3FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0 + 7F8000003FC07F8000003FC07F8000003FC07FC000007FC03FC000007F803FC000007F801FE00000FF001FE00000FF000FF0 + 0001FE0007F00001FC0003F80003F80001FC0007F000007F001FC000003FC07F80000007FFFC00000000FFE00000> 48 41 -4 0 51.638] 79 @dc +[ 40 39 -2 12 38.189] 112 @dc +[ 16 43 -3 0 19.094] 105 @dc +[ 329 ] /cmti10.329 @newfont +cmti10.329 @sf +[<1F000031C00060E000607000E03800E03C00E01C00E01E00E01E00E01E00700F00700F00700F00700F00380F00380F003C0E + 003A0E001D0C001CF0001C00001C00000E00000E00000E00000E00000700000700000700000700003F8000078000> 24 32 -5 0 20.908] 98 @dc +[<07C000187000301800700E00700F00F00700F00780F003C0F003C0F003C07801E07801E07801E03C01E01C01E01E01C00E01 + C003018001C300007C00> 24 20 -4 0 23.232] 111 @dc +[<38006400E200E200E200E200710070007000700038003800380038001C001C001C001C000E000E000E000E00070007000700 + 070003800380038003801FC003C0> 16 32 -4 0 11.616] 108 @dc +[<07C000183800380400700200700100700000F00000F00000F00000F000007C00007BF000780C003802003C01001C01000E01 + 0007010001C200007C00> 24 20 -4 0 20.908] 101 @dc +[<0F0700308C80705C40703C40F01C40F01C40F00E20F00E00F00E00F00E007807007807007807003807003C03801C03800E03 + 800707800389C000F180> 24 20 -4 0 23.232] 97 @dc +[<3001C07003303803103807083803083803881C03841C01C01C01C01C01C00E00E00E00E00E00E08E00E04700704700704780 + 604740602630C01C0F80> 24 20 -4 0 25.555] 110 @dc +cmbx10.329 @sf +[<3FF8FFF0003FF8FFF00007C01F000007C01F000007C01F000007C01F000007C01F000007C01F000007C01F000007C01F0000 + 07C01F000007C01F000007C01F000007C01F000007C01F000007C01F000007C01F000007C01F0000FFFFFFF800FFFFFFF800 + 07C01F000007C01F000007C01F000007C01F000007C01F000007C03F078007C07F0FC003E07F0FC001E07F8FC000F83FC7C0 + 007FF9FF80000FF07F00> 40 32 0 0 30.492] 11 @dc +cmti10.329 @sf +[<07C3800C26401C1E20180E20180E201C0E201C07101C07001C07001C07000E03800E03800E03808703804701C04301C04381 + C02301C03300E00E00C0> 24 20 -4 0 24.393] 117 @dc +[<300300380070070066003803806200380380E100380380610038038071001C01C070801C01C038001C01C038001C01C03800 + 0E00E01C000E00E01C000E00E01C008E00E01C004700700E004700700E004780680E004740640C002630C318001C0F80F000> 40 20 -4 0 37.171] 109 @dc +[<3000007000003800003800003800003800001C00001C00001C00001C00000E00000E00000E00008E00004703004707804787 + 804783802661001C1E00> 24 20 -4 0 19.166] 114 @dc +[<1C003300310070803080388038401C001C001C000E000E000E008700470043004380230033000E0000000000000000000000 + 0000000001C001E001E000C0> 16 31 -4 0 13.939] 105 @dc +[<07C000183800300400700200700100F00000F00000F00000F00000F000007800007800007800003C02001C07001E07800E07 + 8003008001C100007E00> 24 20 -4 0 20.908] 99 @dc +[<1F8000206000401000E00800F00C00F00C00700E00000E00003E0003FC0007F8000FF0000F80000C00000C06000C07000C03 + 0006010003020000FC00> 24 20 -3 0 18.585] 115 @dc +[<1E003100708070807040704038203800380038001C001C001C001C000E000E000E000E000700FFF007000700038003800380 + 038001C00180> 16 28 -4 0 15.101] 116 @dc +[<3F800060E000F07000783800301C00001C00001C00000E00000E0003CE000C2E001C17001C0F003C07003C07003C03803C03 + 803C03803C03801E01C01E01C01E01C00E01C00F00E00700E00380E001C1E000E270003C60> 24 29 -2 9 20.908] 103 @dc +23 @bop1 +cmbx10.360 @sf +0 195 p (10.6) s +57 r (WM) s +4 r 17 2 ru +17 r (HINTS) s +cmr10.329 @sf +0 281 p (Our) s +17 r (windo) s +0 r 119 c +16 r (manager) s +17 r (supp) s +1 r (orts) s +17 r (dynamic) s +17 r 99 c +0 r (hanges) s +16 r (to) s +cmcsc10.329 @sf +17 r (WM) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +0 r 46 c +17 r (In) s +17 r (particular,) s +17 r 99 c +0 r (hanges) s +16 r (in) s +17 r (the) s +cmbx10.329 @sf +0 337 p (initial) s +3 r 16 2 ru +16 r (state) s +cmr10.329 @sf +15 r (\014eld) s +15 r (are) s +15 r (treated) s +15 r (as) s +16 r (direction) s +15 r (to) s +15 r 99 c +0 r (hange) s +14 r (the) s +15 r (displa) s +0 r 121 c +14 r (state) s +15 r (of) s +15 r (the) s +15 r (windo) s +0 r (w:) s +71 394 p (The) s +15 r (states) s +15 r (ha) s +0 r 118 c +-2 r 101 c +14 r (the) s +16 r (follo) s +-1 r (wing) s +15 r (e\013ects:) s +cmsy10.329 @sf +68 500 p 15 c +cmbx10.329 @sf +23 r (Ignore) s +cmr10.329 @sf +0 r 58 c +19 r (Closes) s +14 r (the) s +14 r (windo) s +-1 r 119 c +13 r (or) s +14 r (icon) s +13 r (if) s +14 r (either) s +14 r 119 c +0 r (as) s +12 r (op) s +2 r (en,) s +13 r (and) s +14 r (remo) s +0 r 118 c +-1 r (es) s +12 r (it) s +14 r (from) s +14 r (the) s +13 r (closed) s +14 r (men) s +0 r 117 c +114 557 p (list.) s +cmsy10.329 @sf +68 650 p 15 c +cmbx10.329 @sf +23 r (Inactiv) s +-1 r 101 c +cmr10.329 @sf +0 r 58 c +20 r (Closes) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (or) s +15 r (icon) s +15 r (if) s +15 r (either) s +15 r 119 c +0 r (as) s +14 r (op) s +2 r (en.) s +cmsy10.329 @sf +68 744 p 15 c +cmbx10.329 @sf +23 r (Iconic) s +cmr10.329 @sf +0 r 58 c +20 r (Closes) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (if) s +15 r (it) s +16 r 119 c +-1 r (as) s +14 r (op) s +2 r (en.) s +20 r (Op) s +1 r (ens) s +15 r (an) s +16 r (icon) s +15 r (if) s +15 r (icons) s +15 r (are) s +15 r (in) s +15 r (use.) s +cmsy10.329 @sf +68 838 p 15 c +cmbx10.329 @sf +23 r (Normal) s +17 r (or) s +18 r (Clien) s +-1 r (tIcon) s +cmr10.329 @sf +0 r 58 c +20 r (Op) s +1 r (ens) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (if) s +15 r (it) s +15 r 119 c +0 r (as) s +14 r (closed.) s +cmsy10.329 @sf +68 932 p 15 c +cmbx10.329 @sf +23 r (Don) s +-1 r (tCare) s +cmr10.329 @sf +0 r 58 c +20 r (No) s +15 r 99 c +0 r (hange.) s +71 1038 p (Changes) s +15 r (to) s +15 r (the) s +15 r (other) s +15 r (supp) s +1 r (orted) s +16 r (\014elds) s +15 r 124 c +cmbx10.329 @sf +15 r (input) s +cmr10.329 @sf +0 r 44 c +cmbx10.329 @sf +15 r (icon) s +3 r 16 2 ru +16 r (pixmap) s +cmr10.329 @sf +0 r 44 c +cmbx10.329 @sf +15 r (icon) s +3 r 16 2 ru +16 r 120 c +cmr10.329 @sf +0 r 44 c +cmbx10.329 @sf +15 r (icon) s +3 r 16 2 ru +16 r 121 c +cmr10.329 @sf +0 r 44 c +cmbx10.329 @sf +0 1095 p (icon) s +3 r 16 2 ru +16 r (windo) s +-1 r 119 c +cmr10.329 @sf +0 r 44 c +15 r (and) s +cmbx10.329 @sf +15 r (windo) s +-1 r 119 c +2 r 16 2 ru +16 r (group) s +cmr10.329 @sf +15 r (tak) s +0 r 101 c +14 r (immediate) s +15 r (e\013ect) s +15 r (as) s +16 r 119 c +-1 r (ell.) s +cmbx10.432 @sf +0 1238 p (11) s +69 r (Options) s +cmr10.329 @sf +0 1339 p (Options) s +15 r (are) s +15 r (sp) s +2 r (eci\014ed) s +15 r (in) s +15 r (Preference) s +15 r (Files) s +15 r (as) s +15 r (describ) s +2 r (ed) s +15 r (in) s +15 r (the) s +15 r (section) s +15 r (of) s +15 r (that) s +15 r (name.) s +71 1396 p (Options) s +15 r (ma) s +-1 r 121 c +15 r (either) s +15 r 98 c +1 r 101 c +cmbx10.329 @sf +15 r (global) s +cmr10.329 @sf +0 r 44 c +15 r (referring) s +15 r (to) s +16 r (the) s +15 r (windo) s +0 r 119 c +14 r (manager) s +15 r (as) s +15 r 97 c +15 r (whole,) s +15 r (or) s +15 r 112 c +2 r (er-) s +cmbx10.329 @sf +0 r (windo) s +-1 r 119 c +cmr10.329 @sf +0 r 46 c +71 1452 p (Options) s +14 r (ma) s +0 r 121 c +14 r (either) s +14 r 98 c +1 r 101 c +cmti10.329 @sf +15 r 98 c +-1 r 111 c +-3 r (ole) s +-2 r (an) s +cmr10.329 @sf +0 r 44 c +14 r (in) s +14 r (whic) s +0 r 104 c +14 r (case) s +14 r (they) s +15 r (tak) s +0 r 101 c +13 r (on) s +15 r (the) s +14 r 118 c +-1 r (alues) s +cmbx10.329 @sf +14 r (on) s +cmr10.329 @sf +14 r (and) s +cmbx10.329 @sf +15 r (o\013) s +cmr10.329 @sf +0 r 44 c +cmti10.329 @sf +14 r (numeric) s +cmr10.329 @sf +0 r 44 c +15 r (in) s +0 1509 p (whic) s +0 r 104 c +14 r (case,) s +15 r (they) s +15 r (tak) s +0 r 101 c +14 r (on) s +15 r 110 c +0 r (umeric) s +cmbx10.329 @sf +14 r 118 c +-2 r (alues) s +cmr10.329 @sf +0 r 44 c +14 r (or) s +cmti10.329 @sf +16 r (strings) s +cmr10.329 @sf +0 r 46 c +71 1565 p (Options) s +16 r (and) s +16 r 118 c +-2 r (alues) s +16 r (ma) s +-1 r 121 c +16 r 98 c +1 r 101 c +cmbx10.329 @sf +16 r (seman) s +0 r (tic) s +cmr10.329 @sf +0 r 44 c +15 r (in) s +16 r (whic) s +0 r 104 c +15 r (case) s +17 r (they) s +16 r (con) s +-1 r (trol) s +16 r (the) s +16 r (decisions) s +16 r (made) s +16 r 98 c +0 r 121 c +15 r (the) s +0 1621 p (windo) s +0 r 119 c +17 r (manager,) s +18 r (or) s +18 r (they) s +18 r (ma) s +0 r 121 c +16 r (strictly) s +18 r 98 c +1 r 101 c +cmbx10.329 @sf +18 r (in) s +0 r (terface) s +cmr10.329 @sf +0 r (-related) s +17 r 124 c +18 r (that) s +17 r (is,) s +19 r (they) s +18 r (simply) s +18 r (con) s +-1 r (trol) s +17 r (the) s +0 1678 p 119 c +0 r 97 c +-2 r 121 c +15 r (the) s +15 r (screen) s +15 r (lo) s +1 r (oks.) s +71 1734 p (This) s +15 r (section,) s +16 r (then,) s +16 r (is) s +15 r (divided) s +16 r (in) s +0 r (to) s +14 r 97 c +16 r 110 c +0 r (um) s +-2 r 98 c +1 r (er) s +15 r (of) s +16 r (parts,) s +16 r (based) s +15 r (on) s +16 r (the) s +16 r (orthogonal) s +15 r (distinctions) s +16 r (of) s +cmbx10.329 @sf +0 1791 p (global) s +cmr10.329 @sf +11 r (vs) s +11 r 112 c +2 r (er-) s +cmbx10.329 @sf +0 r (windo) s +-1 r 119 c +cmr10.329 @sf +0 r 44 c +11 r 98 c +2 r 111 c +1 r (olean) s +cmbx10.329 @sf +11 r (option) s +cmr10.329 @sf +11 r (vs) s +cmbx10.329 @sf +11 r 118 c +-1 r (alue) s +cmr10.329 @sf +10 r (vs) s +cmbx10.329 @sf +11 r (string) s +cmr10.329 @sf +0 r 44 c +12 r (and) s +cmbx10.329 @sf +11 r (seman) s +0 r (tic) s +cmr10.329 @sf +10 r (vs.) s +cmbx10.329 @sf +19 r (in) s +0 r (terface) s +cmr10.329 @sf +0 r (-related.) s +0 1847 p (Eac) s +0 r 104 c +14 r (section) s +15 r (con) s +0 r (tains) s +14 r 97 c +15 r (list) s +15 r (of) s +15 r (the) s +16 r (relev) s +-2 r (an) s +-1 r 116 c +14 r (option) s +15 r (names) s +15 r (with) s +15 r (their) s +16 r (default) s +15 r 118 c +-2 r (alue.) s +cmbx10.360 @sf +0 1969 p (11.1) s +57 r (Global) s +19 r (Seman) s +0 r (tic) s +18 r (Options) s +cmsy10.329 @sf +68 2055 p 15 c +cmbx10.329 @sf +23 r (allo) s +-1 r (wAggressiv) s +-1 r (eRep) s +0 r (opulation) s +cmr10.329 @sf +0 r 58 c +21 r (on) s +114 2111 p (If) s +16 r (on,) s +16 r (attempts) s +16 r (to) s +16 r (op) s +1 r (en) s +16 r (automatically) s +16 r (closed) s +16 r (windo) s +0 r (ws) s +15 r (with) s +16 r (the) s +cmbx10.329 @sf +16 r (aggressiv) s +-1 r (elyRep) s +1 r (opulate) s +cmr10.329 @sf +114 2168 p (option) s +15 r (on) s +15 r (whenev) s +0 r (er) s +14 r 112 c +1 r (ossible.) s +cmsy10.329 @sf +68 2262 p 15 c +cmbx10.329 @sf +23 r (allo) s +-1 r (wAutomaticClose) s +cmr10.329 @sf +0 r 58 c +20 r (on) s +114 2318 p (Determines) s +16 r (whether) s +17 r (windo) s +-1 r (ws) s +16 r (can) s +16 r 98 c +2 r 101 c +16 r (closed) s +17 r (automatically) s +16 r (\(as) s +17 r 97 c +16 r (side) s +17 r (e\013ect) s +16 r (of) s +17 r (an) s +16 r (op) s +1 r (eration) s +114 2374 p (on) s +15 r (another) s +15 r (windo) s +0 r (w\).) s +cmsy10.329 @sf +68 2468 p 15 c +cmbx10.329 @sf +23 r (allo) s +-1 r (wAutomaticCloseMoreRecen) s +-1 r 116 c +cmr10.329 @sf +0 r 58 c +19 r (on) s +114 2525 p (If) s +cmbx10.329 @sf +20 r (allo) s +-1 r (wAutomaticClose) s +cmr10.329 @sf +20 r (is) s +20 r (on,) s +22 r (but) s +20 r (this) s +20 r (option) s +20 r (is) s +21 r (o\013,) s +21 r (then) s +21 r 97 c +20 r (windo) s +0 r 119 c +19 r (can) s +20 r 98 c +1 r 101 c +21 r (closed) s +20 r (as) s +114 2581 p 97 c +18 r (result) s +18 r (of) s +18 r 97 c +18 r (side) s +18 r (e\013ect) s +19 r (on) s +18 r (another) s +18 r (windo) s +0 r 119 c +17 r (only) s +18 r (if) s +18 r (the) s +18 r (other) s +18 r (windo) s +0 r 119 c +17 r (has) s +18 r 98 c +2 r (een) s +18 r (used) s +18 r (more) s +114 2638 p (recen) s +-1 r (tly) s +-3 r 46 c +937 2828 p (23) s +@eop +22 @bop0 +cmbx10.360 @sf +[<0001FF0000001FFFE000007F80780001FC001C0003F000060007E00003000FC00001801FC00001803F800001C03F800000C0 + 7F800000C07F000000C07F00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000 + FF000000007F000000C07F000000C07F800000C03F800001C03F800001C01FC00003C00FC00003C007E00007C003F0000FC0 + 01FC001FC0007F80F3C0001FFFC1C00001FF0040> 40 34 -3 0 41.371] 67 @dc +[<7FF8FFF07FF8FFF00FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC0 + 1F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F80FFFFFF80FFFFFF800FC0FF800FC000000FC00000 + 0FC00C000FC01E000FC03F000FC03F000FC03F0007E03F0003F01F0001FC0E00007FFC000007F800> 32 35 -1 0 31.824] 12 @dc +[ 24 22 -2 0 25.459] 122 @dc +22 @bop1 +cmr10.329 @sf +71 195 p (When) s +15 r 97 c +15 r (clien) s +0 r 116 c +14 r (unmaps) s +15 r (its) s +15 r (windo) s +0 r (w,) s +14 r (this) s +15 r (has) s +15 r (the) s +15 r (follo) s +0 r (wing) s +14 r (e\013ect) s +15 r (dep) s +2 r (ending) s +15 r (up) s +1 r (on) s +cmcsc10.329 @sf +0 252 p (WM) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +0 r 46 c +cmbx10.329 @sf +0 r (initial) s +3 r 16 2 ru +16 r (state) s +cmr10.329 @sf +0 r 46 c +cmsy10.329 @sf +68 358 p 15 c +cmr10.329 @sf +23 r (Ignore,) s +15 r (Inactiv) s +0 r 101 c +14 r (or) s +15 r (Iconic:) s +20 r (No) s +15 r (e\013ect) s +cmsy10.329 @sf +68 452 p 15 c +cmr10.329 @sf +23 r (Clien) s +0 r (tIcon:) s +19 r (Remap) s +15 r (the) s +15 r (windo) s +0 r (w.) s +cmsy10.329 @sf +68 545 p 15 c +cmr10.329 @sf +23 r (Normal,) s +15 r (Don) s +0 r (tCare,) s +14 r (or) s +cmbx10.329 @sf +15 r (initial) s +3 r 16 2 ru +16 r (state) s +cmr10.329 @sf +15 r 119 c +0 r (as) s +14 r (not) s +15 r (set:) s +20 r (The) s +15 r (pixmap) s +16 r (or) s +15 r (default) s +15 r (icon) s +15 r (is) s +15 r (op) s +1 r (ened.) s +71 652 p 65 c +-1 r (ttempt) s +12 r 98 c +0 r 121 c +12 r 97 c +13 r (clien) s +0 r 116 c +12 r (to) s +13 r (map) s +14 r (its) s +13 r (clien) s +0 r 116 c +12 r (icon) s +13 r (windo) s +0 r 119 c +12 r (\(other) s +13 r (than) s +13 r (the) s +13 r (\014rst) s +13 r (time\)) s +13 r (has) s +14 r (the) s +13 r (follo) s +-1 r (wing) s +0 708 p (e\013ect) s +15 r (dep) s +1 r (ending) s +16 r (up) s +1 r (on) s +15 r (the) s +15 r 118 c +-1 r (alue) s +14 r (of) s +cmcsc10.329 @sf +15 r (WM) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +0 r 46 c +cmbx10.329 @sf +0 r (initial) s +3 r 16 2 ru +16 r (state) s +cmr10.329 @sf +0 r 46 c +cmsy10.329 @sf +68 814 p 15 c +cmr10.329 @sf +23 r (Ignore,) s +15 r (Inactiv) s +0 r (e,) s +14 r (Iconic,) s +15 r (or) s +15 r (Clien) s +0 r (tIcon:) s +19 r (No) s +15 r (e\013ect) s +cmsy10.329 @sf +68 908 p 15 c +cmr10.329 @sf +23 r (Normal,) s +15 r (Don) s +0 r (tCare,) s +14 r (or) s +cmbx10.329 @sf +15 r (initial) s +3 r 16 2 ru +16 r (state) s +cmr10.329 @sf +15 r 119 c +0 r (as) s +14 r (not) s +15 r (set:) s +20 r (The) s +15 r (pixmap) s +16 r (or) s +15 r (default) s +15 r (icon) s +15 r (is) s +15 r (op) s +1 r (ened.) s +cmbx10.360 @sf +0 1030 p (10.4) s +57 r (Con\014gure) s +cmr10.329 @sf +0 1116 p (When) s +14 r 97 c +15 r (clien) s +-1 r 116 c +14 r 99 c +-1 r (hanges) s +14 r (the) s +14 r (size) s +14 r (or) s +14 r 112 c +2 r (osition) s +14 r (of) s +14 r 97 c +15 r (tiled) s +14 r (windo) s +0 r 119 c +13 r (via) s +14 r 88 c +0 r (Con\014gureWindo) s +-1 r (w,) s +13 r (the) s +14 r (windo) s +0 r 119 c +0 1172 p (manager) s +13 r (attempts) s +13 r (to) s +12 r (comply) s +-2 r 46 c +18 r (If) s +13 r (just) s +13 r (the) s +13 r (size) s +12 r (has) s +13 r 98 c +1 r (een) s +13 r 99 c +0 r (hanged,) s +12 r (the) s +13 r (windo) s +0 r 119 c +12 r (is) s +12 r (enlarged) s +13 r (or) s +13 r (shrunk.) s +0 1229 p (If) s +11 r (the) s +12 r 112 c +1 r (osition) s +11 r (has) s +11 r 98 c +2 r (een) s +11 r 99 c +0 r (hanged,) s +11 r (the) s +11 r (windo) s +0 r 119 c +10 r (is) s +12 r (mo) s +-1 r 118 c +-1 r (ed) s +10 r (as) s +12 r (close) s +11 r (as) s +11 r 112 c +1 r (ossible) s +12 r (to) s +11 r (the) s +11 r (sp) s +2 r (eci\014ed) s +11 r (lo) s +1 r (cation.) s +71 1285 p (An) s +12 r (attempt) s +12 r (to) s +12 r 99 c +0 r (hange) s +11 r (the) s +12 r 98 c +1 r (order) s +12 r (width) s +12 r (will) s +13 r 98 c +1 r 101 c +12 r (ignored;) s +13 r (the) s +12 r (windo) s +0 r 119 c +11 r (manager) s +12 r (forces) s +12 r (the) s +12 r 98 c +2 r (order) s +0 1342 p (width) s +15 r (to) s +15 r (zero.) s +71 1398 p 65 c +-1 r (ttempts) s +14 r (to) s +14 r 99 c +0 r (hange) s +14 r (the) s +14 r (stac) s +0 r (king) s +14 r (order) s +14 r (will) s +15 r (also) s +15 r 98 c +1 r 101 c +14 r (ignored;) s +15 r (tiled) s +15 r (windo) s +0 r (ws) s +13 r (do) s +15 r (not) s +14 r 111 c +0 r 118 c +-1 r (erlap) s +13 r (and) s +0 1454 p (are) s +15 r (all) s +15 r (on) s +15 r (the) s +16 r (same) s +15 r (lev) s +-1 r (el.) s +71 1511 p (Note) s +14 r (that) s +14 r (transien) s +0 r 116 c +13 r (windo) s +0 r (ws) s +13 r (are) s +14 r (not) s +15 r (tiled,) s +14 r (and) s +15 r (attempts) s +14 r (to) s +14 r (recon\014gure) s +14 r (them) s +15 r (will) s +14 r (will) s +14 r (succeed) s +0 1567 p (as) s +14 r (requested,) s +14 r (except) s +14 r (that) s +14 r (attempting) s +14 r (to) s +14 r (place) s +14 r 97 c +14 r (transien) s +0 r 116 c +13 r (windo) s +0 r 119 c +13 r 98 c +1 r (elo) s +0 r 119 c +13 r 97 c +14 r (tiled) s +14 r (windo) s +0 r 119 c +13 r (will) s +14 r (place) s +0 1624 p (it) s +15 r 98 c +1 r (elo) s +0 r 119 c +14 r (all) s +15 r (transien) s +0 r 116 c +14 r (windo) s +0 r (ws,) s +14 r (but) s +15 r (ab) s +2 r 111 c +-1 r 118 c +-1 r 101 c +14 r (all) s +15 r (tiled) s +16 r (windo) s +-1 r (ws.) s +cmbx10.360 @sf +0 1746 p (10.5) s +57 r (Size) s +19 r (Hin) s +0 r (ts) s +cmr10.329 @sf +0 1831 p (Clien) s +0 r (ts) s +13 r (setting) s +cmcsc10.329 @sf +13 r (WM) s +3 r 15 2 ru +16 r (NORMAL) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +14 r (while) s +13 r 97 c +14 r (windo) s +0 r 119 c +13 r (is) s +14 r (op) s +1 r (en) s +14 r (can) s +14 r (cause) s +14 r 99 c +-1 r (hanges) s +13 r (in) s +14 r (the) s +14 r (size) s +14 r (or) s +0 1888 p (lo) s +1 r (cation) s +15 r (of) s +16 r (the) s +15 r (windo) s +-1 r (w.) s +71 1944 p (If) s +14 r (the) s +15 r (option) s +cmbx10.329 @sf +15 r (autoResatisfyOnResetMinmax) s +cmr10.329 @sf +15 r (is) s +15 r (set,) s +15 r (and) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (no) s +15 r (longer) s +14 r (satis\014es) s +15 r (its) s +0 2001 p (clien) s +0 r 116 c +11 r (minim) s +0 r (um) s +11 r (or) s +12 r (maxim) s +0 r (um) s +11 r (size,) s +13 r (an) s +12 r (attempt) s +12 r (will) s +12 r 98 c +1 r 101 c +13 r (made) s +12 r (to) s +12 r (enlarge) s +12 r (or) s +12 r (shrink) s +13 r (the) s +12 r (windo) s +-1 r (w.) s +19 r (Ev) s +-1 r (en) s +0 2057 p (if) s +16 r (the) s +17 r (windo) s +-1 r 119 c +16 r (cannot) s +16 r 98 c +1 r 101 c +17 r (enlarged,) s +16 r (it) s +17 r (will) s +16 r (not) s +17 r 98 c +1 r 101 c +16 r (automatically) s +17 r (closed.) s +23 r (Ho) s +0 r 119 c +-1 r (ev) s +-1 r (er) s +15 r (subsequen) s +0 r 116 c +15 r (user) s +0 2114 p (op) s +1 r (erations) s +15 r (will) s +16 r (enforce) s +15 r (the) s +15 r (clien) s +0 r 116 c +14 r (minim) s +-1 r (um) s +15 r (size) s +15 r (if) s +cmbx10.329 @sf +15 r (enforceClien) s +-1 r (tMinim) s +-1 r (ums) s +cmr10.329 @sf +14 r (is) s +15 r (set.) s +71 2170 p (If) s +15 r 97 c +15 r (new) s +15 r (size) s +15 r 119 c +0 r (as) s +14 r (sp) s +1 r (eci\014ed,) s +15 r (it) s +16 r 98 c +1 r (ecomes) s +15 r (the) s +15 r (normal) s +15 r (or) s +15 r (zo) s +2 r (om) s +15 r (desired) s +15 r (size.) s +71 2227 p (If) s +17 r (either) s +16 r 97 c +17 r (size) s +17 r (or) s +17 r 112 c +2 r (osition) s +16 r 119 c +0 r (as) s +16 r (sp) s +1 r (eci\014ed,) s +18 r (and) s +cmbx10.329 @sf +17 r (autoResatisfyOnResetMinmax) s +cmr10.329 @sf +17 r (is) s +17 r (set,) s +17 r (then) s +0 2283 p (an) s +15 r (attempt) s +15 r (is) s +15 r (made) s +16 r (to) s +15 r 99 c +-1 r (hange) s +15 r (the) s +15 r (size) s +15 r (or) s +15 r 112 c +1 r (osition) s +16 r (of) s +15 r (the) s +15 r (windo) s +0 r (w.) s +71 2339 p (Both) s +20 r 112 c +2 r (osition) s +20 r (and) s +21 r (size) s +21 r (can) s +21 r 98 c +1 r 101 c +21 r (sp) s +1 r (eci\014ed) s +21 r (as) s +21 r (pro) s +0 r (vided) s +19 r 98 c +0 r 121 c +20 r (either) s +21 r (the) s +21 r (user) s +20 r (or) s +21 r (program.) s +37 r (If) s +21 r (ei-) s +0 2396 p (ther) s +21 r (is) s +21 r (sp) s +2 r (eci\014ed) s +21 r (as) s +21 r (user) s +21 r (supplied,) s +23 r (then) s +21 r (the) s +21 r (hin) s +0 r 116 c +20 r (is) s +21 r (treated) s +21 r (as) s +21 r 97 c +21 r (direct) s +21 r (e\013ect) s +22 r (of) s +21 r 97 c +21 r (user) s +21 r (action.) s +0 2452 p (Consequen) s +0 r (tly) s +-4 r 44 c +13 r (the) s +13 r (limits) s +13 r (on) s +13 r (clien) s +0 r 116 c +12 r (actions) s +14 r (ordinarily) s +13 r (determined) s +13 r 98 c +0 r 121 c +12 r (the) s +13 r (option) s +cmbx10.329 @sf +13 r (allo) s +0 r (wAutomatic-) s +0 2509 p (CloseByClien) s +0 r 116 c +cmr10.329 @sf +0 r 44 c +12 r (the) s +12 r (option) s +cmbx10.329 @sf +13 r (allo) s +0 r (wAutomaticShrinkByClien) s +-2 r 116 c +cmr10.329 @sf +0 r 44 c +cmbx10.329 @sf +12 r (allo) s +0 r (wListenerT) s +-4 r (oChangeBy-) s +0 2565 p (Clien) s +0 r 116 c +cmr10.329 @sf +0 r 44 c +14 r (and) s +cmbx10.329 @sf +15 r (allo) s +-1 r (wListenerT) s +-4 r (oCloseByClien) s +-1 r 116 c +cmr10.329 @sf +14 r (do) s +15 r (not) s +15 r (apply) s +-3 r 46 c +937 2828 p (22) s +@eop +21 @bop0 +cmbx10.360 @sf +[ 40 34 -2 0 39.158] 80 @dc +cmcsc10.329 @sf +[ 32 31 -3 0 37.688] 68 @dc +[ 32 31 -3 0 33.711] 69 @dc +[<0007F80800003806180000E001B80003C000F80007000078000F000078001E000078001E000078003C000078007C00007800 + 7C00007800780000F800F8001FFF00F800000000F800000000F800000000F800000000F800000000F8000000007800000000 + 7C000008007C000008003C000008001E000018001E000018000F00003800070000780003C000F80000E001380000380E1800 + 0007F00800> 40 31 -4 0 38.698] 71 @dc +cmr10.329 @sf +[ 24 45 -3 11 22.727] 47 @dc +cmbx10.360 @sf +[<0001FFE00001FFE000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0001FC3F0007FF3F000FC1 + FF001F00FF003E007F007E003F007E003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F007C003F00 + 7E003F007E003F003F007F001F00DF000FC1CF0007FF070000FE0300> 32 32 -2 10 30.233] 113 @dc +[<0000FF8000000FFFF000003F807C00007E000E0000FC00070001F800038003F800018003F000018007F00001C007F00000C0 + 07F00000C007F00000C007F00000C007F00000C007F00000C007F00000C007F00000C007F00000C007F00000C007F00000C0 + 07F00000C007F00000C007F00000C007F00000C007F00000C007F00000C007F00000C007F00000C007F00000C007F00000C0 + 07F00000C007F00000C0FFFF801FFEFFFF801FFE> 40 34 -2 0 44.070] 85 @dc +21 @bop1 +cmbx10.360 @sf +0 195 p (10.2) s +57 r (Initial) s +19 r (Size) s +19 r (and) s +20 r (Placemen) s +-1 r 116 c +cmr10.329 @sf +0 281 p 65 c +18 r (windo) s +0 r (w's) s +17 r (initial) s +18 r (size) s +18 r (is) s +18 r (determined) s +18 r 98 c +-1 r 121 c +17 r (the) s +18 r (size) s +18 r (sp) s +2 r (eci\014ed) s +17 r (when) s +18 r (the) s +18 r (windo) s +0 r 119 c +17 r 119 c +0 r (as) s +17 r (created.) s +29 r (This) s +0 337 p (ma) s +0 r 121 c +15 r 98 c +1 r 101 c +16 r 111 c +0 r 118 c +-1 r (erridden) s +15 r 98 c +-1 r 121 c +15 r 97 c +17 r (size) s +16 r (sp) s +1 r (eci\014ed) s +16 r 98 c +0 r 121 c +15 r 97 c +16 r (clien) s +-1 r 116 c +16 r (in) s +16 r (setting) s +cmcsc10.329 @sf +16 r (WM) s +3 r 15 2 ru +15 r (NORMAL) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +0 r 46 c +16 r (This) s +16 r (ma) s +0 r 121 c +0 394 p 98 c +1 r 101 c +15 r 111 c +0 r 118 c +-1 r (erridden) s +14 r 98 c +0 r 121 c +14 r (the) s +cmcsc10.329 @sf +15 r (DESIRED) s +3 r 15 2 ru +15 r (HEIGHT) s +cmr10.329 @sf +15 r (and/or) s +cmcsc10.329 @sf +15 r (DESIRED) s +3 r 15 2 ru +16 r (WIDTH) s +cmr10.329 @sf +15 r (preferences.) s +71 450 p 65 c +15 r (windo) s +-1 r (w's) s +14 r (initial) s +16 r 112 c +1 r (osition) s +15 r (is) s +15 r (determined) s +15 r 98 c +0 r 121 c +14 r (the) s +15 r (size) s +15 r (sp) s +1 r (eci\014ed) s +15 r (when) s +16 r (the) s +15 r (windo) s +-1 r 119 c +15 r 119 c +-1 r (as) s +14 r (created.) s +0 507 p (This) s +15 r (ma) s +0 r 121 c +14 r 98 c +1 r 101 c +15 r 111 c +0 r 118 c +-1 r (erridden) s +14 r 98 c +0 r 121 c +14 r 97 c +15 r 112 c +1 r (osition) s +16 r (sp) s +1 r (eci\014ed) s +15 r 98 c +0 r 121 c +14 r 97 c +15 r (clien) s +0 r 116 c +14 r (in) s +15 r (setting) s +cmcsc10.329 @sf +15 r (WM) s +3 r 15 2 ru +15 r (NORMAL) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +0 r 46 c +71 563 p (Ho) s +-1 r 119 c +-1 r (ev) s +-1 r (er,) s +15 r (when) s +16 r 97 c +16 r (windo) s +0 r 119 c +15 r (matc) s +0 r (hes) s +15 r (one) s +16 r (in) s +16 r (the) s +16 r (sa) s +0 r 118 c +-1 r (ed) s +15 r (la) s +0 r 121 c +-2 r (out) s +16 r (\014le,) s +16 r 98 c +1 r (oth) s +16 r (its) s +16 r (size) s +17 r (and) s +16 r 112 c +1 r (osition) s +16 r (are) s +0 620 p (tak) s +0 r (en) s +14 r (from) s +15 r (the) s +15 r (la) s +0 r 121 c +-1 r (out) s +14 r (\014le.) s +71 676 p (When) s +20 r 97 c +21 r (windo) s +0 r 119 c +19 r (is) s +21 r (to) s +21 r 98 c +1 r 101 c +21 r (initially) s +20 r (mapp) s +1 r (ed,) s +22 r (it) s +21 r (will) s +21 r 98 c +1 r 101 c +21 r (automatically) s +20 r (placed) s +21 r 98 c +0 r 121 c +19 r (the) s +21 r (windo) s +0 r 119 c +0 733 p (manager) s +15 r (under) s +15 r (the) s +15 r (follo) s +0 r (wing) s +14 r (conditions:) s +cmsy10.329 @sf +68 826 p 15 c +cmr10.329 @sf +23 r (The) s +15 r (size) s +14 r (and) s +15 r 112 c +1 r (osition) s +15 r (are) s +15 r 98 c +1 r (oth) s +15 r (sp) s +1 r (eci\014ed) s +15 r (via) s +cmcsc10.329 @sf +14 r (WM) s +3 r 15 2 ru +15 r (NORMAL) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +0 r 44 c +15 r (and) s +15 r (none) s +15 r (of) s +14 r (the) s +15 r (op-) s +114 883 p (tions) s +cmbx10.329 @sf +20 r (ignoreSizeHin) s +0 r (ts) s +cmr10.329 @sf +0 r 44 c +cmbx10.329 @sf +21 r (ignoreInitialSizeHin) s +0 r (ts) s +cmr10.329 @sf +0 r 44 c +cmbx10.329 @sf +21 r (ignoreP) s +0 r (ositionHin) s +-2 r (ts) s +cmr10.329 @sf +0 r 44 c +21 r (or) s +cmbx10.329 @sf +21 r (ignoreIni-) s +114 939 p (tialP) s +-1 r (ositionHin) s +-1 r (ts) s +cmr10.329 @sf +14 r (are) s +15 r (set.) s +cmsy10.329 @sf +68 1033 p 15 c +cmr10.329 @sf +23 r (The) s +23 r (windo) s +-1 r 119 c +22 r (option) s +cmbx10.329 @sf +23 r (autoPlaceOnClien) s +-1 r (tOp) s +1 r (en) s +cmr10.329 @sf +22 r (is) s +23 r (set,) s +24 r (the) s +23 r (size) s +23 r (has) s +22 r 98 c +2 r (een) s +22 r (sp) s +2 r (eci\014ed,) s +24 r (and) s +114 1090 p (neither) s +cmbx10.329 @sf +15 r (ignoreSizeHin) s +-1 r (ts) s +cmr10.329 @sf +14 r (or) s +cmbx10.329 @sf +16 r (ignoreInitialSizeHin) s +-1 r (ts) s +cmr10.329 @sf +14 r (has) s +15 r 98 c +2 r (een) s +15 r (set.) s +cmsy10.329 @sf +68 1183 p 15 c +cmr10.329 @sf +23 r (The) s +14 r (windo) s +-1 r 119 c +13 r (option) s +cmbx10.329 @sf +14 r (autoPlaceOnClien) s +-1 r (tOp) s +1 r (en) s +cmr10.329 @sf +13 r (is) s +14 r (set,) s +14 r (and) s +14 r (the) s +14 r (global) s +13 r (option) s +cmbx10.329 @sf +14 r (autoPlaceO-) s +114 1240 p (nUnsizedOp) s +1 r (en) s +cmr10.329 @sf +15 r (is) s +15 r (set.) s +71 1334 p (If) s +19 r (none) s +19 r (of) s +19 r (these) s +19 r (conditions) s +19 r (holds,) s +21 r (the) s +19 r (user) s +19 r (is) s +19 r (ask) s +0 r (ed) s +18 r (to) s +19 r (place) s +19 r (the) s +19 r (windo) s +0 r 119 c +18 r (man) s +0 r (ually) s +-4 r 46 c +32 r (This) s +19 r (is) s +0 1390 p (indicated) s +15 r 98 c +0 r 121 c +14 r 97 c +15 r 99 c +0 r (hange) s +14 r (in) s +15 r (the) s +15 r (cursor.) s +71 1447 p (When) s +17 r (the) s +16 r (windo) s +0 r 119 c +16 r (is) s +17 r 98 c +1 r (eing) s +17 r (automatically) s +17 r (placed) s +17 r (and) s +17 r (its) s +17 r 112 c +1 r (osition) s +17 r (has) s +17 r 98 c +1 r (een) s +17 r (pro) s +0 r (vided) s +16 r (and) s +17 r (the) s +0 1503 p (windo) s +0 r 119 c +15 r (option) s +cmbx10.329 @sf +17 r (requirePreviousP) s +-1 r (osition) s +cmr10.329 @sf +16 r (is) s +16 r (set,) s +17 r (it) s +16 r (will) s +17 r 98 c +1 r 101 c +16 r (op) s +2 r (ened) s +16 r (exactly) s +16 r (where) s +17 r (sp) s +1 r (eci\014ed;) s +17 r (if) s +17 r (it) s +0 1559 p (cannot) s +14 r 98 c +1 r 101 c +14 r (op) s +2 r (ened) s +14 r (there,) s +14 r (it) s +14 r (will) s +14 r 98 c +1 r 101 c +14 r (iconized) s +14 r (instead.) s +20 r (If) s +cmbx10.329 @sf +14 r (preferPreviousP) s +0 r (osition) s +cmr10.329 @sf +13 r (is) s +14 r (set) s +14 r (instead,) s +14 r (it) s +0 1616 p (will) s +14 r 98 c +1 r 101 c +14 r (op) s +2 r (ened) s +14 r (as) s +14 r (close) s +14 r (as) s +14 r 112 c +1 r (osssible) s +14 r (to) s +14 r (the) s +14 r (pro) s +0 r (vided) s +13 r 112 c +1 r (osition.) s +20 r (Otherwise,) s +14 r (the) s +14 r (windo) s +0 r 119 c +13 r (is) s +14 r (op) s +1 r (ened) s +14 r (at) s +0 1672 p (the) s +16 r (\\b) s +1 r (est") s +16 r 112 c +1 r (ossible) s +16 r (lo) s +1 r (cation) s +16 r 124 c +16 r 97 c +16 r (place) s +16 r (where) s +16 r (it) s +16 r (in) s +0 r (terferes) s +14 r (least) s +16 r (with) s +16 r (other) s +16 r (windo) s +0 r (ws) s +15 r (curren) s +0 r (tly) s +14 r (on) s +0 1729 p (the) s +15 r (screen.) s +71 1785 p (When) s +13 r (the) s +13 r (windo) s +0 r 119 c +12 r (manager) s +13 r (is) s +13 r (initially) s +13 r (started,) s +13 r (clien) s +0 r 116 c +12 r (windo) s +0 r (ws) s +12 r (and) s +13 r (icons) s +13 r (ma) s +0 r 121 c +12 r (already) s +13 r 98 c +2 r 101 c +13 r (op) s +1 r (en.) s +0 1842 p (These) s +12 r (are) s +11 r (treated) s +12 r (as) s +11 r (if) s +12 r (they) s +11 r 119 c +0 r (ere) s +11 r (explicitly) s +11 r (mapp) s +1 r (ed) s +12 r 98 c +0 r 121 c +10 r (the) s +12 r (clien) s +0 r 116 c +10 r (after) s +12 r (the) s +11 r (windo) s +0 r 119 c +11 r (manager) s +11 r (started) s +0 1898 p (up.) s +30 r (Ho) s +0 r 119 c +-1 r (ev) s +-1 r (er,) s +18 r (if) s +19 r (suc) s +-1 r 104 c +18 r 97 c +19 r (windo) s +-1 r 119 c +18 r (do) s +1 r (es) s +19 r (not) s +18 r (matc) s +0 r 104 c +18 r 97 c +18 r (windo) s +0 r 119 c +17 r (sa) s +0 r 118 c +-1 r (ed) s +18 r (in) s +18 r (the) s +19 r (la) s +-1 r 121 c +-1 r (out) s +18 r (\014le,) s +19 r (it) s +19 r (is) s +18 r (alw) s +0 r 97 c +-1 r (ys) s +0 1955 p (placed) s +15 r (as) s +15 r (close) s +15 r (as) s +16 r 112 c +1 r (ossible) s +15 r (to) s +15 r (its) s +15 r (curren) s +0 r 116 c +14 r (size) s +15 r (and) s +16 r 112 c +1 r (osition.) s +cmbx10.360 @sf +0 2076 p (10.3) s +57 r (Subsequen) s +0 r 116 c +18 r (Windo) s +-1 r 119 c +18 r (and) s +19 r (Icon) s +19 r (Mapping) s +20 r (and) s +19 r (Unmapping) s +cmr10.329 @sf +0 2162 p 65 c +16 r (later) s +17 r (attempt) s +16 r 98 c +0 r 121 c +15 r 97 c +17 r (clien) s +0 r 116 c +15 r (to) s +17 r (map) s +16 r 97 c +16 r (windo) s +0 r 119 c +16 r (has) s +16 r (the) s +16 r (follo) s +0 r (wing) s +16 r (e\013ect) s +16 r (dep) s +1 r (ending) s +17 r (up) s +1 r (on) s +16 r (the) s +17 r 118 c +-2 r (alue) s +0 2219 p (of) s +cmcsc10.329 @sf +15 r (WM) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +0 r 46 c +cmbx10.329 @sf +0 r (initial) s +3 r 16 2 ru +16 r (state) s +cmr10.329 @sf +0 r 46 c +cmsy10.329 @sf +68 2325 p 15 c +cmr10.329 @sf +23 r (Ignore,) s +15 r (Inactiv) s +0 r (e,) s +14 r (Iconic,) s +15 r (or) s +15 r (Clien) s +0 r (tIcon:) s +19 r (No) s +15 r (e\013ect) s +cmsy10.329 @sf +68 2419 p 15 c +cmr10.329 @sf +23 r (Normal,) s +23 r (Don) s +0 r (tCare,) s +22 r (or) s +cmbx10.329 @sf +22 r (initial) s +3 r 16 2 ru +15 r (state) s +cmr10.329 @sf +22 r 119 c +0 r (as) s +20 r (not) s +22 r (set:) s +33 r (The) s +22 r (windo) s +-1 r 119 c +21 r (is) s +22 r (op) s +1 r (ened) s +21 r (at) s +22 r (or) s +22 r (near) s +21 r (its) s +114 2475 p (previous) s +20 r (lo) s +1 r (cation) s +20 r (dep) s +1 r (ending) s +20 r (on) s +20 r (the) s +20 r (options) s +cmbx10.329 @sf +20 r (requirePreviousP) s +0 r (osition) s +cmr10.329 @sf +19 r (or) s +cmbx10.329 @sf +20 r (preferPrevi-) s +114 2532 p (ousP) s +-1 r (osition) s +cmr10.329 @sf +0 r 46 c +27 r (If) s +17 r (neither) s +18 r (is) s +17 r (set,) s +18 r (the) s +18 r (\\b) s +1 r (est") s +18 r (lo) s +1 r (cation) s +18 r (is) s +17 r (found.) s +28 r (If) s +17 r (no) s +18 r (lo) s +1 r (cation) s +18 r (can) s +17 r 98 c +1 r 101 c +18 r (found,) s +114 2588 p (it) s +16 r (remains) s +15 r (iconized.) s +23 r (An) s +16 r (attempt) s +16 r (is) s +16 r (alw) s +0 r 97 c +-2 r (ys) s +15 r (made) s +16 r (to) s +16 r (map) s +16 r (it) s +16 r (at) s +16 r (its) s +16 r (desired) s +16 r (size.) s +22 r (The) s +16 r (windo) s +0 r 119 c +114 2644 p (will) s +15 r 98 c +1 r 101 c +15 r (zo) s +1 r (omed) s +16 r (if) s +15 r (it) s +15 r 119 c +0 r (as) s +14 r (zo) s +1 r (omed) s +15 r (when) s +15 r (it) s +16 r 119 c +-1 r (as) s +14 r (last) s +16 r (op) s +1 r (en.) s +937 2828 p (21) s +@eop +20 @bop0 +cmbx10.432 @sf +[<003F800001FFF00007E0FC000FC07E001F803F001F803F003F001F803F001F807F001FC07F001FC07F001FC07F001FC0FF00 + 1FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0 + FF001FE0FF001FE07F001FC07F001FC07F001FC07F001FC03F001F803F001F801F803F001F803F000FC07E0007E0FC0001FF + F000003F8000> 32 39 -3 0 34.370] 48 @dc +[<00003FF800000003FFFF0000000FFFFFC000003FF007F00000FF8000F80001FE00003C0007FC00001E0007F800000F000FF0 + 000007001FE0000007803FE0000003803FC0000003807FC0000003807FC0000003807FC000000000FF8000000000FF800000 + 0000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000 + FF80000000007FC0000003807FC0000003807FC0000003803FC0000007803FE0000007801FE000000F800FF000000F8007F8 + 00001F8007FC00003F8001FE00007F8000FF8001FF80003FF007FF80000FFFFF8F800003FFFE078000003FF00180> 48 41 -4 0 49.646] 67 @dc +[ 40 41 -3 0 46.989] 80 @dc +[<01FC03FC0FFF0FFC3F83DFFC7F00FFC0FF007F80FE007F80FE003F80FE003F80FE003F807F003F807F803F803F803F801FE0 + 3F8007FC3F8000FFFF80000FFF8000003F8000003F8000003F800F803F801FC03F801FC07F001FC07F001FC0FE000F81FC00 + 07FFF00001FF8000> 32 27 -2 0 33.415] 97 @dc +cmbx10.329 @sf +[ 32 2 0 -11 26.136] 123 @dc +20 @bop1 +cmbx10.432 @sf +0 195 p (10) s +69 r (Clien) s +-1 r 116 c +22 r (Placemen) s +-1 r 116 c +cmr10.329 @sf +0 297 p 65 c +17 r (clien) s +-1 r 116 c +16 r (can) s +17 r (a\013ect) s +17 r (the) s +16 r (size,) s +17 r (lo) s +2 r (cation,) s +17 r (and) s +17 r (presence) s +16 r (of) s +17 r 97 c +17 r (tiled) s +16 r (windo) s +0 r 119 c +16 r 98 c +0 r 121 c +15 r (setting) s +17 r (prop) s +1 r (erties) s +17 r (\(par-) s +0 353 p (ticularly) s +cmcsc10.329 @sf +15 r (WM) s +3 r 15 2 ru +15 r (NORMAL) s +3 r 15 2 ru +16 r (HINTS) s +cmr10.329 @sf +15 r (and) s +cmcsc10.329 @sf +15 r (WM) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +0 r (\),) s +16 r 98 c +-1 r 121 c +15 r (mapping) s +15 r (or) s +15 r (unmapping) s +16 r 97 c +15 r (windo) s +0 r (w,) s +14 r 98 c +0 r 121 c +0 409 p (attempting) s +16 r (to) s +15 r (map) s +16 r 97 c +15 r (clien) s +0 r 116 c +14 r (icon,) s +16 r (or) s +16 r 98 c +-1 r 121 c +15 r (attempting) s +16 r (to) s +15 r (recon\014gure) s +16 r 97 c +15 r (windo) s +0 r (w.) s +20 r (These) s +16 r (are) s +15 r (discussed) s +0 466 p 98 c +1 r (elo) s +0 r (w.) s +cmbx10.360 @sf +0 588 p (10.1) s +57 r (Initial) s +19 r (Windo) s +0 r 119 c +18 r (and) s +19 r (Icon) s +19 r (Mapping) s +cmr10.329 @sf +0 673 p (When) s +13 r 97 c +13 r (windo) s +-1 r 119 c +12 r (is) s +13 r (newly) s +13 r (created,) s +13 r (it) s +13 r (or) s +13 r (its) s +13 r (icon) s +13 r (will) s +13 r (ev) s +-1 r (en) s +-1 r (tually) s +12 r 98 c +1 r 101 c +13 r (op) s +1 r (ened.) s +20 r (An) s +13 r (attempt) s +13 r (to) s +13 r (op) s +1 r (en) s +13 r (the) s +0 730 p (windo) s +0 r 119 c +11 r (ma) s +0 r 121 c +11 r (fail) s +12 r (if) s +13 r (there) s +12 r (is) s +12 r (not) s +13 r (enough) s +12 r (ro) s +1 r (om) s +13 r (on) s +12 r (the) s +12 r (screen) s +13 r (for) s +12 r (it,) s +13 r (and) s +12 r (if) s +12 r (windo) s +0 r (ws) s +12 r (in) s +12 r (the) s +12 r 119 c +0 r 97 c +-1 r 121 c +11 r (cannot) s +0 786 p 98 c +1 r 101 c +14 r (shrunk) s +13 r (or) s +13 r (closed.) s +20 r (In) s +13 r (that) s +14 r (case,) s +13 r (the) s +14 r (windo) s +0 r (w's) s +12 r (title) s +13 r (is) s +14 r (placed) s +13 r (in) s +13 r (the) s +14 r (men) s +-1 r 117 c +13 r (of) s +13 r (closed) s +14 r (windo) s +-1 r (ws,) s +13 r (and) s +0 843 p (if) s +14 r (icons) s +14 r (are) s +14 r (to) s +14 r 98 c +1 r 101 c +14 r (used,) s +15 r (the) s +14 r (icon) s +14 r (is) s +14 r (op) s +1 r (ened.) s +20 r (If) s +14 r (the) s +14 r (icon) s +14 r (cannot) s +14 r 98 c +1 r 101 c +14 r (op) s +2 r (ened) s +14 r (immediately) s +14 r (\(due) s +14 r (to) s +14 r (lac) s +-1 r 107 c +0 899 p (of) s +15 r 97 c +0 r 118 c +-3 r (ailable) s +15 r (space\),) s +15 r (it) s +15 r (will) s +15 r 98 c +1 r 101 c +15 r (subsequen) s +0 r (tly) s +14 r (op) s +2 r (ened) s +15 r (at) s +15 r (the) s +15 r (earliest) s +15 r (opp) s +1 r (ortunit) s +0 r 121 c +-4 r 46 c +71 956 p 65 c +15 r (windo) s +-1 r 119 c +15 r (or) s +15 r (icon) s +15 r (initially) s +15 r (will) s +15 r 98 c +1 r 101 c +16 r (op) s +1 r (ened) s +15 r (when) s +15 r (one) s +15 r (of) s +15 r (the) s +16 r (follo) s +-1 r (wing) s +15 r 116 c +-1 r 119 c +-1 r 111 c +14 r (ev) s +0 r (en) s +-1 r (ts) s +14 r 111 c +1 r (ccurs:) s +56 1062 p (1.) s +22 r (The) s +15 r (clien) s +0 r 116 c +14 r (maps) s +15 r (the) s +16 r (windo) s +-1 r (w:) s +cmsy10.329 @sf +168 1156 p 15 c +cmr10.329 @sf +23 r (If) s +13 r (the) s +14 r (windo) s +-1 r 119 c +13 r (matc) s +-1 r (hes) s +13 r (one) s +13 r (in) s +13 r (the) s +14 r (sa) s +0 r 118 c +-2 r (ed) s +13 r (la) s +-1 r 121 c +-1 r (out) s +12 r (\014le) s +14 r 40 c +cmbx10.329 @sf +0 r (.rtl.la) s +-1 r 121 c +-1 r (out) s +cmr10.329 @sf +0 r (\):) s +18 r (Either) s +14 r (the) s +13 r (windo) s +0 r 119 c +12 r (or) s +214 1212 p (icon) s +15 r (will) s +15 r 98 c +1 r 101 c +15 r (op) s +2 r (en) s +15 r (based) s +15 r (on) s +15 r (whic) s +0 r 104 c +14 r 119 c +-1 r (as) s +15 r (op) s +1 r (en) s +15 r (when) s +15 r (the) s +15 r (la) s +0 r 121 c +-1 r (out) s +14 r 119 c +0 r (as) s +14 r (sa) s +-1 r 118 c +-1 r (ed.) s +19 r (If) s +15 r (the) s +16 r (windo) s +-1 r 119 c +214 1269 p (is) s +15 r (op) s +1 r (ened,) s +15 r (it) s +15 r (will) s +15 r 98 c +2 r 101 c +15 r (zo) s +1 r (omed) s +15 r (if) s +15 r (it) s +16 r 119 c +-1 r (as) s +15 r (when) s +15 r (the) s +15 r (la) s +0 r 121 c +-2 r (out) s +14 r 119 c +0 r (as) s +14 r (sa) s +0 r 118 c +-1 r (ed.) s +cmsy10.329 @sf +168 1342 p 15 c +cmr10.329 @sf +23 r (If) s +15 r (the) s +16 r (windo) s +-1 r 119 c +15 r (do) s +1 r (es) s +16 r (not) s +15 r (matc) s +0 r 104 c +14 r (one) s +15 r (in) s +16 r (the) s +15 r (sa) s +0 r 118 c +-1 r (ed) s +14 r (la) s +0 r 121 c +-1 r (out) s +14 r (\014le) s +15 r (\(or) s +16 r (there) s +15 r (is) s +16 r (no) s +15 r (sa) s +0 r 118 c +-1 r (ed) s +14 r (la) s +0 r 121 c +-2 r (out) s +214 1398 p (\014le\),) s +15 r (and) s +cmcsc10.329 @sf +15 r (WM) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +15 r (indicates) s +15 r (an) s +cmbx10.329 @sf +15 r (initial) s +18 r (state) s +cmr10.329 @sf +15 r (of) s +cmbx10.329 @sf +250 1475 p 123 c +cmr10.329 @sf +22 r (Ignore) s +16 r (or) s +15 r (Inactiv) s +0 r (e:) s +19 r (Neither) s +15 r (windo) s +0 r 119 c +14 r (nor) s +15 r (icon) s +15 r (is) s +15 r (op) s +1 r (ened.) s +cmbx10.329 @sf +250 1540 p 123 c +cmr10.329 @sf +22 r (Iconic:) s +21 r (The) s +15 r (icon) s +15 r (is) s +15 r (op) s +1 r (ened) s +16 r (if) s +15 r (icons) s +15 r (are) s +15 r (in) s +15 r (use.) s +cmbx10.329 @sf +250 1605 p 123 c +cmr10.329 @sf +22 r (Clien) s +0 r (tIcon) s +14 r (or) s +16 r (Normal:) s +20 r (The) s +15 r (windo) s +0 r 119 c +14 r (is) s +15 r (op) s +1 r (ened) s +15 r (unzo) s +2 r (omed.) s +cmbx10.329 @sf +250 1670 p 123 c +cmr10.329 @sf +22 r (Don) s +0 r (tCare,) s +13 r (or) s +13 r (the) s +cmbx10.329 @sf +13 r (initial) s +15 r (state) s +cmr10.329 @sf +13 r 119 c +0 r (as) s +12 r (not) s +14 r (set:) s +19 r (The) s +13 r (windo) s +0 r 119 c +12 r (is) s +13 r (op) s +1 r (ened) s +13 r (if) s +14 r (the) s +13 r (windo) s +0 r (w's) s +299 1726 p (option) s +cmbx10.329 @sf +15 r (autoOp) s +1 r (enOnCreate) s +cmr10.329 @sf +15 r (is) s +16 r (set;) s +15 r (else,) s +15 r (the) s +15 r (icon) s +15 r (is) s +15 r (op) s +2 r (ened.) s +56 1820 p (2.) s +22 r (The) s +15 r (clien) s +0 r 116 c +14 r (maps) s +15 r (its) s +16 r (clien) s +-1 r 116 c +15 r (icon) s +15 r (windo) s +-1 r (w:) s +cmsy10.329 @sf +168 1914 p 15 c +cmr10.329 @sf +23 r (If) s +13 r (the) s +14 r (windo) s +-1 r 119 c +13 r (matc) s +-1 r (hes) s +13 r (one) s +13 r (in) s +13 r (the) s +14 r (sa) s +0 r 118 c +-2 r (ed) s +13 r (la) s +-1 r 121 c +-1 r (out) s +12 r (\014le) s +14 r 40 c +cmbx10.329 @sf +0 r (.rtl.la) s +-1 r 121 c +-1 r (out) s +cmr10.329 @sf +0 r (\):) s +18 r (Either) s +14 r (the) s +13 r (windo) s +0 r 119 c +12 r (or) s +214 1970 p (icon) s +15 r (will) s +15 r 98 c +1 r 101 c +15 r (op) s +2 r (en) s +15 r (based) s +15 r (on) s +15 r (whic) s +0 r 104 c +14 r 119 c +-1 r (as) s +15 r (op) s +1 r (en) s +15 r (when) s +15 r (the) s +15 r (la) s +0 r 121 c +-1 r (out) s +14 r 119 c +0 r (as) s +14 r (sa) s +-1 r 118 c +-1 r (ed.) s +19 r (If) s +15 r (the) s +16 r (windo) s +-1 r 119 c +214 2027 p (is) s +15 r (op) s +1 r (ened,) s +15 r (it) s +15 r (will) s +15 r 98 c +2 r 101 c +15 r (zo) s +1 r (omed) s +15 r (if) s +15 r (it) s +16 r 119 c +-1 r (as) s +15 r (when) s +15 r (the) s +15 r (la) s +0 r 121 c +-2 r (out) s +14 r 119 c +0 r (as) s +14 r (sa) s +0 r 118 c +-1 r (ed.) s +cmsy10.329 @sf +168 2100 p 15 c +cmr10.329 @sf +23 r (If) s +15 r (the) s +16 r (windo) s +-1 r 119 c +15 r (do) s +1 r (es) s +16 r (not) s +15 r (matc) s +0 r 104 c +14 r (one) s +15 r (in) s +16 r (the) s +15 r (sa) s +0 r 118 c +-1 r (ed) s +14 r (la) s +0 r 121 c +-1 r (out) s +14 r (\014le) s +15 r (\(or) s +16 r (there) s +15 r (is) s +16 r (no) s +15 r (sa) s +0 r 118 c +-1 r (ed) s +14 r (la) s +0 r 121 c +-2 r (out) s +214 2156 p (\014le\),) s +15 r (and) s +cmcsc10.329 @sf +15 r (WM) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +15 r (indicates) s +15 r (an) s +cmbx10.329 @sf +15 r (initial) s +18 r (state) s +cmr10.329 @sf +15 r (of) s +cmbx10.329 @sf +250 2233 p 123 c +cmr10.329 @sf +22 r (Ignore) s +16 r (or) s +15 r (Inactiv) s +0 r (e:) s +19 r (Neither) s +15 r (windo) s +0 r 119 c +14 r (or) s +15 r (icon) s +15 r (is) s +15 r (op) s +1 r (ened.) s +cmbx10.329 @sf +250 2298 p 123 c +cmr10.329 @sf +22 r (Iconic) s +16 r (or) s +15 r (Normal:) s +20 r (The) s +15 r (icon) s +15 r (is) s +15 r (op) s +2 r (ened) s +15 r (if) s +15 r (icons) s +15 r (are) s +15 r (in) s +15 r (use.) s +cmbx10.329 @sf +250 2363 p 123 c +cmr10.329 @sf +22 r (Clien) s +0 r (tIcon:) s +19 r (The) s +16 r (windo) s +-1 r 119 c +14 r (is) s +16 r (op) s +1 r (ened) s +15 r (unzo) s +1 r (omed.) s +cmbx10.329 @sf +250 2428 p 123 c +cmr10.329 @sf +22 r (Don) s +0 r (tCare,) s +13 r (or) s +13 r (the) s +cmbx10.329 @sf +13 r (initial) s +15 r (state) s +cmr10.329 @sf +13 r 119 c +0 r (as) s +12 r (not) s +14 r (set:) s +19 r (The) s +13 r (windo) s +0 r 119 c +12 r (is) s +13 r (op) s +1 r (ened) s +13 r (if) s +14 r (the) s +13 r (windo) s +0 r (w's) s +299 2484 p (option) s +cmbx10.329 @sf +15 r (autoOp) s +1 r (enOnCreate) s +cmr10.329 @sf +15 r (is) s +16 r (set;) s +15 r (else,) s +15 r (the) s +15 r (icon) s +15 r (is) s +15 r (op) s +2 r (ened.) s +937 2828 p (20) s +@eop +19 @bop0 +cmcsc10.329 @sf +[<000FF00000780E0000E0010003800080070000400F0000201E0000203C0000103C0000107C0000107800000078000000F800 + 0000F8000000F8000000F8000000F8000000F8000000F800000078000000780000107C0000103C0000103C0000301E000030 + 0F000070070000F0038001F000E0027000780C30000FF010> 32 31 -4 0 35.731] 67 @dc +cmr10.329 @sf +[<7FE7FE0700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700 + E00700E00700E0FFFFE00700E00700E00700E00700E00700E00700E00700E00700E00381E001C1E000E0E0003FE0> 24 32 0 0 25.252] 13 @dc +19 @bop1 +cmr10.329 @sf +114 195 p (They) s +14 r (are) s +15 r (used) s +15 r (in) s +14 r (the) s +cmbx10.329 @sf +15 r (.rtl.la) s +-1 r 121 c +-1 r (out) s +cmr10.329 @sf +14 r (\014le) s +14 r (for) s +15 r (distinguishing) s +14 r (windo) s +0 r (ws) s +14 r (on) s +15 r (startup,) s +14 r (and) s +15 r (for) s +15 r (setting) s +114 252 p (the) s +15 r (windo) s +0 r 119 c +14 r (options) s +15 r (from) s +15 r (preferences) s +15 r (\014les.) s +114 327 p (Both) s +15 r (optionally) s +15 r (app) s +1 r (ear) s +15 r (in) s +16 r (the) s +15 r (windo) s +-1 r 119 c +15 r (header) s +15 r (and) s +15 r (in) s +15 r (icons.) s +56 420 p (3.) s +cmcsc10.329 @sf +22 r (WM) s +3 r 15 2 ru +15 r (COMMAND) s +cmr10.329 @sf +114 477 p (Holds) s +12 r (the) s +13 r (command) s +12 r (that) s +13 r 119 c +0 r (ould) s +11 r 98 c +2 r 101 c +12 r (used) s +13 r (to) s +13 r (restart) s +12 r (the) s +13 r (application) s +12 r 124 c +13 r 116 c +0 r (ypically) s +11 r (the) s +13 r (command) s +114 533 p (used) s +19 r (to) s +19 r (run) s +19 r (the) s +19 r (application) s +19 r (initially) s +-2 r 46 c +31 r (The) s +19 r (windo) s +0 r 119 c +18 r (manager) s +19 r (sa) s +0 r 118 c +-2 r (es) s +19 r (it) s +19 r (in) s +19 r (the) s +19 r (la) s +0 r 121 c +-2 r (out) s +19 r (\014le) s +19 r (for) s +114 590 p (iden) s +-1 r (tifying) s +15 r 97 c +15 r (windo) s +-1 r (w,) s +15 r (and) s +15 r (for) s +15 r (restarting) s +15 r (the) s +15 r (application.) s +114 665 p (If) s +16 r (the) s +16 r (\\-l") s +17 r (\015ag) s +16 r (is) s +16 r (sp) s +2 r (eci\014ed) s +16 r (when) s +16 r (starting) s +17 r (the) s +16 r (windo) s +0 r 119 c +15 r (manager,) s +17 r (and) s +16 r 97 c +17 r (windo) s +-1 r 119 c +16 r (sa) s +0 r 118 c +-2 r (ed) s +16 r (in) s +16 r (the) s +cmbx10.329 @sf +114 721 p (.rtl.la) s +-1 r 121 c +-1 r (out) s +cmr10.329 @sf +13 r (\014le) s +13 r (do) s +2 r (es) s +13 r (not) s +14 r (app) s +2 r (ear) s +13 r (on) s +14 r (the) s +14 r (screen,) s +14 r (then) s +14 r (its) s +14 r (corresp) s +1 r (onding) s +14 r (command) s +14 r (is) s +14 r (executed) s +114 778 p (\(not) s +15 r (in) s +15 r (Release) s +15 r (5\).) s +56 872 p (4.) s +cmcsc10.329 @sf +22 r (WM) s +3 r 15 2 ru +15 r (CLIENT) s +3 r 15 2 ru +15 r (MA) s +0 r (CHINE) s +cmr10.329 @sf +114 928 p (The) s +11 r (mac) s +-1 r (hine) s +10 r (on) s +11 r (whic) s +0 r 104 c +10 r (the) s +11 r (application) s +11 r (is) s +11 r (running.) s +19 r 84 c +-1 r (ypically) s +10 r (set) s +11 r (once,) s +12 r (but) s +11 r (ma) s +0 r 121 c +10 r 98 c +1 r 101 c +11 r 99 c +0 r (hanged) s +10 r 98 c +-1 r 121 c +114 985 p (applications) s +15 r (whic) s +0 r 104 c +15 r (migrate) s +15 r (from) s +16 r (mac) s +0 r (hine) s +15 r (to) s +15 r (mac) s +0 r (hine.) s +21 r (It) s +15 r (optionally) s +16 r (app) s +1 r (ears) s +16 r (in) s +16 r (the) s +15 r (windo) s +0 r 119 c +114 1041 p (header) s +15 r (and) s +15 r (icon,) s +15 r (and) s +15 r (is) s +15 r (used) s +16 r (in) s +15 r (the) s +15 r (la) s +0 r 121 c +-2 r (out) s +14 r (\014le) s +16 r (for) s +15 r (iden) s +0 r (tifying) s +14 r (windo) s +-1 r (ws.) s +56 1135 p (5.) s +cmcsc10.329 @sf +22 r (WM) s +3 r 15 2 ru +15 r (NAME) s +cmr10.329 @sf +114 1191 p (Information) s +21 r (ab) s +1 r (out) s +21 r (the) s +21 r (application) s +21 r (or) s +22 r (its) s +21 r (curren) s +-1 r 116 c +21 r (state) s +21 r (whic) s +-1 r 104 c +21 r (is) s +21 r (optionally) s +21 r (placed) s +21 r (in) s +21 r (the) s +114 1248 p (windo) s +-1 r 119 c +15 r (header.) s +20 r (It) s +15 r (also) s +15 r (is) s +15 r (used) s +15 r (in) s +15 r (an) s +16 r (icon) s +15 r (when) s +cmcsc10.329 @sf +15 r (WM) s +3 r 15 2 ru +15 r (ICON) s +3 r 15 2 ru +15 r (NAME) s +cmr10.329 @sf +15 r (is) s +15 r (not) s +16 r (pro) s +-1 r (vided.) s +56 1342 p (6.) s +cmcsc10.329 @sf +22 r (WM) s +3 r 15 2 ru +15 r (ICON) s +3 r 15 2 ru +15 r (NAME) s +cmr10.329 @sf +114 1398 p (Information) s +14 r (ab) s +1 r (out) s +14 r (the) s +14 r (application) s +14 r (or) s +14 r (its) s +14 r (curren) s +0 r 116 c +13 r (state) s +14 r (whic) s +0 r 104 c +13 r (is) s +14 r (optionally) s +14 r (placed) s +14 r (in) s +14 r (an) s +14 r (icon.) s +56 1492 p (7.) s +cmcsc10.329 @sf +22 r (WM) s +3 r 15 2 ru +15 r (NORMAL) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +114 1548 p (In) s +15 r (release) s +15 r (5,) s +15 r (only) s +15 r (the) s +15 r (size,) s +16 r 112 c +1 r (osition,) s +15 r (minim) s +0 r (um,) s +14 r (and) s +15 r (maxim) s +0 r (um) s +14 r (sizes) s +15 r (are) s +15 r (used.) s +56 1642 p (8.) s +cmcsc10.329 @sf +22 r (WM) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +114 1699 p (The) s +cmbx10.329 @sf +19 r (input) s +cmr10.329 @sf +19 r (\014eld) s +20 r (determines) s +19 r (whether) s +19 r (the) s +19 r (windo) s +0 r 119 c +18 r (manager) s +20 r (or) s +19 r (the) s +19 r (clien) s +0 r 116 c +18 r (is) s +20 r (resp) s +1 r (onsible) s +19 r (for) s +114 1755 p (setting) s +15 r (the) s +15 r (input) s +15 r (fo) s +1 r (cus.) s +21 r (See) s +15 r (the) s +15 r (section) s +15 r (on) s +15 r (\\F) s +-3 r 111 c +1 r (cus) s +15 r 70 c +-3 r (ollo) s +-1 r (ws) s +14 r 80 c +0 r (oin) s +-2 r (ter".) s +114 1830 p (The) s +cmbx10.329 @sf +12 r (initial) s +4 r 16 2 ru +15 r (state) s +cmr10.329 @sf +13 r (is) s +13 r (used) s +13 r (to) s +13 r (initially) s +12 r (determine) s +13 r (the) s +13 r (displa) s +0 r 121 c +12 r (state) s +12 r (of) s +13 r 97 c +13 r (windo) s +0 r 119 c +12 r (when) s +12 r (it) s +13 r (is) s +13 r (\014rst) s +114 1887 p (mapp) s +1 r (ed) s +14 r 98 c +0 r 121 c +13 r (the) s +15 r (clien) s +-1 r (t,) s +14 r (and) s +14 r (can) s +15 r (later) s +14 r 98 c +1 r 101 c +15 r (used) s +14 r (to) s +14 r 99 c +0 r (hange) s +13 r (the) s +15 r (displa) s +-1 r 121 c +14 r (state.) s +20 r (See) s +14 r (the) s +14 r (section) s +15 r (on) s +114 1943 p (\\Clien) s +-1 r 116 c +15 r (Placemen) s +-1 r (t".) s +114 2018 p (The) s +cmbx10.329 @sf +22 r (icon) s +3 r 16 2 ru +16 r (pixmap) s +cmr10.329 @sf +22 r (is) s +22 r (used) s +23 r (to) s +22 r (determine) s +22 r (the) s +22 r (con) s +0 r (ten) s +-1 r (ts) s +21 r (of) s +22 r (an) s +23 r (icon.) s +41 r (If) s +23 r (no) s +22 r (icon) s +3 r 14 2 ru +13 r (pixmap) s +22 r (is) s +114 2075 p (pro) s +-1 r (vided,) s +12 r 97 c +13 r (default) s +12 r (icon) s +12 r (is) s +13 r (built) s +12 r (from) s +cmcsc10.329 @sf +12 r (WM) s +3 r 15 2 ru +15 r (CLASS) s +cmr10.329 @sf +0 r 44 c +cmcsc10.329 @sf +13 r (WM) s +3 r 15 2 ru +15 r (ICON) s +3 r 15 2 ru +15 r (NAME) s +cmr10.329 @sf +12 r (\(or) s +cmcsc10.329 @sf +12 r (WM) s +3 r 15 2 ru +16 r (NAME) s +cmr10.329 @sf +0 r 41 c +114 2131 p (and/or) s +cmcsc10.329 @sf +15 r (WM) s +3 r 15 2 ru +15 r (CLIENT) s +3 r 15 2 ru +15 r (MA) s +0 r (CHINE) s +cmr10.329 @sf +0 r 46 c +114 2206 p (The) s +19 r (clien) s +-1 r 116 c +18 r (ma) s +0 r 121 c +18 r (pro) s +0 r (vide) s +18 r (an) s +cmbx10.329 @sf +19 r (icon) s +3 r 16 2 ru +16 r (windo) s +-1 r 119 c +cmr10.329 @sf +0 r 44 c +19 r (but) s +19 r (release) s +19 r 53 c +19 r (of) s +19 r (the) s +20 r (windo) s +-1 r 119 c +18 r (manager) s +19 r (will) s +19 r (not) s +114 2263 p (map) s +16 r (it.) s +26 r (An) s +17 r (attempt) s +16 r (to) s +17 r (map) s +17 r (it) s +17 r (will) s +17 r (cause) s +17 r (the) s +16 r (icon) s +17 r (pixmap) s +17 r (\(or) s +17 r (default) s +17 r (icon\)) s +17 r (to) s +16 r 98 c +2 r 101 c +17 r (mapp) s +1 r (ed) s +114 2319 p (instead.) s +114 2394 p (The) s +cmbx10.329 @sf +15 r (icon) s +3 r 16 2 ru +16 r (mask) s +cmr10.329 @sf +15 r (are) s +15 r (ignored) s +15 r (in) s +15 r (release) s +15 r (5.) s +114 2469 p (The) s +cmbx10.329 @sf +20 r (windo) s +-1 r 119 c +2 r 16 2 ru +16 r (group) s +cmr10.329 @sf +20 r (\014eld) s +20 r (sp) s +1 r (eci\014es) s +20 r 97 c +21 r (\\group) s +20 r (leader".) s +34 r (All) s +21 r (windo) s +-1 r (ws) s +19 r (with) s +20 r (the) s +20 r (same) s +20 r (group) s +114 2526 p (leader) s +14 r (are) s +14 r (part) s +14 r (of) s +14 r (the) s +14 r (same) s +14 r (group.) s +20 r (The) s +14 r (user) s +14 r (can) s +14 r (close) s +14 r (the) s +14 r (whole) s +14 r (group,) s +15 r (and) s +14 r (the) s +14 r (icon) s +14 r (for) s +14 r (the) s +114 2582 p (group) s +15 r (ledaer) s +15 r (is) s +15 r (displa) s +0 r 121 c +-1 r (ed.) s +937 2828 p (19) s +@eop +18 @bop0 +cmbx10.360 @sf +[ 40 34 -2 0 43.309] 65 @dc +cmbx10.432 @sf +[<01FE000007FF80000FFFE0001E03F8003F01FC003F80FE003F807F003F807F003F803F801F003F8000003FC000001FC00000 + 1FC000001FC000001FE0007E1FE003FF9FE00FE1DFE01F80FFE03F807FE07F003FE07F003FE07F003FE0FF001FE0FF001FE0 + FF001FE0FF001FE0FF001FC0FF001FC0FF001FC0FF001FC07F003F807F003F803F803F001FC07E000FE0FE0007FFF80001FF + F000007F8000> 32 39 -3 0 34.370] 57 @dc +[ 32 41 -4 0 38.189] 83 @dc +[ 32 27 -2 0 28.310] 114 @dc +[ 48 41 -2 0 51.970] 88 @dc +cmr10.329 @sf +[<000100000003800000038000000380000007C0000007C000000FE000000F2000000F2000001E1000001E1000001E1000003C + 0800003C0800007C0C00007804000078040000F0020000F0020000F0020001E0010001E0010003E0008003C0008003C00080 + 07800040078000400F8000600F0000601F8000F8FFF003FE> 32 31 -1 0 34.090] 86 @dc +cmcsc10.329 @sf +[ 32 31 -3 0 32.385] 70 @dc +18 @bop1 +cmbx10.360 @sf +0 195 p (8.6) s +57 r (Automatic) s +19 r (Unzo) s +2 r (oming) s +cmr10.329 @sf +0 281 p (When) s +12 r 97 c +12 r (windo) s +0 r 119 c +10 r (is) s +12 r 98 c +2 r (eing) s +12 r (op) s +1 r (ened,) s +12 r (resized,) s +13 r (or) s +12 r (mo) s +0 r 118 c +-2 r (ed,) s +12 r (one) s +12 r (or) s +12 r (more) s +12 r (of) s +11 r (the) s +12 r (windo) s +0 r (ws) s +11 r (in) s +12 r (the) s +12 r 119 c +-1 r 97 c +-1 r 121 c +11 r (ma) s +0 r 121 c +11 r 98 c +1 r 101 c +0 337 p (zo) s +1 r (omed.) s +20 r (Tw) s +0 r 111 c +14 r (options) s +15 r (determine) s +14 r (whether) s +15 r (the) s +15 r (windo) s +0 r 119 c +13 r (manager) s +15 r (should) s +15 r (automatically) s +15 r (unzo) s +1 r (om) s +15 r (the) s +0 394 p (windo) s +0 r 119 c +12 r (rather) s +14 r (than) s +13 r (simply) s +13 r (closing) s +14 r (it) s +13 r (or) s +14 r (refusing) s +13 r (to) s +13 r (do) s +14 r (the) s +13 r (op) s +2 r (eration) s +13 r 124 c +cmbx10.329 @sf +13 r (preferUnzo) s +2 r (omT) s +-4 r (oClose) s +cmr10.329 @sf +0 450 p (and) s +cmbx10.329 @sf +15 r (unzo) s +2 r (omTiedListenerIfNecessary) s +cmr10.329 @sf +0 r 46 c +71 507 p (The) s +15 r (option) s +cmbx10.329 @sf +15 r (preferUnzo) s +1 r (omT) s +-3 r (oClose) s +cmr10.329 @sf +14 r (will) s +15 r (unzo) s +2 r (om) s +15 r 97 c +15 r (windo) s +0 r 119 c +14 r (rather) s +15 r (than) s +15 r (closing) s +15 r (it.) s +71 563 p (Ho) s +-1 r 119 c +-1 r (ev) s +-1 r (er,) s +17 r (the) s +18 r (listener) s +17 r (windo) s +0 r 119 c +17 r (is) s +17 r (treated) s +18 r (sp) s +1 r (ecially) s +-3 r 46 c +27 r 70 c +-3 r (or) s +17 r 118 c +-2 r (arious) s +17 r (reasons,) s +18 r (the) s +18 r (listener) s +17 r (ma) s +0 r 121 c +16 r (not) s +0 620 p 98 c +1 r 101 c +16 r 112 c +2 r (ermitted) s +16 r (to) s +16 r (close.) s +24 r (In) s +16 r (particular,) s +16 r (the) s +17 r (default) s +16 r (setting) s +16 r (for) s +16 r (the) s +17 r (option) s +cmbx10.329 @sf +16 r (allo) s +-1 r (wListenerT) s +-4 r (oClose-) s +0 676 p (ByClien) s +0 r 116 c +cmr10.329 @sf +19 r (prev) s +0 r (en) s +-1 r (ts) s +19 r (clien) s +0 r (ts) s +20 r (from) s +20 r 112 c +1 r (erforming) s +21 r (an) s +21 r (op) s +1 r (eration) s +20 r (\(lik) s +0 r 101 c +20 r (op) s +1 r (ening) s +21 r 97 c +20 r (windo) s +0 r (w\)) s +19 r (that) s +21 r 119 c +0 r (ould) s +0 733 p (allo) s +0 r 119 c +13 r (the) s +15 r (listener) s +15 r (to) s +14 r 98 c +2 r 101 c +14 r (closed.) s +20 r 84 c +-3 r 111 c +14 r (allo) s +0 r 119 c +13 r (the) s +15 r (listener) s +15 r (to) s +14 r 98 c +2 r 101 c +14 r (unzo) s +2 r (omed) s +14 r (in) s +15 r (this) s +14 r (situation,) s +15 r (the) s +15 r (option) s +cmbx10.329 @sf +0 789 p (unzo) s +1 r (omTiedListenerIfNecessary) s +cmr10.329 @sf +16 r (should) s +15 r 98 c +1 r 101 c +15 r (set.) s +cmbx10.360 @sf +0 911 p (8.7) s +57 r (Automatic) s +19 r (Prorating) s +cmr10.329 @sf +0 997 p (The) s +17 r (option) s +cmbx10.329 @sf +18 r (autoProrate) s +cmr10.329 @sf +17 r (fairly) s +18 r (reallo) s +1 r (cates) s +17 r (screen) s +18 r (space) s +17 r (after) s +18 r (eac) s +-1 r 104 c +17 r (windo) s +0 r 119 c +16 r (op) s +1 r (eration,) s +18 r (based) s +18 r (on) s +0 1053 p (the) s +15 r (minim) s +0 r (um) s +13 r (and) s +15 r (desired) s +15 r (size) s +15 r (of) s +14 r (eac) s +0 r 104 c +14 r (windo) s +0 r (w.) s +19 r (This) s +15 r (ma) s +-1 r 121 c +14 r (cause) s +15 r (windo) s +0 r (ws) s +13 r (to) s +15 r (shrink.) s +20 r (Ho) s +0 r 119 c +-1 r (ev) s +-1 r (er,) s +13 r (the) s +0 1109 p (previous) s +19 r 116 c +-1 r 119 c +-1 r 111 c +18 r (windo) s +-1 r (ws) s +18 r (that) s +18 r (had) s +19 r (their) s +18 r (desired) s +19 r (sizes) s +19 r (reset) s +18 r (will) s +19 r (not) s +18 r 98 c +1 r 101 c +19 r (shrunk) s +19 r 98 c +1 r (elo) s +0 r 119 c +17 r (their) s +19 r (desired) s +0 1166 p (sizes.) s +71 1222 p (If) s +17 r (the) s +17 r (option) s +cmbx10.329 @sf +18 r (biasedAutoProrate) s +cmr10.329 @sf +17 r (is) s +17 r (additionally) s +18 r (set,) s +18 r (then) s +17 r (after) s +17 r (eac) s +0 r 104 c +16 r (op) s +2 r (eration,) s +17 r (it) s +18 r (giv) s +-1 r (es) s +17 r (as) s +0 1279 p 109 c +0 r (uc) s +-2 r 104 c +15 r (space) s +15 r (as) s +15 r 112 c +1 r (ossible) s +15 r (to) s +15 r (the) s +16 r (listener) s +15 r (without) s +15 r (closing) s +15 r (other) s +15 r (windo) s +0 r (ws) s +14 r (on) s +15 r (the) s +15 r (screen.) s +71 1335 p 84 c +-3 r 111 c +16 r 98 c +1 r (oth) s +17 r (mak) s +0 r 101 c +16 r (windo) s +0 r (ws) s +16 r (as) s +18 r (large) s +17 r (as) s +17 r 112 c +1 r (ossible) s +18 r (when) s +17 r (they) s +17 r 98 c +1 r (ecome) s +18 r (the) s +17 r (listener,) s +17 r (and) s +18 r (ensure) s +17 r (that) s +0 1392 p (the) s +14 r (windo) s +0 r 119 c +13 r (at) s +14 r (least) s +15 r (attains) s +14 r (its) s +14 r (zo) s +1 r (om) s +15 r (minim) s +-1 r (um,) s +14 r (the) s +14 r (options) s +cmbx10.329 @sf +14 r (autoProrate) s +cmr10.329 @sf +0 r 44 c +cmbx10.329 @sf +15 r (biasedAutoProrate) s +cmr10.329 @sf +0 1448 p (and) s +cmbx10.329 @sf +15 r (listenerTiedT) s +-3 r (oZo) s +0 r (om) s +cmr10.329 @sf +15 r (can) s +16 r (all) s +15 r 98 c +1 r 101 c +15 r (set.) s +cmbx10.432 @sf +0 1591 p 57 c +69 r (Standard) s +23 r (X11) s +23 r (Prop) s +1 r (erties) s +cmr10.329 @sf +0 1693 p (Release) s +13 r 53 c +12 r (of) s +13 r (the) s +13 r (Siemens) s +13 r 82 c +-3 r (TL) s +12 r (Tiled) s +12 r (Windo) s +0 r 119 c +12 r (Manager) s +13 r (supp) s +1 r (orts) s +13 r (the) s +12 r (standard) s +13 r (prop) s +1 r (erties) s +13 r (describ) s +1 r (ed) s +0 1749 p (in) s +19 r (the) s +19 r (In) s +-1 r (ter) s +18 r (Clien) s +0 r 116 c +18 r (Comm) s +-1 r (unications) s +18 r (Con) s +0 r 118 c +-1 r (en) s +-2 r (tions) s +18 r (Man) s +0 r (ual) s +18 r (as) s +18 r (released) s +19 r (on) s +19 r (the) s +19 r (V11R2) s +19 r (tap) s +1 r (e.) s +31 r (The) s +0 1806 p (prop) s +1 r (erties) s +15 r (and) s +16 r (their) s +15 r (uses) s +15 r (are) s +15 r (describ) s +1 r (ed) s +15 r 98 c +2 r (elo) s +-1 r (w.) s +56 1912 p (1.) s +cmcsc10.329 @sf +22 r (WM) s +3 r 15 2 ru +15 r (TRANSIENT) s +3 r 15 2 ru +15 r 70 c +0 r (OR) s +cmr10.329 @sf +114 1968 p (Windo) s +-1 r (ws) s +21 r (whic) s +-1 r 104 c +20 r (are) s +22 r (transien) s +-1 r 116 c +21 r 112 c +1 r (op-ups) s +21 r (and) s +21 r (ha) s +0 r 118 c +-1 r 101 c +20 r (extremely) s +21 r (short) s +21 r (lifetimes) s +21 r (ma) s +0 r 121 c +20 r (ha) s +0 r 118 c +-1 r 101 c +20 r (the) s +cmbx10.329 @sf +114 2025 p 111 c +-1 r 118 c +-1 r (erride-redirect) s +cmr10.329 @sf +15 r (attribute) s +16 r (set) s +17 r (so) s +16 r (the) s +16 r (windo) s +0 r 119 c +15 r (manager) s +17 r (will) s +16 r (not) s +16 r 98 c +2 r 101 c +16 r (in) s +0 r 118 c +-2 r (olv) s +-1 r (ed.) s +23 r (Ho) s +0 r 119 c +-2 r (ev) s +-1 r (er,) s +16 r (if) s +114 2081 p (the) s +18 r (transien) s +0 r 116 c +17 r (windo) s +0 r 119 c +17 r (has) s +18 r 97 c +19 r (long) s +18 r (enough) s +19 r (lifetime) s +18 r (that) s +18 r (its) s +19 r (size) s +18 r (or) s +18 r 112 c +1 r (osition) s +19 r (ma) s +0 r 121 c +17 r (need) s +18 r (to) s +19 r 98 c +1 r 101 c +114 2138 p (manipulated) s +19 r 98 c +0 r 121 c +18 r (the) s +19 r (user,) s +cmbx10.329 @sf +21 r 111 c +-1 r 118 c +-1 r (erride-redirect) s +cmr10.329 @sf +18 r (should) s +20 r (not) s +19 r 98 c +1 r 101 c +20 r (used.) s +32 r (Instead,) s +21 r (the) s +19 r (windo) s +0 r (w's) s +cmcsc10.329 @sf +114 2194 p (WM) s +3 r 15 2 ru +15 r (TRANSIENT) s +3 r 15 2 ru +15 r 70 c +-1 r (OR) s +cmr10.329 @sf +16 r (prop) s +2 r (ert) s +-1 r 121 c +16 r (should) s +17 r 98 c +2 r 101 c +16 r (set) s +17 r (to) s +17 r (refer) s +17 r (to) s +17 r (the) s +17 r (windo) s +0 r 119 c +16 r (with) s +17 r (whic) s +-1 r 104 c +16 r (it) s +17 r (is) s +114 2251 p (asso) s +1 r (ciated.) s +20 r (The) s +14 r (Siemens) s +14 r 82 c +-3 r (TL) s +13 r (Tiled) s +14 r (Windo) s +0 r 119 c +13 r (Manager) s +14 r (will) s +14 r (not) s +14 r (tile) s +14 r (suc) s +0 r 104 c +13 r 97 c +14 r (windo) s +0 r 119 c +13 r 124 c +14 r (it) s +14 r (will) s +114 2307 p (sit) s +12 r (ab) s +1 r 111 c +0 r 118 c +-2 r 101 c +11 r (the) s +12 r (tiled) s +12 r (desktop.) s +19 r (It) s +12 r (has) s +12 r (no) s +12 r (decorations) s +12 r (and) s +12 r (can) s +12 r 98 c +1 r 101 c +12 r (mo) s +0 r 118 c +-2 r (ed,) s +12 r (mapp) s +1 r (ed) s +12 r (and) s +12 r (unmapp) s +1 r (ed) s +114 2364 p (only) s +15 r 98 c +0 r 121 c +14 r (the) s +15 r (clien) s +0 r (t.) s +56 2457 p (2.) s +cmcsc10.329 @sf +22 r (WM) s +3 r 15 2 ru +15 r (CLASS) s +114 2514 p (WM) s +3 r 15 2 ru +15 r (CLASS) s +cmr10.329 @sf +15 r (is) s +15 r 97 c +15 r (structure) s +15 r (con) s +0 r (taining) s +14 r 116 c +0 r 119 c +-1 r 111 c +14 r (strings:) s +cmbx10.329 @sf +20 r (res) s +3 r 16 2 ru +16 r (name) s +cmr10.329 @sf +15 r (and) s +cmbx10.329 @sf +15 r (res) s +3 r 16 2 ru +16 r (class) s +cmr10.329 @sf +0 r 46 c +114 2589 p (The) s +cmbx10.329 @sf +18 r (res) s +3 r 16 2 ru +16 r (class) s +cmr10.329 @sf +18 r (\014eld) s +19 r (iden) s +0 r (tifues) s +17 r (the) s +19 r (application.) s +30 r (The) s +cmbx10.329 @sf +19 r (res) s +3 r 16 2 ru +15 r (name) s +cmr10.329 @sf +19 r (\014eld) s +18 r (is) s +19 r 97 c +19 r (string) s +18 r (that) s +19 r (more) s +114 2645 p (sp) s +1 r (eci\014cally) s +15 r (iden) s +0 r (ti\014es) s +14 r (the) s +15 r (instance) s +15 r (of) s +15 r (the) s +16 r (application.) s +937 2828 p (18) s +@eop +17 @bop0 +cmbx10.360 @sf +[ 48 34 -2 0 42.963] 82 @dc +[ 32 34 -2 0 34.453] 76 @dc +[ 32 34 -3 0 35.007] 90 @dc +[<000E0000000E0000001F0000001F0000003F8000003F8000007FC000007EC000007EC00000FC600000FC600001F8300001F8 + 300003F8180003F0180007F01C0007E00C000FE00E000FC006000FC00700FFF01FE0FFF01FE0> 32 22 -1 0 30.233] 118 @dc +[<7FF8FFF07FF8FFF00FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC0 + 1F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F80FFFFFF80FFFFFF800FC01F800FC01F800FC01F80 + 0FC01F800FC01F800FC01F800FC01F800FC03F8007E03F8003F03F8001FC1F80007FFF80000FFF80> 32 35 -1 0 31.824] 13 @dc +17 @bop1 +cmbx10.360 @sf +0 195 p (8.3) s +57 r (Resize) s +cmr10.329 @sf +0 281 p (When) s +20 r (the) s +20 r (user) s +20 r (resizes) s +20 r 97 c +20 r (windo) s +-1 r (w,) s +20 r (the) s +20 r (op) s +1 r (eration) s +20 r (fails) s +20 r 98 c +0 r 121 c +19 r (default) s +20 r (if) s +20 r (the) s +20 r (size) s +20 r (sp) s +1 r (eci\014ed) s +20 r (cannot) s +20 r 98 c +1 r 101 c +0 337 p (attained.) s +28 r (An) s +18 r (option) s +18 r 112 c +2 r (ermits) s +17 r (the) s +18 r (windo) s +0 r 119 c +17 r (to) s +18 r 98 c +1 r 101 c +18 r (resized) s +18 r (to) s +18 r 97 c +18 r (smaller) s +18 r (size,) s +18 r (but) s +18 r (this) s +18 r (is) s +18 r (not) s +18 r (alw) s +0 r 97 c +-2 r (ys) s +0 394 p (desired.) s +71 450 p 84 c +-3 r 111 c +15 r 97 c +-1 r 118 c +-1 r (oid) s +15 r 97 c +16 r (failed) s +16 r (resize,) s +16 r (or) s +16 r (simply) s +16 r (to) s +16 r (prev) s +0 r (en) s +-2 r 116 c +15 r (other) s +16 r (windo) s +0 r (ws) s +15 r (from) s +16 r 98 c +1 r (eing) s +16 r (shrunk) s +16 r (or) s +16 r (closed,) s +16 r (an) s +0 507 p (option) s +12 r 112 c +2 r (ermits) s +12 r 97 c +12 r (resized) s +12 r (windo) s +0 r 119 c +11 r (to) s +13 r (\\slide".) s +19 r 70 c +-3 r (or) s +11 r (example,) s +13 r (if) s +13 r (the) s +12 r (user) s +12 r (attempts) s +12 r (to) s +13 r (enlarge) s +12 r 97 c +12 r (windo) s +0 r 119 c +0 563 p 98 c +0 r 121 c +15 r (resizing) s +17 r (its) s +17 r (left) s +17 r (edge,) s +17 r (and) s +17 r 97 c +16 r (windo) s +0 r 119 c +16 r (is) s +16 r (on) s +17 r (its) s +17 r (left,) s +17 r (but) s +17 r (there) s +16 r (is) s +17 r (space) s +17 r (on) s +17 r (its) s +16 r (righ) s +0 r (t,) s +16 r (the) s +17 r (windo) s +0 r 119 c +0 620 p (will) s +15 r (gro) s +0 r 119 c +14 r (to) s +15 r (the) s +15 r (righ) s +0 r 116 c +14 r (instead) s +15 r (of) s +16 r (to) s +15 r (the) s +15 r (left.) s +71 676 p (It) s +17 r (is) s +18 r (also) s +18 r 112 c +2 r (ossible) s +18 r (to) s +17 r (set) s +18 r (options) s +18 r (that) s +18 r (will) s +18 r (mo) s +0 r 118 c +-1 r 101 c +17 r 97 c +18 r (windo) s +-1 r 119 c +17 r 98 c +1 r (eing) s +18 r (resized) s +18 r (if) s +18 r (the) s +18 r (resize) s +18 r (fails) s +18 r (or) s +0 733 p 119 c +0 r (ould) s +14 r (close) s +15 r (or) s +15 r (shrink) s +15 r (other) s +15 r (windo) s +0 r (ws.) s +cmbx10.360 @sf +0 854 p (8.4) s +57 r (Listener) s +19 r (Tied) s +19 r (to) s +20 r (Zo) s +1 r (om) s +cmr10.329 @sf +0 940 p (When) s +18 r 97 c +18 r (windo) s +-1 r 119 c +17 r (has) s +18 r (the) s +18 r (option) s +cmbx10.329 @sf +17 r (listenerTiedT) s +-3 r (oZo) s +0 r (om) s +cmr10.329 @sf +18 r (set,) s +19 r (it) s +17 r (will) s +18 r 98 c +1 r 101 c +18 r (enlarged) s +18 r (to) s +18 r (its) s +18 r (zo) s +1 r (om) s +18 r (size) s +0 997 p (when) s +11 r (it) s +11 r 98 c +1 r (ecomes) s +11 r (the) s +11 r (listener.) s +19 r (Dep) s +1 r (ending) s +11 r (on) s +11 r 118 c +-1 r (arious) s +10 r (other) s +11 r (options,) s +12 r (when) s +11 r (it) s +11 r (is) s +11 r (no) s +11 r (longer) s +11 r (the) s +11 r (listener,) s +0 1053 p (it) s +14 r (ma) s +0 r 121 c +14 r (shrink) s +14 r (to) s +14 r (its) s +15 r (unzo) s +1 r (omed) s +15 r (size,) s +14 r (or) s +14 r (just) s +15 r (shrink) s +14 r (enough) s +15 r (to) s +14 r (allo) s +0 r 119 c +13 r (adjacen) s +0 r 116 c +13 r (windo) s +0 r 119 c +14 r (to) s +14 r (gro) s +0 r 119 c +13 r (bac) s +0 r 107 c +0 1109 p (to) s +0 r 119 c +-2 r (ards) s +14 r (their) s +14 r (desired) s +15 r (size.) s +20 r (In) s +14 r (particular,) s +15 r (if) s +14 r (another) s +14 r (windo) s +0 r 119 c +13 r 98 c +2 r (ecomes) s +14 r (the) s +15 r (listener,) s +14 r (it) s +14 r (will) s +15 r (shrink) s +14 r (to) s +0 1166 p (pro) s +0 r (vide) s +14 r (space) s +15 r (for) s +15 r (the) s +15 r (new) s +15 r (listener) s +16 r (to) s +15 r (zo) s +1 r (om.) s +71 1222 p (Some) s +19 r (users) s +19 r (prefer) s +20 r (all) s +19 r (windo) s +0 r (ws) s +19 r (to) s +19 r (ha) s +0 r 118 c +-2 r 101 c +cmbx10.329 @sf +19 r (listenerTiedT) s +-3 r (oZo) s +0 r (om) s +cmr10.329 @sf +19 r (set.) s +34 r (The) s +19 r (e\013ect) s +19 r (is) s +20 r (similar) s +19 r (to) s +0 1279 p 111 c +0 r 118 c +-2 r (erlapping) s +13 r (windo) s +-1 r 119 c +13 r (systems) s +13 r (that) s +13 r (raise) s +13 r 97 c +13 r (windo) s +0 r 119 c +12 r (when) s +14 r (it) s +13 r 98 c +1 r (ecomes) s +13 r (the) s +13 r (listener,) s +14 r (and) s +13 r (that) s +13 r (allo) s +0 r 119 c +12 r (the) s +0 1335 p (windo) s +0 r 119 c +14 r (to) s +15 r 98 c +1 r 101 c +15 r (co) s +0 r 118 c +-1 r (ered) s +14 r (again) s +15 r (when) s +15 r (another) s +16 r (windo) s +-1 r 119 c +14 r 98 c +2 r (ecomes) s +15 r (the) s +15 r (listener.) s +71 1392 p (When) s +13 r 97 c +13 r (windo) s +0 r 119 c +12 r (is) s +13 r (zo) s +1 r (omed,) s +14 r (it) s +13 r (ma) s +0 r 121 c +12 r 98 c +1 r (ecome) s +14 r (so) s +13 r (large) s +13 r (that) s +13 r (other) s +13 r (windo) s +0 r (ws) s +12 r (ma) s +0 r 121 c +12 r (close.) s +20 r (The) s +13 r (option) s +cmbx10.329 @sf +0 1448 p (automaticRep) s +1 r (opulateOnAutoUnzo) s +2 r (om) s +cmr10.329 @sf +17 r (reop) s +1 r (ens) s +17 r (them) s +17 r (if) s +17 r 112 c +1 r (ossible,) s +17 r (pro) s +0 r (viding) s +16 r (the) s +16 r (illusion) s +17 r (that) s +0 1505 p (they) s +12 r 119 c +-1 r (ere) s +11 r (hidden) s +11 r 98 c +0 r 121 c +11 r (the) s +11 r (zo) s +2 r (omed) s +11 r (windo) s +0 r (w,) s +11 r (and) s +12 r 119 c +-1 r (ere) s +11 r (then) s +12 r (exp) s +1 r (osed) s +11 r (when) s +12 r (the) s +12 r (windo) s +-1 r 119 c +11 r 119 c +0 r (as) s +10 r (unzo) s +1 r (omed.) s +cmbx10.360 @sf +0 1626 p (8.5) s +57 r (Mo) s +0 r (ving) s +18 r (Con\015icting) s +19 r (Windo) s +-1 r (ws) s +cmr10.329 @sf +0 1712 p (When) s +15 r 97 c +16 r (windo) s +-1 r 119 c +15 r (is) s +15 r 98 c +1 r (eing) s +15 r (op) s +2 r (ened,) s +15 r (resized,) s +15 r (or) s +16 r (mo) s +-1 r 118 c +-1 r (ed,) s +14 r (the) s +16 r (windo) s +-1 r 119 c +15 r (manager) s +15 r (app) s +1 r (ears) s +15 r (to) s +16 r (mo) s +-1 r 118 c +-1 r 101 c +14 r (other) s +0 1769 p (windo) s +0 r (ws,) s +12 r (whic) s +-1 r 104 c +12 r 111 c +1 r (ccup) s +0 r 121 c +11 r (the) s +13 r (needed) s +12 r (space,) s +13 r (out) s +13 r (of) s +12 r (the) s +13 r 119 c +-1 r 97 c +-1 r 121 c +-4 r 46 c +19 r (This) s +12 r (app) s +1 r (ears) s +13 r (to) s +12 r (happ) s +2 r (en) s +12 r (for) s +12 r 116 c +0 r 119 c +-1 r 111 c +11 r (reasons.) s +cmsy10.329 @sf +68 1875 p 15 c +cmr10.329 @sf +23 r 65 c +16 r (windo) s +0 r 119 c +15 r (in) s +17 r (the) s +16 r 119 c +0 r 97 c +-1 r 121 c +15 r (is) s +16 r (actually) s +17 r (shrunk,) s +17 r (sa) s +-1 r 121 c +16 r (on) s +16 r (its) s +16 r (left,) s +17 r (to) s +17 r (mak) s +-1 r 101 c +16 r (ro) s +1 r (om,) s +17 r (and) s +16 r (then) s +16 r (\(b) s +2 r (ecause) s +cmbx10.329 @sf +114 1931 p (autoDesiredEnlarge) s +cmr10.329 @sf +16 r (is) s +16 r (set\),) s +16 r (it) s +16 r (gro) s +0 r (ws) s +15 r (to) s +0 r 119 c +-2 r (ards) s +16 r (its) s +16 r (righ) s +-1 r 116 c +15 r (\(where) s +16 r (there) s +17 r (is) s +16 r (blank) s +16 r (space\)) s +16 r (bac) s +0 r 107 c +114 1988 p (to) s +15 r (its) s +15 r (desired) s +15 r (size.) s +20 r (Th) s +0 r (us) s +14 r (it) s +15 r (app) s +2 r (ears) s +15 r (to) s +15 r (mo) s +0 r 118 c +-2 r 101 c +15 r (to) s +15 r (the) s +15 r (righ) s +0 r (t.) s +cmsy10.329 @sf +68 2082 p 15 c +cmr10.329 @sf +23 r 65 c +16 r (windo) s +0 r 119 c +16 r (in) s +16 r (the) s +17 r 119 c +0 r 97 c +-2 r 121 c +16 r (is) s +16 r (actually) s +17 r (closed.) s +24 r (Ho) s +0 r 119 c +-1 r (ev) s +-2 r (er,) s +16 r (the) s +17 r (option) s +cmbx10.329 @sf +16 r (autoRep) s +2 r (oulateLast) s +cmr10.329 @sf +16 r (is) s +17 r (set,) s +114 2138 p (and) s +12 r (this) s +12 r (tries) s +13 r (to) s +12 r (reop) s +1 r (en) s +13 r (windo) s +-1 r (ws) s +12 r (closed) s +12 r (during) s +13 r (an) s +12 r (op) s +1 r (eration.) s +20 r 84 c +-3 r 111 c +11 r (ac) s +0 r (hiev) s +-1 r 101 c +11 r (the) s +12 r (e\013ect) s +13 r (of) s +12 r (mo) s +0 r (ving) s +114 2194 p (the) s +20 r (windo) s +-1 r 119 c +19 r (nearb) s +0 r 121 c +-4 r 44 c +20 r (either) s +20 r (the) s +20 r (option) s +cmbx10.329 @sf +20 r (preferPreviousP) s +-1 r (ositionOnAutoRep) s +1 r (opulate) s +cmr10.329 @sf +20 r (or) s +114 2251 p (the) s +11 r (option) s +cmbx10.329 @sf +12 r (preferPreviousP) s +-1 r (osition) s +cmr10.329 @sf +11 r (should) s +12 r 98 c +1 r 101 c +12 r (set.) s +19 r (This) s +11 r (will) s +12 r (attempt) s +12 r (to) s +11 r (reop) s +2 r (en) s +11 r (the) s +12 r (windo) s +0 r 119 c +114 2307 p (as) s +15 r (near) s +15 r (as) s +15 r 112 c +1 r (ossible) s +16 r (to) s +15 r (its) s +15 r (previous) s +15 r (lo) s +1 r (cation.) s +114 2383 p (Bew) s +-1 r (are:) s +21 r (Neither) s +15 r (the) s +16 r (option) s +cmbx10.329 @sf +16 r (requirePreviousP) s +-1 r (osition) s +cmr10.329 @sf +15 r (nor) s +16 r (the) s +15 r (option) s +cmbx10.329 @sf +16 r (requirePrevious-) s +114 2439 p 80 c +-1 r (ositionOnAutoRep) s +1 r (opulate) s +cmr10.329 @sf +20 r (should) s +20 r 98 c +1 r 101 c +21 r (set) s +20 r (in) s +20 r (conjunction) s +21 r (with) s +cmbx10.329 @sf +20 r (autoRep) s +1 r (oulateLast) s +cmr10.329 @sf +0 r 44 c +114 2495 p (since) s +14 r (they) s +15 r (will) s +14 r (force) s +15 r (the) s +14 r (windo) s +0 r 119 c +14 r (to) s +14 r 98 c +2 r 101 c +14 r (op) s +1 r (ened) s +15 r (exactly) s +15 r (at) s +14 r (its) s +15 r (previous) s +14 r (lo) s +1 r (cation,) s +15 r (and) s +15 r (this) s +14 r (will) s +114 2552 p (naturally) s +15 r (fail.) s +937 2828 p (17) s +@eop +16 @bop0 +cmbx10.360 @sf +[ 40 34 -2 0 43.931] 68 @dc +[ 40 34 -3 0 40.749] 66 @dc +[ 32 35 -3 0 31.824] 104 @dc +16 @bop1 +cmr10.329 @sf +0 195 p (section,) s +20 r 119 c +0 r 101 c +18 r (attempt) s +19 r (to) s +19 r (describ) s +1 r 101 c +19 r (some) s +19 r (of) s +19 r (the) s +19 r (more) s +19 r (common) s +18 r 99 c +0 r (hanges) s +18 r (in) s +19 r 98 c +1 r (eha) s +0 r (vior) s +18 r (that) s +19 r (our) s +19 r (users) s +0 252 p (ha) s +0 r 118 c +-2 r 101 c +15 r (explored.) s +cmbx10.360 @sf +0 369 p (8.1) s +57 r (Default) s +19 r (Automatic) s +19 r (Beha) s +0 r (vior) s +cmr10.329 @sf +0 455 p (The) s +16 r (default) s +16 r (option) s +16 r (settings,) s +16 r (those) s +16 r (in) s +16 r (e\013ect) s +15 r (if) s +16 r (no) s +16 r (preference) s +16 r (\014les) s +16 r (are) s +16 r (read) s +16 r (at) s +16 r (all,) s +16 r (pro) s +0 r (vide) s +14 r (what) s +16 r 119 c +0 r 101 c +0 512 p (consider) s +15 r (the) s +15 r (minim) s +0 r (um) s +14 r (automatic) s +15 r 98 c +2 r (eha) s +-1 r (vior) s +14 r (that) s +16 r 97 c +15 r (user) s +15 r 119 c +0 r (ould) s +14 r (\014nd) s +15 r (acceptable:) s +cmsy10.329 @sf +68 590 p 15 c +cmr10.329 @sf +23 r (Windo) s +0 r (ws) s +10 r (ma) s +0 r 121 c +11 r (automatically) s +11 r 98 c +2 r 101 c +11 r (shrunk) s +12 r (and) s +12 r (closed) s +12 r (\(except) s +11 r (for) s +12 r (an) s +12 r (activ) s +-1 r 101 c +11 r (listener) s +12 r (as) s +12 r 97 c +11 r (result) s +12 r (of) s +114 646 p 97 c +10 r (clien) s +0 r (t's) s +10 r (action\).) s +18 r (This) s +11 r (ma) s +0 r 121 c +9 r 98 c +1 r 101 c +11 r (prev) s +0 r (en) s +-2 r (ted) s +10 r (on) s +11 r 97 c +10 r 112 c +1 r (er-windo) s +0 r 119 c +10 r (basis) s +10 r (as) s +11 r 97 c +10 r (result) s +11 r (of) s +11 r (setting) s +10 r (\\Lo) s +1 r 99 c +0 r 107 c +-1 r (ed) s +114 703 p (Op) s +1 r (en",) s +16 r (\\Fixed) s +17 r (Width",) s +16 r (\\Fixed) s +16 r (Heigh) s +0 r (t",) s +16 r (or) s +16 r (\\Fixed) s +16 r (Edges") s +16 r (in) s +17 r (the) s +16 r (\\Options") s +16 r (submen) s +0 r 117 c +15 r (of) s +16 r 97 c +114 759 p (windo) s +-1 r 119 c +15 r (men) s +-1 r (u.) s +cmsy10.329 @sf +68 845 p 15 c +cmr10.329 @sf +23 r (When) s +20 r (space) s +19 r (is) s +20 r 97 c +0 r 118 c +-3 r (ailable,) s +20 r (windo) s +0 r (ws) s +19 r (whic) s +-1 r 104 c +19 r 119 c +0 r (ere) s +19 r (shrunk) s +19 r (regro) s +0 r 119 c +19 r (to) s +-1 r 119 c +-1 r (ards) s +19 r (their) s +20 r (desired) s +19 r (sizes,) s +114 901 p (though) s +15 r (they) s +15 r (ma) s +0 r 121 c +14 r (not) s +15 r (necessarily) s +15 r 98 c +1 r 101 c +16 r (lo) s +1 r (cated) s +15 r (at) s +15 r (their) s +15 r (exact) s +15 r (original) s +16 r 112 c +1 r (osition.) s +cmsy10.329 @sf +68 987 p 15 c +cmr10.329 @sf +23 r (When) s +15 r (the) s +16 r (windo) s +-1 r 119 c +15 r (manager) s +15 r (automatically) s +15 r (places) s +16 r 97 c +15 r (windo) s +0 r (w,) s +14 r (an) s +15 r (attempt) s +16 r (is) s +15 r (made) s +16 r (to) s +15 r (place) s +15 r (it) s +114 1043 p (at) s +18 r (its) s +19 r (previous) s +19 r (lo) s +1 r (cation,) s +20 r (ev) s +0 r (en) s +18 r (if) s +18 r (other) s +19 r (windo) s +0 r (ws) s +18 r (ha) s +-1 r 118 c +-1 r 101 c +18 r (to) s +19 r 98 c +1 r 101 c +19 r (shrunk) s +19 r (or) s +19 r (closed.) s +31 r (If) s +18 r (this) s +19 r (fails,) s +114 1100 p (ho) s +-1 r 119 c +-1 r (ev) s +-1 r (er,) s +14 r (the) s +15 r (windo) s +0 r 119 c +14 r (is) s +15 r (op) s +1 r (ened) s +16 r (at) s +15 r (the) s +15 r 98 c +1 r (est) s +15 r (lo) s +2 r (cation) s +15 r (nearb) s +-1 r 121 c +-3 r 46 c +cmsy10.329 @sf +68 1186 p 15 c +cmr10.329 @sf +23 r (When) s +20 r 97 c +20 r (windo) s +-1 r 119 c +19 r (is) s +20 r (unzo) s +1 r (omed,) s +21 r (an) s +20 r (attempt) s +20 r (is) s +20 r (made) s +20 r (to) s +20 r (op) s +1 r (en) s +20 r (\(or) s +20 r 92 c +cmbx10.329 @sf +0 r (rep) s +1 r (opulate) s +cmr10.329 @sf +0 r ("\)) s +20 r (windo) s +0 r (ws) s +114 1242 p (whic) s +-1 r 104 c +16 r 119 c +0 r (ere) s +15 r (automatically) s +16 r (closed) s +17 r (since) s +16 r (the) s +17 r (windo) s +-1 r 119 c +16 r 119 c +0 r (as) s +15 r (zo) s +1 r (omed,) s +17 r (but) s +17 r (only) s +16 r (at) s +16 r (their) s +17 r (previous) s +114 1298 p 112 c +1 r (ositions,) s +14 r (and) s +13 r (only) s +14 r (if) s +14 r (no) s +13 r (other) s +14 r (windo) s +0 r (ws) s +12 r (will) s +14 r 98 c +1 r 101 c +14 r (shrunk) s +14 r (or) s +13 r (closed.) s +20 r 65 c +14 r (similar) s +13 r (attempt) s +14 r (is) s +13 r (made) s +114 1355 p (when) s +14 r 97 c +14 r (windo) s +0 r 119 c +13 r (is) s +14 r (explicitly) s +14 r (closed) s +14 r 124 c +14 r (to) s +14 r (rep) s +2 r (opulate) s +14 r (windo) s +0 r (ws) s +13 r (automatically) s +14 r (closed) s +14 r (since) s +14 r (the) s +114 1411 p (windo) s +-1 r 119 c +15 r 119 c +-1 r (as) s +14 r (op) s +2 r (ened.) s +cmbx10.360 @sf +0 1529 p (8.2) s +57 r (Neigh) s +0 r 98 c +0 r (orho) s +2 r 111 c +1 r 100 c +20 r (Placemen) s +-1 r 116 c +cmr10.329 @sf +0 1615 p (When) s +18 r 97 c +17 r (windo) s +0 r 119 c +17 r (is) s +17 r (op) s +2 r (ened) s +17 r (or) s +18 r (mo) s +-1 r 118 c +-1 r (ed,) s +17 r (it) s +18 r (ma) s +0 r 121 c +16 r (not) s +18 r 98 c +1 r 101 c +18 r 112 c +1 r (ossible) s +18 r (to) s +17 r (place) s +18 r (it) s +18 r (exactly) s +17 r (at) s +18 r (the) s +18 r (size) s +17 r (and) s +0 1672 p (lo) s +1 r (cation) s +16 r (sp) s +1 r (eci\014ed.) s +21 r (Options) s +16 r (are) s +15 r 97 c +0 r 118 c +-2 r (ailable) s +14 r (whic) s +0 r 104 c +14 r (allo) s +0 r 119 c +15 r (it) s +15 r (to) s +16 r 98 c +1 r 101 c +15 r (placed) s +16 r (nearb) s +0 r 121 c +14 r (its) s +16 r (sp) s +1 r (eci\014ed) s +15 r (lo) s +2 r (cation) s +0 1728 p (and/or) s +15 r (shrunk) s +15 r 98 c +2 r (elo) s +-1 r 119 c +14 r (its) s +16 r (desired) s +15 r (size.) s +71 1784 p (By) s +16 r (nearb) s +0 r 121 c +-4 r 44 c +16 r 119 c +0 r 101 c +15 r (mean) s +17 r (within) s +16 r 97 c +17 r (\\neigh) s +-1 r 98 c +1 r (orho) s +1 r 111 c +1 r (d") s +17 r (of) s +16 r (the) s +17 r (sp) s +1 r (eci\014ed) s +17 r (lo) s +1 r (cation.) s +24 r (Tw) s +0 r 111 c +15 r (kinds) s +17 r (of) s +16 r (neigh-) s +0 1841 p 98 c +1 r (orho) s +2 r 111 c +1 r (ds) s +15 r (are) s +15 r (supp) s +1 r (orted:) s +cmsy10.329 @sf +68 1919 p 15 c +cmr10.329 @sf +23 r 65 c +23 r (windo) s +-1 r 119 c +22 r (is) s +23 r (placed) s +22 r (within) s +23 r 97 c +cmbx10.329 @sf +23 r (cen) s +-1 r (ter) s +25 r (neigh) s +0 r 98 c +0 r (orho) s +2 r 111 c +1 r 100 c +cmr10.329 @sf +23 r (if) s +23 r (the) s +22 r (windo) s +0 r 119 c +22 r (as) s +22 r (actually) s +23 r (placed) s +114 1975 p (con) s +-1 r (tains) s +15 r (the) s +15 r (cen) s +-1 r (ter) s +15 r (of) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (as) s +15 r (it) s +15 r 119 c +0 r (as) s +14 r (sp) s +1 r (eci\014ed.) s +cmsy10.329 @sf +68 2061 p 15 c +cmr10.329 @sf +23 r 65 c +10 r (windo) s +0 r 119 c +10 r (is) s +10 r (placed) s +11 r (within) s +11 r (an) s +cmbx10.329 @sf +10 r (edge) s +12 r (neigh) s +0 r 98 c +0 r (orho) s +2 r 111 c +1 r 100 c +cmr10.329 @sf +11 r (if) s +10 r (the) s +11 r (windo) s +0 r 119 c +9 r (as) s +11 r (actually) s +11 r (placed) s +10 r 111 c +0 r 118 c +-1 r (erlaps) s +114 2117 p (the) s +15 r (windo) s +0 r 119 c +14 r (as) s +15 r (it) s +15 r 119 c +0 r (as) s +14 r (sp) s +1 r (eci\014ed.) s +71 2195 p (Pure) s +14 r (neigh) s +0 r 98 c +0 r (orho) s +1 r 111 c +1 r (ds,) s +15 r (as) s +14 r (de\014ned) s +14 r (ab) s +1 r 111 c +0 r 118 c +-1 r (e,) s +13 r (are) s +14 r (somewhat) s +15 r (excessiv) s +-1 r 101 c +14 r (for) s +14 r (larger) s +14 r (windo) s +0 r (ws.) s +19 r 70 c +-3 r (or) s +13 r (exam-) s +0 2252 p (ple,) s +19 r (the) s +18 r (edge) s +18 r (neigh) s +0 r 98 c +0 r (orho) s +2 r 111 c +1 r 100 c +18 r (of) s +18 r 97 c +18 r (windo) s +0 r 119 c +17 r 49 c +cmmi10.329 @sf +0 r 61 c +cmr10.329 @sf +0 r 51 c +18 r (the) s +19 r (heigh) s +-1 r 116 c +17 r (and) s +19 r 49 c +cmmi10.329 @sf +0 r 61 c +cmr10.329 @sf +0 r 51 c +18 r (the) s +18 r (width) s +18 r (of) s +18 r (the) s +18 r (screen) s +19 r (whic) s +-1 r 104 c +0 2308 p (is) s +18 r (placed) s +19 r (at) s +18 r (the) s +19 r (cen) s +-1 r (ter) s +18 r (of) s +18 r (the) s +19 r (screen) s +18 r (consists) s +19 r (of) s +18 r (the) s +18 r (en) s +0 r (tire) s +18 r (screen) s +18 r 124 c +18 r (that) s +19 r (is,) s +19 r (it) s +18 r (could) s +19 r 98 c +1 r 101 c +19 r (placed) s +0 2365 p (an) s +0 r (ywhere.) s +71 2421 p (Therefore,) s +19 r 119 c +0 r 101 c +18 r (include) s +19 r 97 c +cmbx10.329 @sf +18 r (neigh) s +0 r 98 c +0 r (orho) s +2 r 111 c +1 r (dShrinkF) s +-3 r (actor) s +cmr10.329 @sf +18 r (option) s +18 r (whic) s +0 r 104 c +18 r (shrinks) s +19 r (neigh) s +0 r 98 c +0 r (orho) s +1 r 111 c +1 r (ds) s +0 2478 p (relativ) s +0 r 101 c +14 r (to) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (size.) s +71 2534 p 65 c +15 r 110 c +-1 r (um) s +-1 r 98 c +0 r (er) s +16 r (of) s +cmbx10.329 @sf +15 r (try) s +-4 r (..) s +cmr10.329 @sf +20 r (options) s +15 r (determine) s +15 r (whether) s +15 r (neigh) s +0 r 98 c +0 r (orho) s +1 r 111 c +2 r (ds) s +15 r (are) s +15 r (to) s +15 r 98 c +1 r 101 c +15 r (used) s +16 r (at) s +15 r (all.) s +71 2591 p (An) s +10 r (excessiv) s +0 r (ely) s +10 r (large) s +10 r 110 c +0 r (um) s +-1 r 98 c +0 r (er) s +11 r (of) s +cmbx10.329 @sf +10 r (prefer...) s +cmr10.329 @sf +19 r (options) s +11 r (determine) s +11 r (whether) s +10 r (neigh) s +0 r 98 c +0 r (orho) s +2 r 111 c +1 r (ds) s +10 r (are) s +11 r (to) s +11 r (used) s +0 2647 p (in) s +16 r (preference) s +16 r (to) s +15 r (closing) s +16 r (or) s +16 r (shrinking) s +16 r (adjacen) s +-1 r 116 c +15 r (windo) s +0 r 119 c +-1 r (a,) s +14 r (or) s +16 r (shrinking) s +16 r (the) s +16 r (windo) s +0 r 119 c +14 r 98 c +2 r (eing) s +15 r (explicitly) s +0 2704 p (a\013ected) s +15 r 98 c +1 r (elo) s +0 r 119 c +14 r (its) s +15 r (desired) s +16 r (size.) s +937 2828 p (16) s +@eop +15 @bop0 +cmtt10.329 @sf +[<61E0F3F0FBF83FBE1F9E0F0C> 16 6 -4 -22 23.863] 126 @dc +cmbx10.329 @sf +[ 24 45 -3 11 26.136] 47 @dc +cmr10.329 @sf +[<000FE02000781C6001C002E0038003E0070001E00E0001E01E0001E03C0001E03C0001E07C0001E0780001E0780003E0F800 + 7FFCF8000000F8000000F8000000F8000000F8000000F800000078000000780000207C0000203C0000203C0000601E000060 + 0E0000E0070000E0038001E001C006E000781860000FE020> 32 31 -3 0 35.668] 71 @dc +cmbx10.432 @sf +[<007FC00003FFF8000FFFFC001FC03F003F000F807E0007807C0007C0FC0003C0F80003E0F80003E0F80003E0F80007E0F800 + 0FE0FC001FE07C007FE07E01FFC03F03FFC01F8FFF8007FFFF8001FFFF0001FFFC0007FFF8000FFFE0001FFFF8001FFE7E00 + 3FFC3F003FF01F003FC01F803F800F803F000F803E000F803E000F801E001F801F001F000F003F000FC07E0003FFFC0001FF + F000003FC000> 32 39 -3 0 34.370] 56 @dc +[<003FC3FF8001FFF3FF8003F03BFF8007E01FF8000FE00FF8000FE007F8000FE007F8000FE003F8000FE003F8000FE003F800 + 0FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F800 + 0FE003F8000FE003F8000FE003F8000FE003F800FFE03FF800FFE03FF800FFE03FF800> 40 27 -3 0 38.189] 117 @dc +15 @bop1 +cmr10.329 @sf +71 195 p (When) s +14 r (these) s +14 r (options) s +15 r (are) s +14 r 99 c +0 r (hanged) s +14 r (explicitly) s +14 r (through) s +15 r (the) s +14 r (\\Options") s +14 r (submen) s +0 r (u,) s +14 r 99 c +0 r (hanges) s +13 r (made) s +14 r (to) s +0 252 p (them) s +18 r (via) s +19 r (rereading) s +18 r (preference) s +19 r (\014les) s +18 r (will) s +19 r (ha) s +-1 r 118 c +-1 r 101 c +17 r (no) s +19 r (e\013ect.) s +30 r (The) s +18 r (curren) s +0 r 116 c +18 r 118 c +-2 r (alues) s +17 r (of) s +19 r (these) s +18 r (options) s +19 r (are) s +0 308 p (sa) s +0 r 118 c +-2 r (ed) s +15 r (for) s +16 r (eac) s +0 r 104 c +14 r (windo) s +0 r 119 c +15 r (in) s +16 r (the) s +cmbx10.329 @sf +16 r (.rtl.la) s +-1 r 121 c +-1 r (out) s +cmr10.329 @sf +14 r (\014le) s +16 r (and) s +16 r (are) s +16 r (restored) s +15 r (as) s +16 r (eac) s +0 r 104 c +15 r (windo) s +-1 r 119 c +15 r (is) s +16 r (reop) s +1 r (ened) s +16 r (when) s +0 364 p (the) s +15 r (windo) s +0 r 119 c +14 r (manager) s +15 r (is) s +15 r (restarted.) s +cmbx10.360 @sf +0 486 p (7.4) s +57 r (Pro\014le) s +19 r (Men) s +0 r 117 c +cmr10.329 @sf +0 572 p (The) s +15 r (\014le) s +cmbx10.329 @sf +15 r (.rtl.pro\014les) s +cmr10.329 @sf +15 r (men) s +0 r 117 c +14 r (is) s +15 r (used) s +16 r (for) s +15 r (adding) s +15 r (additional) s +15 r (en) s +0 r (tries) s +14 r (to) s +15 r (the) s +15 r (\\Read) s +15 r (Pro\014le") s +16 r (submen) s +-1 r (u.) s +71 628 p (Eac) s +-1 r 104 c +15 r (pro\014le) s +16 r (is) s +15 r (registered) s +16 r (in) s +16 r (the) s +15 r (\014le) s +cmbx10.329 @sf +16 r (.rtl.pro\014les) s +cmr10.329 @sf +16 r (as) s +15 r 97 c +16 r (pair) s +16 r (of) s +15 r (lines.) s +22 r (The) s +16 r (\014rst) s +16 r (line) s +15 r (is) s +16 r (the) s +16 r (name) s +0 685 p (of) s +15 r (the) s +16 r (pro\014le) s +15 r (as) s +16 r (it) s +15 r (should) s +16 r (app) s +1 r (ear) s +15 r (in) s +16 r (the) s +15 r (\\Read) s +16 r (Pro\014le") s +15 r (submen) s +0 r (u.) s +20 r (The) s +15 r (second) s +16 r (line) s +15 r (con) s +0 r (tains) s +14 r 97 c +16 r (list) s +0 741 p (of) s +15 r (preference) s +15 r (\014les) s +15 r (\(separated) s +16 r 98 c +-1 r 121 c +14 r (blanks\)) s +16 r (to) s +15 r 98 c +1 r 101 c +15 r (read) s +15 r (when) s +16 r (the) s +15 r (men) s +-1 r 117 c +15 r (en) s +-1 r (try) s +14 r (is) s +16 r (selected.) s +71 798 p (These) s +12 r (named) s +12 r (preference) s +12 r (\014les,) s +12 r (lik) s +0 r 101 c +11 r (all) s +12 r (other) s +12 r (customization) s +12 r (\014les) s +12 r (op) s +2 r (ened) s +12 r 98 c +-1 r 121 c +11 r (the) s +13 r (windo) s +-1 r 119 c +11 r (manager,) s +0 854 p (are) s +14 r (lo) s +1 r (ok) s +0 r (ed) s +13 r (up) s +14 r (in) s +14 r (the) s +14 r (directory) s +14 r (named) s +14 r (in) s +14 r (the) s +cmbx10.329 @sf +14 r 82 c +-3 r (TLENV) s +cmr10.329 @sf +13 r (en) s +-1 r (vironmen) s +-1 r 116 c +13 r 118 c +-1 r (ariable,) s +13 r (and) s +14 r (if) s +14 r (that) s +14 r (fails,) s +14 r (in) s +0 911 p (the) s +16 r (user's) s +16 r (home) s +16 r (directory) s +-3 r 46 c +21 r (Supp) s +2 r (ort) s +15 r (is) s +16 r (also) s +16 r (pro) s +0 r (vided) s +15 r (for) s +16 r (\014les) s +16 r (named) s +15 r 98 c +0 r 121 c +15 r (paths) s +16 r 98 c +1 r (eginning) s +16 r (with) s +16 r (\\/") s +0 967 p (\(absolute) s +15 r (path) s +15 r (names\)) s +15 r (and) s +16 r (with) s +15 r 92 c +cmtt10.329 @sf +0 r 126 c +cmr10.329 @sf +0 r 34 c +15 r (\(paths) s +15 r (ro) s +1 r (oted) s +15 r (in) s +16 r 97 c +15 r (user's) s +15 r (home) s +15 r (directory\).) s +71 1024 p (When) s +14 r (an) s +14 r (en) s +0 r (try) s +13 r (is) s +14 r (selected) s +15 r (from) s +14 r (the) s +14 r (\\Read) s +14 r (Pro\014le") s +14 r (submen) s +0 r (u,) s +14 r (the) s +14 r (standard) s +14 r (preference) s +14 r (\014les) s +15 r (are) s +0 1080 p (read) s +13 r (\014rst,) s +13 r 98 c +2 r (efore) s +13 r (the) s +13 r (\014les) s +13 r (asso) s +1 r (ciated) s +13 r (with) s +13 r (the) s +13 r (men) s +0 r 117 c +12 r (en) s +-1 r (try) s +-3 r 46 c +18 r (Th) s +0 r (us) s +12 r (the) s +13 r (additional) s +13 r (preference) s +13 r (\014les) s +13 r (can) s +0 1137 p 98 c +1 r 101 c +15 r (used) s +16 r (to) s +15 r (add) s +15 r (or) s +15 r 111 c +0 r 118 c +-2 r (erride) s +15 r (options) s +15 r (sp) s +1 r (eci\014ed) s +15 r (in) s +15 r (the) s +16 r (standard) s +15 r (preference) s +15 r (\014les.) s +71 1193 p (There) s +15 r (are) s +16 r 97 c +16 r 110 c +-1 r (um) s +-1 r 98 c +0 r (er) s +16 r (of) s +16 r (additional) s +15 r (preference) s +16 r (\014les) s +16 r (included) s +15 r (with) s +16 r (the) s +16 r (distribution.) s +22 r (These) s +15 r (illus-) s +0 1249 p (trate) s +15 r (man) s +0 r 121 c +14 r (of) s +15 r (the) s +15 r (issues) s +15 r (describ) s +2 r (ed) s +15 r (in) s +15 r (the) s +15 r (section) s +15 r 98 c +2 r (elo) s +-1 r 119 c +15 r (on) s +15 r (\\Automatic) s +15 r (Strategies".) s +cmbx10.360 @sf +0 1371 p (7.5) s +57 r (Button) s +19 r (Seman) s +0 r (tics) s +cmr10.329 @sf +0 1457 p (The) s +17 r (\014le) s +cmbx10.329 @sf +16 r (.../src/in) s +0 r (terf) s +2 r 16 2 ru +16 r (init.c) s +cmr10.329 @sf +16 r (in) s +17 r (the) s +17 r (distribution) s +16 r (determines) s +17 r (the) s +17 r (asso) s +1 r (ciation) s +17 r (of) s +16 r (mouse) s +17 r (buttons) s +17 r 47 c +0 1513 p (mo) s +1 r (di\014er) s +15 r (com) s +0 r (binations) s +14 r (\(e.g.) s +21 r (CTRL) s +15 r (Middle) s +15 r (Button\)) s +15 r (with) s +15 r 97 c +15 r (particular) s +15 r (windo) s +0 r 119 c +14 r (manager) s +15 r (action.) s +71 1570 p 80 c +-1 r (art) s +16 r (of) s +16 r (the) s +16 r (\014le) s +cmbx10.329 @sf +17 r (.../src/defaults.i) s +cmr10.329 @sf +16 r (\(lo) s +1 r (ok) s +17 r (for) s +16 r (\\Global) s +17 r (In) s +-1 r (terface) s +16 r (Options"\)) s +16 r (determines) s +17 r (whether) s +0 1626 p 97 c +16 r (particular) s +16 r (mouse) s +16 r (button) s +16 r 47 c +16 r (mo) s +1 r (di\014er) s +16 r (com) s +-1 r (bination) s +15 r (tak) s +0 r (es) s +15 r (e\013ect) s +16 r (in) s +16 r 97 c +16 r (sp) s +1 r (eci\014ed) s +16 r (region) s +16 r (\(e.g.) s +22 r (header,) s +0 1683 p 98 c +1 r (order,) s +15 r (gadget,) s +16 r (etc.\).) s +71 1739 p (By) s +15 r 99 c +-1 r (hanging) s +15 r (these) s +15 r (\014les) s +15 r (and) s +15 r (recompiling,) s +15 r (these) s +15 r (asso) s +2 r (ciations) s +15 r (can) s +15 r 98 c +1 r 101 c +15 r 99 c +0 r (hanged.) s +71 1796 p (In) s +14 r (particular,) s +15 r (the) s +15 r (\014les) s +cmbx10.329 @sf +14 r (.../src/in) s +0 r (terf) s +2 r 16 2 ru +16 r (init) s +3 r 16 2 ru +16 r (one.c) s +cmr10.329 @sf +14 r (and) s +cmbx10.329 @sf +15 r (.../src/defaults) s +3 r 16 2 ru +16 r (one.i) s +cmr10.329 @sf +15 r (in) s +14 r (the) s +15 r (distribu-) s +0 1852 p (tion) s +15 r (con) s +0 r (tain) s +14 r (the) s +15 r (default) s +15 r (settings) s +15 r (for) s +16 r 97 c +15 r (one-button) s +15 r (mouse.) s +cmbx10.432 @sf +0 1995 p 56 c +69 r (Automatic) s +23 r (Strategies) s +cmr10.329 @sf +0 2097 p (The) s +22 r (Siemens) s +22 r 82 c +-3 r (TL) s +21 r (Tiled) s +22 r (Windo) s +0 r 119 c +21 r (Manager) s +22 r (can) s +22 r (automatically) s +22 r (adjust) s +22 r (the) s +22 r (size) s +22 r (and) s +22 r 112 c +1 r (osition) s +22 r (of) s +0 2153 p (windo) s +0 r (ws) s +13 r (to) s +15 r (balance) s +14 r (comp) s +1 r (eting) s +15 r (demands) s +14 r (for) s +15 r (screen) s +14 r (space,) s +15 r (or) s +14 r (it) s +15 r (can) s +14 r 98 c +1 r 101 c +15 r (completely) s +14 r (prev) s +0 r (en) s +-1 r (ted) s +13 r (from) s +0 2210 p (doing) s +15 r (so.) s +71 2266 p (In) s +11 r (the) s +12 r (simplest) s +11 r (case,) s +12 r (windo) s +0 r (ws) s +11 r (are) s +11 r (placed) s +12 r (exactly) s +11 r (at) s +12 r (the) s +12 r (size) s +11 r (and) s +12 r (lo) s +1 r (cation) s +11 r (that) s +12 r (the) s +12 r (user) s +11 r (sp) s +1 r (eci\014es.) s +0 2323 p (Via) s +19 r (options,) s +19 r (it) s +19 r (is) s +18 r 112 c +1 r (ossible) s +19 r (to) s +19 r (prev) s +-1 r (en) s +-1 r 116 c +18 r (windo) s +-1 r (ws) s +18 r (from) s +19 r (ev) s +-1 r (er) s +18 r 98 c +1 r (eing) s +19 r (automatically) s +18 r (shrunk) s +19 r (or) s +18 r (closed,) s +0 2379 p (and) s +13 r (to) s +13 r (ensure) s +12 r (that) s +13 r (windo) s +0 r (ws) s +12 r (op) s +1 r (ened) s +13 r (automatically) s +12 r (are) s +13 r (reop) s +1 r (ened) s +13 r (exactly) s +13 r (at) s +13 r (their) s +13 r (previous) s +12 r (lo) s +2 r (cation.) s +0 2436 p (If) s +15 r 97 c +14 r (windo) s +0 r 119 c +13 r (cannot) s +15 r 98 c +1 r 101 c +15 r (op) s +1 r (ened,) s +15 r (mo) s +0 r 118 c +-2 r (ed) s +14 r (or) s +14 r (resized) s +15 r (exactly) s +15 r (as) s +14 r (sp) s +1 r (eci\014ed) s +15 r (without) s +15 r (causing) s +14 r (side) s +15 r (e\013ects,) s +0 2492 p (the) s +15 r (windo) s +0 r 119 c +14 r (manager) s +15 r (will) s +15 r (refuse) s +15 r (to) s +16 r (do) s +15 r (the) s +15 r (op) s +1 r (eration.) s +71 2548 p (The) s +20 r (options) s +21 r 112 c +2 r (ermit) s +20 r (considerably) s +21 r (more) s +21 r (\015exibilit) s +0 r 121 c +-4 r 46 c +37 r (There) s +20 r (are) s +21 r (large) s +21 r 110 c +0 r (um) s +-1 r 98 c +0 r (er) s +21 r (of) s +21 r (options) s +20 r (that) s +0 2605 p (con) s +0 r (trol) s +18 r (automatic) s +20 r 98 c +1 r (eha) s +0 r (vior) s +19 r (and) s +19 r (they) s +20 r (are) s +19 r (describ) s +2 r (ed) s +19 r (in) s +20 r (detail) s +19 r (in) s +20 r (the) s +20 r (\\Options") s +19 r (section.) s +34 r (In) s +19 r (this) s +937 2828 p (15) s +@eop +14 @bop0 +cmtt10.329 @sf +[<0E03800F07800F07800D05800D8D801D8DC01D8DC01D8DC01D8DC0198CC019DCC019DCC019DCC039DCE039DCE038F8E038F8 + E03800E03800E03800E03800E03800E0700070700070700070FE03F8FE03F8FE03F8> 24 28 -1 0 23.863] 87 @dc +[<78FCFCFCFC78> 8 6 -9 0 23.863] 46 @dc +[<00700000F80000F80001DC0001DC0001DC00038E00038E00038E00038E000707000707000707000E03800E03800E03801E03 + C07F8FF0FF8FF87F8FF0> 24 20 -1 0 23.863] 118 @dc +[<000300000780001F80003F00007E0001FC0003F00007E0001FC0003F00007E0000FC0000FC00007E00003F00001FC00007E0 + 0003F00001FC00007E00003F00001F80000780000300> 24 24 -3 -2 23.863] 60 @dc +[<600000F00000FC00007E00003F00001FC00007E00003F00001FC00007E00003F00001F80001F80003F00007E0001FC0003F0 + 0007E0001FC0003F00007E0000FC0000F00000600000> 24 24 -3 -2 23.863] 62 @dc +[<01C00001C00001C00001C000C1C180F1C780F9CF807FFF001FFC0007F00007F0001FFC007FFF00F9CF80F1C780C1C18001C0 + 0001C00001C00001C000> 24 20 -3 -4 23.863] 42 @dc +cmti10.329 @sf +[<7FE0FFE07FF0> 16 3 -3 -8 16.262] 45 @dc +cmbx10.329 @sf +[<00E00001F00000E00000E000E0E0E0F0E1E0FCE7E0FE4FE01F5F0003F80003F8001F5F00FE4FE0FCE7E0F0E1E0E0E0E000E0 + 0000E00001F00000E000> 24 20 -3 -14 26.136] 42 @dc +[<387CFEFEFE7C38000000000000387CFEFEFE7C38> 8 20 -4 0 14.520] 58 @dc +cmtt10.329 @sf +[ 24 28 -1 0 23.863] 77 @dc +[ 24 28 -1 0 23.863] 69 @dc +[<1E00003F00007F80007BC00079E00000E00000F00000700000700000700000780000780000780000DC0000CC0000CC0001CE + 0001CE00038E000386000387000707000707000703800E03800E03800E01C07F8FF0FF8FF87F8FF0> 24 30 -1 10 23.863] 121 @dc +[<0FF8003FFE007FFF00780F00700700F00780E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E003 + 80E00380E00380E00380E00380E00380F00780700700780F007FFF003FFE000FF800> 24 28 -3 0 23.863] 79 @dc +[<7FFF00FFFF80FFFF807FFF00> 24 4 -3 -12 23.863] 45 @dc +[ 24 28 -1 0 23.863] 107 @dc +[<003FF8003FF8003FF800038000038000038000038000038000038000038003F3800FFB801FFF803E1F80780F80700780F007 + 80E00380E00380E00380E00380E00380E00380F00780700780780F803E1F801FFF800FFB8003F380> 24 30 -2 10 23.863] 113 @dc +[<01FC0003FF0007FF800F07C01E01C03C01E07800E07000E07000E0F00000E00000E00000E00000E00000E00000E00000E000 + 00E00000F000007000E07000E07800E03C01E01E03E00F07E007FFE003FEE001FCE0> 24 28 -2 0 23.863] 67 @dc +[ 24 28 -2 0 23.863] 70 @dc +[<7F8FF0FF8FF87F8FF00F0780070700038E00039E0001DC0000F80000F00000700000F80001F80001DC00039E00078E000707 + 007F8FF07F9FF07F8FF0> 24 20 -1 0 23.863] 120 @dc +[<7F07F0FF8FF87F07F01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01FFFC01FFFC01FFFC01C01 + C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C07F07F0FF8FF87F07F0> 24 28 -1 0 23.863] 72 @dc +[ 24 28 -2 0 23.863] 90 @dc +14 @bop1 +cmr10.329 @sf +71 195 p (Preferences) s +15 r (used) s +15 r 98 c +0 r 121 c +14 r (windo) s +-1 r 119 c +15 r (manager) s +15 r (tak) s +0 r 101 c +14 r (the) s +15 r (form) s +cmtt10.329 @sf +95 275 p (Wm.option:) s +24 r (value) s +cmr10.329 @sf +0 355 p (or) s +cmtt10.329 @sf +95 434 p (Wm..option:) s +24 r (value) s +cmr10.329 @sf +0 514 p (or) s +cmtt10.329 @sf +95 594 p (Wm..option:) s +24 r (value) s +cmr10.329 @sf +0 674 p (or) s +cmtt10.329 @sf +95 753 p (Wm*option:) s +24 r (value) s +cmbx10.329 @sf +71 833 p (Wm) s +cmr10.329 @sf +19 r (is) s +20 r (the) s +20 r (class) s +19 r (for) s +20 r (all) s +20 r (windo) s +-1 r 119 c +19 r (managers.) s +34 r (Instead) s +19 r (of) s +cmbx10.329 @sf +20 r (Wm) s +cmr10.329 @sf +0 r 44 c +cmbx10.329 @sf +21 r (rtl) s +cmr10.329 @sf +0 r 44 c +21 r (the) s +19 r (name) s +20 r (of) s +20 r (our) s +19 r (windo) s +0 r 119 c +0 889 p (manager,) s +15 r (can) s +15 r 98 c +2 r 101 c +15 r (used) s +15 r (instead.) s +71 946 p (Some) s +18 r (options) s +19 r (are) s +18 r (global) s +19 r (and) s +18 r (refer) s +19 r (to) s +18 r (the) s +19 r (windo) s +0 r 119 c +17 r (manager) s +19 r (as) s +18 r 97 c +19 r (whole.) s +30 r (These) s +19 r (use) s +18 r (the) s +19 r (form) s +0 1002 p 92 c +cmbx10.329 @sf +(Wm.option) s +cmr10.329 @sf +(".) s +71 1059 p (Others) s +15 r (are) s +15 r (applied) s +15 r (on) s +15 r 97 c +15 r 112 c +2 r (er-windo) s +-1 r 119 c +14 r (basis.) s +71 1115 p 80 c +-1 r (er-windo) s +-1 r 119 c +14 r (options) s +16 r (pre\014xed) s +15 r 98 c +0 r 121 c +cmbx10.329 @sf +14 r (Wm) s +cmr10.329 @sf +15 r (and) s +15 r 97 c +cmti10.329 @sf +16 r (class) s +cmr10.329 @sf +15 r (are) s +15 r (used) s +16 r (to) s +15 r (determine) s +15 r (the) s +15 r (the) s +16 r 118 c +-2 r (alue) s +14 r (of) s +16 r (that) s +0 1172 p (option) s +15 r (for) s +15 r (all) s +15 r (windo) s +0 r (ws) s +14 r (of) s +15 r (that) s +cmti10.329 @sf +16 r 114 c +-2 r (esour) s +-2 r 99 c +-2 r (e-class) s +cmr10.329 @sf +0 r 46 c +71 1228 p 80 c +-1 r (er-windo) s +-1 r 119 c +13 r (options) s +15 r (pre\014xed) s +14 r 98 c +0 r 121 c +cmbx10.329 @sf +13 r (Wm) s +cmr10.329 @sf +15 r (and) s +14 r 97 c +cmti10.329 @sf +15 r (name) s +cmr10.329 @sf +14 r (are) s +14 r (used) s +15 r (to) s +14 r (determine) s +15 r (the) s +14 r (the) s +14 r 118 c +-1 r (alue) s +13 r (of) s +15 r (that) s +0 1285 p (option) s +13 r (for) s +13 r (all) s +13 r (windo) s +-1 r (ws) s +12 r (of) s +13 r (that) s +cmti10.329 @sf +13 r 114 c +-1 r (esour) s +-3 r 99 c +-2 r (e-name) s +cmr10.329 @sf +0 r 44 c +12 r (and) s +13 r 111 c +0 r 118 c +-1 r (erride) s +11 r (the) s +cmti10.329 @sf +13 r (class) s +cmr10.329 @sf +0 r (-pre\014xed) s +13 r (option) s +13 r 118 c +-2 r (alue) s +12 r (for) s +13 r (that) s +0 1341 p (windo) s +0 r 119 c +14 r (if) s +15 r (sp) s +1 r (eci\014ed.) s +71 1398 p (Options) s +15 r (pre\014xed) s +15 r 98 c +0 r 121 c +cmbx10.329 @sf +14 r (Wm*) s +cmr10.329 @sf +15 r (are) s +15 r (used) s +15 r (to) s +15 r (set) s +16 r (default) s +15 r (option) s +15 r 118 c +-2 r (alues) s +14 r (for) s +16 r (all) s +15 r (windo) s +-1 r (ws.) s +71 1454 p (The) s +cmti10.329 @sf +15 r 114 c +-2 r (esour) s +-2 r 99 c +-2 r (e-class) s +cmr10.329 @sf +14 r (and) s +cmti10.329 @sf +15 r 114 c +-1 r (esour) s +-3 r 99 c +-2 r (e-name) s +cmr10.329 @sf +14 r (of) s +15 r 97 c +16 r (windo) s +-1 r 119 c +14 r (come) s +16 r (from) s +15 r (its) s +cmcsc10.329 @sf +15 r (WM) s +3 r 15 2 ru +15 r (CLASS) s +cmr10.329 @sf +15 r (prop) s +1 r (ert) s +0 r 121 c +-4 r 46 c +cmbx10.329 @sf +182 1541 p (NOTE:) s +cmr10.329 @sf +11 r (Some) s +12 r (older) s +12 r (applications) s +11 r (do) s +12 r (not) s +12 r (set) s +11 r 97 c +12 r (windo) s +0 r (w's) s +cmcsc10.329 @sf +10 r (WM) s +3 r 15 2 ru +16 r (CLASS) s +cmr10.329 @sf +0 r 46 c +11 r (In) s +12 r (that) s +12 r (case,) s +114 1597 p (its) s +15 r (resource-class) s +15 r (is) s +15 r (tak) s +0 r (en) s +14 r (to) s +15 r 98 c +1 r 101 c +16 r (the) s +15 r (same) s +15 r (as) s +15 r (its) s +15 r (windo) s +0 r 119 c +14 r (name) s +15 r (\(i.e) s +cmcsc10.329 @sf +15 r (WM) s +3 r 15 2 ru +15 r (NAME) s +cmr10.329 @sf +0 r (\).) s +cmbx10.329 @sf +182 1684 p (NOTE:) s +cmr10.329 @sf +18 r (Some) s +18 r (applications) s +18 r (incorrectly) s +17 r (use) s +18 r (strings) s +18 r (for) s +18 r (the) s +18 r (resource) s +18 r (name) s +18 r (and) s +18 r (re-) s +114 1740 p (source) s +15 r (class) s +15 r (that) s +15 r (con) s +0 r (tain) s +14 r (spaces.) s +20 r (These) s +15 r (cannot) s +15 r 98 c +2 r 101 c +15 r (used) s +15 r (to) s +15 r (obtain) s +15 r (options.) s +71 1827 p (The) s +14 r (order) s +14 r (of) s +14 r 92 c +cmbx10.329 @sf +0 r (Wm) s +cmr10.329 @sf +0 r ("-,) s +15 r (class-,) s +14 r (and) s +15 r (name-pre\014xed) s +14 r (options) s +14 r (in) s +14 r (the) s +cmbx10.329 @sf +15 r (.rtl.preferences) s +cmr10.329 @sf +14 r (\014le) s +14 r (is) s +15 r (imma-) s +0 1883 p (terial.) s +71 1940 p (Users) s +16 r (ma) s +-1 r 121 c +16 r 99 c +-1 r (hange) s +16 r (the) s +16 r (an) s +0 r 121 c +15 r (of) s +16 r (the) s +16 r (preference) s +16 r (\014les) s +17 r (and) s +16 r (reread) s +16 r (them) s +16 r 98 c +0 r 121 c +15 r (selecting) s +16 r (\\Preferences") s +0 1996 p (from) s +19 r (the) s +19 r (\\Read) s +18 r (Pro\014le") s +19 r (submen) s +0 r 117 c +18 r (of) s +19 r (the) s +18 r (main) s +19 r (manager) s +19 r (men) s +0 r (u.) s +30 r (An) s +-1 r 121 c +18 r 99 c +0 r (hanges) s +18 r (in) s +19 r (the) s +18 r (\014le) s +19 r (will) s +19 r 98 c +1 r 101 c +0 2052 p (immediately) s +15 r (re\015ected) s +15 r (in) s +15 r (all) s +16 r (windo) s +-1 r (ws) s +14 r 124 c +16 r (op) s +1 r (en) s +15 r (or) s +15 r (closed.) s +71 2109 p (The) s +15 r (\014le) s +cmbx10.329 @sf +15 r (.../src/defaults.i) s +cmr10.329 @sf +15 r (con) s +0 r (tains) s +14 r (the) s +15 r (default) s +15 r (settings) s +15 r (for) s +16 r (all) s +15 r (options.) s +71 2165 p (Certain) s +15 r (options) s +16 r (ma) s +0 r 121 c +14 r 98 c +2 r 101 c +15 r 99 c +0 r (hanged) s +15 r (on) s +15 r 97 c +16 r 112 c +1 r (er-windo) s +0 r 119 c +15 r (basis) s +15 r (through) s +16 r (the) s +15 r (\\Options") s +16 r (en) s +0 r (try) s +15 r (of) s +15 r (eac) s +0 r 104 c +0 2222 p (windo) s +0 r 119 c +14 r (men) s +0 r (u.) s +19 r (The) s +15 r (submen) s +0 r 117 c +14 r (en) s +0 r (tries) s +14 r (and) s +15 r (the) s +15 r (options) s +15 r (a\013ected) s +15 r (are) s +cmtt10.329 @sf +119 2308 p (Menu) s +24 r (Entry) s +358 r (Option) s +119 2365 p (----------) s +358 r (------) s +119 2478 p (Locked) s +24 r (Open) s +334 r (requireManualClose) s +119 2534 p (Fixed) s +24 r (Width) s +334 r (fixedWidth) s +119 2591 p (Fixed) s +24 r (Height) s +310 r (fixedHeight) s +119 2647 p (Fixed) s +24 r (Edges) s +334 r (fixedCompletely) s +119 2704 p (Listener) s +24 r (Tied) s +24 r (To) s +24 r (Zoom) s +95 r (listenerTiedToZoom) s +cmr10.329 @sf +937 2828 p (14) s +@eop +13 @bop0 +cmcsc10.329 @sf +[ 32 31 -3 0 35.037] 66 @dc +[<0007E000001C18000070040000E0020001C0010003C000800380008007800040078000400780004007800040078000400780 + 0040078000400780004007800040078000400780004007800040078000400780004007800040078000400780004007800040 + 078000400780004007800040078000E00FC001F0FFFC0FFE> 32 31 -3 0 36.994] 85 @dc +[<70F8F8F8700000000000202020202070707070707070707070F8F8F8F8F8F870> 8 32 -5 0 14.520] 33 @dc +cmbx10.432 @sf +[<0038000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000007E0000007E0000007E + 0000007E0000003E0000003F0000003F0000001F0000001F0000001F0000000F000000078000000780000003C0000003C000 + 0001E000E000F000E0007800E000380070003C0070001E0070000F007FFFFF807FFFFFC07FFFFFC07FFFFFE03FFFFFF03FFF + FFF03FFFFFF03E00000038000000> 32 41 -4 0 34.370] 55 @dc +[ 32 27 -2 0 30.551] 122 @dc +cmbx10.360 @sf +[ 32 34 -2 0 36.044] 70 @dc +cmmi10.329 @sf +[<00000000000001C00000078000001E00000078000001E00000078000000E0000003C000000F0000003C000000F0000003C00 + 0000F0000000F00000003C0000000F00000003C0000000F00000003C0000000E0000000780000001E0000000780000001E00 + 00000780000001C0> 32 27 -4 3 35.353] 60 @dc +[<00000000E0000000780000001E0000000780000001E0000000780000001C0000000F00000003C0000000F00000003C000000 + 0F00000003C0000003C000000F0000003C000000F0000003C000000F0000001C00000078000001E00000078000001E000000 + 78000000E0000000> 32 27 -4 3 35.353] 62 @dc +13 @bop1 +cmr10.329 @sf +56 195 p (9.) s +cmbx10.329 @sf +22 r (Soft) s +24 r (Kill) s +cmr10.329 @sf +21 r 40 c +cmcsc10.329 @sf +0 r (CTRL) s +23 r (SHIFT) s +24 r (RIGHT) s +23 r (BUTTON) s +cmr10.329 @sf +0 r 41 c +21 r 124 c +21 r (If) s +21 r (the) s +21 r (windo) s +-1 r 119 c +20 r (accepts) s +21 r (the) s +cmcsc10.329 @sf +21 r (BANG!) s +cmr10.329 @sf +114 252 p (message,) s +16 r (it) s +16 r (is) s +16 r (sen) s +0 r 116 c +15 r (to) s +17 r (it.) s +23 r (When) s +16 r (the) s +16 r (clien) s +0 r 116 c +15 r (has) s +16 r (up) s +2 r (dated) s +16 r (the) s +cmcsc10.329 @sf +16 r (WM) s +3 r 15 2 ru +15 r (COMMAND) s +cmr10.329 @sf +16 r (prop) s +2 r (ert) s +-1 r 121 c +15 r (of) s +114 308 p (its) s +17 r (accepting) s +17 r (windo) s +-1 r (w,) s +17 r (the) s +17 r (wm) s +17 r (kills) s +17 r (the) s +16 r (clien) s +0 r (t.) s +25 r (If) s +17 r (the) s +17 r (windo) s +-1 r 119 c +16 r (do) s +2 r (es) s +17 r (not) s +17 r (accept) s +16 r (the) s +cmcsc10.329 @sf +17 r (BANG!) s +cmr10.329 @sf +114 364 p (message,) s +15 r (the) s +15 r (clien) s +0 r 116 c +14 r (is) s +15 r (immediately) s +15 r (killed.) s +20 r (In) s +15 r (release) s +16 r (5,) s +15 r (simply) s +15 r (kills) s +15 r (the) s +15 r (clien) s +0 r (t.) s +33 458 p (10.) s +cmbx10.329 @sf +23 r (Hard) s +17 r (Kill) s +cmr10.329 @sf +15 r 124 c +15 r (Kills) s +15 r (the) s +16 r (clien) s +-1 r (t.) s +cmbx10.432 @sf +0 601 p 55 c +69 r (Customization) s +23 r (and) s +23 r (Startup) s +cmr10.329 @sf +0 703 p (The) s +16 r (windo) s +-1 r 119 c +15 r (manager) s +16 r (can) s +15 r 98 c +2 r 101 c +15 r (customized) s +16 r (via) s +16 r (\014les) s +15 r (in) s +16 r (three) s +15 r 119 c +0 r 97 c +-1 r (ys:) s +20 r 98 c +0 r 121 c +14 r (setting) s +16 r (options) s +16 r (in) s +15 r (preference) s +0 759 p (\014les,) s +14 r 98 c +0 r 121 c +13 r (sp) s +1 r (ecifying) s +15 r (the) s +14 r (to) s +1 r (ols) s +14 r (to) s +14 r (app) s +1 r (ear) s +14 r (in) s +15 r (the) s +14 r (to) s +1 r (ols) s +14 r (submen) s +0 r (u,) s +13 r (and) s +14 r 98 c +0 r 121 c +13 r (arranging) s +14 r (for) s +14 r (applications) s +14 r (to) s +0 816 p 98 c +1 r 101 c +15 r (started) s +16 r (up) s +15 r (automatically) s +15 r (when) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (manager) s +15 r (is) s +15 r (started.) s +71 872 p (All) s +11 r (\014les) s +10 r (op) s +2 r (ened) s +11 r 98 c +-1 r 121 c +10 r (the) s +11 r (windo) s +0 r 119 c +10 r (manager) s +11 r (are) s +11 r (lo) s +1 r (ok) s +0 r (ed) s +10 r (up) s +11 r (in) s +11 r (the) s +11 r (directory) s +11 r (named) s +11 r (in) s +11 r (the) s +cmbx10.329 @sf +11 r 82 c +-4 r (TLENV) s +cmr10.329 @sf +0 929 p (en) s +0 r (vironmen) s +-2 r 116 c +15 r 118 c +-2 r (ariable,) s +14 r (and) s +15 r (if) s +16 r (that) s +15 r (fails,) s +15 r (in) s +15 r (the) s +15 r (user's) s +15 r (home) s +15 r (directory) s +-2 r 46 c +71 985 p (Copies) s +17 r (of) s +18 r (the) s +17 r (\014les) s +18 r (used) s +17 r 98 c +0 r 121 c +17 r (the) s +17 r (dev) s +0 r (elop) s +0 r (ers) s +18 r (ma) s +-1 r 121 c +17 r 98 c +1 r 101 c +18 r (found) s +17 r (in) s +18 r (the) s +17 r (sub) s +2 r (directory) s +cmbx10.329 @sf +17 r (custom) s +cmr10.329 @sf +18 r (in) s +17 r (the) s +0 1042 p (distribution.) s +cmbx10.360 @sf +0 1163 p (7.1) s +57 r (Startup) s +cmr10.329 @sf +0 1249 p (If) s +22 r (the) s +22 r (\\-s") s +22 r (\015ag) s +23 r (is) s +22 r (sp) s +1 r (eci\014ed) s +22 r (when) s +22 r (the) s +22 r (windo) s +0 r 119 c +21 r (manager) s +22 r (is) s +22 r (started) s +23 r (up,) s +24 r (the) s +22 r (\014le) s +cmbx10.329 @sf +22 r (.rtl.startup) s +cmr10.329 @sf +22 r (is) s +0 1306 p (executed.) s +20 r 84 c +0 r (ypically) s +14 r (it) s +15 r (con) s +0 r (tains) s +14 r 97 c +15 r (shell) s +15 r (\014le) s +16 r (whic) s +-1 r 104 c +14 r (starts) s +16 r (up) s +15 r 118 c +-2 r (arious) s +14 r (applications.) s +71 1362 p (If) s +19 r (the) s +19 r (\\-l") s +19 r (\015ag) s +19 r (is) s +19 r (sp) s +1 r (eci\014ed) s +19 r (when) s +19 r (starting) s +19 r (the) s +19 r (windo) s +0 r 119 c +18 r (manager,) s +20 r (and) s +19 r 97 c +19 r (windo) s +-1 r 119 c +19 r (sa) s +-1 r 118 c +-1 r (ed) s +18 r (in) s +19 r (the) s +cmbx10.329 @sf +0 1419 p (.rtl.la) s +0 r 121 c +-2 r (out) s +cmr10.329 @sf +16 r (\014le) s +17 r (do) s +1 r (es) s +17 r (not) s +16 r (app) s +2 r (ear) s +16 r (on) s +17 r (the) s +17 r (screen,) s +17 r (then) s +17 r 97 c +16 r (pro) s +2 r (cess) s +16 r (is) s +17 r (started) s +17 r (whic) s +0 r 104 c +15 r 119 c +0 r (ould) s +16 r (op) s +1 r (en) s +17 r (that) s +0 1475 p (windo) s +0 r (w.) s +26 r (Both) s +18 r (the) s +17 r (host) s +18 r (and) s +18 r (the) s +17 r (command) s +18 r (line) s +17 r (are) s +18 r (obtained) s +18 r (from) s +17 r (the) s +18 r (la) s +-1 r 121 c +-1 r (out) s +17 r (\014le;) s +19 r (when) s +17 r (the) s +18 r (la) s +0 r (y-) s +0 1531 p (out) s +19 r (\014le) s +20 r 119 c +-1 r (as) s +19 r (sa) s +0 r 118 c +-2 r (ed,) s +20 r (these) s +19 r 119 c +0 r (ere) s +18 r (obtained) s +20 r (resp) s +1 r (ectiv) s +0 r (ely) s +18 r (from) s +19 r (the) s +cmcsc10.329 @sf +20 r (WM) s +3 r 15 2 ru +15 r (CLIENT) s +3 r 15 2 ru +15 r (MA) s +0 r (CHINE) s +cmr10.329 @sf +18 r (and) s +cmcsc10.329 @sf +0 1588 p (WM) s +3 r 15 2 ru +15 r (COMMAND) s +cmr10.329 @sf +15 r (prop) s +2 r (erties) s +15 r (of) s +15 r (the) s +15 r (windo) s +0 r (w.) s +19 r (Not) s +15 r (implemen) s +0 r (ted) s +14 r (in) s +15 r (release) s +15 r (5.) s +71 1644 p (If) s +18 r (the) s +18 r (\015ag) s +18 r (\\-f) s +4 r 34 c +18 r (is) s +19 r (sp) s +1 r (eci\014ed) s +18 r (when) s +19 r (the) s +18 r (windo) s +0 r 119 c +17 r (manager) s +18 r (is) s +19 r (started,) s +19 r (then) s +18 r (the) s +18 r (la) s +0 r 121 c +-1 r (out) s +17 r (is) s +18 r (treated) s +0 1701 p (as) s +17 r (\014nished.) s +25 r (Ho) s +0 r 119 c +-1 r (ev) s +-2 r (er,) s +17 r (if) s +16 r (the) s +17 r (\\-l") s +17 r (\015ag) s +17 r (is) s +17 r (sp) s +1 r (eci\014ed) s +17 r (as) s +17 r 119 c +0 r (ell,) s +16 r (the) s +17 r (commands) s +17 r (asso) s +1 r (ciated) s +17 r (with) s +17 r (missing) s +0 1757 p (windo) s +0 r (ws) s +14 r (are) s +15 r (still) s +15 r (executed.) s +cmbx10.360 @sf +0 1879 p (7.2) s +57 r 84 c +-3 r 111 c +0 r (ols) s +cmr10.329 @sf +0 1965 p (Eac) s +0 r 104 c +12 r (to) s +1 r (ol) s +14 r (is) s +13 r (registered) s +13 r (in) s +13 r (the) s +14 r (\014le) s +cmbx10.329 @sf +13 r (.rtl.to) s +1 r (ols) s +cmr10.329 @sf +13 r (as) s +14 r 97 c +13 r (pair) s +13 r (of) s +13 r (lines.) s +20 r (The) s +13 r (\014rst) s +14 r (line) s +13 r (is) s +13 r (the) s +13 r (name) s +14 r (of) s +13 r (the) s +13 r (to) s +1 r (ol) s +0 2021 p (as) s +13 r (it) s +14 r (should) s +13 r (app) s +2 r (ear) s +13 r (in) s +13 r (the) s +14 r (to) s +1 r (ols) s +14 r (submen) s +-1 r (u.) s +19 r (The) s +13 r (second) s +14 r (line) s +13 r (is) s +14 r 97 c +13 r (command) s +13 r (to) s +14 r 98 c +1 r 101 c +14 r (executed) s +13 r (when) s +13 r (the) s +0 2078 p (men) s +0 r 117 c +14 r (en) s +0 r (try) s +14 r (is) s +15 r (selected.) s +cmbx10.360 @sf +0 2199 p (7.3) s +57 r (Preference) s +19 r (Files) s +cmr10.329 @sf +0 2285 p (Options) s +16 r (that) s +16 r (con) s +0 r (trol) s +15 r (the) s +17 r 98 c +1 r (eha) s +0 r (vior) s +15 r (of) s +16 r (individual) s +16 r (windo) s +0 r (ws,) s +15 r (or) s +17 r (of) s +16 r (the) s +16 r (windo) s +0 r 119 c +15 r (manager) s +16 r (as) s +16 r 97 c +16 r (whole,) s +0 2342 p (are) s +21 r (obtained) s +20 r (from) s +21 r 97 c +20 r 110 c +0 r (um) s +-1 r 98 c +0 r (er) s +20 r (of) s +21 r (preference) s +20 r (\014les,) s +22 r (primarily) s +21 r (\\.Xdefaults",) s +22 r (and) s +20 r (\\.rtl.preferences".) s +0 2398 p (Release) s +16 r 53 c +15 r (reads) s +16 r (these) s +15 r (\014les) s +16 r (directly) s +-3 r 44 c +14 r (and) s +16 r (do) s +1 r (es) s +16 r (not) s +15 r (use) s +16 r (the) s +15 r (resource) s +16 r (database) s +15 r (describ) s +2 r (ed) s +15 r (in) s +16 r (the) s +15 r (Xlib) s +0 2455 p (man) s +0 r (ual.) s +71 2511 p (Options) s +19 r (that) s +19 r (con) s +0 r (trol) s +18 r (the) s +20 r 98 c +1 r (eha) s +0 r (vior) s +18 r (of) s +19 r (windo) s +0 r (ws) s +18 r (of) s +20 r 97 c +19 r (sp) s +1 r (eci\014ed) s +20 r (name) s +19 r (or) s +19 r (class) s +20 r (are) s +19 r (additionally) s +0 2568 p (obtained) s +19 r (from) s +19 r (the) s +19 r (\014les) s +cmbx10.329 @sf +19 r 46 c +cmmi10.329 @sf +0 r 60 c +cmbx10.329 @sf +0 r (name) s +cmmi10.329 @sf +0 r 62 c +cmbx10.329 @sf +0 r (.preferences) s +cmr10.329 @sf +19 r (and) s +cmbx10.329 @sf +19 r 46 c +cmmi10.329 @sf +0 r 60 c +cmbx10.329 @sf +0 r (class) s +cmmi10.329 @sf +0 r 62 c +cmbx10.329 @sf +0 r (.preferences) s +cmr10.329 @sf +0 r 44 c +20 r (where) s +19 r 92 c +cmmi10.329 @sf +0 r 60 c +cmr10.329 @sf +0 r (name) s +cmmi10.329 @sf +0 r 62 c +cmr10.329 @sf +0 r 34 c +0 2624 p (and) s +20 r 92 c +cmmi10.329 @sf +0 r 60 c +cmr10.329 @sf +0 r (class) s +cmmi10.329 @sf +0 r 62 c +cmr10.329 @sf +0 r 34 c +21 r (refer) s +20 r (to) s +20 r (the) s +20 r (resource) s +21 r (name) s +20 r (and) s +20 r (resource) s +20 r (class) s +21 r (of) s +20 r (the) s +20 r (windo) s +0 r 119 c +19 r (\(sp) s +1 r (eci\014ed) s +21 r 98 c +-1 r 121 c +20 r (the) s +cmcsc10.329 @sf +0 2680 p (WM) s +3 r 15 2 ru +15 r (CLASS) s +cmr10.329 @sf +15 r (prop) s +2 r (ert) s +-1 r (y\).) s +937 2828 p (13) s +@eop +12 @bop0 +cmr10.329 @sf +[ 24 31 -3 0 27.777] 90 @dc +cmbx10.432 @sf +[<003FC00000FFF00003FFFC0007E0FF000FC03F801F803F803F801FC03F801FC07F001FE07F001FE07F001FE07F001FE0FF00 + 1FE0FF001FE0FF001FE0FF001FE0FF801FC0FF801FC0FF801FC0FFC03F80FFE03F00FF70FE00FF3FF800FF0FC000FF000000 + 7F0000007F0000007F0000007F8000003F801F003F803F801FC03F800FC03F800FE03F8007F01F8001FC0F0000FFFF00003F + FC000007F000> 32 39 -3 0 34.370] 54 @dc +[ 24 41 -2 0 26.068] 73 @dc +[ 64 41 -3 0 65.253] 77 @dc +cmcsc10.329 @sf +[ 24 45 -4 11 25.125] 47 @dc +12 @bop1 +cmsy10.329 @sf +168 195 p 15 c +cmbx10.329 @sf +23 r (Fixed) s +17 r (Edges) s +cmr10.329 @sf +15 r 124 c +16 r (prev) s +-1 r (en) s +-1 r (ts) s +14 r (the) s +15 r (windo) s +0 r 119 c +14 r (from) s +15 r 98 c +2 r (eing) s +15 r (mo) s +0 r 118 c +-2 r (ed) s +14 r (or) s +16 r (resized) s +15 r (automatically) s +-3 r 46 c +cmsy10.329 @sf +168 268 p 15 c +cmbx10.329 @sf +23 r (Listener) s +25 r (Tied) s +24 r 84 c +-3 r 111 c +23 r (Zo) s +2 r (om) s +cmr10.329 @sf +21 r 124 c +22 r (Zo) s +1 r (oms) s +22 r (\(unzo) s +1 r (oms\)) s +21 r (the) s +22 r (windo) s +-1 r 119 c +21 r (when) s +21 r (it) s +22 r 98 c +1 r (ecomes) s +21 r (\(no) s +214 325 p (longer) s +15 r (is\)) s +15 r (the) s +15 r (listener.) s +33 431 p (17.) s +cmbx10.329 @sf +23 r (Notify) s +cmr10.329 @sf +16 r 124 c +16 r (Sends) s +17 r (the) s +cmcsc10.329 @sf +16 r (BANG!) s +cmr10.329 @sf +16 r (message) s +17 r (to) s +16 r (the) s +16 r (windo) s +0 r 119 c +15 r (if) s +17 r (it) s +16 r (accepts) s +16 r (it.) s +24 r (Not) s +17 r (implemen) s +-1 r (ted) s +16 r (in) s +114 487 p (release) s +15 r (5.) s +33 581 p (18.) s +cmbx10.329 @sf +23 r (Soft) s +18 r (Kill) s +cmr10.329 @sf +17 r 124 c +16 r (If) s +16 r (the) s +17 r (windo) s +-1 r 119 c +16 r (accepts) s +16 r (the) s +cmcsc10.329 @sf +16 r (BANG!) s +cmr10.329 @sf +17 r (message,) s +16 r (it) s +17 r (is) s +16 r (sen) s +0 r 116 c +15 r (to) s +16 r (it.) s +24 r (When) s +16 r (the) s +17 r (clien) s +-1 r 116 c +114 638 p (has) s +20 r (up) s +1 r (dated) s +20 r (the) s +cmcsc10.329 @sf +20 r (WM) s +3 r 15 2 ru +16 r (COMMAND) s +cmr10.329 @sf +20 r (prop) s +1 r (ert) s +0 r 121 c +19 r (of) s +20 r (its) s +20 r (accepting) s +20 r (windo) s +0 r (w,) s +21 r (the) s +20 r (wm) s +20 r (kills) s +20 r (the) s +114 694 p (clien) s +-1 r (t.) s +19 r (If) s +14 r (the) s +14 r (windo) s +0 r 119 c +13 r (do) s +1 r (es) s +14 r (not) s +14 r (accept) s +14 r (the) s +cmcsc10.329 @sf +14 r (BANG!) s +cmr10.329 @sf +14 r (message,) s +14 r (the) s +14 r (clien) s +-1 r 116 c +13 r (is) s +14 r (immediately) s +14 r (killed.) s +114 751 p (In) s +15 r (release) s +15 r (5,) s +15 r (simply) s +15 r (kills) s +15 r (the) s +16 r (clien) s +-1 r (t.) s +33 844 p (19.) s +cmbx10.329 @sf +23 r (Hard) s +17 r (Kill) s +cmr10.329 @sf +15 r 124 c +15 r (Kills) s +15 r (the) s +16 r (clien) s +-1 r (t.) s +cmbx10.432 @sf +0 988 p 54 c +69 r (Icon) s +23 r (Men) s +-1 r 117 c +cmr10.329 @sf +0 1089 p (The) s +15 r (icon) s +14 r (men) s +0 r 117 c +14 r (is) s +14 r 118 c +0 r (ery) s +14 r (similar) s +14 r (to) s +15 r (the) s +15 r (windo) s +-1 r 119 c +14 r (men) s +0 r (u.) s +19 r (It) s +15 r (is) s +14 r 112 c +1 r (opp) s +2 r (ed) s +14 r (up) s +15 r 98 c +0 r 121 c +13 r (pressing) s +15 r (the) s +15 r (righ) s +0 r 116 c +13 r (button) s +0 1145 p (inside) s +15 r (the) s +15 r (icon.) s +56 1252 p (1.) s +cmbx10.329 @sf +22 r (Title) s +cmr10.329 @sf +15 r 124 c +16 r (Displa) s +-1 r (ys) s +14 r (the) s +16 r (title.) s +56 1346 p (2.) s +cmbx10.329 @sf +22 r (Redra) s +0 r 119 c +cmr10.329 @sf +14 r 40 c +cmcsc10.329 @sf +0 r (CTRL) s +17 r (SHIFT) s +17 r (LEFT/MIDDLE) s +17 r (BUTTON) s +cmr10.329 @sf +0 r 41 c +16 r 124 c +15 r (Redra) s +0 r (ws) s +14 r (the) s +15 r (icon.) s +56 1439 p (3.) s +cmbx10.329 @sf +22 r (Manager) s +cmr10.329 @sf +15 r 124 c +16 r 80 c +-1 r (ops) s +14 r (up) s +16 r (the) s +15 r (main) s +15 r (windo) s +0 r 119 c +14 r (manager) s +15 r (men) s +0 r (u.) s +56 1533 p (4.) s +cmbx10.329 @sf +22 r (Op) s +2 r (en) s +cmr10.329 @sf +19 r 40 c +cmcsc10.329 @sf +0 r (LEFT) s +22 r (BUTTON) s +cmr10.329 @sf +0 r 41 c +19 r 124 c +19 r (If) s +19 r (the) s +20 r (icon) s +19 r (is) s +19 r (asso) s +1 r (ciated) s +20 r (with) s +19 r 97 c +19 r (closed) s +20 r (group,) s +20 r (restores) s +19 r (the) s +114 1590 p (windo) s +-1 r (ws) s +15 r (and) s +15 r (icons) s +15 r (of) s +15 r (that) s +15 r (group.) s +114 1665 p (If) s +15 r (the) s +15 r (icon) s +15 r (corresp) s +1 r (onds) s +16 r (to) s +15 r 97 c +15 r (single) s +15 r (windo) s +0 r (w,) s +14 r (then) s +15 r (Op) s +1 r (en) s +15 r (is) s +16 r (used) s +15 r (for) s +15 r (op) s +1 r (ening) s +15 r (that) s +15 r (windo) s +0 r (w:) s +114 1740 p (The) s +15 r (cursor) s +15 r 99 c +0 r (hanges) s +14 r (to) s +15 r 97 c +15 r (drap) s +1 r (ed) s +16 r 98 c +1 r 111 c +0 r (x.) s +114 1815 p (The) s +19 r (user) s +19 r (can) s +19 r (lea) s +-1 r 118 c +-1 r 101 c +18 r (the) s +19 r 112 c +1 r (oin) s +0 r (ter) s +18 r (in) s +19 r (the) s +19 r (icon) s +19 r (\(or) s +19 r (mo) s +0 r 118 c +-1 r 101 c +18 r (it) s +19 r (there) s +19 r (if) s +19 r (the) s +19 r (men) s +-1 r 117 c +18 r (selection) s +19 r (left) s +19 r (it) s +114 1871 p (outside) s +19 r (the) s +20 r (icon\),) s +21 r (and) s +20 r (clic) s +0 r (k,) s +20 r (and) s +19 r (the) s +20 r (windo) s +0 r 119 c +19 r (will) s +20 r 98 c +1 r 101 c +20 r (op) s +1 r (ened) s +20 r (automatically) s +19 r (at) s +20 r 97 c +20 r 112 c +1 r (osition) s +114 1928 p (selected) s +15 r 98 c +0 r 121 c +14 r (the) s +15 r (windo) s +0 r 119 c +14 r (manager.) s +114 2003 p (Or,) s +17 r (the) s +16 r (user) s +17 r (can) s +17 r (mo) s +0 r 118 c +-2 r 101 c +16 r (the) s +17 r 112 c +1 r (oin) s +0 r (ter) s +15 r (outside) s +17 r (of) s +17 r (the) s +17 r (icon.) s +24 r (It) s +17 r (will) s +17 r 99 c +0 r (hange) s +15 r (to) s +17 r 97 c +17 r (dotted) s +16 r 98 c +2 r 111 c +-1 r 120 c +16 r (and) s +114 2059 p (the) s +15 r (user) s +15 r (can) s +15 r (then) s +15 r (sp) s +2 r (ecify) s +15 r (the) s +15 r (size) s +15 r (and) s +15 r 112 c +1 r (oten) s +0 r (tially) s +14 r (the) s +15 r (lo) s +2 r (cation) s +15 r (just) s +15 r (as) s +15 r (for) s +15 r 97 c +15 r (Relo) s +2 r (cate.) s +56 2153 p (5.) s +cmbx10.329 @sf +22 r (Mo) s +0 r 118 c +-2 r 101 c +cmr10.329 @sf +15 r 40 c +cmcsc10.329 @sf +0 r (MIDDLE) s +17 r (BUTTON) s +cmr10.329 @sf +0 r 41 c +15 r 124 c +15 r 70 c +-3 r (or) s +14 r (mo) s +0 r (ving) s +14 r (the) s +15 r (icon) s +16 r (to) s +15 r 97 c +15 r (new) s +15 r (lo) s +1 r (cation.) s +56 2247 p (6.) s +cmbx10.329 @sf +22 r (Exc) s +0 r (hange) s +cmr10.329 @sf +10 r 40 c +cmcsc10.329 @sf +0 r (CTRL) s +13 r (MIDDLE) s +12 r (BUTTON) s +cmr10.329 @sf +0 r 41 c +11 r 124 c +11 r (Used) s +11 r (for) s +12 r (exc) s +-1 r (hanging) s +10 r (the) s +11 r (lo) s +2 r (cation) s +11 r (of) s +11 r 116 c +-1 r 119 c +-1 r 111 c +10 r (icons,) s +114 2304 p (or) s +16 r (of) s +17 r 97 c +16 r (windo) s +0 r 119 c +16 r (and) s +16 r (an) s +17 r (icon.) s +25 r (Exc) s +-1 r (hanging) s +16 r 116 c +0 r 119 c +-2 r 111 c +16 r (icons) s +17 r (exc) s +-1 r (hanges) s +16 r (their) s +17 r 112 c +1 r (ositions.) s +24 r (Exc) s +0 r (hanging) s +114 2360 p (an) s +15 r (icon) s +15 r (and) s +15 r 97 c +15 r (windo) s +0 r 119 c +14 r (closes) s +15 r (the) s +15 r (op) s +2 r (en) s +15 r (windo) s +0 r 119 c +14 r (and) s +15 r (op) s +1 r (ens) s +15 r (the) s +15 r (iconized) s +16 r (windo) s +-1 r 119 c +14 r (in) s +16 r (its) s +15 r (place.) s +56 2454 p (7.) s +cmbx10.329 @sf +22 r (Options) s +cmr10.329 @sf +15 r 124 c +16 r (The) s +15 r (submen) s +-1 r 117 c +15 r (for) s +15 r (setting) s +15 r (and) s +15 r (unsetting) s +15 r 118 c +-1 r (arious) s +14 r (windo) s +0 r 119 c +14 r (options.) s +56 2548 p (8.) s +cmbx10.329 @sf +22 r (Notify) s +cmr10.329 @sf +17 r 124 c +16 r (Sends) s +16 r (the) s +cmcsc10.329 @sf +17 r (BANG!) s +cmr10.329 @sf +16 r (message) s +16 r (to) s +17 r (the) s +16 r (windo) s +0 r 119 c +15 r (if) s +17 r (it) s +16 r (accepts) s +16 r (it.) s +24 r (Not) s +16 r (implemen) s +0 r (ted) s +15 r (in) s +114 2604 p (release) s +15 r (5.) s +937 2828 p (12) s +@eop +11 @bop0 +cmcsc10.329 @sf +[ 16 23 -2 0 13.737] 105 @dc +[ 24 23 -3 0 27.878] 110 @dc +[<00008000000001C000000001C000000001C000000003E000000003E0000000079000000007900000000F980000000F080000 + 000F080000001E040000001E040000003E020000003C020000003C0200000078010000007801000000F800800000F0008000 + 00F000800001E000400001E000400003C000200003C000200007C0003000078000100007800010000F000018001F80003E00 + FFF000FF80> 40 31 -2 0 36.994] 86 @dc +[ 16 2 -2 -9 17.171] 45 @dc +[ 24 31 -4 0 30.428] 90 @dc +11 @bop1 +cmr10.329 @sf +114 195 p (left) s +15 r (corner) s +16 r (of) s +15 r (the) s +16 r (windo) s +-1 r (w.) s +21 r (The) s +15 r (user) s +15 r (can) s +16 r (then) s +15 r (mo) s +0 r 118 c +-1 r 101 c +14 r (the) s +16 r 112 c +1 r (oin) s +0 r (ter) s +14 r (to) s +16 r (sp) s +1 r (ecify) s +16 r (the) s +15 r 98 c +1 r (ottom) s +16 r (righ) s +0 r 116 c +114 252 p (corner.) s +114 326 p (Releasing) s +13 r (\(or) s +14 r (clic) s +0 r (king) s +13 r (again\)) s +14 r (\014nishes) s +14 r (the) s +13 r (sizing) s +14 r (and) s +14 r (relo) s +1 r (cates) s +14 r (the) s +14 r (windo) s +0 r 119 c +13 r (at) s +14 r (or) s +13 r (near) s +14 r (the) s +14 r (size) s +114 383 p (and) s +18 r 112 c +1 r (osition) s +19 r (sp) s +1 r (eci\014ed.) s +31 r (The) s +18 r (windo) s +0 r (w's) s +17 r (desired) s +19 r (size) s +19 r (is) s +18 r (set) s +19 r (to) s +18 r (the) s +19 r (size) s +18 r (indicated) s +19 r 98 c +-1 r 121 c +18 r (the) s +19 r (user) s +114 439 p (unless) s +15 r (the) s +15 r (CTRL) s +15 r (button) s +15 r (is) s +15 r (depressed.) s +56 532 p (8.) s +cmbx10.329 @sf +22 r (Mo) s +0 r 118 c +-2 r 101 c +cmr10.329 @sf +16 r 40 c +cmcsc10.329 @sf +0 r (SHIFT) s +18 r (MIDDLE) s +18 r (BUTTON) s +19 r (in) s +18 r (MO) s +0 r (VE-GADGET) s +cmr10.329 @sf +0 r 41 c +15 r 124 c +16 r 70 c +-3 r (or) s +15 r (mo) s +0 r (ving) s +15 r (the) s +17 r (windo) s +-1 r 119 c +114 588 p (at) s +17 r (its) s +18 r (curren) s +-1 r 116 c +17 r (size) s +18 r (to) s +17 r 97 c +18 r (new) s +17 r (lo) s +2 r (cation.) s +27 r (The) s +18 r (cursor) s +17 r 99 c +0 r (hanges) s +16 r (to) s +18 r 97 c +18 r (hand) s +17 r (and) s +18 r (is) s +17 r 119 c +0 r (arp) s +0 r (ed) s +18 r (to) s +17 r (the) s +114 645 p (cen) s +-1 r (ter) s +15 r (of) s +15 r (the) s +15 r (windo) s +0 r (w.) s +19 r (The) s +15 r (user) s +15 r (then) s +15 r (can) s +15 r (mo) s +0 r 118 c +-1 r 101 c +14 r (the) s +15 r 112 c +1 r (oin) s +0 r (ter) s +14 r (to) s +15 r (another) s +16 r (lo) s +1 r (cation.) s +114 719 p (Clic) s +-1 r (king) s +15 r (\014nishes) s +15 r (the) s +15 r (mo) s +0 r 118 c +-2 r 101 c +14 r (and) s +16 r (places) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (exactly) s +15 r (where) s +15 r (sp) s +1 r (eci\014ed.) s +114 794 p 40 c +cmcsc10.329 @sf +0 r (MIDDLE) s +18 r (BUTTON) s +19 r (in) s +18 r (BORDER) s +cmr10.329 @sf +0 r 41 c +16 r (also) s +17 r (initiates) s +16 r 97 c +17 r (mo) s +-1 r 118 c +-1 r (e.) s +23 r (In) s +17 r (the) s +16 r (side) s +16 r 98 c +2 r (order,) s +16 r (the) s +17 r (mo) s +-1 r 118 c +-1 r 101 c +114 850 p (is) s +15 r (constrained) s +16 r (in) s +15 r (one) s +16 r (dimension.) s +22 r (If) s +15 r (the) s +cmcsc10.329 @sf +16 r (SHIFT) s +cmr10.329 @sf +15 r 107 c +0 r (ey) s +15 r (is) s +15 r (held) s +16 r (do) s +0 r (wn) s +14 r (as) s +16 r 119 c +-1 r (ell,) s +15 r (gra) s +0 r (vit) s +-1 r 121 c +14 r (is) s +16 r (toggled) s +114 907 p (during) s +15 r (the) s +15 r (mo) s +0 r 118 c +-2 r (e.) s +56 999 p (9.) s +cmbx10.329 @sf +22 r (Exc) s +0 r (hange) s +cmr10.329 @sf +14 r 40 c +cmcsc10.329 @sf +0 r (CTRL) s +17 r (MIDDLE) s +17 r (BUTTON) s +17 r (in) s +16 r (MO) s +0 r (VE-GADGET) s +cmr10.329 @sf +0 r 41 c +14 r 124 c +15 r (Used) s +15 r (for) s +15 r (exc) s +0 r (hanging) s +114 1056 p (the) s +16 r (lo) s +1 r (cation) s +17 r (of) s +16 r 116 c +0 r 119 c +-2 r 111 c +16 r (windo) s +-1 r (ws,) s +16 r (or) s +16 r (of) s +17 r 97 c +16 r (windo) s +0 r 119 c +15 r (and) s +16 r (an) s +17 r (icon.) s +23 r (The) s +17 r (cursor) s +16 r 99 c +0 r (hanges) s +15 r (to) s +16 r 97 c +17 r (pair) s +16 r (of) s +114 1112 p (opp) s +1 r (osite) s +12 r 112 c +1 r (oin) s +0 r (ting) s +11 r (arro) s +-1 r (ws.) s +19 r (The) s +12 r (user) s +11 r (can) s +12 r (then) s +12 r (mo) s +0 r 118 c +-1 r 101 c +11 r (the) s +12 r 112 c +1 r (oin) s +0 r (ter) s +11 r (to) s +12 r (an) s +11 r (icon) s +12 r (or) s +12 r (another) s +12 r (windo) s +0 r (w.) s +114 1187 p (Clic) s +-1 r (king) s +13 r (in) s +13 r 97 c +13 r (windo) s +0 r 119 c +13 r (exc) s +-1 r (hanges) s +13 r (the) s +13 r (lo) s +1 r (cations) s +14 r (of) s +13 r (the) s +13 r 116 c +0 r 119 c +-1 r 111 c +12 r (windo) s +0 r (ws.) s +18 r (Clic) s +0 r (king) s +13 r (in) s +13 r (an) s +13 r (icon) s +14 r (closes) s +114 1243 p (the) s +15 r (op) s +1 r (en) s +15 r (windo) s +0 r 119 c +14 r (and) s +15 r (op) s +2 r (ens) s +15 r (the) s +15 r (iconized) s +15 r (windo) s +0 r 119 c +14 r (in) s +15 r (its) s +15 r (place.) s +33 1336 p (10.) s +cmbx10.329 @sf +23 r (Expand) s +cmr10.329 @sf +20 r 124 c +21 r (Expands) s +21 r (the) s +20 r (windo) s +0 r 119 c +20 r (in) s +20 r (the) s +21 r 97 c +0 r 118 c +-3 r (ailable) s +20 r (white) s +20 r (space) s +21 r (surrounding) s +21 r (it) s +20 r (\(up) s +21 r (to) s +21 r (its) s +114 1392 p (maxim) s +-1 r (um) s +14 r (size\),) s +14 r (without) s +15 r (a\013ecting) s +14 r (an) s +0 r 121 c +13 r (other) s +14 r (windo) s +0 r (ws.) s +19 r (Sets) s +14 r (the) s +15 r (windo) s +-1 r (w's) s +14 r (desired) s +14 r (size) s +14 r (to) s +15 r (the) s +114 1449 p (resulting) s +15 r (size.) s +33 1541 p (11.) s +cmbx10.329 @sf +23 r (Desire) s +cmr10.329 @sf +10 r 40 c +cmcsc10.329 @sf +0 r (LEFT) s +13 r (BUTTON) s +12 r (in) s +13 r (ZOOM-GADGET) s +cmr10.329 @sf +0 r 41 c +11 r 124 c +11 r (Enlarges) s +10 r (the) s +11 r (windo) s +0 r 119 c +10 r (up) s +10 r (to) s +11 r (its) s +11 r (desired) s +114 1598 p (size,) s +15 r 98 c +0 r 121 c +14 r (shrinking) s +15 r (\(but) s +15 r (not) s +15 r (closing\)) s +15 r (the) s +15 r (other) s +16 r (windo) s +-1 r (ws) s +14 r (on) s +16 r (the) s +15 r (screen.) s +33 1690 p (12.) s +cmbx10.329 @sf +23 r (Shrink) s +cmr10.329 @sf +12 r 124 c +12 r (Shrinks) s +13 r (the) s +12 r (windo) s +0 r 119 c +11 r (to) s +12 r (its) s +13 r (minim) s +-1 r (um) s +12 r (size.) s +19 r (The) s +12 r (desired) s +12 r (size) s +13 r (is) s +12 r (not) s +12 r 99 c +0 r (hanged) s +11 r (though,) s +114 1747 p (so) s +15 r (on) s +15 r (subsequen) s +0 r 116 c +14 r (windo) s +0 r 119 c +14 r (op) s +1 r (erations,) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (will) s +15 r (gro) s +0 r 119 c +14 r (bac) s +0 r 107 c +14 r (to) s +15 r (its) s +15 r (desired) s +16 r (size.) s +33 1839 p (13.) s +cmbx10.329 @sf +23 r (Enlarge) s +cmr10.329 @sf +13 r 40 c +cmcsc10.329 @sf +0 r (CTRL) s +15 r (LEFT) s +15 r (BUTTON) s +15 r (in) s +15 r (ZOOM-GADGET) s +cmr10.329 @sf +0 r 41 c +13 r 124 c +13 r (Mak) s +0 r (es) s +12 r (the) s +13 r (windo) s +0 r 119 c +12 r (as) s +13 r (large) s +114 1896 p (as) s +18 r 112 c +1 r (ossible) s +18 r (up) s +18 r (to) s +18 r (its) s +18 r (maxim) s +0 r (um) s +17 r (size,) s +19 r 98 c +0 r 121 c +17 r (shrinking) s +18 r (\(but) s +18 r (not) s +18 r (closing\)) s +19 r (the) s +18 r (other) s +18 r (windo) s +0 r (ws) s +17 r (on) s +114 1952 p (the) s +15 r (screen.) s +33 2045 p (14.) s +cmbx10.329 @sf +23 r (Zo) s +1 r (om) s +cmr10.329 @sf +17 r (or) s +cmbx10.329 @sf +17 r (Unzo) s +1 r (om) s +cmr10.329 @sf +17 r 40 c +cmcsc10.329 @sf +0 r (SHIFT) s +19 r (LEFT) s +19 r (BUTTON) s +19 r (in) s +19 r (ZOOM-GADGET) s +cmr10.329 @sf +0 r 41 c +17 r 124 c +17 r (Zo) s +1 r (oms) s +17 r (or) s +17 r (un-) s +114 2101 p (zo) s +1 r (oms) s +15 r (the) s +15 r (windo) s +0 r (w.) s +33 2194 p (15.) s +cmbx10.329 @sf +23 r (Set) s +19 r (Size) s +cmr10.329 @sf +17 r 124 c +16 r 65 c +17 r (submen) s +0 r 117 c +16 r (for) s +16 r (setting) s +17 r (the) s +17 r 118 c +-2 r (arious) s +16 r (sizes) s +17 r (asso) s +1 r (ciated) s +17 r (with) s +17 r (the) s +17 r (windo) s +-1 r 119 c +16 r (\(Normal) s +114 2250 p (Min,) s +20 r (Normal) s +19 r (Desired,) s +20 r (Zo) s +1 r (om) s +19 r (Min,) s +20 r (Zo) s +1 r (om) s +19 r (Desired,) s +20 r (Max\).) s +32 r (The) s +19 r (details) s +19 r (are) s +19 r (the) s +19 r (same) s +19 r (as) s +19 r (for) s +114 2307 p (Resize.) s +33 2399 p (16.) s +cmbx10.329 @sf +23 r (Options) s +cmr10.329 @sf +17 r 124 c +18 r 65 c +18 r (submen) s +0 r 117 c +17 r (for) s +18 r (setting) s +18 r (and) s +18 r (unsetting) s +17 r 118 c +-1 r (arious) s +17 r (windo) s +-1 r 119 c +17 r (options.) s +29 r (The) s +18 r (option) s +18 r (is) s +114 2456 p (set) s +15 r (if) s +15 r (it) s +15 r (is) s +15 r 99 c +0 r (hec) s +-1 r 107 c +-2 r (ed) s +15 r (in) s +15 r (the) s +15 r (men) s +0 r (u.) s +19 r (Selecting) s +15 r (the) s +15 r (en) s +0 r (try) s +14 r (toggles) s +15 r (the) s +15 r (setting.) s +cmsy10.329 @sf +168 2560 p 15 c +cmbx10.329 @sf +23 r (Lo) s +1 r 99 c +0 r 107 c +-2 r (ed) s +17 r (Op) s +1 r (en) s +cmr10.329 @sf +15 r 124 c +16 r (prev) s +-1 r (en) s +-1 r (ts) s +14 r (the) s +15 r (windo) s +0 r 119 c +14 r (from) s +15 r 98 c +2 r (eing) s +15 r (automatically) s +15 r (closed.) s +cmsy10.329 @sf +168 2632 p 15 c +cmbx10.329 @sf +23 r (Fixed) s +17 r (Width) s +cmr10.329 @sf +15 r 124 c +16 r (prev) s +-1 r (en) s +-1 r (ts) s +14 r (the) s +15 r (windo) s +0 r (w's) s +14 r (width) s +15 r (from) s +16 r 98 c +1 r (eing) s +15 r (automatically) s +15 r 99 c +0 r (hanged.) s +cmsy10.329 @sf +168 2704 p 15 c +cmbx10.329 @sf +23 r (Fixed) s +17 r (Heigh) s +0 r 116 c +cmr10.329 @sf +14 r 124 c +15 r (prev) s +0 r (en) s +-1 r (ts) s +14 r (the) s +15 r (windo) s +0 r (w's) s +14 r (heigh) s +0 r 116 c +14 r (from) s +15 r 98 c +1 r (eing) s +15 r (automatically) s +15 r 99 c +0 r (hanged.) s +937 2828 p (11) s +@eop +10 @bop0 +cmbx10.432 @sf +[<00FF800003FFF0000FFFFC001F01FE003C007F0078003F8078003FC0FE001FC0FE001FE0FE001FE0FE001FE0FE001FE07E00 + 1FE018001FE000001FE000001FE000001FC000001FC000003F800C003F800E007F000F80FE000FFFF8000E7FC0000E000000 + 0E0000000E0000000E0000000E0000000E0000000FFE00000FFFC0000FFFE0000FFFF8000FFFFC000FFFFE000FFFFE000F80 + 3F000C000300> 32 39 -3 0 34.370] 53 @dc +[<00000E00000700000000001F00000F80000000001F00000F80000000001F80001F80000000003F80001FC0000000003F8000 + 1FC0000000003FC0003FC0000000007FC0003FE0000000007FC0003FE000000000FFE0007FF000000000FFE0007FF0000000 + 00FFF000FFF000000001FE7000FF3800000001FE7000FF3800000001FE7801FF3800000003FC3801FE1C00000003FC3801FE + 1C00000007FC1C03FC1E00000007F81C03FC0E00000007F81E07FC0E0000000FF00E07F8070000000FF00E07F8070000001F + F00F0FF0078000001FE0070FF0038000001FE0070FF0038000003FE0039FE003C000003FC0039FE001C000003FC003FFE001 + C000007F8001FFC000E000007F8001FFC000E00000FF8000FF8000F00000FF0000FF8000700000FF0000FF8000700001FF00 + 00FF0000780001FE0000FF0000380001FE0001FF0000380003FC0001FE00001C0003FC0001FE00001C00FFFFE07FFFF007FF + F0FFFFE07FFFF007FFF0FFFFE07FFFF007FFF0> 72 41 -1 0 71.065] 87 @dc +10 @bop1 +cmr10.329 @sf +33 195 p (13.) s +cmbx10.329 @sf +23 r (Hard) s +17 r (Exit) s +cmr10.329 @sf +15 r 124 c +15 r (Kills) s +15 r (all) s +16 r (clien) s +-1 r (ts) s +14 r (and) s +16 r (exits) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (manager.) s +33 286 p (14.) s +cmbx10.329 @sf +23 r (Detac) s +-1 r 104 c +17 r (Manager) s +cmr10.329 @sf +15 r 124 c +15 r (Op) s +1 r (ens) s +15 r (all) s +15 r (clien) s +0 r 116 c +14 r (windo) s +0 r (ws) s +14 r (and) s +15 r (exits) s +15 r (the) s +16 r (windo) s +-1 r 119 c +15 r (manager.) s +cmbx10.432 @sf +0 428 p 53 c +69 r (Windo) s +-1 r 119 c +22 r (Men) s +-1 r 117 c +cmr10.329 @sf +0 529 p (Pressing) s +12 r (or) s +11 r (clic) s +0 r (king) s +11 r (the) s +11 r (righ) s +0 r 116 c +10 r (button) s +12 r (in) s +12 r (the) s +11 r (header) s +12 r (or) s +11 r 98 c +2 r (order) s +11 r (of) s +12 r 97 c +12 r (windo) s +-1 r 119 c +11 r 112 c +1 r (ops) s +12 r (up) s +11 r 97 c +12 r (men) s +0 r 117 c +10 r (of) s +12 r (en) s +0 r (tries) s +0 586 p (whic) s +0 r 104 c +15 r (apply) s +16 r (to) s +17 r (that) s +16 r (windo) s +0 r (w.) s +23 r (Most) s +16 r (of) s +16 r (the) s +17 r (windo) s +-1 r 119 c +16 r (op) s +1 r (erations) s +16 r (whic) s +0 r 104 c +15 r (can) s +17 r 98 c +1 r 101 c +16 r (in) s +0 r 118 c +-1 r (ok) s +-1 r (ed) s +15 r (through) s +16 r (the) s +0 642 p (men) s +0 r 117 c +17 r (can) s +19 r (also) s +18 r 98 c +1 r 101 c +19 r (in) s +-1 r 118 c +-1 r (ok) s +-1 r (ed,) s +18 r (as) s +18 r (indicated) s +19 r (in) s +18 r (paren) s +0 r (theses,) s +18 r 98 c +0 r 121 c +17 r (buttoning) s +19 r (the) s +18 r (mouse) s +18 r (in) s +19 r 97 c +18 r 98 c +1 r (order) s +19 r (or) s +0 699 p (gadget.) s +56 795 p (1.) s +cmbx10.329 @sf +22 r (Title) s +cmr10.329 @sf +17 r 124 c +18 r (Mo) s +-1 r (ving) s +16 r (the) s +18 r 112 c +1 r (oin) s +0 r (ter) s +16 r (to) s +17 r (the) s +17 r (righ) s +0 r 116 c +16 r (of) s +17 r (the) s +17 r (men) s +0 r 117 c +16 r (en) s +0 r (try) s +16 r (displa) s +0 r (ys) s +16 r (the) s +17 r (full) s +17 r (windo) s +0 r 119 c +16 r (title) s +114 851 p (\(in) s +15 r (case) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (header) s +15 r (is) s +15 r (to) s +2 r 111 c +15 r (small) s +15 r (to) s +15 r (fully) s +15 r (displa) s +0 r 121 c +14 r (it\).) s +56 942 p (2.) s +cmbx10.329 @sf +22 r (Redra) s +0 r 119 c +cmr10.329 @sf +18 r 40 c +cmcsc10.329 @sf +0 r (CTRL) s +22 r (SHIFT) s +21 r (LEFT/MIDDLE) s +21 r (BUTTON) s +22 r (in) s +21 r (GADGET) s +cmr10.329 @sf +0 r 41 c +20 r 124 c +19 r (Redra) s +0 r (ws) s +18 r (the) s +114 999 p (windo) s +-1 r (w.) s +56 1090 p (3.) s +cmbx10.329 @sf +22 r (Manager) s +cmr10.329 @sf +15 r 124 c +16 r 80 c +-1 r (ops) s +14 r (up) s +16 r (the) s +15 r (main) s +15 r (windo) s +0 r 119 c +14 r (manager) s +15 r (men) s +0 r (u.) s +56 1181 p (4.) s +cmbx10.329 @sf +22 r (Close) s +cmr10.329 @sf +15 r 40 c +cmcsc10.329 @sf +0 r (CTRL) s +18 r (SHIFT) s +17 r (RIGHT) s +17 r (BUTTON) s +17 r (in) s +17 r (GADGET) s +cmr10.329 @sf +0 r 41 c +15 r 124 c +16 r (Closes) s +15 r (the) s +15 r (windo) s +0 r (w.) s +56 1272 p (5.) s +cmbx10.329 @sf +22 r (Group) s +18 r (Close) s +cmr10.329 @sf +16 r 124 c +16 r (If) s +16 r (the) s +15 r (windo) s +0 r 119 c +15 r (is) s +16 r (part) s +15 r (of) s +16 r 97 c +16 r (windo) s +0 r 119 c +14 r (group,) s +16 r (hides) s +16 r (all) s +16 r (windo) s +-1 r (ws) s +15 r (and) s +16 r (icons) s +16 r (in) s +114 1328 p (the) s +15 r (group) s +15 r (and) s +15 r (op) s +1 r (ens) s +16 r (an) s +15 r (icon) s +15 r (for) s +15 r (the) s +15 r (group) s +15 r (leader.) s +20 r (If) s +16 r (not) s +15 r (part) s +15 r (of) s +15 r 97 c +15 r (group,) s +15 r (acts) s +16 r (lik) s +-1 r 101 c +cmbx10.329 @sf +14 r (Close) s +cmr10.329 @sf +0 r 46 c +56 1419 p (6.) s +cmbx10.329 @sf +22 r (Resize) s +cmr10.329 @sf +15 r 40 c +cmcsc10.329 @sf +0 r (LEFT) s +18 r (BUTTON) s +17 r (in) s +17 r (BORDER) s +cmr10.329 @sf +0 r 41 c +15 r 124 c +15 r 70 c +-3 r (or) s +15 r (resizing) s +15 r (the) s +15 r (windo) s +0 r (w.) s +114 1493 p (The) s +21 r (user) s +21 r (mo) s +0 r 118 c +-1 r (es) s +20 r (the) s +22 r 112 c +1 r (oin) s +0 r (ter) s +20 r (on) s +22 r (or) s +21 r (near) s +21 r (the) s +22 r (appropriate) s +21 r (place) s +22 r (on) s +21 r (the) s +22 r (windo) s +-1 r 119 c +21 r 98 c +1 r (order) s +21 r (to) s +114 1549 p (determine) s +14 r (the) s +14 r (side) s +15 r (or) s +14 r (corner) s +14 r (to) s +15 r 98 c +1 r 101 c +14 r (resized.) s +20 r (The) s +15 r (cursor) s +14 r 99 c +0 r (hanges) s +13 r (to) s +15 r (indicate) s +14 r (whic) s +0 r 104 c +13 r (one) s +14 r 119 c +0 r (ould) s +114 1606 p 98 c +1 r 101 c +15 r (selected.) s +114 1680 p (The) s +10 r (user) s +10 r (then) s +10 r (presses) s +11 r (or) s +10 r (clic) s +0 r (ks) s +9 r (\(with) s +10 r (an) s +0 r 121 c +9 r (but) s +11 r (the) s +10 r (righ) s +0 r 116 c +9 r (button\)) s +10 r (to) s +10 r 98 c +2 r (egin) s +10 r (resizing.) s +19 r (If) s +10 r (the) s +10 r (button) s +114 1736 p (is) s +20 r (clic) s +-1 r 107 c +-1 r (ed) s +19 r (with) s +20 r (SHIFT) s +20 r (depressed,) s +22 r (then) s +20 r (gra) s +-1 r (vit) s +-1 r 121 c +19 r (is) s +20 r (disabled) s +20 r (\(though) s +20 r (if) s +20 r (gra) s +0 r (vit) s +-1 r 121 c +19 r (is) s +20 r (curren) s +0 r (tly) s +114 1792 p (disabled) s +15 r 98 c +0 r 121 c +14 r (an) s +15 r (option) s +15 r (setting,) s +15 r (SHIFT) s +15 r (enables) s +15 r (it\).) s +114 1866 p (The) s +16 r (mouse) s +16 r (is) s +16 r (then) s +16 r (trac) s +0 r 107 c +-2 r (ed) s +16 r 98 c +-1 r 121 c +15 r 97 c +17 r (windo) s +-1 r 119 c +15 r (outline,) s +17 r (whic) s +-1 r 104 c +15 r (will) s +17 r 98 c +1 r 101 c +16 r 98 c +1 r (ounded) s +16 r 98 c +0 r 121 c +15 r (the) s +16 r (clien) s +0 r 116 c +15 r (min-) s +114 1923 p (im) s +-1 r (um) s +15 r (and) s +16 r (clien) s +0 r 116 c +15 r (maxim) s +-1 r (um) s +15 r (size) s +16 r (if) s +16 r (these) s +16 r (are) s +15 r (enforced.) s +23 r (Dep) s +1 r (ending) s +16 r (up) s +1 r (on) s +16 r (option) s +16 r (settings,) s +16 r (the) s +114 1979 p (windo) s +-1 r 119 c +14 r (outline) s +15 r (ma) s +0 r 121 c +14 r (also) s +15 r 98 c +2 r 101 c +15 r 98 c +1 r (ounded) s +15 r 98 c +0 r 121 c +14 r (the) s +15 r (user) s +15 r (minim) s +0 r (um) s +14 r (and) s +15 r (maxim) s +-1 r (um) s +14 r (size.) s +21 r (If) s +15 r (they) s +15 r (are) s +114 2035 p (not) s +12 r (so) s +13 r 98 c +2 r (ounded,) s +13 r (and) s +13 r (the) s +13 r (user) s +12 r (resizes) s +13 r (the) s +13 r (windo) s +0 r 119 c +12 r (ab) s +1 r 111 c +0 r 118 c +-2 r 101 c +12 r (the) s +13 r (user) s +13 r (maxim) s +0 r (um) s +11 r (or) s +13 r 98 c +1 r (elo) s +0 r 119 c +12 r (the) s +13 r (user) s +114 2092 p (minim) s +-1 r (um) s +15 r (size,) s +15 r (the) s +15 r (user) s +15 r (maxim) s +0 r (um) s +14 r (or) s +15 r (minim) s +0 r (um) s +14 r (size) s +15 r (will) s +15 r 98 c +1 r 101 c +16 r (reset.) s +114 2166 p (Releasing) s +16 r (or) s +17 r (re-clic) s +0 r (king) s +16 r (the) s +16 r (mouse) s +17 r (button) s +17 r (\014nishes) s +17 r (the) s +16 r (resize.) s +25 r (The) s +17 r (windo) s +0 r (w's) s +16 r (desired) s +16 r (size) s +17 r (is) s +114 2222 p (set) s +15 r (to) s +15 r (the) s +15 r (size) s +15 r (indicated) s +15 r 98 c +0 r 121 c +14 r (the) s +15 r (user) s +16 r (unless) s +15 r (the) s +15 r (CTRL) s +15 r (button) s +15 r (is) s +15 r (depressed.) s +56 2313 p (7.) s +cmbx10.329 @sf +22 r (Relo) s +2 r (cate) s +cmr10.329 @sf +15 r 40 c +cmcsc10.329 @sf +0 r (MIDDLE) s +17 r (BUTTON) s +17 r (in) s +17 r (MO) s +-1 r (VE-GADGET) s +cmr10.329 @sf +0 r 41 c +14 r 124 c +15 r 70 c +-2 r (or) s +14 r (relo) s +1 r (cating) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (to) s +114 2370 p 97 c +15 r (new) s +15 r (lo) s +1 r (cation) s +15 r 112 c +2 r (ossibly) s +15 r (with) s +15 r 97 c +15 r (new) s +15 r (size.) s +114 2443 p (The) s +17 r (cursor) s +16 r 99 c +0 r (hanges) s +16 r (to) s +17 r 97 c +17 r (dotted) s +17 r 98 c +1 r 111 c +0 r 120 c +16 r (and) s +17 r (is) s +16 r 119 c +0 r (arp) s +0 r (ed) s +17 r (to) s +17 r (the) s +17 r (cen) s +0 r (ter) s +16 r (of) s +17 r (the) s +17 r (windo) s +-1 r (w.) s +25 r (The) s +17 r (user) s +114 2500 p (then) s +15 r (can) s +15 r (mo) s +0 r 118 c +-2 r 101 c +15 r (the) s +15 r 112 c +1 r (oin) s +0 r (ter) s +14 r (to) s +15 r (another) s +15 r (lo) s +1 r (cation.) s +114 2573 p (Double) s +15 r (clic) s +0 r (king) s +14 r (will) s +15 r (relo) s +1 r (cate) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (with) s +15 r (its) s +16 r (cen) s +-1 r (ter) s +14 r (at) s +16 r (\(or) s +15 r (near\)) s +15 r (the) s +15 r 112 c +1 r (oin) s +0 r (ter.) s +114 2647 p (Ho) s +-1 r 119 c +-1 r (ev) s +-1 r (er,) s +13 r (just) s +13 r (pressing) s +13 r (\(or) s +13 r (single) s +14 r (clic) s +0 r (king\)) s +12 r 99 c +0 r (hanges) s +12 r (the) s +13 r (cursor) s +13 r (again,) s +14 r (to) s +13 r (an) s +14 r (\\anc) s +0 r (hored) s +12 r (arro) s +0 r (w") s +114 2704 p (signifying) s +13 r (that) s +13 r (the) s +14 r (user) s +13 r (is) s +13 r (to) s +14 r (size) s +13 r (the) s +13 r (windo) s +0 r (w.) s +19 r (The) s +13 r (curren) s +0 r 116 c +12 r 112 c +1 r (oin) s +0 r (ter) s +12 r (lo) s +2 r (cation) s +13 r 98 c +1 r (ecomes) s +13 r (the) s +14 r (top) s +937 2828 p (10) s +@eop +9 @bop0 +cmti10.329 @sf +[<0F0700308C80705C40703C40F01C40F01C40F00E20F00E00F00E00F00E007807007807007807003807003C03801C03800E03 + 800707800389C000F1C00001C00001C00000E00000E00000E00000E00000700000700000700000700003F8000078> 24 32 -4 0 23.232] 100 @dc +9 @bop1 +cmr10.329 @sf +56 195 p (4.) s +cmbx10.329 @sf +22 r 84 c +-3 r 111 c +0 r (ols) s +cmr10.329 @sf +11 r 124 c +11 r 80 c +-1 r (ops) s +10 r (up) s +10 r 97 c +11 r (submen) s +0 r 117 c +9 r (of) s +11 r (applications.) s +18 r (Clic) s +0 r (king) s +10 r (on) s +10 r (one) s +11 r (of) s +10 r (these) s +11 r (runs) s +11 r (the) s +10 r (corresp) s +1 r (onding) s +114 252 p (application.) s +20 r (The) s +15 r (section) s +15 r (on) s +15 r (customization) s +15 r (describ) s +2 r (es) s +15 r (ho) s +0 r 119 c +14 r (the) s +15 r 84 c +-3 r 111 c +0 r (ols) s +16 r (submen) s +-1 r 117 c +14 r (is) s +16 r (sp) s +1 r (eci\014ed.) s +56 342 p (5.) s +cmbx10.329 @sf +22 r (Prorate) s +cmr10.329 @sf +14 r 124 c +14 r 70 c +-3 r (airly) s +13 r (reallo) s +1 r (cates) s +14 r (space) s +13 r (to) s +14 r (the) s +14 r (windo) s +0 r (ws) s +12 r (based) s +14 r (up) s +1 r (on) s +14 r (their) s +14 r (minim) s +0 r (um) s +12 r (and) s +14 r (desired) s +114 399 p (sizes.) s +56 489 p (6.) s +cmbx10.329 @sf +22 r (Fill) s +cmr10.329 @sf +18 r 124 c +18 r (Allo) s +0 r (ws) s +16 r (eac) s +0 r 104 c +17 r (windo) s +0 r 119 c +17 r (to) s +17 r (gro) s +0 r 119 c +17 r (to) s +18 r (its) s +18 r (maxim) s +-1 r (um) s +17 r (size) s +18 r (in) s +18 r (an) s +18 r (attempt) s +17 r (to) s +18 r (use) s +18 r (up) s +18 r (screen) s +114 545 p (space.) s +56 636 p (7.) s +cmbx10.329 @sf +22 r (Undo) s +cmr10.329 @sf +15 r 124 c +16 r (Undo) s +1 r (es) s +15 r (the) s +15 r (last) s +15 r (op) s +2 r (eration) s +15 r 98 c +-1 r 121 c +15 r (the) s +15 r (user) s +15 r (whic) s +0 r 104 c +14 r 99 c +0 r (hanged) s +14 r (the) s +15 r (la) s +0 r 121 c +-2 r (out) s +14 r (of) s +16 r (the) s +15 r (screen.) s +56 727 p (8.) s +cmbx10.329 @sf +22 r (Rep) s +2 r (opulate) s +cmr10.329 @sf +12 r 124 c +12 r (Reop) s +1 r (ens) s +13 r (closed) s +12 r (windo) s +0 r (ws.) s +18 r 65 c +12 r (submen) s +0 r 117 c +11 r (indicates) s +12 r (three) s +13 r (kinds) s +12 r (of) s +12 r (rep) s +1 r (opulation:) s +cmsy10.329 @sf +168 826 p 15 c +cmbx10.329 @sf +23 r (Rep) s +1 r (opulate) s +18 r (Auto) s +cmr10.329 @sf +15 r 124 c +15 r 65 c +0 r (ttempts) s +14 r (to) s +15 r (reop) s +1 r (en) s +16 r (windo) s +-1 r (ws) s +14 r (that) s +16 r 119 c +-1 r (ere) s +14 r (automatically) s +16 r (closed.) s +cmsy10.329 @sf +168 896 p 15 c +cmbx10.329 @sf +23 r (Rep) s +1 r (opulate) s +18 r (All) s +cmr10.329 @sf +15 r 124 c +15 r 65 c +0 r (ttempts) s +14 r (to) s +15 r (reop) s +1 r (en) s +16 r (all) s +15 r (closed) s +15 r (windo) s +0 r (ws.) s +cmsy10.329 @sf +168 966 p 15 c +cmbx10.329 @sf +23 r (Rep) s +1 r (opulate) s +20 r (Last) s +cmr10.329 @sf +18 r 124 c +17 r 65 c +0 r (ttempts) s +17 r (to) s +17 r (reop) s +1 r (en) s +18 r (windo) s +0 r (ws) s +16 r (whic) s +0 r 104 c +16 r 119 c +0 r (ere) s +17 r (automatically) s +17 r (closed) s +214 1022 p (during) s +15 r (the) s +15 r (previous) s +15 r (windo) s +0 r 119 c +14 r (op) s +1 r (eration.) s +56 1122 p (9.) s +cmbx10.329 @sf +22 r (Read) s +21 r (Pro\014le) s +cmr10.329 @sf +19 r 124 c +18 r (Rereads) s +18 r 97 c +19 r (user) s +18 r (pro\014le) s +18 r (and) s +19 r (up) s +1 r (dates) s +18 r (option) s +18 r (settings) s +19 r (in) s +18 r (existing) s +18 r (windo) s +0 r (ws) s +114 1178 p (corresp) s +1 r (onding) s +22 r (to) s +22 r (options) s +22 r (that) s +22 r (ha) s +0 r 118 c +-1 r 101 c +21 r 99 c +-1 r (hanged) s +22 r (in) s +22 r (the) s +22 r (pro\014le.) s +41 r (See) s +22 r (the) s +22 r (Customization) s +22 r (and) s +114 1235 p (Options) s +15 r (sections) s +15 r (for) s +15 r (more) s +15 r (information.) s +33 1325 p (10.) s +cmbx10.329 @sf +23 r (Finish) s +17 r (La) s +-1 r 121 c +-1 r (out) s +cmr10.329 @sf +14 r (or) s +cmbx10.329 @sf +15 r (Sa) s +-1 r 118 c +-1 r 101 c +16 r (La) s +0 r 121 c +-2 r (out) s +cmr10.329 @sf +14 r 124 c +15 r (When) s +15 r (the) s +15 r (windo) s +0 r 119 c +13 r (manager) s +15 r (is) s +15 r (initially) s +15 r (started) s +15 r (up,) s +15 r (the) s +114 1382 p (windo) s +-1 r (ws) s +16 r (already) s +17 r (on) s +17 r (the) s +17 r (screen) s +17 r (are) s +17 r (matc) s +0 r (hed) s +16 r (against) s +17 r (ones) s +17 r (describ) s +1 r (ed) s +17 r (in) s +17 r (the) s +cmbx10.329 @sf +17 r (.rtl.la) s +-1 r 121 c +-1 r (out) s +cmr10.329 @sf +16 r (\014le;) s +114 1438 p (when) s +19 r (one) s +20 r (matc) s +0 r (hes,) s +20 r (the) s +19 r (windo) s +0 r (w's) s +19 r (size,) s +21 r 112 c +1 r (osition,) s +21 r (state,) s +21 r (and) s +20 r (options) s +19 r (are) s +20 r (restored) s +20 r (from) s +20 r (the) s +114 1495 p (information) s +17 r (asso) s +1 r (ciated) s +18 r (with) s +17 r (windo) s +0 r 119 c +16 r (in) s +17 r (the) s +18 r (sa) s +-1 r 118 c +-1 r (ed) s +16 r (la) s +0 r 121 c +-1 r (out) s +16 r (\014le.) s +27 r (The) s +17 r (same) s +17 r (is) s +18 r (done) s +17 r (ev) s +0 r (en) s +16 r (after) s +114 1551 p (the) s +15 r (windo) s +0 r 119 c +14 r (manager) s +15 r (is) s +15 r (already) s +15 r (running) s +15 r (and) s +15 r 97 c +16 r (clien) s +-1 r 116 c +14 r (initially) s +16 r (maps) s +15 r 97 c +15 r (new) s +15 r (windo) s +0 r 119 c +14 r (or) s +15 r (icon.) s +114 1625 p (Un) s +-1 r (til) s +15 r (ev) s +0 r (ery) s +15 r (sa) s +0 r 118 c +-1 r (ed) s +15 r (windo) s +-1 r 119 c +15 r (in) s +cmbx10.329 @sf +16 r (.rtl.la) s +0 r 121 c +-2 r (out) s +cmr10.329 @sf +15 r (is) s +16 r (matc) s +0 r (hed) s +15 r 98 c +0 r 121 c +15 r (an) s +16 r (op) s +1 r (ened) s +16 r (windo) s +0 r 119 c +15 r (or) s +16 r (icon,) s +16 r (certain) s +114 1681 p (automatic) s +17 r (strategies) s +17 r (used) s +17 r 98 c +0 r 121 c +16 r (the) s +17 r (windo) s +0 r 119 c +16 r (manager) s +17 r (to) s +17 r (balance) s +17 r (screen) s +17 r (space) s +17 r (are) s +17 r (disabled) s +17 r (in) s +114 1737 p (order) s +15 r (to) s +15 r (allo) s +0 r 119 c +14 r (the) s +15 r (sa) s +0 r 118 c +-2 r (ed) s +15 r (la) s +-1 r 121 c +-1 r (out) s +14 r (to) s +15 r 98 c +2 r 101 c +15 r (precisely) s +15 r (restored.) s +114 1811 p (In) s +15 r (the) s +15 r (mean) s +0 r (time,) s +14 r 92 c +cmbx10.329 @sf +0 r (Finish) s +18 r (La) s +-1 r 121 c +-1 r (out) s +cmr10.329 @sf +0 r 34 c +14 r (app) s +2 r (ears) s +15 r (in) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (manager) s +16 r (men) s +-1 r (u.) s +20 r (If) s +15 r (an) s +16 r (exp) s +1 r (ected) s +114 1867 p (windo) s +-1 r 119 c +14 r (do) s +2 r (es) s +15 r (not) s +15 r (op) s +1 r (en) s +15 r (for) s +15 r (some) s +15 r (reason) s +15 r (\(host) s +15 r (do) s +-1 r (wn,) s +14 r (program) s +15 r 98 c +2 r (om) s +-1 r (bs,) s +14 r (etc.\),) s +15 r (the) s +15 r (user) s +15 r (can) s +15 r (tell) s +114 1924 p (the) s +15 r (windo) s +0 r 119 c +14 r (manager) s +15 r (to) s +cmti10.329 @sf +15 r (tr) s +-1 r 101 c +-3 r (at) s +cmr10.329 @sf +14 r (the) s +16 r (la) s +-1 r 121 c +-1 r (out) s +14 r (as) s +15 r (\014nished) s +16 r 98 c +-1 r 121 c +14 r (selecting) s +16 r 92 c +cmbx10.329 @sf +0 r (Finish) s +17 r (La) s +0 r 121 c +-2 r (out) s +cmr10.329 @sf +0 r (".) s +114 1997 p (Alternately) s +-3 r 44 c +16 r 98 c +-1 r 121 c +16 r (sp) s +1 r (ecifying) s +17 r (the) s +16 r (\015ag) s +16 r (\\-f) s +4 r 34 c +16 r (when) s +17 r (the) s +cmbx10.329 @sf +16 r (rtl) s +cmr10.329 @sf +17 r (is) s +16 r (started,) s +17 r (the) s +16 r (windo) s +0 r (ws) s +16 r (on) s +16 r (the) s +16 r (screen) s +114 2054 p (when) s +cmbx10.329 @sf +19 r (rtl) s +cmr10.329 @sf +20 r (is) s +20 r (started) s +20 r (are) s +20 r (laid) s +20 r (out,) s +20 r (but) s +20 r (then,) s +21 r (the) s +20 r (la) s +0 r 121 c +-1 r (out) s +18 r (is) s +cmti10.329 @sf +20 r (tr) s +-1 r 101 c +-2 r (ate) s +-3 r 100 c +cmr10.329 @sf +19 r (as) s +20 r (\014nished) s +20 r (and) s +19 r 92 c +cmbx10.329 @sf +0 r (Finish) s +114 2110 p (La) s +-1 r 121 c +-1 r (out) s +cmr10.329 @sf +0 r 34 c +11 r (do) s +1 r (es) s +12 r (not) s +13 r (app) s +1 r (ear.) s +19 r (If) s +12 r 121 c +0 r (ou) s +11 r (sp) s +1 r (ecify) s +13 r (the) s +12 r (\015ag) s +12 r (\\-i",) s +13 r (then) s +12 r (the) s +12 r (la) s +0 r 121 c +-2 r (out) s +12 r (\014le) s +12 r (is) s +12 r (ignored) s +12 r (en) s +0 r (tirely) s +-4 r 46 c +114 2184 p (When) s +16 r 92 c +cmbx10.329 @sf +0 r (Finish) s +19 r (La) s +-1 r 121 c +-1 r (out) s +cmr10.329 @sf +0 r 34 c +15 r (do) s +2 r (es) s +16 r (not) s +16 r (app) s +2 r (ear,) s +16 r 92 c +cmbx10.329 @sf +0 r (Sa) s +0 r 118 c +-1 r 101 c +17 r (La) s +0 r 121 c +-1 r (out) s +cmr10.329 @sf +0 r 34 c +15 r (app) s +1 r (ears) s +17 r (in) s +16 r (its) s +16 r (place.) s +24 r (Selecting) s +114 2240 p 92 c +cmbx10.329 @sf +0 r (Sa) s +-1 r 118 c +-1 r 101 c +20 r (La) s +0 r 121 c +-1 r (out) s +cmr10.329 @sf +0 r 34 c +17 r (sa) s +0 r 118 c +-1 r (es) s +18 r (information) s +19 r (ab) s +1 r (out) s +19 r (all) s +19 r (op) s +1 r (en) s +19 r (and) s +19 r (closed) s +18 r (windo) s +0 r (ws) s +18 r (and) s +19 r (their) s +19 r (icons) s +19 r (in) s +cmbx10.329 @sf +114 2297 p (.rtl.la) s +-1 r 121 c +-1 r (out) s +cmr10.329 @sf +0 r 46 c +33 2387 p (11.) s +cmbx10.329 @sf +23 r (Notify) s +25 r (All) s +cmr10.329 @sf +22 r 124 c +22 r (Send) s +22 r 97 c +cmcsc10.329 @sf +22 r (BANG!) s +cmr10.329 @sf +22 r (message) s +22 r (to) s +22 r (all) s +22 r (windo) s +0 r (ws) s +21 r (that) s +22 r (accept) s +22 r (the) s +22 r (message.) s +41 r (Not) s +114 2444 p (implemen) s +-1 r (ted) s +15 r (in) s +15 r (Release) s +15 r (5.) s +33 2534 p (12.) s +cmbx10.329 @sf +23 r (Soft) s +18 r (Kill) s +19 r (All) s +cmr10.329 @sf +16 r 124 c +16 r (If) s +16 r 97 c +16 r (clien) s +0 r 116 c +15 r (has) s +16 r 97 c +16 r (windo) s +0 r 119 c +15 r (that) s +16 r (accepts) s +16 r 97 c +cmcsc10.329 @sf +16 r (BANG!) s +cmr10.329 @sf +17 r (message,) s +16 r (the) s +16 r (message) s +16 r (is) s +114 2591 p (sen) s +-1 r 116 c +15 r (to) s +15 r (that) s +15 r (windo) s +0 r (w.) s +20 r (When) s +15 r (eac) s +0 r 104 c +14 r (suc) s +0 r 104 c +14 r (clien) s +0 r 116 c +14 r (has) s +15 r (up) s +2 r (dated) s +15 r (the) s +cmcsc10.329 @sf +15 r (WM) s +3 r 15 2 ru +15 r (COMMAND) s +cmr10.329 @sf +16 r (prop) s +1 r (ert) s +0 r 121 c +114 2647 p (of) s +17 r (its) s +17 r (accepting) s +17 r (windo) s +0 r (w,) s +17 r (the) s +17 r (wm) s +17 r (kills) s +18 r (the) s +17 r (clien) s +0 r (t.) s +25 r (All) s +17 r (other) s +18 r (clien) s +-1 r (ts) s +17 r (\(all) s +17 r (clien) s +0 r (ts) s +16 r (in) s +17 r (release) s +17 r (5\)) s +114 2704 p (are) s +15 r (killed) s +15 r (immediately) s +-3 r 46 c +949 2828 p 57 c +@eop +8 @bop0 +cmti10.329 @sf +[<600700E00CC0700C40701C20700C20700E20380E103807003807003807001C03801C03801C03801C03800E01C00E01C00F01 + C00E8180076300071E0007000007000003800003800003800003800001C00001C00001C00001C0000FE00001E000> 24 32 -3 0 23.232] 104 @dc +cmbx10.432 @sf +[<007FFFF8007FFFF8007FFFF80000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00FFFFFFF8FFFF + FFF8FFFFFFF8E0007E0070007E0038007E001C007E000E007E000E007E0007007E0003807E0001C07E0000E07E0000E07E00 + 00707E0000387E00001C7E00000E7E00000E7E0000077E000003FE000001FE000000FE000000FE0000007E0000003E000000 + 1E0000000E00> 32 39 -2 0 34.370] 52 @dc +8 @bop1 +cmbx10.329 @sf +0 195 p (Prev) s +0 r (en) s +-2 r (ting) s +13 r 97 c +14 r (Change) s +14 r (of) s +14 r (Listener) s +cmr10.329 @sf +45 r (Users) s +12 r (ma) s +0 r 121 c +11 r (wish) s +12 r (to) s +13 r (direct) s +12 r (input) s +12 r (to) s +12 r (another) s +12 r (windo) s +0 r 119 c +11 r (without) s +0 252 p 99 c +0 r (hanging) s +14 r (the) s +15 r (listener.) s +20 r (There) s +15 r (are) s +16 r 116 c +-1 r 119 c +-1 r 111 c +14 r (reasons) s +15 r (wh) s +0 r 121 c +14 r (this) s +15 r (is) s +16 r (useful:) s +56 347 p (1.) s +22 r (The) s +17 r (listener) s +18 r (is) s +17 r (generally) s +17 r (prev) s +0 r (en) s +-1 r (ted) s +16 r (from) s +17 r 98 c +1 r (eing) s +18 r (closed) s +17 r (as) s +17 r 97 c +17 r (side) s +17 r (e\013ect) s +18 r (of) s +17 r (an) s +17 r (op) s +1 r (eration) s +17 r 98 c +0 r 121 c +16 r 97 c +114 404 p (clien) s +-1 r (t.) s +21 r (The) s +15 r (user) s +16 r (ma) s +0 r 121 c +14 r 119 c +0 r (an) s +-1 r 116 c +14 r (to) s +16 r (retain) s +15 r (this) s +16 r (prop) s +1 r (ert) s +0 r 121 c +14 r (of) s +16 r (the) s +16 r (curren) s +-1 r 116 c +15 r (listener) s +15 r (while) s +16 r (temp) s +1 r (orarily) s +114 460 p 116 c +-1 r (yping) s +15 r (in) s +-1 r (to) s +14 r (another) s +16 r (windo) s +-1 r (w.) s +56 551 p (2.) s +22 r (Ev) s +0 r (en) s +11 r (though) s +13 r (the) s +12 r (user) s +13 r (has) s +12 r (tied) s +13 r 97 c +12 r (windo) s +0 r (w's) s +11 r (listener) s +13 r (to) s +12 r (zo) s +1 r (om,) s +13 r (he) s +13 r (ma) s +-1 r 121 c +12 r (only) s +12 r (need) s +13 r (to) s +12 r (temp) s +1 r (orarily) s +114 607 p 116 c +-1 r (yp) s +1 r 101 c +21 r (something) s +20 r (in) s +21 r (it) s +21 r (\(e.g.) s +37 r (start) s +21 r 97 c +21 r (compilation\)) s +21 r (and) s +21 r (there) s +21 r (is) s +21 r (no) s +21 r (reason) s +20 r (to) s +21 r (zo) s +2 r (om) s +20 r (it) s +21 r (\(and) s +114 664 p (corresp) s +1 r (ondingly) s +15 r (unzo) s +1 r (om) s +15 r (the) s +16 r (curren) s +-1 r 116 c +15 r (listener) s +15 r (if) s +15 r (it) s +15 r (is) s +15 r (tied) s +15 r (as) s +15 r 119 c +0 r (ell\).) s +71 759 p (If) s +cmbx10.329 @sf +18 r (fo) s +2 r (cusF) s +-4 r (ollo) s +-1 r (wsP) s +-2 r (oin) s +-1 r (ter) s +cmr10.329 @sf +18 r (is) s +18 r (on,) s +20 r (the) s +18 r (user) s +19 r (ma) s +0 r 121 c +17 r (simply) s +19 r (mo) s +-1 r 118 c +-1 r 101 c +18 r (the) s +18 r 112 c +2 r (oin) s +-1 r (ter) s +18 r (to) s +19 r (the) s +cmti10.329 @sf +18 r (he) s +-1 r (ader) s +cmr10.329 @sf +17 r (of) s +19 r (the) s +0 816 p (other) s +16 r (windo) s +-1 r 119 c +15 r (and) s +16 r 116 c +-1 r (yp) s +1 r (e.) s +22 r (Input) s +15 r (is) s +16 r (directed) s +16 r (to) s +15 r (that) s +16 r (windo) s +0 r (w's) s +14 r (clien) s +0 r (t.) s +21 r (Ho) s +0 r 119 c +-2 r (ev) s +-1 r (er,) s +15 r (the) s +15 r (original) s +16 r (listener) s +0 872 p (remains) s +15 r (unc) s +0 r (hanged,) s +14 r (and) s +15 r (is) s +15 r (still) s +15 r (prev) s +0 r (en) s +-1 r (ted) s +14 r (from) s +15 r 98 c +1 r (eing) s +16 r (closed) s +15 r (\(but) s +15 r (not) s +15 r (mo) s +0 r 118 c +-2 r (ed) s +15 r (or) s +15 r (resized\)) s +15 r (as) s +15 r 97 c +15 r (side) s +0 929 p (e\013ect) s +20 r (of) s +20 r 97 c +20 r (clien) s +-1 r 116 c +19 r (op) s +2 r (eration.) s +34 r (The) s +20 r (temp) s +1 r (orary) s +20 r (listener) s +20 r (is) s +20 r (prev) s +0 r (en) s +-1 r (ted) s +18 r (from) s +20 r 98 c +2 r (eing) s +20 r (closed,) s +21 r (mo) s +-1 r 118 c +-1 r (ed) s +19 r (or) s +0 985 p (resized) s +15 r (while) s +15 r (it) s +15 r (is) s +16 r (the) s +15 r (fo) s +1 r (cus.) s +71 1042 p (If) s +cmbx10.329 @sf +11 r (fo) s +1 r (cusF) s +-3 r (ollo) s +-1 r (wsP) s +-2 r (oin) s +-1 r (ter) s +cmr10.329 @sf +10 r (is) s +11 r (o\013,) s +12 r (the) s +12 r (user) s +11 r (ma) s +0 r 121 c +10 r (obtain) s +11 r (the) s +12 r (same) s +11 r (result) s +11 r 98 c +0 r 121 c +10 r (clic) s +0 r (king) s +10 r (in) s +12 r (the) s +11 r (header) s +11 r (of) s +0 1098 p (the) s +14 r (other) s +15 r (windo) s +0 r (w.) s +18 r 84 c +-2 r 111 c +13 r (return) s +14 r (the) s +15 r (fo) s +1 r (cus) s +14 r (to) s +15 r (the) s +14 r (original) s +15 r (listener,) s +14 r (the) s +15 r (user) s +14 r (just) s +14 r (lea) s +0 r 118 c +-1 r (es) s +13 r (the) s +15 r (temp) s +1 r (orary) s +0 1155 p (listener) s +15 r (windo) s +0 r (w.) s +cmbx10.432 @sf +0 1296 p 52 c +69 r (Manager) s +23 r (Men) s +-1 r 117 c +cmr10.329 @sf +0 1398 p (Pressing) s +15 r (or) s +15 r (clic) s +0 r (king) s +14 r (the) s +15 r (righ) s +0 r 116 c +14 r (button) s +15 r (in) s +15 r (the) s +15 r (bac) s +0 r (kground) s +14 r (or) s +15 r (in) s +15 r (the) s +15 r 82 c +-2 r (TL) s +14 r (icon) s +15 r (will) s +15 r 112 c +1 r (op) s +15 r (up) s +15 r (the) s +15 r (main) s +0 1454 p (manager) s +20 r (men) s +0 r (u.) s +35 r (This) s +20 r (men) s +0 r 117 c +19 r (also) s +21 r (app) s +1 r (ears) s +20 r (as) s +21 r 97 c +20 r (submen) s +0 r 117 c +19 r (of) s +20 r (the) s +21 r (windo) s +0 r 119 c +19 r (men) s +0 r (u.) s +34 r (It) s +21 r (con) s +-1 r (tains) s +20 r (the) s +0 1511 p (follo) s +0 r (wing) s +14 r (en) s +0 r (tries:) s +56 1606 p (1.) s +cmbx10.329 @sf +22 r (Redra) s +0 r 119 c +16 r (All) s +cmr10.329 @sf +15 r 124 c +16 r (Redra) s +-1 r (ws) s +14 r (the) s +16 r (screen) s +56 1697 p (2.) s +cmbx10.329 @sf +22 r (Lo) s +2 r 99 c +-1 r 107 c +17 r (Screen) s +cmr10.329 @sf +15 r 124 c +15 r (Lo) s +1 r 99 c +0 r (ks) s +14 r (the) s +15 r (screen) s +15 r (un) s +0 r (til) s +14 r (the) s +15 r (user) s +16 r 116 c +-1 r (yp) s +1 r (es) s +15 r 97 c +15 r (passw) s +0 r (ord.) s +56 1788 p (3.) s +cmbx10.329 @sf +22 r (Closed) s +21 r (Windo) s +0 r (ws) s +cmr10.329 @sf +17 r 124 c +18 r 80 c +0 r (ops) s +17 r (up) s +19 r 97 c +18 r (submen) s +0 r 117 c +17 r (of) s +18 r (all) s +18 r (closed) s +19 r (windo) s +-1 r (ws.) s +29 r (Selecting) s +18 r (one) s +19 r (op) s +1 r (ens) s +18 r (it.) s +114 1845 p (Dep) s +1 r (ending) s +13 r (up) s +2 r (on) s +13 r (an) s +14 r (option,) s +14 r (the) s +13 r (user) s +14 r (either) s +13 r (will) s +14 r 98 c +1 r 101 c +14 r (ask) s +-1 r (ed) s +13 r (to) s +13 r (place) s +14 r (it,) s +14 r (or) s +13 r 97 c +14 r (place) s +13 r (will) s +14 r 98 c +1 r 101 c +14 r (found) s +114 1901 p (automatically) s +15 r (for) s +15 r (it.) s +114 1975 p (If) s +17 r (the) s +17 r (user) s +17 r (is) s +17 r (ask) s +0 r (ed) s +16 r (to) s +18 r (place) s +17 r (it,) s +17 r (the) s +18 r (cursor) s +17 r 99 c +0 r (hanges) s +16 r (to) s +17 r 97 c +17 r (dotted) s +17 r 98 c +2 r 111 c +-1 r 120 c +17 r (and) s +17 r (the) s +17 r (corresp) s +1 r (onding) s +114 2031 p (icon) s +17 r (\(if) s +18 r (it) s +18 r (is) s +18 r (op) s +1 r (en\)) s +18 r (will) s +18 r 98 c +1 r 101 c +18 r (highligh) s +0 r (ted.) s +27 r (The) s +18 r (user) s +17 r (can) s +18 r (then) s +18 r (mo) s +0 r 118 c +-2 r 101 c +17 r (the) s +18 r 112 c +1 r (oin) s +0 r (ter) s +17 r (in) s +0 r (to) s +16 r (the) s +18 r (icon) s +114 2087 p (\(the) s +12 r (cursor) s +13 r (will) s +13 r 99 c +0 r (hange) s +11 r (to) s +13 r 97 c +13 r (drap) s +1 r (ed) s +13 r 98 c +1 r 111 c +0 r (x\)) s +11 r (and) s +13 r (clic) s +0 r 107 c +12 r (to) s +12 r (ha) s +0 r 118 c +-1 r 101 c +12 r (the) s +12 r (windo) s +0 r 119 c +12 r (op) s +1 r (ened) s +13 r (automatically) s +114 2144 p (at) s +15 r 97 c +15 r 112 c +1 r (osition) s +15 r (selected) s +16 r 98 c +-1 r 121 c +14 r (the) s +16 r (windo) s +-1 r 119 c +14 r (manager.) s +114 2218 p (Alternately) s +-3 r 44 c +17 r (the) s +18 r (user) s +18 r (can) s +18 r (lea) s +0 r 118 c +-1 r 101 c +17 r (the) s +17 r 112 c +2 r (oin) s +-1 r (ter) s +17 r (outside) s +18 r (of) s +18 r (the) s +18 r (icon.) s +29 r (Double) s +17 r (clic) s +0 r (king) s +17 r (will) s +18 r (place) s +114 2274 p (the) s +15 r (windo) s +0 r 119 c +14 r (with) s +15 r (its) s +15 r (cen) s +0 r (ter) s +14 r (at) s +15 r (\(or) s +15 r (near\)) s +15 r (the) s +15 r 112 c +2 r (oin) s +-1 r (ter.) s +114 2348 p (Ho) s +-1 r 119 c +-1 r (ev) s +-1 r (er,) s +13 r (just) s +13 r (pressing) s +13 r (\(or) s +13 r (single) s +14 r (clic) s +0 r (king\)) s +12 r 99 c +0 r (hanges) s +12 r (the) s +13 r (cursor) s +13 r (again,) s +14 r (to) s +13 r (an) s +14 r (\\anc) s +0 r (hored) s +12 r (arro) s +0 r (w") s +114 2404 p (signifying) s +13 r (that) s +13 r (the) s +14 r (user) s +13 r (is) s +13 r (to) s +14 r (size) s +13 r (the) s +13 r (windo) s +0 r (w.) s +19 r (The) s +13 r (curren) s +0 r 116 c +12 r 112 c +1 r (oin) s +0 r (ter) s +12 r (lo) s +2 r (cation) s +13 r 98 c +1 r (ecomes) s +13 r (the) s +14 r (top) s +114 2461 p (left) s +15 r (corner) s +16 r (of) s +15 r (the) s +16 r (windo) s +-1 r (w.) s +21 r (The) s +15 r (user) s +15 r (can) s +16 r (then) s +15 r (mo) s +0 r 118 c +-1 r 101 c +14 r (the) s +16 r 112 c +1 r (oin) s +0 r (ter) s +14 r (to) s +16 r (sp) s +1 r (ecify) s +16 r (the) s +15 r 98 c +1 r (ottom) s +16 r (righ) s +0 r 116 c +114 2517 p (corner.) s +114 2591 p (Releasing) s +17 r (\(or) s +18 r (clic) s +-1 r (king) s +17 r (again\)) s +17 r (\014nishes) s +18 r (the) s +17 r (sizing) s +18 r (and) s +17 r (places) s +18 r (the) s +17 r (windo) s +0 r 119 c +16 r (at) s +18 r (or) s +17 r (near) s +18 r (the) s +17 r (size) s +114 2647 p (and) s +18 r 112 c +1 r (osition) s +19 r (sp) s +1 r (eci\014ed.) s +31 r (The) s +18 r (windo) s +0 r (w's) s +17 r (desired) s +19 r (size) s +19 r (is) s +18 r (set) s +19 r (to) s +18 r (the) s +19 r (size) s +18 r (indicated) s +19 r 98 c +-1 r 121 c +18 r (the) s +19 r (user) s +114 2704 p (unless) s +15 r (the) s +15 r (CTRL) s +15 r (button) s +15 r (is) s +15 r (depressed.) s +949 2828 p 56 c +@eop +7 @bop0 +cmti10.329 @sf +[<3C0000660000F300007B000031800001800001C00001C00000C00000E00000E00000E00000E0000070000070000070000070 + 00007000007000003800003800003800003800003800001C00001C00001C00001C0001FFE0000E00000E00000E00000E0000 + 0E0000070000070000071800033C00033C00019C000078> 24 41 2 9 13.939] 102 @dc +7 @bop1 +cmbx10.329 @sf +0 195 p (Rubb) s +1 r (er) s +21 r (Banding) s +20 r (during) s +21 r 84 c +-3 r (rac) s +-2 r (king) s +cmr10.329 @sf +45 r (Rubb) s +1 r (er-banding) s +18 r (is) s +17 r (used) s +18 r (to) s +18 r (pro) s +0 r (vide) s +17 r (feedbac) s +-1 r 107 c +17 r (ab) s +1 r (out) s +18 r (the) s +0 252 p (\014nal) s +18 r (windo) s +0 r 119 c +16 r (size) s +18 r (during) s +18 r (resizing,) s +18 r (mo) s +0 r (ving,) s +18 r (and) s +17 r (op) s +2 r (ening) s +17 r 97 c +18 r (windo) s +0 r (w.) s +27 r (This) s +18 r (is) s +18 r (esp) s +1 r (ecially) s +18 r (imp) s +1 r (ortan) s +0 r 116 c +0 308 p 98 c +1 r (ecause) s +13 r (of) s +cmbx10.329 @sf +12 r (gra) s +0 r (vit) s +-2 r 121 c +cmr10.329 @sf +0 r 44 c +13 r (whic) s +-1 r 104 c +12 r (adjusts) s +12 r (the) s +13 r (edge) s +13 r (of) s +12 r (the) s +13 r (rubb) s +1 r (er-band) s +13 r (when) s +12 r (it) s +13 r (is) s +12 r (near) s +13 r (the) s +12 r (edge) s +13 r (of) s +12 r (another) s +0 364 p (windo) s +0 r (w.) s +cmbx10.329 @sf +0 485 p 87 c +-3 r (arping) s +cmr10.329 @sf +44 r (After) s +11 r (an) s +11 r (op) s +1 r (eration) s +11 r (is) s +11 r (completed,) s +12 r (the) s +11 r 112 c +1 r (oin) s +0 r (ter) s +10 r (\(optionally\)) s +11 r (is) s +11 r 119 c +0 r (arp) s +0 r (ed) s +11 r (to) s +11 r 97 c +11 r 112 c +1 r (osition) s +11 r (where) s +0 541 p (the) s +15 r (op) s +2 r (eration) s +15 r (can) s +15 r 98 c +1 r 101 c +16 r (easily) s +15 r (mo) s +1 r (di\014ed.) s +21 r 70 c +-3 r (or) s +15 r (example,) s +15 r (after) s +15 r (mo) s +0 r (ving) s +14 r 97 c +16 r (windo) s +-1 r (w,) s +15 r (the) s +15 r 112 c +1 r (oin) s +0 r (ter) s +14 r (is) s +16 r (placed) s +0 597 p (in) s +15 r (the) s +15 r (mo) s +0 r 118 c +-1 r 101 c +14 r (gadget) s +15 r (so) s +15 r (that) s +15 r (it) s +16 r (can) s +15 r 98 c +1 r 101 c +15 r (mo) s +0 r 118 c +-1 r (ed) s +14 r (again.) s +cmbx10.360 @sf +0 719 p (3.3) s +57 r 70 c +-3 r 111 c +0 r (cus) s +19 r (and) s +19 r (Listener) s +cmr10.329 @sf +0 805 p (Our) s +15 r (windo) s +0 r 119 c +14 r (manager) s +14 r (distinguishes) s +15 r 98 c +2 r (et) s +-1 r 119 c +-1 r (een) s +14 r (the) s +cmbx10.329 @sf +15 r (fo) s +1 r (cus) s +cmr10.329 @sf +15 r 124 c +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (to) s +14 r (whic) s +0 r 104 c +14 r 97 c +15 r 107 c +0 r (eypress) s +14 r 119 c +-1 r (ould) s +0 861 p (curren) s +0 r (tly) s +14 r 98 c +1 r 101 c +15 r (sen) s +0 r (t,) s +14 r (and) s +15 r (the) s +cmbx10.329 @sf +15 r (listener) s +cmr10.329 @sf +16 r 124 c +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (to) s +15 r (whic) s +0 r 104 c +14 r (input) s +15 r 119 c +0 r (as) s +14 r (last) s +15 r (directed.) s +cmbx10.329 @sf +0 981 p 70 c +-3 r 111 c +0 r (cus) s +14 r 70 c +-3 r (ollo) s +-2 r (ws) s +13 r 80 c +0 r (oin) s +-2 r (ter) s +cmr10.329 @sf +45 r (When) s +12 r (the) s +12 r (option) s +cmbx10.329 @sf +12 r (fo) s +1 r (cusF) s +-3 r (ollo) s +-2 r (wsP) s +-1 r (oin) s +-1 r (ter) s +cmr10.329 @sf +11 r (is) s +12 r (on,) s +12 r 97 c +12 r (\\Real-Estate-Driv) s +0 r (en") s +0 1038 p (in) s +0 r (terface) s +17 r (is) s +18 r (used) s +19 r 124 c +18 r (the) s +18 r (fo) s +1 r (cus) s +19 r (is) s +18 r (the) s +18 r (windo) s +0 r 119 c +17 r (whic) s +0 r 104 c +17 r (con) s +0 r (tains) s +17 r (the) s +19 r 112 c +1 r (oin) s +0 r (ter.) s +28 r (Ho) s +0 r 119 c +-1 r (ev) s +-2 r (er,) s +19 r (if) s +18 r (the) s +18 r (clien) s +0 r 116 c +0 1094 p (has) s +15 r (set) s +16 r (the) s +15 r (input) s +15 r (\014eld) s +15 r (in) s +cmcsc10.329 @sf +16 r (WM) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +15 r (for) s +15 r (that) s +16 r (windo) s +-1 r 119 c +15 r (to) s +cmti10.329 @sf +15 r (false) s +cmr10.329 @sf +0 r 44 c +15 r (there) s +15 r (will) s +16 r 98 c +1 r 101 c +15 r (no) s +15 r (fo) s +2 r (cus) s +15 r (when) s +15 r (the) s +0 1151 p 112 c +1 r (oin) s +0 r (ter) s +14 r (is) s +15 r (in) s +15 r (the) s +15 r (windo) s +0 r (w;) s +14 r (the) s +15 r (clien) s +0 r 116 c +14 r 109 c +0 r (ust) s +14 r (explicitly) s +15 r (set) s +15 r (the) s +15 r (input) s +15 r (fo) s +1 r (cus) s +15 r (to) s +15 r (obtain) s +15 r 107 c +0 r (eyb) s +0 r (oard) s +15 r (input.) s +71 1207 p (When) s +17 r (the) s +18 r (option) s +cmbx10.329 @sf +18 r (fo) s +1 r (cusF) s +-3 r (ollo) s +-1 r (wsP) s +-2 r (oin) s +-1 r (ter) s +cmr10.329 @sf +17 r (is) s +17 r (o\013,) s +19 r (the) s +18 r (in) s +-1 r (terface) s +17 r 99 c +0 r (hanges) s +17 r (to) s +17 r (\\Clic) s +0 r (k-T) s +-4 r (o-T) s +-1 r (yp) s +0 r (e") s +18 r 124 c +0 1264 p (the) s +18 r (user) s +18 r 109 c +0 r (ust) s +17 r (clic) s +0 r 107 c +17 r 97 c +18 r (mouse) s +18 r (button) s +18 r (in) s +18 r (the) s +19 r (windo) s +-1 r 119 c +17 r (in) s +19 r (order) s +18 r (to) s +18 r 99 c +0 r (hange) s +17 r (the) s +18 r (fo) s +1 r (cus) s +18 r (\(and) s +18 r (since) s +18 r (the) s +0 1320 p (clic) s +0 r 107 c +18 r (is) s +19 r (sen) s +0 r 116 c +18 r (to) s +19 r (the) s +19 r (clien) s +0 r (t,) s +19 r (the) s +19 r (listener) s +19 r 99 c +0 r (hanges) s +18 r (as) s +19 r 119 c +-1 r (ell\).) s +31 r (If) s +20 r (the) s +19 r (clien) s +-1 r 116 c +18 r (has) s +20 r (set) s +19 r (the) s +19 r (input) s +19 r (\014eld) s +19 r (in) s +cmcsc10.329 @sf +0 1377 p (WM) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +18 r (for) s +18 r (that) s +17 r (windo) s +0 r 119 c +17 r (to) s +cmti10.329 @sf +18 r (false) s +cmr10.329 @sf +0 r 44 c +18 r (then) s +18 r (the) s +17 r (clic) s +0 r 107 c +17 r (is) s +18 r (rep) s +1 r (orted) s +18 r (to) s +17 r (the) s +18 r (clien) s +0 r (t,) s +17 r (but) s +18 r (the) s +18 r (curren) s +-1 r 116 c +0 1433 p (fo) s +1 r (cus) s +20 r (and) s +19 r (listener) s +20 r (are) s +19 r (simply) s +20 r (deselected;) s +21 r (as) s +20 r (describ) s +1 r (ed) s +20 r (ab) s +1 r 111 c +0 r 118 c +-2 r (e,) s +20 r (the) s +19 r (clien) s +0 r 116 c +19 r 109 c +-1 r (ust) s +19 r (explicitly) s +19 r (set) s +20 r (the) s +0 1490 p (input) s +15 r (fo) s +1 r (cus) s +16 r (to) s +15 r (obtain) s +15 r 107 c +0 r (eyb) s +0 r (oard) s +15 r (input.) s +cmbx10.329 @sf +0 1610 p (Prev) s +0 r (en) s +-2 r (ting) s +19 r (Clien) s +-1 r 116 c +19 r (Side) s +19 r (E\013ects) s +20 r (to) s +19 r (an) s +20 r (Activ) s +-1 r 101 c +19 r (Listener) s +cmr10.329 @sf +45 r (When) s +17 r (the) s +17 r (listener) s +17 r (windo) s +0 r 119 c +16 r (is) s +17 r (also) s +0 1666 p (the) s +19 r (fo) s +1 r (cus,) s +20 r 119 c +0 r 101 c +18 r (call) s +19 r (it) s +19 r (an) s +cmbx10.329 @sf +19 r (activ) s +0 r 101 c +21 r (listener) s +cmr10.329 @sf +0 r 46 c +31 r (Since) s +19 r (input) s +20 r (has) s +19 r (just) s +19 r 98 c +1 r (een) s +19 r (sen) s +0 r 116 c +18 r (to) s +19 r (it) s +19 r (and) s +19 r (the) s +19 r 112 c +1 r (oin) s +0 r (ter) s +0 1723 p (remains) s +14 r (within) s +13 r (it,) s +14 r (it) s +14 r (is) s +14 r (activ) s +-1 r (ely) s +13 r (in) s +14 r (use,) s +14 r (and) s +13 r (the) s +14 r (windo) s +0 r 119 c +13 r (manager) s +13 r (treats) s +14 r (suc) s +0 r 104 c +12 r (windo) s +0 r (ws) s +13 r (sp) s +1 r (ecially) s +14 r (for) s +0 1779 p (the) s +15 r (reason) s +15 r (describ) s +2 r (ed) s +15 r 98 c +1 r (elo) s +0 r (w.) s +71 1835 p (X11) s +16 r (clien) s +0 r (ts) s +15 r (can) s +17 r (op) s +1 r (en,) s +17 r (mo) s +-1 r 118 c +-1 r 101 c +16 r (or) s +16 r (resize) s +16 r 97 c +17 r (windo) s +0 r 119 c +15 r (indep) s +1 r (enden) s +0 r (tly) s +16 r (of) s +16 r (the) s +16 r (user.) s +24 r (Suc) s +0 r 104 c +16 r (actions) s +16 r (ma) s +0 r 121 c +0 1892 p 98 c +1 r 101 c +14 r (unpredictable) s +13 r 124 c +13 r (they) s +14 r (ma) s +0 r 121 c +12 r (happ) s +1 r (en) s +14 r (at) s +13 r (an) s +0 r 121 c +12 r (time) s +14 r 124 c +13 r (and) s +13 r (they) s +14 r (ma) s +-1 r 121 c +13 r (a\013ect) s +13 r (other) s +14 r (windo) s +-1 r (ws,) s +13 r (causing) s +0 1948 p (them) s +20 r (to) s +20 r (shrink) s +20 r (or) s +20 r (close.) s +35 r (Suc) s +0 r 104 c +19 r (async) s +-1 r (hronous) s +19 r (unpredictable) s +20 r (actions) s +20 r (can) s +21 r 98 c +1 r 101 c +20 r (esp) s +1 r (ecially) s +20 r (anno) s +0 r (ying) s +0 2005 p (when) s +15 r (they) s +15 r (a\013ect) s +15 r (the) s +16 r (windo) s +-1 r 119 c +14 r (in) s +16 r (whic) s +-1 r 104 c +15 r (the) s +15 r (user) s +15 r (is) s +15 r (curren) s +0 r (tly) s +14 r 119 c +0 r (orking.) s +71 2061 p (Consequen) s +-1 r (tly) s +-3 r 44 c +11 r (as) s +11 r (an) s +11 r (option,) s +12 r (it) s +11 r (is) s +11 r 112 c +2 r (ossible) s +11 r (to) s +11 r (prev) s +0 r (en) s +-1 r 116 c +10 r 97 c +11 r (listener) s +11 r (from) s +11 r 98 c +2 r (eing) s +11 r (closed,) s +12 r (and) s +11 r (to) s +11 r (prev) s +0 r (en) s +-1 r 116 c +0 2118 p (an) s +19 r (activ) s +0 r 101 c +17 r (listener) s +19 r (from) s +19 r 98 c +1 r (eing) s +19 r (resized) s +19 r (or) s +19 r (mo) s +-1 r 118 c +-1 r (ed) s +18 r (as) s +19 r 97 c +18 r (side) s +19 r (e\013ect) s +19 r (of) s +19 r (an) s +19 r (op) s +1 r (eration) s +19 r 112 c +1 r (erformed) s +19 r 98 c +0 r 121 c +17 r 97 c +0 2174 p (clien) s +0 r (t.) s +cmbx10.329 @sf +0 2294 p (Listener) s +21 r (Tied) s +21 r 84 c +-4 r 111 c +20 r (Zo) s +2 r (om) s +cmr10.329 @sf +45 r (Some) s +18 r 111 c +0 r 118 c +-1 r (erlapping) s +17 r (windo) s +0 r 119 c +17 r (managers) s +18 r (automatically) s +18 r (raise) s +19 r 97 c +18 r (windo) s +-1 r 119 c +0 2351 p (when) s +13 r (it) s +14 r 98 c +1 r (ecomes) s +14 r (the) s +13 r (listener,) s +14 r (on) s +13 r (the) s +14 r 98 c +1 r (elief) s +14 r (that) s +13 r 97 c +14 r (windo) s +-1 r 119 c +13 r (in) s +13 r (use) s +14 r (should) s +13 r 98 c +1 r 101 c +14 r (completely) s +13 r (visible.) s +20 r 87 c +-3 r 101 c +0 2407 p (allo) s +0 r 119 c +14 r 97 c +15 r (windo) s +0 r 119 c +14 r (to) s +15 r 98 c +1 r 101 c +15 r (zo) s +2 r (omed) s +15 r (when) s +15 r (it) s +15 r 98 c +1 r (ecomes) s +16 r (the) s +15 r (listener) s +15 r (for) s +15 r 97 c +15 r (similar) s +15 r (reason.) s +71 2464 p (In) s +17 r (our) s +17 r (tiled) s +17 r (windo) s +0 r 119 c +16 r (manager,) s +18 r 97 c +17 r (windo) s +0 r 119 c +16 r (ma) s +0 r 121 c +16 r 98 c +1 r 101 c +17 r (shrunk) s +18 r (as) s +17 r 97 c +17 r (result) s +17 r (of) s +18 r (side) s +17 r (e\013ects) s +17 r (caused) s +17 r 98 c +0 r 121 c +0 2520 p (op) s +1 r (erations) s +12 r (on) s +12 r (other) s +11 r (windo) s +0 r (ws.) s +18 r (When) s +12 r (it) s +12 r 98 c +1 r (ecomes) s +12 r (the) s +11 r (listener,) s +13 r (the) s +12 r (user) s +11 r (ma) s +0 r 121 c +11 r (desire) s +11 r (that) s +12 r (it) s +12 r 98 c +1 r 101 c +12 r (zo) s +1 r (omed) s +0 2576 p (to) s +16 r (an) s +15 r (e\013ectiv) s +0 r 101 c +14 r 119 c +0 r (orking) s +15 r (size.) s +21 r (When) s +16 r (the) s +15 r (windo) s +0 r 119 c +15 r (is) s +15 r (no) s +16 r (longer) s +15 r (the) s +16 r (listener,) s +16 r (it) s +15 r (ma) s +0 r 121 c +15 r 98 c +1 r 101 c +15 r (allo) s +0 r 119 c +-1 r (ed) s +14 r (to) s +16 r 98 c +1 r 101 c +0 2633 p (unzo) s +1 r (omed.) s +20 r (This) s +16 r 98 c +1 r (eha) s +0 r (vior) s +14 r (ensues) s +15 r (if) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (option) s +cmbx10.329 @sf +15 r (listenerTiedT) s +-3 r (oZo) s +0 r (om) s +cmr10.329 @sf +16 r (is) s +15 r (on.) s +949 2828 p 55 c +@eop +6 @bop0 +cmbx10.360 @sf +[ 32 35 -2 0 30.233] 107 @dc +6 @bop1 +cmbx10.329 @sf +0 195 p (Redundancy) s +19 r (of) s +19 r (Buttons) s +18 r (and) s +19 r (Decorations) s +cmr10.329 @sf +45 r (In) s +17 r (the) s +16 r (default) s +16 r (in) s +0 r (terface,) s +16 r (the) s +16 r (left) s +16 r (button) s +17 r (is) s +16 r (used) s +0 252 p (for) s +16 r (sizing) s +15 r (windo) s +0 r (ws,) s +14 r (the) s +16 r (middle) s +15 r (button) s +16 r (for) s +16 r (mo) s +-1 r (ving) s +15 r (windo) s +0 r (ws,) s +14 r (and) s +16 r (the) s +15 r (righ) s +0 r 116 c +14 r (button) s +16 r (for) s +16 r 112 c +1 r (opping) s +15 r (up) s +0 308 p (men) s +0 r (us) s +14 r (and) s +15 r (cancelling) s +15 r (op) s +1 r (erations.) s +71 364 p (There) s +16 r (is) s +16 r 97 c +16 r (redundan) s +0 r 116 c +15 r (corresp) s +1 r (ondence) s +16 r 98 c +2 r (et) s +-1 r 119 c +-1 r (een) s +15 r (the) s +16 r (button) s +16 r (used) s +17 r (and) s +16 r (the) s +16 r (decoration) s +16 r (used.) s +23 r 70 c +-3 r (or) s +0 421 p (example,) s +13 r (the) s +13 r (zo) s +1 r (om) s +13 r (gadget) s +12 r (is) s +13 r (used) s +13 r (for) s +12 r (sizing) s +13 r (op) s +1 r (erations,) s +13 r (and) s +13 r (is) s +13 r (primarily) s +12 r (used) s +13 r (with) s +13 r (the) s +12 r (left) s +13 r (button.) s +0 477 p (The) s +14 r (mo) s +0 r 118 c +-1 r 101 c +13 r (gadget) s +14 r (is) s +14 r (primarily) s +14 r (used) s +14 r (with) s +14 r (the) s +14 r (middle) s +14 r (button,) s +14 r (and) s +14 r 112 c +2 r (opping) s +14 r (up) s +14 r (men) s +0 r (us) s +13 r (is) s +14 r (done) s +14 r (in) s +14 r (the) s +0 534 p (header) s +15 r (with) s +15 r (the) s +15 r (righ) s +0 r 116 c +14 r (button.) s +71 590 p (This) s +15 r (redundancy) s +15 r (pro) s +0 r (vides) s +14 r 97 c +16 r (certain) s +15 r (amoun) s +0 r 116 c +14 r (of) s +16 r (\015exibilit) s +-1 r 121 c +-3 r 46 c +20 r (First,) s +15 r (it) s +15 r (means) s +16 r (that) s +15 r 97 c +15 r (three) s +16 r (button) s +0 647 p (mouse) s +16 r (is) s +16 r (not) s +16 r (necessary) s +-3 r 46 c +22 r (The) s +15 r (decoration) s +16 r (in) s +16 r (whic) s +0 r 104 c +15 r 97 c +16 r (button) s +16 r (is) s +16 r (pressed,) s +16 r (could,) s +16 r (along) s +16 r (with) s +16 r (mo) s +1 r (di\014er) s +0 703 p 107 c +0 r (eys) s +14 r (\(e.g.) s +20 r (SHIFT) s +15 r (and) s +15 r (CTRL\)) s +16 r 98 c +1 r 101 c +15 r (used) s +15 r (to) s +15 r (distinguish) s +15 r (op) s +2 r (erations.) s +71 760 p (On) s +15 r (the) s +16 r (other) s +16 r (hand,) s +15 r (the) s +16 r (decorations) s +16 r (can) s +15 r 98 c +1 r 101 c +16 r (made) s +16 r (optional.) s +21 r (In) s +16 r (fact,) s +16 r (windo) s +0 r (ws) s +14 r (are) s +16 r (not) s +16 r (required) s +0 816 p (to) s +15 r (ha) s +-1 r 118 c +-1 r 101 c +14 r 98 c +1 r (orders,) s +15 r (headers) s +14 r (or) s +15 r (gadgets) s +15 r (\(and) s +14 r (can) s +15 r (ev) s +0 r (en) s +13 r (ha) s +0 r 118 c +-1 r 101 c +14 r (just) s +14 r (the) s +15 r (zo) s +1 r (om) s +15 r (but) s +15 r (not) s +14 r (the) s +15 r (mo) s +0 r 118 c +-2 r 101 c +14 r (gadget\).) s +0 873 p 84 c +-3 r 111 c +18 r (supp) s +1 r (ort) s +19 r (this,) s +19 r (the) s +19 r (bindings) s +19 r (of) s +19 r (op) s +1 r (erations) s +19 r (to) s +18 r (decorations) s +19 r (are) s +19 r (sp) s +1 r (eci\014ed) s +19 r 98 c +-1 r 121 c +18 r (options) s +19 r (and) s +18 r (can) s +19 r 98 c +1 r 101 c +0 929 p 99 c +0 r (hanged) s +14 r (so) s +15 r (that,) s +15 r (for) s +15 r (example,) s +15 r (all) s +16 r (op) s +1 r (erations) s +15 r (can) s +15 r 98 c +1 r 101 c +16 r 112 c +1 r (erformed) s +15 r (from) s +15 r (the) s +15 r 98 c +2 r (orders.) s +cmbx10.329 @sf +0 1049 p (Consisten) s +0 r 116 c +12 r (use) s +14 r (of) s +14 r (CTRL) s +14 r (and) s +14 r (SHIFT) s +cmr10.329 @sf +45 r (CTRL) s +12 r (and) s +12 r (SHIFT) s +12 r (are) s +12 r (used) s +12 r (as) s +12 r (mo) s +1 r (di\014ers) s +12 r (to) s +12 r (distinguish) s +0 1106 p (similar) s +18 r (sorts) s +18 r (of) s +18 r (op) s +1 r (erations.) s +28 r 70 c +-2 r (or) s +16 r (example,) s +19 r (there) s +18 r (are) s +18 r (three) s +18 r (kinds) s +17 r (of) s +18 r (mo) s +0 r 118 c +-1 r 101 c +17 r (op) s +1 r (erations) s +18 r (obtained) s +18 r 98 c +-1 r 121 c +0 1162 p (using) s +13 r (the) s +12 r (middle) s +13 r (button) s +12 r (in) s +13 r (the) s +12 r (mo) s +0 r 118 c +-1 r 101 c +11 r (gadget:) s +cmbx10.329 @sf +19 r (Relo) s +1 r (cate) s +cmr10.329 @sf +0 r 44 c +13 r (used) s +13 r (for) s +12 r 99 c +0 r (hanging) s +12 r (the) s +12 r (size) s +13 r (and) s +12 r (lo) s +1 r (cation) s +13 r (of) s +0 1218 p 97 c +14 r (windo) s +0 r (w,) s +14 r (uses) s +14 r (no) s +14 r (mo) s +2 r (di\014ers;) s +cmbx10.329 @sf +14 r (Mo) s +0 r 118 c +-2 r 101 c +cmr10.329 @sf +0 r 44 c +14 r (for) s +14 r (mo) s +0 r (ving) s +13 r 97 c +15 r (windo) s +0 r 119 c +13 r (at) s +14 r (its) s +15 r (curren) s +-1 r 116 c +14 r (size,) s +14 r (requires) s +15 r (the) s +14 r (SHIFT) s +0 1275 p 107 c +0 r (ey;) s +14 r (and) s +cmbx10.329 @sf +15 r (Exc) s +0 r (hange) s +cmr10.329 @sf +14 r (requires) s +15 r (the) s +15 r (CTRL) s +15 r 107 c +0 r (ey) s +-4 r 46 c +71 1331 p (Use) s +14 r (of) s +15 r 98 c +1 r (oth) s +15 r (CTRL) s +15 r (and) s +14 r (SHIFT) s +15 r (is) s +15 r (reserv) s +-1 r (ed) s +14 r (for) s +15 r (sp) s +1 r (ecial) s +15 r (cases.) s +20 r (CTRL) s +14 r (and) s +15 r (SHIFT) s +15 r (left) s +14 r (or) s +15 r (middle) s +0 1388 p (button) s +11 r (in) s +10 r (either) s +11 r (gadget) s +11 r (redra) s +-1 r (ws) s +10 r (the) s +11 r (windo) s +-1 r (w.) s +18 r (CTRL) s +11 r (and) s +10 r (SHIFT) s +11 r (righ) s +0 r 116 c +9 r (button) s +11 r (\(the) s +11 r (\\cancel") s +10 r (button\)) s +0 1444 p (in) s +15 r (either) s +15 r (gadget) s +15 r (closes) s +16 r (the) s +15 r (windo) s +-1 r (w.) s +cmbx10.360 @sf +0 1566 p (3.2) s +57 r 70 c +-3 r (eedbac) s +-2 r 107 c +cmbx10.329 @sf +0 1652 p 87 c +-3 r (atc) s +-2 r 104 c +14 r (Cursor) s +cmr10.329 @sf +45 r (When) s +13 r (the) s +12 r (system) s +13 r (is) s +12 r (completing) s +13 r 97 c +12 r (user) s +13 r (op) s +1 r (eration,) s +13 r (or) s +12 r 97 c +13 r (clien) s +0 r 116 c +11 r (op) s +1 r (eration) s +13 r (that) s +12 r (ma) s +0 r 121 c +0 1708 p (a\013ect) s +15 r (screen) s +15 r (la) s +0 r 121 c +-1 r (out,) s +14 r 97 c +15 r 119 c +0 r (atc) s +-1 r 104 c +14 r (cursor) s +15 r (is) s +15 r (displa) s +0 r 121 c +-2 r (ed,) s +15 r (and) s +15 r (input) s +15 r (is) s +15 r (queued.) s +cmbx10.329 @sf +0 1828 p (Cursor) s +20 r (sho) s +-1 r (ws) s +19 r (State) s +cmr10.329 @sf +45 r (In) s +17 r (the) s +17 r (midst) s +17 r (of) s +17 r (trac) s +0 r (king) s +16 r 97 c +17 r (windo) s +-1 r 119 c +16 r (op) s +2 r (eration,) s +17 r (the) s +17 r (cursor) s +17 r (indicates) s +17 r 98 c +1 r (oth) s +0 1885 p (the) s +17 r (op) s +1 r (eration) s +17 r (and) s +17 r (the) s +17 r (state.) s +25 r 70 c +-2 r (or) s +16 r (example,) s +17 r (during) s +17 r (the) s +cmbx10.329 @sf +17 r (Mo) s +-1 r 118 c +-1 r 101 c +cmr10.329 @sf +16 r (op) s +1 r (eration,) s +17 r (the) s +17 r (cursor) s +17 r 99 c +0 r (hanges) s +16 r (to) s +17 r 97 c +0 1941 p (hand.) s +19 r (There) s +13 r (are) s +13 r (some) s +13 r (op) s +1 r (erations) s +12 r (\(suc) s +0 r 104 c +12 r (as) s +cmbx10.329 @sf +13 r (Relo) s +1 r (cate) s +cmr10.329 @sf +0 r 44 c +13 r (discussed) s +13 r (later\)) s +13 r (where) s +12 r (the) s +13 r (state) s +13 r (ma) s +0 r 121 c +11 r 99 c +0 r (hange) s +0 1998 p (during) s +15 r (the) s +15 r (op) s +2 r (eration.) s +20 r (When) s +15 r (the) s +15 r (state) s +15 r 99 c +0 r (hanges,) s +14 r (the) s +15 r (cursor) s +15 r 99 c +0 r (hanges) s +14 r (as) s +15 r 119 c +0 r (ell.) s +cmbx10.329 @sf +0 2118 p (Cursor) s +13 r (indicates) s +14 r 80 c +-1 r (oin) s +-1 r (ter) s +12 r 80 c +0 r (osition) s +cmr10.329 @sf +44 r (When) s +12 r (the) s +12 r (system) s +12 r (is) s +cmti10.329 @sf +11 r (not) s +cmr10.329 @sf +12 r (in) s +12 r (the) s +11 r (midst) s +12 r (of) s +12 r (trac) s +-1 r (king) s +11 r 97 c +12 r (windo) s +0 r 119 c +0 2174 p (op) s +1 r (eration,) s +21 r (the) s +19 r (cursor) s +19 r 99 c +0 r (hanges) s +19 r (to) s +19 r (indicate) s +19 r (the) s +20 r (sort) s +19 r (of) s +19 r (decoration) s +20 r (in) s +19 r (whic) s +0 r 104 c +18 r (it) s +20 r (is) s +19 r 112 c +1 r (ositioned.) s +33 r 70 c +-3 r (or) s +0 2231 p (instance,) s +18 r (there) s +18 r (are) s +18 r (eigh) s +-1 r 116 c +17 r (di\013eren) s +0 r 116 c +17 r (sorts) s +17 r (of) s +18 r 98 c +1 r (order) s +18 r (areas) s +18 r (\(four) s +17 r (sides) s +18 r (and) s +18 r (the) s +17 r (four) s +18 r (corners\),) s +18 r (and) s +18 r 97 c +0 2287 p (di\013eren) s +0 r 116 c +11 r (cursor) s +13 r (for) s +13 r (eac) s +-1 r 104 c +12 r (one.) s +19 r (The) s +13 r (cursor) s +12 r 99 c +0 r (hanges) s +12 r (immediately) s +12 r (when) s +13 r (it) s +13 r (mo) s +-1 r 118 c +-1 r (es) s +12 r (from) s +12 r (one) s +13 r (to) s +12 r (another.) s +0 2343 p (Consequen) s +0 r (tly) s +-4 r 44 c +19 r (there) s +18 r (is) s +19 r (no) s +19 r (need) s +19 r (to) s +19 r (guess) s +18 r (\(from) s +19 r (the) s +19 r 112 c +1 r (osition) s +19 r (alone\)) s +19 r (whether) s +19 r (the) s +18 r (cursor) s +19 r (is) s +19 r (in) s +19 r (the) s +0 2400 p (header) s +15 r (or) s +15 r 98 c +2 r (order,) s +15 r (or) s +15 r (in) s +15 r 97 c +15 r (side) s +15 r 98 c +2 r (order) s +15 r (vs.) s +20 r 97 c +15 r (corner) s +15 r 98 c +2 r (order.) s +cmbx10.329 @sf +0 2520 p (Con\014rmation) s +cmr10.329 @sf +45 r (Some) s +16 r (irrev) s +-1 r 111 c +1 r (cable) s +15 r (op) s +1 r (erations) s +16 r (\(e.g.) s +20 r (deleting) s +15 r 97 c +16 r (windo) s +0 r (w,) s +14 r (sa) s +0 r (ving) s +14 r (the) s +15 r (la) s +0 r 121 c +-1 r (out,) s +14 r (exiting) s +0 2576 p (from) s +16 r (the) s +16 r (windo) s +0 r 119 c +15 r (manager\)) s +16 r (require) s +16 r (con\014rmation.) s +23 r (The) s +16 r (cursor) s +16 r 99 c +-1 r (hanges) s +15 r (to) s +16 r 97 c +17 r (question) s +16 r (mark) s +16 r (in) s +16 r (this) s +0 2633 p (case.) s +24 r 84 c +-3 r 111 c +16 r (cancel) s +16 r (the) s +17 r (op) s +1 r (eration,) s +17 r (the) s +16 r (righ) s +0 r 116 c +15 r 40 c +17 r (\\cancel") s +16 r 41 c +16 r (button) s +17 r (is) s +16 r (used.) s +24 r (The) s +17 r (left) s +16 r (or) s +17 r (middle) s +16 r (buttons) s +0 2689 p (con\014rm) s +15 r (the) s +15 r (op) s +2 r (eration.) s +949 2828 p 54 c +@eop +5 @bop0 +cmbx10.432 @sf +[<00FF800007FFF0001FFFFC003F01FF007C00FF80FE007F80FF007FC0FF003FC0FF003FE0FF003FE07E003FE03C003FE00000 + 3FE000003FE000003FE000003FC000007FC000007F800000FF000001FC0000FFF00000FFC0000007F0000003F8000001FE00 + 0000FF000000FF000000FF801F007F803F807F803F807F803FC07F803F807F803F80FF001F00FF001F81FE0007FFFC0003FF + F000007F8000> 32 39 -3 0 34.370] 51 @dc +[<007FFFFFE000007FFFFFE000007FFFFFE00000003FC0000000003FC0000000003FC0000000003FC0000000003FC000000000 + 3FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0 + 000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC00000 + E0003FC000E0E0003FC000E0E0003FC000E0E0003FC000E0E0003FC000E0F0003FC001E0F0003FC001E070003FC001C07800 + 3FC003C078003FC003C07E003FC007C07F803FC03FC07FFFFFFFFFC07FFFFFFFFFC07FFFFFFFFFC0> 48 40 -2 0 47.819] 84 @dc +[ 40 42 -3 0 38.189] 104 @dc +[<7FFF80007FFF80007FFF800007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0 + 000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F00000FFFFC000 + FFFFC000FFFFC00007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F03E0007F07F0003F87F0003F8 + 7F0001FC7F0000FE3E00003FFC000007F000> 32 42 -2 0 21.004] 102 @dc +cmbx10.329 @sf +[<000000F000000003FC00000003FC00000007FE00000007FE0000000FFF0000000FFF0000000F870000000F0300001FFE0300 + 00FFFF000001FC1F800007F83FE0000FDC3BF0001F8FF1F8003F87C1FC003F0000FC007F0000FE007E00007E007E00007E00 + FE00007F00FE00007F00FE00007F00FE00007F00FE00007F00FE00007F00FE00007F00FE00007F00FE00007F007E00007E00 + 7F0000FE007F0000FE003F0000FC001F8001F8001F8001F8000FC003F00007E007E00001F81F800000FFFF0000001FF80000> 40 40 -3 9 39.266] 81 @dc +cmti10.329 @sf +[ 24 29 0 9 23.232] 112 @dc +[<601E00E0310070310070708070708070708038384038700038700038E0001FC0001E00001D00001C80000E40C00E21E00E11 + E00E08E00704200703C007000007000003800003800003800003800001C00001C00001C00001C0000FE00001E000> 24 32 -3 0 20.908] 107 @dc +5 @bop1 +cmr10.329 @sf +71 195 p (Users) s +11 r (ma) s +0 r 121 c +10 r (lea) s +0 r 118 c +-2 r 101 c +11 r (windo) s +0 r (ws) s +10 r (in) s +11 r (their) s +12 r (normal) s +11 r (state,) s +12 r (or) s +11 r (they) s +12 r (ma) s +0 r 121 c +10 r (zo) s +1 r (om) s +11 r (them) s +12 r (\(later) s +11 r (unzo) s +1 r (oming) s +12 r (them) s +0 252 p (to) s +18 r (restore) s +18 r (them) s +18 r (bac) s +0 r 107 c +17 r (to) s +18 r (their) s +18 r (normal) s +17 r (state\).) s +29 r (There) s +18 r (are) s +18 r (separate) s +cmbx10.329 @sf +18 r (desired) s +cmr10.329 @sf +18 r (and) s +cmbx10.329 @sf +18 r (user) s +21 r (minim) s +-1 r (um) s +cmr10.329 @sf +0 308 p (sizes) s +15 r (for) s +16 r (the) s +15 r (normal) s +15 r (and) s +16 r (zo) s +1 r (omed) s +15 r (states.) s +21 r (The) s +15 r (windo) s +0 r 119 c +14 r (manager) s +16 r (ensures) s +15 r (that) s +16 r (the) s +15 r (zo) s +1 r (omed) s +15 r (sizes) s +16 r (are) s +0 364 p (alw) s +0 r 97 c +-2 r (ys) s +15 r (at) s +15 r (least) s +15 r (as) s +15 r (large) s +15 r (as) s +15 r (their) s +16 r (normal) s +15 r (\(unzo) s +1 r (omed\)) s +15 r (coun) s +0 r (terparts.) s +71 421 p (Windo) s +-1 r (ws) s +15 r (ha) s +-1 r 118 c +-1 r 101 c +14 r 97 c +cmbx10.329 @sf +16 r (desired) s +17 r 112 c +2 r (osition) s +cmr10.329 @sf +15 r 124 c +15 r 97 c +15 r (lo) s +2 r (cation) s +15 r (at) s +15 r (whic) s +0 r 104 c +14 r (the) s +16 r (windo) s +-1 r 119 c +15 r (manager) s +15 r (tries) s +15 r (to) s +15 r 107 c +0 r (eep) s +0 477 p (the) s +17 r (windo) s +0 r 119 c +16 r (cen) s +0 r (tered.) s +25 r (Eac) s +-1 r 104 c +17 r (time) s +17 r (the) s +17 r (user) s +17 r (man) s +0 r (ually) s +16 r 99 c +-1 r (hanges) s +17 r (the) s +17 r (size) s +17 r (or) s +17 r (placemen) s +0 r 116 c +16 r (of) s +17 r 97 c +17 r (windo) s +0 r (w,) s +0 534 p (its) s +15 r (cen) s +0 r (ter) s +14 r 98 c +1 r (ecomes) s +15 r (the) s +16 r (new) s +15 r (desired) s +15 r 112 c +1 r (osition.) s +71 590 p (The) s +24 r (clien) s +0 r 116 c +24 r (ma) s +-1 r 121 c +24 r 99 c +0 r (hange) s +23 r (the) s +25 r (desired) s +25 r 112 c +1 r (osition) s +24 r 98 c +0 r 121 c +24 r (sp) s +1 r (ecifying) s +25 r (the) s +24 r (top-left) s +25 r (of) s +25 r (the) s +24 r (windo) s +0 r 119 c +24 r (in) s +cmcsc10.329 @sf +0 647 p (WM) s +3 r 15 2 ru +15 r (NORMAL) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +0 r 46 c +22 r (If) s +22 r 97 c +21 r (size) s +22 r (is) s +22 r (sp) s +1 r (eci\014ed) s +22 r (in) s +cmcsc10.329 @sf +22 r (WM) s +3 r 15 2 ru +15 r (NORMAL) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +22 r (as) s +21 r 119 c +0 r (ell,) s +22 r (then) s +22 r (the) s +0 703 p (cen) s +0 r (ter) s +15 r (of) s +17 r (the) s +17 r (rectangle) s +17 r (determined) s +16 r 98 c +0 r 121 c +16 r (that) s +16 r (size) s +17 r (and) s +17 r (the) s +17 r (top) s +2 r 14 2 ru +14 r (left) s +17 r (co) s +1 r (ordinates) s +17 r (are) s +16 r (tak) s +0 r (en) s +16 r (to) s +17 r 98 c +1 r 101 c +16 r (the) s +0 760 p (new) s +15 r (desired) s +15 r 112 c +2 r (osition.) s +20 r (If) s +15 r (no) s +15 r (size) s +15 r (is) s +15 r (sp) s +2 r (eci\014ed,) s +15 r (then) s +15 r (the) s +15 r (curren) s +0 r 116 c +14 r (windo) s +0 r 119 c +14 r (size) s +15 r (is) s +15 r (used.) s +71 816 p (Icon) s +18 r (sizes) s +19 r (are) s +19 r (\014xed,) s +20 r (although,) s +20 r (if) s +19 r (the) s +cmbx10.329 @sf +18 r (icon) s +4 r 16 2 ru +15 r (pixmap) s +cmr10.329 @sf +19 r (is) s +19 r 99 c +0 r (hanged,) s +18 r (the) s +19 r (icon) s +19 r (size) s +19 r (will) s +19 r 99 c +0 r (hange) s +17 r (as) s +0 873 p 119 c +0 r (ell.) s +71 929 p (Lik) s +-1 r 101 c +12 r (windo) s +0 r (ws,) s +12 r (icons) s +12 r (ha) s +0 r 118 c +-1 r 101 c +11 r 97 c +cmbx10.329 @sf +13 r (desired) s +15 r 112 c +1 r (osition) s +cmr10.329 @sf +0 r 44 c +13 r (and) s +13 r (this) s +12 r 99 c +0 r (hanges) s +12 r (when) s +12 r (the) s +13 r (user) s +13 r (mo) s +-1 r 118 c +-1 r (es) s +12 r (the) s +12 r (icon.) s +0 985 p (The) s +14 r (clien) s +0 r 116 c +13 r (can) s +15 r 99 c +0 r (hange) s +13 r (the) s +14 r (icon) s +15 r (desired) s +14 r 112 c +1 r (osition) s +15 r 98 c +-1 r 121 c +14 r (sp) s +1 r (ecifying) s +14 r 97 c +15 r (new) s +14 r 112 c +1 r (osition) s +15 r (using) s +cmcsc10.329 @sf +14 r (WM) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +0 r 46 c +cmbx10.432 @sf +0 1129 p 51 c +69 r (The) s +23 r 80 c +-1 r (oin) s +-2 r (ter) s +22 r (In) s +-1 r (terface) s +cmbx10.329 @sf +182 1230 p (NOTE:) s +cmr10.329 @sf +16 r (This) s +17 r (man) s +-1 r (ual) s +16 r (descib) s +1 r (es) s +16 r (the) s +17 r (default) s +16 r (user) s +16 r (in) s +0 r (terface) s +15 r (based) s +17 r (on) s +16 r 97 c +16 r (three) s +17 r (button) s +114 1287 p (mouse) s +20 r (with) s +20 r (the) s +21 r (default) s +20 r (meanings) s +20 r (for) s +21 r (mouse) s +20 r (button) s +20 r (usage.) s +36 r (These) s +20 r (defaults) s +21 r (ma) s +-1 r 121 c +20 r 98 c +1 r 101 c +114 1343 p 99 c +-1 r (hanged.) s +20 r 65 c +cmbx10.329 @sf +16 r (Quic) s +-1 r 107 c +17 r (Reference) s +18 r 80 c +-1 r (age) s +cmr10.329 @sf +15 r (is) s +15 r 97 c +0 r 118 c +-3 r (ailable) s +15 r (for) s +15 r (this) s +16 r (default) s +15 r (in) s +0 r (terface,) s +14 r (as) s +16 r 119 c +0 r (ell) s +14 r (as) s +114 1399 p (for) s +17 r (the) s +17 r (default) s +18 r (in) s +-1 r (terface) s +17 r (pro) s +-1 r (vided) s +17 r (for) s +17 r (use) s +17 r (of) s +18 r 97 c +17 r (one-button) s +17 r (mouse.) s +27 r (See) s +18 r (the) s +17 r (section) s +17 r (on) s +114 1456 p (Customizations) s +15 r (and) s +15 r (Startup.) s +71 1562 p 87 c +-3 r 101 c +12 r (ha) s +0 r 118 c +-2 r 101 c +13 r (adopted) s +13 r 97 c +13 r 110 c +0 r (um) s +-2 r 98 c +1 r (er) s +13 r (of) s +13 r (imp) s +1 r (ortan) s +0 r 116 c +12 r (principles) s +13 r (that) s +13 r (relate) s +13 r (to) s +13 r (use) s +14 r (of) s +13 r (the) s +13 r 112 c +1 r (oin) s +0 r (ter,) s +12 r (whic) s +0 r 104 c +12 r (are) s +0 1619 p (describ) s +1 r (ed) s +15 r 98 c +2 r (elo) s +-1 r (w.) s +20 r 87 c +-3 r 101 c +14 r 98 c +1 r (eliev) s +0 r 101 c +14 r (these) s +15 r (con) s +0 r (tribute) s +14 r (to) s +15 r (the) s +15 r (pleasan) s +0 r 116 c +14 r (\\feel") s +16 r (of) s +15 r (the) s +15 r (system.) s +cmbx10.360 @sf +0 1740 p (3.1) s +57 r (Mouse) s +19 r (Button) s +19 r (Mo) s +2 r (del) s +cmbx10.329 @sf +0 1826 p (Press-Mo) s +0 r 118 c +-2 r (e-Release) s +14 r (vs) s +15 r (Clic) s +-1 r (k-Mo) s +-1 r 118 c +-2 r (e-Clic) s +-1 r 107 c +cmr10.329 @sf +44 r (The) s +13 r (press-mo) s +0 r 118 c +-1 r (e-release,) s +12 r (and) s +13 r (the) s +13 r (clic) s +-1 r (k-mo) s +-1 r 118 c +-1 r (e-clic) s +-1 r 107 c +0 1883 p (buttoning) s +15 r (st) s +0 r (yles) s +14 r (are) s +15 r (in) s +0 r (terc) s +-1 r (hangeable.) s +19 r 70 c +-3 r (or) s +14 r (example,) s +15 r (to) s +16 r 98 c +1 r (egin) s +15 r (mo) s +0 r (ving) s +14 r 97 c +15 r (windo) s +0 r (w,) s +14 r (the) s +15 r (user) s +15 r (can) s +16 r (hold) s +0 1939 p (the) s +15 r (SHIFT) s +15 r 107 c +0 r (ey) s +14 r (do) s +0 r (wn) s +14 r (while) s +15 r (using) s +15 r (the) s +16 r (middle) s +15 r (button) s +15 r (of) s +15 r 97 c +15 r 98 c +1 r (order.) s +cmsy10.329 @sf +68 2033 p 15 c +cmr10.329 @sf +23 r 70 c +-3 r (or) s +16 r (the) s +17 r (press-mo) s +0 r 118 c +-1 r (e-release) s +15 r (st) s +0 r (yle,) s +17 r (the) s +17 r (user) s +17 r (can) s +cmti10.329 @sf +17 r (pr) s +-2 r (ess) s +cmr10.329 @sf +16 r (the) s +17 r (middle) s +17 r (button) s +17 r (in) s +17 r (the) s +17 r 98 c +1 r (order,) s +18 r (hold) s +114 2089 p (it) s +15 r (do) s +0 r (wn) s +14 r (while) s +15 r (mo) s +0 r (ving) s +14 r (the) s +15 r (mouse) s +15 r (to) s +15 r (another) s +15 r (lo) s +2 r (cation,) s +15 r (and) s +15 r (then) s +cmti10.329 @sf +15 r 114 c +-1 r (ele) s +-3 r (ase) s +cmr10.329 @sf +15 r (the) s +15 r (button.) s +cmsy10.329 @sf +68 2183 p 15 c +cmr10.329 @sf +23 r 70 c +-3 r (or) s +14 r (the) s +15 r (clic) s +0 r (k-mo) s +-2 r 118 c +-1 r (e-clic) s +-1 r 107 c +14 r (st) s +-1 r (yle,) s +14 r (the) s +15 r (user) s +15 r (can) s +cmti10.329 @sf +15 r (click) s +cmr10.329 @sf +15 r (the) s +14 r (middle) s +15 r (button) s +15 r (in) s +15 r (the) s +15 r 98 c +1 r (order,) s +15 r (mo) s +0 r 118 c +-2 r 101 c +14 r (the) s +114 2240 p (mouse) s +15 r (to) s +15 r (another) s +15 r (lo) s +1 r (cation,) s +16 r (and) s +15 r (then) s +cmti10.329 @sf +15 r (click) s +cmr10.329 @sf +15 r (again.) s +cmbx10.329 @sf +0 2360 p (Cancellation) s +20 r (while) s +19 r 84 c +-3 r (rac) s +-2 r (king) s +cmr10.329 @sf +45 r (Ev) s +0 r (ery) s +16 r (op) s +1 r (eration) s +17 r (that) s +17 r (in) s +0 r 118 c +-1 r (olv) s +-2 r (es) s +16 r (mouse) s +18 r (mo) s +-1 r 118 c +-1 r (emen) s +-1 r 116 c +16 r (is) s +17 r (cancellable) s +0 2416 p (at) s +12 r (an) s +0 r 121 c +11 r (time) s +13 r 98 c +-1 r 121 c +12 r (pressing) s +12 r (the) s +12 r (righ) s +0 r 116 c +11 r (mouse) s +12 r (button.) s +20 r 70 c +-3 r (or) s +11 r (example,) s +13 r (after) s +12 r (pressing) s +13 r (or) s +12 r (clic) s +0 r (king) s +11 r (the) s +12 r (middle) s +0 2473 p (button) s +17 r (in) s +18 r (the) s +17 r 98 c +2 r (order,) s +17 r (the) s +18 r (user) s +17 r (can) s +18 r 98 c +1 r (egin) s +17 r (mo) s +0 r (ving) s +17 r (the) s +17 r (windo) s +0 r 119 c +16 r (around.) s +27 r 65 c +0 r 116 c +16 r (an) s +0 r 121 c +16 r (time,) s +18 r (if) s +18 r (the) s +17 r (righ) s +0 r 116 c +0 2529 p (button) s +18 r (is) s +18 r (pressed,) s +19 r (\(whether) s +19 r (the) s +18 r (middle) s +18 r (button) s +18 r (is) s +19 r 98 c +1 r (eing) s +18 r (held) s +18 r (do) s +0 r (wn) s +17 r (or) s +18 r 119 c +0 r (as) s +17 r (clic) s +0 r 107 c +-1 r (ed\),) s +18 r (the) s +18 r (mo) s +0 r 118 c +-1 r 101 c +17 r (is) s +0 2585 p (cancelled,) s +15 r (and) s +15 r (the) s +15 r 112 c +2 r (oin) s +-1 r (ter) s +15 r (is) s +15 r (\(optionally\)) s +15 r (mo) s +0 r 118 c +-2 r (ed) s +14 r (bac) s +0 r 107 c +14 r (to) s +15 r (the) s +16 r 112 c +1 r (osition) s +15 r (at) s +15 r (whic) s +0 r 104 c +14 r (the) s +15 r (op) s +1 r (eration) s +16 r 119 c +-1 r (as) s +0 2642 p (started.) s +949 2828 p 53 c +@eop +4 @bop0 +4 @bop1 +cmr10.329 @sf +71 195 p 84 c +-3 r 111 c +19 r (the) s +21 r (righ) s +0 r 116 c +20 r (of) s +20 r (the) s +21 r (header) s +21 r (is) s +20 r (the) s +cmbx10.329 @sf +21 r (mo) s +0 r 118 c +-2 r 101 c +23 r (gadget) s +cmr10.329 @sf +21 r 124 c +20 r (it) s +21 r (is) s +21 r (used) s +21 r (for) s +20 r (mo) s +0 r (ving,) s +21 r (relo) s +1 r (cating,) s +22 r (and) s +0 252 p (exc) s +0 r (hanging) s +14 r (windo) s +0 r (ws.) s +71 308 p 86 c +-3 r (arious) s +17 r (options) s +19 r (are) s +18 r 97 c +0 r 118 c +-3 r (ailable) s +18 r (for) s +18 r (setting) s +19 r (the) s +18 r (sizes) s +19 r (of) s +18 r (decorations,) s +19 r (and) s +19 r (for) s +18 r (determining,) s +20 r (on) s +18 r 97 c +0 364 p 112 c +1 r (er-windo) s +0 r 119 c +14 r (basis,) s +15 r (whether) s +15 r (they) s +16 r (should) s +15 r (used.) s +cmbx10.360 @sf +0 486 p (1.2) s +57 r (Icons) s +cmr10.329 @sf +0 572 p (When) s +14 r 97 c +14 r (windo) s +0 r 119 c +13 r (is) s +14 r (closed,) s +15 r (the) s +14 r (windo) s +0 r 119 c +13 r (title) s +14 r (is) s +14 r (placed) s +14 r (in) s +14 r 97 c +15 r (submen) s +-1 r 117 c +13 r (of) s +15 r (the) s +14 r (windo) s +-1 r 119 c +14 r (manager) s +14 r (men) s +0 r (u,) s +0 628 p (and) s +15 r (an) s +15 r (icon) s +15 r (for) s +16 r (the) s +15 r (windo) s +-1 r 119 c +15 r (ma) s +-1 r 121 c +15 r (optionally) s +15 r 98 c +1 r 101 c +15 r (displa) s +0 r 121 c +-1 r (ed.) s +71 685 p (Through) s +12 r (the) s +cmcsc10.329 @sf +12 r (WM) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +12 r (standard) s +12 r (prop) s +1 r (ert) s +0 r 121 c +-4 r 44 c +12 r (X11) s +12 r (allo) s +0 r (ws) s +11 r (the) s +12 r (clien) s +-1 r 116 c +11 r (to) s +13 r (pro) s +-1 r (vide) s +11 r (an) s +12 r (icon) s +12 r (pixmap) s +0 741 p (whic) s +0 r 104 c +10 r (will) s +11 r 98 c +1 r 101 c +11 r (displa) s +0 r 121 c +-1 r (ed) s +10 r (when) s +11 r (the) s +11 r (windo) s +0 r 119 c +10 r (is) s +11 r (iconized.) s +19 r (Through) s +11 r (preference) s +12 r (\014les,) s +12 r (the) s +11 r (user) s +11 r (can) s +11 r (sp) s +1 r (ecify) s +0 798 p (an) s +15 r (icon) s +15 r (pixmap,) s +15 r (and) s +16 r (this) s +15 r (will) s +15 r 111 c +0 r 118 c +-2 r (erride) s +15 r (the) s +15 r (one) s +15 r (pro) s +0 r (vided) s +14 r 98 c +-1 r 121 c +15 r (the) s +15 r (clien) s +0 r (t.) s +71 854 p (If) s +13 r (an) s +13 r (icon) s +13 r (pixmap) s +13 r (is) s +13 r (not) s +13 r (pro) s +0 r (vided,) s +12 r 97 c +13 r (default) s +13 r (icon) s +13 r (is) s +14 r (created) s +13 r 98 c +-1 r 121 c +12 r (the) s +14 r (windo) s +-1 r 119 c +12 r (manager) s +13 r (con) s +0 r (taining) s +0 911 p (the) s +14 r (windo) s +0 r 119 c +13 r (class,) s +14 r (the) s +14 r (icon) s +14 r (name) s +13 r (\(or) s +14 r (windo) s +0 r 119 c +13 r (name) s +14 r (if) s +14 r (no) s +14 r (icon) s +14 r (name) s +14 r (is) s +14 r (pro) s +-1 r (vided\),) s +13 r (and/or) s +14 r (the) s +14 r (clien) s +0 r 116 c +0 967 p (mac) s +0 r (hine.) s +71 1024 p (Preferences) s +12 r (can) s +13 r (designate) s +12 r (the) s +13 r (area) s +12 r (of) s +13 r (the) s +12 r (screen) s +13 r (to) s +12 r 98 c +1 r 101 c +13 r (used) s +13 r (for) s +12 r (icons) s +13 r (and) s +12 r (can) s +13 r (sp) s +1 r (ecify) s +12 r (the) s +13 r (la) s +0 r 121 c +-2 r (out) s +0 1080 p (of) s +15 r (the) s +15 r (icons) s +15 r (within) s +16 r (that) s +15 r (area.) s +71 1137 p (X11) s +16 r (allo) s +0 r (ws) s +15 r (clien) s +0 r (ts) s +15 r (to) s +16 r (indicate) s +16 r 97 c +17 r (clien) s +0 r 116 c +15 r (icon) s +16 r (windo) s +0 r 119 c +15 r (in) s +16 r (the) s +cmcsc10.329 @sf +17 r (WM) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +16 r (structure) s +16 r 124 c +17 r (that) s +16 r (is,) s +0 1193 p 97 c +19 r (windo) s +0 r 119 c +18 r (in) s +-1 r (to) s +18 r (whic) s +0 r 104 c +18 r (the) s +19 r (clien) s +0 r 116 c +18 r (can) s +19 r (dra) s +-1 r (w,) s +19 r (whic) s +0 r 104 c +18 r (acts) s +19 r (as) s +19 r (an) s +19 r (icon.) s +31 r (Clien) s +0 r 116 c +18 r (icon) s +19 r (windo) s +0 r (ws) s +18 r (are) s +19 r (not) s +0 1249 p (supp) s +1 r (orted) s +16 r (in) s +16 r (release) s +15 r (5.) s +22 r (Ho) s +0 r 119 c +-1 r (ev) s +-1 r (er,) s +15 r (if) s +15 r 97 c +16 r (clien) s +0 r 116 c +14 r (attempts) s +16 r (to) s +16 r (map) s +16 r 97 c +15 r (clien) s +0 r 116 c +15 r (icon,) s +16 r 97 c +16 r (default) s +15 r (icon,) s +16 r (or) s +16 r (one) s +0 1306 p (con) s +0 r (taining) s +14 r (an) s +15 r (icon) s +15 r (pixmap) s +15 r (\(if) s +15 r (pro) s +0 r (vided\)) s +14 r (is) s +16 r (used) s +15 r (instead.) s +71 1362 p (Icons) s +15 r (pro) s +0 r (vide) s +14 r 97 c +15 r (limited) s +16 r (input) s +15 r 99 c +0 r (hannel) s +14 r (to) s +15 r (the) s +16 r (clien) s +-1 r (t.) s +20 r (Key) s +15 r (presses) s +16 r (when) s +15 r (the) s +15 r (icon) s +16 r (windo) s +0 r 119 c +14 r (is) s +15 r (the) s +0 1419 p (fo) s +1 r (cus) s +18 r (ma) s +0 r 121 c +16 r (optionally) s +18 r 98 c +1 r 101 c +17 r (routed) s +18 r (to) s +18 r (the) s +17 r (clien) s +0 r (t.) s +26 r (In) s +18 r (addition,) s +18 r (mouse) s +17 r (button) s +18 r (com) s +0 r (binations) s +16 r (that) s +18 r (are) s +0 1475 p (not) s +17 r (in) s +0 r (terpreted) s +16 r 98 c +0 r 121 c +16 r (the) s +17 r (windo) s +0 r 119 c +16 r (manager) s +17 r (ma) s +0 r 121 c +16 r (also) s +17 r 98 c +1 r 101 c +17 r (routed) s +17 r (to) s +17 r (the) s +18 r (the) s +17 r (clien) s +-1 r (t,) s +17 r (and) s +17 r (ma) s +0 r 121 c +16 r 98 c +1 r 101 c +17 r (used) s +0 1532 p 98 c +0 r 121 c +14 r (clien) s +0 r (ts) s +14 r (that) s +15 r (wish) s +15 r (to) s +15 r (put) s +15 r (up) s +16 r (sp) s +1 r (ecial) s +15 r (icon) s +15 r (men) s +0 r (us) s +14 r (or) s +15 r (tak) s +0 r 101 c +14 r (other) s +15 r (actions.) s +71 1588 p 65 c +16 r (sp) s +1 r (ecial) s +16 r (icon,) s +16 r (the) s +16 r (Siemens) s +16 r 82 c +-3 r (TL) s +15 r (icon,) s +17 r (ma) s +-1 r 121 c +15 r 98 c +2 r 101 c +16 r (included) s +16 r (on) s +16 r (the) s +16 r (screen.) s +23 r (Through) s +16 r (it,) s +16 r (the) s +16 r (main) s +0 1645 p (windo) s +0 r 119 c +11 r (manager) s +12 r (men) s +-1 r 117 c +11 r (ma) s +0 r 121 c +11 r 98 c +1 r 101 c +12 r 112 c +1 r (opp) s +2 r (ed) s +12 r (up) s +11 r (\(though) s +12 r (it) s +12 r (ma) s +0 r 121 c +11 r (also) s +12 r 98 c +1 r 101 c +12 r 112 c +1 r (opp) s +2 r (ed) s +12 r (up) s +11 r (from) s +12 r (the) s +12 r (bac) s +0 r (kground) s +0 1701 p (or) s +15 r (as) s +15 r 97 c +15 r (submen) s +0 r 117 c +14 r (of) s +15 r (eac) s +0 r 104 c +14 r (windo) s +0 r 119 c +14 r (men) s +0 r (u\).) s +cmbx10.432 @sf +0 1844 p 50 c +69 r (Windo) s +-1 r 119 c +22 r (Sizes) s +23 r (and) s +23 r 80 c +-1 r (ositions) s +cmr10.329 @sf +0 1946 p (Windo) s +0 r (ws) s +13 r (ha) s +0 r 118 c +-1 r 101 c +13 r 97 c +cmbx10.329 @sf +14 r (user) s +17 r (minim) s +0 r (um) s +cmr10.329 @sf +13 r (size) s +14 r (and) s +15 r 97 c +cmbx10.329 @sf +14 r (user) s +17 r (maxim) s +-1 r (um) s +cmr10.329 @sf +14 r (size) s +14 r (whic) s +0 r 104 c +13 r (ma) s +0 r 121 c +14 r 98 c +1 r 101 c +14 r (set) s +15 r 98 c +-1 r 121 c +14 r (the) s +14 r (user.) s +0 2002 p 65 c +17 r (windo) s +0 r 119 c +16 r (will) s +18 r 98 c +1 r 101 c +17 r (closed) s +18 r (if) s +17 r (less) s +18 r (than) s +17 r (the) s +17 r (minim) s +0 r (um) s +16 r (space) s +18 r (is) s +17 r 97 c +0 r 118 c +-3 r (ailable) s +17 r (for) s +17 r (the) s +18 r (windo) s +-1 r (w,) s +17 r (and) s +18 r (those) s +0 2059 p (op) s +1 r (erations) s +12 r (whic) s +0 r 104 c +11 r (enlarge) s +13 r 97 c +12 r (windo) s +0 r 119 c +11 r (\(Enlarge,) s +13 r (Expand,) s +12 r (and) s +13 r (Fill\)) s +12 r (will) s +12 r (nev) s +0 r (er) s +11 r (enlarge) s +12 r 97 c +13 r (windo) s +-1 r 119 c +11 r (ab) s +2 r 111 c +-1 r 118 c +-1 r 101 c +0 2115 p (its) s +15 r (maxim) s +0 r (um) s +14 r (size.) s +71 2172 p (Windo) s +-1 r (ws) s +14 r (also) s +15 r (ha) s +-1 r 118 c +-1 r 101 c +14 r 97 c +cmbx10.329 @sf +14 r (clien) s +0 r 116 c +16 r (minim) s +-1 r (um) s +cmr10.329 @sf +14 r (and) s +15 r 97 c +cmbx10.329 @sf +14 r (clien) s +0 r 116 c +16 r (maxim) s +-1 r (um) s +cmr10.329 @sf +14 r (size) s +14 r 124 c +15 r (set) s +15 r 98 c +-1 r 121 c +14 r 97 c +15 r (clien) s +-1 r 116 c +14 r (using) s +0 2228 p (the) s +20 r (X11) s +21 r (standard) s +20 r (prop) s +1 r (ert) s +0 r 121 c +cmcsc10.329 @sf +19 r (WM) s +3 r 15 2 ru +15 r (NORMAL) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +0 r 46 c +20 r (The) s +21 r (clien) s +-1 r 116 c +20 r (minim) s +-1 r (um) s +20 r (and) s +20 r (maxim) s +0 r (um) s +19 r (are) s +0 2284 p (optionally) s +20 r (enforced.) s +33 r (If) s +19 r (they) s +20 r (are) s +19 r (enforced,) s +21 r (the) s +19 r (user) s +20 r (minim) s +0 r (um) s +18 r (ma) s +0 r 121 c +18 r (not) s +20 r 98 c +1 r 101 c +20 r (set) s +19 r (smaller) s +20 r (than) s +19 r (the) s +0 2341 p (clien) s +0 r 116 c +14 r (minim) s +0 r (um,) s +14 r (and) s +15 r (the) s +15 r (user) s +15 r (maxim) s +0 r (um) s +14 r (ma) s +0 r 121 c +14 r (not) s +15 r 98 c +1 r 101 c +16 r (set) s +15 r (larger) s +15 r (than) s +15 r (the) s +15 r (clien) s +0 r 116 c +14 r (maxim) s +0 r (um.) s +71 2397 p (Windo) s +-1 r (ws) s +20 r (ha) s +0 r 118 c +-1 r 101 c +20 r 97 c +21 r 97 c +cmbx10.329 @sf +21 r (desired) s +24 r (size) s +cmr10.329 @sf +0 r 46 c +38 r (Whenev) s +0 r (er) s +20 r 97 c +21 r (windo) s +-1 r 119 c +20 r (is) s +21 r (explicitly) s +21 r (resized) s +21 r (\(b) s +0 r 121 c +20 r (either) s +21 r (the) s +0 2454 p (user) s +18 r (or) s +19 r (the) s +18 r (clien) s +0 r (t\),) s +18 r (its) s +18 r (desired) s +18 r (size) s +19 r (is) s +18 r (set) s +18 r (to) s +19 r (this) s +18 r (size.) s +29 r (Whenev) s +0 r (er) s +18 r 112 c +1 r (ossible,) s +19 r (the) s +18 r (windo) s +0 r 119 c +17 r (manager) s +0 2510 p (tries) s +19 r (to) s +18 r (ensure) s +19 r (that) s +19 r 97 c +19 r (windo) s +-1 r 119 c +18 r (is) s +19 r (at) s +18 r (least) s +19 r (as) s +19 r (large) s +18 r (as) s +19 r (its) s +19 r (desired) s +19 r (size,) s +19 r (enlarging) s +19 r 97 c +19 r (windo) s +-1 r 119 c +18 r (to) s +19 r (its) s +0 2567 p (desired) s +19 r (size) s +19 r (when) s +19 r (space) s +19 r 98 c +1 r (ecomes) s +20 r 97 c +-1 r 118 c +-2 r (ailable.) s +31 r (The) s +19 r (desired) s +19 r (size) s +19 r (ma) s +0 r 121 c +18 r (also) s +19 r 98 c +1 r 101 c +19 r (set) s +19 r 98 c +0 r 121 c +18 r 97 c +19 r (clien) s +0 r 116 c +18 r (using) s +cmcsc10.329 @sf +0 2623 p (WM) s +3 r 15 2 ru +15 r (NORMAL) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +0 r 46 c +949 2828 p 52 c +@eop +3 @bop0 +cmbx10.329 @sf +[ 24 29 -4 0 26.136] 49 @dc +cmr10.329 @sf +[<0006000000060000000600000006000000060000000600000006000000060000000600000006000000060000000600000006 + 00000006000000060000FFFFFFF0FFFFFFF00006000000060000000600000006000000060000000600000006000000060000 + 00060000000600000006000000060000000600000006000000060000> 32 32 -3 5 35.353] 43 @dc +3 @bop1 +cmr10.329 @sf +56 195 p (8.) s +cmbx10.329 @sf +22 r (Automatic) s +26 r (Strategies) s +cmr10.329 @sf +0 r 58 c +34 r (Ho) s +-1 r 119 c +21 r (the) s +22 r (windo) s +0 r 119 c +21 r (manager) s +22 r (automatically) s +22 r (adjusts) s +22 r (the) s +22 r (size) s +22 r (and) s +114 252 p 112 c +1 r (osition) s +18 r (of) s +18 r (windo) s +-1 r (ws) s +17 r (to) s +18 r 107 c +0 r (eep) s +16 r (the) s +18 r (desktop) s +18 r (tiled) s +18 r (and) s +18 r (balance) s +18 r (comp) s +1 r (eting) s +18 r (demands) s +17 r (for) s +18 r (screen) s +114 308 p (space.) s +56 402 p (9.) s +cmbx10.329 @sf +22 r (Standard) s +19 r (X11) s +18 r (Prop) s +1 r (erties) s +cmr10.329 @sf +0 r 58 c +22 r (Ho) s +0 r 119 c +15 r (standard) s +15 r (X11) s +16 r (prop) s +2 r (erties) s +16 r (are) s +15 r (used) s +16 r 98 c +0 r 121 c +15 r (the) s +16 r (windo) s +0 r 119 c +14 r (man-) s +114 458 p (ager.) s +33 552 p (10.) s +cmbx10.329 @sf +23 r (Clien) s +-1 r 116 c +16 r (Placemen) s +-1 r 116 c +cmr10.329 @sf +0 r 58 c +19 r (Actions) s +15 r (that) s +15 r 97 c +14 r (clien) s +0 r 116 c +14 r (can) s +14 r (tak) s +0 r 101 c +14 r (whic) s +-1 r 104 c +14 r (a\013ect) s +15 r (the) s +14 r (placemen) s +0 r 116 c +14 r (of) s +14 r (windo) s +0 r (ws.) s +33 646 p (11.) s +cmbx10.329 @sf +23 r (Options) s +cmr10.329 @sf +0 r 58 c +20 r (Describ) s +1 r (es) s +15 r (the) s +15 r (options) s +15 r (and) s +16 r (their) s +15 r (default) s +15 r 118 c +-2 r (alues.) s +71 752 p (Both) s +17 r 97 c +18 r (tutorial) s +18 r (man) s +0 r (ual,) s +17 r (and) s +18 r 97 c +18 r (separate) s +18 r 92 c +cmbx10.329 @sf +0 r (Quic) s +0 r 107 c +19 r (Reference) s +21 r 80 c +-1 r (age) s +cmr10.329 @sf +0 r 34 c +17 r (are) s +18 r 97 c +0 r 118 c +-3 r (ailable) s +17 r (as) s +18 r (part) s +18 r (of) s +0 809 p (the) s +15 r (distribution.) s +71 865 p (In) s +15 r (addition,) s +15 r (an) s +15 r (18) s +15 r (min) s +-1 r (ute) s +14 r (videotap) s +1 r (ed) s +15 r (demonstration) s +15 r (of) s +15 r (the) s +15 r (system) s +15 r (\(previously) s +15 r (sho) s +0 r (wn) s +14 r (as) s +15 r (part) s +0 922 p (of) s +16 r (the) s +17 r (video) s +16 r (program) s +17 r (at) s +16 r 98 c +1 r (oth) s +17 r (CHI+GI) s +16 r ('87) s +16 r (in) s +17 r 84 c +-3 r (oron) s +-1 r (to) s +15 r (and) s +16 r (In) s +0 r (teract) s +16 r ('87) s +16 r (in) s +16 r (Stuttgart\)) s +17 r (is) s +16 r 97 c +0 r 118 c +-3 r (ailable) s +0 978 p (for) s +15 r (loan) s +15 r 98 c +0 r 121 c +14 r (writing) s +15 r (to) s +114 1072 p (Soft) s +-1 r 119 c +-1 r (are) s +14 r 84 c +-3 r (ec) s +-1 r (hnology) s +14 r (Departmen) s +0 r 116 c +114 1128 p (Siemens) s +15 r 82 c +-3 r (TL) s +114 1185 p (105) s +15 r (College) s +15 r (Rd) s +15 r (East,) s +114 1241 p (Princeton) s +15 r (NJ,) s +15 r (08540.) s +cmbx10.432 @sf +0 1384 p 49 c +69 r (Windo) s +-1 r (ws) s +22 r (and) s +23 r (Icons) s +cmbx10.360 @sf +0 1487 p (1.1) s +57 r (Windo) s +0 r (ws) s +cmr10.329 @sf +0 1573 p (Windo) s +0 r (ws) s +15 r (created) s +16 r 98 c +-1 r 121 c +15 r (an) s +16 r (X11) s +16 r (clien) s +0 r 116 c +15 r (are) s +16 r (reparen) s +0 r (ted) s +15 r (within) s +16 r 97 c +16 r (larger) s +16 r (windo) s +-1 r 119 c +15 r 111 c +0 r (wned) s +15 r 98 c +0 r 121 c +15 r (the) s +16 r (windo) s +0 r 119 c +0 1630 p (manager.) s +41 r (In) s +22 r (addition) s +22 r (to) s +22 r (the) s +22 r (clien) s +-1 r (t's) s +21 r (windo) s +0 r (w,) s +23 r (the) s +22 r (larger) s +22 r (windo) s +-1 r 119 c +21 r (is) s +cmti10.329 @sf +22 r (de) s +-1 r 99 c +-2 r (or) s +-3 r (ate) s +-2 r 100 c +cmr10.329 @sf +21 r 98 c +0 r 121 c +21 r (the) s +22 r (windo) s +0 r 119 c +0 1686 p (manager) s +15 r (with) s +15 r 97 c +15 r 98 c +2 r (order,) s +15 r 97 c +15 r (header,) s +15 r (and) s +15 r 116 c +0 r 119 c +-1 r 111 c +14 r (\\gadgets".) s +71 1743 p (The) s +18 r 98 c +1 r (order) s +19 r (is) s +19 r (used) s +18 r (primarily) s +19 r (for) s +18 r (resizing) s +19 r 124 c +18 r (the) s +19 r (sides) s +18 r (for) s +19 r (one-dimensional) s +19 r (resizing,) s +19 r (and) s +19 r (the) s +0 1799 p (corners) s +19 r (for) s +20 r 116 c +-1 r 119 c +-1 r (o-dimensional) s +18 r (resizing.) s +33 r 65 c +19 r (windo) s +0 r (w's) s +18 r 98 c +2 r (order) s +19 r (is) s +19 r (sho) s +0 r (wn) s +18 r (in) s +20 r (rev) s +-1 r (erse) s +19 r (image) s +19 r (when) s +19 r (that) s +0 1856 p (windo) s +0 r 119 c +14 r (is) s +15 r (the) s +cmbx10.329 @sf +16 r (fo) s +1 r (cus) s +cmr10.329 @sf +15 r 124 c +16 r (that) s +15 r (is,) s +15 r (when) s +16 r 97 c +15 r 107 c +0 r (ey) s +14 r (press) s +15 r 119 c +0 r (ould) s +14 r 98 c +1 r 101 c +16 r (transmitted) s +15 r (to) s +15 r (the) s +16 r (clien) s +-1 r 116 c +15 r (whic) s +-1 r 104 c +15 r 111 c +-1 r (wns) s +0 1912 p (the) s +15 r (windo) s +0 r (w.) s +19 r (The) s +15 r 98 c +2 r (order) s +15 r (is) s +15 r (also) s +15 r (used) s +15 r (for) s +15 r (initiating) s +15 r (constrained) s +16 r (windo) s +-1 r 119 c +14 r (mo) s +0 r 118 c +-1 r (es.) s +71 1968 p (The) s +15 r 98 c +2 r (order) s +15 r (describ) s +2 r (ed) s +16 r (is) s +15 r (pro) s +0 r (vided) s +15 r 98 c +0 r 121 c +15 r (the) s +15 r (windo) s +0 r 119 c +15 r (manager,) s +16 r (not) s +16 r (the) s +16 r (one) s +15 r (that) s +16 r (X11) s +16 r (supp) s +1 r (orts) s +16 r (as) s +0 2025 p (part) s +14 r (of) s +14 r (the) s +14 r (basic) s +14 r (windo) s +0 r 119 c +13 r (structure.) s +20 r (In) s +14 r (fact) s +14 r (the) s +14 r (windo) s +-1 r 119 c +13 r (manager) s +14 r (hides) s +14 r (the) s +15 r (clien) s +-1 r (t's) s +13 r 98 c +2 r (order) s +14 r (while) s +14 r (it) s +0 2081 p (is) s +15 r (running.) s +71 2138 p (The) s +18 r (header) s +19 r (can) s +19 r (displa) s +0 r 121 c +18 r (the) s +18 r (windo) s +0 r 119 c +18 r (class,) s +20 r (the) s +18 r (windo) s +0 r 119 c +18 r (name,) s +20 r (and/or) s +18 r (the) s +19 r (clien) s +0 r 116 c +18 r (mac) s +0 r (hine) s +17 r (on) s +0 2194 p (whic) s +0 r 104 c +13 r (the) s +15 r (application) s +15 r (is) s +15 r (running.) s +20 r (It) s +14 r (is) s +15 r (also) s +15 r (used) s +14 r (for) s +15 r 112 c +1 r (opping) s +15 r (up) s +15 r 97 c +14 r (men) s +0 r 117 c +14 r (of) s +15 r (windo) s +-1 r 119 c +14 r (op) s +1 r (erations.) s +20 r 65 c +0 2251 p (windo) s +0 r (w's) s +14 r (header) s +15 r (is) s +15 r (sho) s +0 r (wn) s +14 r (in) s +15 r (rev) s +0 r (erse) s +14 r (image) s +16 r (when) s +15 r (that) s +15 r (windo) s +0 r 119 c +14 r (is) s +15 r (the) s +cmbx10.329 @sf +15 r (listener) s +cmr10.329 @sf +16 r 124 c +15 r (that) s +15 r (is,) s +15 r (when) s +15 r (it) s +0 2307 p (is) s +15 r (the) s +15 r (last) s +15 r (windo) s +0 r 119 c +14 r (whic) s +0 r 104 c +14 r (has) s +15 r (receiv) s +0 r (ed) s +14 r (input.) s +71 2364 p 84 c +-3 r 111 c +15 r (the) s +16 r (left) s +17 r (of) s +16 r (the) s +16 r (header) s +16 r (is) s +17 r (the) s +cmbx10.329 @sf +16 r (zo) s +1 r (om) s +19 r (gadget) s +cmr10.329 @sf +16 r 124 c +17 r (it) s +16 r (is) s +16 r (used) s +16 r (for) s +17 r (\\zo) s +1 r (oming") s +16 r (and) s +16 r (\\unzo) s +2 r (oming") s +0 2420 p (windo) s +0 r (ws,) s +10 r (and) s +10 r (for) s +10 r (enlarging) s +11 r 97 c +10 r (windo) s +0 r 119 c +9 r (to) s +10 r (its) s +10 r (desired) s +11 r (or) s +10 r (maxim) s +0 r (um) s +9 r (size.) s +18 r (When) s +11 r 97 c +10 r (windo) s +0 r 119 c +9 r (is) s +10 r (unzo) s +1 r (omed,) s +0 2477 p (the) s +15 r (gadget) s +15 r (displa) s +0 r (ys) s +14 r 97 c +15 r (\\closed) s +15 r 98 c +2 r 111 c +-1 r (x",) s +15 r (and) s +15 r (when) s +15 r (it) s +15 r (is) s +15 r (zo) s +2 r (omed,) s +15 r (it) s +15 r (displa) s +0 r (ys) s +14 r (an) s +15 r (\\op) s +1 r (en) s +15 r 98 c +2 r 111 c +-1 r (x".) s +71 2533 p (It) s +17 r (is) s +18 r 112 c +1 r (ossible) s +18 r (to) s +18 r (tie) s +18 r (listener) s +17 r (to) s +18 r (zo) s +1 r (om) s +18 r 124 c +18 r (that) s +18 r (is,) s +18 r (whenev) s +0 r (er) s +17 r 97 c +17 r (windo) s +0 r 119 c +17 r 98 c +1 r (ecomes) s +18 r (the) s +18 r (listener,) s +18 r (it) s +0 2589 p (is) s +20 r (automatically) s +20 r (zo) s +1 r (omed,) s +21 r (and) s +20 r (when) s +20 r (it) s +20 r (is) s +20 r (no) s +20 r (longer) s +20 r (the) s +20 r (listener,) s +22 r (it) s +20 r (is) s +20 r (automatically) s +20 r (unzo) s +1 r (omed.) s +0 2646 p (Windo) s +0 r (ws) s +14 r (so) s +15 r (tied) s +15 r (ha) s +0 r 118 c +-1 r 101 c +14 r 97 c +15 r (horizon) s +0 r (tal) s +14 r (line) s +15 r (through) s +15 r (their) s +15 r (zo) s +2 r (om) s +15 r (gadget.) s +949 2828 p 51 c +@eop +2 @bop0 +2 @bop1 +cmsy10.329 @sf +68 195 p 15 c +cmr10.329 @sf +23 r (The) s +17 r (user) s +17 r (can) s +16 r (sa) s +0 r 118 c +-1 r 101 c +16 r (and) s +17 r (restore) s +16 r (windo) s +0 r 119 c +16 r (la) s +0 r 121 c +-2 r (outs.) s +25 r (That) s +16 r (is,) s +18 r 82 c +-3 r (TL) s +16 r (is) s +17 r 97 c +16 r (session) s +17 r (manager) s +17 r (as) s +17 r 119 c +0 r (ell) s +114 252 p (as) s +15 r 97 c +15 r (windo) s +0 r 119 c +14 r (manager.) s +cmsy10.329 @sf +68 345 p 15 c +cmr10.329 @sf +23 r (Both) s +15 r (clic) s +0 r (k-to-t) s +-1 r (yp) s +0 r 101 c +15 r (and) s +15 r (real-estate-driv) s +0 r (en) s +14 r (fo) s +1 r (cus) s +15 r (mo) s +2 r (dels) s +15 r (are) s +15 r 97 c +0 r 118 c +-3 r (ailable.) s +cmsy10.329 @sf +68 439 p 15 c +cmr10.329 @sf +23 r (The) s +15 r (user) s +15 r (can) s +15 r (sp) s +2 r (ecify) s +15 r 97 c +15 r (separate) s +15 r (icon) s +15 r (area) s +15 r (and) s +16 r (con) s +-1 r (trol) s +14 r (icon) s +16 r (la) s +-1 r 121 c +-1 r (out) s +14 r (within) s +15 r (it.) s +cmsy10.329 @sf +68 533 p 15 c +cmr10.329 @sf +23 r (The) s +16 r (wm) s +16 r (will) s +16 r (optionally) s +16 r (write) s +15 r (application-sp) s +2 r (eci\014c) s +16 r (information) s +16 r 111 c +-1 r 118 c +-1 r (er) s +15 r (sp) s +1 r (eci\014ed) s +16 r (regions) s +16 r (of) s +16 r (pix-) s +114 589 p (map) s +15 r (icons.) s +cmsy10.329 @sf +68 683 p 15 c +cmr10.329 @sf +23 r (The) s +16 r (user) s +17 r (can) s +17 r 111 c +-1 r 118 c +-1 r (erride) s +16 r (the) s +16 r (clien) s +0 r (t's) s +16 r (pixmap) s +16 r (icon.) s +25 r 65 c +16 r 118 c +-1 r (ariet) s +-2 r 121 c +16 r (of) s +17 r (snazzy) s +16 r (icons) s +17 r (are) s +16 r (pro) s +0 r (vided) s +16 r (for) s +114 740 p (the) s +15 r (usual) s +15 r (applications.) s +cmsy10.329 @sf +68 834 p 15 c +cmr10.329 @sf +23 r (Users) s +16 r (can) s +16 r 112 c +1 r (erform) s +16 r (group-iconi\014cation) s +16 r 124 c +16 r (displa) s +-1 r 121 c +15 r 97 c +16 r (single) s +16 r (icon) s +16 r (for) s +16 r 97 c +16 r (group) s +16 r (of) s +16 r (top-lev) s +-1 r (el) s +15 r (win-) s +114 890 p (do) s +-1 r (ws) s +15 r (\(for) s +15 r (clien) s +-1 r (ts) s +15 r (that) s +15 r (de\014ne) s +15 r (windo) s +0 r 119 c +14 r (groups\).) s +cmsy10.329 @sf +68 984 p 15 c +cmr10.329 @sf +23 r (Supp) s +1 r (ort) s +15 r (is) s +15 r (pro) s +0 r (vided) s +14 r (for) s +16 r 98 c +1 r (oth) s +15 r (3-button) s +15 r (and) s +15 r (1-button) s +15 r (mice.) s +cmsy10.329 @sf +68 1078 p 15 c +cmr10.329 @sf +23 r (Using) s +17 r (preference) s +18 r (\014les,) s +17 r (users) s +18 r (can) s +17 r (organize) s +17 r (applications) s +18 r (in) s +17 r 97 c +17 r (class) s +18 r (hierarc) s +-1 r 104 c +-1 r 121 c +-4 r 44 c +17 r (for) s +17 r (purp) s +2 r (oses) s +17 r (of) s +114 1134 p (inheriting) s +15 r (option) s +15 r (settings.) s +71 1240 p (This) s +18 r (is) s +18 r (the) s +18 r (\014rst) s +18 r (tiled) s +18 r (windo) s +0 r 119 c +17 r (manager) s +18 r (dev) s +0 r (elop) s +0 r (ed) s +18 r (that) s +18 r (supp) s +2 r (orts) s +18 r (arbitrary) s +18 r (la) s +0 r 121 c +-2 r (outs,) s +18 r (and) s +18 r (is) s +19 r (as) s +0 1297 p 109 c +0 r (uc) s +-2 r 104 c +19 r 97 c +19 r (researc) s +0 r 104 c +18 r 118 c +0 r (ehicle) s +18 r (as) s +20 r 97 c +19 r (pro) s +1 r (duction-qualit) s +0 r 121 c +18 r (windo) s +0 r 119 c +19 r (manager.) s +32 r (Consequen) s +0 r (tly) s +-4 r 44 c +20 r (there) s +19 r (are) s +19 r (an) s +0 1353 p (extremely) s +19 r (large) s +20 r 110 c +0 r (um) s +-2 r 98 c +1 r (er) s +19 r (of) s +19 r (options) s +20 r (that) s +19 r (ma) s +0 r 121 c +18 r 98 c +2 r 101 c +19 r (set) s +19 r 98 c +0 r 121 c +19 r (the) s +19 r (user) s +19 r (\(although) s +20 r (naiv) s +0 r 101 c +18 r (users) s +19 r (can) s +20 r (use) s +0 1410 p (the) s +18 r (default) s +18 r (option) s +18 r (settings,) s +19 r (or) s +18 r (one) s +19 r (of) s +18 r (the) s +18 r (preference) s +18 r (\014les) s +18 r (distributed) s +18 r (with) s +19 r (the) s +18 r (system\).) s +29 r 87 c +-3 r 101 c +17 r (are) s +0 1466 p (particularly) s +15 r (in) s +0 r (terested) s +14 r (in) s +15 r (users') s +15 r (exp) s +2 r (eriences) s +15 r (with) s +15 r 118 c +-2 r (arious) s +15 r (option) s +15 r (settings.) s +71 1523 p (The) s +15 r (man) s +-1 r (ual) s +15 r (is) s +15 r (organized) s +15 r (as) s +15 r (follo) s +0 r (ws:) s +56 1629 p (1.) s +cmbx10.329 @sf +22 r (Windo) s +0 r (ws) s +18 r (and) s +19 r (Icons) s +cmr10.329 @sf +0 r 58 c +22 r (This) s +17 r (describ) s +1 r (es) s +16 r (ho) s +0 r 119 c +16 r (the) s +16 r (windo) s +0 r 119 c +15 r (manager) s +17 r (decorates) s +16 r (clien) s +0 r 116 c +15 r (windo) s +0 r (ws) s +114 1685 p (with) s +15 r 97 c +15 r (header,) s +16 r 98 c +1 r (orders) s +16 r (and) s +15 r (gadgets,) s +16 r (and) s +15 r (ho) s +0 r 119 c +14 r (they) s +16 r (are) s +15 r (used.) s +21 r (It) s +15 r (also) s +16 r (describ) s +1 r (es) s +16 r (the) s +15 r (con) s +0 r (ten) s +-2 r (ts,) s +114 1742 p (use,) s +15 r (and) s +15 r (placemen) s +0 r 116 c +14 r (of) s +15 r (icons.) s +56 1836 p (2.) s +cmbx10.329 @sf +22 r (Windo) s +0 r 119 c +14 r (Sizes) s +15 r (and) s +15 r 80 c +0 r (ositions) s +cmr10.329 @sf +0 r 58 c +18 r (Describ) s +1 r (es) s +13 r (minim) s +0 r (um,) s +12 r (maxim) s +0 r (um,) s +13 r (and) s +13 r (desired) s +13 r (sizes) s +13 r (for) s +13 r 98 c +2 r (oth) s +114 1892 p (normal) s +15 r (and) s +15 r (zo) s +1 r (omed) s +15 r (windo) s +0 r (ws,) s +14 r (and) s +15 r (desired) s +16 r 112 c +1 r (ositions.) s +56 1986 p (3.) s +cmbx10.329 @sf +22 r (The) s +18 r 80 c +0 r (oin) s +-2 r (ter) s +17 r (In) s +-1 r (terface) s +cmr10.329 @sf +0 r 58 c +20 r (Describ) s +2 r (es) s +15 r 112 c +1 r (oin) s +0 r (ter) s +15 r (related) s +15 r (asp) s +1 r (ects) s +16 r (of) s +15 r (the) s +16 r (user) s +15 r (in) s +0 r (terface,) s +14 r (including) s +114 2042 p (the) s +15 r (di\013erence) s +15 r 98 c +1 r (et) s +0 r 119 c +-1 r (een) s +14 r (the) s +15 r (fo) s +1 r (cus) s +15 r (and) s +16 r (the) s +15 r (listener) s +15 r (windo) s +0 r (w.) s +56 2136 p (4.) s +cmbx10.329 @sf +22 r (Manager) s +17 r (Men) s +-1 r 117 c +cmr10.329 @sf +0 r 58 c +19 r (Describ) s +1 r (es) s +15 r (the) s +14 r (global) s +15 r (op) s +1 r (erations) s +14 r (that) s +15 r (can) s +14 r 98 c +1 r 101 c +15 r 112 c +1 r (erformed) s +14 r (from) s +15 r (the) s +14 r (windo) s +0 r 119 c +114 2193 p (manager) s +15 r (men) s +0 r (u.) s +56 2286 p (5.) s +cmbx10.329 @sf +22 r (Windo) s +0 r 119 c +13 r (Men) s +0 r 117 c +cmr10.329 @sf +0 r 58 c +18 r (Describ) s +1 r (es) s +13 r (the) s +12 r (op) s +2 r (erations) s +12 r (that) s +13 r (can) s +12 r 98 c +2 r 101 c +12 r 112 c +1 r (erformed) s +13 r (on) s +13 r (an) s +12 r (individual) s +13 r (windo) s +0 r (w.) s +56 2380 p (6.) s +cmbx10.329 @sf +22 r (Icon) s +18 r (Men) s +-1 r 117 c +cmr10.329 @sf +0 r 58 c +19 r (Describ) s +2 r (es) s +15 r (the) s +15 r (op) s +1 r (erations) s +15 r (that) s +16 r (can) s +15 r 98 c +1 r 101 c +15 r 112 c +1 r (erformed) s +16 r (on) s +15 r (an) s +15 r (icon.) s +56 2474 p (7.) s +cmbx10.329 @sf +22 r (Customization) s +13 r (and) s +14 r (Startup) s +cmr10.329 @sf +0 r 58 c +18 r (Explains) s +11 r (ho) s +0 r 119 c +11 r (to) s +11 r (customize) s +12 r (the) s +11 r (windo) s +0 r 119 c +10 r (manager) s +12 r (via) s +11 r 118 c +-1 r (arious) s +114 2530 p (\014les) s +17 r (sp) s +1 r (ecifying) s +18 r (to) s +1 r (ols,) s +19 r (preference) s +17 r (\014les) s +18 r (\(whic) s +-1 r 104 c +17 r (set) s +18 r (options) s +17 r (globally) s +18 r (or) s +17 r (on) s +18 r 97 c +18 r 112 c +1 r (er) s +17 r (windo) s +0 r (w-class) s +114 2587 p (basis\),) s +15 r (and) s +15 r (startup) s +15 r (and) s +15 r (la) s +0 r 121 c +-1 r (out) s +14 r (\014les.) s +20 r (Indicates) s +15 r (ho) s +0 r 119 c +14 r (these) s +15 r (are) s +15 r (used) s +16 r (on) s +15 r (startup.) s +949 2828 p 50 c +@eop +1 @bop0 +1 @bop1 +cmr10.329 @sf +71 195 p (Except) s +18 r (for) s +19 r (men) s +0 r (us) s +18 r (and) s +18 r (transien) s +0 r 116 c +18 r 112 c +1 r (op-up) s +19 r (windo) s +0 r (ws,) s +18 r 97 c +19 r (tiled) s +19 r (windo) s +0 r 119 c +17 r (manager) s +19 r (do) s +1 r (es) s +19 r (not) s +19 r 112 c +1 r (ermit) s +0 252 p (windo) s +0 r (ws) s +14 r (to) s +15 r 111 c +0 r 118 c +-1 r (erlap.) s +71 308 p (When) s +11 r (an) s +12 r (attempt) s +12 r (is) s +12 r (made) s +11 r (to) s +12 r (op) s +1 r (en,) s +13 r (mo) s +0 r 118 c +-2 r (e,) s +12 r (or) s +12 r (resize) s +11 r 97 c +12 r (windo) s +0 r (w,) s +11 r (other) s +12 r (windo) s +0 r (ws) s +11 r (ma) s +-1 r 121 c +11 r 98 c +1 r 101 c +12 r 111 c +1 r (ccup) s +0 r (ying) s +0 364 p (the) s +15 r (space) s +15 r (needed.) s +21 r (This) s +15 r (space) s +15 r (con\015ict) s +15 r (is) s +15 r (resolv) s +0 r (ed) s +14 r 98 c +0 r 121 c +cmsy10.329 @sf +68 458 p 15 c +cmr10.329 @sf +23 r (Shrinking,) s +15 r (closing,) s +15 r (or) s +15 r (mo) s +0 r (ving) s +14 r (the) s +15 r (windo) s +0 r (ws) s +14 r (in) s +15 r (the) s +16 r 119 c +-1 r 97 c +-1 r 121 c +-4 r 44 c +14 r (or) s +cmsy10.329 @sf +68 552 p 15 c +cmr10.329 @sf +23 r (Op) s +1 r (ening,) s +15 r (mo) s +0 r (ving,) s +14 r (or) s +15 r (resizing) s +16 r (the) s +15 r (windo) s +-1 r 119 c +15 r (at) s +15 r 97 c +15 r (di\013eren) s +0 r 116 c +14 r (size) s +15 r (or) s +15 r 112 c +1 r (osition) s +15 r (than) s +16 r (sp) s +1 r (eci\014ed,) s +15 r (or) s +cmsy10.329 @sf +68 646 p 15 c +cmr10.329 @sf +23 r (Refusing) s +15 r (to) s +15 r 112 c +1 r (erform) s +16 r (the) s +15 r (op) s +1 r (eration.) s +71 740 p (Suc) s +-1 r 104 c +cmbx10.329 @sf +14 r (side) s +16 r (e\013ects) s +cmr10.329 @sf +15 r (are) s +14 r 97 c +15 r (ma) s +2 r (jor) s +15 r (feature) s +14 r (distinguishing) s +15 r (our) s +14 r (tiled) s +15 r (windo) s +0 r 119 c +13 r (manager) s +15 r (from) s +14 r (existing) s +0 796 p 111 c +0 r 118 c +-2 r (erlapping) s +15 r (windo) s +-1 r 119 c +15 r (managers.) s +71 853 p (The) s +21 r (Siemens) s +21 r 82 c +-3 r (TL) s +20 r (Tiled) s +22 r (Windo) s +-1 r 119 c +20 r (Manager) s +22 r (supp) s +1 r (orts) s +21 r (an) s +21 r (arbitrary) s +22 r (la) s +-1 r 121 c +-1 r (out) s +20 r (of) s +21 r (tiled) s +22 r (windo) s +-1 r (ws.) s +0 909 p (Windo) s +0 r (ws) s +14 r (ma) s +0 r 121 c +14 r 98 c +1 r 101 c +15 r (placed) s +15 r (an) s +0 r (ywhere;) s +14 r (they) s +15 r (do) s +16 r (not) s +15 r (necessarily) s +15 r (line) s +15 r (up) s +15 r (in) s +15 r (columns.) s +71 966 p (The) s +16 r (windo) s +0 r 119 c +16 r (manager) s +17 r (do) s +1 r (es) s +cmti10.329 @sf +17 r (not) s +cmr10.329 @sf +17 r (attempt) s +17 r (to) s +17 r (\014ll) s +17 r (the) s +17 r (screen.) s +25 r (Windo) s +0 r (ws) s +16 r (ha) s +-1 r 118 c +-1 r 101 c +16 r 97 c +17 r (desired) s +17 r (size,) s +17 r (and) s +0 1022 p (are) s +18 r (not) s +18 r (made) s +18 r (larger) s +18 r (than) s +18 r (this) s +18 r (unless) s +17 r (requested) s +18 r 98 c +0 r 121 c +17 r (the) s +18 r (user.) s +28 r (Consequen) s +0 r (tly) s +-4 r 44 c +18 r (there) s +18 r (ma) s +0 r 121 c +17 r 98 c +1 r 101 c +18 r (blank) s +0 1078 p (space) s +15 r (on) s +15 r (the) s +15 r (screen.) s +71 1135 p (While) s +15 r 111 c +0 r 118 c +-1 r (erlapping) s +15 r (windo) s +-1 r (ws) s +15 r (are) s +16 r (more) s +16 r (familiar,) s +16 r (the) s +16 r (Siemens) s +16 r 82 c +-3 r (TL) s +15 r (Tiled) s +16 r (Windo) s +-1 r 119 c +15 r (Manager) s +16 r (has) s +0 1191 p (some) s +15 r (imp) s +1 r (ortan) s +0 r 116 c +14 r 98 c +2 r (ene\014ts:) s +cmsy10.329 @sf +68 1298 p 15 c +cmr10.329 @sf +23 r (It) s +15 r 107 c +0 r (eeps) s +14 r (the) s +15 r (desktop) s +15 r 119 c +0 r (ell) s +14 r (organized) s +15 r 124 c +15 r (the) s +16 r (desktop) s +15 r (do) s +1 r (es) s +15 r (not) s +15 r (lo) s +2 r (ok) s +15 r (messy) s +-3 r 46 c +cmsy10.329 @sf +68 1391 p 15 c +cmr10.329 @sf +23 r (Windo) s +0 r (ws) s +13 r (are) s +14 r (alw) s +0 r 97 c +-2 r (ys) s +13 r (easy) s +15 r (to) s +14 r (\014nd.) s +20 r (Windo) s +-1 r (ws) s +13 r (cannot) s +15 r (get) s +14 r (lost) s +14 r (underneath) s +14 r (other) s +14 r (windo) s +0 r (ws,) s +13 r (and) s +114 1448 p (windo) s +-1 r 119 c +15 r (headers) s +15 r (are) s +15 r (not) s +15 r (obscured) s +15 r 98 c +0 r 121 c +14 r (other) s +15 r (windo) s +0 r (ws.) s +cmsy10.329 @sf +68 1542 p 15 c +cmr10.329 @sf +23 r (Imp) s +1 r (ortan) s +0 r 116 c +14 r (information) s +16 r (is) s +15 r (nev) s +0 r (er) s +15 r (obscured) s +15 r 98 c +0 r 121 c +14 r (other) s +16 r (windo) s +0 r (ws.) s +20 r (Obscured) s +15 r (windo) s +0 r (ws) s +15 r (are) s +15 r (shrunk) s +114 1598 p (instead,) s +24 r (and) s +22 r (the) s +22 r (application) s +22 r (gets) s +22 r 97 c +23 r 99 c +-1 r (hance) s +22 r (to) s +22 r (reformat) s +22 r (information) s +22 r (to) s +23 r (mak) s +-1 r 101 c +21 r (use) s +23 r (of) s +22 r (the) s +114 1655 p 97 c +-1 r 118 c +-2 r (ailable) s +14 r (space.) s +cmsy10.329 @sf +68 1748 p 15 c +cmr10.329 @sf +23 r (Screen) s +23 r (space) s +22 r (is) s +23 r (not) s +23 r 119 c +-1 r (asted) s +22 r 98 c +0 r 121 c +21 r (partially) s +23 r (visible) s +23 r (sliv) s +-1 r (ers) s +22 r (that) s +23 r (con) s +0 r (tain) s +21 r (useless) s +23 r (information.) s +114 1805 p (Windo) s +-1 r (ws) s +17 r (can) s +18 r (ha) s +-1 r 118 c +-1 r 101 c +17 r (their) s +18 r (minim) s +-1 r (um) s +17 r (size) s +18 r (set) s +17 r (to) s +18 r (ensure) s +18 r (that) s +17 r (all) s +18 r (essen) s +0 r (tial) s +17 r (information) s +17 r (can) s +18 r 98 c +1 r 101 c +114 1861 p (presen) s +-1 r (ted.) s +18 r (If) s +12 r (there) s +11 r (is) s +12 r (no) s +11 r (ro) s +2 r (om) s +11 r (on) s +12 r (the) s +11 r (screen) s +12 r (for) s +11 r (the) s +12 r (windo) s +0 r 119 c +10 r (to) s +12 r 98 c +1 r 101 c +11 r (fully) s +12 r (visible) s +11 r (at) s +12 r (its) s +11 r (minim) s +0 r (um) s +114 1918 p (size,) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (is) s +15 r (automatically) s +15 r (iconized.) s +cmsy10.329 @sf +68 2012 p 15 c +cmr10.329 @sf +23 r (Users) s +15 r (do) s +15 r (not) s +16 r (ha) s +-1 r 118 c +-1 r 101 c +14 r (to) s +16 r (man) s +-1 r (ually) s +15 r (mo) s +-1 r 118 c +-1 r 101 c +14 r (or) s +16 r (shrink) s +15 r (adjacen) s +0 r 116 c +14 r (windo) s +0 r (ws) s +14 r (to) s +15 r 107 c +0 r (eep) s +14 r (them) s +15 r (fully) s +16 r (visible) s +114 2068 p (when) s +22 r (they) s +22 r (enlarge) s +22 r (or) s +23 r (op) s +1 r (en) s +22 r 97 c +23 r (windo) s +-1 r 119 c +22 r 124 c +22 r (the) s +22 r (windo) s +0 r 119 c +21 r (manager) s +22 r (reorganizes) s +23 r (screen) s +22 r (space) s +114 2124 p (automatically) s +-3 r 46 c +71 2231 p (This) s +15 r (release) s +15 r (of) s +15 r (the) s +15 r (Siemens) s +15 r 82 c +-2 r (TL) s +14 r (Tiled) s +15 r (Windo) s +0 r 119 c +14 r (Manager) s +15 r (has) s +15 r (the) s +15 r (follo) s +0 r (wing) s +14 r (features:) s +cmsy10.329 @sf +68 2337 p 15 c +cmr10.329 @sf +23 r (Automatic) s +13 r (strategies) s +14 r (are) s +13 r (pro) s +0 r (vided) s +12 r (for) s +14 r (windo) s +0 r 119 c +12 r (placemen) s +0 r 116 c +12 r (and) s +14 r (sizing.) s +19 r (The) s +14 r (degree) s +13 r (of) s +13 r (automa-) s +114 2393 p (tion) s +15 r (is) s +15 r (con) s +0 r (trolled) s +14 r 98 c +0 r 121 c +14 r 97 c +15 r 118 c +-2 r (ariet) s +-1 r 121 c +14 r (of) s +15 r (options.) s +cmsy10.329 @sf +68 2487 p 15 c +cmr10.329 @sf +23 r (Windo) s +0 r (ws) s +14 r (are) s +16 r (decorated) s +16 r (with) s +16 r (titlebars,b) s +1 r (orders) s +16 r (and) s +15 r (gadgets.) s +22 r (The) s +16 r (size) s +16 r (and) s +16 r (presence) s +15 r (of) s +16 r (these) s +114 2544 p (decorations) s +15 r (can) s +15 r 98 c +1 r 101 c +15 r (individually) s +16 r (con) s +-1 r (trolled.) s +cmsy10.329 @sf +68 2638 p 15 c +cmr10.329 @sf +23 r (Supp) s +1 r (orts) s +16 r (the) s +15 r (X11R2) s +16 r 118 c +0 r (ersion) s +14 r (of) s +16 r (the) s +15 r (con) s +0 r 118 c +-1 r (en) s +-1 r (tions) s +14 r (for) s +16 r (Clien) s +0 r 116 c +14 r 47 c +16 r (Windo) s +-1 r 119 c +15 r (Manager) s +16 r (comm) s +-1 r (unica-) s +114 2694 p (tions.) s +949 2828 p 49 c +@eop +0 @bop0 +[ 518 ] /cmbx10.518 @newfont +cmbx10.518 @sf +[ 80 49 -2 0 78.304] 77 @dc +[<00FF801FF807FFF03FF81FFFF87FF83FF03EFF007FC00FFE00FF8007FE00FF8003FE00FF0001FE00FF0001FE00FF0001FE00 + FF8001FE007F8001FE007FC001FE003FE001FE001FF001FE0007FE01FE0001FFF1FE00003FFFFE000001FFFE00000001FE00 + 000001FE00010001FE0007C001FE000FE001FE001FF001FE001FF003FC001FF007FC001FF007F8001FE01FF0000FFFFFC000 + 03FFFF0000007FF80000> 40 32 -2 0 40.098] 97 @dc +[ 48 32 -3 0 45.827] 110 @dc +[<000FFC0FFF80007FFF0FFF8001FFFFCFFF8003FE03EFF80003FC00FFF00007F8007FF00007F8003FF00007F8001FF00007F8 + 001FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000F + F00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF000 + 07F8000FF00007F8000FF0000FF8001FF000FFF801FFF000FFF801FFF000FFF801FFF00001F80003F000> 48 32 -3 0 45.827] 117 @dc +[ 24 50 -3 0 22.913] 108 @dc +[<7FFFF0007FFFF0007FFFF00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC + 000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0000 + 03FC000003FC000003FC000003FC0000FFFFF800FFFFF800FFFFF80003FC000003FC000003FC000003FC000003FC000003FC + 000003FC000003FC01C003FC07F003FC0FF803FE0FF801FE0FF801FF0FF800FF0FF8007FC7F0001FFFF00007FFC00000FF00> 32 50 -2 0 25.205] 102 @dc +[<0007FE0000003FFFC00001FFFFF80003FE07FC0007F801FE000FE0007F001FE0007F803FC0003FC03FC0003FC07F80001FE0 + 7F80001FE07F80001FE0FF80001FF0FF80001FF0FF80001FF0FF80001FF0FF80001FF0FF80001FF0FF80001FF0FF80001FF0 + 7F80001FE07F80001FE07F80001FE03FC0003FC03FC0003FC01FC0003F800FE0007F0007F000FE0003FC03FC0000FFFFF000 + 003FFFC0000007FE0000> 40 32 -2 0 41.244] 111 @dc +[ 32 32 -2 0 33.972] 114 @dc +[<000FE000007FF80001FFFC0003FE1E0003FC0E0007FC0F0007F8070007F8070007F8070007F8070007F8070007F8070007F8 + 070007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F80000 + 07F8000007F8000007F8000007F80000FFFFFE00FFFFFE00FFFFFE001FF8000007F8000003F8000001F8000000F8000000F8 + 00000078000000780000007800000038000000380000003800000038000000380000> 32 46 -2 0 32.079] 116 @dc +[ 48 50 -3 0 45.827] 104 @dc +[<0007FF0000003FFFE00000FFFFF80003FF01FC0007F8003E000FF0000F001FE00007803FE00003803FC00003807FC0000000 + 7F800000007F80000000FF80000000FF80000000FF80000000FFFFFFFF80FFFFFFFF80FFFFFFFF80FF80003F80FF80003F80 + 7F80003F807F80003F807FC0003F003FC0007F003FC0007F001FE000FE000FF000FC0007F801F80003FE0FF00001FFFFE000 + 007FFFC000000FFE0000> 40 32 -2 0 37.807] 101 @dc +[ 40 49 -5 0 45.827] 83 @dc +[ 24 51 -3 0 22.913] 105 @dc +[ 72 32 -3 0 68.740] 109 @dc +[ 32 32 -3 0 32.537] 115 @dc +[ 64 49 -2 0 61.866] 82 @dc +[<007FFFFFFF8000007FFFFFFF8000007FFFFFFF800000000FFC00000000000FFC00000000000FFC00000000000FFC00000000 + 000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC0000000000 + 0FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000F + FC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC + 00000000000FFC00000000000FFC000000E0000FFC0001C0E0000FFC0001C0E0000FFC0001C0E0000FFC0001C070000FFC00 + 038070000FFC00038070000FFC00038070000FFC00038078000FFC00078078000FFC0007807C000FFC000F807E000FFC001F + 807F000FFC003F803FE00FFC01FF003FFFFFFFFFFF003FFFFFFFFFFF003FFFFFFFFFFF00> 56 48 -3 0 57.383] 84 @dc +[ 48 49 -2 0 49.612] 76 @dc +[<000FF01FFF00007FFE1FFF0001FFFF9FFF0007FC07DFF0000FF001FFE0001FE000FFE0001FE0007FE0003FC0003FE0007FC0 + 001FE0007FC0001FE0007F80001FE000FF80001FE000FF80001FE000FF80001FE000FF80001FE000FF80001FE000FF80001F + E000FF80001FE000FF80001FE000FF80001FE000FF80001FE0007F80001FE0007FC0001FE0003FC0001FE0003FC0001FE000 + 1FE0003FE0001FF0007FE0000FF800FFE00003FE03FFE00001FFFFDFE000007FFF1FE000000FF81FE0000000001FE0000000 + 001FE0000000001FE0000000001FE0000000001FE0000000001FE0000000001FE0000000001FE0000000001FE0000000001F + E0000000001FE0000000001FE0000000001FE0000000003FE000000003FFE000000003FFE000000003FFE00000000007E000> 48 50 -3 0 45.827] 100 @dc +[<000000E000000700000000000001E000000780000000000001F000000F80000000000003F000000FC0000000000003F80000 + 1FC0000000000007F800001FE0000000000007F800001FE0000000000007FC00003FE000000000000FFC00003FF000000000 + 000FFC00003FF000000000000FFE00007FF000000000001FFE00007FF800000000001FFF0000FFF800000000003FFF0000FF + FC00000000003FF70000FFDC00000000003FF38001FF9C00000000007FE38001FF8E00000000007FE3C003FF8E0000000000 + FFE1C003FF0F0000000000FFC1C003FF070000000000FFC0E007FF070000000001FFC0E007FE038000000001FF80F00FFE03 + 8000000003FF80700FFC03C000000003FF00700FFC01C000000003FF00781FFC01C000000007FF00381FF801E000000007FE + 00381FF800E000000007FE001C3FF000E00000000FFC001C3FF000700000000FFC001E7FF000700000001FFC000E7FE00078 + 0000001FF8000E7FE000380000001FF80007FFE000380000003FF80007FFC0001C0000003FF00007FFC0001C0000007FF000 + 03FF80001E0000007FE00003FF80000E0000007FE00003FF80000E000000FFE00003FF000007000000FFC00007FF00000700 + 0001FFC00007FE000007800001FF800007FE000003800001FF80000FFE000003800003FF80000FFC000003C00003FF00000F + FC000007E000FFFFFE07FFFFF801FFFF00FFFFFE07FFFFF801FFFF00FFFFFE07FFFFF801FFFF00> 88 49 -2 0 85.278] 87 @dc +[<0000E0000E00000001E0000F00000001F0001F00000003F0001F80000003F8003F80000007F8003FC0000007FC007FC00000 + 07FC007FC000000FFC007FE000000FFE00FEE000001FFE00FEF000001FEF01FC7000001FE701FC7000003FC701FC3800003F + C383F83800007FC383F83C00007F83C7F01C00007F81C7F01C0000FF01C7F00E0000FF00EFE00E0001FF00EFE00F0001FE00 + FFC0070003FE007FC0078003FC007FC0038003FC003F80038007F8003F8003C007F8007F0001C00FF8007F0001E00FF0007E + 0003F0FFFF0FFFF01FFEFFFF0FFFF01FFEFFFF0FFFF01FFE> 56 32 -2 0 59.575] 119 @dc +[<001FFF800000FFFFF00007FFFFFE001FF801FF803FC0003FC07F00000FE07E000007E0FE000007F0FC000003F0FC000003F0 + FC000003F0FE000007F07E00000FF03F00007FE01FFFFFFFE007FFFFFFE007FFFFFFC007FFFFFF800FFFFFFE000FFFFFF800 + 1FFFFFC0001F800000001F000000001E000000001E000000000E000000000E1FF000000EFFFE000007FFFF800007F83FC000 + 0FE00FE0001FE00FF0001FC007F0003FC007F8003FC007F8003FC007F8003FC007F8003FC007F8003FC007F8003FC007F800 + 1FC007F0601FE00FF1F80FE00FE1F807F83FF1F803FFFFFFF800FFFE3FF0001FF007E0> 40 47 -2 15 41.244] 103 @dc +[ 360 ] /cmr10.360 @newfont +cmr10.360 @sf +[ 40 34 -2 0 36.667] 82 @dc +[<00FC000703000E00801C0040380020780020700000F00000F00000F00000F00000F00000FFFFE0F000E07000E07800E03801 + C01C01C00C038007070001FC00> 24 21 -1 0 22.139] 101 @dc +[ 16 35 -1 0 13.837] 108 @dc +[<0FE0F03C11C8780B84F00784F00384F00384F003847803807803803C03801E038007C380007F800003800003803803807C03 + 807C07007C0600381C001FF000> 24 21 -2 0 24.906] 97 @dc +[<87E0D818E00CC004C006C0068006800E001E00FC0FF83FF07F80F000E004C004C004C00C600C303C0FC4> 16 21 -2 0 19.648] 115 @dc +[<03F8000FFE001C0F003003804001C04001E0F800E0F800F0F800F0F800F07000F00000F00000F00000E00000E00001C01001 + C018038016070011FC0010000010000010000010000010000010000013F0001FFC001FFF001FFF801E0380180040> 24 32 -2 0 24.906] 53 @dc +[<7FF8007FF8000700000700000700000700000700000700000700000700000700000700000700000700000700000700000700 + 00070000070000FFF800FFF800070000070000070000070000070000070000070000070000070700030F80038F8001C78000 + E300003E00> 24 35 0 0 15.220] 102 @dc +[<00FC000703800E01C01C00E0380070780078700038F0003CF0003CF0003CF0003CF0003CF0003CF0003C7000387800783800 + 701C00E00E01C007038000FC00> 24 21 -1 0 24.906] 111 @dc +[ 24 21 -1 0 19.510] 114 @dc +[<00FC3F8003833F800700BC000E0078000E0078000E0038000E0038000E0038000E0038000E0038000E0038000E0038000E00 + 38000E0038000E0038000E0038000E0038001E007800FE03F800FE03F8000E003800> 32 21 -1 0 27.673] 117 @dc +[<002002000000700700000070070000007007000000E80E800000E80E800000E80C800001C41C400001C41C400001C4184000 + 038238200003823820000702303000070170100007016010000E01E008000E00E008000E00C00C001E01C01E00FF8FF87F80 + FF8FF87F80> 40 21 -1 0 35.975] 119 @dc +[ 16 34 -1 0 13.837] 105 @dc +[<01F0030807080E040E040E040E040E040E040E000E000E000E000E000E000E000E000E000E00FFF83FF81E000E0006000600 + 060002000200020002000200> 16 31 -1 0 19.371] 116 @dc +[ 32 35 -1 0 27.673] 104 @dc +[ 40 34 -1 0 37.359] 88 @dc +[<7FFF007FFF0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0 + 0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000F9C000FFC00007C00001C000004000> 24 32 -4 0 24.906] 49 @dc +[ 24 32 -2 0 24.906] 50 @dc +[ 32 34 -2 0 33.900] 69 @dc +[<80FE00C7FF80FE03C0F000E0E00070C00070C000308000388000388000380000380000780000780000F00003F0003FE003FF + C00FFF801FFE003FF0007F0000780000F00000F00000E00010E00010E00010E000306000307000703801F01E07700FFE3003 + F810> 24 34 -3 0 27.673] 83 @dc +[<70F8F8F870> 8 5 -4 0 13.837] 46 @dc +[<0007F000003FFE0000FC070001F0018003C00040078000200F0000101E0000103E0000083C0000087C0000087C0000087800 + 0000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000780000087C0000087C0000083C000018 + 3E0000181E0000180F0000380780007803C000F801F001B800FC0738003FFC180007F008> 32 34 -3 0 35.975] 67 @dc +[ 32 21 -1 0 27.673] 110 @dc +[ 40 21 -1 0 41.510] 109 @dc +[<01F8000706000C01001C0080380040780040700000F00000F00000F00000F00000F00000F00000F00000700000780700380F + 801C0F800C0F8007070001FE00> 24 21 -2 0 22.139] 99 @dc +[<03F801F8001FFE07FE003E079F07007C00FC01007800780080F800F00080F001E80000F003C40000F0038600007007020000 + 700F010000301E008000181C008000083C00400004380020000270002000017000100000E000180000E0003C0001E001FFC0 + 01D001FFC001C800000001C80000000384000000038200000003810000000381000000038080000003808000000380800000 + 0180800000018080000000C10000000063000000003C000000> 40 35 -2 0 38.743] 38 @dc +[<01FFFF8001FFFF800003C0000003C0000003C0000003C0000003C0000003C0000003C0000003C0000003C0000003C0000003 + C0000003C0000003C0000003C0000003C0000003C0000003C0000003C0000003C0000003C0008003C0028003C0028003C002 + 8003C002C003C006C003C0064003C0044003C0046003C00C7803C03C7FFFFFFC7FFFFFFC> 32 34 -2 0 35.975] 84 @dc +[<01FE000E01C0380070600018600018C0000CC0000CC0000C40001C6000183800F80FFFF00FFFE01FFF001C00001800001000 + 0010000019F0000F1C000E0E001C07001C07003C07803C07803C07803C07801C07001C07000E0E1C071D9C01F078> 24 32 -1 11 24.906] 103 @dc +[<3E0000630000B98000F88000F84000F8400000200000200000200000100000100000380000380000380000740000740000E2 + 0000E20000E20001C10001C1000380800380800380800700400700400E00200E00201E0070FFC1FEFFC1FE> 24 31 -1 10 26.290] 121 @dc +[ 32 34 -2 0 31.133] 76 @dc +[<081F80000C60E0000C8070000F0038000E001C000E001E000E000E000E000F000E000F000E000F000E000F000E000F000E00 + 0F000E000F000E000E000E001E000E001C000F0038000E8030000E60E0000E1F80000E0000000E0000000E0000000E000000 + 0E0000000E0000000E0000000E0000000E0000000E0000001E000000FE000000FE0000000E000000> 32 35 -1 0 27.673] 98 @dc +[<01F800070E000C03001C03803801C03801C07801E07000E07000E0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000 + F0F000F0F000F0F000F0F000F0F000F0F000F07000E07000E07000E03801C03801C01C03800C0300070E0001F800> 24 32 -2 0 24.906] 48 @dc +[<01F87F0007067F000C0178001C00F000380070007800700070007000F0007000F0007000F0007000F0007000F0007000F000 + 7000F00070007000700078007000380070001C00F0000E0170000706700001F8700000007000000070000000700000007000 + 0000700000007000000070000000700000007000000070000000F0000007F0000007F00000007000> 32 35 -2 0 27.673] 100 @dc +[ 32 34 -2 0 33.900] 80 @dc +[ 40 34 -2 0 37.359] 78 @dc +[<0FC000307000401C00781E00FC0E00FC0F00FC0F00780F00300F00000F00000F00000F00000F00000F00000F00000F00000F + 00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0007FFF007 + FFF0> 24 34 -2 0 25.598] 74 @dc +[<01F8000FFE001E03803800C0600060600020C00030C00030C00030C00070C000706001E02003E0300FC0081F80067F0001FE + 0003F80007FC001FC6003F81803E00C07800C07000606000606000606000602000C01001C01C078007FF0001F800> 24 32 -2 0 24.906] 56 @dc +[<00FFF800FFF8000700000700000700000700000700000700000700FFFFFCFFFFFCC007004007002007003007001007000807 + 00040700060700020700010700018700008700004700006700002700001700000F00000F00000700000300000300> 24 32 -1 0 24.906] 52 @dc +[ 32 1 0 -12 24.906] 123 @dc +[<01F80007FE000F07001C03801801C03801E03800E07000F07000F07000F0F000F0F000F0F000F0F000E0F800E0F801C0F401 + C0F40380F30600F0F8007000007000007800003800003801C01C03E01C03E00E01E00700E003C0C000FF80003E00> 24 32 -2 0 24.906] 54 @dc +[<001000200040008001000300060004000C001800180018003000300030007000600060006000E000E000E000E000E000E000 + E000E000E000E000E000E00060006000600070003000300030001800180018000C0004000600030001000080004000200010> 16 50 -3 13 19.371] 40 @dc +[<07E0001FF800303C00300E007807007C03807C01C03801C00001E00000E00000E00000F001F0F0060CF01C02F03802F03801 + F07001F07000F0F000F0F000F0F000F0F000E0F000E0F000E07001E07801C03801C01C03800E0F0007FE0001F800> 24 32 -2 0 24.906] 57 @dc +[<800040002000100008000C0006000200030001800180018000C000C000C000E0006000600060007000700070007000700070 + 00700070007000700070007000600060006000E000C000C000C00180018001800300020006000C0008001000200040008000> 16 50 -3 13 19.371] 41 @dc +[<01C00003E00003E00003E00003E00003E00003E00003E00001E00001E00001E00001E00000E00000E00000E0000070000070 + 00003000003000001000000800000800000400000200800100800100800080C000404000207FFFE07FFFF07FFFF060000040 + 0000> 24 34 -3 0 24.906] 55 @dc +[<03F8001FFE00380F806007C0F803C0FC03E0FC01E0FC01F07801F03001F00001F00001F00001E00003E00003C0000780000E + 0003F800001C00000F000007800003C00003C01803E03C01E07C01E07C03E07C03C03803C0180F800FFE0003F800> 24 32 -2 0 24.906] 51 @dc +[<000000F000000001FC00000003FC00000003FE00000007FE0000000787000000070300000006030000000601000000040100 + 000FFC0100007C1E000000E80F000003C80BC000078811E0000F0420F0001E03C078001E000078003C00003C003C00003C00 + 7C00003E007800001E007800001E00F800001F00F800001F00F800001F00F800001F00F800001F00F800001F00F800001F00 + F800001F007800001E007C00003E007C00003E003C00003C003C00003C001E000078001E000078000F0000F000078001E000 + 03C003C00000E007000000781E0000000FF00000> 40 44 -3 10 38.743] 81 @dc +[<000FFC0000003003E00000C0003C000100000F000600000000040000000008000000001007E07800201C10C40020300DC200 + 406003C20040C003C10041C001C10081C001C100838001C100838001C100838001C100838001C100838001C100838001C100 + 838001C10081C001C10041C001C20040C003C200406002020020300C0400201C1004001007E0080008000010000400002000 + 0600006000010000800000C003000000300C0000000FF00000> 40 35 -3 0 38.743] 64 @dc +[ 32 31 -1 10 27.673] 112 @dc +[<70F8F8F87000000000002020202020207070707070707070707070F8F8F8F8F8F8F870> 8 35 -4 0 13.837] 33 @dc +[ 300 ] /cmbx10.300 @newfont +cmbx10.300 @sf +[ 32 28 -2 0 36.090] 65 @dc +[<1C3F001EC1E01F80701F00781F003C1F003C1F003E1F003E1F003E1F003E1F003E1F003E1F003C1F003C1F00781F80701FE1 + E01F3F801F00001F00001F00001F00001F00001F00001F00001F00001F0000FF0000FF0000> 24 29 -1 0 26.520] 98 @dc +[ 16 18 -2 0 18.829] 115 @dc +[<03F007980F081F0C1F0C1F0C1F0C1F001F001F001F001F001F001F001F001F00FFFC3FFC0F000F0007000700030003000300 + 0300> 16 26 -1 0 18.564] 116 @dc +[ 24 18 -1 0 19.660] 114 @dc +[<0FE1F83E13F8780BC0F807C0F807C0F807C07C07C03C07C01F07C007E7C0007FC00007C01C07C03E07C03E07803E0F801C1E + 000FF800> 24 18 -1 0 23.205] 97 @dc +[<03F8000E0E001C03003C0180780180780000F80000F80000F80000F80000F80000F80000780E00781F003C1F001C1F000E0E + 0003FC00> 24 18 -2 0 21.216] 99 @dc +[ 300 ] /cmr10.300 @newfont +cmr10.300 @sf +[<03FFFC00001F8000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F + 0000000F0000000F0000000F0000000F0000000F0000000F0000800F0020800F0020800F0020C00F0020400F0040400F0040 + 600F00C0700F01C07FFFFFC0> 32 28 -1 0 29.979] 84 @dc +[ 24 29 -1 0 23.061] 104 @dc +[ 16 29 -1 0 11.531] 105 @dc +[<8FC0D060E010C018C0188018803800F80FF03FE07F80F800E010C010C010403030701F90> 16 18 -1 0 16.373] 115 @dc +[ 40 18 -1 0 34.592] 109 @dc +[<1F8700304E80603C40E01C40E01C40E01C40601C00701C00381C000F1C0001FC00001C00001C00301C00781C007838003070 + 001FC000> 24 18 -2 0 20.755] 97 @dc +[ 24 18 -1 0 23.061] 110 @dc +[<03E3F00E1B800C07801C07801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03 + 80FC1F80> 24 18 -1 0 23.061] 117 @dc +[ 16 29 -1 0 11.531] 108 @dc +[ 24 26 -1 8 23.061] 112 @dc +[ 16 18 -1 0 16.258] 114 @dc +[<03F0000E1C00180600300300700380600180E001C0E001C0E001C0E001C0E001C0E001C06001807003803003001806000E1C + 0003F000> 24 18 -1 0 20.755] 111 @dc +[<00400000E00000E00000E00001D00001D00003D8000388000388000704000704000704000E02000E02001C01001C01003C03 + 80FF07E0> 24 18 -1 0 21.908] 118 @dc +[<07C7E00C3700180F00300700700700600700E00700E00700E00700E00700E00700E00700600700700700300700180F000C17 + 0003E700000700000700000700000700000700000700000700000700000700000700003F00> 24 29 -2 0 23.061] 100 @dc +[<03E00C181804300270026000E000E000E000E000FFFEE0066006700E300C18180C3003E0> 16 18 -1 0 18.449] 101 @dc +[<03C00E200C101C101C101C101C101C101C001C001C001C001C001C001C001C001C00FFE03C001C000C000C00040004000400 + 0400> 16 26 -1 0 16.143] 116 @dc +[<07C00C301808300470046000E000E000E000E000E000E00060007030307818780C3007E0> 16 18 -2 0 18.449] 99 @dc +[<7FE00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFE00E000E000E000E000E000E000E0C + 061E071E018C00F8> 16 29 0 0 12.684] 102 @dc +[ 32 28 -2 0 30.556] 82 @dc +[<07C000187000201800401C00800E00F00E00F00F00F00F00600F00000F00000F00000E00000E00201C00301C002C380023E0 + 002000002000002000002000002000002000003FC0003FF0003FF800300C00> 24 27 -2 0 20.755] 53 @dc +[<83F800CC0E00F00300C00300C001808001C08001C08001C00001C00003C00003C0000F8000FF8007FF001FFE003FF8007FC0 + 007C0000F00000F00000E00080E00080E000806001807003803007801C198007E080> 24 28 -2 0 23.061] 83 @dc +[ 24 28 -2 0 25.944] 76 @dc +[<001800180000001800180000001800180000003C003C0000003C003C0000003C003C0000007E007E0000007A007A0000007A + 007A0000007900F2000000F100F1000000F100F1000000F081E1000001E081E0800001E081E0800001E043E0800003C043C0 + 400003C043C0400003C027C0400007802780200007802780200007803F8020000F001F0010000F001F0010000F001F001000 + 1E001E0018001F001F003C00FFE0FFE0FF00> 48 28 -1 0 42.663] 87 @dc +[<008020000180300001C0700001C0700003C0680003A0E80003A0E8000720C4000711C4000711C4000E1182000E0B82000E0B + 82001C0B01001C0701001C0701803C0F0380FF3FCFE0> 32 18 -1 0 29.979] 119 @dc +[ 40 28 -2 0 38.051] 77 @dc +[<07F8001C0E00300300600180C000C0C000C0C000C06001C03003801FFF801FFF001FF80018000030000010000013C0000C30 + 001C3800181800381C00381C00381C00381C001818001C38800C3CC003C380> 24 27 -1 9 20.755] 103 @dc +[<804020201010101070F0F060> 8 12 -4 8 11.531] 44 @dc +[ 32 28 -1 0 31.133] 88 @dc +[ 16 27 -4 0 20.755] 49 @dc +[ 300 ] /cmr7.300 @newfont +cmr7.300 @sf +[ 16 19 -3 0 16.546] 49 @dc +cmr10.300 @sf +[<60F0F060> 8 4 -4 0 11.531] 46 @dc +cmbx10.300 @sf +[<01FC000F03801E00C03C00607C0060780000F80000F80000F80000FFFFE0F801E0F801E07801E07801C03C01C01C03800F07 + 0001FC00> 24 18 -1 0 21.879] 101 @dc +[ 24 26 -1 8 26.520] 112 @dc +[<03F9FE0F0FFE1C03F03C01F07801F07801F0F801F0F801F0F801F0F801F0F801F0F801F07801F07801F03C01F01C03F00F07 + F001F9F00001F00001F00001F00001F00001F00001F00001F00001F00001F0000FF0000FF0> 24 29 -2 0 26.520] 100 @dc +[<01FC000F07801E03C03C01E07800F07800F0F800F8F800F8F800F8F800F8F800F8F800F87800F07800F03C01E01C01C00F07 + 8001FC00> 24 18 -1 0 23.868] 111 @dc +[<01F8FF000786FF000F01F8001F01F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00 + F8001F00F8001F00F8001F00F800FF07F800FF07F800> 32 18 -1 0 26.520] 117 @dc +[ 40 18 -1 0 39.780] 109 @dc +[ 32 18 -1 0 26.520] 110 @dc +[<40300808040402027AFEFEFCFC78> 8 14 -3 8 13.260] 44 @dc +[<3C0F007E1F807E1F80FE3F80FE3F80BC2F00802000802000401000401000200800200800180600040100> 24 14 -5 -15 25.021] 92 @dc +[<07FFFE0007FFFE00001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F + 8000001F8000001F8000001F8000001F8000001F8000C01F8030C01F8030C01F8030C01F8030E01F8070601F8060701F80E0 + 781F81E07FFFFFE07FFFFFE0> 32 28 -2 0 33.208] 84 @dc +[ 16 30 -1 0 13.260] 105 @dc +[ 16 29 -1 0 13.260] 108 @dc +[<78FCFCFCFC7800000000000078FCFCFCFC78> 8 18 -3 0 13.260] 58 @dc +[ 24 28 -1 0 18.103] 73 @dc +[<83FC00EFFF00FC03C0F001C0E000E0C000E0C000F0C000F00000F00001F00003F0007FE007FFE00FFFC03FFF803FFF007FFE + 00FFE000FE0000F80000F00060F00060F000E07000E07801E03C07E01FFEE007F820> 24 28 -3 0 26.520] 83 @dc +[<7FF8007FF8000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8000FFF8 + 00FFF8000F80000F80000F80000F80000F80000F83800F87C00787C003C7C001E380007F00> 24 29 0 0 14.586] 102 @dc +[<000FF80000007FFE000000FC07800001F001C00003E000E00007C000600007C00030000FC00030000FC00030000FC0003000 + 0FC00030000FC00030000FC00030000FC00030000FC00030000FC00030000FC00030000FC00030000FC00030000FC0003000 + 0FC00030000FC00030000FC00030000FC00030000FC00030000FC0003000FFFC03FF00FFFC03FF00> 40 28 -2 0 36.725] 85 @dc +[<07FF001E03C07800F0700070F00078F00078F000787801F81FFFF00FFFE01FFFC01FFF001800001800001000001BF8000E0E + 001E0F001C07003C07803C07803C07803C07801C07301E0F380E0F3803F8F0> 24 27 -1 9 23.868] 103 @dc +[ 32 29 -1 0 26.520] 104 @dc +[ 40 28 -2 0 35.802] 82 @dc +[ 32 28 -2 0 28.711] 76 @dc +[<000700038000000700038000000F0003C000000F8007C000000F8007C000001FC00FE000001FC00FE000003FC00FF000003F + E01FF000003F601FB000007F601FB800007E303F1800007E303F180000FC387F0C0000FC187E0C0001FC187E0E0001F81CFE + 060001F80CFC060003F80CFC070003F007F8030003F007F8030007E007F8018007E003F001800FE003F001C00FC007F000C0 + 0FC007E000C0FFFC7FFE0FFCFFFC7FFE0FFC> 48 28 -1 0 49.351] 87 @dc +[<00E00E0000E00E0000F01E0001F01F0001F83F0001F83F0003F83D8003EC7D8007EC79C007CEF8C007C6F0C00F86F0600F83 + F0601F83E0701F03E0301F03E030FF8FF8FEFF8FF8FE> 32 18 -1 0 34.476] 119 @dc +[ 48 28 -2 0 45.315] 77 @dc +[<401000300C000802000802000401000401000200800200807A1E80FE3F80FE3F80FC3F00FC3F00781E00> 24 14 -2 -15 25.021] 34 @dc +[<7FE1FF807FE1FF800F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F80 + 7C000F807C000F807C000F807C00FFFFFC00FFFFFC000F8000000F8000000F8000000F8000000F8038000F807C000F807C00 + 07C07C0003C0380001F03000003FC000> 32 29 0 0 26.520] 12 @dc +[<3E0000730000F98000F8C000F8600070600000700000300000300000780000780000FC0000FC0000FE0001F60001F70003E3 + 0003E30007C18007C1800FC0C00F80C01F80E01F0060FFC1FCFFC1FC> 24 26 -1 8 25.194] 121 @dc +[<00300000780000780000FC0000FC0001FE0001F60001F60003E30003E30007C18007C1800FC0C00F80C01F80E01F0060FFC1 + FCFFC1FC> 24 18 -1 0 25.194] 118 @dc +[<78FCFCFCFC78> 8 6 -3 0 13.260] 46 @dc +cmr10.329 @sf +[<007FFE00000007C000000003C000000003C000000003C000000003C000000003C000000003C000000003C000000003C00000 + 0003C000000003C000000003C000000007C000000007A00000000FB00000001F100000001E080000003E080000003C040000 + 007C04000000F802000000F003000001F001000001E000800003E000800007C000400007800040000F800060001F8000F800 + FFF003FF00> 40 31 -1 0 34.090] 89 @dc +[<0000078000000FC000001FE000001FE000003FF000003870000038300000301000003010003FE01000F0700003E03C0007A0 + 5E000F204F001E1087801E0F07803C0003C07C0003E07C0003E0780001E0F80001F0F80001F0F80001F0F80001F0F80001F0 + F80001F0F80001F0F80001F0F80001F0780001E07C0003E03C0003C03C0003C01E0007801E0007800F000F0007801E0003C0 + 3C0000F0F000003FC000> 32 40 -3 9 35.353] 81 @dc +[ 300 ] /cmr6.300 @newfont +cmr6.300 @sf +[ 16 16 -2 0 15.220] 49 @dc +[ 300 ] /cmr9.300 @newfont +cmr9.300 @sf +[ 32 26 -1 0 28.792] 88 @dc +[ 16 24 -3 0 19.198] 49 @dc +[<1E3C0071FB00E0F100E07100E07100E070007070003070001C700007F00000700000700020700070E00070C0003F8000> 24 16 -2 0 19.198] 97 @dc +[ 24 16 -1 0 21.331] 110 @dc +[<07CFC01C2E00381E00700E00600E00E00E00E00E00E00E00E00E00E00E00E00E00700E00300E00380E000C3E0003CE00000E + 00000E00000E00000E00000E00000E00000E00000E00000E00007E00> 24 26 -1 0 21.331] 100 @dc +[<03800E401C201C201C201C201C201C001C001C001C001C001C001C001C00FFC03C001C000C000C00040004000400> 16 23 -1 0 14.932] 116 @dc +[ 24 26 -1 0 21.331] 104 @dc +[<07E00C18380830046000E000E000E000E000FFFCE00C600C701830181C3007C0> 16 16 -1 0 17.079] 101 @dc +[<0020004000003000C000007000E000007000E000007801E000007801E00000E801D00000E403900000E403900001C4038800 + 01C403880001C20708000382070400038207040003810E040007010E020007010E020007009C020007009C02000E009C0100 + 0E007801000E007801001C007800801C007800803C007801C0FF83FF0FF0> 40 26 -1 0 39.457] 87 @dc +[ 16 26 0 0 10.666] 105 @dc +[<07E0001C3800381C00700E00600600E00700E00700E00700E00700E00700E00700600600700E00300C001C380007E000> 24 16 -1 0 19.198] 111 @dc +[<010040000180C0000380E0000380E00003C1E0000741D000074190000F2398000E2388000E2308001E170C001C1704001C16 + 0400380E06003C0E0700FF3F9F80> 32 16 -1 0 27.731] 119 @dc +[<87E000D81800E00400C00600C00200800300800300800300000300000700000E00003E0007FC001FF8003FE0007E00007000 + 00E00000C00200C00200C00200C00600600600200E001836000FC200> 24 26 -2 0 21.331] 83 @dc +[<780000E40000E20000E1000001000001000000800000800001C00001C00001C00003A00003A0000790000710000710000E08 + 000E08001E0C001C04001C04003C0600FF1F80> 24 23 -1 7 20.265] 121 @dc +[<8F80F040C020C0308030807000F01FE03FC07F00F000C020C020402060E01F20> 16 16 -1 0 15.145] 115 @dc +[ 32 16 -1 0 31.997] 109 @dc +[ 16 16 -1 0 15.018] 114 @dc +[ 24 26 -1 0 20.265] 107 @dc +[<7FE00E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFC00E000E000E000E000E000E000E1007380318 + 01F0> 16 26 0 0 11.732] 102 @dc +[ 32 26 -2 0 35.191] 77 @dc +[ 16 26 -1 0 13.860] 73 @dc +[<03FFE000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C + 0000001C0000001C0000001C0000001C0000001C0000801C0080801C0080801C0080C01C0180401C0100401C0100701C0700 + 7FFFFF00> 32 26 -1 0 27.731] 84 @dc +0 @bop1 +cmbx10.518 @sf +165 203 p (Man) s +-2 r (ual) s +27 r (for) s +27 r (the) s +28 r (Siemens) s +27 r 82 c +-5 r (TL) s +26 r (Tiled) s +28 r (Windo) s +-2 r 119 c +788 295 p (Manager) s +cmr10.360 @sf +630 385 p (Release) s +16 r 53 c +17 r (for) s +16 r (use) s +17 r (with) s +17 r (X11R2) s +806 507 p (Ellis) s +17 r (S.) s +16 r (Cohen) s +464 565 p (Siemens) s +17 r (Researc) s +-1 r 104 c +16 r 38 c +16 r 84 c +-3 r (ec) s +-1 r (hnology) s +15 r (Lab) s +2 r (oratories) s +713 623 p (105) s +16 r (College) s +17 r (Road) s +17 r (East) s +682 682 p (Princeton) s +16 r (NJ) s +17 r (08540{6668) s +795 740 p (\(609\)) s +17 r (734{6524) s +668 819 p (Commen) s +0 r (ts) s +15 r (or) s +17 r (Questions) s +17 r (to) s +578 877 p (rtl@cadillac.siemens.com) s +17 r (\(in) s +0 r (ternet\)) s +565 935 p (princeton!siemens!cadillac!rtl) s +17 r (\(uucp\)) s +817 1013 p (17) s +17 r (June) s +16 r (1988) s +cmbx10.300 @sf +869 1313 p (Abstract) s +cmr10.300 @sf +176 1389 p (This) s +11 r (man) s +0 r (ual) s +9 r (pro) s +0 r (vides) s +10 r 97 c +11 r (detailed) s +11 r (description) s +10 r (of) s +11 r (Release) s +11 r 53 c +11 r (of) s +11 r (the) s +11 r (Siemens) s +10 r 82 c +-2 r (TL) s +10 r (Tiled) s +11 r (Windo) s +-1 r 119 c +114 1439 p (Manager,) s +13 r 97 c +14 r (windo) s +0 r 119 c +13 r (manager) s +14 r (for) s +14 r (X11) s +cmr7.300 @sf +787 1424 p 49 c +cmr10.300 @sf +820 1439 p (clien) s +0 r (ts.) s +cmbx10.300 @sf +176 1489 p 65 c +11 r (separate) s +12 r (do) s +1 r (cumen) s +0 r (t,) s +11 r (\\T) s +-3 r (utorial:) s +19 r (Initial) s +11 r (Setup) s +12 r (for) s +11 r (Using) s +12 r (the) s +11 r (Siemens) s +12 r 82 c +-3 r (TL) s +11 r (Tiled) s +114 1539 p (Windo) s +-1 r 119 c +15 r (Manager",) s +16 r (should) s +16 r 98 c +1 r 101 c +16 r (read) s +16 r (\014rst) s +16 r 98 c +0 r 121 c +15 r (no) s +-1 r (vice) s +15 r (users) s +16 r (of) s +16 r (the) s +16 r (system.) s +cmr10.329 @sf +0 1783 p (Cop) s +0 r (yrigh) s +-2 r 116 c +15 r (1988) s +15 r 98 c +0 r 121 c +14 r (Siemens) s +15 r (Researc) s +0 r 104 c +14 r (and) s +15 r 84 c +-3 r (ec) s +-1 r (hnology) s +14 r (Lab) s +1 r (oratories,) s +15 r (Princeton,) s +16 r (NJ) s +0 1896 p 80 c +0 r (ermission) s +12 r (to) s +12 r (use,) s +14 r (cop) s +-1 r 121 c +-3 r 44 c +12 r (mo) s +1 r (dify) s +-3 r 44 c +13 r (and) s +13 r (distribute) s +12 r (this) s +13 r (do) s +1 r (cumen) s +0 r (tation) s +12 r (and) s +13 r (the) s +13 r (soft) s +-1 r 119 c +-1 r (are) s +12 r (describ) s +1 r (ed) s +13 r (for) s +0 1953 p (an) s +0 r 121 c +14 r (purp) s +1 r (ose) s +16 r (and) s +15 r (without) s +16 r (fee) s +15 r (is) s +15 r (hereb) s +0 r 121 c +14 r (gran) s +0 r (ted,) s +15 r (pro) s +-1 r (vided) s +15 r (that) s +15 r (the) s +16 r (ab) s +1 r 111 c +0 r 118 c +-2 r 101 c +15 r (cop) s +-1 r (yrigh) s +-1 r 116 c +14 r (notice) s +16 r (app) s +1 r (ear) s +0 2009 p (in) s +14 r (all) s +15 r (copies) s +14 r (and) s +14 r (that) s +15 r 98 c +1 r (oth) s +14 r (that) s +15 r (cop) s +-1 r (yrigh) s +-1 r 116 c +13 r (notice) s +15 r (and) s +14 r (this) s +14 r 112 c +2 r (ermission) s +14 r (notice) s +14 r (app) s +2 r (ear) s +14 r (in) s +14 r (supp) s +1 r (orting) s +0 2066 p (do) s +1 r (cumen) s +0 r (tation,) s +12 r (and) s +13 r (that) s +13 r (the) s +12 r (name) s +13 r (of) s +13 r (Siemens) s +13 r (Researc) s +-1 r 104 c +12 r (and) s +13 r 84 c +-3 r (ec) s +-1 r (hnology) s +12 r (Lab) s +1 r (oratories) s +13 r (not) s +12 r 98 c +2 r 101 c +12 r (used) s +0 2122 p (in) s +12 r (adv) s +0 r (ertising) s +11 r (or) s +13 r (publicit) s +-1 r 121 c +12 r 112 c +1 r (ertaining) s +12 r (to) s +13 r (distribution) s +12 r (of) s +12 r (the) s +12 r (soft) s +0 r 119 c +-1 r (are) s +11 r (without) s +12 r (sp) s +2 r (eci\014c,) s +13 r (written) s +12 r (prior) s +0 2178 p 112 c +1 r (ermission.) s +0 2291 p (SIEMENS) s +22 r (DISCLAIMS) s +23 r (ALL) s +22 r 87 c +-4 r (ARRANTIES) s +22 r (WITH) s +22 r (REGARD) s +23 r (TO) s +22 r (THIS) s +23 r (SOFTW) s +-4 r (ARE,) s +21 r (IN-) s +0 2348 p (CLUDING) s +15 r (ALL) s +16 r (IMPLIED) s +15 r 87 c +-4 r (ARRANTIES) s +15 r (OF) s +15 r (MER) s +0 r (CHANT) s +-4 r (ABILITY) s +14 r (AND) s +16 r (FITNESS,) s +15 r (IN) s +16 r (NO) s +0 2404 p (EVENT) s +15 r (SHALL) s +15 r (SIEMENS) s +15 r (BE) s +15 r (LIABLE) s +15 r 70 c +-1 r (OR) s +14 r (ANY) s +15 r (SPECIAL,) s +15 r (INDIRECT) s +15 r (OR) s +15 r (CONSEQUEN-) s +0 2461 p (TIAL) s +15 r 68 c +-1 r (AMA) s +-1 r (GES) s +14 r (OR) s +15 r (ANY) s +14 r 68 c +0 r (AMA) s +-1 r (GES) s +13 r (WHA) s +-2 r (TSOEVER) s +13 r (RESUL) s +-2 r (TING) s +13 r (FR) s +0 r (OM) s +14 r (LOSS) s +14 r (OF) s +15 r (USE,) s +0 2517 p 68 c +0 r 65 c +-4 r 84 c +-4 r 65 c +23 r (OR) s +24 r (PR) s +0 r (OFITS,) s +23 r (WHETHER) s +24 r (IN) s +24 r (AN) s +24 r 65 c +-1 r (CTION) s +23 r (OF) s +24 r (CONTRA) s +0 r (CT,) s +23 r (NEGLIGENCE) s +24 r (OR) s +0 2574 p (OTHER) s +18 r (TOR) s +-3 r (TIOUS) s +17 r 65 c +0 r (CTION,) s +16 r (ARISING) s +18 r (OUT) s +18 r (OF) s +18 r (OR) s +17 r (IN) s +18 r (CONNECTION) s +18 r (WITH) s +18 r (THE) s +18 r (USE) s +0 2630 p (OR) s +15 r (PERF) s +0 r (ORMANCE) s +14 r (OF) s +15 r (THIS) s +15 r (SOFTW) s +-4 r (ARE.) s +0 2661 p 768 2 ru +cmr6.300 @sf +52 2688 p 49 c +cmr9.300 @sf +69 2704 p (X11) s +13 r (and) s +13 r (the) s +13 r 88 c +12 r (Windo) s +0 r 119 c +12 r (System) s +13 r (are) s +13 r (trademarks) s +12 r (of) s +13 r (MIT) s +@eop +@end diff --git a/doc/postscript/refpage5.ps b/doc/postscript/refpage5.ps new file mode 100644 index 0000000..7f41ad3 --- /dev/null +++ b/doc/postscript/refpage5.ps @@ -0,0 +1,1373 @@ +%! for use by dvi2ps Version 2.00 +% a start (Ha!) at a TeX mode for PostScript. +% The following defines procedures assumed and used by program "dvi2ps" +% and must be downloaded or sent as a header file for all TeX jobs. + +% By: Neal Holtz, Carleton University, Ottawa, Canada +% +% +% June, 1985 +% Last Modified: Aug 25/85 +% oystr 12-Feb-1986 +% Changed @dc macro to check for a badly formed bits in character +% definitions. Can get a <> bit map if a character is not actually +% in the font file. This is absolutely guaranteed to drive the +% printer nuts - it will appear that you can no longer define a +% new font, although the built-ins will still be there. + +% To convert this file into a downloaded file instead of a header +% file, uncomment all of the lines beginning with %-% + +%-%0000000 % Server loop exit password +%-%serverdict begin exitserver +%-% systemdict /statusdict known +%-% {statusdict begin 9 0 3 setsccinteractive /waittimeout 300 def end} +%-% if + +/TeXDict 200 dict def % define a working dictionary +TeXDict begin % start using it. + + % units are in "dots" (300/inch) +/Resolution 300 def +/Inch {Resolution mul} def % converts inches to internal units + +/Mtrx 6 array def + +%%%%%%%%%%%%%%%%%%%%% Page setup (user) options %%%%%%%%%%%%%%%%%%%%%%%% + +% dvi2ps will output coordinates in the TeX system ([0,0] 1" down and in +% from top left, with y +ive downward). The default PostScript system +% is [0,0] at bottom left, y +ive up. The Many Matrix Machinations in +% the following code are an attempt to reconcile that. The intent is to +% specify the scaling as 1 and have only translations in the matrix to +% properly position the text. Caution: the default device matrices are +% *not* the same in all PostScript devices; that should not matter in most +% of the code below (except for lanscape mode -- in that, rotations of +% -90 degrees resulted in the the rotation matrix [ e 1 ] +% [ 1 e ] +% where the "e"s were almost exactly but not quite unlike zeros. + +/@letter + { letter initmatrix + 72 Resolution div dup neg scale % set scaling to 1. + 310 -3005 translate % move origin to top (these are not exactly 1" + Mtrx currentmatrix pop % and -10" because margins aren't set exactly right) + } def + % note mode is like letter, except it uses less VM +/@note + { note initmatrix + 72 Resolution div dup neg scale % set scaling to 1. + 310 -3005 translate % move origin to top + Mtrx currentmatrix pop + } def + +/@landscape + { letter initmatrix + 72 Resolution div dup neg scale % set scaling to 1. +% -90 rotate % it would be nice to be able to do this + Mtrx currentmatrix 0 0.0 put % but instead we have to do things like this because what + Mtrx 1 -1.0 put % should be zero terms aren't (and text comes out wobbly) + Mtrx 2 1.0 put % Fie! This likely will not work on QMS printers + Mtrx 3 0.0 put % (nor on others where the device matrix is not like + Mtrx setmatrix % like it is on the LaserWriter). + 300 310 translate % move origin to top + Mtrx currentmatrix pop + } def + +/@legal + { legal initmatrix + 72 Resolution div dup neg scale % set scaling to 1. + 295 -3880 translate % move origin to top + Mtrx currentmatrix pop + } def + +/@manualfeed + { statusdict /manualfeed true put + } def + % n @copies - set number of copies +/@copies + { /#copies exch def + } def + +%%%%%%%%%%%%%%%%%%%% Procedure Defintions %%%%%%%%%%%%%%%%%%%%%%%%%% + +/@newfont % id @newfont - -- initialize a new font dictionary + { /newname exch def + pop + newname 7 dict def % allocate new font dictionary + newname load begin + /FontType 3 def + /FontMatrix [1 0 0 -1 0 0] def + /FontBBox [0 0 1 1] def + /BitMaps 128 array def + /BuildChar {CharBuilder} def + /Encoding 128 array def + 0 1 127 {Encoding exch /.undef put} for + end + newname newname load definefont pop + } def + + +% the following is the only character builder we need. it looks up the +% char data in the BitMaps array, and paints the character if possible. +% char data -- a bitmap descriptor -- is an array of length 6, of +% which the various slots are: + +/ch-image {ch-data 0 get} def % the hex string image +/ch-width {ch-data 1 get} def % the number of pixels across +/ch-height {ch-data 2 get} def % the number of pixels tall +/ch-xoff {ch-data 3 get} def % number of pixels below origin +/ch-yoff {ch-data 4 get} def % number of pixels to left of origin +/ch-tfmw {ch-data 5 get} def % spacing to next character + +/CharBuilder % fontdict ch Charbuilder - -- image one character + { /ch-code exch def % save the char code + /font-dict exch def % and the font dict. + /ch-data font-dict /BitMaps get ch-code get def % get the bitmap descriptor for char + ch-data null eq not + { ch-tfmw 0 ch-xoff neg ch-yoff neg ch-width ch-xoff sub ch-height ch-yoff sub + setcachedevice + ch-width ch-height true [1 0 0 1 ch-xoff ch-yoff] + {ch-image} imagemask + } + if + } def + + +/@sf % fontdict @sf - -- make that the current font + { setfont() pop + } def + + % in the following, the font-cacheing mechanism requires that + % a name unique in the particular font be generated + +/@dc % char-data ch @dc - -- define a new character bitmap in current font + { /ch-code exch def +% ++oystr 12-Feb-86++ + dup 0 get + length 2 lt + { pop [ <00> 1 1 0 0 8.00 ] } % replace <> with null + if +% --oystr 12-Feb-86-- + /ch-data exch def + currentfont /BitMaps get ch-code ch-data put + currentfont /Encoding get ch-code + dup ( ) cvs cvn % generate a unique name simply from the character code + put + } def + +/@bop0 % n @bop0 - -- begin the char def section of a new page + { + } def + +/@bop1 % n @bop1 - -- begin a brand new page + { pop + erasepage initgraphics + Mtrx setmatrix + /SaveImage save def() pop + } def + +/@eop % - @eop - -- end a page + { showpage + SaveImage restore() pop + } def + +/@start % - @start - -- start everything + { @letter % (there is not much to do) + } def + +/@end % - @end - -- done the whole shebang + { end + } def + +/p % x y p - -- move to position + { moveto + } def + +/r % x r - -- move right + { 0 rmoveto + } def + +/s % string s - -- show the string + { show + } def + +/c % ch c - -- show the character (code given) + { c-string exch 0 exch put + c-string show + } def + +/c-string ( ) def + +/ru % dx dy ru - -- set a rule (rectangle) + { /dy exch neg def % because dy is height up from bottom + /dx exch def + /x currentpoint /y exch def def % remember current point + newpath x y moveto + dx 0 rlineto + 0 dy rlineto + dx neg 0 rlineto + closepath fill + x y moveto + } def + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% the \special command junk +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% The structure of the PostScript produced by dvi2ps for \special is: +% @beginspecial +% - any number of @hsize, @hoffset, @hscale, etc., commands +% @setspecial +% - the users file of PostScript commands +% @endspecial + +% The @beginspecial command recognizes whether the Macintosh Laserprep +% has been loaded or not, and redfines some Mac commands if so. +% The @setspecial handles the users shifting, scaling, clipping commands + + +% The following are user settable options from the \special command. + +/@SpecialDefaults + { /hs 8.5 Inch def + /vs 11 Inch def + /ho 0 def + /vo 0 def + /hsc 1 def + /vsc 1 def + /CLIP false def + } def + +% d @hsize - specify a horizontal clipping dimension +% these 2 are executed before the MacDraw initializations +/@hsize {/hs exch def /CLIP true def} def +/@vsize {/vs exch def /CLIP true def} def +% d @hoffset - specify a shift for the drwgs +/@hoffset {/ho exch def} def +/@voffset {/vo excl def} def +% s @hscale - set scale factor +/@hscale {/hsc exch def} def +/@vscale {/vsc exch def} def + +/@setclipper + { hsc vsc scale + CLIP + { newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip } + if + } def + +% this will be invoked as the result of a \special command (for the +% inclusion of PostScript graphics). The basic idea is to change all +% scaling and graphics back to defaults, but to shift the origin +% to the current position on the page. Due to TeXnical difficulties, +% we only set the y-origin. The x-origin is set at the left edge of +% the page. + +/@beginspecial % - @beginspecial - -- enter special mode + { gsave /SpecialSave save def + % the following magic incantation establishes the current point as + % the users origin, and reverts back to default scalings, rotations + currentpoint transform initgraphics itransform translate + @SpecialDefaults % setup default offsets, scales, sizes + @MacSetUp % fix up Mac stuff + } def + +/@setspecial % to setup user specified offsets, scales, sizes (for clipping) + { + MacDrwgs + {md begin /pxt ho def /pyt vo neg def end} + {ho vo translate @setclipper} + ifelse + } def + +/@endspecial % - @endspecial - -- leave special mode + { SpecialSave restore + grestore + } def + +/MacDrwgs false def % will get set if we think the Mac LaserPrep file has been loaded + + % - @MacSetUp - turn-off/fix-up all the MacDraw stuff that might hurt us + % we depend on 'psu' being the first procedure executed + % by a Mac document. We redefine 'psu' to adjust page + % translations, and to do all other the fixups required. + % This stuff will not harm other included PS files +/@MacSetUp + { userdict /md known % if md is defined + { userdict /md get type /dicttype eq % and if it is a dictionary + { /MacDrwgs true def + md begin % then redefine some stuff + /psu % redfine psu to set origins, etc. + /psu load + % this procedure contains almost all the fixup code + { /letter {} def % it is bad manners to execute the real + /note {} def % versions of these (clears page image, etc.) + /legal {} def + statusdict /waittimeout 300 put + /page {pop} def % no printing of pages + /pyt vo neg def % x & y pixel translations + /pxt ho def + } + concatprocs + def + /od % redefine od to set clipping region + /od load + { @setclipper } + concatprocs + def + end } + if } + if + } def + +% p1 p2 concatprocs p - concatenate procedures +/concatprocs + { /p2 exch cvlit def + /p1 exch cvlit def + /p p1 length p2 length add array def + p 0 p1 putinterval + p p1 length p2 putinterval + p cvx + } def + +end % revert to previous dictionary +TeXDict begin @start +%%Title: /usr/cadillac/berman/Papers/Rtl/rtl-ref-page.dvi +%%Creator: dvi2ps +%%EndProlog +1 @bop0 +[ 300 ] /cmbx8.300 @newfont +cmbx8.300 @sf +[ 32 23 -2 0 30.395] 82 @dc +[<07FFF00007FFF000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E + 0000003E0000003E0000C03E0180C03E0180C03E0180E03E0380603E0300783E0F007FFFFF007FFFFF00> 32 23 -1 0 28.296] 84 @dc +[ 24 23 -2 0 24.399] 76 @dc +[ 300 ] /cmbx5.300 @newfont +cmbx5.300 @sf +[ 16 14 -2 0 17.411] 83 @dc +[ 8 15 -1 0 9.051] 105 @dc +[<1F8070C06000E000FFC0E0C060C071801F00> 16 9 -1 0 14.370] 101 @dc +[ 24 9 -2 0 25.770] 109 @dc +[ 16 9 -2 0 17.411] 110 @dc +[ 16 9 -1 0 12.562] 115 @dc +[ 518 ] /cmssbx10.518 @newfont +cmssbx10.518 @sf +[<00000000FFE00000000001FFF00000000003FFE00000000003FFE00000000007FFC00000000007FF80000000000FFF000000 + 003FFFFF00000003FFFFFE0000001FFFFFFC0000003FFFFFFC000000FFFFFFFF000001FFF0FFFF800003FFC0FFFFC00007FF + 01FFFFE0000FFE01FFFFF0000FFC03FFBFF0001FFC07FFBFF8001FF807FF1FF8003FF80FFE1FFC003FF00FFC0FFC007FF00F + FC0FFE007FF000000FFE007FF000000FFE007FE0000007FE007FE0000007FE00FFE0000007FF00FFE0000007FF00FFE00000 + 07FF00FFE0000007FF00FFE0000007FF00FFE0000007FF00FFE0000007FF00FFE0000007FF00FFE0000007FF00FFE0000007 + FF00FFE0000007FF00FFE0000007FF00FFE0000007FF00FFE0000007FF007FE0000007FE007FE0000007FE007FF000000FFE + 007FF000000FFE003FF000000FFC003FF000000FFC003FF800001FFC001FF800001FF8001FFC00003FF8000FFE00007FF000 + 0FFE00007FF00007FF0000FFE00003FFC003FFC00001FFF00FFF800000FFFFFFFF0000003FFFFFFC0000000FFFFFF0000000 + 03FFFFC0000000003FFC000000> 56 59 -4 8 56.985] 81 @dc +[<03FF03FC0FFFC7FE3FFFE7FE7FFFF7FE7FE07FFEFFC03FFEFFC01FFEFFC00FFEFFC00FFEFFC007FEFFC007FEFFC007FEFFC0 + 07FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FE + FFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FE7F8003FC> 32 33 -4 0 40.248] 117 @dc +[<3FC07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE0 + 7FE07FE07FE07FE07FE07FE07FE03FC000000000000000000000000000007FC0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0 + 7FC0> 16 51 -3 0 18.331] 105 @dc +[<001FF80000FFFF8003FFFFE007FFFFF80FFFFFF81FFC0FF83FF001F83FF000787FE000387FE000187FC00000FFC00000FFC0 + 0000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC000007FC000007FE000007FE00060 + 3FF000E03FF001F01FFC07F00FFFFFF007FFFFF003FFFFC000FFFF00001FFC00> 32 33 -3 0 35.068] 99 @dc +[<7F0003FEFF8007FEFF8007FEFF800FFCFF801FF8FF803FF0FF803FF0FF807FE0FF80FFC0FF81FF80FF81FF80FF83FF00FFC7 + FE00FFEFFC00FFFFFC00FFFFF800FFFFF000FFFFE000FFFFE000FFFFC000FFFFE000FFFFF000FFFFF800FFBFFC00FF9FFE00 + FF8FFF00FF87FF80FF83FFC0FF81FFE0FF807FF0FF803FF8FF801FFCFF800FF8FF800000FF800000FF800000FF800000FF80 + 0000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF8000007F000000> 32 50 -4 0 38.057] 107 @dc +[<7FC00007FCFFE0000FFEFFE0000FFEFFE0001FFCFFE0001FFCFFE0003FF8FFE0003FF0FFE0007FF0FFE0007FE0FFE000FFE0 + FFE001FFC0FFE001FFC0FFE003FF80FFE003FF80FFE007FF00FFE007FF00FFE00FFE00FFE00FFE00FFE01FFC00FFE01FF800 + FFE03FF800FFE03FF000FFE07FF000FFFFFFE000FFFFFFFC00FFFFFFFF00FFFFFFFFC0FFFFFFFFE0FFE001FFF0FFE0007FF0 + FFE0003FF8FFE0001FF8FFE0001FFCFFE0001FFCFFE0000FFCFFE0000FFCFFE0000FFCFFE0000FFCFFE0001FFCFFE0001FFC + FFE0001FF8FFE0003FF8FFE0007FF8FFE001FFF0FFFFFFFFE0FFFFFFFFC0FFFFFFFF80FFFFFFFF00FFFFFFF8007FFFFFC000> 40 50 -7 0 50.410] 82 @dc +[<000FFE0000007FFFE00001FFFFF80003FFFFFE000FFFFFFE001FFE01FE001FF8003E003FF0000E003FE00006007FE0000000 + 7FC00000007FC0000000FFC0000000FFC0000000FF80000000FFFFFFFE00FFFFFFFF00FFFFFFFF00FFFFFFFF00FFC000FF00 + FFC000FF00FFC000FF007FC001FF007FC001FE007FE001FE003FE003FE001FF003FC001FFC0FFC000FFFFFF80007FFFFF000 + 01FFFFC000007FFF8000000FFC0000> 40 33 -2 0 36.662] 101 @dc +[<03FC000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE + 000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE0000 + 07FE000007FE000007FE00007FFFF000FFFFF800FFFFF800FFFFF8007FFFF00007FE000007FE000007FE000007FE000007FE + 000007FE000007FE000007FE000007FE000007FE000003FF018003FF078001FFFF8000FFFF80007FFF80001FFF800007FF80> 32 50 -1 0 24.109] 102 @dc +[<7F8000FFC000FFC000FFC000FFC000FFC000FFC000FFC000FFC000FFC000FFC000FFC000FFC000FFC000FFC000FFC000FFC0 + 00FFC000FFC000FFE000FFE000FFE000FFF000FFF800FFFC00FFBF80FFBFF8FF9FF8FF9FF8FF8FF8FF87F8FF81F87F0078> 24 33 -4 0 26.699] 114 @dc +[<7F8003FCFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC0 + 07FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFE007FEFFE007FEFFF007FE + FFF007FEFFF80FFEFFFE0FFEFFDFFFFCFFCFFFFCFFC7FFF8FFC1FFF07F807F80> 32 33 -4 0 40.248] 110 @dc +[<7FC0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000 + FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000 + FFFFFFF000FFFFFFFE00FFFFFFFF00FFFFFFFFC0FFFFFFFFE0FFE003FFF0FFE0007FF0FFE0003FF8FFE0001FF8FFE0001FF8 + FFE0001FFCFFE0001FFCFFE0000FFCFFE0000FFCFFE0000FFCFFE0000FFCFFE0000FFCFFE0001FFCFFE0001FFCFFE0001FF8 + FFE0001FF8FFE0003FF8FFE0007FF0FFE003FFF0FFFFFFFFE0FFFFFFFFC0FFFFFFFF80FFFFFFFF00FFFFFFF8007FFFFFC000> 40 50 -7 0 50.410] 80 @dc +[<01FC03FC07FF87FE1FFFE7FE3FFFF7FE3FFFFFFE7FF07FFE7FE01FFEFFE00FFEFFC007FEFFC007FEFFC007FEFFC007FEFFE0 + 07FE7FE007FE7FF007FE3FF807FE0FFF07FE03FFFFFE00FFFFFE000FFFFE000007FE000007FE000007FE0C0007FE0E0007FE + 0F0007FE0F800FFC0FE01FFC0FFFFFF80FFFFFF803FFFFE000FFFF80001FFC00> 32 33 -2 0 37.658] 97 @dc +[<001FFF800001FFFFF80007FFFFFE001FFFFFFF803FFFFFFFC07FF000FFE07FC0003FE0FF80001FF0FF00000FF0FF00000FF0 + FF00000FF0FF00000FF0FF00001FF07F80007FF07FFFFFFFF01FFFFFFFE007FFFFFFE007FFFFFFC00FFFFFFF800FFFFFFF00 + 0FFFFFFC001FFFFFC0001F800000001F000000000F000000000E1FF000000EFFFE000007FFFF800007FFFFC0000FFFFFE000 + 1FF83FF0001FF01FF0003FE00FF8003FE00FF8003FE00FF8003FE00FF8003FE00FF8003FE00FF8003FE00FF8003FE00FF800 + 3FE00FF8001FF01FF0001FF83FF0000FFFFFE1F007FFFFFFF003FFFFFFF000FFFE1FF0001FF003E0> 40 48 -1 15 39.451] 103 @dc +[<0001F00003F00007E0000FC0001FC0003F80007F0000FF0000FE0001FE0003FC0003FC0007FC0007F8000FF8000FF8001FF0 + 001FF0001FF0003FF0003FE0003FE0007FE0007FE0007FE0007FE0007FC0007FC000FFC000FFC000FFC000FFC000FFC000FF + C000FFC000FFC000FFC000FFC000FFC000FFC000FFC000FFC000FFC000FFC0007FC0007FC0007FE0007FE0007FE0007FE000 + 3FE0003FE0003FF0001FF0001FF0001FF0000FF8000FF80007F80007FC0003FC0003FC0001FE0000FE0000FF00007F00003F + 80001FC0000FC00007E00003F00001F0> 24 72 -6 18 30.684] 40 @dc +[<001FF0000000FFFF000007FFFFC0000FFFFFE0003FFFFFF0007FFFFFF800FFFFFFFC00FFE03FFC00FF001FFE00FC000FFE00 + 78000FFE00700007FF00600007FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF00000007FF00 + 000007FE0000000FFE0000000FFC0000001FF80000003FF000003FFFE000003FFF8000003FFC0000003FFF0000003FFF8000 + 0000FFC00000007FE00000003FF00000003FF80000001FF80000001FF80000001FFC0000001FFC0000000FFC0000000FFC00 + 0C000FFC001E000FFC001E001FFC003F001FFC007FC01FF8007FF03FF8003FFFFFF0001FFFFFF0000FFFFFE00003FFFF8000 + 00FFFE0000001FF00000> 40 52 -3 1 39.451] 51 @dc +[<7F83FC0000FFCFFF0000FFFFFFC000FFFFFFF000FFFFFFF800FFF03FF800FFE00FFC00FFC00FFE00FFC007FE00FFC007FE00 + FFC003FE00FFC003FF00FFC003FF00FFC003FF00FFC003FF00FFC003FF00FFC003FF00FFC003FF00FFC003FF00FFC003FF00 + FFC003FF00FFC003FF00FFC003FF00FFC007FE00FFC007FE00FFC007FE00FFE00FFC00FFF81FFC00FFFFFFF800FFFFFFF000 + FFDFFFE000FFC7FF8000FFC1FE0000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000 + FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC00000007F80000000> 40 50 -4 0 40.248] 98 @dc +[<007F800000FFF80001FFFE0003FFFF8003FFFF8007FF0F8007FF070007FE030007FE000007FE000007FE000007FE000007FE + 000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE0000 + 07FE000007FE000007FE00007FFFFC00FFFFFE00FFFFFE00FFFFFE007FFFFC0007FE000007FE000007FE000007FE000007FE + 000007FE000007FE000007FE000003FC0000> 32 42 -1 0 28.991] 116 @dc +[<001FFE000000FFFFC00003FFFFF00007FFFFF8000FFFFFFC001FFC0FFE003FF003FF003FF003FF007FE001FF807FE001FF80 + 7FC000FF80FFC000FFC0FFC000FFC0FFC000FFC0FFC000FFC0FFC000FFC0FFC000FFC0FFC000FFC0FFC000FFC0FFC000FFC0 + FFC000FFC07FC000FF807FC000FF807FE001FF807FE001FF803FE001FF003FF003FF001FFC0FFE000FFFFFFC0007FFFFF800 + 03FFFFF00000FFFFC000000FFC0000> 40 33 -2 0 39.451] 111 @dc +[<7F8001FE0007F8FFC003FF000FFCFFC003FF000FFCFFC003FF000FFCFFC003FF000FFCFFC003FF000FFCFFC003FF000FFCFF + C003FF000FFCFFC003FF000FFCFFC003FF000FFCFFC003FF000FFCFFC003FF000FFCFFC003FF000FFCFFC003FF000FFCFFC0 + 03FF000FFCFFC003FF000FFCFFC003FF000FFCFFC003FF000FFCFFC003FF000FFCFFC003FF000FFCFFC003FF000FFCFFC003 + FF000FFCFFE003FF800FFCFFE003FF800FFCFFF003FFC00FFCFFF003FFC00FFCFFF807FFE01FFCFFFE07FFF81FFCFFDFFFFE + 7FFFF8FFCFFFFE3FFFF8FFC7FFFC1FFFF0FFC1FFF007FFC07F803FC000FF00> 56 33 -4 0 62.166] 109 @dc +[<00FFC0000FFFF0003FFFFC00FFFFFE00FFFFFF00FFFFFF00FF807F807E007F8078003F8070003F8060007F800000FF80000F + FF8000FFFF8003FFFF0007FFFF001FFFFE001FFFFC003FFFF8003FFFE0007FFF80007FF000007F8000007F0000007F000600 + 7F001E007F807E003FFFFF003FFFFF001FFFFF000FFFFF0003FFFC0000FFC000> 32 33 -2 0 30.246] 115 @dc +[ 24 72 -4 18 30.684] 41 @dc +[ 300 ] /cmti10.300 @newfont +cmti10.300 @sf +[<180020000018003000001C003000001C003800001E003800001E007400001D007400001D007200001C807200001C80710000 + 1C407100001C407080001C207080001C107040001C107040001C087020001C087010001C047010001C047008001C02700800 + 1C027004001C0170040038017002003800F002003800F0010038007001803C007001C0FF83FF0FF0> 40 28 -9 0 41.464] 87 @dc +[<3C0072007200710071007100380038001C001C001C000E008E008E004700470026001C000000000000000000000000000000 + 010003800180> 16 28 -4 0 12.730] 105 @dc +[<300E00701900383880383840381C40381C401C1C001C0E001C0E001C0E000E07000E07008E07008E07004707004687002646 + 003C3C00> 24 18 -4 0 23.338] 110 @dc +[<3C380062640061E400C0E200C0E200E0E200E07000E07000E07000E07000703800703800303800383800181C000C3C00063C + 0003DC00000E00000E00000E00000E00000700000700000700000700000380000380001F80> 24 29 -5 0 21.216] 100 @dc +[<1E00318060C0E060E030E038E018E01CE01CE01C700E700E300E380C180C0C0C071801E0> 16 18 -5 0 21.216] 111 @dc +[<07C3C0000C2630001C1C1000181C0800181C0400180C04001C0E04001C0E02001C0E02001C0E02000E0701000E0701008707 + 0100870701004703830047038700270387001E018300> 32 18 -4 0 27.581] 119 @dc +[ 32 28 -3 0 30.856] 78 @dc +[<3C380062640061E400C0E200C0E200E0E200E07000E07000E07000E07000703800703800303800383800181C000C3C00063C + 0003CC00> 24 18 -5 0 21.216] 97 @dc +[<300C01C0701C0320380E0710380E0708380E0388380E03881C0703801C0701C01C0701C01C0701C00E0380E00E0380E08E03 + 80E08E0380E04703C0E04683A0E0266318C03C1E0780> 32 18 -4 0 33.946] 109 @dc +[<1F0030C060206010E008E000E000E000E000E0007F8070607010381018080C10071001E0> 16 18 -5 0 19.094] 101 @dc +[<1F0030C06020E010E008E000E000E000E000E0007000700030003838181C0C08070801F0> 16 18 -5 0 19.094] 99 @dc +[<0E00190038803840384038401C001C001C001C000E000E000E000E00070007000700FFE0038003800380038001C001C001C0 + 00C0> 16 26 -3 0 13.790] 116 @dc +[<1F0060C08060C030E03060300038007807F00FF01FC01F001C0018180C1C0C08060801F0> 16 18 -3 0 16.973] 115 @dc +[<780000CC0000E60000C6000007000003000003000003800003800003800001C00001C00001C00001C00001C00000E00000E0 + 0000E00000E00000E00000700000700000700000700000700003FF80003800003800003800003800003800001C00001C0000 + 1C60000C700006700003C0> 24 37 1 8 12.730] 102 @dc +[ 300 ] /line10.300 @newfont +line10.300 @sf +[<000000000600060006000F000F000F001F801F801F803FC03FC07FE07FE0FFF0FFF0> 16 17 6 0 41.510] 63 @dc +[ 300 ] /cmr10.300 @newfont +cmr10.300 @sf +[ 16 18 -1 0 18.449] 122 @dc +[<03F0000E1C00180600300300700380600180E001C0E001C0E001C0E001C0E001C0E001C06001807003803003001806000E1C + 0003F000> 24 18 -1 0 20.755] 111 @dc +[ 40 18 -1 0 34.592] 109 @dc +[<07F8001C0E00300300600180C000C0C000C0C000C06001C03003801FFF801FFF001FF80018000030000010000013C0000C30 + 001C3800181800381C00381C00381C00381C001818001C38800C3CC003C380> 24 27 -1 9 20.755] 103 @dc +[<1F8700304E80603C40E01C40E01C40E01C40601C00701C00381C000F1C0001FC00001C00001C00301C00781C007838003070 + 001FC000> 24 18 -2 0 20.755] 97 @dc +[<07C7E00C3700180F00300700700700600700E00700E00700E00700E00700E00700E00700600700700700300700180F000C17 + 0003E700000700000700000700000700000700000700000700000700000700000700003F00> 24 29 -2 0 23.061] 100 @dc +[<03E00C181804300270026000E000E000E000E000FFFEE0066006700E300C18180C3003E0> 16 18 -1 0 18.449] 101 @dc +[<03C00E200C101C101C101C101C101C101C001C001C001C001C001C001C001C001C00FFE03C001C000C000C00040004000400 + 0400> 16 26 -1 0 16.143] 116 @dc +[<00400000E00000E00000E00001D00001D00003D8000388000388000704000704000704000E02000E02001C01001C01003C03 + 80FF07E0> 24 18 -1 0 21.908] 118 @dc +[ 24 29 -1 0 23.061] 104 @dc +[ 16 18 -1 0 16.258] 114 @dc +line10.300 @sf +[ 16 15 6 -25 41.510] 54 @dc +cmr10.300 @sf +[<07C00C301808300470046000E000E000E000E000E000E00060007030307818780C3007E0> 16 18 -2 0 18.449] 99 @dc +[ 24 18 -1 0 23.061] 110 @dc +[<10F8001906001E03001C01801C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C00C01C01C01C01801E03001D86 + 001C7C001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0000FC0000> 24 29 -1 0 23.061] 98 @dc +[<8FC0D060E010C018C0188018803800F80FF03FE07F80F800E010C010C010403030701F90> 16 18 -1 0 16.373] 115 @dc +[ 16 29 -1 0 11.531] 105 @dc +cmti10.300 @sf +[<078E001C59001839001838803838803838801C1C001C1C001C1C001C1C000E0E000E0E00870E00870E004707004707002707 + 001E0300> 24 18 -4 0 22.277] 117 @dc +[<81C043E067F03830100808080400020001000080004000200010100808380FEC07C20382> 16 18 -3 0 16.973] 122 @dc +[<38006800E400E400E400E400700070007000700038003800380038001C001C001C001C000E000E000E000E00070007000700 + 0700038003801F80> 16 29 -4 0 10.608] 108 @dc +[<3000007000003800003800003800003800001C00001C00001C00001C00000E00000E00008E00008E060047070046870026C2 + 003C3C00> 24 18 -4 0 17.503] 114 @dc +cmr10.300 @sf +[ 24 28 -2 0 25.367] 90 @dc +[<001FC08000E0318003800B80070007800E0007801C0007803C000780380007807800078070000780F0000F80F000FFF0F000 + 0000F0000000F0000000F0000000F0000000F00000007000008078000080380000803C0001801C0001800E00038007000780 + 03800B8000E03180001FC080> 32 28 -2 0 32.574] 71 @dc +[<83F800CC0E00F00300C00300C001808001C08001C08001C00001C00003C00003C0000F8000FF8007FF001FFE003FF8007FC0 + 007C0000F00000F00000E00080E00080E000806001807003803007801C198007E080> 24 28 -2 0 23.061] 83 @dc +[ 300 ] /cmbx10.300 @newfont +cmbx10.300 @sf +[ 32 28 -2 0 33.957] 66 @dc +[<01FC000F07801E03C03C01E07800F07800F0F800F8F800F8F800F8F800F8F800F8F800F87800F07800F03C01E01C01C00F07 + 8001FC00> 24 18 -1 0 23.868] 111 @dc +[ 24 18 -1 0 19.660] 114 @dc +[<03F9FE0F0FFE1C03F03C01F07801F07801F0F801F0F801F0F801F0F801F0F801F0F801F07801F07801F03C01F01C03F00F07 + F001F9F00001F00001F00001F00001F00001F00001F00001F00001F00001F0000FF0000FF0> 24 29 -2 0 26.520] 100 @dc +[<01FC000F03801E00C03C00607C0060780000F80000F80000F80000FFFFE0F801E0F801E07801E07801C03C01C01C03800F07 + 0001FC00> 24 18 -1 0 21.879] 101 @dc +[ 16 18 -2 0 18.829] 115 @dc +cmr10.300 @sf +[ 24 28 -2 0 25.944] 76 @dc +[ 40 28 -2 0 38.051] 77 @dc +[ 32 28 -2 0 30.556] 82 @dc +[<008020000180300001C0700001C0700003C0680003A0E80003A0E8000720C4000711C4000711C4000E1182000E0B82000E0B + 82001C0B01001C0701001C0701803C0F0380FF3FCFE0> 32 18 -1 0 29.979] 119 @dc +[<03E3F00E1B800C07801C07801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03 + 80FC1F80> 24 18 -1 0 23.061] 117 @dc +[ 300 ] /cmcsc10.300 @newfont +cmcsc10.300 @sf +[<8FC0F060C03080108018801800180038007803F01FE03FC07E00E000C000C010C010C030603030F01F10> 16 21 -2 0 19.002] 115 @dc +[ 24 21 -1 0 25.459] 104 @dc +[ 16 21 -1 0 12.545] 105 @dc +[ 24 21 -1 0 22.231] 102 @dc +[<07FF000070000070000070000070000070000070000070000070000070000070000070000070000070008070088070088070 + 084070104070106070307FFFF0> 24 21 -1 0 24.537] 116 @dc +[ 300 ] /cmsy10.300 @newfont +cmsy10.300 @sf +[<0200020002000200020002000700070007000700070007000700070007000700070007000700070007000700020002007270 + FFF872700200020002000700070007000700070007000200> 16 37 -2 8 18.449] 121 @dc +cmr10.300 @sf +[ 48 1 0 -11 41.510] 124 @dc +cmti10.300 @sf +[<6000F00078003000000000000000000000000000000000000000000006000F000F000600> 16 18 -4 0 12.730] 58 @dc +cmr10.300 @sf +[ 24 41 -2 10 20.755] 47 @dc +[<60F0F060> 8 4 -4 0 11.531] 46 @dc +cmbx10.300 @sf +[ 40 28 -2 0 37.359] 72 @dc +[<0FE1F83E13F8780BC0F807C0F807C0F807C07C07C03C07C01F07C007E7C0007FC00007C01C07C03E07C03E07803E0F801C1E + 000FF800> 24 18 -1 0 23.205] 97 @dc +cmr10.300 @sf +[<003F800001E0F0000380380007001C000E000E001C0007003C00078038000380780003C0780003C0F00001E0F00001E0F000 + 01E0F00001E0F00001E0F00001E0F00001E0F00001E0700001C0780003C038000380380003801C0007000E000E0007001C00 + 0380380001E0F000003F8000> 32 28 -2 0 32.286] 79 @dc +[ 16 29 -1 0 11.531] 108 @dc +cmbx10.300 @sf +[ 24 28 -3 0 29.172] 90 @dc +[ 40 18 -1 0 39.780] 109 @dc +[<000FF81800007FFE780001FC07F80007E001F8000F8001F8001F0001F8003F0001F8003E0001F8007E0001F8007C0001F800 + FC007FFF00FC007FFF00FC00000000FC00000000FC00000000FC00000000FC00000000FC000000007C000018007E00001800 + 3E000038003F000038001F000078000F8000780007E001F80001FC07F800007FFE3800000FF00800> 40 28 -3 0 37.532] 71 @dc +[<07FF001E03C07800F0700070F00078F00078F000787801F81FFFF00FFFE01FFFC01FFF001800001800001000001BF8000E0E + 001E0F001C07003C07803C07803C07803C07801C07301E0F380E0F3803F8F0> 24 27 -1 9 23.868] 103 @dc +[<03F007980F081F0C1F0C1F0C1F0C1F001F001F001F001F001F001F001F001F00FFFC3FFC0F000F0007000700030003000300 + 0300> 16 26 -1 0 18.564] 116 @dc +cmcsc10.300 @sf +[<00FC000783000E00801C0040380040780020700020F00020F00000F00000F00000F00000F00000F000207000207800203800 + 601C00E00E01E007826000FC20> 24 21 -2 0 24.537] 99 @dc +[ 24 21 -1 0 24.998] 114 @dc +[ 24 21 -1 0 21.308] 108 @dc +[ 16 2 -1 -8 15.681] 45 @dc +[ 300 ] /cmmi10.300 @newfont +cmmi10.300 @sf +[<60F0F060> 8 4 -4 0 11.531] 58 @dc +cmbx10.300 @sf +[ 48 28 -2 0 45.315] 77 @dc +[<00300000780000780000FC0000FC0001FE0001F60001F60003E30003E30007C18007C1800FC0C00F80C01F80E01F0060FFC1 + FCFFC1FC> 24 18 -1 0 25.194] 118 @dc +cmr10.300 @sf +[ 24 18 0 0 21.908] 120 @dc +cmbx10.300 @sf +[ 40 28 -2 0 35.802] 82 @dc +[<07FFFE0007FFFE00001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F + 8000001F8000001F8000001F8000001F8000001F8000C01F8030C01F8030C01F8030C01F8030E01F8070601F8060701F80E0 + 781F81E07FFFFFE07FFFFFE0> 32 28 -2 0 33.208] 84 @dc +[ 32 28 -2 0 28.711] 76 @dc +[ 24 28 -1 0 18.103] 73 @dc +[<03F8000E0E001C03003C0180780180780000F80000F80000F80000F80000F80000F80000780E00781F003C1F001C1F000E0E + 0003FC00> 24 18 -2 0 21.216] 99 @dc +[ 32 18 -1 0 26.520] 110 @dc +cmr10.300 @sf +[ 24 26 -1 8 23.061] 112 @dc +[<7FE00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFE00E000E000E000E000E000E000E0C + 061E071E018C00F8> 16 29 0 0 12.684] 102 @dc +[ 24 29 -1 0 21.908] 107 @dc +cmbx10.300 @sf +[ 24 29 -1 0 25.194] 107 @dc +[<01F8FF000786FF000F01F8001F01F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00 + F8001F00F8001F00F8001F00F800FF07F800FF07F800> 32 18 -1 0 26.520] 117 @dc +[ 40 28 -2 0 37.359] 78 @dc +[<003FE00001F07C0003C01E000F800F801F0007C03F0007E03E0003E07E0003F07E0003F07C0001F0FC0001F8FC0001F8FC00 + 01F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F87C0001F07C0001F07E0003F03E0003E01E0003C01F0007C00F800F80 + 03C01E0001F07C00003FE000> 32 28 -3 0 35.860] 79 @dc +[ 32 28 -2 0 31.363] 69 @dc +[<83FC00EFFF00FC03C0F001C0E000E0C000E0C000F0C000F00000F00001F00003F0007FE007FFE00FFFC03FFF803FFF007FFE + 00FFE000FE0000F80000F00060F00060F000E07000E07801E03C07E01FFEE007F820> 24 28 -3 0 26.520] 83 @dc +[<78FCFCFCFC7800000000000078FCFCFCFC78> 8 18 -3 0 13.260] 58 @dc +cmsy10.300 @sf +[<07E0001FF8003FFC007FFE007FFE00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF007FFE007FFE003FFC001FF80007E000> 24 16 -2 -2 20.755] 15 @dc +cmr10.300 @sf +[<03FFFC00001F8000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F + 0000000F0000000F0000000F0000000F0000000F0000000F0000800F0020800F0020800F0020C00F0020400F0040400F0040 + 600F00C0700F01C07FFFFFC0> 32 28 -1 0 29.979] 84 @dc +cmcsc10.300 @sf +[ 32 28 -3 0 33.208] 82 @dc +[ 16 28 -3 0 16.834] 73 @dc +[<001FE04000F018C0018005C0070003C00E0003C01C0003C03C0003C0380003C0780003C0780003C0F00007C0F0007FF8F000 + 0000F0000000F0000000F0000000F0000000F00000007800004078000040380000403C0000C01C0000C00E0001C0070003C0 + 018005C000F038C0001FC040> 32 28 -3 0 35.341] 71 @dc +[ 32 28 -3 0 33.784] 72 @dc +[<03FFFC00001F8000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F + 0000000F0000000F0000000F0000000F0000000F0000000F0000800F0020800F0020800F0020C00F0020400F0040400F0040 + 600F00C0700F01C07FFFFFC0> 32 28 -3 0 32.631] 84 @dc +cmr10.300 @sf +[ 32 28 -1 0 31.133] 65 @dc +[<003FE000070000070000070000070000070000070000070007C7000C3700180F00300F00700700600700E00700E00700E007 + 00E00700E00700E00700700700700700300F00180B000C330003C100> 24 26 -2 8 21.908] 113 @dc +[<7F87F80E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01 + C0FFFFC00E00000E00000E00000E00000E00000E01800E03C00703C003018001C180007E00> 24 29 0 0 23.061] 12 @dc +[<001FC00000E0300003800800070004000E0002001C0001003C000100380000807800008070000080F0000000F0000000F000 + 0000F0000000F0000000F0000000F0000000F00000007000008078000080380000803C0001801C0001800E00038007000780 + 03800B8000E03180001FC080> 32 28 -2 0 29.979] 67 @dc +cmcsc10.300 @sf +[ 24 28 -3 0 28.365] 76 @dc +[ 32 28 -3 0 30.786] 69 @dc +[ 32 28 -3 0 29.576] 70 @dc +[ 40 28 -3 0 41.048] 77 @dc +[ 32 28 -3 0 34.418] 68 @dc +cmr10.300 @sf +[<804020201010101070F0F060> 8 12 -4 8 11.531] 44 @dc +[<3C0000660000F30000F10000F0800000800000800000400000400000E00000E00000E00001D00001D00003D8000388000388 + 000704000704000704000E02000E02001C01001C01003C0380FF07E0> 24 26 -1 8 21.908] 121 @dc +[<07C000187000201800401C00800E00F00E00F00F00F00F00600F00000F00000F00000E00000E00201C00301C002C380023E0 + 002000002000002000002000002000002000003FC0003FF0003FF800300C00> 24 27 -2 0 20.755] 53 @dc +[<07E0000C3000181800300C00700E00700E00600600E00700E00700E00700E00700E00700E00700E00700E00700E00700E007 + 00E00700E00700E00700600600600600700E00300C001818000C300007E000> 24 27 -2 0 20.755] 48 @dc +[<1F800021C00070F000F87000F87800F878007078000078000078000078000078000078000078000078000078000078000078 + 0000780000780000780000780000780000780000780000780000780000F8001FFF00> 24 28 -1 0 21.332] 74 @dc +[ 16 27 -4 0 20.755] 49 @dc +[<0F800030E000203000701800781800780C00300E00000E0000060000070007C7001C2700301700300F00600F00E00700E007 + 00E00700E00700E00600E00600E00E00600C00300C001818000C300007E000> 24 27 -2 0 20.755] 57 @dc +[<07E000181800300400600600C00200C00300C00300C00300C00700600F00601E00307E0018FC0007F80007F0001FE0003F90 + 003E0800780C00700600600600600600600600200C00100C0008380007E000> 24 27 -2 0 20.755] 56 @dc +1 @bop1 +199 -47 p 181 3 ru +199 126 p 3 174 ru +177 r 3 174 ru +199 130 p 181 3 ru +cmbx8.300 @sf +278 110 p 82 c +-2 r (TL) s +cmbx5.300 @sf +204 -9 p (Siemens) s +202 13 p 116 3 ru +260 72 p 116 3 ru +258 128 p 3 116 ru +316 70 p 3 116 ru +cmssbx10.518 @sf +429 57 p (Quick) s +26 r (Reference) s +26 r 80 c +-1 r (age) s +26 r (\(3) s +26 r (button) s +26 r (mouse\)) s +-2 357 p 837 3 ru +-2 772 p 3 415 ru +832 r 3 415 ru +-2 776 p 837 3 ru +7 366 p 817 2 ru +7 765 p 2 398 ru +815 r 2 398 ru +7 767 p 817 2 ru +8 443 p 814 2 ru +66 442 p 2 75 ru +697 r 2 75 ru +2 770 p 3 37 ru +4 772 p 37 3 ru +-1 774 p 3 42 ru +0 776 p 42 3 ru +2 400 p 3 37 ru +4 365 p 37 3 ru +-1 400 p 3 42 ru +0 361 p 42 3 ru +824 770 p 3 37 ru +789 772 p 37 3 ru +829 774 p 3 42 ru +789 776 p 42 3 ru +824 400 p 3 37 ru +789 365 p 37 3 ru +829 400 p 3 42 ru +789 361 p 42 3 ru +33 405 p 8 8 ru +cmti10.300 @sf +91 415 p (Window) s +15 r (Name) s +235 618 p 99 c +-1 r (ontents) s +13 r (of) s +15 r (window) s +37 388 p 2 112 ru +line10.300 @sf +0 r 63 c +cmr10.300 @sf +29 268 p (zo) s +1 r (om) s +14 r (gadget) s +792 388 p 2 112 ru +line10.300 @sf +1 r 63 c +cmr10.300 @sf +679 268 p (mo) s +0 r 118 c +-1 r 101 c +13 r (gadget) s +414 388 p 2 112 ru +line10.300 @sf +1 r 63 c +cmr10.300 @sf +355 268 p (header) s +7 857 p 2 83 ru +line10.300 @sf +8 816 p 54 c +cmr10.300 @sf +0 894 p (corner) s +14 r 98 c +1 r (order) s +497 857 p 2 83 ru +line10.300 @sf +498 816 p 54 c +cmr10.300 @sf +397 894 p (side) s +14 r 98 c +1 r (order) s +1436 317 p 70 2 ru +1436 400 p 2 83 ru +1463 366 p 17 17 ru +1504 400 p 2 83 ru +1436 401 p 70 2 ru +cmti10.300 @sf +1521 373 p (unzo) s +-1 r (ome) s +-2 r 100 c +1436 441 p 70 2 ru +1436 524 p 2 83 ru +68 r 2 83 ru +1436 526 p 70 2 ru +1453 458 p 37 2 ru +1453 508 p 2 50 ru +35 r 2 50 ru +1453 509 p 37 2 ru +1521 498 p (zo) s +-1 r (ome) s +-2 r 100 c +1436 566 p 70 2 ru +1436 649 p 2 83 ru +1463 615 p 17 17 ru +1504 649 p 2 83 ru +1436 650 p 70 2 ru +1438 609 p 66 2 ru +1538 672 p (zo) s +-2 r (om) s +14 r (tie) s +-1 r 100 c +14 r (to) s +15 r (listener) s +1436 690 p 70 2 ru +1436 773 p 2 83 ru +68 r 2 83 ru +1436 775 p 70 2 ru +1453 707 p 37 2 ru +1453 757 p 2 50 ru +35 r 2 50 ru +1453 758 p 37 2 ru +1438 733 p 66 2 ru +cmr10.300 @sf +1418 843 p (Zo) s +1 r (om) s +14 r (Gadget) s +13 r (States) s +0 943 p 1950 2 ru +174 987 p 813 2 ru +173 1036 p 2 50 ru +cmbx10.300 @sf +499 1021 p (Borders) s +986 1036 p 2 50 ru +174 1038 p 813 2 ru +173 1088 p 2 50 ru +154 r 2 50 ru +cmr10.300 @sf +399 1073 p 76 c +133 r 77 c +211 r 82 c +986 1088 p 2 50 ru +174 1089 p 813 2 ru +173 1139 p 2 50 ru +154 r 2 50 ru +362 1124 p (resize) s +68 r (mo) s +0 r 118 c +-1 r 101 c +74 r (windo) s +-1 r 119 c +13 r (men) s +0 r 117 c +986 1139 p 2 50 ru +173 1189 p 2 50 ru +cmcsc10.300 @sf +199 1174 p (shift) s +327 1189 p 2 50 ru +cmr10.300 @sf +353 1174 p (resize) s +cmsy10.300 @sf +0 r 121 c +cmr10.300 @sf +50 r (mo) s +-1 r 118 c +-1 r 101 c +cmsy10.300 @sf +0 r 121 c +cmr10.300 @sf +168 r 124 c +986 1189 p 2 50 ru +174 1191 p 813 2 ru +173 1241 p 2 50 ru +cmti10.300 @sf +199 1226 p (Note:) s +cmr10.300 @sf +21 r (Side) s +14 r 98 c +1 r (orders) s +14 r (constrain) s +14 r (mo) s +0 r 118 c +-2 r (e/resize.) s +986 1241 p 2 50 ru +174 1242 p 813 2 ru +1162 987 p 614 2 ru +1161 1036 p 2 50 ru +cmbx10.300 @sf +1393 1021 p (Header) s +1775 1036 p 2 50 ru +1162 1038 p 614 2 ru +1161 1088 p 2 50 ru +153 r 2 50 ru +cmr10.300 @sf +1377 1073 p 77 c +1476 1088 p 2 50 ru +1611 1073 p 82 c +1775 1088 p 2 50 ru +1162 1089 p 614 2 ru +1161 1139 p 2 50 ru +153 r 2 50 ru +1349 1124 p (mo) s +0 r 118 c +-1 r 101 c +1476 1139 p 2 50 ru +1502 1124 p (windo) s +0 r 119 c +12 r (men) s +0 r 117 c +1775 1139 p 2 50 ru +1161 1189 p 2 50 ru +cmcsc10.300 @sf +1186 1174 p (shift) s +1314 1189 p 2 50 ru +cmr10.300 @sf +1340 1174 p (mo) s +0 r 118 c +-1 r 101 c +cmsy10.300 @sf +0 r 121 c +1476 1189 p 2 50 ru +cmti10.300 @sf +1552 1174 p (to) s +15 r (client) s +1775 1189 p 2 50 ru +1162 1191 p 614 2 ru +1161 1241 p 2 50 ru +1186 1226 p (Note:) s +cmr10.300 @sf +21 r (Other) s +14 r (buttons) s +14 r (to) s +14 r (clien) s +0 r 116 c +1775 1241 p 2 50 ru +1162 1242 p 614 2 ru +136 1290 p 810 2 ru +135 1340 p 2 50 ru +cmbx10.300 @sf +398 1325 p (Zo) s +1 r (om) s +16 r (Gadget) s +945 1340 p 2 50 ru +136 1342 p 810 2 ru +135 1392 p 2 50 ru +265 r 2 50 ru +cmr10.300 @sf +542 1377 p 76 c +179 r 77 c +78 r 82 c +945 1392 p 2 50 ru +136 1393 p 810 2 ru +135 1443 p 2 50 ru +265 r 2 50 ru +502 1428 p (desire) s +133 r 124 c +77 r 124 c +945 1443 p 2 50 ru +135 1493 p 2 50 ru +cmcsc10.300 @sf +272 1478 p (shift) s +400 1493 p 2 50 ru +cmr10.300 @sf +425 1478 p (zo) s +2 r (om/unzo) s +1 r (om) s +55 r 124 c +77 r 124 c +945 1493 p 2 50 ru +135 1543 p 2 50 ru +cmcsc10.300 @sf +280 1528 p (ctrl) s +400 1543 p 2 50 ru +cmr10.300 @sf +490 1528 p (enlarge) s +119 r 124 c +77 r 124 c +945 1543 p 2 50 ru +135 1593 p 2 50 ru +cmcsc10.300 @sf +161 1578 p (ctrl-shift) s +400 1593 p 2 50 ru +cmmi10.300 @sf +433 1578 p 58 c +7 r 58 c +6 r 58 c +7 r 58 c +7 r 58 c +7 r 58 c +cmr10.300 @sf +7 r (redra) s +0 r 119 c +cmmi10.300 @sf +6 r 58 c +7 r 58 c +7 r 58 c +7 r 58 c +7 r 58 c +7 r 58 c +cmr10.300 @sf +57 r (close) s +945 1593 p 2 50 ru +136 1594 p 810 2 ru +1095 1290 p 705 2 ru +1095 1340 p 2 50 ru +cmbx10.300 @sf +1307 1325 p (Mo) s +0 r 118 c +-1 r 101 c +15 r (Gadget) s +1799 1340 p 2 50 ru +1095 1342 p 705 2 ru +1095 1392 p 2 50 ru +264 r 2 50 ru +cmr10.300 @sf +1400 1377 p 76 c +113 r 77 c +140 r 82 c +1799 1392 p 2 50 ru +1095 1393 p 705 2 ru +1095 1443 p 2 50 ru +264 r 2 50 ru +1385 1428 p 124 c +61 r (relo) s +1 r (cate) s +83 r 124 c +1799 1443 p 2 50 ru +1095 1493 p 2 50 ru +cmcsc10.300 @sf +1231 1478 p (shift) s +1359 1493 p 2 50 ru +cmr10.300 @sf +1385 1478 p 124 c +85 r (mo) s +0 r 118 c +-1 r 101 c +106 r 124 c +1799 1493 p 2 50 ru +1095 1543 p 2 50 ru +cmcsc10.300 @sf +1240 1528 p (ctrl) s +1359 1543 p 2 50 ru +cmr10.300 @sf +1385 1528 p 124 c +50 r (exc) s +0 r (hange) s +70 r 124 c +1799 1543 p 2 50 ru +1095 1593 p 2 50 ru +cmcsc10.300 @sf +1120 1578 p (ctrl-shift) s +1359 1593 p 2 50 ru +cmmi10.300 @sf +1394 1578 p 58 c +6 r 58 c +7 r 58 c +cmr10.300 @sf +9 r (redra) s +0 r 119 c +cmmi10.300 @sf +8 r 58 c +6 r 58 c +7 r 58 c +cmr10.300 @sf +59 r (close) s +1799 1593 p 2 50 ru +1095 1594 p 705 2 ru +410 1642 p 1131 2 ru +409 1692 p 2 50 ru +cmbx10.300 @sf +875 1677 p 82 c +-3 r (TL) s +15 r (Icon) s +1540 1692 p 2 50 ru +410 1694 p 1131 2 ru +409 1744 p 2 50 ru +264 r 2 50 ru +cmr10.300 @sf +836 1729 p 76 c +236 r 77 c +231 r 82 c +1540 1744 p 2 50 ru +410 1745 p 1131 2 ru +409 1795 p 2 50 ru +264 r 2 50 ru +699 1780 p (deselect) s +14 r (listener) s +85 r (mo) s +0 r 118 c +-1 r 101 c +84 r (manager) s +13 r (men) s +0 r 117 c +1540 1795 p 2 50 ru +409 1845 p 2 50 ru +cmcsc10.300 @sf +546 1830 p (shift) s +673 1845 p 2 50 ru +cmr10.300 @sf +822 1830 p 124 c +198 r (mo) s +0 r 118 c +-1 r 101 c +cmsy10.300 @sf +0 r 121 c +cmr10.300 @sf +187 r 124 c +1540 1845 p 2 50 ru +409 1895 p 2 50 ru +cmcsc10.300 @sf +554 1880 p (ctrl) s +673 1895 p 2 50 ru +cmr10.300 @sf +822 1880 p 124 c +172 r (exc) s +0 r (hange) s +161 r 124 c +1540 1895 p 2 50 ru +409 1945 p 2 50 ru +cmcsc10.300 @sf +434 1930 p (ctrl-shift) s +673 1945 p 2 50 ru +cmmi10.300 @sf +708 1930 p 58 c +7 r 58 c +7 r 58 c +7 r 58 c +7 r 58 c +7 r 58 c +7 r 58 c +7 r 58 c +cmr10.300 @sf +9 r (redra) s +0 r 119 c +13 r (all) s +cmmi10.300 @sf +9 r 58 c +7 r 58 c +7 r 58 c +7 r 58 c +7 r 58 c +7 r 58 c +7 r 58 c +7 r 58 c +cmr10.300 @sf +171 r 124 c +1540 1945 p 2 50 ru +410 1946 p 1131 2 ru +14 1994 p 912 2 ru +13 2044 p 2 50 ru +cmbx10.300 @sf +425 2029 p (Icon) s +925 2044 p 2 50 ru +14 2046 p 912 2 ru +13 2096 p 2 50 ru +265 r 2 50 ru +cmr10.300 @sf +372 2081 p 76 c +167 r 77 c +190 r 82 c +925 2096 p 2 50 ru +14 2097 p 912 2 ru +13 2147 p 2 50 ru +265 r 2 50 ru +334 2132 p (op) s +2 r (en) s +116 r (mo) s +-1 r 118 c +-1 r 101 c +84 r (icon) s +14 r (men) s +0 r 117 c +925 2147 p 2 50 ru +13 2197 p 2 50 ru +cmcsc10.300 @sf +150 2182 p (shift) s +278 2197 p 2 50 ru +cmti10.300 @sf +303 2182 p (to) s +15 r (client) s +cmr10.300 @sf +76 r (mo) s +0 r 118 c +-1 r 101 c +cmsy10.300 @sf +0 r 121 c +cmti10.300 @sf +93 r (to) s +15 r (client) s +925 2197 p 2 50 ru +13 2247 p 2 50 ru +cmcsc10.300 @sf +158 2232 p (ctrl) s +278 2247 p 2 50 ru +cmti10.300 @sf +303 2232 p (to) s +15 r (client) s +cmr10.300 @sf +50 r (exc) s +0 r (hange) s +cmti10.300 @sf +67 r (to) s +15 r (client) s +925 2247 p 2 50 ru +13 2297 p 2 50 ru +cmcsc10.300 @sf +39 2282 p (ctrl-shift) s +278 2297 p 2 50 ru +cmmi10.300 @sf +311 2282 p 58 c +7 r 58 c +7 r 58 c +7 r 58 c +7 r 58 c +7 r 58 c +cmr10.300 @sf +7 r (redra) s +0 r 119 c +cmmi10.300 @sf +7 r 58 c +7 r 58 c +7 r 58 c +7 r 58 c +7 r 58 c +7 r 58 c +cmr10.300 @sf +82 r (soft) s +14 r (kill) s +925 2297 p 2 50 ru +14 2298 p 912 2 ru +1019 2044 p 917 2 ru +1018 2094 p 2 50 ru +cmbx10.300 @sf +1353 2079 p (Bac) s +0 r (kground) s +1935 2094 p 2 50 ru +1019 2096 p 917 2 ru +1018 2145 p 2 50 ru +265 r 2 50 ru +cmr10.300 @sf +1322 2130 p 76 c +129 r 77 c +248 r 82 c +1935 2145 p 2 50 ru +1019 2147 p 917 2 ru +1018 2197 p 2 50 ru +265 r 2 50 ru +1308 2182 p (deselect) s +14 r (listener) s +50 r (manager) s +14 r (men) s +0 r 117 c +1935 2197 p 2 50 ru +1018 2247 p 2 50 ru +cmcsc10.300 @sf +1044 2232 p (ctrl-shift) s +1283 2247 p 2 50 ru +cmmi10.300 @sf +1320 2232 p 58 c +7 r 58 c +cmr10.300 @sf +11 r (redra) s +0 r 119 c +13 r (all) s +cmmi10.300 @sf +11 r 58 c +7 r 58 c +cmr10.300 @sf +174 r 124 c +1935 2247 p 2 50 ru +1019 2248 p 917 2 ru +cmbx10.300 @sf +0 2373 p (NOTES:) s +cmsy10.300 @sf +62 2456 p 15 c +cmr10.300 @sf +21 r 84 c +-2 r 111 c +12 r (cancel) s +14 r (an) s +14 r (op) s +1 r (eration) s +14 r (press) s +14 r (the) s +cmcsc10.300 @sf +14 r (RIGHT) s +cmr10.300 @sf +14 r (mouse) s +13 r (button.) s +cmsy10.300 @sf +62 2539 p 15 c +cmr10.300 @sf +21 r 65 c +14 r (question) s +13 r (mark) s +14 r (cursor) s +14 r (is) s +13 r 97 c +14 r (request) s +14 r (for) s +13 r (con\014rmation.) s +19 r (Clic) s +0 r 107 c +12 r (the) s +cmcsc10.300 @sf +14 r (LEFT) s +cmr10.300 @sf +14 r (or) s +cmcsc10.300 @sf +13 r (MIDDLE) s +cmr10.300 @sf +14 r (mouse) s +14 r (button) s +14 r (to) s +104 2589 p (con\014rm,) s +14 r (the) s +cmcsc10.300 @sf +13 r (RIGHT) s +cmr10.300 @sf +14 r (mouse) s +14 r (button) s +14 r (to) s +14 r (cancel.) s +cmsy10.300 @sf +0 2708 p 121 c +cmr10.300 @sf +14 r (with) s +14 r (gra) s +0 r (vit) s +-2 r 121 c +13 r (toggled) s +0 2753 p 1950 2 ru +0 2818 p 82 c +-2 r (TL) s +12 r (Release) s +14 r (5.0) s +1469 r (June) s +14 r (1988) s +@eop +@end diff --git a/doc/postscript/refpage_one5.ps b/doc/postscript/refpage_one5.ps new file mode 100644 index 0000000..5fbf373 --- /dev/null +++ b/doc/postscript/refpage_one5.ps @@ -0,0 +1,1199 @@ +%! for use by dvi2ps Version 2.00 +% a start (Ha!) at a TeX mode for PostScript. +% The following defines procedures assumed and used by program "dvi2ps" +% and must be downloaded or sent as a header file for all TeX jobs. + +% By: Neal Holtz, Carleton University, Ottawa, Canada +% +% +% June, 1985 +% Last Modified: Aug 25/85 +% oystr 12-Feb-1986 +% Changed @dc macro to check for a badly formed bits in character +% definitions. Can get a <> bit map if a character is not actually +% in the font file. This is absolutely guaranteed to drive the +% printer nuts - it will appear that you can no longer define a +% new font, although the built-ins will still be there. + +% To convert this file into a downloaded file instead of a header +% file, uncomment all of the lines beginning with %-% + +%-%0000000 % Server loop exit password +%-%serverdict begin exitserver +%-% systemdict /statusdict known +%-% {statusdict begin 9 0 3 setsccinteractive /waittimeout 300 def end} +%-% if + +/TeXDict 200 dict def % define a working dictionary +TeXDict begin % start using it. + + % units are in "dots" (300/inch) +/Resolution 300 def +/Inch {Resolution mul} def % converts inches to internal units + +/Mtrx 6 array def + +%%%%%%%%%%%%%%%%%%%%% Page setup (user) options %%%%%%%%%%%%%%%%%%%%%%%% + +% dvi2ps will output coordinates in the TeX system ([0,0] 1" down and in +% from top left, with y +ive downward). The default PostScript system +% is [0,0] at bottom left, y +ive up. The Many Matrix Machinations in +% the following code are an attempt to reconcile that. The intent is to +% specify the scaling as 1 and have only translations in the matrix to +% properly position the text. Caution: the default device matrices are +% *not* the same in all PostScript devices; that should not matter in most +% of the code below (except for lanscape mode -- in that, rotations of +% -90 degrees resulted in the the rotation matrix [ e 1 ] +% [ 1 e ] +% where the "e"s were almost exactly but not quite unlike zeros. + +/@letter + { letter initmatrix + 72 Resolution div dup neg scale % set scaling to 1. + 310 -3005 translate % move origin to top (these are not exactly 1" + Mtrx currentmatrix pop % and -10" because margins aren't set exactly right) + } def + % note mode is like letter, except it uses less VM +/@note + { note initmatrix + 72 Resolution div dup neg scale % set scaling to 1. + 310 -3005 translate % move origin to top + Mtrx currentmatrix pop + } def + +/@landscape + { letter initmatrix + 72 Resolution div dup neg scale % set scaling to 1. +% -90 rotate % it would be nice to be able to do this + Mtrx currentmatrix 0 0.0 put % but instead we have to do things like this because what + Mtrx 1 -1.0 put % should be zero terms aren't (and text comes out wobbly) + Mtrx 2 1.0 put % Fie! This likely will not work on QMS printers + Mtrx 3 0.0 put % (nor on others where the device matrix is not like + Mtrx setmatrix % like it is on the LaserWriter). + 300 310 translate % move origin to top + Mtrx currentmatrix pop + } def + +/@legal + { legal initmatrix + 72 Resolution div dup neg scale % set scaling to 1. + 295 -3880 translate % move origin to top + Mtrx currentmatrix pop + } def + +/@manualfeed + { statusdict /manualfeed true put + } def + % n @copies - set number of copies +/@copies + { /#copies exch def + } def + +%%%%%%%%%%%%%%%%%%%% Procedure Defintions %%%%%%%%%%%%%%%%%%%%%%%%%% + +/@newfont % id @newfont - -- initialize a new font dictionary + { /newname exch def + pop + newname 7 dict def % allocate new font dictionary + newname load begin + /FontType 3 def + /FontMatrix [1 0 0 -1 0 0] def + /FontBBox [0 0 1 1] def + /BitMaps 128 array def + /BuildChar {CharBuilder} def + /Encoding 128 array def + 0 1 127 {Encoding exch /.undef put} for + end + newname newname load definefont pop + } def + + +% the following is the only character builder we need. it looks up the +% char data in the BitMaps array, and paints the character if possible. +% char data -- a bitmap descriptor -- is an array of length 6, of +% which the various slots are: + +/ch-image {ch-data 0 get} def % the hex string image +/ch-width {ch-data 1 get} def % the number of pixels across +/ch-height {ch-data 2 get} def % the number of pixels tall +/ch-xoff {ch-data 3 get} def % number of pixels below origin +/ch-yoff {ch-data 4 get} def % number of pixels to left of origin +/ch-tfmw {ch-data 5 get} def % spacing to next character + +/CharBuilder % fontdict ch Charbuilder - -- image one character + { /ch-code exch def % save the char code + /font-dict exch def % and the font dict. + /ch-data font-dict /BitMaps get ch-code get def % get the bitmap descriptor for char + ch-data null eq not + { ch-tfmw 0 ch-xoff neg ch-yoff neg ch-width ch-xoff sub ch-height ch-yoff sub + setcachedevice + ch-width ch-height true [1 0 0 1 ch-xoff ch-yoff] + {ch-image} imagemask + } + if + } def + + +/@sf % fontdict @sf - -- make that the current font + { setfont() pop + } def + + % in the following, the font-cacheing mechanism requires that + % a name unique in the particular font be generated + +/@dc % char-data ch @dc - -- define a new character bitmap in current font + { /ch-code exch def +% ++oystr 12-Feb-86++ + dup 0 get + length 2 lt + { pop [ <00> 1 1 0 0 8.00 ] } % replace <> with null + if +% --oystr 12-Feb-86-- + /ch-data exch def + currentfont /BitMaps get ch-code ch-data put + currentfont /Encoding get ch-code + dup ( ) cvs cvn % generate a unique name simply from the character code + put + } def + +/@bop0 % n @bop0 - -- begin the char def section of a new page + { + } def + +/@bop1 % n @bop1 - -- begin a brand new page + { pop + erasepage initgraphics + Mtrx setmatrix + /SaveImage save def() pop + } def + +/@eop % - @eop - -- end a page + { showpage + SaveImage restore() pop + } def + +/@start % - @start - -- start everything + { @letter % (there is not much to do) + } def + +/@end % - @end - -- done the whole shebang + { end + } def + +/p % x y p - -- move to position + { moveto + } def + +/r % x r - -- move right + { 0 rmoveto + } def + +/s % string s - -- show the string + { show + } def + +/c % ch c - -- show the character (code given) + { c-string exch 0 exch put + c-string show + } def + +/c-string ( ) def + +/ru % dx dy ru - -- set a rule (rectangle) + { /dy exch neg def % because dy is height up from bottom + /dx exch def + /x currentpoint /y exch def def % remember current point + newpath x y moveto + dx 0 rlineto + 0 dy rlineto + dx neg 0 rlineto + closepath fill + x y moveto + } def + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% the \special command junk +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% The structure of the PostScript produced by dvi2ps for \special is: +% @beginspecial +% - any number of @hsize, @hoffset, @hscale, etc., commands +% @setspecial +% - the users file of PostScript commands +% @endspecial + +% The @beginspecial command recognizes whether the Macintosh Laserprep +% has been loaded or not, and redfines some Mac commands if so. +% The @setspecial handles the users shifting, scaling, clipping commands + + +% The following are user settable options from the \special command. + +/@SpecialDefaults + { /hs 8.5 Inch def + /vs 11 Inch def + /ho 0 def + /vo 0 def + /hsc 1 def + /vsc 1 def + /CLIP false def + } def + +% d @hsize - specify a horizontal clipping dimension +% these 2 are executed before the MacDraw initializations +/@hsize {/hs exch def /CLIP true def} def +/@vsize {/vs exch def /CLIP true def} def +% d @hoffset - specify a shift for the drwgs +/@hoffset {/ho exch def} def +/@voffset {/vo excl def} def +% s @hscale - set scale factor +/@hscale {/hsc exch def} def +/@vscale {/vsc exch def} def + +/@setclipper + { hsc vsc scale + CLIP + { newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip } + if + } def + +% this will be invoked as the result of a \special command (for the +% inclusion of PostScript graphics). The basic idea is to change all +% scaling and graphics back to defaults, but to shift the origin +% to the current position on the page. Due to TeXnical difficulties, +% we only set the y-origin. The x-origin is set at the left edge of +% the page. + +/@beginspecial % - @beginspecial - -- enter special mode + { gsave /SpecialSave save def + % the following magic incantation establishes the current point as + % the users origin, and reverts back to default scalings, rotations + currentpoint transform initgraphics itransform translate + @SpecialDefaults % setup default offsets, scales, sizes + @MacSetUp % fix up Mac stuff + } def + +/@setspecial % to setup user specified offsets, scales, sizes (for clipping) + { + MacDrwgs + {md begin /pxt ho def /pyt vo neg def end} + {ho vo translate @setclipper} + ifelse + } def + +/@endspecial % - @endspecial - -- leave special mode + { SpecialSave restore + grestore + } def + +/MacDrwgs false def % will get set if we think the Mac LaserPrep file has been loaded + + % - @MacSetUp - turn-off/fix-up all the MacDraw stuff that might hurt us + % we depend on 'psu' being the first procedure executed + % by a Mac document. We redefine 'psu' to adjust page + % translations, and to do all other the fixups required. + % This stuff will not harm other included PS files +/@MacSetUp + { userdict /md known % if md is defined + { userdict /md get type /dicttype eq % and if it is a dictionary + { /MacDrwgs true def + md begin % then redefine some stuff + /psu % redfine psu to set origins, etc. + /psu load + % this procedure contains almost all the fixup code + { /letter {} def % it is bad manners to execute the real + /note {} def % versions of these (clears page image, etc.) + /legal {} def + statusdict /waittimeout 300 put + /page {pop} def % no printing of pages + /pyt vo neg def % x & y pixel translations + /pxt ho def + } + concatprocs + def + /od % redefine od to set clipping region + /od load + { @setclipper } + concatprocs + def + end } + if } + if + } def + +% p1 p2 concatprocs p - concatenate procedures +/concatprocs + { /p2 exch cvlit def + /p1 exch cvlit def + /p p1 length p2 length add array def + p 0 p1 putinterval + p p1 length p2 putinterval + p cvx + } def + +end % revert to previous dictionary +TeXDict begin @start +%%Title: /usr/cadillac/berman/Papers/Rtl/rtl-ref-page-1b.dvi +%%Creator: dvi2ps +%%EndProlog +1 @bop0 +[ 300 ] /cmbx8.300 @newfont +cmbx8.300 @sf +[ 32 23 -2 0 30.395] 82 @dc +[<07FFF00007FFF000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E + 0000003E0000003E0000C03E0180C03E0180C03E0180E03E0380603E0300783E0F007FFFFF007FFFFF00> 32 23 -1 0 28.296] 84 @dc +[ 24 23 -2 0 24.399] 76 @dc +[ 300 ] /cmbx5.300 @newfont +cmbx5.300 @sf +[ 16 14 -2 0 17.411] 83 @dc +[ 8 15 -1 0 9.051] 105 @dc +[<1F8070C06000E000FFC0E0C060C071801F00> 16 9 -1 0 14.370] 101 @dc +[ 24 9 -2 0 25.770] 109 @dc +[ 16 9 -2 0 17.411] 110 @dc +[ 16 9 -1 0 12.562] 115 @dc +[ 518 ] /cmssbx10.518 @newfont +cmssbx10.518 @sf +[<00000000FFE00000000001FFF00000000003FFE00000000003FFE00000000007FFC00000000007FF80000000000FFF000000 + 003FFFFF00000003FFFFFE0000001FFFFFFC0000003FFFFFFC000000FFFFFFFF000001FFF0FFFF800003FFC0FFFFC00007FF + 01FFFFE0000FFE01FFFFF0000FFC03FFBFF0001FFC07FFBFF8001FF807FF1FF8003FF80FFE1FFC003FF00FFC0FFC007FF00F + FC0FFE007FF000000FFE007FF000000FFE007FE0000007FE007FE0000007FE00FFE0000007FF00FFE0000007FF00FFE00000 + 07FF00FFE0000007FF00FFE0000007FF00FFE0000007FF00FFE0000007FF00FFE0000007FF00FFE0000007FF00FFE0000007 + FF00FFE0000007FF00FFE0000007FF00FFE0000007FF00FFE0000007FF007FE0000007FE007FE0000007FE007FF000000FFE + 007FF000000FFE003FF000000FFC003FF000000FFC003FF800001FFC001FF800001FF8001FFC00003FF8000FFE00007FF000 + 0FFE00007FF00007FF0000FFE00003FFC003FFC00001FFF00FFF800000FFFFFFFF0000003FFFFFFC0000000FFFFFF0000000 + 03FFFFC0000000003FFC000000> 56 59 -4 8 56.985] 81 @dc +[<03FF03FC0FFFC7FE3FFFE7FE7FFFF7FE7FE07FFEFFC03FFEFFC01FFEFFC00FFEFFC00FFEFFC007FEFFC007FEFFC007FEFFC0 + 07FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FE + FFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FE7F8003FC> 32 33 -4 0 40.248] 117 @dc +[<3FC07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE07FE0 + 7FE07FE07FE07FE07FE07FE07FE03FC000000000000000000000000000007FC0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0FFE0 + 7FC0> 16 51 -3 0 18.331] 105 @dc +[<001FF80000FFFF8003FFFFE007FFFFF80FFFFFF81FFC0FF83FF001F83FF000787FE000387FE000187FC00000FFC00000FFC0 + 0000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC000007FC000007FE000007FE00060 + 3FF000E03FF001F01FFC07F00FFFFFF007FFFFF003FFFFC000FFFF00001FFC00> 32 33 -3 0 35.068] 99 @dc +[<7F0003FEFF8007FEFF8007FEFF800FFCFF801FF8FF803FF0FF803FF0FF807FE0FF80FFC0FF81FF80FF81FF80FF83FF00FFC7 + FE00FFEFFC00FFFFFC00FFFFF800FFFFF000FFFFE000FFFFE000FFFFC000FFFFE000FFFFF000FFFFF800FFBFFC00FF9FFE00 + FF8FFF00FF87FF80FF83FFC0FF81FFE0FF807FF0FF803FF8FF801FFCFF800FF8FF800000FF800000FF800000FF800000FF80 + 0000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF8000007F000000> 32 50 -4 0 38.057] 107 @dc +[<7FC00007FCFFE0000FFEFFE0000FFEFFE0001FFCFFE0001FFCFFE0003FF8FFE0003FF0FFE0007FF0FFE0007FE0FFE000FFE0 + FFE001FFC0FFE001FFC0FFE003FF80FFE003FF80FFE007FF00FFE007FF00FFE00FFE00FFE00FFE00FFE01FFC00FFE01FF800 + FFE03FF800FFE03FF000FFE07FF000FFFFFFE000FFFFFFFC00FFFFFFFF00FFFFFFFFC0FFFFFFFFE0FFE001FFF0FFE0007FF0 + FFE0003FF8FFE0001FF8FFE0001FFCFFE0001FFCFFE0000FFCFFE0000FFCFFE0000FFCFFE0000FFCFFE0001FFCFFE0001FFC + FFE0001FF8FFE0003FF8FFE0007FF8FFE001FFF0FFFFFFFFE0FFFFFFFFC0FFFFFFFF80FFFFFFFF00FFFFFFF8007FFFFFC000> 40 50 -7 0 50.410] 82 @dc +[<000FFE0000007FFFE00001FFFFF80003FFFFFE000FFFFFFE001FFE01FE001FF8003E003FF0000E003FE00006007FE0000000 + 7FC00000007FC0000000FFC0000000FFC0000000FF80000000FFFFFFFE00FFFFFFFF00FFFFFFFF00FFFFFFFF00FFC000FF00 + FFC000FF00FFC000FF007FC001FF007FC001FE007FE001FE003FE003FE001FF003FC001FFC0FFC000FFFFFF80007FFFFF000 + 01FFFFC000007FFF8000000FFC0000> 40 33 -2 0 36.662] 101 @dc +[<03FC000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE + 000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE0000 + 07FE000007FE000007FE00007FFFF000FFFFF800FFFFF800FFFFF8007FFFF00007FE000007FE000007FE000007FE000007FE + 000007FE000007FE000007FE000007FE000007FE000003FF018003FF078001FFFF8000FFFF80007FFF80001FFF800007FF80> 32 50 -1 0 24.109] 102 @dc +[<7F8000FFC000FFC000FFC000FFC000FFC000FFC000FFC000FFC000FFC000FFC000FFC000FFC000FFC000FFC000FFC000FFC0 + 00FFC000FFC000FFE000FFE000FFE000FFF000FFF800FFFC00FFBF80FFBFF8FF9FF8FF9FF8FF8FF8FF87F8FF81F87F0078> 24 33 -4 0 26.699] 114 @dc +[<7F8003FCFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC0 + 07FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFC007FEFFE007FEFFE007FEFFF007FE + FFF007FEFFF80FFEFFFE0FFEFFDFFFFCFFCFFFFCFFC7FFF8FFC1FFF07F807F80> 32 33 -4 0 40.248] 110 @dc +[<7FC0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000 + FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000 + FFFFFFF000FFFFFFFE00FFFFFFFF00FFFFFFFFC0FFFFFFFFE0FFE003FFF0FFE0007FF0FFE0003FF8FFE0001FF8FFE0001FF8 + FFE0001FFCFFE0001FFCFFE0000FFCFFE0000FFCFFE0000FFCFFE0000FFCFFE0000FFCFFE0001FFCFFE0001FFCFFE0001FF8 + FFE0001FF8FFE0003FF8FFE0007FF0FFE003FFF0FFFFFFFFE0FFFFFFFFC0FFFFFFFF80FFFFFFFF00FFFFFFF8007FFFFFC000> 40 50 -7 0 50.410] 80 @dc +[<01FC03FC07FF87FE1FFFE7FE3FFFF7FE3FFFFFFE7FF07FFE7FE01FFEFFE00FFEFFC007FEFFC007FEFFC007FEFFC007FEFFE0 + 07FE7FE007FE7FF007FE3FF807FE0FFF07FE03FFFFFE00FFFFFE000FFFFE000007FE000007FE000007FE0C0007FE0E0007FE + 0F0007FE0F800FFC0FE01FFC0FFFFFF80FFFFFF803FFFFE000FFFF80001FFC00> 32 33 -2 0 37.658] 97 @dc +[<001FFF800001FFFFF80007FFFFFE001FFFFFFF803FFFFFFFC07FF000FFE07FC0003FE0FF80001FF0FF00000FF0FF00000FF0 + FF00000FF0FF00000FF0FF00001FF07F80007FF07FFFFFFFF01FFFFFFFE007FFFFFFE007FFFFFFC00FFFFFFF800FFFFFFF00 + 0FFFFFFC001FFFFFC0001F800000001F000000000F000000000E1FF000000EFFFE000007FFFF800007FFFFC0000FFFFFE000 + 1FF83FF0001FF01FF0003FE00FF8003FE00FF8003FE00FF8003FE00FF8003FE00FF8003FE00FF8003FE00FF8003FE00FF800 + 3FE00FF8001FF01FF0001FF83FF0000FFFFFE1F007FFFFFFF003FFFFFFF000FFFE1FF0001FF003E0> 40 48 -1 15 39.451] 103 @dc +[<0001F00003F00007E0000FC0001FC0003F80007F0000FF0000FE0001FE0003FC0003FC0007FC0007F8000FF8000FF8001FF0 + 001FF0001FF0003FF0003FE0003FE0007FE0007FE0007FE0007FE0007FC0007FC000FFC000FFC000FFC000FFC000FFC000FF + C000FFC000FFC000FFC000FFC000FFC000FFC000FFC000FFC000FFC000FFC0007FC0007FC0007FE0007FE0007FE0007FE000 + 3FE0003FE0003FF0001FF0001FF0001FF0000FF8000FF80007F80007FC0003FC0003FC0001FE0000FE0000FF00007F00003F + 80001FC0000FC00007E00003F00001F0> 24 72 -6 18 30.684] 40 @dc +[<1FFFFFC03FFFFFE03FFFFFF03FFFFFE01FFFFFC0003FF000003FF000003FF000003FF000003FF000003FF000003FF000003F + F000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000 + 003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003F + F000003FF000003FF000003FF0003FBFF0007FFFF000FFFFF0007FFFF0003FFFF00000FFF000001FF0000007F0000003F000 + 0001E000> 32 51 -5 0 39.451] 49 @dc +[<7F83FC0000FFCFFF0000FFFFFFC000FFFFFFF000FFFFFFF800FFF03FF800FFE00FFC00FFC00FFE00FFC007FE00FFC007FE00 + FFC003FE00FFC003FF00FFC003FF00FFC003FF00FFC003FF00FFC003FF00FFC003FF00FFC003FF00FFC003FF00FFC003FF00 + FFC003FF00FFC003FF00FFC003FF00FFC007FE00FFC007FE00FFC007FE00FFE00FFC00FFF81FFC00FFFFFFF800FFFFFFF000 + FFDFFFE000FFC7FF8000FFC1FE0000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000 + FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC00000007F80000000> 40 50 -4 0 40.248] 98 @dc +[<007F800000FFF80001FFFE0003FFFF8003FFFF8007FF0F8007FF070007FE030007FE000007FE000007FE000007FE000007FE + 000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE000007FE0000 + 07FE000007FE000007FE00007FFFFC00FFFFFE00FFFFFE00FFFFFE007FFFFC0007FE000007FE000007FE000007FE000007FE + 000007FE000007FE000007FE000003FC0000> 32 42 -1 0 28.991] 116 @dc +[<001FFE000000FFFFC00003FFFFF00007FFFFF8000FFFFFFC001FFC0FFE003FF003FF003FF003FF007FE001FF807FE001FF80 + 7FC000FF80FFC000FFC0FFC000FFC0FFC000FFC0FFC000FFC0FFC000FFC0FFC000FFC0FFC000FFC0FFC000FFC0FFC000FFC0 + FFC000FFC07FC000FF807FC000FF807FE001FF807FE001FF803FE001FF003FF003FF001FFC0FFE000FFFFFFC0007FFFFF800 + 03FFFFF00000FFFFC000000FFC0000> 40 33 -2 0 39.451] 111 @dc +[<7F8001FE0007F8FFC003FF000FFCFFC003FF000FFCFFC003FF000FFCFFC003FF000FFCFFC003FF000FFCFFC003FF000FFCFF + C003FF000FFCFFC003FF000FFCFFC003FF000FFCFFC003FF000FFCFFC003FF000FFCFFC003FF000FFCFFC003FF000FFCFFC0 + 03FF000FFCFFC003FF000FFCFFC003FF000FFCFFC003FF000FFCFFC003FF000FFCFFC003FF000FFCFFC003FF000FFCFFC003 + FF000FFCFFE003FF800FFCFFE003FF800FFCFFF003FFC00FFCFFF003FFC00FFCFFF807FFE01FFCFFFE07FFF81FFCFFDFFFFE + 7FFFF8FFCFFFFE3FFFF8FFC7FFFC1FFFF0FFC1FFF007FFC07F803FC000FF00> 56 33 -4 0 62.166] 109 @dc +[<00FFC0000FFFF0003FFFFC00FFFFFE00FFFFFF00FFFFFF00FF807F807E007F8078003F8070003F8060007F800000FF80000F + FF8000FFFF8003FFFF0007FFFF001FFFFE001FFFFC003FFFF8003FFFE0007FFF80007FF000007F8000007F0000007F000600 + 7F001E007F807E003FFFFF003FFFFF001FFFFF000FFFFF0003FFFC0000FFC000> 32 33 -2 0 30.246] 115 @dc +[ 24 72 -4 18 30.684] 41 @dc +[ 300 ] /cmti10.300 @newfont +cmti10.300 @sf +[<180020000018003000001C003000001C003800001E003800001E007400001D007400001D007200001C807200001C80710000 + 1C407100001C407080001C207080001C107040001C107040001C087020001C087010001C047010001C047008001C02700800 + 1C027004001C0170040038017002003800F002003800F0010038007001803C007001C0FF83FF0FF0> 40 28 -9 0 41.464] 87 @dc +[<3C0072007200710071007100380038001C001C001C000E008E008E004700470026001C000000000000000000000000000000 + 010003800180> 16 28 -4 0 12.730] 105 @dc +[<300E00701900383880383840381C40381C401C1C001C0E001C0E001C0E000E07000E07008E07008E07004707004687002646 + 003C3C00> 24 18 -4 0 23.338] 110 @dc +[<3C380062640061E400C0E200C0E200E0E200E07000E07000E07000E07000703800703800303800383800181C000C3C00063C + 0003DC00000E00000E00000E00000E00000700000700000700000700000380000380001F80> 24 29 -5 0 21.216] 100 @dc +[<1E00318060C0E060E030E038E018E01CE01CE01C700E700E300E380C180C0C0C071801E0> 16 18 -5 0 21.216] 111 @dc +[<07C3C0000C2630001C1C1000181C0800181C0400180C04001C0E04001C0E02001C0E02001C0E02000E0701000E0701008707 + 0100870701004703830047038700270387001E018300> 32 18 -4 0 27.581] 119 @dc +[ 32 28 -3 0 30.856] 78 @dc +[<3C380062640061E400C0E200C0E200E0E200E07000E07000E07000E07000703800703800303800383800181C000C3C00063C + 0003CC00> 24 18 -5 0 21.216] 97 @dc +[<300C01C0701C0320380E0710380E0708380E0388380E03881C0703801C0701C01C0701C01C0701C00E0380E00E0380E08E03 + 80E08E0380E04703C0E04683A0E0266318C03C1E0780> 32 18 -4 0 33.946] 109 @dc +[<1F0030C060206010E008E000E000E000E000E0007F8070607010381018080C10071001E0> 16 18 -5 0 19.094] 101 @dc +[<1F0030C06020E010E008E000E000E000E000E0007000700030003838181C0C08070801F0> 16 18 -5 0 19.094] 99 @dc +[<0E00190038803840384038401C001C001C001C000E000E000E000E00070007000700FFE0038003800380038001C001C001C0 + 00C0> 16 26 -3 0 13.790] 116 @dc +[<1F0060C08060C030E03060300038007807F00FF01FC01F001C0018180C1C0C08060801F0> 16 18 -3 0 16.973] 115 @dc +[<780000CC0000E60000C6000007000003000003000003800003800003800001C00001C00001C00001C00001C00000E00000E0 + 0000E00000E00000E00000700000700000700000700000700003FF80003800003800003800003800003800001C00001C0000 + 1C60000C700006700003C0> 24 37 1 8 12.730] 102 @dc +[ 300 ] /line10.300 @newfont +line10.300 @sf +[<000000000600060006000F000F000F001F801F801F803FC03FC07FE07FE0FFF0FFF0> 16 17 6 0 41.510] 63 @dc +[ 300 ] /cmr10.300 @newfont +cmr10.300 @sf +[ 16 18 -1 0 18.449] 122 @dc +[<03F0000E1C00180600300300700380600180E001C0E001C0E001C0E001C0E001C0E001C06001807003803003001806000E1C + 0003F000> 24 18 -1 0 20.755] 111 @dc +[ 40 18 -1 0 34.592] 109 @dc +[<07F8001C0E00300300600180C000C0C000C0C000C06001C03003801FFF801FFF001FF80018000030000010000013C0000C30 + 001C3800181800381C00381C00381C00381C001818001C38800C3CC003C380> 24 27 -1 9 20.755] 103 @dc +[<1F8700304E80603C40E01C40E01C40E01C40601C00701C00381C000F1C0001FC00001C00001C00301C00781C007838003070 + 001FC000> 24 18 -2 0 20.755] 97 @dc +[<07C7E00C3700180F00300700700700600700E00700E00700E00700E00700E00700E00700600700700700300700180F000C17 + 0003E700000700000700000700000700000700000700000700000700000700000700003F00> 24 29 -2 0 23.061] 100 @dc +[<03E00C181804300270026000E000E000E000E000FFFEE0066006700E300C18180C3003E0> 16 18 -1 0 18.449] 101 @dc +[<03C00E200C101C101C101C101C101C101C001C001C001C001C001C001C001C001C00FFE03C001C000C000C00040004000400 + 0400> 16 26 -1 0 16.143] 116 @dc +[<00400000E00000E00000E00001D00001D00003D8000388000388000704000704000704000E02000E02001C01001C01003C03 + 80FF07E0> 24 18 -1 0 21.908] 118 @dc +[ 24 29 -1 0 23.061] 104 @dc +[ 16 18 -1 0 16.258] 114 @dc +line10.300 @sf +[ 16 15 6 -25 41.510] 54 @dc +cmr10.300 @sf +[<07C00C301808300470046000E000E000E000E000E000E00060007030307818780C3007E0> 16 18 -2 0 18.449] 99 @dc +[ 24 18 -1 0 23.061] 110 @dc +[<10F8001906001E03001C01801C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C00C01C01C01C01801E03001D86 + 001C7C001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0000FC0000> 24 29 -1 0 23.061] 98 @dc +[<8FC0D060E010C018C0188018803800F80FF03FE07F80F800E010C010C010403030701F90> 16 18 -1 0 16.373] 115 @dc +[ 16 29 -1 0 11.531] 105 @dc +cmti10.300 @sf +[<078E001C59001839001838803838803838801C1C001C1C001C1C001C1C000E0E000E0E00870E00870E004707004707002707 + 001E0300> 24 18 -4 0 22.277] 117 @dc +[<81C043E067F03830100808080400020001000080004000200010100808380FEC07C20382> 16 18 -3 0 16.973] 122 @dc +[<38006800E400E400E400E400700070007000700038003800380038001C001C001C001C000E000E000E000E00070007000700 + 0700038003801F80> 16 29 -4 0 10.608] 108 @dc +[<3000007000003800003800003800003800001C00001C00001C00001C00000E00000E00008E00008E060047070046870026C2 + 003C3C00> 24 18 -4 0 17.503] 114 @dc +cmr10.300 @sf +[ 24 28 -2 0 25.367] 90 @dc +[<001FC08000E0318003800B80070007800E0007801C0007803C000780380007807800078070000780F0000F80F000FFF0F000 + 0000F0000000F0000000F0000000F0000000F00000007000008078000080380000803C0001801C0001800E00038007000780 + 03800B8000E03180001FC080> 32 28 -2 0 32.574] 71 @dc +[<83F800CC0E00F00300C00300C001808001C08001C08001C00001C00003C00003C0000F8000FF8007FF001FFE003FF8007FC0 + 007C0000F00000F00000E00080E00080E000806001807003803007801C198007E080> 24 28 -2 0 23.061] 83 @dc +[ 300 ] /cmbx10.300 @newfont +cmbx10.300 @sf +[ 32 28 -2 0 33.957] 66 @dc +[<01FC000F07801E03C03C01E07800F07800F0F800F8F800F8F800F8F800F8F800F8F800F87800F07800F03C01E01C01C00F07 + 8001FC00> 24 18 -1 0 23.868] 111 @dc +[ 24 18 -1 0 19.660] 114 @dc +[<03F9FE0F0FFE1C03F03C01F07801F07801F0F801F0F801F0F801F0F801F0F801F0F801F07801F07801F03C01F01C03F00F07 + F001F9F00001F00001F00001F00001F00001F00001F00001F00001F00001F0000FF0000FF0> 24 29 -2 0 26.520] 100 @dc +[<01FC000F03801E00C03C00607C0060780000F80000F80000F80000FFFFE0F801E0F801E07801E07801C03C01C01C03800F07 + 0001FC00> 24 18 -1 0 21.879] 101 @dc +[ 16 18 -2 0 18.829] 115 @dc +[ 300 ] /cmcsc10.300 @newfont +cmcsc10.300 @sf +[<8FC0F060C03080108018801800180038007803F01FE03FC07E00E000C000C010C010C030603030F01F10> 16 21 -2 0 19.002] 115 @dc +[ 24 21 -1 0 25.459] 104 @dc +[ 16 21 -1 0 12.545] 105 @dc +[ 24 21 -1 0 22.231] 102 @dc +[<07FF000070000070000070000070000070000070000070000070000070000070000070000070000070008070088070088070 + 084070104070106070307FFFF0> 24 21 -1 0 24.537] 116 @dc +[<00FC000783000E00801C0040380040780020700020F00020F00000F00000F00000F00000F00000F000207000207800203800 + 601C00E00E01E007826000FC20> 24 21 -2 0 24.537] 99 @dc +[ 24 21 -1 0 24.998] 114 @dc +[ 24 21 -1 0 21.308] 108 @dc +cmr10.300 @sf +[<008020000180300001C0700001C0700003C0680003A0E80003A0E8000720C4000711C4000711C4000E1182000E0B82000E0B + 82001C0B01001C0701001C0701803C0F0380FF3FCFE0> 32 18 -1 0 29.979] 119 @dc +[ 24 41 -2 10 20.755] 47 @dc +[<3C0000660000F30000F10000F0800000800000800000400000400000E00000E00000E00001D00001D00003D8000388000388 + 000704000704000704000E02000E02001C01001C01003C0380FF07E0> 24 26 -1 8 21.908] 121 @dc +[ 16 29 -1 0 11.531] 108 @dc +cmcsc10.300 @sf +[ 16 2 -1 -8 15.681] 45 @dc +cmti10.300 @sf +[<6000F00078003000000000000000000000000000000000000000000006000F000F000600> 16 18 -4 0 12.730] 58 @dc +cmr10.300 @sf +[<60F0F060> 8 4 -4 0 11.531] 46 @dc +cmbx10.300 @sf +[ 40 28 -2 0 37.359] 72 @dc +[<0FE1F83E13F8780BC0F807C0F807C0F807C07C07C03C07C01F07C007E7C0007FC00007C01C07C03E07C03E07803E0F801C1E + 000FF800> 24 18 -1 0 23.205] 97 @dc +cmr10.300 @sf +[<03E3F00E1B800C07801C07801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03 + 80FC1F80> 24 18 -1 0 23.061] 117 @dc +cmbx10.300 @sf +[ 24 28 -3 0 29.172] 90 @dc +[ 40 18 -1 0 39.780] 109 @dc +[<000FF81800007FFE780001FC07F80007E001F8000F8001F8001F0001F8003F0001F8003E0001F8007E0001F8007C0001F800 + FC007FFF00FC007FFF00FC00000000FC00000000FC00000000FC00000000FC00000000FC000000007C000018007E00001800 + 3E000038003F000038001F000078000F8000780007E001F80001FC07F800007FFE3800000FF00800> 40 28 -3 0 37.532] 71 @dc +[<07FF001E03C07800F0700070F00078F00078F000787801F81FFFF00FFFE01FFFC01FFF001800001800001000001BF8000E0E + 001E0F001C07003C07803C07803C07803C07801C07301E0F380E0F3803F8F0> 24 27 -1 9 23.868] 103 @dc +[<03F007980F081F0C1F0C1F0C1F0C1F001F001F001F001F001F001F001F001F00FFFC3FFC0F000F0007000700030003000300 + 0300> 16 26 -1 0 18.564] 116 @dc +[ 48 28 -2 0 45.315] 77 @dc +[<00300000780000780000FC0000FC0001FE0001F60001F60003E30003E30007C18007C1800FC0C00F80C01F80E01F0060FFC1 + FCFFC1FC> 24 18 -1 0 25.194] 118 @dc +cmr10.300 @sf +[ 24 18 0 0 21.908] 120 @dc +cmbx10.300 @sf +[ 24 28 -1 0 18.103] 73 @dc +[<03F8000E0E001C03003C0180780180780000F80000F80000F80000F80000F80000F80000780E00781F003C1F001C1F000E0E + 0003FC00> 24 18 -2 0 21.216] 99 @dc +[ 32 18 -1 0 26.520] 110 @dc +cmr10.300 @sf +[ 24 26 -1 8 23.061] 112 @dc +cmbx10.300 @sf +[ 40 28 -2 0 35.802] 82 @dc +[<07FFFE0007FFFE00001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F + 8000001F8000001F8000001F8000001F8000001F8000C01F8030C01F8030C01F8030C01F8030E01F8070601F8060701F80E0 + 781F81E07FFFFFE07FFFFFE0> 32 28 -2 0 33.208] 84 @dc +[ 32 28 -2 0 28.711] 76 @dc +[ 24 29 -1 0 25.194] 107 @dc +[<01F8FF000786FF000F01F8001F01F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00 + F8001F00F8001F00F8001F00F800FF07F800FF07F800> 32 18 -1 0 26.520] 117 @dc +[ 40 28 -2 0 37.359] 78 @dc +[<003FE00001F07C0003C01E000F800F801F0007C03F0007E03E0003E07E0003F07E0003F07C0001F0FC0001F8FC0001F8FC00 + 01F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F87C0001F07C0001F07E0003F03E0003E01E0003C01F0007C00F800F80 + 03C01E0001F07C00003FE000> 32 28 -3 0 35.860] 79 @dc +[ 32 28 -2 0 31.363] 69 @dc +[<83FC00EFFF00FC03C0F001C0E000E0C000E0C000F0C000F00000F00001F00003F0007FE007FFE00FFFC03FFF803FFF007FFE + 00FFE000FE0000F80000F00060F00060F000E07000E07801E03C07E01FFEE007F820> 24 28 -3 0 26.520] 83 @dc +[<78FCFCFCFC7800000000000078FCFCFCFC78> 8 18 -3 0 13.260] 58 @dc +[ 300 ] /cmsy10.300 @newfont +cmsy10.300 @sf +[<07E0001FF8003FFC007FFE007FFE00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF007FFE007FFE003FFC001FF80007E000> 24 16 -2 -2 20.755] 15 @dc +cmr10.300 @sf +[<03FFFC00001F8000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F + 0000000F0000000F0000000F0000000F0000000F0000000F0000800F0020800F0020800F0020C00F0020400F0040400F0040 + 600F00C0700F01C07FFFFFC0> 32 28 -1 0 29.979] 84 @dc +cmcsc10.300 @sf +[<001FE00000701C0001C00200070001000E0000801C0000401C00004038000020780000207800002070000000F0000000F000 + 0000F0000000F0000000F0000000F0000000700000007800002078000020380000201C0000601C0000600E0000E0070001E0 + 01C006E000701860001FE020> 32 28 -3 0 32.631] 67 @dc +[<03FFFC00001F8000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F + 0000000F0000000F0000000F0000000F0000000F0000000F0000800F0020800F0020800F0020C00F0020400F0040400F0040 + 600F00C0700F01C07FFFFFC0> 32 28 -3 0 32.631] 84 @dc +[ 32 28 -3 0 33.208] 82 @dc +[ 24 28 -3 0 28.365] 76 @dc +[<83F800CC0600F00100C00180C000C08000E08000E08000E00000E00001E00003E00007C0007FC007FF801FFF003FFC007FE0 + 007E0000F80000F00000E00080E00080E000806001807001803003801C0D8007F080> 24 28 -3 0 25.367] 83 @dc +[ 32 28 -3 0 33.784] 72 @dc +[ 16 28 -3 0 16.834] 73 @dc +[ 32 28 -3 0 29.576] 70 @dc +cmr10.300 @sf +[ 24 29 -1 0 21.908] 107 @dc +[ 32 28 -1 0 31.133] 65 @dc +[<003FE000070000070000070000070000070000070000070007C7000C3700180F00300F00700700600700E00700E00700E007 + 00E00700E00700E00700700700700700300F00180B000C330003C100> 24 26 -2 8 21.908] 113 @dc +[<7FE00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFE00E000E000E000E000E000E000E0C + 061E071E018C00F8> 16 29 0 0 12.684] 102 @dc +[<7F87F80E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01 + C0FFFFC00E00000E00000E00000E00000E00000E01800E03C00703C003018001C180007E00> 24 29 0 0 23.061] 12 @dc +[<001FC00000E0300003800800070004000E0002001C0001003C000100380000807800008070000080F0000000F0000000F000 + 0000F0000000F0000000F0000000F0000000F00000007000008078000080380000803C0001801C0001800E00038007000780 + 03800B8000E03180001FC080> 32 28 -2 0 29.979] 67 @dc +[<804020201010101070F0F060> 8 12 -4 8 11.531] 44 @dc +[ 32 28 -2 0 30.556] 82 @dc +[ 24 28 -2 0 25.944] 76 @dc +[<07C000187000201800401C00800E00F00E00F00F00F00F00600F00000F00000F00000E00000E00201C00301C002C380023E0 + 002000002000002000002000002000002000003FC0003FF0003FF800300C00> 24 27 -2 0 20.755] 53 @dc +[<07E0000C3000181800300C00700E00700E00600600E00700E00700E00700E00700E00700E00700E00700E00700E00700E007 + 00E00700E00700E00700600600600600700E00300C001818000C300007E000> 24 27 -2 0 20.755] 48 @dc +[<1F800021C00070F000F87000F87800F878007078000078000078000078000078000078000078000078000078000078000078 + 0000780000780000780000780000780000780000780000780000780000F8001FFF00> 24 28 -1 0 21.332] 74 @dc +[ 16 27 -4 0 20.755] 49 @dc +[<0F800030E000203000701800781800780C00300E00000E0000060000070007C7001C2700301700300F00600F00E00700E007 + 00E00700E00700E00600E00600E00E00600C00300C001818000C300007E000> 24 27 -2 0 20.755] 57 @dc +[<07E000181800300400600600C00200C00300C00300C00300C00700600F00601E00307E0018FC0007F80007F0001FE0003F90 + 003E0800780C00700600600600600600600600200C00100C0008380007E000> 24 27 -2 0 20.755] 56 @dc +1 @bop1 +199 -47 p 181 3 ru +199 126 p 3 174 ru +177 r 3 174 ru +199 130 p 181 3 ru +cmbx8.300 @sf +278 110 p 82 c +-2 r (TL) s +cmbx5.300 @sf +204 -9 p (Siemens) s +202 13 p 116 3 ru +260 72 p 116 3 ru +258 128 p 3 116 ru +316 70 p 3 116 ru +cmssbx10.518 @sf +429 57 p (Quick) s +26 r (Reference) s +26 r 80 c +-1 r (age) s +26 r (\(1) s +26 r (button) s +26 r (mouse\)) s +-2 441 p 837 3 ru +-2 856 p 3 415 ru +832 r 3 415 ru +-2 859 p 837 3 ru +7 450 p 817 2 ru +7 848 p 2 398 ru +815 r 2 398 ru +7 850 p 817 2 ru +8 526 p 814 2 ru +66 525 p 2 75 ru +697 r 2 75 ru +2 853 p 3 37 ru +4 855 p 37 3 ru +-1 857 p 3 42 ru +0 859 p 42 3 ru +2 484 p 3 37 ru +4 448 p 37 3 ru +-1 484 p 3 42 ru +0 444 p 42 3 ru +824 853 p 3 37 ru +789 855 p 37 3 ru +829 857 p 3 42 ru +789 859 p 42 3 ru +824 484 p 3 37 ru +789 448 p 37 3 ru +829 484 p 3 42 ru +789 444 p 42 3 ru +33 488 p 8 8 ru +cmti10.300 @sf +91 498 p (Window) s +15 r (Name) s +235 702 p 99 c +-1 r (ontents) s +13 r (of) s +15 r (window) s +37 471 p 2 112 ru +line10.300 @sf +0 r 63 c +cmr10.300 @sf +29 351 p (zo) s +1 r (om) s +14 r (gadget) s +792 471 p 2 112 ru +line10.300 @sf +1 r 63 c +cmr10.300 @sf +679 351 p (mo) s +0 r 118 c +-1 r 101 c +13 r (gadget) s +414 471 p 2 112 ru +line10.300 @sf +1 r 63 c +cmr10.300 @sf +355 351 p (header) s +7 940 p 2 83 ru +line10.300 @sf +8 899 p 54 c +cmr10.300 @sf +0 978 p (corner) s +14 r 98 c +1 r (order) s +497 940 p 2 83 ru +line10.300 @sf +498 899 p 54 c +cmr10.300 @sf +397 978 p (side) s +14 r 98 c +1 r (order) s +1436 400 p 70 2 ru +1436 483 p 2 83 ru +1463 450 p 17 17 ru +1504 483 p 2 83 ru +1436 485 p 70 2 ru +cmti10.300 @sf +1521 457 p (unzo) s +-1 r (ome) s +-2 r 100 c +1436 525 p 70 2 ru +1436 608 p 2 83 ru +68 r 2 83 ru +1436 609 p 70 2 ru +1453 541 p 37 2 ru +1453 591 p 2 50 ru +35 r 2 50 ru +1453 593 p 37 2 ru +1521 581 p (zo) s +-1 r (ome) s +-2 r 100 c +1436 649 p 70 2 ru +1436 732 p 2 83 ru +1463 699 p 17 17 ru +1504 732 p 2 83 ru +1436 734 p 70 2 ru +1438 692 p 66 2 ru +1538 756 p (zo) s +-2 r (om) s +14 r (tie) s +-1 r 100 c +14 r (to) s +15 r (listener) s +1436 774 p 70 2 ru +1436 857 p 2 83 ru +68 r 2 83 ru +1436 858 p 70 2 ru +1453 790 p 37 2 ru +1453 840 p 2 50 ru +35 r 2 50 ru +1453 842 p 37 2 ru +1438 817 p 66 2 ru +cmr10.300 @sf +1418 926 p (Zo) s +1 r (om) s +14 r (Gadget) s +13 r (States) s +0 1109 p 1950 2 ru +191 1237 p 813 2 ru +190 1287 p 2 50 ru +cmbx10.300 @sf +515 1272 p (Borders) s +1003 1287 p 2 50 ru +191 1288 p 813 2 ru +190 1338 p 2 50 ru +265 r 2 50 ru +cmr10.300 @sf +680 1323 p (resize) s +1003 1338 p 2 50 ru +190 1388 p 2 50 ru +cmcsc10.300 @sf +327 1373 p (shift) s +455 1388 p 2 50 ru +cmr10.300 @sf +683 1373 p (mo) s +0 r 118 c +-1 r 101 c +1003 1388 p 2 50 ru +190 1438 p 2 50 ru +cmcsc10.300 @sf +336 1423 p (ctrl) s +455 1438 p 2 50 ru +cmr10.300 @sf +505 1423 p (resize) s +14 r (w/) s +14 r (gra) s +-1 r (vit) s +-1 r 121 c +13 r (toggled) s +1003 1438 p 2 50 ru +190 1487 p 2 50 ru +cmcsc10.300 @sf +216 1473 p (ctrl-shift) s +455 1487 p 2 50 ru +cmr10.300 @sf +668 1473 p (redra) s +0 r 119 c +1003 1487 p 2 50 ru +191 1489 p 813 2 ru +190 1539 p 2 50 ru +cmti10.300 @sf +216 1524 p (Note:) s +cmr10.300 @sf +21 r (Side) s +14 r 98 c +1 r (orders) s +14 r (constrain) s +14 r (mo) s +-1 r 118 c +-1 r (e/resize.) s +1003 1539 p 2 50 ru +191 1541 p 813 2 ru +1195 1262 p 564 2 ru +1194 1312 p 2 50 ru +cmbx10.300 @sf +1402 1297 p (Header) s +1758 1312 p 2 50 ru +1195 1314 p 564 2 ru +1194 1364 p 2 50 ru +265 r 2 50 ru +cmr10.300 @sf +1485 1349 p (windo) s +0 r 119 c +13 r (men) s +-1 r 117 c +1758 1364 p 2 50 ru +1194 1414 p 2 50 ru +cmcsc10.300 @sf +1331 1399 p (shift) s +1459 1414 p 2 50 ru +cmr10.300 @sf +1563 1399 p (mo) s +-1 r 118 c +-1 r 101 c +1758 1414 p 2 50 ru +1194 1463 p 2 50 ru +cmcsc10.300 @sf +1340 1448 p (ctrl) s +1459 1463 p 2 50 ru +cmti10.300 @sf +1533 1448 p (to) s +15 r (client) s +1758 1463 p 2 50 ru +1194 1513 p 2 50 ru +cmcsc10.300 @sf +1220 1498 p (ctrl-shift) s +1459 1513 p 2 50 ru +cmr10.300 @sf +1548 1498 p (redra) s +-1 r 119 c +1758 1513 p 2 50 ru +1195 1515 p 564 2 ru +14 1672 p 573 2 ru +13 1722 p 2 50 ru +cmbx10.300 @sf +157 1707 p (Zo) s +2 r (om) s +16 r (Gadget) s +586 1722 p 2 50 ru +14 1724 p 573 2 ru +13 1773 p 2 50 ru +265 r 2 50 ru +cmr10.300 @sf +380 1758 p (desire) s +586 1773 p 2 50 ru +13 1823 p 2 50 ru +cmcsc10.300 @sf +150 1808 p (shift) s +278 1823 p 2 50 ru +cmr10.300 @sf +303 1808 p (zo) s +2 r (om/unzo) s +1 r (om) s +586 1823 p 2 50 ru +13 1873 p 2 50 ru +cmcsc10.300 @sf +158 1858 p (ctrl) s +278 1873 p 2 50 ru +cmr10.300 @sf +368 1858 p (enlarge) s +586 1873 p 2 50 ru +13 1923 p 2 50 ru +cmcsc10.300 @sf +39 1908 p (ctrl-shift) s +278 1923 p 2 50 ru +cmr10.300 @sf +390 1908 p (close) s +586 1923 p 2 50 ru +14 1924 p 573 2 ru +772 1672 p 478 2 ru +771 1722 p 2 50 ru +cmbx10.300 @sf +871 1707 p (Mo) s +-1 r 118 c +-1 r 101 c +15 r (Gadget) s +1250 1722 p 2 50 ru +772 1724 p 478 2 ru +771 1773 p 2 50 ru +265 r 2 50 ru +cmr10.300 @sf +1073 1758 p (relo) s +1 r (cate) s +1250 1773 p 2 50 ru +771 1823 p 2 50 ru +cmcsc10.300 @sf +908 1808 p (shift) s +1036 1823 p 2 50 ru +cmr10.300 @sf +1097 1808 p (mo) s +0 r 118 c +-1 r 101 c +1250 1823 p 2 50 ru +771 1873 p 2 50 ru +cmcsc10.300 @sf +917 1858 p (ctrl) s +1036 1873 p 2 50 ru +cmr10.300 @sf +1062 1858 p (exc) s +0 r (hange) s +1250 1873 p 2 50 ru +771 1923 p 2 50 ru +cmcsc10.300 @sf +797 1908 p (ctrl-shift) s +1036 1923 p 2 50 ru +cmr10.300 @sf +1101 1908 p (close) s +1250 1923 p 2 50 ru +772 1924 p 478 2 ru +1436 1672 p 500 2 ru +1435 1722 p 2 50 ru +cmbx10.300 @sf +1641 1707 p (Icon) s +1935 1722 p 2 50 ru +1436 1724 p 500 2 ru +1435 1773 p 2 50 ru +265 r 2 50 ru +cmr10.300 @sf +1775 1758 p (op) s +1 r (en) s +1935 1773 p 2 50 ru +1435 1823 p 2 50 ru +cmcsc10.300 @sf +1572 1808 p (shift) s +1700 1823 p 2 50 ru +cmr10.300 @sf +1772 1808 p (mo) s +0 r 118 c +-2 r 101 c +1935 1823 p 2 50 ru +1435 1873 p 2 50 ru +cmcsc10.300 @sf +1580 1858 p (ctrl) s +1700 1873 p 2 50 ru +cmr10.300 @sf +1737 1858 p (exc) s +-1 r (hange) s +1935 1873 p 2 50 ru +1435 1923 p 2 50 ru +cmcsc10.300 @sf +1461 1908 p (ctrl-shift) s +1700 1923 p 2 50 ru +cmr10.300 @sf +1726 1908 p (icon) s +13 r (men) s +0 r 117 c +1935 1923 p 2 50 ru +1436 1924 p 500 2 ru +256 2056 p 581 2 ru +255 2106 p 2 50 ru +cmbx10.300 @sf +447 2091 p 82 c +-3 r (TL) s +15 r (Icon) s +836 2106 p 2 50 ru +256 2107 p 581 2 ru +255 2157 p 2 50 ru +265 r 2 50 ru +cmr10.300 @sf +546 2142 p (manager) s +13 r (men) s +0 r 117 c +836 2157 p 2 50 ru +255 2207 p 2 50 ru +cmcsc10.300 @sf +392 2192 p (shift) s +520 2207 p 2 50 ru +cmr10.300 @sf +632 2192 p (mo) s +0 r 118 c +-1 r 101 c +836 2207 p 2 50 ru +255 2257 p 2 50 ru +cmcsc10.300 @sf +400 2242 p (ctrl) s +520 2257 p 2 50 ru +cmr10.300 @sf +597 2242 p (exc) s +0 r (hange) s +836 2257 p 2 50 ru +255 2307 p 2 50 ru +cmcsc10.300 @sf +281 2292 p (ctrl-shift) s +520 2307 p 2 50 ru +cmr10.300 @sf +546 2292 p (manager) s +13 r (men) s +0 r 117 c +836 2307 p 2 50 ru +256 2308 p 581 2 ru +1093 2056 p 601 2 ru +1092 2106 p 2 50 ru +cmbx10.300 @sf +1269 2091 p (Bac) s +0 r (kground) s +1693 2106 p 2 50 ru +1093 2107 p 601 2 ru +1092 2157 p 2 50 ru +265 r 2 50 ru +cmr10.300 @sf +1393 2142 p (manager) s +13 r (men) s +0 r 117 c +1693 2157 p 2 50 ru +1092 2207 p 2 50 ru +cmcsc10.300 @sf +1229 2192 p (shift) s +1357 2207 p 2 50 ru +cmr10.300 @sf +1383 2192 p (deselect) s +13 r (listener) s +1693 2207 p 2 50 ru +1092 2257 p 2 50 ru +cmcsc10.300 @sf +1237 2242 p (ctrl) s +1357 2257 p 2 50 ru +cmr10.300 @sf +1383 2242 p (deselect) s +13 r (listener) s +1693 2257 p 2 50 ru +1092 2307 p 2 50 ru +cmcsc10.300 @sf +1118 2292 p (ctrl-shift) s +1357 2307 p 2 50 ru +cmr10.300 @sf +1435 2292 p (redra) s +0 r 119 c +13 r (all) s +1693 2307 p 2 50 ru +1093 2308 p 601 2 ru +cmbx10.300 @sf +0 2467 p (NOTES:) s +cmsy10.300 @sf +62 2550 p 15 c +cmr10.300 @sf +21 r 84 c +-2 r 111 c +12 r (cancel) s +14 r (an) s +14 r (op) s +1 r (eration) s +14 r (hold) s +cmcsc10.300 @sf +14 r (CTRL) s +cmr10.300 @sf +14 r (and) s +cmcsc10.300 @sf +14 r (SHIFT) s +cmr10.300 @sf +13 r (while) s +14 r (releasing) s +14 r (or) s +14 r (clic) s +0 r (king) s +13 r (the) s +13 r (mouse) s +14 r (button.) s +cmsy10.300 @sf +62 2633 p 15 c +cmr10.300 @sf +21 r 65 c +13 r (question) s +13 r (mark) s +13 r (cursor) s +13 r (is) s +14 r 97 c +13 r (request) s +13 r (for) s +13 r (con\014rmation.) s +18 r (Clic) s +0 r 107 c +12 r (the) s +13 r (mouse) s +13 r (button) s +13 r (to) s +13 r (con\014rm,) s +14 r (hold) s +cmcsc10.300 @sf +13 r (CTRL) s +cmr10.300 @sf +104 2683 p (and) s +cmcsc10.300 @sf +14 r (SHIFT) s +cmr10.300 @sf +13 r (clic) s +0 r 107 c +13 r (the) s +14 r (mouse) s +14 r (button) s +14 r (to) s +13 r (cancel.) s +0 2753 p 1950 2 ru +0 2818 p 82 c +-2 r (TL) s +12 r (Release) s +14 r (5.0) s +1469 r (June) s +14 r (1988) s +@eop +@end diff --git a/doc/postscript/tutorial5.ps b/doc/postscript/tutorial5.ps new file mode 100644 index 0000000..538f177 --- /dev/null +++ b/doc/postscript/tutorial5.ps @@ -0,0 +1,3808 @@ +%! for use by dvi2ps Version 2.00 +% a start (Ha!) at a TeX mode for PostScript. +% The following defines procedures assumed and used by program "dvi2ps" +% and must be downloaded or sent as a header file for all TeX jobs. + +% By: Neal Holtz, Carleton University, Ottawa, Canada +% +% +% June, 1985 +% Last Modified: Aug 25/85 +% oystr 12-Feb-1986 +% Changed @dc macro to check for a badly formed bits in character +% definitions. Can get a <> bit map if a character is not actually +% in the font file. This is absolutely guaranteed to drive the +% printer nuts - it will appear that you can no longer define a +% new font, although the built-ins will still be there. + +% To convert this file into a downloaded file instead of a header +% file, uncomment all of the lines beginning with %-% + +%-%0000000 % Server loop exit password +%-%serverdict begin exitserver +%-% systemdict /statusdict known +%-% {statusdict begin 9 0 3 setsccinteractive /waittimeout 300 def end} +%-% if + +/TeXDict 200 dict def % define a working dictionary +TeXDict begin % start using it. + + % units are in "dots" (300/inch) +/Resolution 300 def +/Inch {Resolution mul} def % converts inches to internal units + +/Mtrx 6 array def + +%%%%%%%%%%%%%%%%%%%%% Page setup (user) options %%%%%%%%%%%%%%%%%%%%%%%% + +% dvi2ps will output coordinates in the TeX system ([0,0] 1" down and in +% from top left, with y +ive downward). The default PostScript system +% is [0,0] at bottom left, y +ive up. The Many Matrix Machinations in +% the following code are an attempt to reconcile that. The intent is to +% specify the scaling as 1 and have only translations in the matrix to +% properly position the text. Caution: the default device matrices are +% *not* the same in all PostScript devices; that should not matter in most +% of the code below (except for lanscape mode -- in that, rotations of +% -90 degrees resulted in the the rotation matrix [ e 1 ] +% [ 1 e ] +% where the "e"s were almost exactly but not quite unlike zeros. + +/@letter + { letter initmatrix + 72 Resolution div dup neg scale % set scaling to 1. + 310 -3005 translate % move origin to top (these are not exactly 1" + Mtrx currentmatrix pop % and -10" because margins aren't set exactly right) + } def + % note mode is like letter, except it uses less VM +/@note + { note initmatrix + 72 Resolution div dup neg scale % set scaling to 1. + 310 -3005 translate % move origin to top + Mtrx currentmatrix pop + } def + +/@landscape + { letter initmatrix + 72 Resolution div dup neg scale % set scaling to 1. +% -90 rotate % it would be nice to be able to do this + Mtrx currentmatrix 0 0.0 put % but instead we have to do things like this because what + Mtrx 1 -1.0 put % should be zero terms aren't (and text comes out wobbly) + Mtrx 2 1.0 put % Fie! This likely will not work on QMS printers + Mtrx 3 0.0 put % (nor on others where the device matrix is not like + Mtrx setmatrix % like it is on the LaserWriter). + 300 310 translate % move origin to top + Mtrx currentmatrix pop + } def + +/@legal + { legal initmatrix + 72 Resolution div dup neg scale % set scaling to 1. + 295 -3880 translate % move origin to top + Mtrx currentmatrix pop + } def + +/@manualfeed + { statusdict /manualfeed true put + } def + % n @copies - set number of copies +/@copies + { /#copies exch def + } def + +%%%%%%%%%%%%%%%%%%%% Procedure Defintions %%%%%%%%%%%%%%%%%%%%%%%%%% + +/@newfont % id @newfont - -- initialize a new font dictionary + { /newname exch def + pop + newname 7 dict def % allocate new font dictionary + newname load begin + /FontType 3 def + /FontMatrix [1 0 0 -1 0 0] def + /FontBBox [0 0 1 1] def + /BitMaps 128 array def + /BuildChar {CharBuilder} def + /Encoding 128 array def + 0 1 127 {Encoding exch /.undef put} for + end + newname newname load definefont pop + } def + + +% the following is the only character builder we need. it looks up the +% char data in the BitMaps array, and paints the character if possible. +% char data -- a bitmap descriptor -- is an array of length 6, of +% which the various slots are: + +/ch-image {ch-data 0 get} def % the hex string image +/ch-width {ch-data 1 get} def % the number of pixels across +/ch-height {ch-data 2 get} def % the number of pixels tall +/ch-xoff {ch-data 3 get} def % number of pixels below origin +/ch-yoff {ch-data 4 get} def % number of pixels to left of origin +/ch-tfmw {ch-data 5 get} def % spacing to next character + +/CharBuilder % fontdict ch Charbuilder - -- image one character + { /ch-code exch def % save the char code + /font-dict exch def % and the font dict. + /ch-data font-dict /BitMaps get ch-code get def % get the bitmap descriptor for char + ch-data null eq not + { ch-tfmw 0 ch-xoff neg ch-yoff neg ch-width ch-xoff sub ch-height ch-yoff sub + setcachedevice + ch-width ch-height true [1 0 0 1 ch-xoff ch-yoff] + {ch-image} imagemask + } + if + } def + + +/@sf % fontdict @sf - -- make that the current font + { setfont() pop + } def + + % in the following, the font-cacheing mechanism requires that + % a name unique in the particular font be generated + +/@dc % char-data ch @dc - -- define a new character bitmap in current font + { /ch-code exch def +% ++oystr 12-Feb-86++ + dup 0 get + length 2 lt + { pop [ <00> 1 1 0 0 8.00 ] } % replace <> with null + if +% --oystr 12-Feb-86-- + /ch-data exch def + currentfont /BitMaps get ch-code ch-data put + currentfont /Encoding get ch-code + dup ( ) cvs cvn % generate a unique name simply from the character code + put + } def + +/@bop0 % n @bop0 - -- begin the char def section of a new page + { + } def + +/@bop1 % n @bop1 - -- begin a brand new page + { pop + erasepage initgraphics + Mtrx setmatrix + /SaveImage save def() pop + } def + +/@eop % - @eop - -- end a page + { showpage + SaveImage restore() pop + } def + +/@start % - @start - -- start everything + { @letter % (there is not much to do) + } def + +/@end % - @end - -- done the whole shebang + { end + } def + +/p % x y p - -- move to position + { moveto + } def + +/r % x r - -- move right + { 0 rmoveto + } def + +/s % string s - -- show the string + { show + } def + +/c % ch c - -- show the character (code given) + { c-string exch 0 exch put + c-string show + } def + +/c-string ( ) def + +/ru % dx dy ru - -- set a rule (rectangle) + { /dy exch neg def % because dy is height up from bottom + /dx exch def + /x currentpoint /y exch def def % remember current point + newpath x y moveto + dx 0 rlineto + 0 dy rlineto + dx neg 0 rlineto + closepath fill + x y moveto + } def + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% the \special command junk +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% The structure of the PostScript produced by dvi2ps for \special is: +% @beginspecial +% - any number of @hsize, @hoffset, @hscale, etc., commands +% @setspecial +% - the users file of PostScript commands +% @endspecial + +% The @beginspecial command recognizes whether the Macintosh Laserprep +% has been loaded or not, and redfines some Mac commands if so. +% The @setspecial handles the users shifting, scaling, clipping commands + + +% The following are user settable options from the \special command. + +/@SpecialDefaults + { /hs 8.5 Inch def + /vs 11 Inch def + /ho 0 def + /vo 0 def + /hsc 1 def + /vsc 1 def + /CLIP false def + } def + +% d @hsize - specify a horizontal clipping dimension +% these 2 are executed before the MacDraw initializations +/@hsize {/hs exch def /CLIP true def} def +/@vsize {/vs exch def /CLIP true def} def +% d @hoffset - specify a shift for the drwgs +/@hoffset {/ho exch def} def +/@voffset {/vo excl def} def +% s @hscale - set scale factor +/@hscale {/hsc exch def} def +/@vscale {/vsc exch def} def + +/@setclipper + { hsc vsc scale + CLIP + { newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip } + if + } def + +% this will be invoked as the result of a \special command (for the +% inclusion of PostScript graphics). The basic idea is to change all +% scaling and graphics back to defaults, but to shift the origin +% to the current position on the page. Due to TeXnical difficulties, +% we only set the y-origin. The x-origin is set at the left edge of +% the page. + +/@beginspecial % - @beginspecial - -- enter special mode + { gsave /SpecialSave save def + % the following magic incantation establishes the current point as + % the users origin, and reverts back to default scalings, rotations + currentpoint transform initgraphics itransform translate + @SpecialDefaults % setup default offsets, scales, sizes + @MacSetUp % fix up Mac stuff + } def + +/@setspecial % to setup user specified offsets, scales, sizes (for clipping) + { + MacDrwgs + {md begin /pxt ho def /pyt vo neg def end} + {ho vo translate @setclipper} + ifelse + } def + +/@endspecial % - @endspecial - -- leave special mode + { SpecialSave restore + grestore + } def + +/MacDrwgs false def % will get set if we think the Mac LaserPrep file has been loaded + + % - @MacSetUp - turn-off/fix-up all the MacDraw stuff that might hurt us + % we depend on 'psu' being the first procedure executed + % by a Mac document. We redefine 'psu' to adjust page + % translations, and to do all other the fixups required. + % This stuff will not harm other included PS files +/@MacSetUp + { userdict /md known % if md is defined + { userdict /md get type /dicttype eq % and if it is a dictionary + { /MacDrwgs true def + md begin % then redefine some stuff + /psu % redfine psu to set origins, etc. + /psu load + % this procedure contains almost all the fixup code + { /letter {} def % it is bad manners to execute the real + /note {} def % versions of these (clears page image, etc.) + /legal {} def + statusdict /waittimeout 300 put + /page {pop} def % no printing of pages + /pyt vo neg def % x & y pixel translations + /pxt ho def + } + concatprocs + def + /od % redefine od to set clipping region + /od load + { @setclipper } + concatprocs + def + end } + if } + if + } def + +% p1 p2 concatprocs p - concatenate procedures +/concatprocs + { /p2 exch cvlit def + /p1 exch cvlit def + /p p1 length p2 length add array def + p 0 p1 putinterval + p p1 length p2 putinterval + p cvx + } def + +end % revert to previous dictionary +TeXDict begin @start +%%Title: /usr/cadillac/berman/Papers/Rtl/manual/tutorial5.dvi +%%Creator: dvi2ps +%%EndProlog +4 @bop0 +[ 329 ] /cmr10.329 @newfont +cmr10.329 @sf +[ 32 31 -1 0 34.090] 65 @dc +[ 16 32 0 0 12.626] 108 @dc +[<01E0031006100E080E080E080E080E080E000E000E000E000E000E000E000E000E000E000E00FFF83E000E000E0006000600 + 020002000200> 16 28 -1 0 17.676] 116 @dc +[<01F8000706000C0100180080380080700000700000F00000F00000F00000FFFF80F00380F003807003807007003807003807 + 001C0E000E1C0003F000> 24 20 -1 0 20.202] 101 @dc +[ 16 20 -1 0 17.803] 114 @dc +[ 24 20 -1 0 25.252] 110 @dc +[<0F83C0386720781E10F01E10F00E10F00E10F00E10780E00380E001E0E00078E0000FE00000E00000E00000E00300E00781C + 007818003030001FE000> 24 20 -2 0 22.727] 97 @dc +[<3C0000620000F10000F08000F0800000400000400000400000200000200000700000700000700000E80000E80001EC0001C4 + 0001C4000382000382000382000701000701000E00800E00800E00801C00C01E01E0FF83F8> 24 29 -1 9 23.989] 121 @dc +[<40201010080804040474FCFCF870> 8 14 -4 9 12.626] 44 @dc +[<083E000CC3000D01C00F00E00E00E00E00700E00700E00780E00780E00780E00780E00780E00780E00700E00700E00E00F00 + E00F01C00EC3800E3E000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0000FE00000E0000> 24 32 -1 0 25.252] 98 @dc +[<8F80D060E030C018C01880188018803800700FF03FE07F807800E000C010C010C010403030701F90> 16 20 -2 0 17.929] 115 @dc +[ 24 29 -1 9 25.252] 112 @dc +[<03F0000E0C001C0200380100380100700000700000F00000F00000F00000F00000F00000F00000700000700000380C00381E + 001C1E000E0C0003F800> 24 20 -2 0 20.202] 99 @dc +[ 16 31 0 0 12.626] 105 @dc +[<7FF0000700000700000700000700000700000700000700000700000700000700000700000700000700000700000700000700 + 00070000070000FFF000070000070000070000070000070000070000070000070600038F00018F0000C600007C00> 24 32 0 0 13.889] 102 @dc +[<03FC001C03803000C0600060C00030C00030C00030C000306000703001E00FFFC01FFF803FFE003000003000002000002000 + 0033E0001E38001C1C00380E00780F00780F00780F00780F00780F00380E001C1C300E3A3003E1E0> 24 30 -1 10 22.727] 103 @dc +[ 24 32 -1 0 25.252] 104 @dc +[<7FE7FE0700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700 + E00700E00700E0FFFFE00700E00700E00700E00700E00700E00700E00700E00700E00381E001C1E000E0E0003FE0> 24 32 0 0 25.252] 13 @dc +[<387CFCFCB8808080404020201008> 8 14 -3 -18 12.626] 96 @dc +[ 16 2 -1 -9 15.151] 45 @dc +[<40201010080804040474FCFCF870> 8 14 -4 -18 12.626] 39 @dc +[<004008000060180000E01C0000E01C0000F03C0001D03A0001D0320003C8730003887100038861000704E0800704C0800707 + C0800E03C0400E0380400E0380401C0380201C0300603C078070FF9FE1FC> 32 20 -1 0 32.828] 119 @dc +[ 329 ] /cmbx10.329 @newfont +cmbx10.329 @sf +[ 24 20 -2 0 21.527] 114 @dc +[<01F003F807CC0F860F860F860F860F860F800F800F800F800F800F800F800F800F800F80FFFCFFFC3F800F80078003800380 + 0380018001800180> 16 29 -1 0 20.328] 116 @dc +[ 16 32 -2 0 14.520] 108 @dc +cmr10.329 @sf +[<03E3F80E1B801C0780380780380380700380700380F00380F00380F00380F00380F00380F003807003807003803803803803 + 801C0780061B8003E380000380000380000380000380000380000380000380000380000380000380003F80000380> 24 32 -2 0 25.252] 100 @dc +[<01F800070E001C03803801C03801C07000E07000E0F000F0F000F0F000F0F000F0F000F0F000F07000E07000E03801C03801 + C01C0380070E0001F800> 24 20 -1 0 22.727] 111 @dc +[<01F1FC030DC00603C00E03C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01 + C00E01C0FE1FC00E01C0> 24 20 -1 0 25.252] 117 @dc +[ 329 ] /cmti10.329 @newfont +cmti10.329 @sf +[<1E003100708070807040704038203800380038001C001C001C001C000E000E000E000E000700FFF007000700038003800380 + 038001C00180> 16 28 -4 0 15.101] 116 @dc +[<3000007000003800003800003800003800001C00001C00001C00001C00000E00000E00000E00008E00004703004707804787 + 804783802661001C1E00> 24 20 -4 0 19.166] 114 @dc +[<07C000183800380400700200700100700000F00000F00000F00000F000007C00007BF000780C003802003C01001C01000E01 + 0007010001C200007C00> 24 20 -4 0 20.908] 101 @dc +[<0F0700308C80705C40703C40F01C40F01C40F00E20F00E00F00E00F00E007807007807007807003807003C03801C03800E03 + 800707800389C000F180> 24 20 -4 0 23.232] 97 @dc +[<0F0700308C80705C40703C40F01C40F01C40F00E20F00E00F00E00F00E007807007807007807003807003C03801C03800E03 + 800707800389C000F1C00001C00001C00000E00000E00000E00000E00000700000700000700000700003F8000078> 24 32 -4 0 23.232] 100 @dc +cmr10.329 @sf +[<7FC3FE0700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700 + E00700E00700E0FFFFE00700000700000700000700000700000700000701E00701E00381E001C0C000E0C0003F00> 24 32 0 0 25.252] 12 @dc +cmbx10.329 @sf +[ 32 31 -2 0 32.890] 70 @dc +[ 16 33 -2 0 14.520] 105 @dc +[ 32 20 -3 0 29.040] 110 @dc +[ 24 20 -2 0 20.618] 115 @dc +[ 32 32 -3 0 29.040] 104 @dc +[ 32 31 -2 0 31.438] 76 @dc +[<0FE07E3FF9FE7E0DE0FC05E0F803E0F803E0F803E07C03E03C03E01F03E007FBE0007FE00003E00C03E03F03E03F03E03F07 + C03F0F801FFF0007FC00> 24 20 -1 0 25.410] 97 @dc +[<1E0000007F800000E1C00000C0E00000FC600000FC300000783000000018000000180000001C0000001C0000003E0000003E + 0000007F0000007F000000FF800000F9800001F9C00001F0C00001F0C00003E0600003E0600007C0300007C030000F801800 + 0F8018001F001C00FFE07F80FFE07F80> 32 29 -1 9 27.588] 121 @dc +[<01FF0007FFC01F83F03E00F83E00F87C007C7C007CFC007EFC007EFC007EFC007EFC007EFC007E7C007C7C007C3E00F83E00 + F81F83F007FFC001FF00> 24 20 -1 0 26.136] 111 @dc +[<03F8FF0007FCFF000F06F8001F01F8001F01F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00 + F8001F00F8001F00F8001F00F8001F00F8001F00F800FF07F800FF07F800> 32 20 -3 0 29.040] 117 @dc +cmr10.329 @sf +[<70F8F8F870> 8 5 -4 0 12.626] 46 @dc +[ 16 31 -1 0 16.414] 73 @dc +[<000400020000000C00030000000E00070000000E00070000001E00078000001F000F8000001F000F8000003F000FC000003C + 801E4000003C801E4000003C801E40000078403C20000078403C20000078403C200000F02078100000F02078100000F02078 + 100001E010F0080001E010F0080001E010F0080003C009F0040003C009E0040003C009E0040007800FE00200078007C00200 + 078007C002000F0007C001000F00078001000F00078003801F800FC007C0FFF07FF81FF0> 48 31 -1 0 46.716] 87 @dc +[<00200000700000700000700000E80000E80001EC0001C40001C4000382000382000382000701000701000E00800E00800E00 + 801C00C01E01E0FF83F8> 24 20 -1 0 23.989] 118 @dc +cmbx10.329 @sf +[<81FF00E7FFC0FE01E0F80070E00078E00038C0003CC0003CC0003C00003C00007C0000FC0007F800FFF807FFF00FFFF01FFF + E03FFF807FFE007FC000FC0000F80000F00018F00018F000387000387000783800F81E03F80FFF3803FC08> 24 31 -3 0 29.040] 83 @dc +[<001C0000001C0000003E0000003E0000007F0000007F000000FF800000F9800001F9C00001F0C00001F0C00003E0600003E0 + 600007C0300007C030000F8018000F8018001F001C00FFE07F80FFE07F80> 32 20 -1 0 27.588] 118 @dc +[<00FF8007FFE00F80703F00383E00187E00007C0000FC0000FC0000FC0000FFFFF8FFFFF8FC00F8FC00F87E00F87E00F03F01 + F01F83E007FF8001FE00> 24 20 -1 0 23.958] 101 @dc +cmr10.329 @sf +[ 32 31 -2 0 30.934] 69 @dc +[<3F006180F0C0F060607000700070007000700070007000700070007000700070007000700070007000700070007000700070 + 007000F007F0007000000000000000000000000000E001F001F001F000E0> 16 40 2 9 13.889] 106 @dc +[<70F8F8F8700000000000202020202070707070707070707070F8F8F8F8F8F870> 8 32 -4 0 12.626] 33 @dc +[<00FFE0000E00000E00000E00000E00000E00000E00000E00FFFFF0C00E00400E00200E00300E00100E00080E000C0E00040E + 00020E00010E00010E00008E00004E00006E00002E00001E00001E00000E00000600000600> 24 29 -1 0 22.727] 52 @dc +4 @bop1 +cmr10.329 @sf +71 195 p (Alternately) s +-3 r 44 c +12 r 98 c +0 r 121 c +12 r (sp) s +1 r (ecifying) s +13 r (the) s +13 r (\015ag) s +13 r (`-f) s +3 r 39 c +13 r (when) s +13 r (the) s +cmbx10.329 @sf +13 r (rtl) s +cmr10.329 @sf +13 r (is) s +13 r (started,) s +13 r (the) s +13 r (windo) s +0 r (ws) s +11 r (on) s +13 r (the) s +13 r (screen) s +13 r (when) s +cmbx10.329 @sf +0 252 p (rtl) s +cmr10.329 @sf +17 r (is) s +17 r (started) s +17 r (are) s +16 r (laid) s +17 r (out,) s +17 r (but) s +17 r (then,) s +18 r (the) s +16 r (la) s +0 r 121 c +-1 r (out) s +16 r (is) s +cmti10.329 @sf +16 r (tr) s +-1 r 101 c +-2 r (ate) s +-2 r 100 c +cmr10.329 @sf +15 r (as) s +17 r (\014nished) s +17 r (and) s +17 r 96 c +cmbx10.329 @sf +0 r (Finish) s +19 r (La) s +0 r 121 c +-2 r (out) s +cmr10.329 @sf +0 r 39 c +16 r (do) s +1 r (es) s +0 308 p (not) s +15 r (app) s +1 r (ear.) s +21 r (If) s +15 r 121 c +0 r (ou) s +14 r (sp) s +1 r (ecify) s +15 r (the) s +15 r (\015ag) s +15 r (`-i',) s +16 r (then) s +15 r (the) s +15 r (la) s +0 r 121 c +-2 r (out) s +14 r (\014le) s +16 r (is) s +15 r (ignored) s +15 r (en) s +0 r (tirely) s +-4 r 46 c +71 364 p (When) s +16 r (the) s +16 r (la) s +-1 r 121 c +-1 r (out) s +15 r (has) s +16 r 98 c +1 r (een) s +17 r (\014nished,) s +16 r (in) s +16 r (whatev) s +0 r (er) s +15 r 119 c +-1 r 97 c +-1 r 121 c +-4 r 44 c +16 r 96 c +cmbx10.329 @sf +0 r (Sa) s +-1 r 118 c +-1 r 101 c +17 r (La) s +0 r 121 c +-2 r (out) s +cmr10.329 @sf +0 r 39 c +15 r (app) s +2 r (ears) s +16 r (in) s +16 r (the) s +16 r (place) s +16 r (of) s +0 421 p 96 c +cmbx10.329 @sf +(Finish) s +15 r (La) s +-1 r 121 c +-1 r (out) s +cmr10.329 @sf +0 r (',) s +12 r (allo) s +0 r (wing) s +12 r (the) s +13 r (user) s +13 r (to) s +13 r 99 c +-1 r (hange) s +12 r (the) s +13 r (la) s +0 r 121 c +-1 r (out,) s +12 r (and) s +13 r (resa) s +0 r 118 c +-1 r 101 c +11 r (it,) s +14 r 111 c +0 r 118 c +-2 r (erwriting) s +12 r (the) s +13 r (old) s +13 r (la) s +0 r 121 c +-1 r (out) s +0 477 p (\014le.) s +71 534 p (Enjo) s +-1 r (y!) s +949 2828 p 52 c +@eop +3 @bop0 +[ 432 ] /cmbx10.432 @newfont +cmbx10.432 @sf +[<00FF800003FFF0000FFFFC001F01FE003C007F0078003F8078003FC0FE001FC0FE001FE0FE001FE0FE001FE0FE001FE07E00 + 1FE018001FE000001FE000001FE000001FC000001FC000003F800C003F800E007F000F80FE000FFFF8000E7FC0000E000000 + 0E0000000E0000000E0000000E0000000E0000000FFE00000FFFC0000FFFE0000FFFF8000FFFFC000FFFFE000FFFFE000F80 + 3F000C000300> 32 39 -3 0 34.370] 53 @dc +[ 40 41 -3 0 46.989] 80 @dc +[<001FF00000FFFE0003F81F800FE003C01FC001C03F8001E03F8000E07F8000007F000000FF000000FF000000FF000000FF00 + 0000FFFFFFE0FFFFFFE0FF0007E0FF0007E0FF0007E07F0007E07F000FC03F800FC03F800FC01FC01F800FE03F0003F07E00 + 01FFF800003FE000> 32 27 -2 0 31.506] 101 @dc +[ 32 27 -2 0 28.310] 114 @dc +[<00000E00000700000000001F00000F80000000001F00000F80000000001F80001F80000000003F80001FC0000000003F8000 + 1FC0000000003FC0003FC0000000007FC0003FE0000000007FC0003FE000000000FFE0007FF000000000FFE0007FF0000000 + 00FFF000FFF000000001FE7000FF3800000001FE7000FF3800000001FE7801FF3800000003FC3801FE1C00000003FC3801FE + 1C00000007FC1C03FC1E00000007F81C03FC0E00000007F81E07FC0E0000000FF00E07F8070000000FF00E07F8070000001F + F00F0FF0078000001FE0070FF0038000001FE0070FF0038000003FE0039FE003C000003FC0039FE001C000003FC003FFE001 + C000007F8001FFC000E000007F8001FFC000E00000FF8000FF8000F00000FF0000FF8000700000FF0000FF8000700001FF00 + 00FF0000780001FE0000FF0000380001FE0001FF0000380003FC0001FE00001C0003FC0001FE00001C00FFFFE07FFFF007FF + F0FFFFE07FFFF007FFF0FFFFE07FFFF007FFF0> 72 41 -1 0 71.065] 87 @dc +[ 16 43 -3 0 19.094] 105 @dc +[ 40 27 -3 0 38.189] 110 @dc +[<003FC3FF8000FFF3FF8003F03FFF800FE01FF8001FC00FF8003F8007F8003F8003F8007F0003F8007F0003F800FF0003F800 + FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F8007F0003F8007F8003F800 + 3F8003F8003F8003F8001FC007F8000FE00FF80003F03FF80000FFFBF800001FE3F800000003F800000003F800000003F800 + 000003F800000003F800000003F800000003F800000003F800000003F800000003F800000003F800000003F80000003FF800 + 00003FF80000003FF800> 40 42 -2 0 38.189] 100 @dc +[<003FE00001FFFC0007F07F000FC01F801F800FC03F800FE03F800FE07F0007F07F0007F0FF0007F8FF0007F8FF0007F8FF00 + 07F8FF0007F8FF0007F8FF0007F8FF0007F87F0007F07F0007F07F0007F03F0007E03F800FE01F800FC00FC01F8003F07E00 + 01FFFC00003FE000> 32 27 -2 0 34.370] 111 @dc +[<00078003C00000078003C000000FC007E000000FC007E000000FC007E000001FE00FF000001FE00FF000003FF01FF800003F + F01FB800003FF01FB800007F783F3C00007F383F1C0000FF383F1E0000FE1C7E0E0000FE1C7E0E0001FE1EFC0F0001FC0EFC + 070001FC0EFC070003F807F8038003F807F8038007F807F803C007F003F001C007F003F001C00FE007E000E0FFFE7FFC0FFE + FFFE7FFC0FFEFFFE7FFC0FFE> 48 27 -1 0 49.646] 119 @dc +[<0000FFE00000000FFFFE0000003FC07F800000FF001FE00001FC0007F00003F80003F80007F00001FC000FF00001FE001FE0 + 0000FF001FE00000FF003FC000007F803FC000007F807FC000007FC07FC000007FC07F8000003FC0FF8000003FE0FF800000 + 3FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0 + 7F8000003FC07F8000003FC07F8000003FC07FC000007FC03FC000007F803FC000007F801FE00000FF001FE00000FF000FF0 + 0001FE0007F00001FC0003F80003F80001FC0007F000007F001FC000003FC07F80000007FFFC00000000FFE00000> 48 41 -4 0 51.638] 79 @dc +[ 40 39 -2 12 38.189] 112 @dc +[<001F8000FFE001F8F003F87007F03807F03807F03807F03807F03807F03807F03807F00007F00007F00007F00007F00007F0 + 0007F00007F00007F00007F00007F00007F00007F000FFFFF0FFFFF01FFFF007F00003F00003F00001F00000F00000F00000 + F000007000007000007000007000> 24 38 -1 0 26.732] 116 @dc +[ 24 27 -2 0 27.114] 115 @dc +cmr10.329 @sf +[ 32 31 -2 0 32.196] 66 @dc +cmbx10.329 @sf +[<001FF8000000FFFF000001F81F800007E007E0000FC003F0001F8001F8003F8001FC003F0000FC007F0000FE007F0000FE00 + 7E00007E00FE00007F00FE00007F00FE00007F00FE00007F00FE00007F00FE00007F00FE00007F00FE00007F00FE00007F00 + 7E00007E007E00007E007F0000FE003F0000FC001F0000F8001F8001F8000FC003F00007E007E00001F81F800000FFFF0000 + 001FF80000> 40 31 -3 0 39.266] 79 @dc +[ 32 29 -2 9 29.040] 112 @dc +cmr10.329 @sf +[ 40 20 -1 0 37.878] 109 @dc +[<70F8F8F8700000000000000000000070F8F8F870> 8 20 -4 0 12.626] 58 @dc +[ 329 ] /cmsy10.329 @newfont +cmsy10.329 @sf +[<07E0001FF8003FFC007FFE007FFE00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF007FFE007FFE003FFC001FF8 + 0007E000> 24 18 -3 -2 22.727] 15 @dc +cmbx10.329 @sf +[<01FC0007FF001F81C03F00C03E00607E00007C0000FC0000FC0000FC0000FC0000FC0000FC00007C03007C0FC03E0FC03E0F + C01F0FC007FF8001FE00> 24 20 -2 0 23.232] 99 @dc +[ 32 32 -2 0 27.588] 107 @dc +[<03F8FF000FFEFF001F07F8003E01F8007E00F8007C00F8007C00F800FC00F800FC00F800FC00F800FC00F800FC00F800FC00 + F8007C00F8007C00F8007E00F8003E01F8001F83F8000FFEF80001F8F8000000F8000000F8000000F8000000F8000000F800 + 0000F8000000F8000000F8000000F8000000F8000007F8000007F800> 32 32 -2 0 29.040] 100 @dc +cmr10.329 @sf +[ 48 1 0 -12 45.454] 124 @dc +cmbx10.329 @sf +[ 32 20 -1 0 27.588] 120 @dc +[<00018000300000000380003800000003C0007800000007C0007C00000007C0007C00000007E000FC0000000FE000FE000000 + 0FF001FE0000000FF001FE0000001FB001FB0000001F9803F30000003F9803F38000003F1803F18000003F0C07E18000007E + 0C07E0C000007E0E0FE0C000007E060FC0C00000FC060FC0600000FC031F80600001FC031F80700001F8031F80300001F801 + BF00300003F001BF00180003F001FF00180003F000FE00180007E000FE000C0007E000FE000C000FE000FC000E000FC000FC + 000E00FFFE0FFFC0FFE0FFFE0FFFC0FFE0> 56 31 -1 0 54.039] 87 @dc +[ 40 31 -2 0 40.908] 72 @dc +[<01FF000FFFE03F01F878003C78003CF0001EF0001EF0001E70003E3C007C1FFFFC07FFF80FFFF01FFF801C00001800001800 + 0009FC000FFF000F07801E03C03E03E03E03E03E03E03E03E03E03E01E03DE0F079E07FFFE01FC3C> 24 30 -1 10 26.136] 103 @dc +[ 32 31 -2 0 34.342] 69 @dc +cmr10.329 @sf +[ 24 20 -1 0 20.202] 122 @dc +cmbx10.329 @sf +[<03FFFFC003FFFFC00007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007 + E0000007E0000007E0000007E0000007E0000007E0000007E000C007E006C007E006C007E006C007E006E007E00E6007E00C + 6007E00C7007E01C7C07E07C7FFFFFFC7FFFFFFC> 32 30 -2 0 36.362] 84 @dc +[ 32 31 -3 0 31.944] 90 @dc +[ 40 20 -3 0 43.559] 109 @dc +cmr10.329 @sf +[ 24 31 -3 0 27.777] 90 @dc +[<0020004000800100020006000C000C00180018003000300030007000600060006000E000E000E000E000E000E000E000E000 + E000E000E000E0006000600060007000300030003000180018000C000C00060002000100008000400020> 16 46 -3 12 17.676] 40 @dc +[<800040002000100008000C00060006000300030001800180018001C000C000C000C000E000E000E000E000E000E000E000E0 + 00E000E000E000E000C000C000C001C001800180018003000300060006000C0008001000200040008000> 16 46 -3 12 17.676] 41 @dc +[<07FFFE00001F8000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F + 0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000800F0010800F0010800F0010800F0010 + C00F0030400F0020400F0020600F0060780F01E07FFFFFE0> 32 31 -2 0 32.828] 84 @dc +[<83F800CC0C00F00600E00300C00180C001808001C08001C08001C00001C00003C00003C0000780001F8003FF000FFE001FFC + 003FF0007F0000780000F00000F00000E00080E00080E00080E001806001803003803007801C198007E080> 24 31 -3 0 25.252] 83 @dc +[<001FE0000070180001C0040003800200070001000E0000801E0000803C0000403C0000407C0000407800000078000000F800 + 0000F8000000F8000000F8000000F8000000F8000000F800000078000000780000407C0000403C0000403C0000C01E0000C0 + 0E0001C0070001C0038003C001C00DC0007030C0001FC040> 32 31 -3 0 32.828] 67 @dc +[ 40 31 -2 0 41.666] 77 @dc +cmbx10.432 @sf +[<003FC00000FFF00003FFFC0007E0FF000FC03F801F803F803F801FC03F801FC07F001FE07F001FE07F001FE07F001FE0FF00 + 1FE0FF001FE0FF001FE0FF001FE0FF801FC0FF801FC0FF801FC0FFC03F80FFE03F00FF70FE00FF3FF800FF0FC000FF000000 + 7F0000007F0000007F0000007F8000003F801F003F803F801FC03F800FC03F800FE03F8007F01F8001FC0F0000FFFF00003F + FC000007F000> 32 39 -3 0 34.370] 54 @dc +[ 32 41 -4 0 38.189] 83 @dc +[<01FC03FC0FFF0FFC3F83DFFC7F00FFC0FF007F80FE007F80FE003F80FE003F80FE003F807F003F807F803F803F803F801FE0 + 3F8007FC3F8000FFFF80000FFF8000003F8000003F8000003F800F803F801FC03F801FC07F001FC07F001FC0FE000F81FC00 + 07FFF00001FF8000> 32 27 -2 0 33.415] 97 @dc +[<0001C000000003E000000003E000000007F000000007F00000000FF80000000FF80000000FF80000001FDC0000001FDC0000 + 003FDE0000003F8E0000007F8F0000007F070000007F07000000FE03800000FE03800001FC01C00001FC01C00003FC01E000 + 03F800E00007F800F00007F000700007F0007000FFFE03FF80FFFE03FF80FFFE03FF80> 40 27 -1 0 36.280] 118 @dc +[ 40 42 -3 0 38.189] 104 @dc +[ 40 41 -3 0 41.344] 76 @dc +[<0FC00000003FE00000007C78000000FE3C000000FE1E000000FE0E000000FE0F0000007C0700000038078000000003800000 + 00038000000001C000000001C000000003E000000003E000000007F000000007F00000000FF80000000FF80000000FF80000 + 001FDC0000001FDC0000003FDE0000003F8E0000007F8F0000007F070000007F07000000FE03800000FE03800001FC01C000 + 01FC01C00003FC01E00003F800E00007F800F00007F000700007F0007000FFFE03FF80FFFE03FF80FFFE03FF80> 40 39 -1 12 36.280] 121 @dc +[<003FC3FF8001FFF3FF8003F03BFF8007E01FF8000FE00FF8000FE007F8000FE007F8000FE003F8000FE003F8000FE003F800 + 0FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F800 + 0FE003F8000FE003F8000FE003F8000FE003F800FFE03FF800FFE03FF800FFE03FF800> 40 27 -3 0 38.189] 117 @dc +cmr10.329 @sf +[<003FC00000F0F00003C03C0007801E000F000F001E0007801E0007803C0003C07C0003E07C0003E0780001E0F80001F0F800 + 01F0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0780001E07C0003E03C0003C03C0003C01E000780 + 1E0007800F000F0007801E0003C03C0000E07000003FC000> 32 31 -3 0 35.353] 79 @dc +[<003FF800038000038000038000038000038000038000038000038003E3800E13801C0B80380780380380780380700380F003 + 80F00380F00380F00380F00380F003807003807803803803803C07801C058006198003E080> 24 29 -2 9 23.989] 113 @dc +[ 24 32 -1 0 23.989] 107 @dc +[ 32 31 -2 0 29.671] 70 @dc +[ 32 31 -2 0 33.459] 82 @dc +[ 24 31 -2 0 28.408] 76 @dc +[ 32 31 -2 0 34.090] 72 @dc +cmbx10.329 @sf +[<387CFEFEFE7C38> 8 7 -4 0 14.520] 46 @dc +cmbx10.432 @sf +[<0038000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000007E0000007E0000007E + 0000007E0000003E0000003F0000003F0000001F0000001F0000001F0000000F000000078000000780000003C0000003C000 + 0001E000E000F000E0007800E000380070003C0070001E0070000F007FFFFF807FFFFFC07FFFFFC07FFFFFE03FFFFFF03FFF + FFF03FFFFFF03E00000038000000> 32 41 -4 0 34.370] 55 @dc +[ 48 41 -3 0 48.898] 66 @dc +[ 16 42 -3 0 19.094] 108 @dc +[ 40 41 -3 0 43.253] 70 @dc +cmr10.329 @sf +[ 32 31 -2 0 34.090] 78 @dc +[ 24 20 0 0 23.989] 120 @dc +cmbx10.432 @sf +[<007FC00003FFF8000FFFFC001FC03F003F000F807E0007807C0007C0FC0003C0F80003E0F80003E0F80003E0F80007E0F800 + 0FE0FC001FE07C007FE07E01FFC03F03FFC01F8FFF8007FFFF8001FFFF0001FFFC0007FFF8000FFFE0001FFFF8001FFE7E00 + 3FFC3F003FF01F003FC01F803F800F803F000F803E000F803E000F801E001F801F001F000F003F000FC07E0003FFFC0001FF + F000003FC000> 32 39 -3 0 34.370] 56 @dc +[ 56 41 -3 0 51.555] 82 @dc +[<007FF00003FFFE000FC01F803F0007E07E0003F0FC0001F8F80000F8F80000F8F80000F8F80001F87C0001F87E0007F81FFF + FFF007FFFFF00FFFFFE01FFFFFC03FFFFF003FFFF8003E0000003C0000003C0000003800000018FF80001FFFE0000FC1F800 + 1F80FC003F80FE003F007E007F007F007F007F007F007F007F007F007F007F007F007F003F007E103F80FE7C1F80FC7C0FC1 + FE7C03FFE7FC00FF81F0> 32 40 -2 13 34.370] 103 @dc +cmr10.329 @sf +[<000FC000003830000060080000E0040001C0040003C002000380020007800100078001000780010007800100078001000780 + 0100078001000780010007800100078001000780010007800100078001000780010007800100078001000780010007800100 + 078001000780010007800100078003800FC007C0FFFC3FF8> 32 31 -2 0 34.090] 85 @dc +[<07F000181C00200E00400F00F00780F80780F807C0F807C02007C00007C0000780000780000F00000E00001C0003F0000038 + 00001C00000E00000F00000F00000F80380780780780780F80780F00200E00181C0007F000> 24 29 -2 0 22.727] 51 @dc +3 @bop1 +cmbx10.432 @sf +0 195 p 53 c +69 r 80 c +-1 r (er) s +22 r (Windo) s +-1 r 119 c +22 r (Options) s +cmr10.329 @sf +0 297 p (By) s +18 r (selecting) s +18 r 96 c +cmbx10.329 @sf +0 r (Options) s +cmr10.329 @sf +0 r 39 c +18 r (from) s +18 r 97 c +18 r (windo) s +0 r 119 c +17 r (men) s +0 r (u,) s +18 r 97 c +18 r (submen) s +-1 r 117 c +17 r (indicates) s +18 r 118 c +-1 r (arious) s +17 r 112 c +1 r (er-windo) s +0 r 119 c +17 r (options) s +0 353 p (that) s +15 r 121 c +0 r (ou) s +14 r (can) s +15 r (select:) s +cmsy10.329 @sf +68 447 p 15 c +cmbx10.329 @sf +23 r (Lo) s +1 r 99 c +0 r 107 c +-2 r (ed) s +17 r (Op) s +1 r (en) s +cmr10.329 @sf +15 r 124 c +16 r (prev) s +-1 r (en) s +-1 r (ts) s +14 r (the) s +15 r (windo) s +0 r 119 c +14 r (from) s +15 r 98 c +2 r (eing) s +15 r (automatically) s +114 503 p (closed.) s +cmsy10.329 @sf +68 594 p 15 c +cmbx10.329 @sf +23 r (Fixed) s +17 r (Width) s +cmr10.329 @sf +15 r 124 c +16 r (prev) s +-1 r (en) s +-1 r (ts) s +14 r (the) s +15 r (windo) s +0 r (w's) s +14 r (width) s +15 r (from) s +16 r 98 c +1 r (eing) s +15 r (automatically) s +15 r 99 c +0 r (hanged.) s +cmsy10.329 @sf +68 684 p 15 c +cmbx10.329 @sf +23 r (Fixed) s +17 r (Heigh) s +0 r 116 c +cmr10.329 @sf +14 r 124 c +15 r (prev) s +0 r (en) s +-1 r (ts) s +14 r (the) s +15 r (windo) s +0 r (w's) s +14 r (heigh) s +0 r 116 c +14 r (from) s +15 r 98 c +1 r (eing) s +15 r (automatically) s +15 r 99 c +0 r (hanged.) s +cmsy10.329 @sf +68 774 p 15 c +cmbx10.329 @sf +23 r (Fixed) s +17 r (Edges) s +cmr10.329 @sf +15 r 124 c +16 r (prev) s +-1 r (en) s +-1 r (ts) s +14 r (the) s +15 r (windo) s +0 r 119 c +14 r (from) s +15 r 98 c +2 r (eing) s +15 r (mo) s +0 r 118 c +-2 r (ed) s +14 r (or) s +16 r (resized) s +15 r (automatically) s +-3 r 46 c +cmsy10.329 @sf +68 864 p 15 c +cmbx10.329 @sf +23 r (Listener) s +16 r (Tied) s +15 r 84 c +-3 r 111 c +15 r (Zo) s +1 r (om) s +cmr10.329 @sf +14 r 124 c +13 r (Zo) s +2 r (oms) s +13 r (\(unzo) s +2 r (oms\)) s +13 r (the) s +14 r (windo) s +0 r 119 c +12 r (when) s +14 r (it) s +14 r 98 c +1 r (ecomes) s +13 r (\(no) s +14 r (longer) s +14 r (is\)) s +114 921 p (the) s +15 r (listener.) s +71 1015 p (These) s +15 r (options) s +15 r (can) s +15 r 98 c +1 r 101 c +15 r (set) s +15 r (on) s +15 r 97 c +15 r 112 c +1 r (er-windo) s +0 r (w-class) s +14 r (basis) s +15 r 98 c +0 r 121 c +14 r (setting) s +15 r (the) s +15 r (corresp) s +1 r (onding) s +15 r (options) s +15 r (in) s +0 1071 p (the) s +15 r (preferences) s +15 r (\014le.) s +21 r (See) s +15 r (the) s +15 r (Customization) s +15 r (section) s +15 r (of) s +15 r (the) s +15 r (Man) s +0 r (ual.) s +cmbx10.432 @sf +0 1213 p 54 c +69 r (Sa) s +-1 r 118 c +-2 r 101 c +22 r (the) s +23 r (La) s +-1 r 121 c +-2 r (out) s +cmr10.329 @sf +0 1314 p (Once) s +16 r 121 c +0 r (ou) s +15 r (ha) s +0 r 118 c +-2 r 101 c +15 r (the) s +16 r (windo) s +0 r (ws) s +15 r (where) s +16 r 121 c +0 r (ou) s +15 r 119 c +0 r (an) s +-1 r 116 c +15 r (them,) s +16 r (ha) s +0 r 118 c +-2 r 101 c +15 r (set) s +16 r (the) s +17 r (minim) s +-1 r (um) s +15 r (size) s +16 r (of) s +16 r 121 c +0 r (our) s +15 r (windo) s +0 r (ws,) s +0 1371 p (and) s +15 r (ha) s +0 r 118 c +-1 r 101 c +14 r (determined) s +15 r (their) s +15 r 112 c +1 r (er-windo) s +0 r 119 c +14 r (options,) s +15 r 121 c +0 r (ou) s +14 r (are) s +15 r (ready) s +16 r (to) s +15 r (sa) s +-1 r 118 c +-1 r 101 c +14 r (the) s +16 r (la) s +-1 r 121 c +-1 r (out.) s +71 1427 p (Select) s +13 r 96 c +cmbx10.329 @sf +0 r (Sa) s +-1 r 118 c +-1 r 101 c +14 r (La) s +0 r 121 c +-2 r (out) s +cmr10.329 @sf +0 r 39 c +12 r (from) s +13 r (the) s +14 r (manager) s +13 r (men) s +-1 r (u.) s +19 r 65 c +13 r (question) s +13 r (mark) s +14 r (cursor) s +13 r (asks) s +13 r (for) s +13 r (con\014rmation.) s +0 1484 p (Clic) s +0 r 107 c +14 r (with) s +16 r (the) s +15 r (left) s +15 r (button) s +16 r (to) s +15 r (con\014rm,) s +16 r (with) s +15 r (the) s +15 r (righ) s +0 r 116 c +15 r (button) s +15 r (to) s +15 r (cancel.) s +21 r (\(F) s +-2 r (or) s +14 r 97 c +15 r (one-button) s +16 r (mouse,) s +0 1540 p (hold) s +15 r (CTRL) s +15 r (and) s +15 r (SHIFT) s +16 r (and) s +15 r (clic) s +-1 r 107 c +15 r (to) s +15 r (cancel\).) s +71 1597 p (Selecting) s +13 r 96 c +cmbx10.329 @sf +0 r (Sa) s +-1 r 118 c +-1 r 101 c +14 r (La) s +-1 r 121 c +-1 r (out) s +cmr10.329 @sf +0 r 39 c +12 r (sa) s +0 r 118 c +-1 r (es) s +12 r (information) s +13 r (ab) s +1 r (out) s +13 r (all) s +13 r (op) s +1 r (en) s +14 r (and) s +13 r (closed) s +13 r (windo) s +0 r (ws) s +12 r (and) s +13 r (their) s +13 r (icons) s +0 1653 p (in) s +cmbx10.329 @sf +15 r (.rtl.la) s +0 r 121 c +-2 r (out) s +cmr10.329 @sf +14 r (\014le) s +16 r (in) s +15 r 121 c +-1 r (our) s +15 r (home) s +15 r (directory) s +-3 r 46 c +cmbx10.432 @sf +0 1795 p 55 c +69 r (Build) s +23 r 97 c +23 r (Startup) s +22 r (File) s +cmr10.329 @sf +0 1896 p (No) s +0 r 119 c +15 r (that) s +15 r 121 c +0 r (ou) s +15 r (kno) s +0 r 119 c +14 r (whic) s +0 r 104 c +15 r (applications) s +16 r 121 c +-1 r (ou) s +15 r 116 c +0 r (ypically) s +15 r (lik) s +-1 r 101 c +15 r (running,) s +16 r 121 c +0 r (ou) s +15 r (can) s +15 r (build) s +16 r 97 c +16 r (shell) s +16 r (\014le) s +16 r (that) s +0 1952 p (starts) s +15 r (them) s +15 r (up.) s +71 2009 p (If) s +15 r 121 c +0 r (ou) s +15 r (name) s +15 r (the) s +16 r (shell) s +15 r (\014le) s +cmbx10.329 @sf +16 r (.rtl.startup) s +cmr10.329 @sf +0 r 44 c +16 r (and) s +15 r (put) s +16 r (in) s +16 r 121 c +-1 r (our) s +15 r (home) s +16 r (directory) s +-3 r 44 c +15 r (it) s +15 r (will) s +16 r (automatically) s +0 2065 p (get) s +15 r (executed,) s +15 r (if) s +15 r 121 c +0 r (ou) s +14 r (in) s +0 r 118 c +-1 r (ok) s +-1 r 101 c +cmbx10.329 @sf +14 r (rtl) s +cmr10.329 @sf +15 r (with) s +15 r (the) s +15 r (`-s') s +15 r (\015ag) s +cmbx10.432 @sf +0 2207 p 56 c +69 r (Restarting) s +cmr10.329 @sf +0 2308 p (When) s +17 r 121 c +-1 r (ou) s +16 r (subsequen) s +0 r (tly) s +16 r (start) s +cmbx10.329 @sf +16 r (rtl) s +cmr10.329 @sf +0 r 44 c +17 r (the) s +cmbx10.329 @sf +17 r (.rtl.la) s +0 r 121 c +-2 r (out) s +cmr10.329 @sf +16 r (\014le) s +17 r (will) s +16 r 98 c +2 r 101 c +16 r (read) s +17 r (in) s +17 r (and) s +17 r (will) s +16 r 98 c +1 r 101 c +17 r (used) s +17 r (to) s +17 r (matc) s +-1 r 104 c +0 2365 p (up) s +15 r (applications) s +15 r (that) s +15 r (ha) s +0 r 118 c +-1 r 101 c +14 r (already) s +15 r (started) s +15 r (or) s +16 r (whic) s +-1 r 104 c +14 r 121 c +0 r (ou) s +14 r (will) s +15 r (start) s +16 r (up) s +15 r (in) s +15 r (the) s +15 r (future.) s +71 2421 p (Un) s +-1 r (til) s +18 r (ev) s +0 r (ery) s +18 r (sa) s +0 r 118 c +-1 r (ed) s +18 r (windo) s +-1 r 119 c +18 r (in) s +cmbx10.329 @sf +19 r (.rtl.la) s +0 r 121 c +-2 r (out) s +cmr10.329 @sf +18 r (is) s +19 r (matc) s +0 r (hed) s +18 r 98 c +0 r 121 c +18 r (an) s +19 r (op) s +1 r (ened) s +19 r (windo) s +0 r 119 c +18 r (or) s +19 r (icon,) s +20 r (certain) s +0 2478 p (automatic) s +17 r (strategies) s +16 r (used) s +17 r 98 c +-1 r 121 c +16 r (the) s +17 r (windo) s +-1 r 119 c +16 r (manager) s +17 r (to) s +16 r (balance) s +17 r (screen) s +16 r (space) s +17 r (are) s +16 r (disabled) s +17 r (in) s +17 r (order) s +0 2534 p (to) s +15 r (allo) s +0 r 119 c +14 r (the) s +15 r (sa) s +0 r 118 c +-1 r (ed) s +14 r (la) s +0 r 121 c +-2 r (out) s +14 r (to) s +16 r 98 c +1 r 101 c +15 r (precisely) s +15 r (restored.) s +71 2591 p (In) s +19 r (the) s +19 r (mean) s +0 r (time,) s +20 r 96 c +cmbx10.329 @sf +0 r (Finish) s +22 r (La) s +-1 r 121 c +-1 r (out) s +cmr10.329 @sf +0 r 39 c +18 r (app) s +2 r (ears) s +19 r (in) s +19 r (the) s +20 r (windo) s +0 r 119 c +18 r (manager) s +19 r (men) s +0 r (u.) s +32 r (If) s +19 r (an) s +20 r (exp) s +1 r (ected) s +0 2647 p (windo) s +0 r 119 c +16 r (do) s +1 r (es) s +17 r (not) s +17 r (op) s +2 r (en) s +17 r (for) s +17 r (some) s +17 r (reason) s +17 r (\(host) s +17 r (do) s +0 r (wn,) s +16 r (program) s +18 r 98 c +1 r (om) s +0 r (bs,) s +16 r (etc.\),) s +18 r (the) s +17 r (user) s +17 r (can) s +17 r (tell) s +17 r (the) s +0 2704 p (windo) s +0 r 119 c +14 r (manager) s +15 r (to) s +cmti10.329 @sf +15 r (tr) s +-1 r 101 c +-2 r (at) s +cmr10.329 @sf +14 r (the) s +15 r (la) s +0 r 121 c +-2 r (out) s +14 r (as) s +16 r (\014nished) s +15 r 98 c +0 r 121 c +14 r (selecting) s +15 r 96 c +cmbx10.329 @sf +0 r (Finish) s +17 r (La) s +0 r 121 c +-2 r (out) s +cmr10.329 @sf +0 r ('.) s +949 2828 p 51 c +@eop +2 @bop0 +cmr10.329 @sf +[ 32 31 -2 0 30.934] 80 @dc +[ 329 ] /cmmi10.329 @newfont +cmmi10.329 @sf +[<00000000000001C00000078000001E00000078000001E00000078000000E0000003C000000F0000003C000000F0000003C00 + 0000F0000000F00000003C0000000F00000003C0000000F00000003C0000000E0000000780000001E0000000780000001E00 + 00000780000001C0> 32 27 -4 3 35.353] 60 @dc +cmr10.329 @sf +[<03F0000E1C001C0E00380700380700700380700380700380F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003 + C0F003C0F003C0F003C0F003C07003807003807003803807003807001C0E000E1C0003F000> 24 29 -2 0 22.727] 48 @dc +cmmi10.329 @sf +[<00000000E0000000780000001E0000000780000001E0000000780000001C0000000F00000003C0000000F00000003C000000 + 0F00000003C0000003C000000F0000003C000000F0000003C000000F0000001C00000078000001E00000078000001E000000 + 78000000E0000000> 32 27 -4 3 35.353] 62 @dc +cmr10.329 @sf +[<007FFE00000007C000000003C000000003C000000003C000000003C000000003C000000003C000000003C000000003C00000 + 0003C000000003C000000003C000000007C000000007A00000000FB00000001F100000001E080000003E080000003C040000 + 007C04000000F802000000F003000001F001000001E000800003E000800007C000400007800040000F800060001F8000F800 + FFF003FF00> 40 31 -1 0 34.090] 89 @dc +cmbx10.329 @sf +[ 24 31 -2 0 19.823] 73 @dc +[ 32 31 -2 0 35.731] 80 @dc +[<000000F000000003FC00000003FC00000007FE00000007FE0000000FFF0000000FFF0000000F870000000F0300001FFE0300 + 00FFFF000001FC1F800007F83FE0000FDC3BF0001F8FF1F8003F87C1FC003F0000FC007F0000FE007E00007E007E00007E00 + FE00007F00FE00007F00FE00007F00FE00007F00FE00007F00FE00007F00FE00007F00FE00007F00FE00007F007E00007E00 + 7F0000FE007F0000FE003F0000FC001F8001F8001F8001F8000FC003F00007E007E00001F81F800000FFFF0000001FF80000> 40 40 -3 9 39.266] 81 @dc +[ 40 31 -2 0 39.203] 82 @dc +[<3FFC003FFC0007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C0 + 0007C000FFFC00FFFC0007C00007C00007C00007C00007C00007C3C007C7E003C7E003E7E001F3E000FFC0001F80> 24 32 -1 0 15.972] 102 @dc +[ 48 31 -2 0 49.620] 77 @dc +cmbx10.432 @sf +[<00FF800007FFF0001FFFFC003F01FF007C00FF80FE007F80FF007FC0FF003FC0FF003FE0FF003FE07E003FE03C003FE00000 + 3FE000003FE000003FE000003FC000007FC000007F800000FF000001FC0000FFF00000FFC0000007F0000003F8000001FE00 + 0000FF000000FF000000FF801F007F803F807F803F807F803FC07F803F807F803F80FF001F00FF001F81FE0007FFFC0003FF + F000007F8000> 32 39 -3 0 34.370] 51 @dc +[<00003FF800000003FFFF0000000FFFFFC000003FF007F00000FF8000F80001FE00003C0007FC00001E0007F800000F000FF0 + 000007001FE0000007803FE0000003803FC0000003807FC0000003807FC0000003807FC000000000FF8000000000FF800000 + 0000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000 + FF80000000007FC0000003807FC0000003807FC0000003803FC0000007803FE0000007801FE000000F800FF000000F8007F8 + 00001F8007FC00003F8001FE00007F8000FF8001FF80003FF007FF80000FFFFF8F800003FFFE078000003FF00180> 48 41 -4 0 49.646] 67 @dc +[ 64 41 -3 0 65.253] 77 @dc +[ 56 27 -3 0 57.283] 109 @dc +[ 40 27 -1 0 36.280] 120 @dc +[ 32 27 -2 0 30.551] 122 @dc +cmbx10.329 @sf +[ 24 20 -1 0 23.232] 122 @dc +[ 329 ] /cmcsc10.329 @newfont +cmcsc10.329 @sf +[<000600018000000600018000000600018000000F0003C000000F0003C000000F0003C000001E8007A000001E8007A000001E + 8007A000003C400F1000003C400F1000003C400F10000078201E08000078201E08000078201E080000F0103C040000F0103C + 040000F0103C040001E00878020001E00878020003E00878030003C004F0010003C004F0010007C004F00180078003E00080 + 078003E000800F8003E000C00F0003C000400F0003C000E01F8007E001F0FFF03FFC07FC> 48 31 -2 0 50.251] 87 @dc +[ 40 31 -3 0 44.948] 77 @dc +[ 32 31 -3 0 36.994] 78 @dc +[<001FE0000070380001C00E00078007800F0003C00F0003C01E0001E03C0000F03C0000F07C0000F87C0000F8F800007CF800 + 007CF800007CF800007CF800007CF800007CF800007CF800007C78000078780000787C0000F83C0000F03C0000F01E0001E0 + 0E0001C00F0003C00380070001C00E0000703800001FE000> 32 31 -4 0 38.383] 79 @dc +[ 40 31 -3 0 36.362] 82 @dc +[ 32 31 -3 0 36.994] 65 @dc +[ 32 31 -3 0 31.060] 76 @dc +[ 32 31 -3 0 36.994] 72 @dc +[ 16 31 -2 0 18.434] 73 @dc +[<03FFFF00000FC000000780000007800000078000000780000007800000078000000780000007800000078000000780000007 + 8000000780000007800000078000000780000007800000078000000780000007800080078004800780048007800480078004 + C007800C400780084007800860078018780780787FFFFFF8> 32 31 -3 0 35.731] 84 @dc +[<81FC00CE0300F00180E000C0C000E0C000608000708000708000700000700000F00000F00003E0000FE001FFC007FF801FFF + 003FFC007F80007C0000F00000F00000E00020E00020E000206000606000603000E01801E00C0E6003F020> 24 31 -4 0 27.777] 83 @dc +cmbx10.329 @sf +[ 16 4 -1 -8 17.424] 45 @dc +[<3FF9FFC03FF9FFC007C03E0007C03E0007C03E0007C03E0007C03E0007C03E0007C03E0007C03E0007C03E0007C03E0007C0 + 3E0007C03E0007C03E0007C03E0007C03E0007C03E00FFFFFE00FFFFFE0007C1FE0007C0000007C0000007C0000007C03800 + 07C07C0007C07C0003E07C0001E07C0000F81C00007FF800000FE000> 32 32 0 0 29.040] 12 @dc +cmr10.329 @sf +[<7FE3FF0007007000070070000700700007007000070070000700700007007000070070000700700007007000070070000700 + 7000070070000700700007007000070070000700700007007000FFFFFF800700700007007000070070000700700007007000 + 07007000070070000300F0300380F87801C0787800F06E30001F83E0> 32 32 0 0 26.515] 11 @dc +cmbx10.432 @sf +[<007FFFF8007FFFF8007FFFF80000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00FFFFFFF8FFFF + FFF8FFFFFFF8E0007E0070007E0038007E001C007E000E007E000E007E0007007E0003807E0001C07E0000E07E0000E07E00 + 00707E0000387E00001C7E00000E7E00000E7E0000077E000003FE000001FE000000FE000000FE0000007E0000003E000000 + 1E0000000E00> 32 39 -2 0 34.370] 52 @dc +[<00001FF800000001FFFF00000007FFFFC000001FF007E000003FC000F800007F8000780000FF00003C0000FE00001E0001FE + 00000E0001FC00000E0003FC00000F0003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000 + 070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC00000700 + 03FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC + 0000070003FC0000070003FC0000070003FC0000070003FC00000700FFFFF001FFFCFFFFF001FFFCFFFFF001FFFC> 48 41 -3 0 52.883] 85 @dc +cmbx10.329 @sf +[ 40 31 -2 0 40.908] 78 @dc +cmr10.329 @sf +[ 24 29 -2 0 22.727] 50 @dc +2 @bop1 +cmsy10.329 @sf +68 195 p 15 c +cmr10.329 @sf +23 r (If) s +12 r (the) s +13 r (clien) s +0 r 116 c +11 r (pro) s +0 r (vided) s +11 r 98 c +1 r (oth) s +13 r 97 c +12 r (size) s +13 r (and) s +12 r 112 c +1 r (osition) s +13 r (hin) s +0 r (t,) s +12 r (the) s +12 r (windo) s +0 r 119 c +11 r (will) s +13 r 98 c +1 r 101 c +12 r (placed) s +13 r (automatically) s +-3 r 44 c +114 252 p (though) s +15 r 98 c +1 r (ecause) s +15 r (of) s +15 r (tiling,) s +16 r (not) s +15 r (necessarily) s +15 r (at) s +15 r (exactly) s +15 r (the) s +15 r (size) s +15 r (or) s +16 r 112 c +1 r (osition) s +15 r (requested.) s +cmsy10.329 @sf +68 345 p 15 c +cmr10.329 @sf +23 r (Otherwise,) s +17 r 121 c +0 r (ou) s +16 r (will) s +17 r (ask) s +-1 r (ed) s +16 r (to) s +17 r (determine) s +17 r 98 c +1 r (oth) s +17 r (its) s +17 r (size) s +17 r (and) s +17 r 112 c +1 r (osition.) s +25 r (The) s +17 r (cursor) s +17 r (will) s +17 r 99 c +0 r (hange) s +114 402 p (to) s +16 r 97 c +17 r (dotted) s +17 r 98 c +1 r 111 c +0 r (x.) s +24 r (Pressing) s +16 r (or) s +17 r (clic) s +0 r (king) s +15 r (the) s +17 r (left) s +17 r (mouse) s +17 r (button) s +16 r (designates) s +17 r (the) s +17 r (top-left) s +16 r (corner.) s +114 458 p (Releasing) s +11 r (or) s +12 r (re-clic) s +0 r (king) s +11 r (designates) s +12 r (the) s +11 r 98 c +2 r (ottom-righ) s +-1 r 116 c +11 r (corner.) s +19 r (Pressing) s +12 r (the) s +12 r (righ) s +0 r 116 c +11 r (mouse) s +11 r (button) s +114 515 p (iconizes) s +13 r (the) s +14 r (windo) s +0 r 119 c +13 r (instead.) s +20 r (\(F) s +-3 r (or) s +13 r 97 c +13 r (one-button) s +14 r (mouse,) s +14 r (hold) s +14 r (CTRL) s +14 r (and) s +14 r (SHIFT) s +13 r (and) s +14 r (clic) s +0 r 107 c +13 r (to) s +114 571 p (iconize\).) s +71 677 p (Some) s +13 r (clien) s +-1 r (ts) s +12 r (set) s +13 r 98 c +1 r (ogus) s +13 r (initial) s +13 r (windo) s +0 r 119 c +12 r 112 c +1 r (ositions) s +13 r (\(usually) s +cmmi10.329 @sf +13 r 60 c +cmr10.329 @sf +0 r (0,0) s +cmmi10.329 @sf +0 r 62 c +cmr10.329 @sf +0 r (\),) s +14 r (and) s +13 r (are) s +12 r (automatically) s +13 r (placed) s +0 734 p 98 c +0 r 121 c +cmbx10.329 @sf +13 r (rtl) s +cmr10.329 @sf +13 r (ev) s +0 r (en) s +13 r (when) s +14 r (that) s +14 r (is) s +14 r (not) s +14 r (appropriate.) s +19 r 89 c +-2 r (ou) s +12 r (can) s +14 r (tell) s +cmbx10.329 @sf +14 r (rtl) s +cmr10.329 @sf +14 r (to) s +14 r (ignore) s +14 r (the) s +14 r (initial) s +14 r 112 c +1 r (osition) s +14 r (set) s +14 r 98 c +-1 r 121 c +13 r (the) s +0 790 p (clien) s +0 r 116 c +14 r 98 c +0 r 121 c +14 r (setting) s +15 r (the) s +15 r (option) s +cmbx10.329 @sf +15 r (ignoreInitialP) s +0 r (ositionHin) s +-2 r (ts) s +cmr10.329 @sf +14 r (for) s +16 r (those) s +15 r (clien) s +0 r (ts.) s +71 847 p (If) s +16 r 121 c +0 r (ou) s +16 r (do) s +17 r (not) s +17 r (lik) s +0 r 101 c +16 r (the) s +17 r (la) s +-1 r 121 c +-1 r (out,) s +16 r 121 c +0 r (ou) s +16 r (can) s +17 r 99 c +0 r (hange) s +16 r (it) s +17 r 98 c +-1 r 121 c +16 r (resizing) s +17 r (or) s +17 r (mo) s +0 r (ving) s +16 r (windo) s +0 r (ws) s +15 r (around.) s +26 r (See) s +0 903 p (the) s +cmbx10.329 @sf +16 r (Quic) s +0 r 107 c +17 r (Reference) s +19 r 80 c +-1 r (age) s +cmr10.329 @sf +15 r (whic) s +0 r 104 c +15 r (explains) s +16 r (ho) s +0 r 119 c +15 r (to) s +16 r (use) s +16 r (the) s +16 r (mouse) s +16 r (buttons,) s +16 r (or) s +17 r (see) s +16 r (the) s +cmbx10.329 @sf +16 r (Man) s +-1 r (ual) s +cmr10.329 @sf +0 960 p (for) s +15 r (more) s +15 r (details.) s +cmbx10.432 @sf +0 1103 p 51 c +69 r (Clien) s +-1 r 116 c +22 r (Minim) s +-1 r (um) s +22 r (and) s +23 r (Maxim) s +-1 r (um) s +22 r (Size) s +cmr10.329 @sf +0 1204 p (Man) s +0 r 121 c +14 r (clien) s +0 r (ts) s +14 r (set) s +15 r 97 c +15 r (reasonable) s +cmbx10.329 @sf +15 r (clien) s +0 r 116 c +16 r (minim) s +0 r (um) s +16 r (size) s +cmr10.329 @sf +15 r (via) s +15 r (the) s +cmcsc10.329 @sf +0 1261 p (WM) s +3 r 15 2 ru +15 r (NORMAL) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +17 r (prop) s +2 r (ert) s +-1 r 121 c +-3 r 46 c +25 r (Some) s +17 r (do) s +18 r (not.) s +26 r 89 c +-2 r (ou) s +16 r (can) s +17 r (tell) s +17 r 98 c +0 r 121 c +16 r (trying) s +18 r (to) s +17 r (resize) s +17 r (the) s +17 r (windo) s +0 r (w.) s +0 1317 p (By) s +19 r (default,) s +19 r (the) s +18 r (windo) s +0 r 119 c +18 r (manager) s +18 r (will) s +19 r (not) s +18 r (allo) s +0 r 119 c +18 r (the) s +18 r (windo) s +0 r 119 c +17 r (to) s +19 r 98 c +1 r 101 c +19 r (made) s +18 r (smaller) s +19 r (than) s +18 r (its) s +19 r (clien) s +0 r 116 c +0 1374 p (minim) s +0 r (um) s +14 r (size.) s +71 1430 p (If) s +21 r (the) s +21 r (size) s +22 r (set) s +21 r 98 c +0 r 121 c +20 r (the) s +22 r (clien) s +0 r 116 c +20 r (seems) s +22 r (to) s +1 r 111 c +21 r (small,) s +23 r 121 c +0 r (ou) s +20 r (can) s +22 r 111 c +0 r 118 c +-2 r (erride) s +21 r (it) s +21 r 98 c +0 r 121 c +20 r (setting) s +22 r 96 c +cmbx10.329 @sf +0 r (clien) s +-1 r (tMini-) s +0 1487 p 109 c +0 r (umWidth) s +cmr10.329 @sf +0 r 39 c +15 r (and) s +16 r 96 c +cmbx10.329 @sf +0 r (clien) s +0 r (tMinim) s +-2 r (umHeigh) s +-1 r 116 c +cmr10.329 @sf +0 r 39 c +15 r (in) s +17 r 121 c +-1 r (our) s +16 r (preferences) s +16 r (\014le.) s +24 r (If) s +16 r 121 c +0 r (ou) s +15 r (reread) s +17 r 121 c +-1 r (our) s +16 r (prefer-) s +0 1543 p (ences) s +12 r (\014le) s +11 r (\(via) s +12 r (the) s +11 r 96 c +cmbx10.329 @sf +0 r (Read) s +13 r (Pro\014le) s +cmr10.329 @sf +0 r 39 c +12 r (en) s +0 r (try) s +10 r (in) s +12 r (the) s +11 r (manager) s +12 r (men) s +0 r (u\),) s +11 r (these) s +11 r (will) s +12 r (a\013ect) s +12 r (future) s +11 r (applications) s +0 1600 p (of) s +15 r (the) s +15 r (same) s +15 r (class.) s +71 1656 p 89 c +-3 r (ou) s +14 r (can) s +15 r (also) s +15 r (set) s +15 r 96 c +cmbx10.329 @sf +0 r (clien) s +0 r (tMaxim) s +-2 r (umWidth) s +cmr10.329 @sf +0 r 39 c +15 r (and) s +0 1712 p 96 c +cmbx10.329 @sf +(clien) s +0 r (tMaxim) s +-2 r (umHeigh) s +-1 r 116 c +cmr10.329 @sf +0 r 39 c +14 r (to) s +15 r 111 c +0 r 118 c +-2 r (erride) s +15 r (the) s +15 r (clien) s +-1 r (t's) s +15 r (maxim) s +-1 r (um) s +15 r (size) s +15 r (hin) s +-1 r (t.) s +cmbx10.432 @sf +0 1856 p 52 c +69 r (User) s +23 r (Minim) s +-1 r (um) s +22 r (Size) s +cmr10.329 @sf +0 1957 p (When) s +15 r 97 c +14 r (windo) s +0 r 119 c +14 r (is) s +14 r (enlarged) s +15 r (or) s +15 r (op) s +1 r (ened,) s +15 r (an) s +14 r (adjacen) s +0 r 116 c +14 r (windo) s +0 r 119 c +13 r (ma) s +0 r 121 c +14 r 98 c +1 r 101 c +15 r (shrunk) s +14 r (automatically) s +15 r 98 c +0 r 121 c +cmbx10.329 @sf +13 r (rtl) s +cmr10.329 @sf +0 r 46 c +0 2014 p 65 c +17 r (windo) s +0 r 119 c +15 r (is) s +17 r (nev) s +0 r (er) s +16 r (shrunk) s +16 r (an) s +0 r 121 c +16 r (smaller) s +17 r (than) s +17 r (its) s +cmbx10.329 @sf +16 r (user) s +20 r (minim) s +-1 r (um) s +18 r (size) s +cmr10.329 @sf +0 r 46 c +26 r (The) s +16 r (wm) s +17 r (will) s +17 r (not) s +17 r (let) s +17 r 121 c +-1 r (ou) s +0 2070 p (mak) s +0 r 101 c +14 r (the) s +cmbx10.329 @sf +15 r (user) s +17 r (minim) s +0 r (um) s +16 r (size) s +cmr10.329 @sf +16 r (smaller) s +15 r (than) s +15 r (the) s +cmbx10.329 @sf +15 r (clien) s +0 r 116 c +16 r (minim) s +0 r (um) s +16 r (size) s +cmr10.329 @sf +0 r 46 c +71 2127 p 89 c +-3 r (ou) s +16 r (ma) s +0 r 121 c +17 r (set) s +17 r 97 c +18 r (windo) s +-1 r (w's) s +17 r (user) s +17 r (minim) s +0 r (um) s +17 r (size) s +17 r 98 c +0 r 121 c +17 r (selecting) s +17 r 96 c +cmbx10.329 @sf +0 r (Set) s +20 r (Size) s +cmr10.329 @sf +0 r 39 c +18 r (from) s +17 r 97 c +18 r (windo) s +0 r (w's) s +16 r (men) s +0 r (u,) s +0 2183 p (and) s +17 r (then) s +17 r (selecting) s +18 r 96 c +cmbx10.329 @sf +0 r (Normal) s +19 r (Min) s +cmr10.329 @sf +0 r 39 c +18 r (from) s +17 r (the) s +17 r (submen) s +0 r (u.) s +25 r 89 c +-3 r (ou) s +17 r (can) s +17 r (then) s +17 r (press) s +17 r (or) s +18 r (clic) s +-1 r 107 c +17 r (on) s +17 r 97 c +17 r (side) s +17 r (or) s +0 2239 p (corner,) s +15 r (and) s +15 r (resize) s +15 r (to) s +16 r (indicate) s +15 r (the) s +15 r (minim) s +0 r (um) s +14 r (size.) s +71 2296 p 89 c +-3 r (ou) s +12 r (can) s +13 r (set) s +12 r (the) s +13 r (user) s +13 r (minim) s +0 r (um) s +12 r (size) s +13 r (on) s +13 r 97 c +13 r 112 c +1 r (er-windo) s +0 r (w-class) s +11 r (basis) s +13 r 98 c +0 r 121 c +12 r (setting) s +13 r 96 c +cmbx10.329 @sf +0 r (userNormalMin-) s +0 2352 p (Width) s +cmr10.329 @sf +39 c +14 r (and) s +13 r 96 c +cmbx10.329 @sf +0 r (userNormalMinHeigh) s +0 r 116 c +cmr10.329 @sf +0 r 39 c +12 r (in) s +14 r 121 c +0 r (our) s +12 r (preferences) s +14 r (\014les,) s +14 r (but) s +13 r (these) s +14 r (will) s +14 r (not) s +13 r 98 c +2 r 101 c +13 r (applied) s +14 r (to) s +0 2409 p (existing) s +15 r (windo) s +0 r (ws.) s +71 2465 p (If) s +15 r 121 c +-1 r (ou) s +15 r (plan) s +15 r (to) s +15 r (zo) s +1 r (om) s +15 r (the) s +15 r (windo) s +0 r (w,) s +14 r 121 c +0 r (ou) s +14 r (can) s +15 r (set) s +16 r (the) s +15 r (zo) s +1 r (om) s +15 r (minim) s +0 r (um) s +14 r (size) s +15 r (similarly) s +-3 r 46 c +949 2828 p 50 c +@eop +1 @bop0 +cmr10.329 @sf +[<000FE02000781C6001C002E0038003E0070001E00E0001E01E0001E03C0001E03C0001E07C0001E0780001E0780003E0F800 + 7FFCF8000000F8000000F8000000F8000000F8000000F800000078000000780000207C0000203C0000203C0000601E000060 + 0E0000E0070000E0038001E001C006E000781860000FE020> 32 31 -3 0 35.668] 71 @dc +cmbx10.432 @sf +[<7FFFFE7FFFFE7FFFFE00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE + 0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00F8FE00FF + FE00FFFE0007FE00007E00001E00000E00> 24 39 -5 0 34.370] 49 @dc +cmbx10.329 @sf +[<387CFEFEFE7C38000000000000387CFEFEFE7C38> 8 20 -4 0 14.520] 58 @dc +cmbx10.432 @sf +[ 32 39 -3 0 34.370] 50 @dc +[<007FFFFFE000007FFFFFE000007FFFFFE00000003FC0000000003FC0000000003FC0000000003FC0000000003FC000000000 + 3FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0 + 000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC00000 + E0003FC000E0E0003FC000E0E0003FC000E0E0003FC000E0E0003FC000E0F0003FC001E0F0003FC001E070003FC001C07800 + 3FC003C078003FC003C07E003FC007C07F803FC03FC07FFFFFFFFFC07FFFFFFFFFC07FFFFFFFFFC0> 48 40 -2 0 47.819] 84 @dc +[ 48 41 -2 0 51.970] 65 @dc +[<001FE00000FFFC0003F01F000FE007801FC003C03FC001C03F8001C07F8000007F000000FF000000FF000000FF000000FF00 + 0000FF000000FF000000FF000000FF000000FF0000007F0000007F801F003F803F803F803F801FC03F800FE03F8003F01F00 + 00FFFE00001FF800> 32 27 -2 0 30.551] 99 @dc +cmr10.329 @sf +[ 32 31 -1 0 34.090] 88 @dc +[ 300 ] /cmr8.300 @newfont +cmr8.300 @sf +[ 16 21 -2 0 17.642] 50 @dc +cmbx10.329 @sf +[<0007FC00003FFF8000FE01C003F0007007E000380FC000181F80000C3F00000C3F0000067F0000067E0000067E000000FE00 + 0000FE000000FE000000FE000000FE000000FE000000FE0000007E0000067E0000067F0000063F00000E3F00000E1F80001E + 0FC0001E07E0003E03F000FE00FE03DE003FFF0E0007FC02> 32 31 -3 0 37.751] 67 @dc +[ 300 ] /cmr6.300 @newfont +cmr6.300 @sf +[ 16 16 -1 0 15.220] 50 @dc +[ 300 ] /cmr9.300 @newfont +cmr9.300 @sf +[ 24 26 -2 0 26.128] 69 @dc +[<1E3C0071FB00E0F100E07100E07100E070007070003070001C700007F00000700000700020700070E00070C0003F8000> 24 16 -2 0 19.198] 97 @dc +[<07E00C18380830047000E000E000E000E000E000E00070003008381C0C1C07F8> 16 16 -1 0 17.065] 99 @dc +[ 24 26 -1 0 21.331] 104 @dc +[ 32 26 -1 0 28.792] 88 @dc +[ 16 24 -3 0 19.198] 49 @dc +[<010040000180C0000380E0000380E00003C1E0000741D000074190000F2398000E2388000E2308001E170C001C1704001C16 + 0400380E06003C0E0700FF3F9F80> 32 16 -1 0 27.731] 119 @dc +[ 16 26 0 0 10.666] 105 @dc +[ 24 16 -1 0 21.331] 110 @dc +[<07CFC01C2E00381E00700E00600E00E00E00E00E00E00E00E00E00E00E00E00E00700E00300E00380E000C3E0003CE00000E + 00000E00000E00000E00000E00000E00000E00000E00000E00007E00> 24 26 -1 0 21.331] 100 @dc +[<07E0001C3800381C00700E00600600E00700E00700E00700E00700E00700E00700600600700E00300C001C380007E000> 24 16 -1 0 19.198] 111 @dc +[<00800001C00001C00001C00003A00003A0000790000710000710000E08000E08001E0C001C04001C04003C0600FF1F80> 24 16 -1 0 20.265] 118 @dc +[<07E00C18380830046000E000E000E000E000FFFCE00C600C701830181C3007C0> 16 16 -1 0 17.079] 101 @dc +[ 16 16 -1 0 15.018] 114 @dc +[<07CFC00C2E001C1E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E00FC7E00> 24 16 -1 0 21.331] 117 @dc +[<8F80F040C020C0308030807000F01FE03FC07F00F000C020C020402060E01F20> 16 16 -1 0 15.145] 115 @dc +[<3078F8B080808040402018> 8 11 -2 -15 10.666] 96 @dc +[ 24 23 -1 7 21.331] 112 @dc +[<03800E401C201C201C201C201C201C001C001C001C001C001C001C001C00FFC03C001C000C000C00040004000400> 16 23 -1 0 14.932] 116 @dc +[ 8 11 -3 -15 10.666] 39 @dc +[<60F0F060> 8 4 -3 0 10.666] 46 @dc +[<87E000D81800E00400C00600C00200800300800300800300000300000700000E00003E0007FC001FF8003FE0007E00007000 + 00E00000C00200C00200C00200C00600600600200E001836000FC200> 24 26 -2 0 21.331] 83 @dc +[ 32 16 -1 0 31.997] 109 @dc +[<7FE00E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFC00E000E000E000E000E000E000E1007380318 + 01F0> 16 26 0 0 11.732] 102 @dc +[<10F0001B0C001E07001C03001C03801C01C01C01C01C01C01C01C01C01C01C01C01C01801C03801E07001F0E001CF8001C00 + 001C00001C00001C00001C00001C00001C00001C00001C0000FC0000> 24 26 -1 0 21.331] 98 @dc +[<780000E40000E20000E1000001000001000000800000800001C00001C00001C00003A00003A0000790000710000710000E08 + 000E08001E0C001C04001C04003C0600FF1F80> 24 23 -1 7 20.265] 121 @dc +[ 16 26 0 0 10.666] 108 @dc +[<07E000381C00600600C00300C00300C00300C00300600F001FFE003FFC003FF0007000006000002000002FC0001860003030 + 007038007038007038007038003030001873000FCE00> 24 24 -1 8 19.198] 103 @dc +[<1F002180604070607030003800180018001C0F9C185C303C603C601CE01CE01CE01CE018E01860187030303018600780> 16 24 -2 0 19.198] 57 @dc +cmr10.329 @sf +[ 16 29 -4 0 22.727] 49 @dc +1 @bop1 +cmr10.329 @sf +71 195 p (Except) s +18 r (for) s +18 r (men) s +0 r (us) s +17 r (and) s +18 r (transien) s +0 r 116 c +17 r 112 c +1 r (op-up) s +18 r (windo) s +0 r (ws,) s +18 r (the) s +cmbx10.329 @sf +18 r (rtl) s +cmr10.329 @sf +18 r (windo) s +0 r 119 c +17 r (manager) s +18 r (do) s +1 r (es) s +19 r (not) s +18 r 112 c +1 r (ermit) s +0 252 p (windo) s +0 r (ws) s +14 r (to) s +16 r 111 c +-1 r 118 c +-1 r (erlap.) s +20 r (Because) s +15 r (of) s +16 r (this,) s +cmbx10.329 @sf +15 r (rtl) s +cmr10.329 @sf +16 r (has) s +15 r (features) s +16 r (and) s +15 r (constrain) s +0 r (ts) s +14 r (not) s +16 r (found) s +15 r (in) s +16 r (other) s +15 r (windo) s +0 r 119 c +0 308 p (managers.) s +22 r (Getting) s +16 r 121 c +0 r (our) s +15 r (en) s +0 r (vironmen) s +-2 r 116 c +15 r (set) s +16 r (up) s +16 r (so) s +16 r (that) s +16 r 121 c +0 r (ou) s +15 r (can) s +16 r (use) s +cmbx10.329 @sf +15 r (rtl) s +cmr10.329 @sf +16 r (e\013ectiv) s +0 r (ely) s +15 r (tak) s +0 r (es) s +15 r (some) s +16 r (extra) s +0 364 p (time.) s +20 r (IT) s +15 r (IS) s +16 r 87 c +-1 r (OR) s +-4 r (TH) s +15 r (IT!) s +cmbx10.432 @sf +0 506 p 49 c +69 r (Preparation) s +cmr10.329 @sf +0 607 p (First,) s +15 r (mak) s +0 r 101 c +14 r (sure) s +15 r (that) s +15 r 121 c +0 r (ou) s +14 r (ha) s +0 r 118 c +-1 r 101 c +14 r (the) s +15 r (follo) s +0 r (wing) s +14 r 116 c +0 r 119 c +-2 r 111 c +15 r (\014les) s +15 r (in) s +15 r 121 c +0 r (our) s +14 r (home) s +15 r (directory:) s +cmsy10.329 @sf +68 698 p 15 c +cmbx10.329 @sf +23 r (.rtl.to) s +1 r (ols) s +cmr10.329 @sf +18 r 124 c +17 r (initializes) s +18 r 97 c +17 r (men) s +0 r 117 c +16 r (from) s +18 r (whic) s +0 r 104 c +16 r 121 c +0 r (ou) s +16 r (can) s +18 r (easily) s +17 r (start) s +18 r (up) s +17 r (new) s +17 r (applications) s +18 r (once) s +cmbx10.329 @sf +114 754 p (rtl) s +cmr10.329 @sf +15 r (is) s +15 r (running.) s +cmsy10.329 @sf +68 843 p 15 c +cmbx10.329 @sf +23 r (.rtl.preferences) s +cmr10.329 @sf +21 r 124 c +21 r (sp) s +1 r (eci\014es) s +21 r (global) s +21 r (and) s +21 r 112 c +1 r (er-windo) s +0 r (w-class) s +19 r (options) s +21 r (that) s +21 r (con) s +0 r (trol) s +20 r 98 c +1 r (oth) s +21 r (the) s +114 900 p (seman) s +-1 r (tics) s +15 r (and) s +15 r (the) s +15 r (app) s +1 r (earance) s +15 r (of) s +cmbx10.329 @sf +15 r (rtl) s +cmr10.329 @sf +0 r 46 c +71 990 p (Find) s +12 r (out) s +13 r (where) s +12 r (the) s +cmbx10.329 @sf +13 r (rtl) s +cmr10.329 @sf +12 r (distribution) s +13 r (is) s +12 r (lo) s +1 r (cated) s +13 r (on) s +12 r 121 c +0 r (our) s +12 r (\014lesystem.) s +19 r (In) s +12 r (the) s +cmbx10.329 @sf +13 r (custom) s +cmr10.329 @sf +12 r (sub) s +2 r (directory) s +-3 r 44 c +0 1047 p 121 c +0 r (ou) s +14 r (will) s +15 r (\014nd) s +15 r (example) s +cmbx10.329 @sf +15 r (.rtl.to) s +2 r (ols) s +cmr10.329 @sf +15 r (and) s +cmbx10.329 @sf +15 r (.rtl.preferences) s +cmr10.329 @sf +15 r (\014les) s +15 r (that) s +16 r 119 c +-1 r 101 c +14 r (use) s +16 r (at) s +15 r (our) s +15 r (lab.) s +cmbx10.329 @sf +182 1138 p (NOTE:) s +cmr10.329 @sf +15 r (If) s +15 r 121 c +-1 r (ou) s +14 r (don't) s +15 r (use) s +15 r 97 c +cmbx10.329 @sf +15 r (.rtl.preferences) s +cmr10.329 @sf +15 r (\014le,) s +15 r (defaults) s +15 r (are) s +15 r 99 c +0 r (hosen) s +13 r (that) s +15 r (pro) s +0 r (vide) s +114 1194 p 97 c +14 r (fairly) s +15 r (conserv) s +-1 r (ativ) s +-2 r 101 c +14 r (in) s +0 r (terface.) s +19 r (The) s +cmbx10.329 @sf +14 r (.rtl.preferences) s +cmr10.329 @sf +15 r (\014le) s +15 r (in) s +15 r (the) s +cmbx10.329 @sf +14 r (custom) s +cmr10.329 @sf +15 r (sub) s +1 r (directory) s +114 1250 p (allo) s +-1 r (ws) s +17 r (windo) s +0 r (ws) s +16 r (to) s +17 r 98 c +2 r 101 c +17 r (automatically) s +17 r (mo) s +0 r 118 c +-1 r (ed) s +16 r (and) s +18 r (resized) s +17 r 97 c +18 r (bit) s +17 r (more) s +17 r (easily) s +18 r (and) s +17 r (tailors) s +114 1307 p (the) s +18 r (in) s +0 r (terface) s +17 r (sp) s +1 r (eci\014cally) s +18 r (for) s +19 r (individual) s +18 r (applications.) s +29 r (The) s +18 r (last) s +19 r (section) s +18 r (of) s +18 r (the) s +18 r (man) s +0 r (ual) s +114 1363 p (describ) s +1 r (es) s +15 r (the) s +15 r (options) s +15 r (in) s +16 r (detail.) s +cmbx10.329 @sf +182 1454 p (NOTE:) s +cmr10.329 @sf +17 r (The) s +cmbx10.329 @sf +18 r (.rtl.preferences) s +cmr10.329 @sf +17 r (\014le) s +18 r (in) s +18 r (the) s +cmbx10.329 @sf +17 r (custom) s +cmr10.329 @sf +18 r (sub) s +1 r (directory) s +17 r (has) s +18 r 97 c +18 r 110 c +-1 r (um) s +-1 r 98 c +0 r (er) s +18 r (of) s +114 1510 p 96 c +cmbx10.329 @sf +0 r (iconPixmapFile) s +cmr10.329 @sf +0 r 39 c +20 r (en) s +0 r (tries.) s +35 r (These) s +21 r (designate) s +21 r 97 c +20 r (\014le) s +21 r (con) s +-1 r (taining) s +20 r 97 c +21 r (bitmap) s +20 r (to) s +21 r 98 c +1 r 101 c +21 r (used) s +114 1567 p (for) s +17 r (the) s +17 r (corresp) s +1 r (onding) s +17 r (application's) s +17 r (icon.) s +26 r (The) s +17 r (bitmap) s +16 r (\014les) s +17 r (are) s +17 r (stored) s +17 r (in) s +17 r (the) s +cmbx10.329 @sf +17 r (custom) s +cmr10.329 @sf +114 1623 p (sub) s +1 r (directory) s +-3 r 46 c +21 r (Mak) s +0 r 101 c +15 r (sure) s +15 r (that) s +16 r (the) s +16 r (path) s +16 r (to) s +15 r (the) s +cmbx10.329 @sf +16 r (custom) s +cmr10.329 @sf +16 r (sub) s +1 r (directory) s +16 r (is) s +15 r (correct) s +16 r (for) s +16 r (the) s +114 1680 p 96 c +cmbx10.329 @sf +0 r (iconPixmapFile) s +cmr10.329 @sf +0 r 39 c +15 r (en) s +0 r (tries.) s +71 1770 p (The) s +21 r (Customization) s +21 r (section) s +22 r (of) s +21 r (the) s +21 r (man) s +0 r (ual) s +20 r (has) s +22 r (information) s +21 r (ab) s +1 r (out) s +22 r (additional) s +21 r 119 c +0 r 97 c +-2 r (ys) s +21 r 121 c +0 r (ou) s +20 r (can) s +0 1827 p (customize) s +15 r 121 c +0 r (our) s +14 r (en) s +0 r (vironmen) s +-1 r (t.) s +cmbx10.432 @sf +0 1968 p 50 c +69 r (Starting) s +23 r (up) s +23 r 82 c +-5 r (TL) s +22 r (and) s +23 r 121 c +-1 r (our) s +22 r (Applications) s +cmr10.329 @sf +0 2069 p (Once) s +14 r 121 c +0 r (our) s +13 r 88 c +14 r (serv) s +0 r (er) s +13 r (is) s +14 r (running,) s +14 r 121 c +0 r (ou) s +13 r (can) s +14 r (start) s +14 r (up) s +cmbx10.329 @sf +14 r (rtl) s +cmr10.329 @sf +0 r 46 c +20 r (If) s +14 r 88 c +14 r (clien) s +0 r (ts) s +13 r (are) s +14 r (already) s +14 r (mapp) s +2 r (ed,) s +cmbx10.329 @sf +14 r (rtl) s +cmr10.329 @sf +14 r (will) s +14 r (tile) s +0 2126 p (them.) s +71 2182 p (No) s +-1 r (w,) s +14 r (start) s +16 r (up) s +15 r (the) s +15 r (remaining) s +15 r (applications) s +15 r 121 c +0 r (ou) s +14 r 116 c +0 r (ypically) s +14 r 119 c +0 r (an) s +-2 r 116 c +15 r (running.) s +71 2239 p (Some) s +17 r (applications) s +18 r (request) s +18 r (to) s +17 r 98 c +2 r 101 c +17 r (initially) s +18 r (iconized) s +18 r (via) s +17 r (their) s +cmcsc10.329 @sf +18 r (WM) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +18 r (prop) s +1 r (ert) s +0 r 121 c +-4 r 44 c +cmr8.300 @sf +1735 2222 p 50 c +cmr10.329 @sf +1773 2239 p (and) s +cmbx10.329 @sf +17 r (rtl) s +cmr10.329 @sf +0 2295 p (will) s +15 r (do) s +15 r (so.) s +21 r (Otherwise,) s +15 r (the) s +15 r (windo) s +0 r 119 c +14 r (is) s +15 r (initially) s +15 r (mapp) s +1 r (ed.) s +71 2352 p (By) s +14 r (default,) s +15 r (the) s +15 r (option) s +cmbx10.329 @sf +15 r (autoPlaceOnClien) s +-1 r (tOp) s +1 r (en) s +cmr10.329 @sf +15 r (is) s +14 r (on,) s +15 r (whic) s +0 r 104 c +14 r (means) s +15 r (that) s +cmbx10.329 @sf +14 r (rtl) s +cmr10.329 @sf +15 r (will) s +15 r (automat-) s +0 2408 p (ically) s +15 r (\014nd) s +15 r 97 c +15 r (place) s +16 r (for) s +15 r (the) s +15 r (windo) s +0 r (w.) s +71 2465 p (If) s +21 r 121 c +0 r (ou) s +20 r (ha) s +0 r 118 c +-2 r 101 c +21 r (set) s +21 r (it) s +21 r (o\013) s +22 r (in) s +21 r 121 c +0 r (our) s +20 r (preference) s +21 r (\014le,) s +23 r 121 c +0 r (ou) s +20 r (ma) s +0 r 121 c +20 r 98 c +1 r 101 c +22 r (ask) s +-1 r (ed) s +21 r (to) s +21 r (place) s +21 r (it) s +22 r (automatically) s +-3 r 44 c +0 2521 p (dep) s +1 r (ending) s +15 r (up) s +2 r (on) s +15 r (whether) s +15 r (the) s +15 r (clien) s +0 r 116 c +14 r (has) s +15 r (sp) s +1 r (eci\014ed) s +16 r (an) s +15 r (initial) s +15 r (size) s +15 r (and) s +15 r 112 c +1 r (osition) s +16 r (\(in) s +15 r (the) s +cmcsc10.329 @sf +0 2578 p (WM) s +3 r 15 2 ru +15 r (NORMAL) s +3 r 15 2 ru +15 r (HINTS) s +cmr10.329 @sf +15 r (prop) s +2 r (ert) s +-1 r (y\).) s +0 2615 p 768 2 ru +cmr6.300 @sf +52 2642 p 50 c +cmr9.300 @sf +69 2658 p (Eac) s +0 r 104 c +12 r (X11) s +14 r (windo) s +0 r 119 c +12 r (can) s +14 r (ha) s +-1 r 118 c +-1 r 101 c +13 r 118 c +-1 r (arious) s +12 r (`prop) s +1 r (erties') s +14 r (asso) s +1 r (ciated) s +13 r (with) s +13 r (it.) s +19 r (Some) s +14 r (of) s +13 r (these) s +13 r (prop) s +1 r (erties) s +14 r (are) s +13 r (set) s +14 r 98 c +0 r 121 c +12 r (clien) s +0 r (ts) s +0 2704 p (to) s +13 r (comm) s +0 r (unicate) s +12 r (with) s +12 r (the) s +13 r (windo) s +0 r 119 c +12 r (manager.) s +17 r (See) s +13 r (section) s +13 r (9.1) s +12 r (of) s +13 r (the) s +13 r (Xlib) s +13 r (man) s +0 r (ual) s +11 r (if) s +13 r 121 c +0 r (ou) s +12 r 119 c +0 r (an) s +-1 r 116 c +12 r (more) s +12 r (information.) s +cmr10.329 @sf +949 2828 p 49 c +@eop +0 @bop0 +[ 518 ] /cmbx10.518 @newfont +cmbx10.518 @sf +[<007FFFFFFF8000007FFFFFFF8000007FFFFFFF800000000FFC00000000000FFC00000000000FFC00000000000FFC00000000 + 000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC0000000000 + 0FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000F + FC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC + 00000000000FFC00000000000FFC000000E0000FFC0001C0E0000FFC0001C0E0000FFC0001C0E0000FFC0001C070000FFC00 + 038070000FFC00038070000FFC00038070000FFC00038078000FFC00078078000FFC0007807C000FFC000F807E000FFC001F + 807F000FFC003F803FE00FFC01FF003FFFFFFFFFFF003FFFFFFFFFFF003FFFFFFFFFFF00> 56 48 -3 0 57.383] 84 @dc +[<000FFC0FFF80007FFF0FFF8001FFFFCFFF8003FE03EFF80003FC00FFF00007F8007FF00007F8003FF00007F8001FF00007F8 + 001FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000F + F00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF00007F8000FF000 + 07F8000FF00007F8000FF0000FF8001FF000FFF801FFF000FFF801FFF000FFF801FFF00001F80003F000> 48 32 -3 0 45.827] 117 @dc +[<000FE000007FF80001FFFC0003FE1E0003FC0E0007FC0F0007F8070007F8070007F8070007F8070007F8070007F8070007F8 + 070007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F80000 + 07F8000007F8000007F8000007F80000FFFFFE00FFFFFE00FFFFFE001FF8000007F8000003F8000001F8000000F8000000F8 + 00000078000000780000007800000038000000380000003800000038000000380000> 32 46 -2 0 32.079] 116 @dc +[<0007FE0000003FFFC00001FFFFF80003FE07FC0007F801FE000FE0007F001FE0007F803FC0003FC03FC0003FC07F80001FE0 + 7F80001FE07F80001FE0FF80001FF0FF80001FF0FF80001FF0FF80001FF0FF80001FF0FF80001FF0FF80001FF0FF80001FF0 + 7F80001FE07F80001FE07F80001FE03FC0003FC03FC0003FC01FC0003F800FE0007F0007F000FE0003FC03FC0000FFFFF000 + 003FFFC0000007FE0000> 40 32 -2 0 41.244] 111 @dc +[ 32 32 -2 0 33.972] 114 @dc +[ 24 51 -3 0 22.913] 105 @dc +[<00FF801FF807FFF03FF81FFFF87FF83FF03EFF007FC00FFE00FF8007FE00FF8003FE00FF0001FE00FF0001FE00FF0001FE00 + FF8001FE007F8001FE007FC001FE003FE001FE001FF001FE0007FE01FE0001FFF1FE00003FFFFE000001FFFE00000001FE00 + 000001FE00010001FE0007C001FE000FE001FE001FF001FE001FF003FC001FF007FC001FF007F8001FE01FF0000FFFFFC000 + 03FFFF0000007FF80000> 40 32 -2 0 40.098] 97 @dc +[ 24 50 -3 0 22.913] 108 @dc +[<1F003F807FC0FFE0FFE0FFE0FFE0FFE07FC03F801F0000000000000000000000000000000000000000001F003F807FC0FFE0 + FFE0FFE0FFE0FFE07FC03F801F00> 16 32 -6 0 22.913] 58 @dc +[ 32 49 -2 0 31.282] 73 @dc +[ 48 32 -3 0 45.827] 110 @dc +[ 40 49 -5 0 45.827] 83 @dc +[<0007FF0000003FFFE00000FFFFF80003FF01FC0007F8003E000FF0000F001FE00007803FE00003803FC00003807FC0000000 + 7F800000007F80000000FF80000000FF80000000FF80000000FFFFFFFF80FFFFFFFF80FFFFFFFF80FF80003F80FF80003F80 + 7F80003F807F80003F807FC0003F003FC0007F003FC0007F001FE000FE000FF000FC0007F801F80003FE0FF00001FFFFE000 + 007FFFC000000FFE0000> 40 32 -2 0 37.807] 101 @dc +[ 48 46 -2 14 45.827] 112 @dc +[<7FFFF0007FFFF0007FFFF00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC + 000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0000 + 03FC000003FC000003FC000003FC0000FFFFF800FFFFF800FFFFF80003FC000003FC000003FC000003FC000003FC000003FC + 000003FC000003FC01C003FC07F003FC0FF803FE0FF801FE0FF801FF0FF800FF0FF8007FC7F0001FFFF00007FFC00000FF00> 32 50 -2 0 25.205] 102 @dc +[<000000FFF000000000000FFFFF00000000007FFFFFC000000000FFE01FE000000003FF0003F800000007FC0000FC0000000F + F800003E0000001FF000001E0000003FE000000F0000003FE000000F8000007FE00000078000007FC0000007800000FFC000 + 0007C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003 + C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003C000 + 00FFC0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FF + C0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FFC000 + 0003C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003C00000FFC0000003 + C00000FFC0000003C00000FFC0000007E000FFFFFFC003FFFFC0FFFFFFC003FFFFC0FFFFFFC003FFFFC0> 64 49 -2 0 63.460] 85 @dc +[ 32 32 -3 0 32.537] 115 @dc +[<001FFF800000FFFFF00007FFFFFE001FF801FF803FC0003FC07F00000FE07E000007E0FE000007F0FC000003F0FC000003F0 + FC000003F0FE000007F07E00000FF03F00007FE01FFFFFFFE007FFFFFFE007FFFFFFC007FFFFFF800FFFFFFE000FFFFFF800 + 1FFFFFC0001F800000001F000000001E000000001E000000000E000000000E1FF000000EFFFE000007FFFF800007F83FC000 + 0FE00FE0001FE00FF0001FC007F0003FC007F8003FC007F8003FC007F8003FC007F8003FC007F8003FC007F8003FC007F800 + 1FC007F0601FE00FF1F80FE00FE1F807F83FF1F803FFFFFFF800FFFE3FF0001FF007E0> 40 47 -2 15 41.244] 103 @dc +[ 48 50 -3 0 45.827] 104 @dc +[ 72 32 -3 0 68.740] 109 @dc +[ 64 49 -2 0 61.866] 82 @dc +[ 48 49 -2 0 49.612] 76 @dc +[<000FF01FFF00007FFE1FFF0001FFFF9FFF0007FC07DFF0000FF001FFE0001FE000FFE0001FE0007FE0003FC0003FE0007FC0 + 001FE0007FC0001FE0007F80001FE000FF80001FE000FF80001FE000FF80001FE000FF80001FE000FF80001FE000FF80001F + E000FF80001FE000FF80001FE000FF80001FE000FF80001FE0007F80001FE0007FC0001FE0003FC0001FE0003FC0001FE000 + 1FE0003FE0001FF0007FE0000FF800FFE00003FE03FFE00001FFFFDFE000007FFF1FE000000FF81FE0000000001FE0000000 + 001FE0000000001FE0000000001FE0000000001FE0000000001FE0000000001FE0000000001FE0000000001FE0000000001F + E0000000001FE0000000001FE0000000001FE0000000003FE000000003FFE000000003FFE000000003FFE00000000007E000> 48 50 -3 0 45.827] 100 @dc +[<000000E000000700000000000001E000000780000000000001F000000F80000000000003F000000FC0000000000003F80000 + 1FC0000000000007F800001FE0000000000007F800001FE0000000000007FC00003FE000000000000FFC00003FF000000000 + 000FFC00003FF000000000000FFE00007FF000000000001FFE00007FF800000000001FFF0000FFF800000000003FFF0000FF + FC00000000003FF70000FFDC00000000003FF38001FF9C00000000007FE38001FF8E00000000007FE3C003FF8E0000000000 + FFE1C003FF0F0000000000FFC1C003FF070000000000FFC0E007FF070000000001FFC0E007FE038000000001FF80F00FFE03 + 8000000003FF80700FFC03C000000003FF00700FFC01C000000003FF00781FFC01C000000007FF00381FF801E000000007FE + 00381FF800E000000007FE001C3FF000E00000000FFC001C3FF000700000000FFC001E7FF000700000001FFC000E7FE00078 + 0000001FF8000E7FE000380000001FF80007FFE000380000003FF80007FFC0001C0000003FF00007FFC0001C0000007FF000 + 03FF80001E0000007FE00003FF80000E0000007FE00003FF80000E000000FFE00003FF000007000000FFC00007FF00000700 + 0001FFC00007FE000007800001FF800007FE000003800001FF80000FFE000003800003FF80000FFC000003C00003FF00000F + FC000007E000FFFFFE07FFFFF801FFFF00FFFFFE07FFFFF801FFFF00FFFFFE07FFFFF801FFFF00> 88 49 -2 0 85.278] 87 @dc +[<0000E0000E00000001E0000F00000001F0001F00000003F0001F80000003F8003F80000007F8003FC0000007FC007FC00000 + 07FC007FC000000FFC007FE000000FFE00FEE000001FFE00FEF000001FEF01FC7000001FE701FC7000003FC701FC3800003F + C383F83800007FC383F83C00007F83C7F01C00007F81C7F01C0000FF01C7F00E0000FF00EFE00E0001FF00EFE00F0001FE00 + FFC0070003FE007FC0078003FC007FC0038003FC003F80038007F8003F8003C007F8007F0001C00FF8007F0001E00FF0007E + 0003F0FFFF0FFFF01FFEFFFF0FFFF01FFEFFFF0FFFF01FFE> 56 32 -2 0 59.575] 119 @dc +[ 80 49 -2 0 78.304] 77 @dc +[ 360 ] /cmr10.360 @newfont +cmr10.360 @sf +[ 40 34 -2 0 36.667] 82 @dc +[<00FC000703000E00801C0040380020780020700000F00000F00000F00000F00000F00000FFFFE0F000E07000E07800E03801 + C01C01C00C038007070001FC00> 24 21 -1 0 22.139] 101 @dc +[ 16 35 -1 0 13.837] 108 @dc +[<0FE0F03C11C8780B84F00784F00384F00384F003847803807803803C03801E038007C380007F800003800003803803807C03 + 807C07007C0600381C001FF000> 24 21 -2 0 24.906] 97 @dc +[<87E0D818E00CC004C006C0068006800E001E00FC0FF83FF07F80F000E004C004C004C00C600C303C0FC4> 16 21 -2 0 19.648] 115 @dc +[<03F8000FFE001C0F003003804001C04001E0F800E0F800F0F800F0F800F07000F00000F00000F00000E00000E00001C01001 + C018038016070011FC0010000010000010000010000010000010000013F0001FFC001FFF001FFF801E0380180040> 24 32 -2 0 24.906] 53 @dc +[<7FF8007FF8000700000700000700000700000700000700000700000700000700000700000700000700000700000700000700 + 00070000070000FFF800FFF800070000070000070000070000070000070000070000070000070700030F80038F8001C78000 + E300003E00> 24 35 0 0 15.220] 102 @dc +[<00FC000703800E01C01C00E0380070780078700038F0003CF0003CF0003CF0003CF0003CF0003CF0003C7000387800783800 + 701C00E00E01C007038000FC00> 24 21 -1 0 24.906] 111 @dc +[ 24 21 -1 0 19.510] 114 @dc +[<00FC3F8003833F800700BC000E0078000E0078000E0038000E0038000E0038000E0038000E0038000E0038000E0038000E00 + 38000E0038000E0038000E0038000E0038001E007800FE03F800FE03F8000E003800> 32 21 -1 0 27.673] 117 @dc +[<002002000000700700000070070000007007000000E80E800000E80E800000E80C800001C41C400001C41C400001C4184000 + 038238200003823820000702303000070170100007016010000E01E008000E00E008000E00C00C001E01C01E00FF8FF87F80 + FF8FF87F80> 40 21 -1 0 35.975] 119 @dc +[ 16 34 -1 0 13.837] 105 @dc +[<01F0030807080E040E040E040E040E040E040E000E000E000E000E000E000E000E000E000E00FFF83FF81E000E0006000600 + 060002000200020002000200> 16 31 -1 0 19.371] 116 @dc +[ 32 35 -1 0 27.673] 104 @dc +[ 40 34 -1 0 37.359] 88 @dc +[<7FFF007FFF0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0 + 0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000F9C000FFC00007C00001C000004000> 24 32 -4 0 24.906] 49 @dc +[ 24 32 -2 0 24.906] 50 @dc +[ 32 34 -2 0 33.900] 69 @dc +[<80FE00C7FF80FE03C0F000E0E00070C00070C000308000388000388000380000380000780000780000F00003F0003FE003FF + C00FFF801FFE003FF0007F0000780000F00000F00000E00010E00010E00010E000306000307000703801F01E07700FFE3003 + F810> 24 34 -3 0 27.673] 83 @dc +[<70F8F8F870> 8 5 -4 0 13.837] 46 @dc +[<0007F000003FFE0000FC070001F0018003C00040078000200F0000101E0000103E0000083C0000087C0000087C0000087800 + 0000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000780000087C0000087C0000083C000018 + 3E0000181E0000180F0000380780007803C000F801F001B800FC0738003FFC180007F008> 32 34 -3 0 35.975] 67 @dc +[ 32 21 -1 0 27.673] 110 @dc +[ 40 21 -1 0 41.510] 109 @dc +[<01F8000706000C01001C0080380040780040700000F00000F00000F00000F00000F00000F00000F00000700000780700380F + 801C0F800C0F8007070001FE00> 24 21 -2 0 22.139] 99 @dc +[<03F801F8001FFE07FE003E079F07007C00FC01007800780080F800F00080F001E80000F003C40000F0038600007007020000 + 700F010000301E008000181C008000083C00400004380020000270002000017000100000E000180000E0003C0001E001FFC0 + 01D001FFC001C800000001C80000000384000000038200000003810000000381000000038080000003808000000380800000 + 0180800000018080000000C10000000063000000003C000000> 40 35 -2 0 38.743] 38 @dc +[<01FFFF8001FFFF800003C0000003C0000003C0000003C0000003C0000003C0000003C0000003C0000003C0000003C0000003 + C0000003C0000003C0000003C0000003C0000003C0000003C0000003C0000003C0000003C0008003C0028003C0028003C002 + 8003C002C003C006C003C0064003C0044003C0046003C00C7803C03C7FFFFFFC7FFFFFFC> 32 34 -2 0 35.975] 84 @dc +[<01FE000E01C0380070600018600018C0000CC0000CC0000C40001C6000183800F80FFFF00FFFE01FFF001C00001800001000 + 0010000019F0000F1C000E0E001C07001C07003C07803C07803C07803C07801C07001C07000E0E1C071D9C01F078> 24 32 -1 11 24.906] 103 @dc +[<3E0000630000B98000F88000F84000F8400000200000200000200000100000100000380000380000380000740000740000E2 + 0000E20000E20001C10001C1000380800380800380800700400700400E00200E00201E0070FFC1FEFFC1FE> 24 31 -1 10 26.290] 121 @dc +[ 32 34 -2 0 31.133] 76 @dc +[<081F80000C60E0000C8070000F0038000E001C000E001E000E000E000E000F000E000F000E000F000E000F000E000F000E00 + 0F000E000F000E000E000E001E000E001C000F0038000E8030000E60E0000E1F80000E0000000E0000000E0000000E000000 + 0E0000000E0000000E0000000E0000000E0000000E0000001E000000FE000000FE0000000E000000> 32 35 -1 0 27.673] 98 @dc +[<01F800070E000C03001C03803801C03801C07801E07000E07000E0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000 + F0F000F0F000F0F000F0F000F0F000F0F000F07000E07000E07000E03801C03801C01C03800C0300070E0001F800> 24 32 -2 0 24.906] 48 @dc +[<01F87F0007067F000C0178001C00F000380070007800700070007000F0007000F0007000F0007000F0007000F0007000F000 + 7000F00070007000700078007000380070001C00F0000E0170000706700001F8700000007000000070000000700000007000 + 0000700000007000000070000000700000007000000070000000F0000007F0000007F00000007000> 32 35 -2 0 27.673] 100 @dc +[ 32 34 -2 0 33.900] 80 @dc +[ 40 34 -2 0 37.359] 78 @dc +[<0FC000307000401C00781E00FC0E00FC0F00FC0F00780F00300F00000F00000F00000F00000F00000F00000F00000F00000F + 00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0007FFF007 + FFF0> 24 34 -2 0 25.598] 74 @dc +[<01F8000FFE001E03803800C0600060600020C00030C00030C00030C00070C000706001E02003E0300FC0081F80067F0001FE + 0003F80007FC001FC6003F81803E00C07800C07000606000606000606000602000C01001C01C078007FF0001F800> 24 32 -2 0 24.906] 56 @dc +[<00FFF800FFF8000700000700000700000700000700000700000700FFFFFCFFFFFCC007004007002007003007001007000807 + 00040700060700020700010700018700008700004700006700002700001700000F00000F00000700000300000300> 24 32 -1 0 24.906] 52 @dc +[ 32 1 0 -12 24.906] 123 @dc +[<01F80007FE000F07001C03801801C03801E03800E07000F07000F07000F0F000F0F000F0F000F0F000E0F800E0F801C0F401 + C0F40380F30600F0F8007000007000007800003800003801C01C03E01C03E00E01E00700E003C0C000FF80003E00> 24 32 -2 0 24.906] 54 @dc +[<001000200040008001000300060004000C001800180018003000300030007000600060006000E000E000E000E000E000E000 + E000E000E000E000E000E00060006000600070003000300030001800180018000C0004000600030001000080004000200010> 16 50 -3 13 19.371] 40 @dc +[<07E0001FF800303C00300E007807007C03807C01C03801C00001E00000E00000E00000F001F0F0060CF01C02F03802F03801 + F07001F07000F0F000F0F000F0F000F0F000E0F000E0F000E07001E07801C03801C01C03800E0F0007FE0001F800> 24 32 -2 0 24.906] 57 @dc +[<800040002000100008000C0006000200030001800180018000C000C000C000E0006000600060007000700070007000700070 + 00700070007000700070007000600060006000E000C000C000C00180018001800300020006000C0008001000200040008000> 16 50 -3 13 19.371] 41 @dc +[<01C00003E00003E00003E00003E00003E00003E00003E00001E00001E00001E00001E00000E00000E00000E0000070000070 + 00003000003000001000000800000800000400000200800100800100800080C000404000207FFFE07FFFF07FFFF060000040 + 0000> 24 34 -3 0 24.906] 55 @dc +[<03F8001FFE00380F806007C0F803C0FC03E0FC01E0FC01F07801F03001F00001F00001F00001E00003E00003C0000780000E + 0003F800001C00000F000007800003C00003C01803E03C01E07C01E07C03E07C03C03803C0180F800FFE0003F800> 24 32 -2 0 24.906] 51 @dc +[<000000F000000001FC00000003FC00000003FE00000007FE0000000787000000070300000006030000000601000000040100 + 000FFC0100007C1E000000E80F000003C80BC000078811E0000F0420F0001E03C078001E000078003C00003C003C00003C00 + 7C00003E007800001E007800001E00F800001F00F800001F00F800001F00F800001F00F800001F00F800001F00F800001F00 + F800001F007800001E007C00003E007C00003E003C00003C003C00003C001E000078001E000078000F0000F000078001E000 + 03C003C00000E007000000781E0000000FF00000> 40 44 -3 10 38.743] 81 @dc +[<000FFC0000003003E00000C0003C000100000F000600000000040000000008000000001007E07800201C10C40020300DC200 + 406003C20040C003C10041C001C10081C001C100838001C100838001C100838001C100838001C100838001C100838001C100 + 838001C10081C001C10041C001C20040C003C200406002020020300C0400201C1004001007E0080008000010000400002000 + 0600006000010000800000C003000000300C0000000FF00000> 40 35 -3 0 38.743] 64 @dc +[ 32 31 -1 10 27.673] 112 @dc +[<70F8F8F87000000000002020202020207070707070707070707070F8F8F8F8F8F8F870> 8 35 -4 0 13.837] 33 @dc +[ 300 ] /cmbx10.300 @newfont +cmbx10.300 @sf +[ 32 28 -2 0 36.090] 65 @dc +[<1C3F001EC1E01F80701F00781F003C1F003C1F003E1F003E1F003E1F003E1F003E1F003E1F003C1F003C1F00781F80701FE1 + E01F3F801F00001F00001F00001F00001F00001F00001F00001F00001F0000FF0000FF0000> 24 29 -1 0 26.520] 98 @dc +[ 16 18 -2 0 18.829] 115 @dc +[<03F007980F081F0C1F0C1F0C1F0C1F001F001F001F001F001F001F001F001F00FFFC3FFC0F000F0007000700030003000300 + 0300> 16 26 -1 0 18.564] 116 @dc +[ 24 18 -1 0 19.660] 114 @dc +[<0FE1F83E13F8780BC0F807C0F807C0F807C07C07C03C07C01F07C007E7C0007FC00007C01C07C03E07C03E07803E0F801C1E + 000FF800> 24 18 -1 0 23.205] 97 @dc +[<03F8000E0E001C03003C0180780180780000F80000F80000F80000F80000F80000F80000780E00781F003C1F001C1F000E0E + 0003FC00> 24 18 -2 0 21.216] 99 @dc +[ 300 ] /cmr10.300 @newfont +cmr10.300 @sf +[<03FFFC00001F8000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F + 0000000F0000000F0000000F0000000F0000000F0000000F0000800F0020800F0020800F0020C00F0020400F0040400F0040 + 600F00C0700F01C07FFFFFC0> 32 28 -1 0 29.979] 84 @dc +[ 24 29 -1 0 23.061] 104 @dc +[ 16 29 -1 0 11.531] 105 @dc +[<8FC0D060E010C018C0188018803800F80FF03FE07F80F800E010C010C010403030701F90> 16 18 -1 0 16.373] 115 @dc +[<03C00E200C101C101C101C101C101C101C001C001C001C001C001C001C001C001C00FFE03C001C000C000C00040004000400 + 0400> 16 26 -1 0 16.143] 116 @dc +[<03E3F00E1B800C07801C07801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03 + 80FC1F80> 24 18 -1 0 23.061] 117 @dc +[<03F0000E1C00180600300300700380600180E001C0E001C0E001C0E001C0E001C0E001C06001807003803003001806000E1C + 0003F000> 24 18 -1 0 20.755] 111 @dc +[ 16 18 -1 0 16.258] 114 @dc +[<1F8700304E80603C40E01C40E01C40E01C40601C00701C00381C000F1C0001FC00001C00001C00301C00781C007838003070 + 001FC000> 24 18 -2 0 20.755] 97 @dc +[ 16 29 -1 0 11.531] 108 @dc +[<07C7E00C3700180F00300700700700600700E00700E00700E00700E00700E00700E00700600700700700300700180F000C17 + 0003E700000700000700000700000700000700000700000700000700000700000700003F00> 24 29 -2 0 23.061] 100 @dc +[<03E00C181804300270026000E000E000E000E000FFFEE0066006700E300C18180C3003E0> 16 18 -1 0 18.449] 101 @dc +[<07C00C301808300470046000E000E000E000E000E000E00060007030307818780C3007E0> 16 18 -2 0 18.449] 99 @dc +[<10F8001906001E03001C01801C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C00C01C01C01C01801E03001D86 + 001C7C001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0000FC0000> 24 29 -1 0 23.061] 98 @dc +[<008020000180300001C0700001C0700003C0680003A0E80003A0E8000720C4000711C4000711C4000E1182000E0B82000E0B + 82001C0B01001C0701001C0701803C0F0380FF3FCFE0> 32 18 -1 0 29.979] 119 @dc +[ 40 18 -1 0 34.592] 109 @dc +[ 24 18 -1 0 23.061] 110 @dc +[<7FE00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFE00E000E000E000E000E000E000E0C + 061E071E018C00F8> 16 29 0 0 12.684] 102 @dc +[<83F800CC0E00F00300C00300C001808001C08001C08001C00001C00003C00003C0000F8000FF8007FF001FFE003FF8007FC0 + 007C0000F00000F00000E00080E00080E000806001807003803007801C198007E080> 24 28 -2 0 23.061] 83 @dc +cmbx10.300 @sf +[ 16 29 -1 0 13.260] 108 @dc +cmr10.300 @sf +[<001800180000001800180000001800180000003C003C0000003C003C0000003C003C0000007E007E0000007A007A0000007A + 007A0000007900F2000000F100F1000000F100F1000000F081E1000001E081E0800001E081E0800001E043E0800003C043C0 + 400003C043C0400003C027C0400007802780200007802780200007803F8020000F001F0010000F001F0010000F001F001000 + 1E001E0018001F001F003C00FFE0FFE0FF00> 48 28 -1 0 42.663] 87 @dc +[ 40 28 -2 0 38.051] 77 @dc +[<07F8001C0E00300300600180C000C0C000C0C000C06001C03003801FFF801FFF001FF80018000030000010000013C0000C30 + 001C3800181800381C00381C00381C00381C001818001C38800C3CC003C380> 24 27 -1 9 20.755] 103 @dc +[<60F0F060> 8 4 -4 0 11.531] 46 @dc +[ 16 28 -1 0 14.990] 73 @dc +[<3C0000660000F30000F10000F0800000800000800000400000400000E00000E00000E00001D00001D00003D8000388000388 + 000704000704000704000E02000E02001C01001C01003C0380FF07E0> 24 26 -1 8 21.908] 121 @dc +[ 24 29 -1 0 21.908] 107 @dc +[ 32 28 -1 0 31.133] 88 @dc +[ 16 27 -4 0 20.755] 49 @dc +[ 32 28 -2 0 30.556] 82 @dc +[ 24 27 -2 0 20.755] 50 @dc +[ 300 ] /cmr7.300 @newfont +cmr7.300 @sf +[ 16 19 -3 0 16.546] 49 @dc +cmr10.300 @sf +[<00400000E00000E00000E00001D00001D00003D8000388000388000704000704000704000E02000E02001C01001C01003C03 + 80FF07E0> 24 18 -1 0 21.908] 118 @dc +[ 24 26 -1 8 23.061] 112 @dc +[ 24 18 0 0 21.908] 120 @dc +[ 16 18 -1 0 18.449] 122 @dc +[<7F87F80E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01 + C0FFFFC00E00000E00000E00000E00000E00000E01800E03C00703C003018001C180007E00> 24 29 0 0 23.061] 12 @dc +[<804020201010101070F0F060> 8 12 -4 8 11.531] 44 @dc +[ 16 2 0 -8 13.837] 45 @dc +[<003F800001E0F0000380380007001C000E000E001C0007003C00078038000380780003C0780003C0F00001E0F00001E0F000 + 01E0F00001E0F00001E0F00001E0F00001E0F00001E0700001C0780003C038000380380003801C0007000E000E0007001C00 + 0380380001E0F000003F8000> 32 28 -2 0 32.286] 79 @dc +[ 32 28 -1 0 31.133] 65 @dc +cmbx10.300 @sf +[<000003C0000007E000000FF000000FF000001FF800001FF800001C1800001808003FF80801F87C0003D03E000F906F801F08 + C7C03E0703E03E0003E07E0003F07C0001F07C0001F0FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8 + FC0001F87C0001F07C0001F07E0003F03E0003E01F0007C01F0007C00F800F8003C01E0001F07C00003FE000> 32 36 -3 8 35.860] 81 @dc +[<01F8FF000786FF000F01F8001F01F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00 + F8001F00F8001F00F8001F00F800FF07F800FF07F800> 32 18 -1 0 26.520] 117 @dc +[ 16 30 -1 0 13.260] 105 @dc +[ 24 29 -1 0 25.194] 107 @dc +[ 40 28 -2 0 35.802] 82 @dc +[<01FC000F03801E00C03C00607C0060780000F80000F80000F80000FFFFE0F801E0F801E07801E07801C03C01C01C03800F07 + 0001FC00> 24 18 -1 0 21.879] 101 @dc +[<7FF8007FF8000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8000FFF8 + 00FFF8000F80000F80000F80000F80000F80000F83800F87C00787C003C7C001E380007F00> 24 29 0 0 14.586] 102 @dc +[ 32 18 -1 0 26.520] 110 @dc +[ 32 28 -2 0 32.631] 80 @dc +[<07FF001E03C07800F0700070F00078F00078F000787801F81FFFF00FFFE01FFFC01FFF001800001800001000001BF8000E0E + 001E0F001C07003C07803C07803C07803C07801C07301E0F380E0F3803F8F0> 24 27 -1 9 23.868] 103 @dc +[ 48 28 -2 0 45.315] 77 @dc +cmr10.329 @sf +[<0FC000107000201800700C00780E007807003007000007800003800003800003C003E3C00E13C0180BC03807C07007C07003 + C0F003C0F003C0F003C0F00380F00380F003807003807007003806001C0E000E180003F000> 24 29 -2 0 22.727] 57 @dc +[<03F0000C0C00300200600100600080C000C0C000C0C000C0C001C0C001C06003C0200F80103F000C7F0007FC0003F8000FF0 + 001FCC003F06003E03007803007001806001806001802001802003001006000C0C0003F000> 24 29 -2 0 22.727] 56 @dc +[<0F800030E000407000F07800F83C00F83C00F83C00203C00003C00003C00003C00003C00003C00003C00003C00003C00003C + 00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00007C000FFFC0> 24 31 -2 0 23.358] 74 @dc +[ 32 31 -2 0 34.721] 68 @dc +[<000100000003800000038000000380000007C0000007C000000FE000000F2000000F2000001E1000001E1000001E1000003C + 0800003C0800007C0C00007804000078040000F0020000F0020000F0020001E0010001E0010003E0008003C0008003C00080 + 07800040078000400F8000600F0000601F8000F8FFF003FE> 32 31 -1 0 34.090] 86 @dc +[<0000078000000FC000001FE000001FE000003FF000003870000038300000301000003010003FE01000F0700003E03C0007A0 + 5E000F204F001E1087801E0F07803C0003C07C0003E07C0003E0780001E0F80001F0F80001F0F80001F0F80001F0F80001F0 + F80001F0F80001F0F80001F0F80001F0780001E07C0003E03C0003C03C0003C01E0007801E0007800F000F0007801E0003C0 + 3C0000F0F000003FC000> 32 40 -3 9 35.353] 81 @dc +cmr6.300 @sf +[ 16 16 -2 0 15.220] 49 @dc +cmr9.300 @sf +[<0020004000003000C000007000E000007000E000007801E000007801E00000E801D00000E403900000E403900001C4038800 + 01C403880001C20708000382070400038207040003810E040007010E020007010E020007009C020007009C02000E009C0100 + 0E007801000E007801001C007800801C007800803C007801C0FF83FF0FF0> 40 26 -1 0 39.457] 87 @dc +[ 24 26 -1 0 20.265] 107 @dc +[ 32 26 -2 0 35.191] 77 @dc +[ 16 26 -1 0 13.860] 73 @dc +[<03FFE000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C + 0000001C0000001C0000001C0000001C0000001C0000801C0080801C0080801C0080C01C0180401C0100401C0100701C0700 + 7FFFFF00> 32 26 -1 0 27.731] 84 @dc +0 @bop1 +cmbx10.518 @sf +52 203 p 84 c +-5 r (utorial:) s +35 r (Initial) s +28 r (Setup) s +27 r (for) s +28 r (Using) s +27 r (the) s +28 r (Siemens) s +27 r 82 c +-6 r (TL) s +517 295 p (Tiled) s +28 r (Windo) s +-1 r 119 c +26 r (Manager) s +cmr10.360 @sf +630 385 p (Release) s +16 r 53 c +17 r (for) s +16 r (use) s +17 r (with) s +17 r (X11R2) s +806 507 p (Ellis) s +17 r (S.) s +16 r (Cohen) s +464 565 p (Siemens) s +17 r (Researc) s +-1 r 104 c +16 r 38 c +16 r 84 c +-3 r (ec) s +-1 r (hnology) s +15 r (Lab) s +2 r (oratories) s +713 623 p (105) s +16 r (College) s +17 r (Road) s +17 r (East) s +682 682 p (Princeton) s +16 r (NJ) s +17 r (08540{6668) s +795 740 p (\(609\)) s +17 r (734{6524) s +668 819 p (Commen) s +0 r (ts) s +15 r (or) s +17 r (Questions) s +17 r (to) s +578 877 p (rtl@cadillac.siemens.com) s +17 r (\(in) s +0 r (ternet\)) s +565 934 p (princeton!siemens!cadillac!rtl) s +17 r (\(uucp\)) s +cmbx10.300 @sf +869 1174 p (Abstract) s +cmr10.300 @sf +176 1250 p (This) s +18 r (tutorial) s +17 r (describ) s +2 r (es) s +17 r (ho) s +0 r 119 c +17 r (to) s +18 r 98 c +1 r (ecome) s +18 r (an) s +18 r (initial) s +17 r (user) s +18 r (of) s +18 r (the) s +18 r (Siemens) s +cmbx10.300 @sf +18 r (rtl) s +cmr10.300 @sf +17 r (Tiled) s +18 r (Windo) s +0 r 119 c +114 1300 p (Manager.) s +18 r (It) s +14 r (assumes) s +14 r (that) s +14 r 121 c +0 r (ou) s +13 r (already) s +14 r (kno) s +0 r 119 c +13 r (ho) s +0 r 119 c +13 r (to) s +14 r (start) s +13 r (the) s +14 r (X11R2) s +cmr7.300 @sf +1363 1285 p 49 c +cmr10.300 @sf +1396 1300 p (serv) s +0 r (er) s +13 r (and) s +14 r (are) s +14 r (familiar) s +114 1349 p (with) s +13 r (X11) s +14 r (applications.) s +176 1399 p (The) s +14 r (tutorial) s +13 r (explains) s +14 r (ho) s +0 r 119 c +13 r (to) s +13 r (set) s +14 r (up) s +14 r (customization) s +14 r (\014les,) s +13 r (ho) s +0 r 119 c +13 r (to) s +14 r (set) s +14 r (up) s +13 r 121 c +0 r (our) s +13 r (initial) s +14 r (windo) s +-1 r 119 c +114 1449 p (la) s +-1 r 121 c +-1 r (out) s +12 r (along) s +13 r (with) s +13 r 112 c +1 r (er-windo) s +0 r 119 c +12 r (options,) s +13 r (and) s +13 r (ho) s +0 r 119 c +12 r (to) s +13 r (sa) s +0 r 118 c +-1 r 101 c +12 r (that) s +13 r (la) s +-1 r 121 c +-1 r (out.) s +17 r (Once) s +13 r (the) s +13 r (la) s +0 r 121 c +-1 r (out) s +12 r (is) s +13 r (sa) s +0 r 118 c +-1 r (ed,) s +114 1499 p (it) s +13 r (will) s +14 r (automatically) s +14 r 98 c +1 r 101 c +14 r (recreated) s +14 r (when) s +14 r 121 c +0 r (ou) s +12 r (start) s +14 r (up) s +14 r (the) s +14 r (system) s +14 r (in) s +14 r (the) s +14 r (future.) s +176 1549 p 65 c +cmbx10.300 @sf +15 r (Quic) s +0 r 107 c +17 r (Reference) s +18 r 80 c +-1 r (age) s +cmr10.300 @sf +15 r (describing) s +15 r (the) s +15 r (actions) s +16 r (asso) s +1 r (ciated) s +16 r (with) s +15 r (mouse) s +15 r (buttons,) s +16 r (and) s +16 r 97 c +cmbx10.300 @sf +114 1599 p (Man) s +-1 r (ual) s +cmr10.300 @sf +13 r (are) s +14 r (also) s +14 r 97 c +0 r 118 c +-3 r (ailable.) s +cmr10.329 @sf +0 1783 p (Cop) s +0 r (yrigh) s +-2 r 116 c +15 r (1988) s +15 r 98 c +0 r 121 c +14 r (Siemens) s +15 r (Researc) s +0 r 104 c +14 r (and) s +15 r 84 c +-3 r (ec) s +-1 r (hnology) s +14 r (Lab) s +1 r (oratories,) s +15 r (Princeton,) s +16 r (NJ) s +0 1896 p 80 c +0 r (ermission) s +12 r (to) s +12 r (use,) s +14 r (cop) s +-1 r 121 c +-3 r 44 c +12 r (mo) s +1 r (dify) s +-3 r 44 c +13 r (and) s +13 r (distribute) s +12 r (this) s +13 r (do) s +1 r (cumen) s +0 r (tation) s +12 r (and) s +13 r (the) s +13 r (soft) s +-1 r 119 c +-1 r (are) s +12 r (describ) s +1 r (ed) s +13 r (for) s +0 1953 p (an) s +0 r 121 c +14 r (purp) s +1 r (ose) s +16 r (and) s +15 r (without) s +16 r (fee) s +15 r (is) s +15 r (hereb) s +0 r 121 c +14 r (gran) s +0 r (ted,) s +15 r (pro) s +-1 r (vided) s +15 r (that) s +15 r (the) s +16 r (ab) s +1 r 111 c +0 r 118 c +-2 r 101 c +15 r (cop) s +-1 r (yrigh) s +-1 r 116 c +14 r (notice) s +16 r (app) s +1 r (ear) s +0 2009 p (in) s +14 r (all) s +15 r (copies) s +14 r (and) s +14 r (that) s +15 r 98 c +1 r (oth) s +14 r (that) s +15 r (cop) s +-1 r (yrigh) s +-1 r 116 c +13 r (notice) s +15 r (and) s +14 r (this) s +14 r 112 c +2 r (ermission) s +14 r (notice) s +14 r (app) s +2 r (ear) s +14 r (in) s +14 r (supp) s +1 r (orting) s +0 2066 p (do) s +1 r (cumen) s +0 r (tation,) s +12 r (and) s +13 r (that) s +13 r (the) s +12 r (name) s +13 r (of) s +13 r (Siemens) s +13 r (Researc) s +-1 r 104 c +12 r (and) s +13 r 84 c +-3 r (ec) s +-1 r (hnology) s +12 r (Lab) s +1 r (oratories) s +13 r (not) s +12 r 98 c +2 r 101 c +12 r (used) s +0 2122 p (in) s +12 r (adv) s +0 r (ertising) s +11 r (or) s +13 r (publicit) s +-1 r 121 c +12 r 112 c +1 r (ertaining) s +12 r (to) s +13 r (distribution) s +12 r (of) s +12 r (the) s +12 r (soft) s +0 r 119 c +-1 r (are) s +11 r (without) s +12 r (sp) s +2 r (eci\014c,) s +13 r (written) s +12 r (prior) s +0 2178 p 112 c +1 r (ermission.) s +0 2291 p (SIEMENS) s +22 r (DISCLAIMS) s +23 r (ALL) s +22 r 87 c +-4 r (ARRANTIES) s +22 r (WITH) s +22 r (REGARD) s +23 r (TO) s +22 r (THIS) s +23 r (SOFTW) s +-4 r (ARE,) s +21 r (IN-) s +0 2348 p (CLUDING) s +15 r (ALL) s +16 r (IMPLIED) s +15 r 87 c +-4 r (ARRANTIES) s +15 r (OF) s +15 r (MER) s +0 r (CHANT) s +-4 r (ABILITY) s +14 r (AND) s +16 r (FITNESS,) s +15 r (IN) s +16 r (NO) s +0 2404 p (EVENT) s +15 r (SHALL) s +15 r (SIEMENS) s +15 r (BE) s +15 r (LIABLE) s +15 r 70 c +-1 r (OR) s +14 r (ANY) s +15 r (SPECIAL,) s +15 r (INDIRECT) s +15 r (OR) s +15 r (CONSEQUEN-) s +0 2461 p (TIAL) s +15 r 68 c +-1 r (AMA) s +-1 r (GES) s +14 r (OR) s +15 r (ANY) s +14 r 68 c +0 r (AMA) s +-1 r (GES) s +13 r (WHA) s +-2 r (TSOEVER) s +13 r (RESUL) s +-2 r (TING) s +13 r (FR) s +0 r (OM) s +14 r (LOSS) s +14 r (OF) s +15 r (USE,) s +0 2517 p 68 c +0 r 65 c +-4 r 84 c +-4 r 65 c +23 r (OR) s +24 r (PR) s +0 r (OFITS,) s +23 r (WHETHER) s +24 r (IN) s +24 r (AN) s +24 r 65 c +-1 r (CTION) s +23 r (OF) s +24 r (CONTRA) s +0 r (CT,) s +23 r (NEGLIGENCE) s +24 r (OR) s +0 2574 p (OTHER) s +18 r (TOR) s +-3 r (TIOUS) s +17 r 65 c +0 r (CTION,) s +16 r (ARISING) s +18 r (OUT) s +18 r (OF) s +18 r (OR) s +17 r (IN) s +18 r (CONNECTION) s +18 r (WITH) s +18 r (THE) s +18 r (USE) s +0 2630 p (OR) s +15 r (PERF) s +0 r (ORMANCE) s +14 r (OF) s +15 r (THIS) s +15 r (SOFTW) s +-4 r (ARE.) s +0 2661 p 768 2 ru +cmr6.300 @sf +52 2688 p 49 c +cmr9.300 @sf +69 2704 p (X11) s +13 r (and) s +13 r (the) s +13 r 88 c +12 r (Windo) s +0 r 119 c +12 r (System) s +13 r (are) s +13 r (trademarks) s +12 r (of) s +13 r (MIT) s +@eop +@end diff --git a/doc/scribe/manual5.mss b/doc/scribe/manual5.mss new file mode 100644 index 0000000..cdd1adb --- /dev/null +++ b/doc/scribe/manual5.mss @@ -0,0 +1,2767 @@ +@device(imagen300) +@style(Spacing .91, Spread .57, Indent 0) +@make(article) + +@PageHeading() +@PageFooting(Center="@Value(Page)") +@Set(Page = 1) + +@Modify(hd2, below 1 line, need 8, underline all, font titlefont4) +@Modify(hd3, below 1 line, need 6, underline all, font titlefont2) + +@Modify(Heading, above 1.5 lines, below 1.5 lines, need 4) +@Modify(MajorHeading, above 1.5 lines, below 1.5 lines, need 4) +@Modify(SubHeading, need 5, font bodyfont, facecode c, + underline, centered) +@Define(HeadingAddress = Heading, Above 0, Below 0, Font SmallBodyFont) + +@Define(b2 = b, Need 2 lines) +@Define(bx = b, Need 3 lines) + +@modify(Verbatim, above 1 line, below 1 line, Spacing .91, Spread .57) +@modify(Format, above 1 line, below 1 line, Spacing .91, Spread .57) +@modify(Example, above 1 line, below 1 line, Spacing .91, Spread .57) +@modify(ProgramExample, above 1 line, below 1 line, Spacing .91, Spread .57) +@Modify(Quotation, above 1 line, below 1 line, Spacing .91, Spread .57) +@Modify(Itemize, above 1 line, below 1 line, Spacing .91, Spread .57) +@Modify(Enumerate, above 1 line, below 1 line, Spacing .91, Spread .57) + +@Define(Abstract = Quotation, Indent 0, FaceCode i, Spacing .8, + Above 3, Below 3) + +@begin(majorheading) +Manual for the +Siemens RTL +Tiled Window Manager + +Release 5.1 +for use with X11R3 +@end(majorheading) + +@begin(heading) +Ellis S. Cohen +@begin(HeadingAddress) +Siemens Research & Technology Laboratories +105 College Road East +Princeton NJ 08540-6668 +(609) 734-6524 + +Comments or Questions to +rtl@@cadillac.siemens.com (internet) +princeton!siemens!cadillac!rtl (uucp) +@end(HeadingAddress) + +1 September 1988 +@end(heading) + +@begin(quotation) +Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + +Permission to use, copy, modify, and distribute this documentation and +the software described for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Siemens Research and Technology +Laboratories not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior permission. + +SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. +@end(quotation) + +@newpage() + +@begin(Abstract) +This manual provides a detailed description of Release 5.1 of the Siemens +RTL Tiled Window Manager, a window manager for X11@foot clients. + +@b(A separate document, "Tutorial: Initial Setup for Using the +Siemens RTL Tiled Window Manager", should be read first by novice users +of the system.) +@end(Abstract) + +Except for menus and transient pop-up windows, +a tiled window manager does not permit windows to overlap. + +When an attempt is made to open, move, or resize a window, other windows +may be occupying the space needed. This space conflict is resolved by +@begin(itemize, group, spread 0) +Shrinking, closing, or moving the windows in the way, or + +Opening, moving, or resizing the window at a different size or position +than specified, or + +Refusing to perform the operation. +@end(itemize) + +Such @b(side effects) are a major feature distinguishing our tiled window +manager from existing overlapping window managers. + +The Siemens RTL Tiled Window Manager supports an arbitrary layout of +tiled windows. +Windows may be placed anywhere; they do not necessarily line up in +columns. + +The window manager does @i(not) attempt to fill the screen. +Windows have a desired size, and are not made larger than this unless +requested by the user. +Consequently, there may be blank space on the screen. + +While overlapping windows are more familiar, the Siemens RTL Tiled Window +Manager has some important benefits: + +@begin(Itemize) +It keeps the desktop well organized -- the desktop does not look messy. + +Windows are always easy to find. Windows cannot get lost underneath +other windows, and window headers are not obscured by other windows. + +Important information is never obscured by other windows. Obscured +windows are shrunk instead, and the application gets a chance to +reformat information to make use of the available space. + +Screen space is not wasted by partially visible slivers that contain +useless information. Windows can have their minimum size set to ensure +that all essential information can be presented. If there +is no room on the screen for the window to be fully visible at its +minimum size, the window is automatically iconized. + +Users do not have to manually move or shrink adjacent windows to keep +them fully visible when they enlarge or open a window -- the window +manager reorganizes screen space automatically. +@end(Itemize) + +This release of the Siemens RTL Tiled Window Manager has the following +features: + +@begin(itemize) +Automatic strategies are provided for window placement and sizing. The +degree of automation is controlled by a variety of options. + +Windows are decorated with titlebars,borders and gadgets. The size and +presence of these decorations can be individually controlled. + +Supports the X11R2 version of the conventions for Client / Window Manager +communications. + +The user can save and restore window layouts. That is, RTL is a session +manager as well as a window manager. + +Both click-to-type and real-estate-driven focus models are available. + +The user can specify a separate icon area and control icon layout within +it. + +The wm will optionally write application-specific information over +specified regions of pixmap icons. + +The user can override the client's pixmap icon. A variety of snazzy +icons are provided for the usual applications. + +Users can perform group-iconification -- display a single icon for a +group of top-level windows (for clients that define window groups). + +Support is provided for both 3-button and 1-button mice. + +Using preference files, users can organize applications in a class +hierarchy, for purposes of inheriting option settings. +@end(itemize) + +This is the first tiled window manager developed that supports arbitrary +layouts, and is as much a research vehicle as a production-quality window +manager. Consequently, there are an extremely large number of options +that may be set by the user (although naive users can use the default +option settings, or one of the preference files distributed with the +system). We are particularly interested in users' experiences with +various option settings. + +The manual is organized as follows: + +@begin(enumerate) +@b(Windows and Icons): This describes how the window manager decorates +client windows with a header, borders and gadgets, and how they are used. +It also describes the contents, use, and placement of icons. + +@b(Window Sizes and Positions): Describes minimum, maximum, and desired +sizes for both normal and zoomed windows, and desired positions. + +@b(The Pointer Interface): Describes pointer related aspects of +the user interface, including the difference between the focus and the +listener window. + +@b(Manager Menu): Describes the global operations that can be performed +from the window manager menu. + +@b(Window Menu): Describes the operations that can be performed on an +individual window. + +@b(Icon Menu): Describes the operations that can be performed on an icon. + +@b(Customization and Startup): Explains how to customize the window +manager via various files specifying tools, preference files +(which set options globally or on a per window-class basis), and startup +and layout files. Indicates how these are used on startup. + +@b(Automatic Strategies): How the window manager automatically adjusts +the size and position of windows to keep the desktop tiled and balance +competing demands for screen space. + +@b(Standard X11 Properties): How standard X11 properties are used by the +window manager. + +@b(Client Placement): Actions that a client can take which affect the +placement of windows. + +@b(Options): Describes the options and their default values. +@end(enumerate) + +Both a tutorial manual, and a separate "@b(Quick Reference Page)" are +available as part of the distribution. + +In addition, an 18 minute videotaped demonstration of the system +(previously shown as part of the video program at both CHI+GI '87 +in Toronto and Interact '87 in Stuttgart) is available for loan +by writing to + +@begin(Verbatim) + Software Technology Department + Siemens RTL + 105 College Rd East, + Princeton NJ, 08540. +@end(Verbatim) + +@section(Windows and Icons) + +@subsection(Windows) + +Windows created by an X11 client are reparented within a larger window +owned by the window manager. In addition to the client's window, +the larger window is @i(decorated) by the window manager with +a border, a header, and two "gadgets". + +The border is used primarily for resizing -- the sides for +one-dimensional resizing, and the corners for two-dimensional resizing. +A window's border is shown in reverse image when that window is the +@b(focus) -- that is, when a key press would be transmitted to the +client which owns the window. The border is also used for initiating +constrained window moves. + +The border described is provided by the window manager, not the one that +X11 supports as part of the basic window structure. In fact the window +manager hides the client's border while it is running. + +The header can display the window class, the window name, and/or +the client machine on which the application is running. +It is also used for popping up a menu of window operations. +A window's header is shown in reverse image when that window is the +@b(listener) -- that is, when it is the last window which has received input. + +To the left of the header is the @b(zoom gadget) -- it is used for +"zooming" and "unzooming" windows, and for enlarging a window +to its desired or maximum size. When a window is unzoomed, the +gadget displays a "closed box", and when it is zoomed, it displays an +"open box". + +It is possible to tie listener to zoom -- that is, whenever a window becomes +the listener, it is automatically zoomed, and when it is no longer the +listener, it is automatically unzoomed. Windows so tied have a +horizontal line through their zoom gadget. + +To the right of the header is the @b(move gadget) -- it is used for +moving, relocating, and exchanging windows. + +Various options are available for setting the sizes of decorations, and +for determining, on a per-window basis, whether they should used. + +@subsection(Icons) + +When a window is closed, the window title is placed in a submenu +of the window manager menu, and an icon for the window may +optionally be displayed. + +Through the @c(WM_HINTS) standard property, X11 allows the client to +provide an icon pixmap which will be displayed when the window is +iconized. Through preference files, the user can specify an icon pixmap, +and this will override the one provided by the client. + +If an icon pixmap is not provided, a default icon +is created by the window manager containing the window class, +the icon name (or window name if no icon name is provided), and/or +the client machine. + +Preferences can designate the area of the screen to be used +for icons and can specify the layout of the icons within that area. + +X11 allows clients to indicate a client icon window in the @c(WM_HINTS) +structure -- that is, a window into which the client can draw, which acts +as an icon. Client icon windows are not supported in release 5.1. +However, if a client attempts to map a client icon, a default icon, or +one containing an icon pixmap (if provided) is used instead. + +Icons provide a limited input channel to the client. Key presses when +the icon window is the focus may optionally be routed to the client. In +addition, mouse button combinations that are not interpreted by the +window manager may also be routed to the the client, and may be used by +clients that wish to put up special icon menus or take other actions. + +A special icon, the Siemens RTL icon, may be included on the screen. +Through it, the main window manager menu may be popped up (though it may +also be popped up from the background or as a submenu of each window +menu). + +@section(Window Sizes and Positions) + +Windows have a @b(user minimum) size and a @b(user maximum) +size which may be set by the user. A window will be closed if less than +the minimum space is available for the window, and those operations which +enlarge a window (Enlarge, Expand, and Fill) will never enlarge a window +above its maximum size. + +Windows also have a @b(client minimum) and a @b(client +maximum) size -- set by a client using the X11 standard +property @c(WM_NORMAL_HINTS). +The client minimum and maximum are optionally enforced. If they are +enforced, the user minimum may not be set smaller than the client +minimum, and the user maximum may not be set larger than the client +maximum. + +Windows have a a @b(desired size). Whenever a window is +explicitly resized (by either the user or the client), its desired size +is set to this size. +Whenever possible, the window manager tries to ensure that a window is at +least as large as its desired size, enlarging a window to its desired +size when space becomes available. The desired size may also be set by a +client using @c(WM_NORMAL_HINTS). + +Users may leave windows in their normal state, or they may zoom them +(later unzooming them to restore them back to their normal state). +There are separate @b(desired) and @b(user minimum) sizes +for the normal and zoomed states. +The window manager ensures that the zoomed sizes are +always at least as large as their normal (unzoomed) counterparts. + +Windows have a @b(desired position) -- a location at which the window +manager tries to keep the window centered. +Each time the user manually changes the size or placement of a window, +its center becomes the new desired position. + +The client may change the desired position by specifying the +top-left of the window in @c(WM_NORMAL_HINTS). If a size is specified in +@c(WM_NORMAL_HINTS) as well, then the center of the rectangle determined +by that size and the top_left coordinates are taken to be the new desired +position. If no size is specified, then the current window size is used. + +Icon sizes are fixed, although, if the @b(icon_pixmap) is changed, the +icon size will change as well. + +Like windows, icons have a @b(desired position), and this changes when +the user moves the icon. The client can change the icon desired position +by specifying a new position using @c(WM_HINTS). + +@section(The Pointer Interface) + +@begin(quotation) +@b(NOTE:) +This manual descibes the default user interface based on a three button +mouse with the default meanings for mouse button usage. These defaults +may be changed. +A @b(Quick Reference Page) is available for this default interface, as +well as for the default interface provided for use of a one-button mouse. +See the section on Customizations and Startup. +@end(quotation) + +We have adopted a number of important principles that relate to use of the +pointer, which are described below. +We believe these contribute to the pleasant "feel" of the system. + +@subsection(Mouse Button Model) + +@subheading(Press-Move-Release vs Click-Move-Click) + +The press-move-release, and the click-move-click buttoning styles are +interchangeable. +For example, to begin moving a window, the user can hold the SHIFT key +down while using the middle button of a border. +@begin(itemize) +For the press-move-release style, the user can +@i(press) the middle button in the border, hold it down while +moving the mouse to another location, and then @i(release) the button. + +For the click-move-click style, +the user can @i(click) the middle button in the border, +move the mouse to another location, and then +@i(click) again. +@end(itemize) + +@subheading(Cancellation while Tracking) + +Every operation that involves mouse movement is cancellable at any +time by pressing the right mouse button. +For example, after pressing or clicking the middle button in the +border, the user can begin moving the +window around. +At any time, if the right button is pressed, +(whether the middle button is +being held down or was clicked), the move is cancelled, +and the pointer is (optionally) moved back to the position at +which the operation was started. + +@subheading(Redundancy of Buttons and Decorations) + +In the default interface, the left button is used for sizing windows, +the middle button for moving windows, and the right button for +popping up menus and cancelling operations. + +There is a redundant correspondence between the button used and the +decoration used. For example, the zoom gadget is used for sizing +operations, and is primarily used with the left button. +The move gadget is primarily used with the middle button, and +popping up menus is done in the header with the right button. + +This redundancy provides a certain amount of flexibility. +First, it means that a three button mouse is not necessary. +The decoration in which a button is pressed, +could, along with modifier keys (e.g. SHIFT and CTRL) be used to +distinguish operations. + +On the other hand, the decorations can be made optional. +In fact, windows are not required to have borders, headers or gadgets +(and can even have just the zoom but not the move gadget). +To support this, the bindings of operations to decorations are specified +by options and can be changed so that, for example, all +operations can be performed from the borders. + +@subheading(Consistent use of CTRL and SHIFT) + +CTRL and SHIFT are used as modifiers to distinguish similar sorts of +operations. For example, there are three kinds of move operations +obtained by using the middle button in the move gadget: @b(Relocate), +used for changing the size and location of a window, uses +no modifiers; @b(Move), for moving a window at its current size, requires +the SHIFT key; and @b(Exchange) requires the CTRL key. + +Use of both CTRL and SHIFT is reserved for special cases. +CTRL and SHIFT left or middle button in either gadget redraws the window. +CTRL and SHIFT right button (the "cancel" button) in either gadget +closes the window. + +@subsection(Feedback) + +@subheading(Watch Cursor) + +When the system is completing a user operation, or a client operation +that may affect screen layout, a watch cursor is +displayed, and input is queued. + +@subheading(Cursor shows State) + +In the midst of tracking a window operation, the cursor indicates both +the operation and the state. +For example, during the @b(Move) operation, the cursor changes to a hand. +There are some operations (such as @b(Relocate), discussed later) +where the state may change during the operation. +When the state changes, the cursor changes as well. + +@subheading(Cursor indicates Pointer Position) + +When the system is @i(not) in the midst of tracking a window operation, +the cursor changes to indicate the sort of decoration in which it is +positioned. +For instance, there are eight different sorts of border areas +(four sides and the four corners), and a different cursor for each one. +The cursor changes immediately when it moves from one to another. +Consequently, there is no need to guess (from the position alone) whether +the cursor is in the header or border, or in a side border vs. a corner +border. + +@subheading(Confirmation) + +Some irrevocable operations (e.g. deleting a window, saving the layout, +exiting from the window manager) require confirmation. The cursor +changes to a question mark in this case. To cancel the operation, the +right ( "cancel" ) button is used. The left or middle buttons confirm +the operation. + +@subheading(Rubber Banding during Tracking) + +Rubber-banding is used to provide feedback about the final window size +during resizing, moving, and opening a window. This is especially +important because of @b(gravity), which adjusts the edge of the +rubber-band when it is near the edge of another window. + +@subheading(Warping) + +After an operation is completed, the pointer (optionally) is warped to a +position where the operation can be easily modified. +For example, after moving a window, the pointer is placed in the move +gadget so that it can be moved again. + +@subsection(Focus and Listener) + +Our window manager distinguishes between the @b(focus) -- the window +to which a keypress would currently be sent, and the @b(listener) -- the +window to which input was last directed. + +@subheading(Focus Follows Pointer) + +When the option @b(focusFollowsPointer) is on, a "Real-Estate-Driven" +interface is used -- the focus is the +window which contains the pointer. However, if the client has +set the input field in @c(WM_HINTS) for that window to @i(false), there will +be no focus when the pointer is in the window; the client must +explicitly set the input focus to obtain keyboard input. + +When the option @b(focusFollowsPointer) is off, the interface changes +to "Click-To-Type" -- the user must click a +mouse button in the window in order to change the focus (and since the +click is sent to the client, the listener changes as well). If the +client has set the input field in @c(WM_HINTS) for that window to @i(false), +then the click is reported to the client, but the current focus and +listener are simply deselected; as described above, the client must +explicitly set the input focus to obtain keyboard input. + +@subheading(Preventing Client Side Effects to an Active Listener) + +When the listener window is also the focus, we call it an @b(active +listener). Since input has just been sent to it and the pointer remains +within it, it is actively in use, and the window manager treats such +windows specially for the reason described below. + +X11 clients can open, move or resize a window independently +of the user. +Such actions may be unpredictable -- they may happen at any time -- and +they may affect other windows, causing them to shrink or close. +Such asynchronous unpredictable actions can be especially annoying when +they affect the window in which the user is currently working. + +Consequently, as an option, it is possible to prevent a listener from being +closed, and to prevent an active listener from being resized or moved as +a side effect of an operation performed by a client. + +@subheading(Listener Tied To Zoom) + +Some overlapping window managers automatically raise a window when it +becomes the listener, on the belief that a window in use should be +completely visible. +We allow a window to be zoomed when it becomes the listener for a similar +reason. + +In our tiled window manager, a window may be shrunk as a result of side +effects caused by operations on other windows. When it becomes the +listener, the user may desire that it be zoomed to an effective working +size. When the window is no longer the listener, it may be allowed to be +unzoomed. This behavior ensues if the window option +@b(listenerTiedToZoom) is on. + +If the window option @b(zoomTiedToDesire) is set, then a window's zoom +desire size is taken to be it's normal desire size -- that is, when the +window is zoomed, it is zoomed to its normal desired size. + +@subheading(Preventing a Change of Listener) + +Users may wish to direct input to another window without +changing the listener. There are two reasons why this is useful: + +@begin(Enumerate) +The listener is generally prevented from being closed as a side effect +of an operation by a client. The user may want to retain this property +of the current listener while temporarily typing into another window. + +Even though the user has tied a window's listener to zoom, he may only need +to temporarily type something in it (e.g. start a compilation) and there +is no reason to zoom it (and correspondingly unzoom the current listener if +it is tied as well). +@end(Enumerate) + +If @b(focusFollowsPointer) is on, the user may simply move the +pointer to the @i(header) of the other window and type. +Input is directed to that window's client. +However, the original listener remains unchanged, and +is still prevented from being closed (but not moved or resized) as a +side effect of a client operation. +The temporary listener is prevented +from being closed, moved or resized while it is the focus. + +If @b(focusFollowsPointer) is off, the user may obtain the same +result by clicking in the header of the other window. To return the +focus to the original listener, the user just leaves the temporary listener +window. + +@section(Manager Menu) + +Pressing or clicking the right button in the background or in the RTL +icon will pop up the main manager menu. This menu also appears as a +submenu of the window menu. It contains the following entries: + +@begin(Enumerate) +@b2(Redraw All) -- Redraws the screen + +@b2(Lock Screen) -- Locks the screen until the user types a password. + +@begin(multiple) +@b2(Closed Windows) -- Pops up a submenu of all closed windows. +Selecting one opens it. +Depending upon an option, the user either will +be asked to place it, or a place will be found automatically for it. + +If the user is asked to place it, the cursor changes to a dotted box and +the corresponding icon (if it is open) will be highlighted. +The user can then move the pointer into the icon (the cursor will change +to a draped box) and click to have +the window opened automatically at a position +selected by the window manager. + +Alternately, the user can leave the pointer outside of the icon. +Double clicking will place the window with its center at (or near) the +pointer. + +However, just pressing (or single clicking) changes the cursor again, to +an "anchored arrow" signifying that the user is to size the window. +The current pointer location becomes the top left corner of the window. +The user can then move the pointer to specify the bottom right corner. + +Releasing (or clicking again) finishes the sizing and places the +window at or near the size and position specified. The +window's desired size is set to the size indicated by the user unless the +CTRL button is depressed. +@end(Multiple) + +@b2(Tools) -- Pops up a submenu of applications. +Clicking on one of these runs the corresponding application. +The section on customization describes how the Tools submenu is +specified. + +@b2(Prorate) -- Fairly reallocates space to the windows based upon their +minimum and desired sizes. + +@b2(Fill) -- Allows each window to grow to its maximum size in an attempt +to use up screen space. + +@b2(Undo) -- Undoes the last operation by the user which changed the +layout of the screen. + +@begin(Multiple) +@b2(Repopulate) -- Reopens closed windows. A submenu indicates three +kinds of repopulation: + +@begin(Itemize, spread 0, above 0, group) + +@b(Repopulate Auto) -- Attempts to reopen windows that were automatically +closed. + +@b(Repopulate All) -- Attempts to reopen all closed windows. + +@b(Repopulate Last) -- Attempts to reopen windows which were +automatically closed during the previous window operation. +@end(Itemize) +@end(Multiple) + +@b2(Read Profile) -- Rereads a user profile and updates option +settings in existing windows corresponding to options that have changed +in the profile. See the Customization and Options sections for more +information. + +@begin(Multiple) +@b2(Finish Layout) or @b(Save Layout) -- When the window manager is +initially started up, the windows already on the screen are matched +against ones described in the @b(.rtl.layout) file; when one matches, the +window's size, position, state, and options are restored from the +information associated with window in the saved layout file. +The same is done even after the window manager is already running and a +client initially maps a new window or icon. + +Until every saved window in +@b(.rtl.layout) is matched by an opened window or icon, +certain automatic strategies used by the window manager to balance screen +space are disabled in order to allow the saved layout to be precisely +restored. + +In the meantime, "@b(Finish Layout)" appears in the window manager menu. +If an expected window does not open for some reason (host down, +program bombs, etc.), the user can tell the window manager to @i(treat) +the layout as finished by selecting "@b(Finish Layout)". + +Alternately, by specifying the flag "-f" when the @b(rtl) is +started, the windows on the screen when @b(rtl) is started are laid out, +but then, the layout is @i(treated) as finished and "@b(Finish Layout)" +does not appear. If you specify the flag "-i", then the layout file +is ignored entirely. + +When "@b(Finish Layout)" does not appear, "@b(Save Layout)" appears in +its place. +Selecting "@b(Save Layout)" saves information about all open and closed +windows and their icons in @b(.rtl.layout). +@end(Multiple) + +@b2(Notify All) -- Send a @c(BANG!) message to all windows that accept the +message. +Not implemented in Release 5.1. + +@b2(Soft Kill All) -- If a client has a window that accepts a @c(BANG!) +message, the message is sent to that window. +When each such client has updated the @c(WM_COMMAND) property of its +accepting window, the wm kills the client. All other clients (all +clients in release 5.1) are killed immediately. + +@b2(Hard Exit) -- Kills all clients and exits the window manager. + +@b2(Detach Manager) -- Opens all client windows and exits the +window manager. +@end(Enumerate) + +@section(Window Menu) + +Pressing or clicking the right button in the header or border of a window +pops up a menu of entries which apply to that window. +Most of the window operations which can be invoked through the menu can +also be invoked, as indicated in parentheses, by buttoning the mouse in a +border or gadget. + +@begin(Enumerate) +@b2(Title) -- Moving the pointer to the right of the menu entry displays +the full window title (in case the window header is too small to fully +display it). + +@b2(Redraw) (@c(CTRL SHIFT LEFT/MIDDLE BUTTON in GADGET)) -- Redraws the +window. + +@b2(Manager) -- Pops up the main window manager menu. + +@b2(Close) (@c(CTRL SHIFT RIGHT BUTTON in GADGET)) -- Closes the window. + +@b2(Group Close) -- If the window is part of a window group, hides all +windows and icons in the group and opens an icon for the group leader. +If not part of a group, acts like @b(Close). + +@begin(multiple) +@b2(Resize) (@c(LEFT BUTTON in BORDER)) -- For resizing the window. + +The user moves the pointer on or near the appropriate place on the window +border to determine the side or corner to be resized. The cursor changes +to indicate which one would be selected. + +The user then presses or clicks (with any but the right button) to begin +resizing. If the button is clicked with SHIFT depressed, then gravity is +disabled (though if gravity is currently disabled by an option setting, +SHIFT enables it). + +The mouse is then tracked by a window outline, which will be bounded by +the client minimum and client maximum size if these are enforced. +Depending upon option settings, the window outline may also be bounded by +the user minimum and maximum size. +If they are not so bounded, and the user resizes the window above the +user maximum or below the user minimum size, the user maximum or minimum +size will be reset. + +Releasing or re-clicking the mouse button finishes the resize. The +window's desired size is set to the size indicated by the user unless the +CTRL button is depressed. +@end(multiple) + +@begin(Multiple) +@b2(Relocate) (@c(MIDDLE BUTTON in MOVE-GADGET)) -- For relocating the +window to a new location possibly with a new size. + +The cursor changes to a dotted box and is warped to the center of the +window. The user then can move the pointer to another location. + +Double clicking will relocate the window with its center at (or near) the +pointer. + +However, just pressing (or single clicking) changes the cursor again, to +an "anchored arrow" signifying that the user is to size the window. +The current pointer location becomes the top left corner of the window. +The user can then move the pointer to specify the bottom right corner. + +Releasing (or clicking again) finishes the sizing and relocates the +window at or near the size and position specified. The +window's desired size is set to the size indicated by the user unless the +CTRL button is depressed. +@end(Multiple) + +@begin(Multiple) +@b2(Move) (@c(SHIFT MIDDLE BUTTON in MOVE-GADGET)) -- For moving the +window at its current size to a new location. The cursor changes to a +hand and is warped to the center of the window. The user then can move +the pointer to another location. + +Clicking finishes the move and places the window exactly where specified. + +(@c(MIDDLE BUTTON in BORDER)) also initiates a move. In the side border, +the move is constrained in one dimension. If the @c(SHIFT) key is held +down as well, gravity is toggled during the move. +@end(Multiple) + +@begin(Multiple) +@b2(Exchange) (@c(CTRL MIDDLE BUTTON in MOVE-GADGET)) -- Used for +exchanging the location of two windows, or of a window and an icon. The +cursor changes to a pair of opposite pointing arrows. The user can then +move the pointer to an icon or another window. + +Clicking in a window exchanges the locations of the two windows. +Clicking in an icon closes the open window and opens the iconized +window in its place. +@end(Multiple) + +@b2(Expand) -- Expands the window in the available white space +surrounding it (up to its maximum size), without affecting any other +windows. Sets the window's desired size to the resulting size. + +@b2(Desire) (@c(LEFT BUTTON in ZOOM-GADGET)) -- Enlarges the window +up to its desired size, by shrinking (but not closing) the other windows +on the screen. + +@b2(Shrink) -- Shrinks the window to its minimum size. The desired size +is not changed though, so on subsequent window operations, the window +will grow back to its desired size. + +@b2(Enlarge) (@c(CTRL LEFT BUTTON in ZOOM-GADGET)) -- Makes the window as +large as possible up to its maximum size, by shrinking (but not closing) +the other windows on the screen. + +@b2(Zoom) or @b(Unzoom) (@c(SHIFT LEFT BUTTON in ZOOM-GADGET)) -- Zooms +or unzooms the window. + +@b2(Set Size) -- A submenu for setting the various sizes associated with +the window (Normal Min, Normal Desired, Zoom Min, Zoom Desired, +Max). The details are the same as for Resize. + +@begin(multiple) +@b2(Options) -- A submenu for setting and unsetting various window +options. The option is set if it is checked in the menu. +Selecting the entry toggles the setting. + +@begin(Itemize, spread 0, above 0, group) + +@b2(Locked Open) -- prevents the window from being automatically closed. + +@b2(Fixed Width) -- prevents the window's width from being automatically +changed. + +@b2(Fixed Height) -- prevents the window's height from being +automatically changed. + +@b2(Fixed Edges) -- prevents the window from being moved or resized +automatically. + +@b2(Listener Tied To Zoom) -- Zooms (unzooms) the window when it becomes +(no longer is) the listener. + +@b2(Zoom Tied To Desire) -- Uses the normal desired size in place of the +zoom desire size. + +@end(Itemize) +@end(multiple) + +@b2(Notify) -- Sends the @c(BANG!) message to the window if it accepts it. +Not implemented in release 5.1. + +@b2(Soft Kill) -- If the window accepts the @c(BANG!) message, it is +sent to it. When the client has updated the @c(WM_COMMAND) +property of its accepting window, the wm kills the client. +If the window does not accept the @c(BANG!) message, the client is +immediately killed. In release 5.1, simply kills the client. + +@b2(Hard Kill) -- Kills the client. +@end(Enumerate) + +@section(Icon Menu) + +The icon menu is very similar to the window menu. It is popped up by +pressing the right button inside the icon. + +@begin(Enumerate) +@b2(Title) -- Displays the title. + +@b2(Redraw) (@c(CTRL SHIFT LEFT/MIDDLE BUTTON)) -- Redraws the icon. + +@b2(Manager) -- Pops up the main window manager menu. + +@begin(Multiple) +@b2(Open) (@c(LEFT BUTTON)) -- If the icon is associated with a closed +group, restores the windows and icons of that group. + +If the icon corresponds to a single window, then Open is used for opening +that window: + +The cursor changes to a draped box. + +The user can leave the pointer in the +icon (or move it there if the menu selection left it outside the icon), +and click, and the window will be opened automatically at a position +selected by the window manager. + +Or, the user can move the pointer outside of the icon. It will change to +a dotted box and the user can then specify the size and potentially the +location just as for a Relocate. +@end(Multiple) + +@b2(Move) (@c(MIDDLE BUTTON)) -- For moving the icon to a new location. + +@b2(Exchange) (@c(CTRL MIDDLE BUTTON)) -- Used for exchanging the +location of two icons, or of a window and an icon. Exchanging two icons +exchanges their positions. Exchanging an icon and a window closes the +open window and opens the iconized window in its place. + +@b2(Options) -- The submenu for setting and unsetting various window +options. + +@b2(Notify) -- Sends the @c(BANG!) message to the window if it accepts it. +Not implemented in release 5.1. + +@b2(Soft Kill) (@c(CTRL SHIFT RIGHT BUTTON)) -- If the window accepts +the @c(BANG!) message, it is sent to it. When the client has updated the +@c(WM_COMMAND) property of its accepting window, the wm kills the client. +If the window does not accept the @c(BANG!) message, the client is +immediately killed. In release 5.1, simply kills the client. + +@b2(Hard Kill) -- Kills the client. +@end(Enumerate) + +@section(Customization and Startup) + +The window manager can be customized via files in three ways: by setting +options in preference files, by specifying the tools to appear in the +tools submenu, and by arranging for applications to be started up +automatically when the window manager is started. + +All files opened by the window manager are looked up in the +directory named in the @b(RTLENV) environment variable, and if that +fails, in the user's home directory. + +Copies of the files used by the developers may be found in the +subdirectory @b(custom) in the distribution. + +@subsection(Startup) + +If the "-s" flag is specified when the window manager is started up, +the file @b(.rtl.startup) is executed. +Typically it contains a shell file which starts up various applications. + +If the "-l" flag is specified when starting the window manager, and a +window saved in the @b(.rtl.layout) file does not appear on the screen, +then a process is started which would open that window. Both the host +and the command line are obtained from the layout file; when the layout +file was saved, these were obtained respectively from the +@c(WM_CLIENT_MACHINE) and @c(WM_COMMAND) properties of the window. +Not implemented in release 5.1. + +If the flag "-f" is specified when the window manager is started, then +the layout is treated as finished. However, if the "-l" flag is +specified as well, the commands associated with missing windows are still +executed. + +@subsection(Tools) + +Each tool is registered in the file @b(.rtl.tools) as a pair of lines. +The first line is the name of the tool as it should appear in the tools +submenu. +The second line is a command to be executed when the menu entry is +selected. + +@subsection(Preference Files) + +Options that control the behavior of individual windows, or of the window +manager as a whole, are obtained from a number of preference files, +primarily ".Xdefaults", and ".rtl.preferences". Release 5.1 reads these +files directly, and does not use the resource database described in the +Xlib manual. + +Options that control the behavior of windows of a specified name or class +are additionally obtained from the files @b(..preferences) +and @b(..preferences), where "" and "" refer to the +resource name and resource class of the window (specified by the +@c(WM_CLASS) property). + +Preferences used by window manager take the form +@begin(verbatim) + Wm.option: value +@r(or) + Wm..option: value +@r(or) + Wm..option: value +@r(or) + Wm*option: value +@end(verbatim) + +@b(Wm) is the class for all window managers. Instead of @b(Wm), @b(rtl), +the name of our window manager, can be used instead. + +Some options are global and refer to the window manager as a whole. +These use the form "@b(Wm.option)". + +Others are applied on a per-window basis. + +Per-window options prefixed by @b(Wm) and a @i(class) +are used to determine the the value of that option for all windows of +that @i(resource-class). + +Per-window options prefixed by @b(Wm) and a @i(name) are used to +determine the the value of that option for all windows of that +@i(resource-name), and override the +@i(class)-prefixed option value for that window if specified. + +Options prefixed by @b(Wm*) are used to set default option values for +all windows. + +The @i(resource-class) and @i(resource-name) of a window come from its +@c(WM_CLASS) property. + +@begin(quotation) +@b(NOTE:) Some older applications do not set a window's @c(WM_CLASS). +In that case, its resource-class is taken to be the same as its window +name (i.e @c(WM_NAME)). +@end(quotation) + +@begin(quotation) +@b(NOTE:) Some applications incorrectly use strings for the resource name +and resource class that contain spaces. These cannot be used to +obtain options. +@end(quotation) + +The order of "@b(Wm)"-, class-, and name-prefixed options in the +@b(.rtl.preferences) file is immaterial. + +Users may change the any of the preference files and reread them by +selecting "Preferences" from the "Read Profile" submenu of the main +manager menu. +Any changes in the file will be immediately reflected +in all windows -- open or closed. + +The file @b(.../src/defaults.i) contains the default settings for all +options. + +Certain options may be changed on a per-window basis through the +"Options" entry of each window menu. The submenu entries and the options +affected are + +@begin(verbatim, group, font smallbodyfont) + Menu Entry Option + ---------- ------ + + Locked Open lockedOpen + Fixed Width fixedWidth + Fixed Height fixedHeight + Fixed Edges fixedCompletely + Listener Tied To Zoom listenerTiedToZoom + Zoom Tied To Desire zoomTiedToDesire +@end(verbatim) + +When these options are changed explicitly through the "Options" submenu, +changes made to them via rereading preference files will +have no effect. The current values of these options are saved for each +window in the @b(.rtl.layout) file and are restored as each window is +reopened when the window manager is restarted. + +@subsection(Profile Menu) + +The file @b(.rtl.profiles) menu is used for adding additional entries +to the "Read Profile" submenu. + +Each profile is registered in the file @b(.rtl.profiles) as a pair of +lines. +The first line is the name of the profile as it should appear in the +"Read Profile" submenu. +The second line contains a list of preference files (separated by +blanks) to be read when the menu entry is selected. + +These named preference files, like all other customization files opened +by the window manager, are looked up in the directory named in the +@b(RTLENV) environment variable, and if that fails, in the user's home +directory. Support is also provided for files named by paths beginning +with "/" (absolute path names) and with "~" (paths rooted in a user's +home directory). + +When an entry is selected from the "Read Profile" submenu, the +standard preference files are read first, before the files +associated with the menu entry. +Thus the additional preference files can be used to add or override +options specified in the standard preference files. + +There are a number of additional preference files included with the +distribution. These illustrate many of the issues described in the +section below on "Automatic Strategies". + +@subsection(Button Semantics) + +The file @b(.../src/interf_init.c) in the distribution determines the +association of mouse buttons / modifier combinations (e.g. CTRL Middle +Button) with a particular window manager action. + +Part of the file @b(.../src/defaults.i) (look for "Global Interface +Options") determines whether a particular mouse +button / modifier combination takes effect in a specified region +(e.g. header, border, gadget, etc.). + +By changing these files and recompiling, these associations can be +changed. + +In particular, the files @b(.../src/interf_init_one.c) and +@b(.../src/defaults_one.i) in the distribution contain the +default settings for a one-button mouse. + +@section(Automatic Strategies) + +The Siemens RTL Tiled Window Manager can automatically adjust the size +and position of windows to balance competing demands for screen space, or +it can be completely prevented from doing so. + +In the simplest case, windows are placed exactly at the size and location +that the user specifies. Via options, it is possible to prevent windows +from ever being automatically shrunk or closed, and to ensure that +windows opened automatically are reopened exactly at their previous +location. If a window cannot be opened, moved or resized exactly as +specified without causing side effects, the window manager will refuse to +do the operation. + +The options permit considerably more flexibility. There are large number +of options that control automatic behavior and they are described in +detail in the "Options" section. In this section, we attempt to describe +some of the more common changes in behavior that our users have explored. + +@subsection(Default Automatic Behavior) + +The default option settings, those in effect if no preference files are +read at all, provide what we consider the minimum automatic behavior that +a user would find acceptable: + +@begin(itemize) +Windows may automatically be shrunk and closed (except for an active +listener as a result of a client's action). This may be prevented on a +per-window basis as a result of setting "Locked Open", "Fixed Width", +Fixed Height", or "Fixed Edges" in the "Options" submenu of a window +menu. + +When space is available, windows which were shrunk regrow towards their +desired sizes, though they may not necessarily be located at their exact +original position. + +When the window manager automatically places a window, an attempt is made +to place it at its previous location, even if other windows have to be +shrunk or closed. If this fails, however, the window is opened at the +best location nearby. + +When a window is unzoomed, an attempt is made to open (or +"@b(repopulate)") windows which were automatically closed +since the window was zoomed, but only at their previous positions, and +only if no other windows will be shrunk or closed. +A similar attempt is made when a window is explicitly closed -- to +repopulate windows automatically closed since the window was +opened. + +@end(itemize) + +@subsection(Neighborhood Placement) + +When a window is opened or moved, it may not be possible to place +it exactly at the size and location specified. +Options are available which allow it to be placed nearby its specified +location and/or shrunk below its desired size. + +By nearby, we mean within a "neighborhood" of the specified location. +Two kinds of neighborhoods are supported: + +@begin(Itemize,group) +A window is placed within a @b(center neighborhood) +if the window as actually placed contains the center of the window as it +was specified. + +A window is placed within an @b(edge neighborhood) if the window as +actually placed overlaps the window as it was specified. +@end(Itemize) + +Pure neighborhoods, as defined above, are somewhat excessive for larger +windows. For example, the edge neighborhood of a window 1/3 the height +and 1/3 the width of the screen which is placed at the center of the +screen consists of the entire screen -- that is, it could be placed +anywhere. + +Therefore, we include a @b(neighborhoodShrinkFactor) option which +shrinks neighborhoods relative to the window size. + +A number of @b(try..) options determine whether neighborhoods are to be +used at all. + +An excessively large number of @b(prefer...) options determine +whether neighborhoods are to used in preference to closing or shrinking +adjacent windowa, or shrinking the window being explicitly affected +below its desired size. + +@subsection(Resize) + +When the user resizes a window, the operation fails by default if the +size specified cannot be attained. An option permits the window to be +resized to a smaller size, but this is not always desired. + +To avoid a failed resize, or simply to prevent other windows from being +shrunk or closed, an option permits a resized window to "slide". +For example, if the user attempts to enlarge a window by resizing its +left edge, and a window is on its left, but there is space on its right, +the window will grow to the right instead of to the left. + +It is also possible to set options that will move a window being resized +if the resize fails or would close or shrink other windows. + +@subsection(Listener Tied to Zoom) + +When a window has the option @b(listenerTiedToZoom) set, it will be +enlarged to its zoom size when it becomes the listener. +Depending on various other options, when it is no longer the listener, it +may shrink to its unzoomed size, or just shrink enough to allow adjacent +window to grow back towards their desired size. +In particular, if another window becomes the listener, it will shrink to +provide space for the new listener to zoom. + +Some users prefer all windows to have @b(listenerTiedToZoom) set. +The effect is similar to overlapping window systems that raise +a window when it becomes the listener, and that allow the window to +be covered again when another window becomes the listener. + +Some users prefer the window option @b(zoomTiedToDesire) to be set as +well, so that when a window becomes the listener, it is enlarged to +its current desired size, rather than a separate zoom size. + +When a window is zoomed, it may become so large that other windows may +close. The option @b(automaticRepopulateOnAutoUnzoom) reopens them +if possible, providing the illusion that they were hidden by the zoomed +window, and were then exposed when the window was unzoomed. + +@subsection(Moving Conflicting Windows) + +When a window is being opened, resized, or moved, the window manager +appears to move other windows, which occupy the needed space, +out of the way. +This appears to happen for two reasons. + +@begin(Itemize) +A window in the way is actually shrunk, say on its left, to make room, +and then (because @b(autoDesiredEnlarge) is set), it grows towards its +right (where there is blank space) back to its desired size. Thus it +appears to move to the right. + +@begin(multiple) +A window in the way is actually closed. However, the option +@b(autoRepoulateLast) is set, and this tries to reopen windows closed +during an operation. +To achieve the effect of moving the window nearby, either +the option +@b(preferPreviousPositionOnAutoRepopulate) or the option +@b(preferPreviousPosition) +should be set. +This will attempt to reopen the window as near as possible to its +previous location. + +Beware: Neither the option @b(requirePreviousPosition) nor the option +@b(requirePreviousPositionOnAutoRepopulate) should be set in +conjunction with @b(autoRepoulateLast), since they will force the +window to be opened exactly at its previous location, and this will +naturally fail. +@end(multiple) +@end(Itemize) + +@subsection(Automatic Unzooming) + +When a window is being opened, resized, or moved, one or more of the +windows in the way may be zoomed. Two options determine whether the +window manager should automatically unzoom the window rather than simply +closing it or refusing to do the operation -- @b(preferUnzoomToClose) +and @b(unzoomTiedListenerIfNecessary). + +The option @b(preferUnzoomToClose) will unzoom a window rather than +closing it. + +However, the listener window is treated specially. For various reasons, the +listener may not be permitted to close. In particular, the default setting +for the option @b(allowListenerToCloseByClient) prevents clients +from performing an operation (like opening a window) that would allow the +listener to be closed. To allow the listener to be unzoomed in this +situation, the option @b(unzoomTiedListenerIfNecessary) should be +set. + +@subsection(Automatic Prorating) + +The option @b(autoProrate) fairly reallocates screen space after +each window operation, based on the minimum and desired size of each +window. This may cause windows to shrink. However, the previous two +windows that had their desired sizes reset will not be shrunk below their +desired sizes. + +If the option @b(biasedAutoProrate) is additionally set, then +after each operation, it gives as much space as possible to +the listener without closing other windows on the screen. + +To both make windows as large as possible when they become the listener, +and ensure that the window at least attains its zoom minimum, +the options +@b(autoProrate), @b(biasedAutoProrate) and @b(listenerTiedToZoom) +can all be set. + +@section(Standard X11 Properties) + +Release 5.1 of the Siemens RTL Tiled Window Manager supports the standard +properties described in the Inter Client Communications Conventions +Manual as released on the V11R2 tape. +The properties and their uses are described below. + +@begin(enumerate) + +@begin(Multiple) +@c(WM_TRANSIENT_FOR)@* + +Windows which are transient pop-ups and have extremely short lifetimes +may have the @b(override-redirect) attribute set so the window manager +will not be involved. However, if the transient window has a long enough +lifetime that its size or position may need to be manipulated by the +user, @b(override-redirect) should not be used. Instead, the window's +@c(WM_TRANSIENT_FOR) property should be set to refer to the window with +which it is associated. The Siemens RTL Tiled Window Manager will not +tile such a window -- it will sit above the tiled desktop. +It has no decorations and can be moved, mapped and unmapped only by the +client. + +@end(Multiple) + +@begin(Multiple) +@c(WM_CLASS)@* + +@c(WM_CLASS) is a structure containing two strings: @b(res_name) and +@b(res_class). + +The @b(res_class) field identifues the application. +The @b(res_name) field is a string that more specifically identifies the +instance of the application. + +They are used in the @b(.rtl.layout) file for distinguishing windows on +startup, and for setting the window options from preferences files. + +Both optionally appear in the window header and in icons. +@end(Multiple) + +@begin(Multiple) +@c(WM_COMMAND)@* + +Holds the command that would be used to restart the application -- +typically the command used to run the application initially. +The window manager saves it in the layout file for identifying a window, +and for restarting the application. + +If the "-l" flag is specified when starting the window manager, and a +window saved in the @b(.rtl.layout) file does not appear on the screen, +then its corresponding command is executed (not in Release 5.1). + +@end(Multiple) + +@begin(Multiple) +@c(WM_CLIENT_MACHINE)@* + +The machine on which the application is running. +Typically set once, but +may be changed by applications which migrate from machine to machine. +It optionally appears in the window header and icon, and is used in the +layout file for identifying windows. +@end(Multiple) + +@begin(Multiple) +@c(WM_NAME)@* + +Information about the application or its current state +which is optionally placed in the window header. It also is used +in an icon when @c(WM_ICON_NAME) is not provided. +@end(Multiple) + + +@begin(Multiple) +@c(WM_ICON_NAME)@* + +Information about the application or its current state +which is optionally placed in an icon. +@end(Multiple) + +@begin(Multiple) +@c(WM_NORMAL_HINTS)@* + +In release 5.1, only the size, position, minimum, and maximum sizes are +used. +@end(Multiple) + +@begin(Multiple) +@c(WM_HINTS)@* + +The @b(input) field determines whether the window manager or the client is +responsible for setting the input focus. See the section on "Focus +Follows Pointer". + +The @b(initial_state) is used to initially determine the display state of +a window when it is first mapped by +the client, and can later be used to change the display state. See the +section on "Client Placement". + +The @b(icon_pixmap) is used to determine the contents of an icon. +If no icon_pixmap is provided, a default icon is built from @c(WM_CLASS), +@c(WM_ICON_NAME) (or @c(WM_NAME)) and/or @c(WM_CLIENT_MACHINE). + +The client may provide an @b(icon_window), but release 5.1 of the window +manager will not map it. An attempt to map it will cause the icon pixmap +(or default icon) to be mapped instead. + +The @b(icon_mask) is ignored in release 5.1. + +The @b(window_group) field specifies a "group leader". All windows +with the same group leader are part of the same group. The user can +close the whole group, and the icon for the group ledaer is displayed. +@end(Multiple) + +@end(enumerate) + +@section(Client Placement) + +A client can affect the size, location, and presence of a tiled window +by setting properties (particularly @c(WM_NORMAL_HINTS) and +@c(WM_HINTS)), by mapping or +unmapping a window, by attempting to map a client icon, or by attempting +to reconfigure a window. These are discussed below. + +@subsection(Initial Window and Icon Mapping) + +When a window is newly created, it or its icon will eventually be +opened. +An attempt to open the window may fail if there is not enough room on the +screen for it, and if windows in the way cannot be shrunk or closed. +In that case, the window's title is placed in the menu of closed windows, +and if icons are to be used, the icon is opened. +If the icon cannot be opened immediately (due to lack of available +space), it will be subsequently opened at the earliest opportunity. + +A window or icon initially will be opened when one of the following two +events occurs: + +@begin(enumerate) + +@begin(Multiple) +The client maps the window: +@begin(Itemize) +If the window matches one in the saved layout file (@b(.rtl.layout)): +Either the window or icon will be open based on which was open when the +layout was saved. If the window is opened, it will be zoomed if it +was when the layout was saved. + +@begin(multiple) +If the window does not match one in the saved layout file (or there +is no saved layout file), and @c(WM_HINTS) indicates an @b(initial state) +of + +@begin(itemize,group,spread 0) +Ignore or Inactive: Neither window nor icon is opened. + +Iconic: The icon is opened if icons are in use. + +ClientIcon or Normal: The window is opened unzoomed. + +DontCare, or the @b(initial state) was not set: The window is opened if +the window's option @b(autoOpenOnCreate) is set; else, the icon is +opened. +@end(Itemize) +@end(multiple) +@end(Itemize) +@end(Multiple) + +@begin(Multiple) +The client maps its client icon window: +@begin(Itemize) +If the window matches one in the saved layout file (@b(.rtl.layout)): +Either the window or icon will be open based on which was open when the +layout was saved. If the window is opened, it will be zoomed if it +was when the layout was saved. + +@begin(multiple) +If the window does not match one in the saved layout file (or there +is no saved layout file), and @c(WM_HINTS) indicates an @b(initial state) +of + +@begin(itemize,group,spread 0) +Ignore or Inactive: Neither window or icon is opened. + +Iconic or Normal: The icon is opened if icons are in use. + +ClientIcon: The window is opened unzoomed. + +DontCare, or the @b(initial state) was not set: The window is opened if +the window's option @b(autoOpenOnCreate) is set; else, the icon is +opened. +@end(Itemize) +@end(multiple) +@end(Itemize) +@end(Multiple) + +@end(Enumerate) + +@subsection(Initial Size and Placement) + +A window's initial size is determined by the size specified +when the window was created. +This may be overridden by a size specified by a client in setting +@c(WM_NORMAL_HINTS). +This may be overridden by the +@c(DESIRED_HEIGHT) and/or @c(DESIRED_WIDTH) preferences. + +A window's initial position is determined by the size specified +when the window was created. +This may be overridden by a position specified by a client in setting +@c(WM_NORMAL_HINTS). + +However, when a window matches one in the saved layout file, +both its size and position are taken from the layout +file. + +When a window is to be initially mapped, it will be automatically placed +by the window manager under the following conditions: +@begin(itemize) +The size and position are both specified via @c(WM_NORMAL_HINTS), +and none of the options @b(ignoreSizeHints), @b(ignoreInitialSizeHints), +@b(ignorePositionHints), or @b(ignoreInitialPositionHints) are set. + +The window option @b(autoPlaceOnClientOpen) is set, the size has +been specified, and neither @b(ignoreSizeHints) or +@b(ignoreInitialSizeHints) has been set. + +The window option @b(autoPlaceOnClientOpen) is set, and the global +option @b(autoPlaceOnUnsizedOpen) is set. +@end(itemize) + +If none of these conditions holds, the user is asked to place the window +manually. This is indicated by a change in the cursor. + +When the window is being automatically placed and its position has +been provided and the window option +@b(requirePreviousPosition) is set, it will be opened exactly where +specified; if it cannot be opened there, it will be iconized instead. +If @b(preferPreviousPosition) is set instead, it will be opened as +close as posssible to the provided position. +Otherwise, the window is opened at the "best" possible location -- a +place where it interferes least with other windows currently on the +screen. + +When the window manager is initially started, client windows and icons +may already be open. These are treated as if they were explicitly mapped +by the client after the window manager started up. However, if such a +window does not match a window saved in the layout file, it is always +placed as close as possible to its current size and position. + +@subsection(Subsequent Window and Icon Mapping and Unmapping) + +A later attempt by a client to map a window has the following +effect depending upon the value of @c(WM_HINTS).@b(initial_state). + +@begin(itemize,group,spread 0) +Ignore, Inactive, Iconic, or ClientIcon: No effect + +Normal, DontCare, or @b(initial_state) was not set: The window is +opened at or near its previous location depending on the +options @b(requirePreviousPosition) or @b(preferPreviousPosition). +If neither is set, the "best" location is found. +If no location can be found, it remains iconized. +An attempt is always made to map it at its desired size. +The window will be zoomed if it was zoomed when it was last open. +@end(Itemize) + +When a client unmaps its window, this has the following effect depending +upon @c(WM_HINTS).@b(initial_state). + +@begin(itemize,group,spread 0) +Ignore, Inactive or Iconic: No effect + +ClientIcon: Remap the window. + +Normal, DontCare, or @b(initial_state) was not set: The +pixmap or default icon is opened. +@end(Itemize) + +Attempt by a client to map its client icon window (other than the +first time) has the following effect depending upon the value of +@c(WM_HINTS).@b(initial_state). + +@begin(itemize,group,spread 0) +Ignore, Inactive, Iconic, or ClientIcon: No effect + +Normal, DontCare, or @b(initial_state) was not set: The +pixmap or default icon is opened. +@end(Itemize) + +@subsection(Configure) + +When a client changes the size or position of a tiled window via +XConfigureWindow, the window manager attempts to comply. +If just the size has been changed, the window is enlarged or shrunk. +If the position has been changed, the window is moved as close as +possible to the specified location. + +An attempt to change the border width will be ignored; the window manager +forces the border width to zero. + +Attempts to change the stacking order will also be ignored; tiled windows +do not overlap and are all on the same level. + +Note that transient windows are not tiled, and attempts to reconfigure +them will will succeed as requested, except that attempting to +place a transient window below a tiled window will place it below all +transient windows, but above all tiled windows. + +@subsection(Size Hints) + +Clients setting @c(WM_NORMAL_HINTS) while +a window is open can cause changes in the size or location of the +window. + +If the option @b(autoResatisfyOnResetMinmax) is set, +and the window no longer satisfies its client minimum or maximum size, +an attempt will be made to enlarge or shrink the window. Even if the +window cannot be enlarged, it will not be automatically closed. +However subsequent user operations will enforce the client minimum size +if @b(enforceClientMinimums) is set. + +If a new size was specified, it becomes the normal or zoom desired size. + +If either a size or position was specified, and +@b(autoResatisfyOnResetMinmax) is set, then an attempt is made to +change the size or position of the window. + +Both position and size can be specified as provided by either the user or +program. If either is specified as user supplied, then the hint +is treated as a direct effect of a user action. Consequently, the +limits on client actions ordinarily determined by the option +@b(allowAutomaticCloseByClient), the option +@b(allowAutomaticShrinkByClient), +@b(allowListenerToChangeByClient), and +@b(allowListenerToCloseByClient) do not apply. + +@subsection(WM_HINTS) + +Our window manager supports dynamic changes to @c(WM_HINTS). In +particular, changes in the @b(initial_state) field are treated as +direction to change the display state of the window: + +The states have the following effects: + +@begin(itemize, group) +@b(Ignore): Closes the window or icon if either was open, and removes +it from the closed menu list. + +@b(Inactive): Closes the window or icon if either was open. + +@b(Iconic): Closes the window if it was open. Opens an icon if icons are +in use. + +@b(Normal or ClientIcon): Opens the window if it was closed. + +@b(DontCare): No change. +@end(itemize) + +Changes to the other supported fields -- @b(input), @b(icon_pixmap), +@b(icon_x), @b(icon_y), @b(icon_window), and @b(window_group) +take immediate effect as well. + +@section(Options) + +Options are specified in Preference Files as described in the section of +that name. + +Options may either be @b(global), referring to the window manager as +a whole, or per-@b(window). + +Options may either be @i(boolean), in which case they take on the values +@b(on) and @b(off), @i(numeric), in which case, they take on numeric +@b(values), or @i(strings). + +Options and values may be @b(semantic), in which case they control the +decisions made by the window manager, or they may strictly be +@b(interface)-related -- that is, they simply control the way the screen +looks. + +This section, then, is divided into a number of parts, based on the +orthogonal distinctions of @b(global) vs per-@b(window), boolean +@b(option) vs @b(value) vs @b(string), and @b(semantic) vs. +@b(interface)-related. +Each section contains a list of the relevant option names with their +default value. + +@subsection(Global Semantic Options) + +@begin(itemize, font smallbodyfont) +@bx(allowAggressiveRepopulation): on@* +If on, attempts to open automatically closed windows with the +@b(aggressivelyRepopulate) option on whenever possible. + +@bx(allowAutomaticClose): on@* +Determines whether windows can be closed automatically (as a side +effect of an operation on another window). + +@bx(allowAutomaticCloseMoreRecent): on@* +If @b(allowAutomaticClose) is on, but this option is off, then a +window can be closed as a result of a side effect on another +window only if the other window has been used more recently. + +@bx(allowAutomaticShrink): on@* +Determines whether windows can be shrunk automatically (as a side +effect of an operation on another window). + +@bx(allowAutomaticShrinkMoreRecent): on@* +If @b(allowAutomaticShrink) is on, but this option is off, then a +window can be shrunk as a result of a side effect on another +window only if the other window has been used more recently. + +@bx(allowAutomaticShrinkOnAutoRepopulate): off@* +@b(allowAutomaticShrinkOnExplicitRepopulate): on@* +Determines whether windows on the screen can be shrunk as a +result of a Repopulate. Explicit repopulates are those +done when the user selects Repopulate from the menu. +Automatic repopulates include all other +attempt by the window manager to automatically open a closed window. + +@bx(allowAutomaticCloseOnExchange): off@* +@b(allowAutomaticShrinkOnExchange): on@* +Determines whether the other windows on the screen can be shrunk +or closed as a side effect of an Exchange. + +@bx(allowAutomaticCloseByClient): on@* +@b(allowAutomaticShrinkByClient): on@* +When a client invokes a window operation, these options determine +whether other windows on the screen can be shrunk or closed as a +side effect. + +@bx(allowListenerToClose): on@* +If off, then the window which is the listener cannot close as +a side effect of an operation on another window. + +@bx(allowListenerToChangeByClient): off@* +@b(allowListenerToCloseByClient): off@* +When a client invokes a window operation, these options determine +whether an active listener can be shrunk or closed as a side effect. + +@bx(allowShrinkOnAutoOpen): on@* +@b(allowShrinkOnCenterOpen): on@* +@b(allowShrinkOnCornerOpen): off@* +An attempt to place a window may not succeed if surrounding +windows are in the way which cannot be shrunk or closed. In that +case, the window being placed may have to be made smaller than +its desired size. These options determine whether that is +permitted. A corner open is one where the new location and +corners of the window are chosen by the user. A center open is +one where only the center is chosen by the user. If they are not +set and shrinking is necessary, the operation will fail. + +@bx(allowShrinkOnResize): off@* +When a user explicitly resizes a window, the size selected +may be too large -- that is, adjacent windows may not be able to be +shrunk or closed. +If the option is on, the window will be +made as large as possible up to the size requested. If it is off, the +resize will fail. + +@bx(autoDesiredEnlarge): on@* +If on, then an attempt is made after every operation to enlarge +each window to its desired size without moving or shrinking other +windows. + +@bx(autoProrate): off@* +If on, then automatically prorates after each operation. + +@bx(autoRepopulateLast): off@* +If on, then if a window is closed automatically during an +operation, an attempt is made to reopen it. The window may +appear to have been moved, but it was closed and then reopened. + +@bx(autoRepopulateOnAutoUnzoom): on@* +@b(autoRepopulateOnExplicitUnzoom): on@* +These determine whether an attempt is made to repopulate closed +windows following an unzoom. An automatic unzoom occurs when a +zoomed window which has @b(listenerTiedToZoom) is no longer the +listener. +If the window is destroyed, then repopulation will be done if +either of these options is set. + +@bx(autoRepopulateOnClose): on@* +This determines whether an attempt is made to repopulate closed +windows following an explicit close of the window or the termination of +the client. + +@bx(biasedAutoProrate): off@* +When set, forces automatic prorating to make the most recently used +windows the largest. + +@bx(enableAutoRepopulationDuringLayout): off@* +@b(enableAutoSizingDuringLayout): off@* +When initially starting the window manager, if these options are +off, then automatic repopulation, automatic enlargement to +desired size, and automatic prorating are disabled until all +windows matching entries in @b(.rtl.layout) have been created. + +@bx(enableGravity): on@* +Uses gravity to line up windows. + +@bx(onlyRepopulateSinceOnAutoUnzoom): on@* +@b(onlyRepopulateSinceOnExplicitUnzoom): on@* +If on, then following an unzoom or destroy, only windows closed +since the window was zoomed will be reopened. + +@bx(onlyRepopulateSinceOnClose): on@* +If on, then following an explicit close or destroy, only windows +closed since the window was last opened will be reopened. + +@bx(preferCloseToShrinkOnAutoOpen): off@* +@b(preferCloseToShrinkOnCenterOpen): off@* +@b(preferCloseToShrinkOnCornerOpen): on@* +@b(preferCloseToShrinkOnExchange): off@* +@b(preferCloseToShrinkOnResize): on@* +Determine whether it is better to close other windows or to +shrink the window being operated upon (assuming both are +permitted by other options). + +@bx(preferExchangedLocationOnIconizing): on@* +When exchanging an iconized window and an open window, determines +whether the preferred location of the icon for the newly closed +window is its previous icon position, or the position of the +currently icon. + +@bx(preferExchangedLocationOnOpening): on@* +If the option is set when exchanging an iconized window and an +open window, and if the currently closed window has not been +positioned or does not require placement at its previous +position, then an attempt is made to place the newly opened +window at the location of the window it is being exchanged with. + +@bx(preferPreviousPositionOnAutoRepopulate): on@* +@b(preferPreviousPositionOnExplicitRepopulate): on@* +When a window is being repopulated, determines if an attempt is +first made to place it at its previous location. + +@bx(preferCenterNeighborhoodToAutomaticCloseOnOpen): off@* +@b(preferCenterNeighborhoodToAutomaticShrinkOnOpen): off@* +@b(preferCenterNeighborhoodToShrinkOnOpen): off@* +When a window is being placed at a location, it may be placed +anywhere where that location is inside the window -- that is +called its "center neighborhood" -- depending upon the +@b(tryCenterNeighborhood...) options. If none of these options +are set, the center neighborhood will only be tried if the window +cannot be exactly placed where requested. These options +additionally try the center neighborhood if exact placement would +succeed, but would close (@b(AutomaticClose)) or shrink +(@b(AutomaticShrink)) other windows or +would cause the window being opened to shrink (@b(Shrink)). + +@bx(preferEdgeNeighborhoodToAutomaticCloseOnOpen): off@* +@b(preferEdgeNeighborhoodToAutomaticShrinkOnOpen): off@* +@b(preferEdgeNeighborhoodToShrinkOnOpen): off@* +When a window is being placed at a location, it may be placed +anywhere where the window would overlap with the exact location +-- that is called its "center neighborhood" -- depending upon the +@b(tryEdgeNeighborhood...) options. If none of these options are +set, the edge neighborhood will only be tried if the window +cannot be exactly placed closer. These options additionally try +the edge neighborhood if closer placement would succeed, but +would close (@b(AutomaticClose)) or shrink +(@b(AutomaticShrink)) other windows or +would cause the window being opened to shrink (@b(Shrink)). + +@bx(preferDesktopToAutomaticCloseOnAutoOpen): on@* +@b(preferDesktopToAutomaticShrinkOnAutoOpen): on@* +@b(preferDesktopToShrinkOnAutoOpen): on@* +When a window is automatically opened, it may express a +preference for being placed at its previous location. If it +cannot be opened there (or in a neighborhood of it), we +will try to place it anywhere on the desktop. These options +additionally try the entire desktop if closer placement would +succeed, but would close (@b(AutomaticClose)) or shrink +(@b(AutomaticShrink)) other windows or +would cause the window being opened to shrink (@b(Shrink)). + +@bx(preferSlidingToAutomaticCloseOnResize): off@* +@b(preferSlidingToAutomaticShrinkOnResize): off@* +@b(preferSlidingToShrinkOnResize): off@* +When a window is being resized in one direction, another window may be +in its way. In that case, we try resizing it in the other +direction if @b(trySlidingOnResize) is set. These options +additionally try sliding if resizing would succeed, but would +close (@b(AutomaticClose)) or shrink +(@b(AutomaticShrink)) other windows or +would cause the window being opened to shrink (@b(Shrink)). + +@bx(preferCenterNeighborhoodToAutomaticCloseOnResize): off@* +@b(preferCenterNeighborhoodToAutomaticShrinkOnResize): off@* +@b(preferCenterNeighborhoodToShrinkOnResize): off@* +@b(preferEdgeNeighborhoodToAutomaticCloseOnResize): off@* +@b(preferEdgeNeighborhoodToAutomaticShrinkOnResize): off@* +@b(preferEdgeNeighborhoodToShrinkOnResize): off@* +When a window is resized, it may be moved within its center +or edge neighborhoods if the resize or sliding resize cannot be +done or cause windows to close or shrink. These options control +when movement within the neighborhood is tried. + +@bx(preferUnzoomToClose): on@* +When a zoomed window cannot be opened on an explicit or +repopulating open, unzooming may allow the window to open. +This option determines whether unzooming is allowed in this case. + +@bx(prorateVerticallyFirst): on@* +The current prorating algorithm prorates in each dimension +separately. This option determines whether to prorate vertically +first. + +@bx(repopulateStrictly): off@* +Windows are repopulated most recently closed first. If a closed +window cannot be repopulated, and this option is on, then no +attempt is made to repopulate other windows closed less recently. + +@bx(repopulateAutoClosedOnly): on@* +If this option is set, then no attempt is made to repopulate +windows which were explicitly closed on an explicit repopulate. + +@bx(requirePreviousPositionOnAutoRepopulate): on@* +@b(requirePreviousPositionOnExplicitRepopulate): off@* +When a window is being repopulated, these options require that it +be placed at its previous position. + +@bx(resetZoomMin): off@* +@b(resetZoomMinAllowsDecrease): off@* +@b(resetZoomMinUsesDesire): on@* +If @b(resetZoomMin) is set alone, then zooming a window sets the +zoom_min of the window to be its current (pre-zoom) size. +If @b(resetZoomMinUsesDesire) is set along with it, then the +the zoom min is set to the smaller of the current and +normal desired size. +If @b(resetZoomMinAllowsDecrease) is not set, the zoom min will +not be decreased as a result of this. + +@bx(treatMoveLikeRelocate): off@* +If set, then a Move acts just like a Relocate in terms of allowed +placement. If it is not set, then moving a window requires that +it be placed at its current size (without shrinking) and at the +exact location indicated by the user. + +@bx(tryCenterNeighborhoodOnExchange): off@* +Determines whether windows being exchanged can be placed in +each others center neighborhoods, or whether they must be placed at +exactly the same position. + +@bx(tryCenterNeighborhoodOnOpen): off@* +@b(tryEdgeNeighborhoodOnOpen): off@* +Determines whether edge and center neighborhoods can be used when +placing a window. + +@bx(trySlidingOnResize): off@* +@b(tryCenterNeighborhoodOnResize): off@* +@b(tryEdgeNeighborhoodOnResize): off@* +Determines whether sliding, edge and center neighborhoods can be +used when resizing a window. + +@bx(tryRepopulateAgainAfterAutoProrate): on@* +When automatically prorating, we repopulate before prorating. +This options determines whether to try repopulating after +prorating as well (followed, if necessary by re-prorating and +repopulating etc.) + +@bx(unzoomTiedListenerIfNecessary): off@* +If an operation would fail, this option determines whether to +unzoom the listener if it has @b(listenerTiedToZoom) set and try the +operation again. +@end(itemize) + +@subsection(Global Semantic Values) + +@begin(itemize, font smallbodyfont) +@b(absMinWidth): 38@* +@b(absMinHeight): 34@* +The absolute minimum size of a window (including header and border). + +@bx(gravity): 12@* +The number of pixels within which gravity operates + +@bx(iconPlacement): 1@* +Where icons should be placed within the icon area (or within the root +if no icon area is used): +@begin(format, group, font smallbodyfont) + 0: In no particular place + 1: Across the Top + 2: Across the Bottom + 3: Along the Left Side + 4: Along the Right Side +@end(format) + +@begin(multiple) +@b(secondaryIconPlacement): 3@* +Where icons should be placed within the region determined by +@b(iconPlacement). +@begin(format, group, font smallbodyfont) + 0: In no special place + 1: At the top (for Left & Right @b(iconPlacement)) + 2: At the bottom (for Left & Right @b(iconPlacement)) + 3: At the left (for Top & Bottom @b(iconPlacement)) + 4: At the right (for Top & Bottom @b(iconPlacement)) + 5: In the middle +@end(Format) +@end(multiple) + +@begin(multiple) +@b(neighborhoodShrinkFactor): 50@* +A factor by which the window of a neighborhood is shrunk relative +to the window size. Expressed as a percent from 0 to 100. +The higher the shrink factor, the smaller the neighborhood for large +windows. + +If a window has width w, the @b(neighborhoodShrinkFactor) is 100*f, +and the desktop width is d then the width of the side border of +the neighborhood surrounding the window (on each side) +@begin(Format, group, font smallbodyfont) + for a center neighborhood is + w * ( d - (f * w) ) / (2 * d) + and for an edge neighborhood is + w * ( d - (f * w) ) / d +@end(format) +And similarly for the length. +Consider a window whose width is half that of the desktop. +With a @b(neighborhoodShrinkFactor) of 0, the border for a center +neighborhood is 1/4 of the desktop width. For a factor of 50, +the border is 3/16 of the desktop width. For a factor of 100, +the border is just 1/8 of the desktop width. +@end(multiple) +@end(itemize) + +@subsection(Global Interface Options) + +@begin(itemize, font smallbodyfont) +@b(acceptNonListenerInBody): on@* +@b(acceptNonListenerInBorder): off@* +@b(acceptNonListenerInGadget): off@* +@b(acceptNonListenerInHeader): on@* +Determines whether keyboard input will be passed to a client +if the pointer is in the named region, and the window is not +the listener. + +@bx(autoPlaceOnIconOpen): off@* +If on, a single click in an icon automatically places the opened +window. If off, a double click is required, and a single click +permits manual placement. + +@bx(autoPlaceOnMenuOpen): off@* +If on, selecting a closed window from the menu of closed windows +automatically places it. If off, the window must be manually +placed. + +@bx(autoPlaceOnUnsizedOpen): on@* +If off, and a size has not been provided for a window via a hint, a +preference, or the layout file, then manual placement is required when it +is initially opened. + +@bx(buttonMakesListenerInBody): on@* +@b(buttonMakesListenerInHeader): on@* +Determines whether clicking a mouse button in the named region +makes the window the listener when @b(focusFollowsPointer) is on. +If it is not on, clicking makes the window the listener only if the +corresponding @b(keyMakesListener...) is on as well; otherwise it is used +for temporarily typing without changing the listener if the corresponding +@b(acceptNonListener...) is on as well. + +@bx(centerPointerOnMove): on@* +@b(centerPointerOnRelocate): on@* +Determines whether to move the pointer to the middle of the window +when moving or relocating it, or to leave it where it is. + +@bx(closeInHeader): off@* +@b(closeInCornerBorder): off@* +@b(closeInSideBorder): off@* +@b(closeInMoveGadget): on@* +@b(closeInZoomGadget): on@* +Determines whether the appropriate mouse clicks in the named +regions cause the window to close. + +@bx(desireInHeader): off@* +@b(desireInCornerBorder): off@* +@b(desireInSideBorder): off@* +@b(desireInMoveGadget): off@* +@b(desireInZoomGadget): on@* +Determines whether the appropriate mouse clicks in the named +regions cause the window to grow to its desired size. + +@bx(distinguishCornerBorders): on@* +@b(distinguishCornerBordersByInverse): on@* +Determines whether the corner borders are distinguished, and if +so, whether by drawing an outline, or by inverting it. + +@bx(drawXOnMove): on@* +@b(drawXOnOpen): on@* +@b(drawXOnResize): on@* +Determines whether an X is drawn along with the window outline +when tracking the named operations + +@bx(enlargeInHeader): off@* +@b(enlargeInCornerBorder): off@* +@b(enlargeInSideBorder): off@* +@b(enlargeInMoveGadget): off@* +@b(enlargeInZoomGadget): on@* +Determines whether the appropriate mouse clicks in the named +regions cause the window to grow to its maximum size. + +@bx(exchangeInHeader): off@* +@b(exchangeInCornerBorder): on@* +@b(exchangeInSideBorder): off@* +@b(exchangeInMoveGadget): on@* +@b(exchangeInZoomGadget): off@* +@b(exchangeInIcon): on@* +Determines whether the appropriate mouse clicks in the named +regions initiate the Exchange operation. + +@bx(includeBackgroundMenuInWindowMenu): on@* +Determines whether each window menu has the main window manager +menu as a submenu. + +@bx(keyMakesListenerInBody): on@* +@b(keyMakesListenerInBorder): off@* +@b(keyMakesListenerInGadget): off@* +@b(keyMakesListenerInHeader): off@* +Determines whether typing a key with the pointer in the named +region causes the window to become the listener. + +@bx(focusFollowsPointer): on@* +If on, the focus is real-estate driven. If off, the click-to-type +model is used. + +@bx(managerMenuInHeader): on@* +@b(managerMenuInCornerBorder): on@* +@b(managerMenuInSideBorder): on@* +@b(managerMenuInMoveGadget): off@* +@b(managerMenuInZoomGadget): off@* +@b(managerMenuInIcon): on@* +Determines whether the appropriate mouse clicks in the named +regions bring up a window menu. + +@bx(middleMenu): off@* +If on, then the role of the middle and right buttons in the +default interface are switched. (Horrible Hack!) + +@bx(moveInHeader): off@* +@b(moveInCornerBorder): on@* +@b(moveInSideBorder): on@* +@b(moveInMoveGadget): on@* +@b(moveInZoomGadget): off@* +@b(moveInIcon): on@* +Determines whether the appropriate mouse clicks in the named +regions initiate the Move operation. + +@bx(placePointerInBodyInsteadOfGadget): on@* +If on, then the following options place the pointer in the body +just below the move gadget rather in the move gadget itself. + +@bx(placePointerInGadgetAfterClientAutoOpen): off@* +@b(placePointerInGadgetAfterUserAutoOpen): on@* +@b(placePointerInGadgetAfterManualOpen): on@* +If on, then the pointer is placed in the window's move gadget +after the window is opened (1) by the client and placed +automatically, (2) by the user and placed automatically, +(3) by the user and placed manually. If off, the pointer stays +where it is. + +@bx(placePointerInGadgetAfterExchange): on@* +@b(placePointerInGadgetAfterMove): on@* +If on, then the pointer is placed in the window's move gadget +after the window is exchanged, moved or relocated. + +@bx(placePointerInBodyInsteadOfBorder): off@* +If on, then the following option place the pointer in the body +just inside the border rather in the border itself. + +@b(placePointerInBorderAfterResize): on@* +If on, then the pointer is placed in the window's border +after the window is resized. + +@bx(placePointerInIconAfterClose): off@* +If on, then after explicitly closing a window, the pointer is +placed in its icon. + +@bx(placePointerBackAfterMenuOperation): on@* +If on, then completing a menu operation that doesn't involve +tracking, the pointer is moved back to its position when the +menu was first raised. + +@bx(placePointerBackOnCancel): on@* +If on, then after cancelling an operation, the pointer is moved +back to its position when the operation was initiated. + +@bx(redrawInHeader): off@* +@b(redrawInCornerBorder): on@* +@b(redrawInSideBorder): on@* +@b(redrawInMoveGadget): on@* +@b(redrawInZoomGadget): on@* +@b(redrawInIcon): on@* +Determines whether the appropriate mouse clicks in the named +regions redraw the window. + +@bx(relocateInHeader): off@* +@b(relocateInCornerBorder): off@* +@b(relocateInSideBorder): off@* +@b(relocateInMoveGadget): on@* +@b(relocateInZoomGadget): off@* +Determines whether the appropriate mouse clicks in the named +regions initiate the Relocate operation. + +@bx(resizeInHeader): off@* +@b(resizeInCornerBorder): on@* +@b(resizeInSideBorder): on@* +@b(resizeInMoveGadget): off@* +@b(resizeInZoomGadget): off@* +Determines whether the appropriate mouse clicks in the named +regions initiate the Resize operation. + +@bx(showListenerInBorders): off@* +@b(showListenerInHeader): on@* +@b(showFocusInBorders): on@* +@b(showFocusInHeader): off@* +When a window becomes the listener or focus, either the header or +border can be reversed. + +@bx(useCornerBorders): on@* +Determines whether the corner window borders are active -- +essentially controls whether corner resizing is allowed without +the menu. + +@bx(useIconArea): off@* +If on, then the @b(iconArea...) options specify a preferred area +for icons. + +@bx(useIcons): on@* +If on, closed windows are represented by icons. + +@bx(useRtlIcon): on@* +If on and icons are in use, then a special RTL icon is visible +with special meanings for window clicks. + +@bx(zoomInHeader): off@* +@b(zoomInCornerBorder): off@* +@b(zoomInSideBorder): off@* +@b(zoomInMoveGadget): off@* +@b(zoomInZoomGadget): on@* +Determines whether the appropriate mouse clicks in the named +regions zoom and unzoom the window. +@end(itemize) + +@subsection(Global Interface Values) + +@begin(itemize, font smallbodyfont) +@b(borderSize): 5@* +@b(outerBorderLinewidth): 2@* +@b(innerBorderLinewidth): 1@* +The size of window borders, and the width of the inner and outer +lines of the border. + +@bx(gadgetWidth): 12@* +The width of the gadgets + +@bx(iconAreaTop)@* +@b(iconAreaBottom)@* +@b(iconAreaLeft)@* +@b(iconAreaRight)@* +If @b(useIconArea) is set, these specify the preferred area of the +root in which icons are to be placed. There are no default values. + +@end(itemize) + +@subsection(Window Semantic Options) + +@begin(itemize, font smallbodyfont) +@b(aggressivelyRepopulate): off@* +Determines whether this window is to be aggressively repopulated +if the global option @b(allowAggressiveRepopulation) allows it. + +@bx(allowShrinkOnUnzoom): on@* +@b(allowShrinkOnAutoUnzoom): on@* +Determines whether the window is allowed to be shrunk when it is +unzoomed in order to allow adjacent windows to be enlarged back +to their desired size or to allow windows to be repopulated. + +@bx(allowZoomClose): on@* +Determines whether other windows are allowed to be closed in +order to allow this window to be zoomed. + +@bx(autoOpenOnCreate): on@* +Determines whether the window is to be opened automatically when +it is created. Used if @c(WM_HINTS) indicates DontCareState (or if +@b(initial_state) is not provided) and if there is no matching layout. + +@bx(autoResatisfyOnResetMinmax): on@* +When a client resets the client minimum or maximum size, +determines whether or not the window should change size +immediately if necessary, or wait until the window is operated +upon. + +@bx(considerForRepopulation): on@* +Determines whether the window is to be considered for +repopulation + +@bx(enforceClientMinimums): on@* +@b(enforceClientMaximums): off@* +Determines whether minimums and maximums set by the client are to +be enforced or not. + +@bx(expensiveToRedraw): off@* +The system tries to avoid having side effects upon windows +which are expensive to redraw + +@bx(fixedSize): off@* +@b(fixedHeight): off@* +@b(fixedWidth): off@* +If a window has its width or height (size means both width and +height) fixed, then that dimension cannot be changed as a side +effect of an operation on another window, and the window cannot +be automatically shrunk in that dimension when it is being placed +or resized. + +@bx(fixedCompletely): off@* +A window which is fixed completely has all of its edges fixed. + +@bx(forceShrinkOnUnzoom): on@* +@b(forceShrinkOnAutoUnzoom): off@* +When a window is unzoomed, determines whether it is to be shrunk +to its normal desired size. + +@bx(ignoreInitialPositionHints): off@* +@b(ignoreInitialSizeHints): off@* +@b(ignorePositionHints): off@* +@b(ignoreSizeHints): off@* +Determines whether to use the size and positions hints provided +in @c(WM_NORMAL_HINTS). + +@bx(listenerTiedToZoom): off@* +A window with listener tied to zoom is automatically zoomed when it +becomes the listener, and is automatically unzoomed when it loses +the listener. + +@bx(noteListener): on@* +Open windows are ordered in terms of most recent use for a +variety of reasons. A window is "used" when it is opened. +This option determines whether becoming the listener constitutes "use" as +well. + +@bx(preferPreviousIconPosition): on@* +When the icon is placed, prefer placing it as near to its +previous location as possible within the constraints of +the icon area and @b(iconPlacement). + +@bx(requirePreviousIconPosition): off@* +When the icon is placed, try first to place it at its previous icon +position, even if that is not within the constraints of +the icon area and @b(iconPlacement). + +@bx(preferPreviousPosition): on@* +@b(requirePreviousPosition): off@* +When a window is automatically placed, determines whether it +prefers or requires to be reopened at its previous position. + +@bx(requireManualClose): off@* +If on, then the window may not be closed as a side effect of an +operation on another window. + +@bx(saveInLayout): on@* +Determines whether an entry for this window is saved in +@b(.rtl.layout) when a Save Layout operation is done. + +@bx(zoomFullExplicit): off@* +@b(zoomFullHeight): off@* +@b(zoomFullWidth): off@* +Determines whether zooming always causes the window +to grow to the full width and or height of the desktop. + +@bx(zoomOnOpen): off@* +If set, then automatically zooms the window each time it is +opened. + +@bx(zoomTiedToDesire): off@* +When set, zoom a window to its normal desired size, rather than to its +zoom desired size. + +@end(itemize) + +@subsection(Window Semantic Values) + +These options initialize window sizes. All sizes include +space for borders and headers. + +@begin(itemize, font smallbodyfont) +@bx(normalDesiredWidth)@* +@b(normalDesiredHeight)@* +Specifies the initial desired window size. Overrides +the initial window size specified by the client. + +@b(zoomDesiredWidth)@* +@b(zoomDesiredHeight)@* +Specifies the desired size when the window is +first zoomed. + +@bx(clientMinWidth)@* +@b(clientMinHeight)@* +@b(clientMaxWidth)@* +@b(clientMaxHeight)@* +Overrides the minimum and maxmum sizes specified by the client. + +@bx(userNormalMinWidth)@* +@b(userNormalMinHeight)@* +@b(userZoomMinWidth)@* +@b(userZoomMinHeight)@* +Specifies the initial user minimum size when the window is +normal (unzoomed) and zoomed. + +@bx(iconWidth): 64@* +@b(iconHeight): 64@* +Width and height of default icons (produced by RTL +when no pixmap has been provided). +@end(itemize) + +@subsection(Window Interface Options) + +@begin(itemize, font smallbodyfont) + +@bx(acceptButtonInBody): on@* +@b(acceptButtonInHeader): on@* +@b(acceptButtonInIcon): on@* +Determines whether a button press can ever be passed to the +client when the pointer is in the named region. + +@bx(acceptKeyInBody): on@* +@b(acceptKeyInHeader): on@* +@b(acceptKeyInGadget): on@* +@b(acceptKeyInBorder, ): on@* +@b(acceptKeyInIcon): on@* +Determines whether a key press can ever be passed to the +client when the pointer is in the named region. + +@bx(autoPlaceOnClientOpen): on@* +Determines whether automatic or manual placement is used when the +client opens the window. + +@bx(includeResClassInTitle): on@* +@b(includeResClassInIconTitle): on@* +@b(includeResNameInTitle): off@* +@b(includeResNameInIconTitle): off@* +@b(includeNameInTitle): on@* +@b(includeNameInIconTitle): on@* +@b(includeHostInTitle): on@* +@b(includeHostInIconTitle): on@* +Determines whether the manager should include the the res_class, +res_name, the window or icon name, and the host name in the window or +icon title. +But see just below ... + +@bx(includeTitleInHeader): on@* +Determines whether the window title should be displayed in the window +header. + +@bx(includeTitleInPixmapIcon): off@* +Determine whether the icon title should be drawn on top of the pixmap +icon if one has been supplied by either the client or via the preferences +file. + +@bx(useBorders): on@* +@b(useGadgets): on@* +@b(useHeader): on@* +@b(useMoveGadget): on@* +Determines whether the various regions of the window should be +drawn. + +@end(itemize) + +@subsection(Window Interface Values) + +@begin(itemize, font smallbodyfont) +@b(headerHeight): 16@* +The height of the window's header. + +@bx(iconResTop): 2@* +@b(iconResBottom): 10@* +@b(iconResLeft): 2@* +@b(iconResRight): 61@* +Determines where the window resource class and resource name appear +in the icon + +@bx(iconHostTop): 12@* +@b(iconHostBottom): 20@* +@b(iconHostLeft): 2@* +@b(iconHostRight): 61@* +Determines where the host name appears in the icon. + +@bx(iconNameTop): 22@* +@b(iconNameBottom): 61@* +@b(iconNameLeft): 2@* +@b(iconNameRight): 61@* +Determines where the icon name appears in the icon. +@end(itemize) + +@subsection(Window Semantic Strings) + +@begin(itemize, font smallbodyfont) +@bx(iconPixmapFile)@* +Names a file containing an icon pixmap (in the standard X11 +bitmap format). Overrides the pixmap provided by the client. + +@bx(superClass)@* +The string names a superclass. The window will inherit all options +from its superclass unless explicitly overridden. +@end(itemize) + +@section(Acknowledgements) + +Mike Berman, Mark Biggers, and Joe Camaratta have shared +in the design and implementation of major parts of the system. + +In addition, Kevin Kelly has worked on automatic +placement and prorating, +Pete Litwinowicz worked on the original Andrew-based client +interface, and Adam Richter helped with the interface to X11. + +@newpage() + +@modify(verbatim, font smallBodyFont, + spacing .8, spread .5, facecode t) + +@modify(quotation, font smallBodyFont, justification off, + spacing .8, spread .5, facecode i, above 0, below 0, + leftmargin +3, rightmargin 0) + +@modify(heading, spacing 1, spread .7) + +@define(ttl = text, underline all, font bodyfont) + +@begin(heading) +Quick Reference Page +Siemens RTL Tiled Window Manager +Release 5.1 for use with X11R3 + +3 Button Mouse +@end(heading) + +@begin(verbatim, columns 2, columnMargin 1, boxed) +@begin(Verbatim, group) +@ttl(Borders) + + LEFT -- @r(Resize) + SHIFT LEFT -- @r(Resize*) + + MIDDLE -- @r(Move) + SHIFT MIDDLE -- @r(Move*) + + RIGHT -- @r(Window Menu) + +@begin(Quotation) +Side borders constrain move and resize +@end(Quotation) +@end(Verbatim) +@begin(Verbatim, group) +@ttl(Zoom Gadget) + + LEFT -- @r(Desire) + SHIFT LEFT -- @r(Zoom / Unzoom) + CTRL LEFT -- @r(Enlarge) + CTRL SHIFT LEFT -- @r(Redraw) + + CTRL SHIFT MIDDLE -- @r(Redraw) + + CTRL SHIFT RIGHT -- @r(Close) + +@end(verbatim) +@begin(Verbatim, group) +@ttl(Move Gadget) + + CTRL SHIFT LEFT -- @r(Redraw) + + MIDDLE -- @r(Relocate) + SHIFT MIDDLE -- @r(Move) + CTRL MIDDLE -- @r(Exchange) + CTRL SHIFT MIDDLE -- @r(Redraw) + + CTRL SHIFT RIGHT -- @r(Close) + +@end(verbatim) +@begin(Verbatim, group) +@ttl(Header) + + MIDDLE -- @r(Move) + SHIFT MIDDLE -- @r(Move*) + + RIGHT -- @r(Window Menu) + +@begin(Quotation) +All other combinations are transmitted to the client +@end(Quotation) + +@begin(Quotation) +@center(* Toggles gravity during operation) +@end(Quotation) +@end(verbatim) +@newcolumn() +@begin(Verbatim, group) +@ttl(Icon) + + LEFT -- @r(Open) + CTRL SHIFT LEFT -- @r(Redraw) + + MIDDLE -- @r(Move) + SHIFT MIDDLE -- @r(Move*) + CTRL MIDDLE -- @r(Exchange) + CTRL SHIFT MIDDLE -- @r(Redraw) + + RIGHT -- @r(Icon Menu) + CTRL SHIFT RIGHT -- @r(Soft Kill) + + +@begin(Quotation) +All other combinations are transmitted to the client +@end(Quotation) + +@begin(Quotation) +Note: When opening the icon, double clicking automatically places the +window. A single press or click allows the user to place it manually. +@end(Quotation) +@end(verbatim) +@begin(Verbatim, group) +@ttl(Rtl Icon) + + LEFT -- @r(Deselect Listener) + CTRL SHIFT LEFT -- @r(Redraw All) + + MIDDLE -- @r(Move) + SHIFT MIDDLE -- @r(Move*) + CTRL MIDDLE -- @r(Exchange) + CTRL SHIFT MIDDLE -- @r(Redraw All) + + RIGHT -- @r(Main Manager Menu) + +@begin(Quotation) +All other combinations deselect the listener as well +@end(Quotation) +@end(verbatim) +@begin(Verbatim, group) +@ttl(Background) + + LEFT -- @r(Deselect Listener) + CTRL SHIFT LEFT -- @r(Redraw All) + + CTRL SHIFT MIDDLE -- @r(Redraw All) + + RIGHT -- @r(Main Manager Menu) + +@begin(Quotation) +All other combinations deselect the listener as well +@end(Quotation) +@end(verbatim) +@end(verbatim) + +@begin(Quotation) +To cancel an operation, +press the @t(RIGHT) mouse button. + +A question mark cursor is a request for confirmation. +Click the @t(LEFT) or @t(MIDDLE) mouse button to confirm, +the @t(RIGHT) mouse button to cancel. +@end(quotation) + +@newpage() + +@begin(heading) +Quick Reference Page +Siemens RTL Tiled Window Manager +Release 5.1 for use with X11R3 + +1 Button Mouse +@end(heading) + +@begin(verbatim, columns 2, columnMargin 1, boxed) +@begin(Verbatim, group) +@ttl(Borders) + + NONE -- @r(Resize) + SHIFT -- @r(Move) + CTRL -- @r(Resize*) + CTRL SHIFT -- @r(Redraw) + +@begin(Quotation) +* Toggles gravity during operation +@end(Quotation) + +@begin(Quotation) +Side borders constrain move and resize +@end(Quotation) +@end(Verbatim) +@begin(Verbatim, group) +@ttl(Zoom Gadget) + + NONE -- @r(Desire) + SHIFT -- @r(Zoom / Unzoom) + CTRL -- @r(Enlarge) + CTRL SHIFT -- @r(Close) + +@end(verbatim) +@begin(Verbatim, group) +@ttl(Move Gadget) + + NONE -- @r(Relocate) + SHIFT -- @r(Move) + CTRL -- @r(Exchange) + CTRL SHIFT -- @r(Close) + +@end(verbatim) +@begin(Verbatim, group) +@ttl(Header) + + NONE -- @r(Window Menu) + SHIFT -- @r(Move) + CTRL -- @r(Sent to client) + CTRL SHIFT -- @r(Redraw) + +@end(verbatim) +@newcolumn() +@begin(Verbatim, group) +@ttl(Icon) + + NONE -- @r(Open) + SHIFT -- @r(Move) + CTRL -- @r(Exchange) + CTRL SHIFT -- @r(Icon Menu) + +@begin(Quotation) +Note: When opening the icon, double clicking automatically places the +window. A single press or click allows the user to place it manually. +@end(Quotation) +@end(verbatim) +@begin(Verbatim, group) +@ttl(Rtl Icon) + + NONE -- @r(Main Manager Menu) + SHIFT -- @r(Move) + CTRL -- @r(Exchange) + CTRL SHIFT -- @r(Main Manager Menu) + +@end(verbatim) +@begin(Verbatim, group) +@ttl(Background) + + NONE -- @r(Main Manager Menu) + SHIFT -- @r(Deselect Listener) + CTRL -- @r(Deselect Listener) + CTRL SHIFT -- @r(Redraw All) + +@end(verbatim) +@end(verbatim) + +@begin(Quotation) +To cancel an operation, +hold @t(CTRL) and @t(SHIFT) while releasing or clicking the mouse +button. + +A question mark cursor is a request for confirmation. +Click the mouse button to confirm, +hold @t(CTRL) and @t(SHIFT) and click the mouse button +to cancel. +@end(quotation) + diff --git a/doc/scribe/refpage5.mss b/doc/scribe/refpage5.mss new file mode 100644 index 0000000..3dd8f37 --- /dev/null +++ b/doc/scribe/refpage5.mss @@ -0,0 +1,149 @@ +@device(imagen300) + +@style(Spacing .8, Spread .5, Indent 0) + +@modify(verbatim, font smallBodyFont, + spacing .8, spread .5, facecode t) + +@modify(quotation, font smallBodyFont, justification off, + spacing .8, spread .5, facecode i, above 0, below 0, + leftmargin +3, rightmargin 0) + +@modify(heading, spacing 1, spread .7) + +@define(ttl = text, underline all, font bodyfont) + +@make(article) + +@begin(heading) +Quick Reference Page +Siemens RTL Tiled Window Manager +Release 5 for use with X11R2 + +3 Button Mouse +@end(heading) + +@begin(verbatim, columns 2, columnMargin 1.5, boxed) +@begin(Verbatim, group) +@ttl(Borders) + + LEFT -- @r(Resize) + SHIFT LEFT -- @r(Resize*) + + MIDDLE -- @r(Move) + SHIFT MIDDLE -- @r(Move*) + + RIGHT -- @r(Window Menu) + +@begin(Quotation) +Side borders constrain move and resize +@end(Quotation) +@end(Verbatim) +@begin(Verbatim, group) +@ttl(Zoom Gadget) + + LEFT -- @r(Desire) + SHIFT LEFT -- @r(Zoom / Unzoom) + CTRL LEFT -- @r(Enlarge) + CTRL SHIFT LEFT -- @r(Redraw) + + CTRL SHIFT MIDDLE -- @r(Redraw) + + CTRL SHIFT RIGHT -- @r(Close) + +@end(verbatim) +@begin(Verbatim, group) +@ttl(Move Gadget) + + CTRL SHIFT LEFT -- @r(Redraw) + + MIDDLE -- @r(Relocate) + SHIFT MIDDLE -- @r(Move) + CTRL MIDDLE -- @r(Exchange) + CTRL SHIFT MIDDLE -- @r(Redraw) + + CTRL SHIFT RIGHT -- @r(Close) + +@end(verbatim) +@begin(Verbatim, group) +@ttl(Header) + + MIDDLE -- @r(Move) + SHIFT MIDDLE -- @r(Move*) + + RIGHT -- @r(Window Menu) + +@begin(Quotation) +All other combinations are transmitted to the client +@end(Quotation) + +@begin(Quotation) +@center(* Toggles gravity during operation) +@end(Quotation) +@end(verbatim) +@newcolumn() +@begin(Verbatim, group) +@ttl(Icon) + + LEFT -- @r(Open) + CTRL SHIFT LEFT -- @r(Redraw) + + MIDDLE -- @r(Move) + SHIFT MIDDLE -- @r(Move*) + CTRL MIDDLE -- @r(Exchange) + CTRL SHIFT MIDDLE -- @r(Redraw) + + RIGHT -- @r(Icon Menu) + CTRL SHIFT RIGHT -- @r(Soft Kill) + + +@begin(Quotation) +All other combinations are transmitted to the client +@end(Quotation) + +@begin(Quotation) +Note: When opening the icon, double clicking automatically places the +window. A single press or click allows the user to place it manually. +@end(Quotation) +@end(verbatim) +@begin(Verbatim, group) +@ttl(Rtl Icon) + + LEFT -- @r(Deselect Listener) + CTRL SHIFT LEFT -- @r(Redraw All) + + MIDDLE -- @r(Move) + SHIFT MIDDLE -- @r(Move*) + CTRL MIDDLE -- @r(Exchange) + CTRL SHIFT MIDDLE -- @r(Redraw All) + + RIGHT -- @r(Main Manager Menu) + +@begin(Quotation) +All other combinations deselect the listener as well +@end(Quotation) +@end(verbatim) +@begin(Verbatim, group) +@ttl(Background) + + LEFT -- @r(Deselect Listener) + CTRL SHIFT LEFT -- @r(Redraw All) + + CTRL SHIFT MIDDLE -- @r(Redraw All) + + RIGHT -- @r(Main Manager Menu) + +@begin(Quotation) +All other combinations deselect the listener as well +@end(Quotation) +@end(verbatim) +@end(verbatim) + +@begin(Quotation) +To cancel an operation, +press the @t(RIGHT) mouse button. + +A question mark cursor is a request for confirmation. +Click the @t(LEFT) or @t(MIDDLE) mouse button to confirm, +the @t(RIGHT) mouse button to cancel. +@end(quotation) diff --git a/doc/scribe/refpage_one5.mss b/doc/scribe/refpage_one5.mss new file mode 100644 index 0000000..5c6c190 --- /dev/null +++ b/doc/scribe/refpage_one5.mss @@ -0,0 +1,114 @@ +@device(imagen300) + +@style(Spacing .8, Spread .5, Indent 0) + +@modify(verbatim, font smallBodyFont, + spacing .8, spread .5, facecode t) + +@modify(quotation, font smallBodyFont, justification off, + spacing .8, spread .5, facecode i, above 0, below 0, + leftmargin +3, rightmargin 0) + +@modify(heading, spacing 1, spread .7) + +@define(ttl = text, underline all, font bodyfont) + +@make(article) + +@begin(heading) +Quick Reference Page +Siemens RTL Tiled Window Manager +Release 5 for use with X11R2 + +1 Button Mouse +@end(heading) + +@begin(verbatim, columns 2, columnMargin 1.5, boxed) +@begin(Verbatim, group) +@ttl(Borders) + + NONE -- @r(Resize) + SHIFT -- @r(Move) + CTRL -- @r(Resize*) + CTRL SHIFT -- @r(Redraw) + +@begin(Quotation) +* Toggles gravity during operation +@end(Quotation) + +@begin(Quotation) +Side borders constrain move and resize +@end(Quotation) +@end(Verbatim) +@begin(Verbatim, group) +@ttl(Zoom Gadget) + + NONE -- @r(Desire) + SHIFT -- @r(Zoom / Unzoom) + CTRL -- @r(Enlarge) + CTRL SHIFT -- @r(Close) + +@end(verbatim) +@begin(Verbatim, group) +@ttl(Move Gadget) + + NONE -- @r(Relocate) + SHIFT -- @r(Move) + CTRL -- @r(Exchange) + CTRL SHIFT -- @r(Close) + +@end(verbatim) +@begin(Verbatim, group) +@ttl(Header) + + NONE -- @r(Window Menu) + SHIFT -- @r(Move) + CTRL -- @r(Sent to client) + CTRL SHIFT -- @r(Redraw) + +@end(verbatim) +@newcolumn() +@begin(Verbatim, group) +@ttl(Icon) + + NONE -- @r(Open) + SHIFT -- @r(Move) + CTRL -- @r(Exchange) + CTRL SHIFT -- @r(Icon Menu) + +@begin(Quotation) +Note: When opening the icon, double clicking automatically places the +window. A single press or click allows the user to place it manually. +@end(Quotation) +@end(verbatim) +@begin(Verbatim, group) +@ttl(Rtl Icon) + + NONE -- @r(Main Manager Menu) + SHIFT -- @r(Move) + CTRL -- @r(Exchange) + CTRL SHIFT -- @r(Main Manager Menu) + +@end(verbatim) +@begin(Verbatim, group) +@ttl(Background) + + NONE -- @r(Main Manager Menu) + SHIFT -- @r(Deselect Listener) + CTRL -- @r(Deselect Listener) + CTRL SHIFT -- @r(Redraw All) + +@end(verbatim) +@end(verbatim) + +@begin(Quotation) +To cancel an operation, +hold @t(CTRL) and @t(SHIFT) while releasing or clicking the mouse +button. + +A question mark cursor is a request for confirmation. +Click the mouse button to confirm, +hold @t(CTRL) and @t(SHIFT) and click the mouse button +to cancel. +@end(quotation) + diff --git a/doc/scribe/tutorial5.mss b/doc/scribe/tutorial5.mss new file mode 100644 index 0000000..9ce6724 --- /dev/null +++ b/doc/scribe/tutorial5.mss @@ -0,0 +1,304 @@ +@device(imagen300) +@style(Spacing .91, Spread .57, Indent 0) +@make(article) + +@PageHeading() +@PageFooting(Center="@Value(Page)") +@Set(Page = 1) + +@Modify(hd2, below 1 line, need 8, underline all, font titlefont4) +@Modify(hd3, below 1 line, need 6, underline all, font titlefont2) + +@Modify(Heading, above 1.5 lines, below 1.5 lines, need 4) +@Modify(MajorHeading, above 1.5 lines, below 1.5 lines, need 4) +@Modify(SubHeading, need 5, font bodyfont, facecode c, + underline, centered) +@Define(HeadingAddress = Heading, Above 0, Below 0, Font SmallBodyFont) + +@Define(b2 = b, Need 2 lines) +@Define(bx = b, Need 3 lines) + +@modify(Verbatim, above 1 line, below 1 line, Spacing .91, Spread .57) +@modify(Format, above 1 line, below 1 line, Spacing .91, Spread .57) +@modify(Example, above 1 line, below 1 line, Spacing .91, Spread .57) +@modify(ProgramExample, above 1 line, below 1 line, Spacing .91, Spread .57) +@Modify(Quotation, above 1 line, below 1 line, Spacing .91, Spread .57) +@Modify(Itemize, above 1 line, below 1 line, Spacing .91, Spread .57) +@Modify(Enumerate, above 1 line, below 1 line, Spacing .91, Spread .57) + +@Define(Abstract = Quotation, Indent 0, FaceCode i, Spacing .8, + Above 3, Below 3) + +@begin(majorheading) +Tutorial: +Initial Setup for Using the +Siemens RTL +Tiled Window Manager + +Release 5 +for use with X11R2 +@end(majorheading) + +@begin(heading) +Ellis S. Cohen +@begin(HeadingAddress) +Siemens Research & Technology Laboratories +105 College Road East +Princeton NJ 08540-6668 +(609) 734-6524 + +Comments or Questions to +rtl@@cadillac.siemens.com (internet) +princeton!siemens!cadillac!rtl (uucp) +@end(HeadingAddress) + +17 June 1988 +@end(heading) + +@begin(quotation) +Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + +Permission to use, copy, modify, and distribute this documentation and +the software described for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Siemens Research and Technology +Laboratories not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior permission. + +SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. +@end(quotation) + +@begin(Abstract) +This tutorial describes how to become an initial user of the Siemens @b(rtl) +Tiled Window Manager. +It assumes that you already know how to start the X11R2@foot< +X11 and the X Window System are trademarks of MIT> server +and are familiar with X11 applications. + +The tutorial explains how to set up customization files, how to set up +your initial window layout along with per-window options, and how to save +that layout. +Once the layout is saved, it will automatically be recreated when you +start up the system in the future. + +A @b(Quick Reference Page) describing the actions associated with mouse +buttons, and a @b(Manual) are also available. +@end(Abstract) + +Except for menus and transient pop-up windows, +the @b(rtl) window manager does not permit windows to overlap. +Because of this, @b(rtl) has features and +constraints not found in other window managers. +Getting your environment set up so that you can use @b(rtl) effectively +takes some extra time. IT IS WORTH IT! + +@section(Preparation) + +First, make sure that you have the following two files in your +home directory: + +@begin(itemize) +@b(.rtl.tools) -- initializes a menu from which you can easily +start up new applications once @b(rtl) is running. + +@b(.rtl.preferences) -- specifies global and per-window-class options +that control both the semantics and the appearance of @b(rtl). +@end(itemize) + +Find out where the @b(rtl) distribution is located on your filesystem. +In the @b(custom) subdirectory, you will find example +@b(.rtl.tools) and @b(.rtl.preferences) files that we use at our lab. + +@begin(quotation) +@b(NOTE:) +If you don't use a @b(.rtl.preferences) file, defaults are chosen that +provide a fairly conservative interface. The @b(.rtl.preferences) file in +the @b(custom) subdirectory allows windows to be automatically moved +and resized a bit more easily and tailors the interface specifically +for individual applications. The last section of the manual describes the +options in detail. +@end(quotation) + +@begin(quotation) +@b(NOTE:) +The @b(.rtl.preferences) file in the @b(custom) subdirectory has a number +of "@b(iconPixmapFile)" entries. These designate a file containing +a bitmap to be used for the corresponding application's icon. +The bitmap files are stored in the @b(custom) subdirectory. Make +sure that the path to the @b(custom) subdirectory is correct for +the "@b(iconPixmapFile)" entries. +@end(quotation) + +The Customization section of the manual has information about additional ways +you can customize your environment. + +@section(Starting up RTL and your Applications) + +Once your X server is running, you can start up @b(rtl). +If X clients are already mapped, @b(rtl) will tile them. + +Now, start up the remaining applications you typically want +running. + +Some applications request to be initially iconized +via their @c(WM_HINTS) property,@foot +and @b(rtl) will do so. Otherwise, the window is initially +mapped. + +By default, the option @b(autoPlaceOnClientOpen) is on, which means that +@b(rtl) will automatically find a place for the window. + +If you have set it off in your preference file, you may be asked to +place it automatically, depending upon whether the client has specified +an initial size and position (in the @c(WM_NORMAL_HINTS) property). + +@begin(itemize) +If the client provided both a size and position hint, the window +will be placed automatically, though because of tiling, not necessarily +at exactly the size or position requested. + +Otherwise, you will asked to determine +both its size and position. The cursor will change to a dotted box. +Pressing or clicking the left mouse button designates the top-left +corner. Releasing or re-clicking designates the bottom-right corner. +Pressing the right mouse button iconizes the window instead. +(For a one-button mouse, hold CTRL and SHIFT and click to iconize). +@end(itemize) + +Some clients set bogus initial window positions (usually <0,0>), and are +automatically placed by @b(rtl) even when that is not appropriate. +You can tell @b(rtl) to ignore the initial position set by the +client by setting the option @b(ignoreInitialPositionHints) for those +clients. + +If you do not like the layout, you can change it by resizing or moving +windows around. See the @b(Quick Reference Page) which explains how to +use the mouse buttons, or see the @b(Manual) for more details. + +@section(Client Minimum and Maximum Size) + +Many clients set a reasonable @b(client minimum size) via the +@c(WM_NORMAL_HINTS) property. Some do not. +You can tell by trying to resize the window. +By default, the window manager will not allow the window to be +made smaller than its client minimum size. + +If the size set by the client seems too small, you can +override it by setting "@b(clientMinimumWidth)" and +"@b(clientMinimumHeight)" in your preferences file. +If you reread your preferences file (via the "@b(Read Profile)" entry +in the manager menu), these will affect future applications +of the same class. + +You can also set "@b(clientMaximumWidth)" and "@b(clientMaximumHeight)" +to override the client's maximum size hint. + +@section(User Minimum Size) + +When a window is enlarged or opened, an adjacent window may be +shrunk automatically by @b(rtl). A window is never shrunk +any smaller than its @b(user minimum size). +The wm will not let you make the @b(user minimum size) smaller +than the @b(client minimum size). + +You may set a window's user minimum size by selecting +"@b(Set Size)" from a window's menu, and then selecting +"@b(Normal Min)" from the submenu. You can then press or click +on a side or corner, and resize to indicate the minimum size. + +You can set the user minimum size on a per-window-class basis +by setting "@b(userNormalMinWidth)" and "@b(userNormalMinHeight)" +in your preferences files, but these will not be applied to +existing windows. + +If you plan to zoom the window, you can set the zoom minimum size +similarly. + +@section(Per Window Options) + +By selecting "@b(Options)" from a window menu, a submenu +indicates various per-window options that you can select: + +@begin(itemize) + +@b2(Locked Open) -- prevents the window from being automatically closed. + +@b2(Fixed Width) -- prevents the window's width from being automatically +changed. + +@b2(Fixed Height) -- prevents the window's height from being +automatically changed. + +@b2(Fixed Edges) -- prevents the window from being moved or resized +automatically. + +@b2(Listener Tied To Zoom) -- Zooms (unzooms) the window when it becomes +(no longer is) the listener. + +@end(Itemize) + +These options can be set on a per-window-class basis by setting the +corresponding options in the preferences file. +See the Customization section of the Manual. + +@section(Save the Layout) + +Once you have the windows where you want them, have +set the minimum size of your windows, and have determined their +per-window options, you are ready to save the layout. + +Select "@b(Save Layout)" from the manager menu. A question mark +cursor asks for confirmation. Click with the left button to confirm, +with the right button to cancel. +(For a one-button mouse, hold CTRL and SHIFT and click to cancel). + +Selecting "@b(Save Layout)" saves information about all open and closed +windows and their icons in @b(.rtl.layout) file in your home directory. + +@section(Build a Startup File) + +Now that you know which applications you typically like running, you can +build a shell file that starts them up. + +If you name the shell file @b(.rtl.startup), and put in your +home directory, it will automatically get executed, if you +invoke @b(rtl) with the "-s" flag + +@section(Restarting) + +When you subsequently start @b(rtl), the @b(.rtl.layout) file will be +read in and will be used to match up applications that have already +started or which you will start up in the future. + +Until every saved window in +@b(.rtl.layout) is matched by an opened window or icon, +certain automatic strategies used by the window manager to balance screen +space are disabled in order to allow the saved layout to be precisely +restored. + +In the meantime, "@b(Finish Layout)" appears in the window manager menu. +If an expected window does not open for some reason (host down, +program bombs, etc.), the user can tell the window manager to @i(treat) +the layout as finished by selecting "@b(Finish Layout)". + +Alternately, by specifying the flag "-f" when the @b(rtl) is +started, the windows on the screen when @b(rtl) is started are laid out, +but then, the layout is @i(treated) as finished and "@b(Finish Layout)" +does not appear. If you specify the flag "-i", then the layout file +is ignored entirely. + +When the layout has been finished, in whatever way, "@b(Save +Layout)" appears in the place of "@b(Finish Layout)", allowing the user +to change the layout, and resave it, overwriting the old layout file. + +Enjoy! diff --git a/doc/tex/manual5.tex b/doc/tex/manual5.tex new file mode 100644 index 0000000..88d3630 --- /dev/null +++ b/doc/tex/manual5.tex @@ -0,0 +1,2523 @@ +\documentstyle[11pt]{article} + +% +% A tiny little style file that causes more of the page to be used +% +% Richard Furuta +% Department of Computer Science +% University of Maryland +% College Park, MD 20742 +% +% furuta@mimsy.umd.edu +% seismo!umcp-cs!furuta +% +% October 22, 1986, first release +% +% Hacked by Mike Berman ---- textwidth reduced slightly which +% looks better on Impress printers (if we change to other +% printers in the future, change it back!) + +\marginparwidth 0pt +\oddsidemargin 0pt +\evensidemargin 0pt +\marginparsep 0pt + +\topmargin 0pt +\hyphenation{pix-map} + +%\textwidth 6.5in +\textwidth 6.4in % modified for Impress printers +\textheight 8.5 in + +\begin{document} + +\begin{titlepage} + +\begin{center} +{\LARGE\bf +Manual for the +Siemens RTL +Tiled Window Manager +\vspace{1ex} + +\large +Release 5.1 +for use with X11R3 +\vspace{3ex} + +Ellis S. Cohen\\ +Siemens Research \& Technology Laboratories\\ +105 College Road East\\ +Princeton NJ 08540--6668\\ +(609) 734--6524\\[1ex] +Comments or Questions to\\ +rtl@cadillac.siemens.com (internet)\\ +princeton!siemens!cadillac!rtl (uucp)\\[1ex] +17 June 1988 +} +\end{center} + +\vfill + +\begin{abstract} +This manual provides a detailed description of Release 5.1 of the Siemens +RTL Tiled Window Manager, a window manager for X11\footnote{X11 and the X Window +System are trademarks of MIT} clients. + +{\bf A separate document, ``Tutorial: Initial Setup for Using the +Siemens RTL Tiled Window Manager'', should be read first by novice users +of the system.} +\end{abstract} + +\vfill + +\noindent Copyright 1988 by Siemens Research and Technology +Laboratories, Princeton, NJ \\ + +\noindent Permission to use, copy, modify, and distribute this documentation and +the software described for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Siemens Research and Technology +Laboratories not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior +permission. \\ + +\noindent SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + +\end{titlepage} + + +Except for menus and transient pop-up windows, +a tiled window manager does not permit windows to overlap. + +When an attempt is made to open, move, or resize a window, other windows +may be occupying the space needed. This space conflict is resolved by +\begin{itemize} +\item Shrinking, closing, or moving the windows in the way, or + +\item Opening, moving, or resizing the window at a different size or position +than specified, or + +\item Refusing to perform the operation. +\end{itemize} + +Such {\bf side effects} are a major feature distinguishing our tiled window +manager from existing overlapping window managers. + +The Siemens RTL Tiled Window Manager supports an arbitrary layout of +tiled windows. +Windows may be placed anywhere; they do not necessarily line up in +columns. + +The window manager does {\it not} attempt to fill the screen. +Windows have a desired size, and are not made larger than this unless +requested by the user. +Consequently, there may be blank space on the screen. + +While overlapping windows are more familiar, the Siemens RTL Tiled Window +Manager has some important benefits: + +\begin{itemize} +\item It keeps the desktop well organized --- the desktop does not look messy. + +\item Windows are always easy to find. Windows cannot get lost underneath +other windows, and window headers are not obscured by other windows. + +\item Important information is never obscured by other windows. Obscured +windows are shrunk instead, and the application gets a chance to +reformat information to make use of the available space. + +\item Screen space is not wasted by partially visible slivers that contain +useless information. Windows can have their minimum size set to ensure +that all essential information can be presented. If there +is no room on the screen for the window to be fully visible at its +minimum size, the window is automatically iconized. + +\item Users do not have to manually move or shrink adjacent windows to keep +them fully visible when they enlarge or open a window --- the window +manager reorganizes screen space automatically. +\end{itemize} + +This release of the Siemens RTL Tiled Window Manager has the following +features: + +\begin{itemize} +\item Automatic strategies are provided for window placement and sizing. The +degree of automation is controlled by a variety of options. + +\item Windows are decorated with titlebars,borders and gadgets. The size and +presence of these decorations can be individually controlled. + +\item Supports the X11R2 version of the conventions for Client / Window Manager +communications. + +\item The user can save and restore window layouts. That is, RTL is a session +manager as well as a window manager. + +\item Both click-to-type and real-estate-driven focus models are available. + +\item The user can specify a separate icon area and control icon layout within +it. + +\item The wm will optionally write application-specific information over +specified regions of pixmap icons. + +\item The user can override the client's pixmap icon. A variety of snazzy +icons are provided for the usual applications. + +\item Users can perform group-iconification --- display a single icon for a +group of top-level windows (for clients that define window groups). + +\item Support is provided for both 3-button and 1-button mice. + +\item Using preference files, users can organize applications in a class +hierarchy, for purposes of inheriting option settings. +\end{itemize} + +This is the first tiled window manager developed that supports arbitrary +layouts, and is as much a research vehicle as a production-quality window +manager. Consequently, there are an extremely large number of options +that may be set by the user (although naive users can use the default +option settings, or one of the preference files distributed with the +system). We are particularly interested in users' experiences with +various option settings. + +The manual is organized as follows: + +\begin{enumerate} +\item {\bf Windows and Icons}: This describes how the window manager decorates +client windows with a header, borders and gadgets, and how they are used. +It also describes the contents, use, and placement of icons. + +\item {\bf Window Sizes and Positions}: Describes minimum, maximum, and desired +sizes for both normal and zoomed windows, and desired positions. + +\item {\bf The Pointer Interface}: Describes pointer related aspects of +the user interface, including the difference between the focus and the +listener window. + +\item {\bf Manager Menu}: Describes the global operations that can be performed +from the window manager menu. + +\item {\bf Window Menu}: Describes the operations that can be performed on an +individual window. + +\item {\bf Icon Menu}: Describes the operations that can be performed on an icon. + +\item {\bf Customization and Startup}: Explains how to customize the window +manager via various files specifying tools, preference files +(which set options globally or on a per window-class basis), and startup +and layout files. Indicates how these are used on startup. + +\item {\bf Automatic Strategies}: How the window manager automatically adjusts +the size and position of windows to keep the desktop tiled and balance +competing demands for screen space. + +\item {\bf Standard X11 Properties}: How standard X11 properties are used by the +window manager. + +\item {\bf Client Placement}: Actions that a client can take which affect the +placement of windows. + +\item {\bf Options}: Describes the options and their default values. +\end{enumerate} + +Both a tutorial manual, and a separate ``{\bf Quick Reference Page}'' are +available as part of the distribution. + +In addition, an 18 minute videotaped demonstration of the system +(previously shown as part of the video program at both CHI+GI '87 +in Toronto and Interact '87 in Stuttgart) is available for loan +by writing to +\begin{verse} +Software Technology Department\\ +Siemens RTL\\ +105 College Rd East,\\ +Princeton NJ, 08540. +\end{verse} + +\section{Windows and Icons} + +\subsection{Windows} + +Windows created by an X11 client are reparented within a larger window +owned by the window manager. In addition to the client's window, +the larger window is {\it decorated} by the window manager with +a border, a header, and two ``gadgets''. + +The border is used primarily for resizing --- the sides for +one-dimensional resizing, and the corners for two-dimensional resizing. +A window's border is shown in reverse image when that window is the +{\bf focus} --- that is, when a key press would be transmitted to the +client which owns the window. The border is also used for initiating +constrained window moves. + +The border described is provided by the window manager, not the one that +X11 supports as part of the basic window structure. In fact the window +manager hides the client's border while it is running. + +The header can display the window class, the window name, and/or +the client machine on which the application is running. +It is also used for popping up a menu of window operations. +A window's header is shown in reverse image when that window is the +{\bf listener} --- that is, when it is the last window which has received input. + +To the left of the header is the {\bf zoom gadget} --- it is used for +``zooming'' and ``unzooming'' windows, and for enlarging a window +to its desired or maximum size. When a window is unzoomed, the +gadget displays a ``closed box'', and when it is zoomed, it displays an +``open box''. + +It is possible to tie listener to zoom --- that is, whenever a window becomes +the listener, it is automatically zoomed, and when it is no longer the +listener, it is automatically unzoomed. Windows so tied have a +horizontal line through their zoom gadget. + +To the right of the header is the {\bf move gadget} --- it is used for +moving, relocating, and exchanging windows. + +Various options are available for setting the sizes of decorations, and +for determining, on a per-window basis, whether they should used. + +\subsection{Icons} + +When a window is closed, the window title is placed in a submenu +of the window manager menu, and an icon for the window may +optionally be displayed. + +Through the {\sc WM\_HINTS} standard property, X11 allows the client to +provide an icon pixmap which will be displayed when the window is +iconized. Through preference files, the user can specify an icon pixmap, +and this will override the one provided by the client. + +If an icon pixmap is not provided, a default icon +is created by the window manager containing the window class, +the icon name (or window name if no icon name is provided), and/or +the client machine. + +Preferences can designate the area of the screen to be used +for icons and can specify the layout of the icons within that area. + +X11 allows clients to indicate a client icon window in the {\sc WM\_HINTS} +structure --- that is, a window into which the client can draw, which acts +as an icon. Client icon windows are not supported in release 5.1. +However, if a client attempts to map a client icon, a default icon, or +one containing an icon pixmap (if provided) is used instead. + +Icons provide a limited input channel to the client. Key presses when +the icon window is the focus may optionally be routed to the client. In +addition, mouse button combinations that are not interpreted by the +window manager may also be routed to the the client, and may be used by +clients that wish to put up special icon menus or take other actions. + +A special icon, the Siemens RTL icon, may be included on the screen. +Through it, the main window manager menu may be popped up (though it may +also be popped up from the background or as a submenu of each window +menu). + +\section{Window Sizes and Positions} + +Windows have a {\bf user minimum} size and a {\bf user maximum} +size which may be set by the user. A window will be closed if less than +the minimum space is available for the window, and those operations which +enlarge a window (Enlarge, Expand, and Fill) will never enlarge a window +above its maximum size. + +Windows also have a {\bf client minimum} and a {\bf client +maximum} size --- set by a client using the X11 standard +property {\sc WM\_NORMAL\_HINTS}. +The client minimum and maximum are optionally enforced. If they are +enforced, the user minimum may not be set smaller than the client +minimum, and the user maximum may not be set larger than the client +maximum. + +Windows have a a {\bf desired size}. Whenever a window is +explicitly resized (by either the user or the client), its desired size +is set to this size. +Whenever possible, the window manager tries to ensure that a window is at +least as large as its desired size, enlarging a window to its desired +size when space becomes available. The desired size may also be set by a +client using {\sc WM\_NORMAL\_HINTS}. + +Users may leave windows in their normal state, or they may zoom them +(later unzooming them to restore them back to their normal state). +There are separate {\bf desired} and {\bf user minimum} sizes +for the normal and zoomed states. +The window manager ensures that the zoomed sizes are +always at least as large as their normal (unzoomed) counterparts. + +Windows have a {\bf desired position} --- a location at which the window +manager tries to keep the window centered. +Each time the user manually changes the size or placement of a window, +its center becomes the new desired position. + +The client may change the desired position by specifying the +top-left of the window in {\sc WM\_NORMAL\_HINTS}. If a size is specified in +{\sc WM\_NORMAL\_HINTS} as well, then the center of the rectangle determined +by that size and the top\_left coordinates are taken to be the new desired +position. If no size is specified, then the current window size is used. + +Icon sizes are fixed, although, if the {\bf icon\_pixmap} is changed, the +icon size will change as well. + +Like windows, icons have a {\bf desired position}, and this changes when +the user moves the icon. The client can change the icon desired position +by specifying a new position using {\sc WM\_HINTS}. + +\section{The Pointer Interface} + +\begin{quotation} +{\bf NOTE:} +This manual descibes the default user interface based on a three button +mouse with the default meanings for mouse button usage. These defaults +may be changed. +A {\bf Quick Reference Page} is available for this default interface, as +well as for the default interface provided for use of a one-button mouse. +See the section on Customizations and Startup. +\end{quotation} + +We have adopted a number of important principles that relate to use of the +pointer, which are described below. +We believe these contribute to the pleasant ``feel'' of the system. + +\subsection{Mouse Button Model} + +\paragraph{Press-Move-Release vs Click-Move-Click} + +The press-move-release, and the click-move-click buttoning styles are +interchangeable. +For example, to begin moving a window, the user can hold the SHIFT key +down while using the middle button of a border. +\begin{itemize} +\item For the press-move-release style, the user can +{\it press} the middle button in the border, hold it down while +moving the mouse to another location, and then {\it release} the button. + +\item For the click-move-click style, +the user can {\it click} the middle button in the border, +move the mouse to another location, and then +{\it click} again. +\end{itemize} + +\paragraph{Cancellation while Tracking} + +Every operation that involves mouse movement is cancellable at any +time by pressing the right mouse button. +For example, after pressing or clicking the middle button in the +border, the user can begin moving the +window around. +At any time, if the right button is pressed, +(whether the middle button is +being held down or was clicked), the move is cancelled, +and the pointer is (optionally) moved back to the position at +which the operation was started. + +\paragraph{Redundancy of Buttons and Decorations} + +In the default interface, the left button is used for sizing windows, +the middle button for moving windows, and the right button for +popping up menus and cancelling operations. + +There is a redundant correspondence between the button used and the +decoration used. For example, the zoom gadget is used for sizing +operations, and is primarily used with the left button. +The move gadget is primarily used with the middle button, and +popping up menus is done in the header with the right button. + +This redundancy provides a certain amount of flexibility. +First, it means that a three button mouse is not necessary. +The decoration in which a button is pressed, +could, along with modifier keys (e.g. SHIFT and CTRL) be used to +distinguish operations. + +On the other hand, the decorations can be made optional. +In fact, windows are not required to have borders, headers or gadgets +(and can even have just the zoom but not the move gadget). +To support this, the bindings of operations to decorations are specified +by options and can be changed so that, for example, all +operations can be performed from the borders. + +\paragraph{Consistent use of CTRL and SHIFT} + +CTRL and SHIFT are used as modifiers to distinguish similar sorts of +operations. For example, there are three kinds of move operations +obtained by using the middle button in the move gadget: {\bf Relocate}, +used for changing the size and location of a window, uses +no modifiers; {\bf Move}, for moving a window at its current size, requires +the SHIFT key; and {\bf Exchange} requires the CTRL key. + +Use of both CTRL and SHIFT is reserved for special cases. +CTRL and SHIFT left or middle button in either gadget redraws the window. +CTRL and SHIFT right button (the ``cancel'' button) in either gadget +closes the window. + +\subsection{Feedback} + +\paragraph{Watch Cursor} + +When the system is completing a user operation, or a client operation +that may affect screen layout, a watch cursor is +displayed, and input is queued. + +\paragraph{Cursor shows State} + +In the midst of tracking a window operation, the cursor indicates both +the operation and the state. +For example, during the {\bf Move} operation, the cursor changes to a hand. +There are some operations (such as {\bf Relocate}, discussed later) +where the state may change during the operation. +When the state changes, the cursor changes as well. + +\paragraph{Cursor indicates Pointer Position} + +When the system is {\it not} in the midst of tracking a window operation, +the cursor changes to indicate the sort of decoration in which it is +positioned. +For instance, there are eight different sorts of border areas +(four sides and the four corners), and a different cursor for each one. +The cursor changes immediately when it moves from one to another. +Consequently, there is no need to guess (from the position alone) whether +the cursor is in the header or border, or in a side border vs. a corner +border. + +\paragraph{Confirmation} + +Some irrevocable operations (e.g. deleting a window, saving the layout, +exiting from the window manager) require confirmation. The cursor +changes to a question mark in this case. To cancel the operation, the +right ( ``cancel'' ) button is used. The left or middle buttons confirm +the operation. + +\paragraph{Rubber Banding during Tracking} + +Rubber-banding is used to provide feedback about the final window size +during resizing, moving, and opening a window. This is especially +important because of {\bf gravity}, which adjusts the edge of the +rubber-band when it is near the edge of another window. + +\paragraph{Warping} + +After an operation is completed, the pointer (optionally) is warped to a +position where the operation can be easily modified. +For example, after moving a window, the pointer is placed in the move +gadget so that it can be moved again. + +\subsection{Focus and Listener} + +Our window manager distinguishes between the {\bf focus} --- the window +to which a keypress would currently be sent, and the {\bf listener} --- the +window to which input was last directed. + +\paragraph{Focus Follows Pointer} + +When the option {\bf focusFollowsPointer} is on, a ``Real-Estate-Driven'' +interface is used --- the focus is the +window which contains the pointer. However, if the client has +set the input field in {\sc WM\_HINTS} for that window to {\it false}, there will +be no focus when the pointer is in the window; the client must +explicitly set the input focus to obtain keyboard input. + +When the option {\bf focusFollowsPointer} is off, the interface changes +to ``Click-To-Type'' --- the user must click a +mouse button in the window in order to change the focus (and since the +click is sent to the client, the listener changes as well). If the +client has set the input field in {\sc WM\_HINTS} for that window to {\it false}, +then the click is reported to the client, but the current focus and +listener are simply deselected; as described above, the client must +explicitly set the input focus to obtain keyboard input. + +\paragraph{Preventing Client Side Effects to an Active Listener} + +When the listener window is also the focus, we call it an {\bf active +listener}. Since input has just been sent to it and the pointer remains +within it, it is actively in use, and the window manager treats such +windows specially for the reason described below. + +X11 clients can open, move or resize a window independently +of the user. +Such actions may be unpredictable --- they may happen at any time --- and +they may affect other windows, causing them to shrink or close. +Such asynchronous unpredictable actions can be especially annoying when +they affect the window in which the user is currently working. + +Consequently, as an option, it is possible to prevent a listener from being +closed, and to prevent an active listener from being resized or moved as +a side effect of an operation performed by a client. + +\paragraph{Listener Tied To Zoom} + +Some overlapping window managers automatically raise a window when it +becomes the listener, on the belief that a window in use should be +completely visible. +We allow a window to be zoomed when it becomes the listener for a similar +reason. + +In our tiled window manager, a window may be shrunk as a result of side +effects caused by operations on other windows. When it becomes the +listener, the user may desire that it be zoomed to an effective working +size. When the window is no longer the listener, it may be allowed to be +unzoomed. This behavior ensues if the window option +{\bf listenerTiedToZoom} is on. + +If the window option {\bf zoomTiedToDesire} is set, then a window's zoom +desire size is taken to be it's normal desire size -- that is, when the +window is zoomed, it is zoomed to its normal desired size. + +\paragraph{Preventing a Change of Listener} + +Users may wish to direct input to another window without +changing the listener. There are two reasons why this is useful: + +\begin{enumerate} +\item The listener is generally prevented from being closed as a side effect +of an operation by a client. The user may want to retain this property +of the current listener while temporarily typing into another window. + +\item Even though the user has tied a window's listener to zoom, he may only need +to temporarily type something in it (e.g. start a compilation) and there +is no reason to zoom it (and correspondingly unzoom the current listener if +it is tied as well). +\end{enumerate} + +If {\bf focusFollowsPointer} is on, the user may simply move the +pointer to the {\it header} of the other window and type. +Input is directed to that window's client. +However, the original listener remains unchanged, and +is still prevented from being closed (but not moved or resized) as a +side effect of a client operation. +The temporary listener is prevented +from being closed, moved or resized while it is the focus. + +If {\bf focusFollowsPointer} is off, the user may obtain the same +result by clicking in the header of the other window. To return the +focus to the original listener, the user just leaves the temporary listener +window. + +\section{Manager Menu} + +Pressing or clicking the right button in the background or in the RTL +icon will pop up the main manager menu. This menu also appears as a +submenu of the window menu. It contains the following entries: + +\begin{enumerate} +\item {\bf Redraw All} --- Redraws the screen + +\item {\bf Lock Screen} --- Locks the screen until the user types a password. + +\item +{\bf Closed Windows} --- Pops up a submenu of all closed windows. +Selecting one opens it. +Depending upon an option, the user either will +be asked to place it, or a place will be found automatically for it. + +If the user is asked to place it, the cursor changes to a dotted box and +the corresponding icon (if it is open) will be highlighted. +The user can then move the pointer into the icon (the cursor will change +to a draped box) and click to have +the window opened automatically at a position +selected by the window manager. + +Alternately, the user can leave the pointer outside of the icon. +Double clicking will place the window with its center at (or near) the +pointer. + +However, just pressing (or single clicking) changes the cursor again, to +an ``anchored arrow'' signifying that the user is to size the window. +The current pointer location becomes the top left corner of the window. +The user can then move the pointer to specify the bottom right corner. + +Releasing (or clicking again) finishes the sizing and places the +window at or near the size and position specified. The +window's desired size is set to the size indicated by the user unless the +CTRL button is depressed. + + +\item {\bf Tools} --- Pops up a submenu of applications. +Clicking on one of these runs the corresponding application. +The section on customization describes how the Tools submenu is +specified. + +\item {\bf Prorate} --- Fairly reallocates space to the windows based upon their +minimum and desired sizes. + +\item {\bf Fill} --- Allows each window to grow to its maximum size in an attempt +to use up screen space. + +\item {\bf Undo} --- Undoes the last operation by the user which changed the +layout of the screen. + +\item +{\bf Repopulate} --- Reopens closed windows. A submenu indicates three +kinds of repopulation: + +\begin{itemize} +\item {\bf Repopulate Auto} --- Attempts to reopen windows that were automatically +closed. + +\item {\bf Repopulate All} --- Attempts to reopen all closed windows. + +\item {\bf Repopulate Last} --- Attempts to reopen windows which were +automatically closed during the previous window operation. +\end{itemize} + + +\item {\bf Read Profile} --- Rereads a user profile and updates option +settings in existing windows corresponding to options that have changed +in the profile. See the Customization and Options sections for more +information. + +\item +{\bf Finish Layout} or {\bf Save Layout} --- When the window manager is +initially started up, the windows already on the screen are matched +against ones described in the {\bf .rtl.layout} file; when one matches, the +window's size, position, state, and options are restored from the +information associated with window in the saved layout file. +The same is done even after the window manager is already running and a +client initially maps a new window or icon. + +Until every saved window in +{\bf .rtl.layout} is matched by an opened window or icon, +certain automatic strategies used by the window manager to balance screen +space are disabled in order to allow the saved layout to be precisely +restored. + +In the meantime, ``{\bf Finish Layout}'' appears in the window manager menu. +If an expected window does not open for some reason (host down, +program bombs, etc.), the user can tell the window manager to {\it treat} +the layout as finished by selecting ``{\bf Finish Layout}''. + +Alternately, by specifying the flag ``-f'' when the {\bf rtl} is +started, the windows on the screen when {\bf rtl} is started are laid out, +but then, the layout is {\it treated} as finished and ``{\bf Finish Layout}'' +does not appear. If you specify the flag ``-i'', then the layout file +is ignored entirely. + +When ``{\bf Finish Layout}'' does not appear, ``{\bf Save Layout}'' appears in +its place. +Selecting ``{\bf Save Layout}'' saves information about all open and closed +windows and their icons in {\bf .rtl.layout}. + + +\item {\bf Notify All} --- Send a {\sc BANG!} message to all windows that accept the +message. +Not implemented in Release 5.1. + +\item {\bf Soft Kill All} --- If a client has a window that accepts a {\sc BANG!} +message, the message is sent to that window. +When each such client has updated the {\sc WM\_COMMAND} property of its +accepting window, the wm kills the client. All other clients (all +clients in release 5.1) are killed immediately. + +\item {\bf Hard Exit} --- Kills all clients and exits the window manager. + +\item {\bf Detach Manager} --- Opens all client windows and exits the +window manager. +\end{enumerate} + +\section{Window Menu} + +Pressing or clicking the right button in the header or border of a window +pops up a menu of entries which apply to that window. +Most of the window operations which can be invoked through the menu can +also be invoked, as indicated in parentheses, by buttoning the mouse in a +border or gadget. + +\begin{enumerate} +\item {\bf Title} --- Moving the pointer to the right of the menu entry displays +the full window title (in case the window header is too small to fully +display it). + +\item {\bf Redraw} ({\sc CTRL SHIFT LEFT/MIDDLE BUTTON in GADGET}) --- Redraws the +window. + +\item {\bf Manager} --- Pops up the main window manager menu. + +\item {\bf Close} ({\sc CTRL SHIFT RIGHT BUTTON in GADGET}) --- Closes the window. + +\item {\bf Group Close} --- If the window is part of a window group, hides all +windows and icons in the group and opens an icon for the group leader. +If not part of a group, acts like {\bf Close}. + +\item +{\bf Resize} ({\sc LEFT BUTTON in BORDER}) --- For resizing the window. + +The user moves the pointer on or near the appropriate place on the window +border to determine the side or corner to be resized. The cursor changes +to indicate which one would be selected. + +The user then presses or clicks (with any but the right button) to begin +resizing. If the button is clicked with SHIFT depressed, then gravity is +disabled (though if gravity is currently disabled by an option setting, +SHIFT enables it). + +The mouse is then tracked by a window outline, which will be bounded by +the client minimum and client maximum size if these are enforced. +Depending upon option settings, the window outline may also be bounded by +the user minimum and maximum size. +If they are not so bounded, and the user resizes the window above the +user maximum or below the user minimum size, the user maximum or minimum +size will be reset. + +Releasing or re-clicking the mouse button finishes the resize. The +window's desired size is set to the size indicated by the user unless the +CTRL button is depressed. + + +\item +{\bf Relocate} ({\sc MIDDLE BUTTON in MOVE-GADGET}) --- For relocating the +window to a new location possibly with a new size. + +The cursor changes to a dotted box and is warped to the center of the +window. The user then can move the pointer to another location. + +Double clicking will relocate the window with its center at (or near) the +pointer. + +However, just pressing (or single clicking) changes the cursor again, to +an ``anchored arrow'' signifying that the user is to size the window. +The current pointer location becomes the top left corner of the window. +The user can then move the pointer to specify the bottom right corner. + +Releasing (or clicking again) finishes the sizing and relocates the +window at or near the size and position specified. The +window's desired size is set to the size indicated by the user unless the +CTRL button is depressed. + + +\item +{\bf Move} ({\sc SHIFT MIDDLE BUTTON in MOVE-GADGET}) --- For moving the +window at its current size to a new location. The cursor changes to a +hand and is warped to the center of the window. The user then can move +the pointer to another location. + +Clicking finishes the move and places the window exactly where specified. + +({\sc MIDDLE BUTTON in BORDER}) also initiates a move. In the side border, +the move is constrained in one dimension. If the {\sc SHIFT} key is held +down as well, gravity is toggled during the move. + + +\item +{\bf Exchange} ({\sc CTRL MIDDLE BUTTON in MOVE-GADGET}) --- Used for +exchanging the location of two windows, or of a window and an icon. The +cursor changes to a pair of opposite pointing arrows. The user can then +move the pointer to an icon or another window. + +Clicking in a window exchanges the locations of the two windows. +Clicking in an icon closes the open window and opens the iconized +window in its place. + + +\item {\bf Expand} --- Expands the window in the available white space +surrounding it (up to its maximum size), without affecting any other +windows. Sets the window's desired size to the resulting size. + +\item {\bf Desire} ({\sc LEFT BUTTON in ZOOM-GADGET}) --- Enlarges the window +up to its desired size, by shrinking (but not closing) the other windows +on the screen. + +\item {\bf Shrink} --- Shrinks the window to its minimum size. The desired size +is not changed though, so on subsequent window operations, the window +will grow back to its desired size. + +\item {\bf Enlarge} ({\sc CTRL LEFT BUTTON in ZOOM-GADGET}) --- Makes the window as +large as possible up to its maximum size, by shrinking (but not closing) +the other windows on the screen. + +\item {\bf Zoom} or {\bf Unzoom} ({\sc SHIFT LEFT BUTTON in ZOOM-GADGET}) --- Zooms +or unzooms the window. + +\item {\bf Set Size} --- A submenu for setting the various sizes associated with +the window (Normal Min, Normal Desired, Zoom Min, Zoom Desired, +Max). The details are the same as for Resize. + +\item +{\bf Options} --- A submenu for setting and unsetting various window +options. The option is set if it is checked in the menu. +Selecting the entry toggles the setting. + +\begin{itemize} +\item {\bf Locked Open} --- prevents the window from being automatically closed. + +\item {\bf Fixed Width} --- prevents the window's width from being automatically +changed. + +\item {\bf Fixed Height} --- prevents the window's height from being +automatically changed. + +\item {\bf Fixed Edges} --- prevents the window from being moved or resized +automatically. + +\item {\bf Listener Tied To Zoom} --- Zooms (unzooms) the window when it becomes +(no longer is) the listener. + +\item {\bf Zoom Tied To Desire} -- Uses the normal desired size in place +of the zoom desire size. + +\end{itemize} + + +\item {\bf Notify} --- Sends the {\sc BANG!} message to the window if it accepts it. +Not implemented in release 5.1. + +\item {\bf Soft Kill} --- If the window accepts the {\sc BANG!} message, it is +sent to it. When the client has updated the {\sc WM\_COMMAND} +property of its accepting window, the wm kills the client. +If the window does not accept the {\sc BANG!} message, the client is +immediately killed. In release 5.1, simply kills the client. + +\item {\bf Hard Kill} --- Kills the client. +\end{enumerate} + +\section{Icon Menu} + +The icon menu is very similar to the window menu. It is popped up by +pressing the right button inside the icon. + +\begin{enumerate} +\item {\bf Title} --- Displays the title. + +\item {\bf Redraw} ({\sc CTRL SHIFT LEFT/MIDDLE BUTTON}) --- Redraws the icon. + +\item {\bf Manager} --- Pops up the main window manager menu. + +\item +{\bf Open} ({\sc LEFT BUTTON}) --- If the icon is associated with a closed +group, restores the windows and icons of that group. + +If the icon corresponds to a single window, then Open is used for opening +that window: + +The cursor changes to a draped box. + +The user can leave the pointer in the +icon (or move it there if the menu selection left it outside the icon), +and click, and the window will be opened automatically at a position +selected by the window manager. + +Or, the user can move the pointer outside of the icon. It will change to +a dotted box and the user can then specify the size and potentially the +location just as for a Relocate. + + +\item {\bf Move} ({\sc MIDDLE BUTTON}) --- For moving the icon to a new location. + +\item {\bf Exchange} ({\sc CTRL MIDDLE BUTTON}) --- Used for exchanging the +location of two icons, or of a window and an icon. Exchanging two icons +exchanges their positions. Exchanging an icon and a window closes the +open window and opens the iconized window in its place. + +\item {\bf Options} --- The submenu for setting and unsetting various window +options. + +\item {\bf Notify} --- Sends the {\sc BANG!} message to the window if it accepts it. +Not implemented in release 5.1. + +\item {\bf Soft Kill} ({\sc CTRL SHIFT RIGHT BUTTON}) --- If the window accepts +the {\sc BANG!} message, it is sent to it. When the client has updated the +{\sc WM\_COMMAND} property of its accepting window, the wm kills the client. +If the window does not accept the {\sc BANG!} message, the client is +immediately killed. In release 5.1, simply kills the client. + +\item {\bf Hard Kill} --- Kills the client. +\end{enumerate} + +\section{Customization and Startup} + +The window manager can be customized via files in three ways: by setting +options in preference files, by specifying the tools to appear in the +tools submenu, and by arranging for applications to be started up +automatically when the window manager is started. + +All files opened by the window manager are looked up in the +directory named in the {\bf RTLENV} environment variable, and if that +fails, in the user's home directory. + +Copies of the files used by the developers may be found in the +subdirectory {\bf custom} in the distribution. + +\subsection{Startup} + +If the ``-s'' flag is specified when the window manager is started up, +the file {\bf .rtl.startup} is executed. +Typically it contains a shell file which starts up various applications. + +If the ``-l'' flag is specified when starting the window manager, and a +window saved in the {\bf .rtl.layout} file does not appear on the screen, +then a process is started which would open that window. Both the host +and the command line are obtained from the layout file; when the layout +file was saved, these were obtained respectively from the +{\sc WM\_CLIENT\_MACHINE} and {\sc WM\_COMMAND} properties of the window. +Not implemented in release 5.1. + +If the flag ``-f'' is specified when the window manager is started, then +the layout is treated as finished. However, if the ``-l'' flag is +specified as well, the commands associated with missing windows are still +executed. + +\subsection{Tools} + +Each tool is registered in the file {\bf .rtl.tools} as a pair of lines. +The first line is the name of the tool as it should appear in the tools +submenu. +The second line is a command to be executed when the menu entry is +selected. + +\subsection{Preference Files} + +Options that control the behavior of individual windows, or of the window +manager as a whole, are obtained from a number of preference files, +primarily ``.Xdefaults'', and ``.rtl.preferences''. Release 5.1 reads +these files directly, and does not use the resource database described in +the Xlib manual. + +Options that control the behavior of windows of a specified name or class +are additionally obtained from the files {\bf .$<$name$>$.preferences} +and {\bf .$<$class$>$.preferences}, where ``$<$name$>$'' and ``$<$class$>$'' refer to the +resource name and resource class of the window (specified by the +{\sc WM\_CLASS} property). + +Preferences used by window manager take the form +\begin{verbatim} + Wm.option: value +\end{verbatim} +or +\begin{verbatim} + Wm..option: value +\end{verbatim} +or +\begin{verbatim} + Wm..option: value +\end{verbatim} +or +\begin{verbatim} + Wm*option: value +\end{verbatim} + +{\bf Wm} is the class for all window managers. Instead of {\bf Wm}, {\bf rtl}, +the name of our window manager, can be used instead. + +Some options are global and refer to the window manager as a whole. +These use the form ``{\bf Wm.option}''. + +Others are applied on a per-window basis. + +Per-window options prefixed by {\bf Wm} and a {\it class} +are used to determine the the value of that option for all windows of +that {\it resource-class}. + +Per-window options prefixed by {\bf Wm} and a {\it name} are used to +determine the the value of that option for all windows of that +{\it resource-name}, and override the +{\it class}-prefixed option value for that window if specified. + +Options prefixed by {\bf Wm*} are used to set default option values for +all windows. + +The {\it resource-class} and {\it resource-name} of a window come from its +{\sc WM\_CLASS} property. + +\begin{quotation} +{\bf NOTE:} Some older applications do not set a window's {\sc WM\_CLASS}. +In that case, its resource-class is taken to be the same as its window +name (i.e {\sc WM\_NAME}). +\end{quotation} + +\begin{quotation} +{\bf NOTE:} Some applications incorrectly use strings for the resource name +and resource class that contain spaces. These cannot be used to +obtain options. +\end{quotation} + +The order of ``{\bf Wm}''-, class-, and name-prefixed options in the +{\bf .rtl.preferences} file is immaterial. + +Users may change the any of the preference files and reread them by +selecting ``Preferences'' from the ``Read Profile'' submenu of the main +manager menu. +Any changes in the file will be immediately reflected +in all windows --- open or closed. + +The file {\bf .../src/defaults.i} contains the default settings for all +options. + +Certain options may be changed on a per-window basis through the +``Options'' entry of each window menu. The submenu entries and the options +affected are + +\begin{verbatim} + Menu Entry Option + ---------- ------ + + Locked Open requireManualClose + Fixed Width fixedWidth + Fixed Height fixedHeight + Fixed Edges fixedCompletely + Listener Tied To Zoom listenerTiedToZoom + Zoom Tied To Desire zoomTiedToDesire +\end{verbatim} + +When these options are changed explicitly through the ``Options'' submenu, +changes made to them via rereading preference files will +have no effect. The current values of these options are saved for each +window in the {\bf .rtl.layout} file and are restored as each window is +reopened when the window manager is restarted. + +\subsection{Profile Menu} + +The file {\bf .rtl.profiles} menu is used for adding additional entries +to the ``Read Profile'' submenu. + +Each profile is registered in the file {\bf .rtl.profiles} as a pair of +lines. +The first line is the name of the profile as it should appear in the +``Read Profile'' submenu. +The second line contains a list of preference files (separated by +blanks) to be read when the menu entry is selected. + +These named preference files, like all other customization files opened +by the window manager, are looked up in the directory named in the +{\bf RTLENV} environment variable, and if that fails, in the user's home +directory. Support is also provided for files named by paths beginning +with ``/'' (absolute path names) and with ``\verb+~+'' (paths +rooted in a user's +home directory). + +When an entry is selected from the ``Read Profile'' submenu, the +standard preference files are read first, before the files +associated with the menu entry. +Thus the additional preference files can be used to add or override +options specified in the standard preference files. + +There are a number of additional preference files included with the +distribution. These illustrate many of the issues described in the +section below on ``Automatic Strategies''. + +\subsection{Button Semantics} + +The file {\bf .../src/interf\_init.c} in the distribution determines the +association of mouse buttons / modifier combinations (e.g. CTRL Middle +Button) with a particular window manager action. + +Part of the file {\bf .../src/defaults.i} (look for ``Global Interface +Options'') determines whether a particular mouse +button / modifier combination takes effect in a specified region +(e.g. header, border, gadget, etc.). + +By changing these files and recompiling, these associations can be +changed. + +In particular, the files {\bf .../src/interf\_init\_one.c} and +{\bf .../src/defaults\_one.i} in the distribution contain the +default settings for a one-button mouse. + +\section{Automatic Strategies} + +The Siemens RTL Tiled Window Manager can automatically adjust the size +and position of windows to balance competing demands for screen space, or +it can be completely prevented from doing so. + +In the simplest case, windows are placed exactly at the size and location +that the user specifies. Via options, it is possible to prevent windows +from ever being automatically shrunk or closed, and to ensure that +windows opened automatically are reopened exactly at their previous +location. If a window cannot be opened, moved or resized exactly as +specified without causing side effects, the window manager will refuse to +do the operation. + +The options permit considerably more flexibility. There are large number +of options that control automatic behavior and they are described in +detail in the ``Options'' section. In this section, we attempt to describe +some of the more common changes in behavior that our users have explored. + +\subsection{Default Automatic Behavior} + +The default option settings, those in effect if no preference files are +read at all, provide what we consider the minimum automatic behavior that +a user would find acceptable: + +\begin{itemize} +\item Windows may automatically be shrunk and closed (except for an active +listener as a result of a client's action). This may be prevented on a +per-window basis as a result of setting ``Locked Open'', ``Fixed Width'', +``Fixed Height'', or ``Fixed Edges'' in the ``Options'' submenu of a window +menu. + +\item When space is available, windows which were shrunk regrow towards their +desired sizes, though they may not necessarily be located at their exact +original position. + +\item When the window manager automatically places a window, an attempt is made +to place it at its previous location, even if other windows have to be +shrunk or closed. If this fails, however, the window is opened at the +best location nearby. + +\item When a window is unzoomed, an attempt is made to open (or +``{\bf repopulate}'') windows which were automatically closed +since the window was zoomed, but only at their previous positions, and +only if no other windows will be shrunk or closed. +A similar attempt is made when a window is explicitly closed --- to +repopulate windows automatically closed since the window was +opened. + +\end{itemize} + +\subsection{Neighborhood Placement} + +When a window is opened or moved, it may not be possible to place +it exactly at the size and location specified. +Options are available which allow it to be placed nearby its specified +location and/or shrunk below its desired size. + +By nearby, we mean within a ``neighborhood'' of the specified location. +Two kinds of neighborhoods are supported: + +\begin{itemize} +\item A window is placed within a {\bf center neighborhood} +if the window as actually placed contains the center of the window as it +was specified. + +\item A window is placed within an {\bf edge neighborhood} if the window as +actually placed overlaps the window as it was specified. +\end{itemize} + +Pure neighborhoods, as defined above, are somewhat excessive for larger +windows. For example, the edge neighborhood of a window $1/3$ the height +and $1/3$ the width of the screen which is placed at the center of the +screen consists of the entire screen --- that is, it could be placed +anywhere. + +Therefore, we include a {\bf neighborhoodShrinkFactor} option which +shrinks neighborhoods relative to the window size. + +A number of {\bf try..} options determine whether neighborhoods are to be +used at all. + +An excessively large number of {\bf prefer...} options determine +whether neighborhoods are to used in preference to closing or shrinking +adjacent windowa, or shrinking the window being explicitly affected +below its desired size. + +\subsection{Resize} + +When the user resizes a window, the operation fails by default if the +size specified cannot be attained. An option permits the window to be +resized to a smaller size, but this is not always desired. + +To avoid a failed resize, or simply to prevent other windows from being +shrunk or closed, an option permits a resized window to ``slide''. +For example, if the user attempts to enlarge a window by resizing its +left edge, and a window is on its left, but there is space on its right, +the window will grow to the right instead of to the left. + +It is also possible to set options that will move a window being resized +if the resize fails or would close or shrink other windows. + +\subsection{Listener Tied to Zoom} + +When a window has the option {\bf listenerTiedToZoom} set, it will be +enlarged to its zoom size when it becomes the listener. +Depending on various other options, when it is no longer the listener, it +may shrink to its unzoomed size, or just shrink enough to allow adjacent +window to grow back towards their desired size. +In particular, if another window becomes the listener, it will shrink to +provide space for the new listener to zoom. + +Some users prefer all windows to have {\bf listenerTiedToZoom} set. +The effect is similar to overlapping window systems that raise +a window when it becomes the listener, and that allow the window to +be covered again when another window becomes the listener. + +Some users prefer the window option [\b zoomTiedToDesire} to be set as +well, so that when a window becomes the listener, it is enlarged to +its current desired size, rather than a separate zoom size. + +When a window is zoomed, it may become so large that other windows may +close. The option {\bf automaticRepopulateOnAutoUnzoom} reopens them +if possible, providing the illusion that they were hidden by the zoomed +window, and were then exposed when the window was unzoomed. + +\subsection{Moving Conflicting Windows} + +When a window is being opened, resized, or moved, the window manager +appears to move other windows, which occupy the needed space, +out of the way. +This appears to happen for two reasons. + +\begin{itemize} +\item A window in the way is actually shrunk, say on its left, to make room, +and then (because {\bf autoDesiredEnlarge} is set), it grows towards its +right (where there is blank space) back to its desired size. Thus it +appears to move to the right. + +\item +A window in the way is actually closed. However, the option +{\bf autoRepoulateLast} is set, and this tries to reopen windows closed +during an operation. +To achieve the effect of moving the window nearby, either +the option +{\bf preferPreviousPositionOnAutoRepopulate} or the option +{\bf preferPreviousPosition} +should be set. +This will attempt to reopen the window as near as possible to its +previous location. + +Beware: Neither the option {\bf requirePreviousPosition} nor the option +{\bf requirePreviousPositionOnAutoRepopulate} should be set in +conjunction with {\bf autoRepoulateLast}, since they will force the +window to be opened exactly at its previous location, and this will +naturally fail. + +\end{itemize} + +\subsection{Automatic Unzooming} + +When a window is being opened, resized, or moved, one or more of the +windows in the way may be zoomed. Two options determine whether the +window manager should automatically unzoom the window rather than simply +closing it or refusing to do the operation --- {\bf preferUnzoomToClose} +and {\bf unzoomTiedListenerIfNecessary}. + +The option {\bf preferUnzoomToClose} will unzoom a window rather than +closing it. + +However, the listener window is treated specially. For various reasons, the +listener may not be permitted to close. In particular, the default setting +for the option {\bf allowListenerToCloseByClient} prevents clients +from performing an operation (like opening a window) that would allow the +listener to be closed. To allow the listener to be unzoomed in this +situation, the option {\bf unzoomTiedListenerIfNecessary} should be +set. + +\subsection{Automatic Prorating} + +The option {\bf autoProrate} fairly reallocates screen space after +each window operation, based on the minimum and desired size of each +window. This may cause windows to shrink. However, the previous two +windows that had their desired sizes reset will not be shrunk below their +desired sizes. + +If the option {\bf biasedAutoProrate} is additionally set, then +after each operation, it gives as much space as possible to +the listener without closing other windows on the screen. + +To both make windows as large as possible when they become the listener, +and ensure that the window at least attains its zoom minimum, +the options +{\bf autoProrate}, {\bf biasedAutoProrate} and {\bf listenerTiedToZoom} +can all be set. + +\section{Standard X11 Properties} + +Release 5.1 of the Siemens RTL Tiled Window Manager supports the standard +properties described in the Inter Client Communications Conventions +Manual as released on the V11R2 tape. +The properties and their uses are described below. + +\begin{enumerate} +\item +{\sc WM\_TRANSIENT\_FOR}\newline{} +Windows which are transient pop-ups and have extremely short lifetimes +may have the {\bf override-redirect} attribute set so the window manager +will not be involved. However, if the transient window has a long enough +lifetime that its size or position may need to be manipulated by the +user, {\bf override-redirect} should not be used. Instead, the window's +{\sc WM\_TRANSIENT\_FOR} property should be set to refer to the window with +which it is associated. The Siemens RTL Tiled Window Manager will not +tile such a window --- it will sit above the tiled desktop. +It has no decorations and can be moved, mapped and unmapped only by the +client. + + + +\item +{\sc WM\_CLASS}\newline{} +{\sc WM\_CLASS} is a structure containing two strings: {\bf res\_name} and +{\bf res\_class}. + +The {\bf res\_class} field identifues the application. +The {\bf res\_name} field is a string that more specifically identifies the +instance of the application. + +They are used in the {\bf .rtl.layout} file for distinguishing windows on +startup, and for setting the window options from preferences files. + +Both optionally appear in the window header and in icons. + + +\item +{\sc WM\_COMMAND}\newline{} +Holds the command that would be used to restart the application --- +typically the command used to run the application initially. +The window manager saves it in the layout file for identifying a window, +and for restarting the application. + +If the ``-l'' flag is specified when starting the window manager, and a +window saved in the {\bf .rtl.layout} file does not appear on the screen, +then its corresponding command is executed (not in Release 5.1). + + + +\item +{\sc WM\_CLIENT\_MACHINE}\newline{} +The machine on which the application is running. +Typically set once, but +may be changed by applications which migrate from machine to machine. +It optionally appears in the window header and icon, and is used in the +layout file for identifying windows. + + +\item +{\sc WM\_NAME}\newline{} +Information about the application or its current state +which is optionally placed in the window header. It also is used +in an icon when {\sc WM\_ICON\_NAME} is not provided. + + +\item +{\sc WM\_ICON\_NAME}\newline{} +Information about the application or its current state +which is optionally placed in an icon. + + +\item +{\sc WM\_NORMAL\_HINTS}\newline{} +In release 5.1, only the size, position, minimum, and maximum sizes are +used. + + +\item +{\sc WM\_HINTS}\newline{} +The {\bf input} field determines whether the window manager or the client is +responsible for setting the input focus. See the section on ``Focus +Follows Pointer''. + +The {\bf initial\_state} is used to initially determine the display state of +a window when it is first mapped by +the client, and can later be used to change the display state. +See the +section on ``Client Placement''. + +The {\bf icon\_pixmap} is used to determine the contents of an icon. +If no icon\_pixmap is provided, a default icon is built from {\sc WM\_CLASS}, +{\sc WM\_ICON\_NAME} (or {\sc WM\_NAME}) and/or {\sc WM\_CLIENT\_MACHINE}. + +The client may provide an {\bf icon\_window}, but release 5.1 of the +window manager will not map it. An attempt to map it will cause the icon +pixmap (or default icon) to be mapped instead. + +The {\bf icon\_mask} is ignored in release 5.1. + +The {\bf window\_group} field specifies a ``group leader''. All windows +with the same group leader are part of the same group. The user can +close the whole group, and the icon for the group ledaer is displayed. + + +\end{enumerate} + +\section{Client Placement} + +A client can affect the size, location, and presence of a tiled window +by setting properties (particularly {\sc WM\_NORMAL\_HINTS} and +{\sc WM\_HINTS}), by mapping or +unmapping a window, by attempting to map a client icon, or by attempting +to reconfigure a window. These are discussed below. + +\subsection{Initial Window and Icon Mapping} + +When a window is newly created, it or its icon will eventually be +opened. +An attempt to open the window may fail if there is not enough room on the +screen for it, and if windows in the way cannot be shrunk or closed. +In that case, the window's title is placed in the menu of closed windows, +and if icons are to be used, the icon is opened. +If the icon cannot be opened immediately (due to lack of available +space), it will be subsequently opened at the earliest opportunity. + +A window or icon initially will be opened when one of the following two +events occurs: + +\begin{enumerate} +\item +The client maps the window: +\begin{itemize} +\item If the window matches one in the saved layout file ({\bf .rtl.layout}): +Either the window or icon will be open based on which was open when the +layout was saved. If the window is opened, it will be zoomed if it +was when the layout was saved. + +\item +If the window does not match one in the saved layout file (or there +is no saved layout file), and {\sc WM\_HINTS} indicates an {\bf initial state} +of + +\begin{itemize} +\item Ignore or Inactive: Neither window nor icon is opened. + +\item Iconic: The icon is opened if icons are in use. + +\item ClientIcon or Normal: The window is opened unzoomed. + +\item DontCare, or the {\bf initial state} was not set: The window is opened if +the window's option {\bf autoOpenOnCreate} is set; else, the icon is +opened. +\end{itemize} + +\end{itemize} + + +\item +The client maps its client icon window: +\begin{itemize} +\item If the window matches one in the saved layout file ({\bf .rtl.layout}): +Either the window or icon will be open based on which was open when the +layout was saved. If the window is opened, it will be zoomed if it +was when the layout was saved. + +\item +If the window does not match one in the saved layout file (or there +is no saved layout file), and {\sc WM\_HINTS} indicates an {\bf initial state} +of + +\begin{itemize} +\item Ignore or Inactive: Neither window or icon is opened. + +\item Iconic or Normal: The icon is opened if icons are in use. + +\item ClientIcon: The window is opened unzoomed. + +\item DontCare, or the {\bf initial state} was not set: The window is opened if +the window's option {\bf autoOpenOnCreate} is set; else, the icon is +opened. +\end{itemize} + +\end{itemize} + + +\end{enumerate} + +\subsection{Initial Size and Placement} + +A window's initial size is determined by the size specified +when the window was created. +This may be overridden by a size specified by a client in setting +{\sc WM\_NORMAL\_HINTS}. +This may be overridden by the +{\sc DESIRED\_HEIGHT} and/or {\sc DESIRED\_WIDTH} preferences. + +A window's initial position is determined by the size specified +when the window was created. +This may be overridden by a position specified by a client in setting +{\sc WM\_NORMAL\_HINTS}. + +However, when a window matches one in the saved layout file, +both its size and position are taken from the layout +file. + +When a window is to be initially mapped, it will be automatically placed +by the window manager under the following conditions: +\begin{itemize} +\item The size and position are both specified via {\sc WM\_NORMAL\_HINTS}, +and none of the options {\bf ignoreSizeHints}, {\bf ignoreInitialSizeHints}, +{\bf ignorePositionHints}, or {\bf ignoreInitialPositionHints} are set. + +\item The window option {\bf autoPlaceOnClientOpen} is set, the size has +been specified, and neither {\bf ignoreSizeHints} or +{\bf ignoreInitialSizeHints} has been set. + +\item The window option {\bf autoPlaceOnClientOpen} is set, and the global +option {\bf autoPlaceOnUnsizedOpen} is set. +\end{itemize} + +If none of these conditions holds, the user is asked to place the window +manually. This is indicated by a change in the cursor. + +When the window is being automatically placed and its position has +been provided and the window option +{\bf requirePreviousPosition} is set, it will be opened exactly where +specified; if it cannot be opened there, it will be iconized instead. +If {\bf preferPreviousPosition} is set instead, it will be opened as +close as posssible to the provided position. +Otherwise, the window is opened at the ``best'' possible location --- a +place where it interferes least with other windows currently on the +screen. + +When the window manager is initially started, client windows and icons +may already be open. These are treated as if they were explicitly mapped +by the client after the window manager started up. However, if such a +window does not match a window saved in the layout file, it is always +placed as close as possible to its current size and position. + +\subsection{Subsequent Window and Icon Mapping and Unmapping} + +A later attempt by a client to map a window has the following +effect depending upon the value of {\sc WM\_HINTS}.{\bf initial\_state}. + +\begin{itemize} +\item Ignore, Inactive, Iconic, or ClientIcon: No effect + +\item Normal, DontCare, or {\bf initial\_state} was not set: The window is +opened at or near its previous location depending on the +options {\bf requirePreviousPosition} or {\bf preferPreviousPosition}. +If neither is set, the ``best'' location is found. +If no location can be found, it remains iconized. +An attempt is always made to map it at its desired size. +The window will be zoomed if it was zoomed when it was last open. +\end{itemize} + +When a client unmaps its window, this has the following effect depending +upon \\ {\sc WM\_HINTS}.{\bf initial\_state}. + +\begin{itemize} +\item Ignore, Inactive or Iconic: No effect + +\item ClientIcon: Remap the window. + +\item Normal, DontCare, or {\bf initial\_state} was not set: The +pixmap or default icon is opened. +\end{itemize} + +Attempt by a client to map its client icon window (other than the +first time) has the following effect depending upon the value of +{\sc WM\_HINTS}.{\bf initial\_state}. + +\begin{itemize} +\item Ignore, Inactive, Iconic, or ClientIcon: No effect + +\item Normal, DontCare, or {\bf initial\_state} was not set: The +pixmap or default icon is opened. +\end{itemize} + +\subsection{Configure} + +When a client changes the size or position of a tiled window via +XConfigureWindow, the window manager attempts to comply. +If just the size has been changed, the window is enlarged or shrunk. +If the position has been changed, the window is moved as close as +possible to the specified location. + +An attempt to change the border width will be ignored; the window manager +forces the border width to zero. + +Attempts to change the stacking order will also be ignored; tiled windows +do not overlap and are all on the same level. + +Note that transient windows are not tiled, and attempts to reconfigure +them will will succeed as requested, except that attempting to +place a transient window below a tiled window will place it below all +transient windows, but above all tiled windows. + +\subsection{Size Hints} + +Clients setting {\sc WM\_NORMAL\_HINTS} while +a window is open can cause changes in the size or location of the +window. + +If the option {\bf autoResatisfyOnResetMinmax} is set, +and the window no longer satisfies its client minimum or maximum size, +an attempt will be made to enlarge or shrink the window. Even if the +window cannot be enlarged, it will not be automatically closed. +However subsequent user operations will enforce the client minimum size +if {\bf enforceClientMinimums} is set. + +If a new size was specified, it becomes the normal or zoom desired size. + +If either a size or position was specified, and +{\bf autoResatisfyOnResetMinmax} is set, then an attempt is made to +change the size or position of the window. + +Both position and size can be specified as provided by either the user or +program. If either is specified as user supplied, then the hint +is treated as a direct effect of a user action. Consequently, the +limits on client actions ordinarily determined by the option +{\bf allowAutomaticCloseByClient}, the option +{\bf allowAutomaticShrinkByClient}, +{\bf allowListenerToChangeByClient}, and +{\bf allowListenerToCloseByClient} do not apply. + +\subsection{WM\_HINTS} + +Our window manager supports dynamic changes to {\sc WM\_HINTS}. In +particular, changes in the {\bf initial\_state} field are treated as +direction to change the display state of the window: + +The states have the following effects: + +\begin{itemize} +\item {\bf Ignore}: Closes the window or icon if either was open, and removes +it from the closed menu list. + +\item {\bf Inactive}: Closes the window or icon if either was open. + +\item {\bf Iconic}: Closes the window if it was open. Opens an icon if icons are +in use. + +\item {\bf Normal or ClientIcon}: Opens the window if it was closed. + +\item {\bf DontCare}: No change. +\end{itemize} + +Changes to the other supported fields --- {\bf input}, {\bf icon\_pixmap}, +{\bf icon\_x}, {\bf icon\_y}, \\ +{\bf icon\_window}, and {\bf window\_group} +take immediate effect as well. + +\section{Options} + +Options are specified in Preference Files as described in the section of +that name. + +Options may either be {\bf global}, referring to the window manager as +a whole, or per-{\bf window}. + +Options may either be {\it boolean}, in which case they take on the values +{\bf on} and {\bf off}, {\it numeric}, in which case, they take on numeric +{\bf values}, or {\it strings}. + +Options and values may be {\bf semantic}, in which case they control the +decisions made by the window manager, or they may strictly be +{\bf interface}-related --- that is, they simply control the way the screen +looks. + +This section, then, is divided into a number of parts, based on the +orthogonal distinctions of {\bf global} vs per-{\bf window}, boolean +{\bf option} vs {\bf value} vs {\bf string}, and {\bf semantic} vs. +{\bf interface}-related. +Each section contains a list of the relevant option names with their +default value. + +\subsection{Global Semantic Options} + +\begin{itemize} +\item {\bf allowAggressiveRepopulation}: on\newline{} +If on, attempts to open automatically closed windows with the +{\bf aggressivelyRepopulate} option on whenever possible. + +\item {\bf allowAutomaticClose}: on\newline{} +Determines whether windows can be closed automatically (as a side +effect of an operation on another window). + +\item {\bf allowAutomaticCloseMoreRecent}: on\newline{} +If {\bf allowAutomaticClose} is on, but this option is off, then a +window can be closed as a result of a side effect on another +window only if the other window has been used more recently. + +\item {\bf allowAutomaticShrink}: on\newline{} +Determines whether windows can be shrunk automatically (as a side +effect of an operation on another window). + +\item {\bf allowAutomaticShrinkMoreRecent}: on\newline{} +If {\bf allowAutomaticShrink} is on, but this option is off, then a +window can be shrunk as a result of a side effect on another +window only if the other window has been used more recently. + +\item {\bf allowAutomaticShrinkOnAutoRepopulate}: off\newline{} +{\bf allowAutomaticShrinkOnExplicitRepopulate}: on\newline{} +Determines whether windows on the screen can be shrunk as a +result of a Repopulate. Explicit repopulates are those +done when the user selects Repopulate from the menu. +Automatic repopulates include all other +attempt by the window manager to automatically open a closed window. + +\item {\bf allowAutomaticCloseOnExchange}: off\newline{} +{\bf allowAutomaticShrinkOnExchange}: on\newline{} +Determines whether the other windows on the screen can be shrunk +or closed as a side effect of an Exchange. + +\item {\bf allowAutomaticCloseByClient}: on\newline{} +{\bf allowAutomaticShrinkByClient}: on\newline{} +When a client invokes a window operation, these options determine +whether other windows on the screen can be shrunk or closed as a +side effect. + +\item {\bf allowListenerToClose}: on\newline{} +If off, then the window which is the listener cannot close as +a side effect of an operation on another window. + +\item {\bf allowListenerToChangeByClient}: off\newline{} +{\bf allowListenerToCloseByClient}: off\newline{} +When a client invokes a window operation, these options determine +whether an active listener can be shrunk or closed as a side effect. + +\item {\bf allowShrinkOnAutoOpen}: on\newline{} +{\bf allowShrinkOnCenterOpen}: on\newline{} +{\bf allowShrinkOnCornerOpen}: off\newline{} +An attempt to place a window may not succeed if surrounding +windows are in the way which cannot be shrunk or closed. In that +case, the window being placed may have to be made smaller than +its desired size. These options determine whether that is +permitted. A corner open is one where the new location and +corners of the window are chosen by the user. A center open is +one where only the center is chosen by the user. If they are not +set and shrinking is necessary, the operation will fail. + +\item {\bf allowShrinkOnResize}: off\newline{} +When a user explicitly resizes a window, the size selected +may be too large --- that is, adjacent windows may not be able to be +shrunk or closed. +If the option is on, the window will be +made as large as possible up to the size requested. If it is off, the +resize will fail. + +\item {\bf autoDesiredEnlarge}: on\newline{} +If on, then an attempt is made after every operation to enlarge +each window to its desired size without moving or shrinking other +windows. + +\item {\bf autoProrate}: off\newline{} +If on, then automatically prorates after each operation. + +\item {\bf autoRepopulateLast}: off\newline{} +If on, then if a window is closed automatically during an +operation, an attempt is made to reopen it. The window may +appear to have been moved, but it was closed and then reopened. + +\item {\bf autoRepopulateOnAutoUnzoom}: on\newline{} +{\bf autoRepopulateOnExplicitUnzoom}: on\newline{} +These determine whether an attempt is made to repopulate closed +windows following an unzoom. An automatic unzoom occurs when a +zoomed window which has {\bf listenerTiedToZoom} is no longer the +listener. +If the window is destroyed, then repopulation will be done if +either of these options is set. + +\item {\bf autoRepopulateOnClose}: on\newline{} +This determines whether an attempt is made to repopulate closed +windows following an explicit close of the window or the termination of +the client. + +\item {\bf biasedAutoProrate}: off\newline{} +When set, forces automatic prorating to make the most recently used +windows the largest. + +\item {\bf enableAutoRepopulationDuringLayout}: off\newline{} +{\bf enableAutoSizingDuringLayout}: off\newline{} +When initially starting the window manager, if these options are +off, then automatic repopulation, automatic enlargement to +desired size, and automatic prorating are disabled until all +windows matching entries in {\bf .rtl.layout} have been created. + +\item {\bf enableGravity}: on\newline{} +Uses gravity to line up windows. + +\item {\bf onlyRepopulateSinceOnAutoUnzoom}: on\newline{} +{\bf onlyRepopulateSinceOnExplicitUnzoom}: on\newline{} +If on, then following an unzoom or destroy, only windows closed +since the window was zoomed will be reopened. + +\item {\bf onlyRepopulateSinceOnClose}: on\newline{} +If on, then following an explicit close or destroy, only windows +closed since the window was last opened will be reopened. + +\item {\bf preferCloseToShrinkOnAutoOpen}: off\newline{} +{\bf preferCloseToShrinkOnCenterOpen}: off\newline{} +{\bf preferCloseToShrinkOnCornerOpen}: on\newline{} +{\bf preferCloseToShrinkOnExchange}: off\newline{} +{\bf preferCloseToShrinkOnResize}: on\newline{} +Determine whether it is better to close other windows or to +shrink the window being operated upon (assuming both are +permitted by other options). + +\item {\bf preferExchangedLocationOnIconizing}: on\newline{} +When exchanging an iconized window and an open window, determines +whether the preferred location of the icon for the newly closed +window is its previous icon position, or the position of the +currently icon. + +\item {\bf preferExchangedLocationOnOpening}: on\newline{} +If the option is set when exchanging an iconized window and an +open window, and if the currently closed window has not been +positioned or does not require placement at its previous +position, then an attempt is made to place the newly opened +window at the location of the window it is being exchanged with. + +\item {\bf preferPreviousPositionOnAutoRepopulate}: on\newline{} +{\bf preferPreviousPositionOnExplicitRepopulate}: on\newline{} +When a window is being repopulated, determines if an attempt is +first made to place it at its previous location. + +\item {\bf preferCenterNeighborhoodToAutomaticCloseOnOpen}: off\newline{} +{\bf preferCenterNeighborhoodToAutomaticShrinkOnOpen}: off\newline{} +{\bf preferCenterNeighborhoodToShrinkOnOpen}: off\newline{} +When a window is being placed at a location, it may be placed +anywhere where that location is inside the window --- that is +called its ``center neighborhood'' --- depending upon the +{\bf tryCenterNeighborhood...} options. If none of these options +are set, the center neighborhood will only be tried if the window +cannot be exactly placed where requested. These options +additionally try the center neighborhood if exact placement would +succeed, but would close ({\bf AutomaticClose}) or shrink +({\bf AutomaticShrink}) other windows or +would cause the window being opened to shrink ({\bf Shrink}). + +\item {\bf preferEdgeNeighborhoodToAutomaticCloseOnOpen}: off\newline{} +{\bf preferEdgeNeighborhoodToAutomaticShrinkOnOpen}: off\newline{} +{\bf preferEdgeNeighborhoodToShrinkOnOpen}: off\newline{} +When a window is being placed at a location, it may be placed +anywhere where the window would overlap with the exact location +--- that is called its ``center neighborhood'' --- depending upon the +{\bf tryEdgeNeighborhood...} options. If none of these options are +set, the edge neighborhood will only be tried if the window +cannot be exactly placed closer. These options additionally try +the edge neighborhood if closer placement would succeed, but +would close ({\bf AutomaticClose}) or shrink +({\bf AutomaticShrink}) other windows or +would cause the window being opened to shrink ({\bf Shrink}). + +\item {\bf preferDesktopToAutomaticCloseOnAutoOpen}: on\newline{} +{\bf preferDesktopToAutomaticShrinkOnAutoOpen}: on\newline{} +{\bf preferDesktopToShrinkOnAutoOpen}: on\newline{} +When a window is automatically opened, it may express a +preference for being placed at its previous location. If it +cannot be opened there (or in a neighborhood of it), we +will try to place it anywhere on the desktop. These options +additionally try the entire desktop if closer placement would +succeed, but would close ({\bf AutomaticClose}) or shrink +({\bf AutomaticShrink}) other windows or +would cause the window being opened to shrink ({\bf Shrink}). + +\item {\bf preferSlidingToAutomaticCloseOnResize}: off\newline{} +{\bf preferSlidingToAutomaticShrinkOnResize}: off\newline{} +{\bf preferSlidingToShrinkOnResize}: off\newline{} +When a window is being resized in one direction, another window may be +in its way. In that case, we try resizing it in the other +direction if {\bf trySlidingOnResize} is set. These options +additionally try sliding if resizing would succeed, but would +close ({\bf AutomaticClose}) or shrink +({\bf AutomaticShrink}) other windows or +would cause the window being opened to shrink ({\bf Shrink}). + +\item {\bf preferCenterNeighborhoodToAutomaticCloseOnResize}: off\newline{} +{\bf preferCenterNeighborhoodToAutomaticShrinkOnResize}: off\newline{} +{\bf preferCenterNeighborhoodToShrinkOnResize}: off\newline{} +{\bf preferEdgeNeighborhoodToAutomaticCloseOnResize}: off\newline{} +{\bf preferEdgeNeighborhoodToAutomaticShrinkOnResize}: off\newline{} +{\bf preferEdgeNeighborhoodToShrinkOnResize}: off\newline{} +When a window is resized, it may be moved within its center +or edge neighborhoods if the resize or sliding resize cannot be +done or cause windows to close or shrink. These options control +when movement within the neighborhood is tried. + +\item {\bf preferUnzoomToClose}: on\newline{} +When a zoomed window cannot be opened on an explicit or +repopulating open, unzooming may allow the window to open. +This option determines whether unzooming is allowed in this case. + +\item {\bf prorateVerticallyFirst}: on\newline{} +The current prorating algorithm prorates in each dimension +separately. This option determines whether to prorate vertically +first. + +\item {\bf repopulateStrictly}: off\newline{} +Windows are repopulated most recently closed first. If a closed +window cannot be repopulated, and this option is on, then no +attempt is made to repopulate other windows closed less recently. + +\item {\bf repopulateAutoClosedOnly}: on\newline{} +If this option is set, then no attempt is made to repopulate +windows which were explicitly closed on an explicit repopulate. + +\item {\bf requirePreviousPositionOnAutoRepopulate}: on\newline{} +{\bf requirePreviousPositionOnExplicitRepopulate}: off\newline{} +When a window is being repopulated, these options require that it +be placed at its previous position. + +\item {\bf resetZoomMin}: off\newline{} +{\bf resetZoomMinAllowsDecrease}: off\newline{} +{\bf resetZoomMinUsesDesire}: on\newline{} +If {\bf resetZoomMin} is set alone, then zooming a window sets the +zoom\_min of the window to be its current (pre-zoom) size. +If {\bf resetZoomMinUsesDesire} is set along with it, then the +the zoom min is set to the smaller of the current and +normal desired size. +If {\bf resetZoomMinAllowsDecrease} is not set, the zoom min will +not be decreased as a result of this. + +\item {\bf treatMoveLikeRelocate}: off\newline{} +If set, then a Move acts just like a Relocate in terms of allowed +placement. If it is not set, then moving a window requires that +it be placed at its current size (without shrinking) and at the +exact location indicated by the user. + +\item {\bf tryCenterNeighborhoodOnExchange}: off\newline{} +Determines whether windows being exchanged can be placed in +each others center neighborhoods, or whether they must be placed at +exactly the same position. + +\item {\bf tryCenterNeighborhoodOnOpen}: off\newline{} +{\bf tryEdgeNeighborhoodOnOpen}: off\newline{} +Determines whether edge and center neighborhoods can be used when +placing a window. + +\item {\bf trySlidingOnResize}: off\newline{} +{\bf tryCenterNeighborhoodOnResize}: off\newline{} +{\bf tryEdgeNeighborhoodOnResize}: off\newline{} +Determines whether sliding, edge and center neighborhoods can be +used when resizing a window. + +\item {\bf tryRepopulateAgainAfterAutoProrate}: on\newline{} +When automatically prorating, we repopulate before prorating. +This options determines whether to try repopulating after +prorating as well (followed, if necessary by re-prorating and +repopulating etc.) + +\item {\bf unzoomTiedListenerIfNecessary}: off\newline{} +If an operation would fail, this option determines whether to +unzoom the listener if it has {\bf listenerTiedToZoom} set and try the +operation again. +\end{itemize} + +\subsection{Global Semantic Values} + +\begin{itemize} +\item {\bf absMinWidth}: 38\newline{} +{\bf absMinHeight}: 34\newline{} +The absolute minimum size of a window (including header and border). + +\item {\bf gravity}: 12\newline{} +The number of pixels within which gravity operates + +\item {\bf iconPlacement}: 1\newline{} +Where icons should be placed within the icon area (or within the root +if no icon area is used): +\begin{verbatim} + 0: In no particular place + 1: Across the Top + 2: Across the Bottom + 3: Along the Left Side + 4: Along the Right Side +\end{verbatim} + +\item +{\bf secondaryIconPlacement}: 3\newline{} +Where icons should be placed within the region determined by +{\bf iconPlacement}. +\begin{verbatim} + 0: In no special place + 1: At the top (for Left & Right iconPlacement) + 2: At the bottom (for Left & Right iconPlacement) + 3: At the left (for Top & Bottom iconPlacement) + 4: At the right (for Top & Bottom iconPlacement) + 5: In the middle +\end{verbatim} + + +\item +{\bf neighborhoodShrinkFactor}: 50\newline{} +A factor by which the window of a neighborhood is shrunk relative +to the window size. Expressed as a percent from 0 to 100. +The higher the shrink factor, the smaller the neighborhood for large +windows. + +If a window has width $w$, the {\bf neighborhoodShrinkFactor} is $100*f$, +and the desktop width is $d$ then the width of the side border of +the neighborhood surrounding the window (on each side) +for a center neighborhood is +$$w * ( d - (f * w) ) \over (2 * d)$$ +and for an edge neighborhood is +$$w * ( d - (f * w) ) \over d$$ +And similarly for the length. +Consider a window whose width is half that of the desktop. +With a {\bf neighborhoodShrinkFactor} of 0, the border for a center +neighborhood is $1/4$ of the desktop width. For a factor of 50, +the border is $3/16$ of the desktop width. For a factor of 100, +the border is just $1/8$ of the desktop width. + +\end{itemize} + +\subsection{Global Interface Options} + +\begin{itemize} +\item {\bf acceptNonListenerInBody}: on\newline{} +{\bf acceptNonListenerInBorder}: off\newline{} +{\bf acceptNonListenerInGadget}: off\newline{} +{\bf acceptNonListenerInHeader}: on\newline{} +Determines whether keyboard input will be passed to a client +if the pointer is in the named region, and the window is not +the listener. + +\item {\bf autoPlaceOnIconOpen}: off\newline{} +If on, a single click in an icon automatically places the opened +window. If off, a double click is required, and a single click +permits manual placement. + +\item {\bf autoPlaceOnMenuOpen}: off\newline{} +If on, selecting a closed window from the menu of closed windows +automatically places it. If off, the window must be manually +placed. + +\item {\bf autoPlaceOnUnsizedOpen}: on\newline{} +If off, and a size has not been provided for a window via a hint, a +preference, or the layout file, then manual placement is required when it +is initially opened. + +\item {\bf buttonMakesListenerInBody}: on\newline{} +{\bf buttonMakesListenerInHeader}: on\newline{} +Determines whether clicking a mouse button in the named region +makes the window the listener when {\bf focusFollowsPointer} is on. +If it is not on, clicking makes the window the listener only if the +corresponding {\bf keyMakesListener...} is on as well; otherwise it is used +for temporarily typing without changing the listener if the corresponding +{\bf acceptNonListener...} is on as well. + +\item {\bf centerPointerOnMove}: on\newline{} +{\bf centerPointerOnRelocate}: on\newline{} +Determines whether to move the pointer to the middle of the window +when moving or relocating it, or to leave it where it is. + +\item {\bf closeInHeader}: off\newline{} +{\bf closeInCornerBorder}: off\newline{} +{\bf closeInSideBorder}: off\newline{} +{\bf closeInMoveGadget}: on\newline{} +{\bf closeInZoomGadget}: on\newline{} +Determines whether the appropriate mouse clicks in the named +regions cause the window to close. + +\item {\bf desireInHeader}: off\newline{} +{\bf desireInCornerBorder}: off\newline{} +{\bf desireInSideBorder}: off\newline{} +{\bf desireInMoveGadget}: off\newline{} +{\bf desireInZoomGadget}: on\newline{} +Determines whether the appropriate mouse clicks in the named +regions cause the window to grow to its desired size. + +\item {\bf distinguishCornerBorders}: on\newline{} +{\bf distinguishCornerBordersByInverse}: on\newline{} +Determines whether the corner borders are distinguished, and if +so, whether by drawing an outline, or by inverting it. + +\item {\bf drawXOnMove}: on\newline{} +{\bf drawXOnOpen}: on\newline{} +{\bf drawXOnResize}: on\newline{} +Determines whether an X is drawn along with the window outline +when tracking the named operations + +\item {\bf enlargeInHeader}: off\newline{} +{\bf enlargeInCornerBorder}: off\newline{} +{\bf enlargeInSideBorder}: off\newline{} +{\bf enlargeInMoveGadget}: off\newline{} +{\bf enlargeInZoomGadget}: on\newline{} +Determines whether the appropriate mouse clicks in the named +regions cause the window to grow to its maximum size. + +\item {\bf exchangeInHeader}: off\newline{} +{\bf exchangeInCornerBorder}: on\newline{} +{\bf exchangeInSideBorder}: off\newline{} +{\bf exchangeInMoveGadget}: on\newline{} +{\bf exchangeInZoomGadget}: off\newline{} +{\bf exchangeInIcon}: on\newline{} +Determines whether the appropriate mouse clicks in the named +regions initiate the Exchange operation. + +\item {\bf includeBackgroundMenuInWindowMenu}: on\newline{} +Determines whether each window menu has the main window manager +menu as a submenu. + +\item {\bf keyMakesListenerInBody}: on\newline{} +{\bf keyMakesListenerInBorder}: off\newline{} +{\bf keyMakesListenerInGadget}: off\newline{} +{\bf keyMakesListenerInHeader}: off\newline{} +Determines whether typing a key with the pointer in the named +region causes the window to become the listener. + +\item {\bf focusFollowsPointer}: on\newline{} +If on, the focus is real-estate driven. If off, the click-to-type +model is used. + +\item {\bf managerMenuInHeader}: on\newline{} +{\bf managerMenuInCornerBorder}: on\newline{} +{\bf managerMenuInSideBorder}: on\newline{} +{\bf managerMenuInMoveGadget}: off\newline{} +{\bf managerMenuInZoomGadget}: off\newline{} +{\bf managerMenuInIcon}: on\newline{} +Determines whether the appropriate mouse clicks in the named +regions bring up a window menu. + +\item {\bf middleMenu}: off\newline{} +If on, then the role of the middle and right buttons in the +default interface are switched. (Horrible Hack!) + +\item {\bf moveInHeader}: off\newline{} +{\bf moveInCornerBorder}: on\newline{} +{\bf moveInSideBorder}: on\newline{} +{\bf moveInMoveGadget}: on\newline{} +{\bf moveInZoomGadget}: off\newline{} +{\bf moveInIcon}: on\newline{} +Determines whether the appropriate mouse clicks in the named +regions initiate the Move operation. + +\item {\bf placePointerInBodyInsteadOfGadget}: on\newline{} +If on, then the following options place the pointer in the body +just below the move gadget rather in the move gadget itself. + +\item {\bf placePointerInGadgetAfterClientAutoOpen}: off\newline{} +{\bf placePointerInGadgetAfterUserAutoOpen}: on\newline{} +{\bf placePointerInGadgetAfterManualOpen}: on\newline{} +If on, then the pointer is placed in the window's move gadget +after the window is opened (1) by the client and placed +automatically, (2) by the user and placed automatically, +(3) by the user and placed manually. If off, the pointer stays +where it is. + +\item {\bf placePointerInGadgetAfterExchange}: on\newline{} +{\bf placePointerInGadgetAfterMove}: on\newline{} +If on, then the pointer is placed in the window's move gadget +after the window is exchanged, moved or relocated. + +\item {\bf placePointerInBodyInsteadOfBorder}: off\newline{} +If on, then the following option place the pointer in the body +just inside the border rather in the border itself. + +\item {\bf placePointerInBorderAfterResize}: on\newline{} +If on, then the pointer is placed in the window's border +after the window is resized. + +\item {\bf placePointerInIconAfterClose}: off\newline{} +If on, then after explicitly closing a window, the pointer is +placed in its icon. + +\item {\bf placePointerBackAfterMenuOperation}: on\newline{} +If on, then completing a menu operation that doesn''t involve +tracking, the pointer is moved back to its position when the +menu was first raised. + +\item {\bf placePointerBackOnCancel}: on\newline{} +If on, then after cancelling an operation, the pointer is moved +back to its position when the operation was initiated. + +\item {\bf redrawInHeader}: off\newline{} +{\bf redrawInCornerBorder}: on\newline{} +{\bf redrawInSideBorder}: on\newline{} +{\bf redrawInMoveGadget}: on\newline{} +{\bf redrawInZoomGadget}: on\newline{} +{\bf redrawInIcon}: on\newline{} +Determines whether the appropriate mouse clicks in the named +regions redraw the window. + +\item {\bf relocateInHeader}: off\newline{} +{\bf relocateInCornerBorder}: off\newline{} +{\bf relocateInSideBorder}: off\newline{} +{\bf relocateInMoveGadget}: on\newline{} +{\bf relocateInZoomGadget}: off\newline{} +Determines whether the appropriate mouse clicks in the named +regions initiate the Relocate operation. + +\item {\bf resizeInHeader}: off\newline{} +{\bf resizeInCornerBorder}: on\newline{} +{\bf resizeInSideBorder}: on\newline{} +{\bf resizeInMoveGadget}: off\newline{} +{\bf resizeInZoomGadget}: off\newline{} +Determines whether the appropriate mouse clicks in the named +regions initiate the Resize operation. + +\item {\bf showListenerInBorders}: off\newline{} +{\bf showListenerInHeader}: on\newline{} +{\bf showFocusInBorders}: on\newline{} +{\bf showFocusInHeader}: off\newline{} +When a window becomes the listener or focus, either the header or +border can be reversed. + +\item {\bf useCornerBorders}: on\newline{} +Determines whether the corner window borders are active --- +essentially controls whether corner resizing is allowed without +the menu. + +\item {\bf useIconArea}: off\newline{} +If on, then the {\bf iconArea...} options specify a preferred area +for icons. + +\item {\bf useIcons}: on\newline{} +If on, closed windows are represented by icons. + +\item {\bf useRtlIcon}: on\newline{} +If on and icons are in use, then a special RTL icon is visible +with special meanings for window clicks. + +\item {\bf zoomInHeader}: off\newline{} +{\bf zoomInCornerBorder}: off\newline{} +{\bf zoomInSideBorder}: off\newline{} +{\bf zoomInMoveGadget}: off\newline{} +{\bf zoomInZoomGadget}: on\newline{} +Determines whether the appropriate mouse clicks in the named +regions zoom and unzoom the window. +\end{itemize} + +\subsection{Global Interface Values} + +\begin{itemize} +\item {\bf borderSize}: 5\newline{} +{\bf outerBorderLinewidth}: 2\newline{} +{\bf innerBorderLinewidth}: 1\newline{} +The size of window borders, and the width of the inner and outer +lines of the border. + +\item {\bf gadgetWidth}: 12\newline{} +The width of the gadgets + +\item {\bf iconAreaTop}\newline{} +{\bf iconAreaBottom}\newline{} +{\bf iconAreaLeft}\newline{} +{\bf iconAreaRight}\newline{} +If {\bf useIconArea} is set, these specify the preferred area of the +root in which icons are to be placed. There are no default values. + +\end{itemize} + +\subsection{Window Semantic Options} + +\begin{itemize} +\item {\bf aggressivelyRepopulate}: off\newline{} +Determines whether this window is to be aggressively repopulated +if the global option {\bf allowAggressiveRepopulation} allows it. + +\item {\bf allowShrinkOnUnzoom}: on\newline{} +{\bf allowShrinkOnAutoUnzoom}: on\newline{} +Determines whether the window is allowed to be shrunk when it is +unzoomed in order to allow adjacent windows to be enlarged back +to their desired size or to allow windows to be repopulated. + +\item {\bf allowZoomClose}: on\newline{} +Determines whether other windows are allowed to be closed in +order to allow this window to be zoomed. + +\item {\bf autoOpenOnCreate}: on\newline{} +Determines whether the window is to be opened automatically when +it is created. Used if {\sc WM\_HINTS} indicates DontCareState (or if +{\bf initial\_state} is not provided) and if there is no matching layout. + +\item {\bf autoResatisfyOnResetMinmax}: on\newline{} +When a client resets the client minimum or maximum size, +determines whether or not the window should change size +immediately if necessary, or wait until the window is operated +upon. + +\item {\bf considerForRepopulation}: on\newline{} +Determines whether the window is to be considered for +repopulation + +\item {\bf enforceClientMinimums}: on\newline{} +{\bf enforceClientMaximums}: off\newline{} +Determines whether minimums and maximums set by the client are to +be enforced or not. + +\item {\bf expensiveToRedraw}: off\newline{} +The system tries to avoid having side effects upon windows +which are expensive to redraw + +\item {\bf fixedSize}: off\newline{} +{\bf fixedHeight}: off\newline{} +{\bf fixedWidth}: off\newline{} +If a window has its width or height (size means both width and +height) fixed, then that dimension cannot be changed as a side +effect of an operation on another window, and the window cannot +be automatically shrunk in that dimension when it is being placed +or resized. + +\item {\bf fixedCompletely}: off\newline{} +A window which is fixed completely has all of its edges fixed. + +\item {\bf forceShrinkOnUnzoom}: on\newline{} +{\bf forceShrinkOnAutoUnzoom}: off\newline{} +When a window is unzoomed, determines whether it is to be shrunk +to its normal desired size. + +\item {\bf ignoreInitialPositionHints}: off\newline{} +{\bf ignoreInitialSizeHints}: off\newline{} +{\bf ignorePositionHints}: off\newline{} +{\bf ignoreSizeHints}: off\newline{} +Determines whether to use the size and positions hints provided +in \\ {\sc WM\_NORMAL\_HINTS}. + +\item {\bf listenerTiedToZoom}: off\newline{} +A window with listener tied to zoom is automatically zoomed when it +becomes the listener, and is automatically unzoomed when it loses +the listener. + +\item {\bf noteListener}: on\newline{} +Open windows are ordered in terms of most recent use for a +variety of reasons. A window is ``used'' when it is opened. +This option determines whether becoming the listener constitutes ``use'' as +well. + +\item {\bf preferPreviousIconPosition}: on\newline{} +When the icon is placed, prefer placing it as near to its +previous location as possible within the constraints of +the icon area and {\bf iconPlacement}. + +\item {\bf requirePreviousIconPosition}: off\newline{} +When the icon is placed, try first to place it at its previous icon +position, even if that is not within the constraints of +the icon area and {\bf iconPlacement}. + +\item {\bf preferPreviousPosition}: on\newline{} +{\bf requirePreviousPosition}: off\newline{} +When a window is automatically placed, determines whether it +prefers or requires to be reopened at its previous position. + +\item {\bf requireManualClose}: off\newline{} +If on, then the window may not be closed as a side effect of an +operation on another window. + +\item {\bf saveInLayout}: on\newline{} +Determines whether an entry for this window is saved in +{\bf .rtl.layout} when a Save Layout operation is done. + +\item {\bf zoomFullExplicit}: off\newline{} +{\bf zoomFullHeight}: off\newline{} +{\bf zoomFullWidth}: off\newline{} +Determines whether zooming always causes the window +to grow to the full width and or height of the desktop. + +\item {\bf zoomOnOpen}: off\newline{} +If set, then automatically zooms the window each time it is +opened. + +\item {\bf zoomTiedToDesire}: off\newline{} +When set, zoom a window to its normal desired size, rather than to its +zoom desired size. + +\end{itemize} + +\subsection{Window Semantic Values} + +These options initialize window sizes. All sizes include +space for borders and headers. + +\begin{itemize} +\item {\bf normalDesiredWidth}\newline{} +{\bf normalDesiredHeight}\newline{} +Specifies the initial desired window size. Overrides +the initial window size specified by the client. + +\item {\bf zoomDesiredWidth}\newline{} +{\bf zoomDesiredHeight}\newline{} +Specifies the desired size when the window is +first zoomed. + +\item {\bf clientMinWidth}\newline{} +{\bf clientMinHeight}\newline{} +{\bf clientMaxWidth}\newline{} +{\bf clientMaxHeight}\newline{} +Overrides the minimum and maxmum sizes specified by the client. + +\item {\bf userNormalMinWidth}\newline{} +{\bf userNormalMinHeight}\newline{} +{\bf userZoomMinWidth}\newline{} +{\bf userZoomMinHeight}\newline{} +Specifies the initial user minimum size when the window is +normal (unzoomed) and zoomed. + +\item {\bf iconWidth}: 64\newline{} +{\bf iconHeight}: 64\newline{} +Width and height of default icons (produced by RTL +when no pixmap has been provided). +\end{itemize} + +\subsection{Window Interface Options} + +\begin{itemize} +\item {\bf acceptButtonInBody}: on\newline{} +{\bf acceptButtonInHeader}: on\newline{} +{\bf acceptButtonInIcon}: on\newline{} +Determines whether a button press can ever be passed to the +client when the pointer is in the named region. + +\item {\bf acceptKeyInBody}: on\newline{} +{\bf acceptKeyInHeader}: on\newline{} +{\bf acceptKeyInGadget}: on\newline{} +{\bf acceptKeyInBorder, }: on\newline{} +{\bf acceptKeyInIcon}: on\newline{} +Determines whether a key press can ever be passed to the +client when the pointer is in the named region. + +\item {\bf autoPlaceOnClientOpen}: on\newline{} +Determines whether automatic or manual placement is used when the +client opens the window. + +\item {\bf includeResClassInTitle}: on\newline{} +{\bf includeResClassInIconTitle}: on\newline{} +{\bf includeResNameInTitle}: off\newline{} +{\bf includeResNameInIconTitle}: off\newline{} +{\bf includeNameInTitle}: on\newline{} +{\bf includeNameInIconTitle}: on\newline{} +{\bf includeHostInTitle}: on\newline{} +{\bf includeHostInIconTitle}: on\newline{} +Determines whether the manager should include the the res\_class, +res\_name, the window or icon name, and the host name in the window or +icon title. +But see just below ... + +\item {\bf includeTitleInHeader}: on\newline{} +Determines whether the window title should be displayed in the window +header. + +\item {\bf includeTitleInPixmapIcon}: off\newline{} +Determine whether the icon title should be drawn on top of the pixmap +icon if one has been supplied by either the client or via the preferences +file. + +\item {\bf useBorders}: on\newline{} +{\bf useGadgets}: on\newline{} +{\bf useHeader}: on\newline{} +{\bf useMoveGadget}: on\newline{} +Determines whether the various regions of the window should be +drawn. + +\end{itemize} + +\subsection{Window Interface Values} + +\begin{itemize} +\item {\bf headerHeight}: 16\newline{} +The height of the window's header. + +\item {\bf iconResTop}: 2\newline{} +{\bf iconResBottom}: 10\newline{} +{\bf iconResLeft}: 2\newline{} +{\bf iconResRight}: 61\newline{} +Determines where the window resource class and resource name appear +in the icon + +\item {\bf iconHostTop}: 12\newline{} +{\bf iconHostBottom}: 20\newline{} +{\bf iconHostLeft}: 2\newline{} +{\bf iconHostRight}: 61\newline{} +Determines where the host name appears in the icon. + +\item {\bf iconNameTop}: 22\newline{} +{\bf iconNameBottom}: 61\newline{} +{\bf iconNameLeft}: 2\newline{} +{\bf iconNameRight}: 61\newline{} +Determines where the icon name appears in the icon. +\end{itemize} + +\subsection{Window Semantic Strings} + +\begin{itemize} +\item {\bf iconPixmapFile}\newline{} +Names a file containing an icon pixmap (in the standard X11 +bitmap format). Overrides the pixmap provided by the client. + +\item {\bf superClass}\newline{} +The string names a superclass. The window will inherit all options +from its superclass unless explicitly overridden. +\end{itemize} + +\section{Acknowledgements} + +Mike Berman, Mark Biggers, and Joe Camaratta have shared +in the design and implementation of major parts of the system. + +In addition, Kevin Kelly has worked on automatic +placement and prorating, +Pete Litwinowicz worked on the original Andrew-based client +interface, and Adam Richter helped with the interface to X11. + +\end{document} diff --git a/doc/tex/refpage5.tex b/doc/tex/refpage5.tex new file mode 100644 index 0000000..4c7c50b --- /dev/null +++ b/doc/tex/refpage5.tex @@ -0,0 +1,203 @@ +\documentstyle{article} +\font\boldfr=cmssbx10 scaled \magstep3 +\font\tinyb=cmbx5 +\font\smallb=cmbx8 +\pagestyle{empty} +\setlength{\topmargin}{-.5in} +\setlength{\textheight}{9.5in} +\setlength{\textwidth}{6.5in} +\setlength{\parindent}{0pt} +\setlength{\oddsidemargin}{0pt} +\setlength{\evensidemargin}{0pt} +\setlength{\unitlength}{2pt} + +\begin{document} +\newbox\RTLlogo +\setbox\RTLlogo=\hbox{ +\begin{picture}(21,0)(0,0) +\thicklines +\put(0,0){\framebox(21,21){}} +\put(7,0){\makebox(14,7){\smallb RTL}} +\put(0,14){\makebox(14,7){\tinyb Siemens}} +\put(0,14){\line(1,0){14}} +\put(7,7){\line(1,0){14}} +\put(7,0){\line(0,1){14}} +\put(14,7){\line(0,1){14}} +\end{picture}} +\hbox to\hsize{\hfill \lower17pt\copy\RTLlogo\boldfr\ \ Quick +Reference Page (3 button mouse)\hfill} +\vskip .2in plus 1fill +\begin{picture}(105,80)(0,15) +\put(0,30){\thicklines\framebox(100,50){}} +\put(1,31){\framebox(98,48){}} +\put(1,70){\line(1,0){98}} +\put(8,70){\line(0,1){9}} +\put(92,70){\line(0,1){9}} +%\put(1,75){\line(1,0){9}} +\put(0.5,30.5){\thicklines\line(0,1){4.5}\line(1,0){4.5}} +\put(0,30){\thicklines\line(0,1){5}\line(1,0){5}} +\put(0.5,79.5){\thicklines\line(0,-1){4.5}\line(1,0){4.5}} +\put(0,80){\thicklines\line(0,-1){5}\line(1,0){5}} +\put(99.5,30.5){\thicklines\line(0,1){4.5}\line(-1,0){4.5}} +\put(100,30){\thicklines\line(0,1){5}\line(-1,0){5}} +\put(99.5,79.5){\thicklines\line(0,-1){4.5}\line(-1,0){4.5}} +\put(100,80){\thicklines\line(0,-1){5}\line(-1,0){5}} +\put(4.5,75){\makebox(0,0){\vrule width2pt height1pt depth1pt}} +\put(11,75){\makebox(0,0)[l]{\it Window Name}} +\put(50,50){\makebox(0,0){\it contents of window }} +\put(4.5,90){\vector(0,-1){13.5}} +\put(3.5,91){\makebox(0,0)[bl]{zoom gadget}} +\put(95.5,90){\vector(0,-1){13.5}} +\put(95.5,91){\makebox(0,0)[b]{move gadget}} +\put(50,90){\vector(0,-1){13.5}} +\put(50,91){\makebox(0,0)[b]{header}} +\put(1,20){\vector(0,1){10}} +\put(0,19){\makebox(0,0)[tl]{corner border}} +\put(60,20){\vector(0,1){10}} +\put(60,19){\makebox(0,0)[t]{side border}} +\end{picture} +\hfill +\begin{picture}(60,70)(0,10) +\put(0,70){\framebox(8,10){\vrule width4pt height2pt +depth2pt}} +\put(10,75){\makebox(0,0)[l]{\it unzoomed}} +\put(0,55){\framebox(8,10){}} +\put(2,57){\framebox(4,6){}} +\put(10,60){\makebox(0,0)[l]{\it zoomed}} +\put(0,40){\framebox(8,10){\vrule width4pt height2pt +depth2pt}} +\put(0,45){\line(1,0){8}} +\put(12,39){\makebox(0,0)[l]{\it zoom tied to listener}} +\put(0,25){\framebox(8,10){}} +\put(2,27){\framebox(4,6){}} +\put(0,30){\line(1,0){8}} +\put(20,18){\makebox(0,0){Zoom Gadget States}} +\end{picture} +\hfill +\vfill +\hrule +\vfill +\hbox to\hsize{ +\hfill +\begin{tabular}{|r|ccc|} +\hline +\multicolumn{4}{|c|}{\bf Borders} \\ +\hline +& L & M & R \\ +\hline +& resize & move & window menu \\ +{\sc shift} & resize\dag & move\dag & --- \\ +\hline +\multicolumn{4}{|l|}{{\em Note:\/} Side borders +constrain move/resize.} \\ +\hline +\end{tabular} +\hfill +\begin{tabular}{|r|c|c|} +\hline +\multicolumn{3}{|c|}{\bf Header} \\ +\hline +& M &R \\ +\hline +& move & window menu \\ +{\sc shift} & move\dag & {\em to client} \\ +\hline +\multicolumn{3}{|l|}{{\em Note:\/} Other buttons to client} \\ +\hline +\end{tabular} +\hfill} +\vfill +\hbox to\hsize{\hfill +\begin{tabular}{|r|ccc|} +\hline +\multicolumn{4}{|c|}{\bf Zoom Gadget} \\ +\hline +& L &\ M\ & R \\ +\hline +& desire & --- & --- \\ +{\sc shift} & zoom/unzoom & --- & --- \\ +{\sc ctrl} & enlarge & --- & --- \\ +{\sc ctrl-shift} & \multicolumn{2}{c}{\hbox{}\dotfill +redraw\dotfill\hbox{}} & close \\ +\hline +\end{tabular} +\hfill +\begin{tabular}{|r|ccc|} +\hline +\multicolumn{4}{|c|}{\bf Move Gadget} \\ +\hline +&\ L\ & M & R \\ +\hline +& --- & relocate & --- \\ +{\sc shift} & --- & move & --- \\ +{\sc ctrl} & --- & exchange & --- \\ +{\sc ctrl-shift} & \multicolumn{2}{c}{\hbox{}\dotfill +redraw\dotfill\hbox{}} & close \\ +\hline +\end{tabular} +\hfill} +\vfill +\hbox to\hsize{ +\hfill +\begin{tabular}{|r|ccc|} +\hline +\multicolumn{4}{|c|}{\bf RTL Icon} \\ +\hline +&\ L\ & M & R \\ +\hline +& deselect listener & move & manager menu \\ +{\sc shift} & --- & move\dag & --- \\ +{\sc ctrl} & --- & exchange & --- \\ +{\sc ctrl-shift} & \multicolumn{2}{c}{\hbox{}\dotfill +redraw all\dotfill\hbox{}} & --- \\ +\hline +\end{tabular} +\hfill} +\vfill +\hbox to\hsize{ +\begin{tabular}{|r|ccc|} +\hline +\multicolumn{4}{|c|}{\bf Icon} \\ +\hline +&\ L\ & M & R \\ +\hline +& open & move & icon menu \\ +{\sc shift} & {\em to client} & move\dag & {\em to client} \\ +{\sc ctrl} & {\em to client} & exchange & {\em to client} \\ +{\sc ctrl-shift} & \multicolumn{2}{c}{\hbox{}\dotfill +redraw\dotfill\hbox{}} & soft kill \\ +\hline +\end{tabular} +\hfill +\begin{tabular}{|r|ccc|} +\hline +\multicolumn{4}{|c|}{\bf Background} \\ +\hline +&\ L\ & M & R \\ +\hline +&\multicolumn{2}{c}{\hbox{}\dotfill deselect +listener\dotfill\hbox{}} & manager menu \\ +{\sc ctrl-shift} & \multicolumn{2}{c}{\hbox{}\dotfill +redraw all\dotfill\hbox{}} & +--- \\ +\hline +\end{tabular} +} +\vfill +{\bf NOTES:} +\begin{itemize} +\item To cancel an operation press the {\sc RIGHT} mouse +button. +\item A question mark cursor is a request for confirmation. +Click the {\sc LEFT} or {\sc MIDDLE} mouse button to confirm, +the {\sc RIGHT} mouse button to cancel. +\end{itemize} +\vspace{2ex minus 1ex} +\dag\ with gravity toggled +\vspace{2ex minus 1ex} +\hrule +\vspace{2ex minus 1ex} +\hbox to \hsize{RTL Release 5.0 \hfill June 1988} +\vspace{2ex minus 2ex} +\end{document} + diff --git a/doc/tex/refpage_one5.tex b/doc/tex/refpage_one5.tex new file mode 100644 index 0000000..32ba2b7 --- /dev/null +++ b/doc/tex/refpage_one5.tex @@ -0,0 +1,182 @@ +\documentstyle{article} +\font\boldfr=cmssbx10 scaled \magstep3 +\font\tinyb=cmbx5 +\font\smallb=cmbx8 +\pagestyle{empty} +\setlength{\topmargin}{-.5in} +\setlength{\textheight}{9.5in} +\setlength{\textwidth}{6.5in} +\setlength{\parindent}{0pt} +\setlength{\oddsidemargin}{0pt} +\setlength{\evensidemargin}{0pt} +\setlength{\unitlength}{2pt} + +\begin{document} +\newbox\RTLlogo +\setbox\RTLlogo=\hbox{ +\begin{picture}(21,0)(0,0) +\thicklines +\put(0,0){\framebox(21,21){}} +\put(7,0){\makebox(14,7){\smallb RTL}} +\put(0,14){\makebox(14,7){\tinyb Siemens}} +\put(0,14){\line(1,0){14}} +\put(7,7){\line(1,0){14}} +\put(7,0){\line(0,1){14}} +\put(14,7){\line(0,1){14}} +\end{picture}} +\hbox to\hsize{\hfill \lower17pt\copy\RTLlogo\boldfr\ \ Quick +Reference Page (1 button mouse)\hfill} +\vskip .2in plus 1fill +\begin{picture}(105,80)(0,15) +\put(0,30){\thicklines\framebox(100,50){}} +\put(1,31){\framebox(98,48){}} +\put(1,70){\line(1,0){98}} +\put(8,70){\line(0,1){9}} +\put(92,70){\line(0,1){9}} +%\put(1,75){\line(1,0){9}} +\put(0.5,30.5){\thicklines\line(0,1){4.5}\line(1,0){4.5}} +\put(0,30){\thicklines\line(0,1){5}\line(1,0){5}} +\put(0.5,79.5){\thicklines\line(0,-1){4.5}\line(1,0){4.5}} +\put(0,80){\thicklines\line(0,-1){5}\line(1,0){5}} +\put(99.5,30.5){\thicklines\line(0,1){4.5}\line(-1,0){4.5}} +\put(100,30){\thicklines\line(0,1){5}\line(-1,0){5}} +\put(99.5,79.5){\thicklines\line(0,-1){4.5}\line(-1,0){4.5}} +\put(100,80){\thicklines\line(0,-1){5}\line(-1,0){5}} +\put(4.5,75){\makebox(0,0){\vrule width2pt height1pt depth1pt}} +\put(11,75){\makebox(0,0)[l]{\it Window Name}} +\put(50,50){\makebox(0,0){\it contents of window }} +\put(4.5,90){\vector(0,-1){13.5}} +\put(3.5,91){\makebox(0,0)[bl]{zoom gadget}} +\put(95.5,90){\vector(0,-1){13.5}} +\put(95.5,91){\makebox(0,0)[b]{move gadget}} +\put(50,90){\vector(0,-1){13.5}} +\put(50,91){\makebox(0,0)[b]{header}} +\put(1,20){\vector(0,1){10}} +\put(0,19){\makebox(0,0)[tl]{corner border}} +\put(60,20){\vector(0,1){10}} +\put(60,19){\makebox(0,0)[t]{side border}} +\end{picture} +\hfill +\begin{picture}(60,70)(0,10) +\put(0,70){\framebox(8,10){\vrule width4pt height2pt +depth2pt}} +\put(10,75){\makebox(0,0)[l]{\it unzoomed}} +\put(0,55){\framebox(8,10){}} +\put(2,57){\framebox(4,6){}} +\put(10,60){\makebox(0,0)[l]{\it zoomed}} +\put(0,40){\framebox(8,10){\vrule width4pt height2pt +depth2pt}} +\put(0,45){\line(1,0){8}} +\put(12,39){\makebox(0,0)[l]{\it zoom tied to listener}} +\put(0,25){\framebox(8,10){}} +\put(2,27){\framebox(4,6){}} +\put(0,30){\line(1,0){8}} +\put(20,18){\makebox(0,0){Zoom Gadget States}} +\end{picture} +\hfill +\vfill +\hrule +\vfill +\hbox to\hsize{ +\hfill +\begin{tabular}{|r|c|} +\hline +\multicolumn{2}{|c|}{\bf Borders} \\ +\hline +& resize \\ +{\sc shift} & move \\ +{\sc ctrl} & resize w/ gravity toggled \\ +{\sc ctrl-shift} & redraw \\ +\hline +\multicolumn{2}{|l|}{{\em Note:\/} Side borders +constrain move/resize.} \\ +\hline +\end{tabular} +\hfill +\begin{tabular}{|r|c|} +\hline +\multicolumn{2}{|c|}{\bf Header} \\ +\hline +& window menu \\ +{\sc shift} & move \\ +{\sc ctrl} & {\em to client\/}\\ +{\sc ctrl-shift} & redraw \\ +\hline +\end{tabular} +\hfill} +\vfill +\hbox to\hsize{ +\begin{tabular}{|r|c|} +\hline +\multicolumn{2}{|c|}{\bf Zoom Gadget} \\ +\hline +& desire \\ +{\sc shift} & zoom/unzoom \\ +{\sc ctrl} & enlarge \\ +{\sc ctrl-shift} & close \\ +\hline +\end{tabular} +\hfill +\begin{tabular}{|r|c|} +\hline +\multicolumn{2}{|c|}{\bf Move Gadget} \\ +\hline +& relocate \\ +{\sc shift} & move \\ +{\sc ctrl} & exchange \\ +{\sc ctrl-shift} & close \\ +\hline +\end{tabular} +\hfill +\begin{tabular}{|r|c|} +\hline +\multicolumn{2}{|c|}{\bf Icon} \\ +\hline +& open \\ +{\sc shift} & move \\ +{\sc ctrl} & exchange \\ +{\sc ctrl-shift} & icon menu \\ +\hline +\end{tabular} +} +\vfill +\hbox to\hsize{ +\hfill +\begin{tabular}{|r|c|} +\hline +\multicolumn{2}{|c|}{\bf RTL Icon} \\ +\hline +& manager menu \\ +{\sc shift} & move \\ +{\sc ctrl} & exchange \\ +{\sc ctrl-shift} & manager menu \\ +\hline +\end{tabular} +\hfill +\begin{tabular}{|r|c|} +\hline +\multicolumn{2}{|c|}{\bf Background} \\ +\hline +& manager menu \\ +{\sc shift}& deselect listener \\ +{\sc ctrl}& deselect listener \\ +{\sc ctrl-shift} & redraw all \\ +\hline +\end{tabular} +\hfill +}\vfill +{\bf NOTES:} +\begin{itemize} +\item To cancel an operation hold {\sc CTRL} and {\sc SHIFT} +while releasing or clicking the mouse button. +\item A question mark cursor is a request for confirmation. +Click the mouse button to confirm, hold {\sc CTRL} and {\sc +SHIFT} click the mouse button to cancel. +\end{itemize} +\vspace{2ex minus 1ex} +\hrule +\vspace{2ex minus 1ex} +\hbox to \hsize{RTL Release 5.0\hfill June 1988} +\vspace{2ex minus 2ex} +\end{document} + diff --git a/doc/tex/tutorial5.tex b/doc/tex/tutorial5.tex new file mode 100644 index 0000000..1e03c4e --- /dev/null +++ b/doc/tex/tutorial5.tex @@ -0,0 +1,315 @@ +\documentstyle[11pt]{article} + +% +% A tiny little style file that causes more of the page to be used +% +% Richard Furuta +% Department of Computer Science +% University of Maryland +% College Park, MD 20742 +% +% furuta@mimsy.umd.edu +% seismo!umcp-cs!furuta +% +% October 22, 1986, first release +% +% Hacked by Mike Berman --- textwidth reduced slightly which +% looks better on Impress printers (if we change to other +% printers in the future, change it back!) + +\marginparwidth 0pt +\oddsidemargin 0pt +\evensidemargin 0pt +\marginparsep 0pt + +\topmargin 0pt + +%\textwidth 6.5in +\textwidth 6.4in % modified for Impress printers +\textheight 8.5 in + +\begin{document} + +\begin{titlepage} + +\begin{center} +{\LARGE\bf +Tutorial: +Initial Setup for Using the +Siemens RTL +Tiled Window Manager +\vspace{1ex} + +\large +Release 5 +for use with X11R2 +\vspace{3ex} + +Ellis S. Cohen\\ +Siemens Research \& Technology Laboratories\\ +105 College Road East\\ +Princeton NJ 08540--6668\\ +(609) 734--6524\\[1ex] +Comments or Questions to\\ +rtl@cadillac.siemens.com (internet)\\ +princeton!siemens!cadillac!rtl (uucp)\\[1ex] +17 June 1988 +} +\end{center} + +\vfill +\begin{abstract} +This tutorial describes how to become an initial user of the Siemens {\bf rtl} +Tiled Window Manager. +It assumes that you already know how to start the X11R2\footnote{ +X11 and the X Window System are trademarks of MIT} server +and are familiar with X11 applications. + +The tutorial explains how to set up customization files, how to set up +your initial window layout along with per-window options, and how to save +that layout. +Once the layout is saved, it will automatically be recreated when you +start up the system in the future. + +A {\bf Quick Reference Page} describing the actions associated with mouse +buttons, and a {\bf Manual} are also available. +\end{abstract} + +\vfill + +\noindent Copyright 1988 by Siemens Research and Technology +Laboratories, Princeton, NJ \\ + +\noindent Permission to use, copy, modify, and distribute this documentation and +the software described for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Siemens Research and Technology +Laboratories not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior +permission. \\ + +\noindent SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + +\end{titlepage} + +Except for menus and transient pop-up windows, +the {\bf rtl} window manager does not permit windows to overlap. +Because of this, {\bf rtl} has features and +constraints not found in other window managers. +Getting your environment set up so that you can use {\bf rtl} effectively +takes some extra time. IT IS WORTH IT! + +\section{Preparation} + +First, make sure that you have the following two files in your +home directory: + +\begin{itemize} +\item {\bf .rtl.tools} --- initializes a menu from which you can easily +start up new applications once {\bf rtl} is running. + +\item {\bf .rtl.preferences} --- specifies global and per-window-class options +that control both the semantics and the appearance of {\bf rtl}. +\end{itemize} + +Find out where the {\bf rtl} distribution is located on your filesystem. +In the {\bf custom} subdirectory, you will find example +{\bf .rtl.tools} and {\bf .rtl.preferences} files that we use at our lab. + +\begin{quotation} +{\bf NOTE:} +If you don't use a {\bf .rtl.preferences} file, defaults are chosen that +provide a fairly conservative interface. The {\bf .rtl.preferences} file in +the {\bf custom} subdirectory allows windows to be automatically moved +and resized a bit more easily and tailors the interface specifically +for individual applications. The last section of the manual describes the +options in detail. +\end{quotation} + +\begin{quotation} +{\bf NOTE:} +The {\bf .rtl.preferences} file in the {\bf custom} subdirectory has a number +of `{\bf iconPixmapFile}' entries. These designate a file containing +a bitmap to be used for the corresponding application's icon. +The bitmap files are stored in the {\bf custom} subdirectory. Make +sure that the path to the {\bf custom} subdirectory is correct for +the `{\bf iconPixmapFile}' entries. +\end{quotation} + +The Customization section of the manual has information about additional ways +you can customize your environment. + +\section{Starting up RTL and your Applications} + +Once your X server is running, you can start up {\bf rtl}. +If X clients are already mapped, {\bf rtl} will tile them. + +Now, start up the remaining applications you typically want +running. + +Some applications request to be initially iconized +via their {\sc WM\_HINTS} property,\footnote{Each X11 window can have +various `properties' associated with it. Some of these +properties are set by clients to communicate with the window manager. +See section 9.1 of the Xlib manual if you want more information.} +and {\bf rtl} will do so. Otherwise, the window is initially +mapped. + +By default, the option {\bf autoPlaceOnClientOpen} is on, which means that +{\bf rtl} will automatically find a place for the window. + +If you have set it off in your preference file, you may be asked to +place it automatically, depending upon whether the client has specified +an initial size and position (in the \\ {\sc WM\_NORMAL\_HINTS} property). + +\begin{itemize} +\item If the client provided both a size and position hint, the window +will be placed automatically, though because of tiling, not necessarily +at exactly the size or position requested. + +\item Otherwise, you will asked to determine +both its size and position. The cursor will change to a dotted box. +Pressing or clicking the left mouse button designates the top-left +corner. Releasing or re-clicking designates the bottom-right corner. +Pressing the right mouse button iconizes the window instead. +(For a one-button mouse, hold CTRL and SHIFT and click to iconize). +\end{itemize} + +Some clients set bogus initial window positions (usually +$<$0,0$>$), and are +automatically placed by {\bf rtl} even when that is not appropriate. +You can tell {\bf rtl} to ignore the initial position set by the +client by setting the option {\bf ignoreInitialPositionHints} for those +clients. + +If you do not like the layout, you can change it by resizing or moving +windows around. See the {\bf Quick Reference Page} which explains how to +use the mouse buttons, or see the {\bf Manual} for more details. + +\section{Client Minimum and Maximum Size} + +Many clients set a reasonable {\bf client minimum size} via +the \\ +{\sc WM\_NORMAL\_HINTS} property. Some do not. +You can tell by trying to resize the window. +By default, the window manager will not allow the window to be +made smaller than its client minimum size. + +If the size set by the client seems too small, you can +override it by setting `{\bf clientMinimumWidth}' and +`{\bf clientMinimumHeight}' in your preferences file. +If you reread your preferences file (via the `{\bf Read Profile}' entry +in the manager menu), these will affect future applications +of the same class. + +You can also set `{\bf clientMaximumWidth}' and \\ +`{\bf clientMaximumHeight}' +to override the client's maximum size hint. + +\section{User Minimum Size} + +When a window is enlarged or opened, an adjacent window may be +shrunk automatically by {\bf rtl}. A window is never shrunk +any smaller than its {\bf user minimum size}. +The wm will not let you make the {\bf user minimum size} smaller +than the {\bf client minimum size}. + +You may set a window's user minimum size by selecting +`{\bf Set Size}' from a window's menu, and then selecting +`{\bf Normal Min}' from the submenu. You can then press or click +on a side or corner, and resize to indicate the minimum size. + +You can set the user minimum size on a per-window-class basis +by setting `{\bf userNormalMinWidth}' and `{\bf userNormalMinHeight}' +in your preferences files, but these will not be applied to +existing windows. + +If you plan to zoom the window, you can set the zoom minimum size +similarly. + +\section{Per Window Options} + +By selecting `{\bf Options}' from a window menu, a submenu +indicates various per-window options that you can select: + +\begin{itemize} +\item {\bf Locked Open} --- prevents the window from being +automatical\-ly \\ closed. + +\item {\bf Fixed Width} --- prevents the window's width from being automatically +changed. + +\item {\bf Fixed Height} --- prevents the window's height from being +automatically changed. + +\item {\bf Fixed Edges} --- prevents the window from being moved or resized +automatically. + +\item {\bf Listener Tied To Zoom} --- Zooms (unzooms) the window when it becomes +(no longer is) the listener. + +\end{itemize} + +These options can be set on a per-window-class basis by setting the +corresponding options in the preferences file. +See the Customization section of the Manual. + +\section{Save the Layout} + +Once you have the windows where you want them, have +set the minimum size of your windows, and have determined their +per-window options, you are ready to save the layout. + +Select `{\bf Save Layout}' from the manager menu. A question mark +cursor asks for confirmation. Click with the left button to confirm, +with the right button to cancel. +(For a one-button mouse, hold CTRL and SHIFT and click to cancel). + +Selecting `{\bf Save Layout}' saves information about all open and closed +windows and their icons in {\bf .rtl.layout} file in your home directory. + +\section{Build a Startup File} + +Now that you know which applications you typically like running, you can +build a shell file that starts them up. + +If you name the shell file {\bf .rtl.startup}, and put in your +home directory, it will automatically get executed, if you +invoke {\bf rtl} with the `-s' flag + +\section{Restarting} + +When you subsequently start {\bf rtl}, the {\bf .rtl.layout} file will be +read in and will be used to match up applications that have already +started or which you will start up in the future. + +Until every saved window in +{\bf .rtl.layout} is matched by an opened window or icon, +certain automatic strategies used by the window manager to balance screen +space are disabled in order to allow the saved layout to be precisely +restored. + +In the meantime, `{\bf Finish Layout}' appears in the window manager menu. +If an expected window does not open for some reason (host down, +program bombs, etc.), the user can tell the window manager to {\it treat} +the layout as finished by selecting `{\bf Finish Layout}'. + +Alternately, by specifying the flag `-f' when the {\bf rtl} is +started, the windows on the screen when {\bf rtl} is started are laid out, +but then, the layout is {\it treated} as finished and `{\bf Finish Layout}' +does not appear. If you specify the flag `-i', then the layout file +is ignored entirely. + +When the layout has been finished, in whatever way, `{\bf Save +Layout}' appears in the place of `{\bf Finish Layout}', allowing the user +to change the layout, and resave it, overwriting the old layout file. + +Enjoy! +\end{document} diff --git a/draw.c b/draw.c new file mode 100644 index 0000000..066f2ff --- /dev/null +++ b/draw.c @@ -0,0 +1,321 @@ +#ifndef lint +static char sccs_id[] = "%W% %H%"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include + +#include "basetype.h" +#include "userglobD.h" +#include "uwinXD.h" + +#include +#include +#include "xio.h" +#include "tilecrsr.h" +#include "icons/background.h" + +#define XBORDERWIDTH 0 + +/*------------------------------------------------------------*/ + +void +Draw_Init() +{ +} + +/*-----------------------------------------------------------------*/ + +/* Create a Window Decoration, type InputOnly (transparent). + */ +static Window +Draw_Create_Decoration(parent) + Window parent; +{ + XSetWindowAttributes attrs; + + + /* XSelectInput for edges, corners and gadgets windows + */ + attrs.event_mask = ButtonPressMask | ButtonReleaseMask | + KeyPressMask | EnterWindowMask; + + + /* BorderWidth and Depth are zero for class InputOnly... + */ + return XCreateWindow(dpy, parent, + 0, 0, + (unsigned) 100, (unsigned) 100, + 0, + 0, InputOnly, + DefaultVisual(dpy, scrn), CWEventMask, + &attrs); +} + +/*------------------------------------------------------------*/ + +/* Create the Parent and Decoration X-Windows for the Decorated + * Client Window + * + * NOTE: all Window dimensions are bogus - they will be + * configured to proper size later on... + */ +void +Draw_Create(uwinp) + Userwin *uwinp; +{ + Window parent; + unsigned long vmask; + XSetWindowAttributes attrs; + + + /* Create the Parent (frame) Window + */ + vmask = CWBackPixel; + + attrs.background_pixel = WhitePixel(dpy, scrn); + + parent = Userwin_XParentWin(uwinp) = + XCreateWindow(dpy, root, + 0, 0, + (unsigned) 100, (unsigned) 100, + XBORDERWIDTH, + DefaultDepth(dpy, scrn), (unsigned int) CopyFromParent, + DefaultVisual(dpy, scrn), vmask, &attrs); + + /* make sure it's below transients */ + XLowerWindow(dpy, Userwin_XParentWin(uwinp)); + + /* Create the Decoration Windows + */ + Userwin_XTopBorder(uwinp) = Draw_Create_Decoration(parent); + XDefineCursor(dpy, Userwin_XTopBorder(uwinp), (Cursor) top_tilecursor); + + Userwin_XLeftBorder(uwinp) = Draw_Create_Decoration(parent); + XDefineCursor(dpy, Userwin_XLeftBorder(uwinp), (Cursor) + left_tilecursor); + + Userwin_XRightBorder(uwinp) = Draw_Create_Decoration(parent); + XDefineCursor(dpy, Userwin_XRightBorder(uwinp), (Cursor) right_tilecursor); + + Userwin_XBottomBorder(uwinp) = Draw_Create_Decoration(parent); + XDefineCursor(dpy, Userwin_XBottomBorder(uwinp), (Cursor) bottom_tilecursor); + + Userwin_XTopLeftCorner(uwinp) = Draw_Create_Decoration(parent); + XDefineCursor(dpy, Userwin_XTopLeftCorner(uwinp), + (Cursor) top_left_tilecursor); + + Userwin_XTopRightCorner(uwinp) = Draw_Create_Decoration(parent); + XDefineCursor(dpy, Userwin_XTopRightCorner(uwinp), + (Cursor) top_right_tilecursor); + + Userwin_XBottomLeftCorner(uwinp) = Draw_Create_Decoration(parent); + XDefineCursor(dpy, Userwin_XBottomLeftCorner(uwinp), + (Cursor) bottom_left_tilecursor); + + Userwin_XBottomRightCorner(uwinp) = Draw_Create_Decoration(parent); + XDefineCursor(dpy, Userwin_XBottomRightCorner(uwinp), + (Cursor) bottom_right_tilecursor); + + Userwin_XHeader(uwinp) = Draw_Create_Decoration(parent); + XDefineCursor(dpy, Userwin_XHeader(uwinp), (Cursor) header_tilecursor); + + Userwin_XZoomGadget(uwinp) = Draw_Create_Decoration(parent); + XDefineCursor(dpy, Userwin_XZoomGadget(uwinp), + (Cursor) zoom_gadget_tilecursor); + + Userwin_XMoveGadget(uwinp) = Draw_Create_Decoration(parent); + XDefineCursor(dpy, Userwin_XMoveGadget(uwinp), + (Cursor) move_gadget_tilecursor); + +} + +/*-----------------------------------------------------------------*/ + +/* Configure a "input region" window. + */ +void +Draw_ConfigWin(win, left_x, top_y, width, height) + Window win; + int left_x, top_y; + int width, height; +{ + XWindowChanges wc; + unsigned int wcmask; + + + wc.x = left_x; + wc.y = top_y; + wc.width = width; + wc.height = height; + wcmask = CWX | CWY | CWWidth | CWHeight; + + XConfigureWindow(dpy, win, wcmask, &wc); + + XMapWindow(dpy, win); +} + +/*-----------------------------------------------------------------*/ + +/* "flash" the desktop or clang the bell to get attention... + at the moment, X doesn't have a flash -- so we can only ring + the bell. + */ +void +Draw_Flash() +{ + XBell(dpy,0); +} + +/*------------------------------------------------------------*/ + +/*ARGSUSED*/ +int +Draw_Font_Height(id) + int id; +{ + + return 0; +} + +/*------------------------------------------------------------*/ + +/* Return the number of chars in 'fontp' that + * can be drawn in 'width'. + * + * The limits are: max_chars > ndc > nc. + */ +int +Draw_Num_Drawables(s, fontp, width, max_chars) + char *s; + XFontStruct *fontp; + int width; + int max_chars; +{ + int ndc, /* number of drawable chars */ + nc; /* number of chars in string 's' */ + + + for (nc = 0; *s; s++, nc++) + ; + + /* If we have a fixed-width font... + */ +/* if (fontstruct->per_char == (XCharStruct *) NULL) + { +*/ + ndc = width / fontp->max_bounds.width; + + if (nc < ndc) + { + ndc = nc; + } + + +/* } + else + { + / * punt for now. Watch this space (or see Xlib/XTextExt.c) * / + } +*/ + return ( (max_chars < ndc) ? max_chars : ndc ); +} + +/*------------------------------------------------------------*/ + +/*ARGUSED*/ +int Draw_Get_Frame_Width() +{ + return 1000; +} + +/*------------------------------------------------------------*/ + +/*ARGSUSED*/ +int Draw_Get_Frame_Height() +{ + return 900; +} + +/*------------------------------------------------------------*/ + +/* Redraw the Tiled Window under X by covering it with + * a temporary window. + * + * XXXX flashing caused by temp window contrasting with client window! + */ +void +Draw_Background_Rectangle( x0, y0, x1, y1 ) + int x0, y0, x1, y1; +{ + XSetWindowAttributes xswa; + Visual visual; + Window win; + + + xswa.background_pixel = WhitePixel(dpy, scrn); + xswa.override_redirect = True; + visual.visualid = CopyFromParent; + + win = XCreateWindow(dpy, DefaultRootWindow(dpy), + x0, y0, + (unsigned) (x1 - x0 + 1), + (unsigned) (y1 - y0 + 1), + 0, DefaultDepth(dpy, scrn), + InputOutput, &visual, + CWBackPixel | CWOverrideRedirect, &xswa); + + XMapWindow(dpy, win); + XDestroyWindow(dpy, win); + +/* XSync(dpy, 0);*/ +} + +/* ----------------------------------------------------------------- + * Set the root window to display our favorite pixmap. + */ +int +Draw_Set_Background() +{ +} + +/*----------------------------------------------------------------- + * Reset the root window background to the default pixmap. + */ +int +Draw_Reset_Background() +{ +} + +/*----------------------------------------------------------------- + * Set the acceleration/threshold levels for mouse movement. + * + */ +int +Draw_Set_Mouse_Control(accel, thres) +{ + +} diff --git a/draw.h b/draw.h new file mode 100644 index 0000000..c2975fa --- /dev/null +++ b/draw.h @@ -0,0 +1,105 @@ +/* +static char sccs_id[] = "@(#)draw.h 5.5 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +#ifndef DRAW +#include "drawP.h" +#endif + +extern void Draw_Init(); + +extern void Draw_Create(); +/* Userwin *uwinp; + */ + +extern void Draw_ConfigWin(); +/* Window win; + int left_x, top_y; + int width, height; + */ + +extern void Draw_Start(); + /* x0,y0,x1,y1 */ + +extern void Draw_Finish(); + +extern void Draw_Flash(); + +extern void Draw_Line(); + /* x0,y0,x1,y1 */ + +extern void Draw_Horizontal(); + /* width, y, x0, x1 */ + +extern void Draw_Vertical(); + /* width, x, y0, y1 */ + +extern void Draw_Xor_Line(); + /* x0,y0,x1,y1 */ + +extern void Draw_Xor_Horizontal(); + /* y,x0,x1 */ + +extern void Draw_Xor_Vertical(); + /* y,x0,x1 */ + +extern void Draw_Clear_Rectangle(); + /* x0,y0,x1,y1 */ +extern void Draw_Background_Rectangle(); + /* x0,y0,x1,y1 */ +extern void Draw_Fill_Rectangle(); + /* x0,y0,x1,y1 */ +extern void Draw_Fill_Xor_Rectangle(); + /* x0,y0,x1,y1 */ + +extern void Draw_Rectangle(); + /* width,x0,y0,x1,y1 */ + +extern void Draw_Xor_Rectangle(); + /* x0,y0,x1,y1 */ + +extern void Draw_Pixrect(); + /* pixp,x0,y0,x1,y1 */ + +extern int Draw_Open(); + /* fontstr */ + +extern int Draw_Font_Height(); + /* fontid */ + +extern int Draw_Num_Drawables(); + /* str, fontid, width */ + +extern void Draw_Centered_String(); + /* str, fontid, x0, y0, x1, y1 */ + +extern void Draw_Vert_Centered_String(); + /* str, fontid, x0, y0, x1, y1 */ + +extern int Draw_Get_Frame_Width(); + +extern int Draw_Get_Frame_Height(); diff --git a/drawP.h b/drawP.h new file mode 100644 index 0000000..8f2578d --- /dev/null +++ b/drawP.h @@ -0,0 +1,35 @@ +/* +static char sccs_id[] = "@(#)drawP.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + + +#ifndef DRAW +#define DRAW +#endif + +typedef pointer DrawRegion; diff --git a/drawicon.c b/drawicon.c new file mode 100644 index 0000000..03e2ba6 --- /dev/null +++ b/drawicon.c @@ -0,0 +1,561 @@ +#ifndef lint +static char sccs_id[] = "%W% %H%"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include +#include +#include "basetype.h" +#include "userglobD.h" +#include "uwinD.h" +#include "uwinXD.h" + +#include +#include +#include "xio.h" +#include "tilecrsr.h" +#include "assoc.h" + +#define ICONFONT "6x12" + + +static XFontStruct *ifontp; + +extern GC + fillGC, clearGC, xorGC, invert_body_GC; +extern Pixmap + iconframe; + +/* ------------------------------------------------------------ + * Load icons into RTL. + */ +void +DrawIcon_Init() +{ + + Icons_Load(); + + if ( (ifontp = XLoadQueryFont(dpy, ICONFONT)) == (XFontStruct *) NULL ) + { + fprintf(stderr, "DrawIcon_Init: cannot load font <%s>!\n", + ICONFONT); + } + +} + +/* ------------------------------------------------------------ + * ??Create Icon x-window for 'uwinp'. + * ??Called from Manage_Create_Window. Don't know class (yet). + * ??How to vary icon window size? + * ??How to handle Client-provided Icon windows? + */ +void +DrawIcon_Create( uwinp ) + Userwin *uwinp; +{ + unsigned long vmask; + XSetWindowAttributes attrs; + TWRectangle rect; + int width, height; + + + rect = Tilwin_Get_Rectangle( uwinp->iconp ); + width = rect.right_x - rect.left_x + 1; + height = rect.bottom_y - rect.top_y + 1; + + + vmask = CWEventMask | CWBackPixel; + + attrs.event_mask = ButtonPressMask | ButtonReleaseMask | + KeyPressMask | LeaveWindowMask | EnterWindowMask | ExposureMask; + + attrs.background_pixel = WhitePixel(dpy, scrn); + + Userwin_XIcon(uwinp) = + XCreateWindow(dpy, root, + 0, 0, + (unsigned) width, (unsigned) height, + 0, + DefaultDepth(dpy, scrn), (unsigned int) CopyFromParent, + DefaultVisual(dpy, scrn), vmask, &attrs); + + XDefineCursor(dpy, Userwin_XIcon(uwinp), icon_tilecursor); + + /* make sure it's below transients */ + XLowerWindow(dpy, Userwin_XIcon(uwinp)); +} + +/* ------------------------------------------------------------ + * Destroy Icon x-window for 'uwinp'. + */ +/*ARGSUSED*/ +void DrawIcon_Destroy( uwinp ) + Userwin *uwinp; +{ + Assoc_Remove(Userwin_XIcon(uwinp)); + + XDestroyWindow(dpy, Userwin_XIcon(uwinp)); +} + +/* ------------------------------------------------------------ + * + */ +void DrawIcon_Init_Rtl( uwinp ) + Userwin *uwinp; +{ + + DrawIcon_Create(uwinp); + + Userwin_XParentWin(uwinp) = None; + Userwin_XClient(uwinp) = None; + + Assoc_Put((char *) uwinp, Userwin_XIcon(uwinp)); + + Icons_Set_Rtl_Icon(uwinp); + + uwinp->output_sent = FALSE; + + Userwin_Set_Window_Option( uwinp, CLIENT_DRAWS_ICON, FALSE ); + Userwin_Set_Window_Option( uwinp, + INCLUDE_TITLE_IN_PIXMAP_ICON, FALSE ); +} + +/* ------------------------------------------------------------ + * Draw the string at the proper position in the Icon window. + * + * NOTE: We ignore the "rect" argument, since all drawing will + * relative to the icon window, with top-left corner at (0,0) + */ +/*ARGSUSED*/ +static void +DrawIcon_Draw_String(icon, rect, offset, s) + Window icon; + TWRectangle rect; + TWRectangle offset; + char *s; +{ + int x0, y0, x1, y1; + char strs[16][16]; + int ilin, nlin, ichar, nchar; + short height; + + + if (ifontp == (XFontStruct *) NULL) + return; + + x0 = ifontp->max_bounds.width; + y0 = height = ifontp->max_bounds.ascent + ifontp->max_bounds.descent; + + x1 = x0 + offset.right_x; + x0 += offset.left_x; + y1 = y0 + offset.bottom_y; + y0 += offset.top_y; + + nlin = ( y1 - y0 + 1 ) / (1 + height); + + if ( nlin > 0 ) + nlin--; + ilin = 0; + + while ( ilin <= nlin ) + { + while ( *s == ' ' ) + s++; + if ( *s == 0 ) break; + + ichar = nchar = Draw_Num_Drawables(s, ifontp, x1 - x0 + 1, 1000); + if ( nchar == 0 ) break; + + if ( (s[nchar] != 0) && ( ilin < nlin ) ) + while ( (ichar >= 0) && (s[ichar] != ' ') && (s[ichar] != '/') ) + ichar--; + ichar--; + if ( ichar < 0 ) + ichar = nchar - 1; + else + while ( s[ichar] == ' ' ) + ichar--; + + (void) strncpy( strs[ilin], s, ichar + 1 ); + strs[ilin][ichar+1] = 0; + ilin++; + + s = &s[ichar+1]; + } + + nlin = ilin; + + for ( ilin = 0; ilin < nlin; ilin++ ) + { + XDrawString(dpy, icon, fillGC, + x0, y0 + ( ( ilin * (y1 - y0 + 1) ) / nlin ), + strs[ilin], + strlen(strs[ilin])); + } +} + +/* ------------------------------------------------------------ + * Draw client info in its Icon window. + */ +static void +DrawIcon_Draw_Info( uwinp ) + Userwin *uwinp; +{ + char *str; + int strsiz = 1; + bool has_class, has_name; + + has_class = (uwinp->res_class != NULL) && + Userwin_Get_Window_Option( uwinp, + INCLUDE_RES_CLASS_IN_ICON_TITLE ); + + has_name = (uwinp->res_name != NULL) && + Userwin_Get_Window_Option( uwinp, + INCLUDE_RES_NAME_IN_ICON_TITLE ); + + if ( has_class || has_name ) + { + if ( has_class ) + strsiz += strlen(uwinp->res_class); + + if ( has_class && has_name ) + strsiz +=1; + + if ( has_name ) + strsiz += strlen(uwinp->res_name); + + str = allocate( char, strsiz ); + str[0] = '\0'; + + if ( has_class ) + (void)strcat( str, uwinp->res_class ); + + if ( has_class && has_name ) + (void)strcat( str, ":" ); + + if ( has_name ) + (void)strcat( str, uwinp->res_name ); + + DrawIcon_Draw_String(Userwin_XIcon(uwinp), + Tilwin_Get_Rectangle( uwinp->iconp ), + uwinp->icon_res_rect, + str); + free( str ); + } + + + if ( Userwin_Get_Window_Option( uwinp, + INCLUDE_HOST_IN_ICON_TITLE ) && + (uwinp->hostname != NULL) ) + DrawIcon_Draw_String(Userwin_XIcon(uwinp), + Tilwin_Get_Rectangle( uwinp->iconp ), + uwinp->icon_host_rect, + uwinp->hostname); + + if ( Userwin_Get_Window_Option( uwinp, + INCLUDE_NAME_IN_ICON_TITLE ) ) + { + if (uwinp->iconname != NULL) + DrawIcon_Draw_String(Userwin_XIcon(uwinp), + Tilwin_Get_Rectangle( uwinp->iconp ), + uwinp->icon_name_rect, + uwinp->iconname); + + else if (uwinp->wmname != NULL) + DrawIcon_Draw_String(Userwin_XIcon(uwinp), + Tilwin_Get_Rectangle( uwinp->iconp ), + uwinp->icon_name_rect, + uwinp->wmname); + } +} + +/* ------------------------------------------------------------ + * Draw Icon pixmap in its x-window. + */ +int +DrawIcon_Display( uwinp ) + Userwin *uwinp; +{ + TWRectangle rect; + unsigned int width, height; + GC gc; + + rect = Tilwin_Get_Rectangle( uwinp->iconp ); + width = rect.right_x - rect.left_x + 1; + height = rect.bottom_y - rect.top_y + 1; + + XClearWindow(dpy, uwinp->xframe.icon); + + gc = DefaultGC(dpy, scrn); + + /* flash the icon, and leave a border behind */ + + XFillRectangle(dpy, uwinp->xframe.icon, invert_body_GC, + 0, 0, width, height); + XFlush(dpy); + XFillRectangle(dpy, uwinp->xframe.icon, invert_body_GC, + 1, 1, width-2, height-2); + + + if ( Userwin_Get_Window_Option( uwinp, CLIENT_DRAWS_ICON ) ) + { + if ( uwinp->iconpix != None ) + XCopyPlane(dpy, uwinp->iconpix, + uwinp->xframe.icon, + gc, 1, 1, width-2, height-2, 1, 1, + (unsigned long) 1); + + if ( Userwin_Get_Window_Option( uwinp, + INCLUDE_TITLE_IN_CLIENT_ICON ) ) + DrawIcon_Draw_Info( uwinp ); + } + else if ( (uwinp->output_sent) && (uwinp->iconpix_pending != None) ) + { + XCopyPlane(dpy, uwinp->iconpix_pending, + uwinp->xframe.icon, + gc, 0, 0, width, height, 0, 0, + (unsigned long) 1); + + if ( Userwin_Get_Window_Option( uwinp, + INCLUDE_TITLE_IN_PIXMAP_ICON ) ) + DrawIcon_Draw_Info( uwinp ); + } + else + { + if ( uwinp->iconpix != None ) + XCopyPlane(dpy, uwinp->iconpix, + uwinp->xframe.icon, + gc, 1, 1, width-2, height-2, 1, 1, + (unsigned long) 1); + + if ( uwinp->output_sent && + Userwin_Get_Window_Option( uwinp, INVERT_ICON_WHEN_PENDING ) ) + XFillRectangle(dpy, uwinp->xframe.icon, invert_body_GC, + 0, 0, width, height); + + if ( ( uwinp->iconpix == None ) || + Userwin_Get_Window_Option( uwinp, + INCLUDE_TITLE_IN_PIXMAP_ICON ) ) + DrawIcon_Draw_Info( uwinp ); + } +} + +/* ------------------------------------------------------------ + * Unmap Icon on a closing Move operation. + */ +void DrawIcon_Move_Close( uwinp ) + Userwin *uwinp; +{ +/* don't think we need to do this.... */ +/* XUnmapWindow(dpy, Userwin_XIcon(uwinp)); */ +} + +/* ------------------------------------------------------------ + */ +void DrawIcon_Close( uwinp ) + Userwin *uwinp; +{ + + XUnmapWindow(dpy, Userwin_XIcon(uwinp)); + +} + +/* ------------------------------------------------------------ + * Move Icon (window) to new location. + */ +void DrawIcon_Move_Open( uwinp ) + Userwin *uwinp; +{ + TWRectangle rect; + Size icon_size; + XWindowChanges ch; + + rect = Tilwin_Get_Rectangle(uwinp->iconp); + ch.x = Get_LeftX(rect); + ch.y = Get_TopY(rect); + + icon_size = Tilwin_Get_Size(uwinp->iconp); + ch.width = Get_Width(icon_size); + ch.height = Get_Height(icon_size); + + XConfigureWindow(dpy, Userwin_XIcon(uwinp), + (unsigned int)(CWX | CWY | CWWidth | CWHeight), + &ch); + + XMapWindow(dpy, Userwin_XIcon(uwinp)); +} + +/* ------------------------------------------------------------ + * Open the Icon. (Call Move_Open?) + */ +void DrawIcon_Open(uwinp) + Userwin *uwinp; +{ + DrawIcon_Move_Open(uwinp); +} + +/* ------------------------------------------------------------ + * Re-configure Icon window on a reset of RTL profile. + */ +/*ARGSUSED*/ +void DrawIcon_Draw( uwinp ) + Userwin *uwinp; +{ +/*XXXXXXXX*/ +} + +/* ------------------------------------------------------------ + * Re-display Icon window. + */ +void DrawIcon_Redraw( uwinp ) + Userwin *uwinp; +{ + + DrawIcon_Display( uwinp ); +} + +/* ------------------------------------------------------------ + * Reset Icon title in its window. + */ +void +DrawIcon_Retitle( uwinp ) + Userwin *uwinp; +{ + + DrawIcon_Display( uwinp ); +} + +/* ------------------------------------------------------------ + * Display pending-I/O pixmap in Icon window, upon + * pending I/O in the x-window. + */ +void DrawIcon_Note_Output( uwinp ) + Userwin *uwinp; +{ + + DrawIcon_Display( uwinp ); +} + +/* ------------------------------------------------------------ + * Invert Icon window's image, upon a Move Operation. + */ +void DrawIcon_Show_Moving( uwinp ) + Userwin *uwinp; +{ + TWRectangle rect; + unsigned int width, height; + + + rect = Tilwin_Get_Rectangle( uwinp->iconp ); + width = rect.right_x - rect.left_x + 1; + height = rect.bottom_y - rect.top_y + 1; + + XFillRectangle(dpy, uwinp->xframe.icon, invert_body_GC, + 0, 0, width, height); +} + +/* ------------------------------------------------------------ + * Revert Icon window's image to "standard" color - Move + * Operation was completed or cancelled. + */ +void DrawIcon_Unshow_Moving( uwinp ) + Userwin *uwinp; +{ + DrawIcon_Show_Moving( uwinp ); +} + +/* ------------------------------------------------------------ + */ +void DrawIcon_Show_Opening( uwinp ) + Userwin *uwinp; +{ + DrawIcon_Show_Moving( uwinp ); +} + +/* ------------------------------------------------------------ + */ +void DrawIcon_Unshow_Opening( uwinp ) + Userwin *uwinp; +{ + DrawIcon_Unshow_Moving( uwinp ); +} + +/* ============================================================ */ + +static int old_x0, old_y0, old_x1, old_y1; + +/*ARGSUSED*/ +static void DrawIcon_Calc_Move_Rect( uwinp, pos, siz ) + Userwin *uwinp; + TWPoint pos; + Size siz; +{ + int xdif, ydif; + + + xdif = siz.width/2; + ydif = siz.height/2; + + old_x0 = pos.x - xdif + 1; + old_y0 = pos.y - ydif + 1; + old_x1 = pos.x + xdif; + old_y1 = pos.y + ydif; +} + +/* ------------------------------------------------------------ + */ +/*ARGUSED*/ +void DrawIcon_Good_Move_Box( uwinp, pos, siz ) + Userwin *uwinp; + TWPoint pos; + Size siz; +{ + + DrawIcon_Calc_Move_Rect(uwinp,pos,siz); + + Drawwin_Draw_Box( old_x0, old_y0, old_x1, old_y1, + UserGlobals_Get_Option(DRAW_X_ON_MOVE) ); +} + +/* ------------------------------------------------------------ + */ +void DrawIcon_Bad_Move_Box( uwinp, pos, siz ) + Userwin *uwinp; + TWPoint pos; + Size siz; +{ + + DrawIcon_Good_Move_Box(uwinp,pos,siz); +} + +/* ------------------------------------------------------------ + */ +void DrawIcon_Undo_Move_Box() +{ + + Drawwin_Draw_Box( old_x0, old_y0, old_x1, old_y1, + UserGlobals_Get_Option(DRAW_X_ON_MOVE) ); +} diff --git a/drawicon.h b/drawicon.h new file mode 100644 index 0000000..449a8fb --- /dev/null +++ b/drawicon.h @@ -0,0 +1,94 @@ +/* +static char sccs_id[] = "@(#)drawicon.h 5.5 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +#ifndef BASETYPE +#include "basetype.h" +#endif + +extern void DrawIcon_Init(); + +extern void DrawIcon_Flash(); + +extern void DrawIcon_Init_Rtl(); + /* uwinp */ + +extern void DrawIcon_Initial_Size(); + /* uwinp */ + +extern void DrawIcon_Create(); + /* uwinp */ + +extern void DrawIcon_Destroy(); + /* uwinp */ + +extern void DrawIcon_Close(); + /* uwinp */ + +extern void DrawIcon_Open(); + /* uwinp */ + +extern void DrawIcon_Move_Open(); + /* uwinp */ + +extern void DrawIcon_Move_Close(); + /* uwinp */ + +extern void DrawIcon_Redraw(); + /* uwinp */ + +extern void DrawIcon_Draw(); + /* uwinp */ + +extern void DrawIcon_Retitle(); + /* uwinp */ + +extern void DrawIcon_Note_Output(); + /* uwinp */ + +extern void DrawIcon_Good_Move_Box(); + /* uwinp, pos, siz */ + +extern void DrawIcon_Bad_Move_Box(); + /* uwinp, pos, siz */ + +extern void DrawIcon_Undo_Move_Box(); + +extern void DrawIcon_Show_Moving(); + /* uwinp */ + +extern void DrawIcon_Unshow_Moving(); + /* uwinp */ + +extern void DrawIcon_Show_Opening(); + /* uwinp */ + +extern void DrawIcon_Unshow_Opening(); + /* uwinp */ + + diff --git a/drawwin.c b/drawwin.c new file mode 100644 index 0000000..9909546 --- /dev/null +++ b/drawwin.c @@ -0,0 +1,757 @@ +#ifndef lint +static char sccs_id[] = "%W% %H%"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +/* The Drawwin package manages Decorated client-windows + */ +#include "basetype.h" +#include "userglobD.h" +#include "uwinD.h" +#include "uwinXD.h" +#include "assoc.h" +#include "draw.h" +#include "control.h" + +#include +#include +#include "xio.h" + + +extern void + Drawwin_Config_Borders(), Drawwin_Draw_Borders(), Drawwin_Remove_Borders(), + Drawwin_Config_Header(), Drawwin_Draw_Header(), Drawwin_Remove_Header(), + Drawwin_Config_Gadgets(), Drawwin_Draw_Gadgets(), Drawwin_Remove_Gadgets(); + +extern GC + fillGC, clearGC, xorGC, invert_body_GC; + + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void Drawwin_Flash() +{ + Draw_Flash(); +} + + +/* ------------------------------------------------------------ */ + +/* Free all subwindows and parent of original Decorated client window + */ +void +Drawwin_Destroy(uwinp) + Userwin *uwinp; +{ + + Assoc_RemoveDecorations(uwinp); + Control_Destroy(uwinp); + XDestroySubwindows(dpy, Userwin_XParentWin(uwinp)); + XDestroyWindow(dpy, Userwin_XParentWin(uwinp)); +} + +/* ------------------------------------------------------------ */ +/*ARGSUSED*/ +void +Drawwin_Draw_Background( rect ) + TWRectangle rect; +{ + /* Sun-version function */ +} + +/* ------------------------------------------------------------ */ + +bool +Drawwin_Redraw_All( rect ) + TWRectangle rect; +{ + + Draw_Background_Rectangle(rect.left_x, rect.top_y, + rect.right_x, rect.bottom_y); + + return TRUE; +} + +/* ------------------------------------------------------------ */ + +/* Create the Decorated Window. + */ +void +Drawwin_Create(uwinp) + Userwin *uwinp; +{ + Draw_Create(uwinp); +} + +/* ------------------------------------------------------------ */ + +/* Start Drawwing. + */ +void +Drawwin_Start() +{ +} + +/* ------------------------------------------------------------ */ + +/* Finish Drawwing. + */ +void +Drawwin_Finish() +{ + XFlush(dpy); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void +Drawwin_Display_Focus( uwinp ) + Userwin *uwinp; +{ + int width, height; /* parent window's dimensions */ + TWRectangle rect; + + + rect = Userwin_Get_Rectangle(uwinp); + + width = rect.right_x - rect.left_x + 1; + height = rect.bottom_y - rect.top_y + 1; + + if ( UserGlobals_Get_Option(SHOW_FOCUS_IN_BORDERS) ) + { + if (Userwin_Get_Window_Option( uwinp, USE_BORDERS ) ) + Drawwin_Draw_Borders(uwinp, width, height); + } + + if ( UserGlobals_Get_Option(SHOW_FOCUS_IN_HEADER) ) + { + if (Userwin_Get_Window_Option( uwinp, USE_HEADER ) ) + Drawwin_Draw_Header(uwinp, width, height); + } +} + +/* ------------------------------------------------------------ */ + +void +Drawwin_Retitle(uwinp) + Userwin *uwinp; +{ + TWRectangle rect; + + + rect = Userwin_Get_Rectangle(uwinp); + + Drawwin_Draw_Header(uwinp, + rect.right_x - rect.left_x + 1, + rect.bottom_y - rect.top_y + 1); +} + +/* ------------------------------------------------------------ */ + +/* re-configure the dimensions of the X windows composing the + * Decorated Client window (and draw the D.C. window decorations) + */ +void +Drawwin_Display_Wrapping(uwinp) + Userwin *uwinp; +{ + int width, height; /* parent window's dimensions */ + TWRectangle tw_rect; + + + tw_rect = Userwin_Get_Rectangle(uwinp); + + width = tw_rect.right_x - tw_rect.left_x + 1; + height = tw_rect.bottom_y - tw_rect.top_y + 1; + + + if (Userwin_Get_Window_Option( uwinp, USE_BORDERS )) + { + Drawwin_Draw_Borders(uwinp, width, height); + } + + if (Userwin_Get_Window_Option( uwinp, USE_HEADER )) + { + Drawwin_Draw_Header(uwinp, width, height); + + if (Userwin_Get_Window_Option( uwinp, USE_GADGETS )) + { + Drawwin_Draw_Gadgets(uwinp, width, height); + } + } +} + + +/* Setup the dimensions of the Decorated Window. + */ +static void +Drawwin_Config_Wrapping(uwinp) + Userwin *uwinp; +{ + int left_x, top_y; + int width, height, /* parent window's dimensions */ + cwidth, cheight; /* client window's dimensions */ + TWRectangle tw_rect; + + + tw_rect = Userwin_Get_Rectangle(uwinp); + + left_x = top_y = 0; + cwidth = width = tw_rect.right_x - tw_rect.left_x + 1; + cheight = height = tw_rect.bottom_y - tw_rect.top_y + 1; + + + if (Userwin_Get_Window_Option( uwinp, USE_BORDERS )) + { + Drawwin_Config_Borders(uwinp, width, height); + + left_x += BORDER_SIZE_VAL; + top_y += BORDER_SIZE_VAL; + cwidth -= (2 * BORDER_SIZE_VAL); + cheight -= (2 * BORDER_SIZE_VAL); + } + else + { + Drawwin_Remove_Borders(uwinp); + } + + + if (Userwin_Get_Window_Option( uwinp, USE_HEADER )) + { + Drawwin_Config_Header(uwinp, width, height); + + top_y += (uwinp->header_height + INNER_BORDER_LINEWIDTH_VAL); + cheight -= (uwinp->header_height + INNER_BORDER_LINEWIDTH_VAL); + + + if (Userwin_Get_Window_Option( uwinp, USE_GADGETS )) + { + Drawwin_Config_Gadgets(uwinp, width, height); + } + else + { + Drawwin_Remove_Gadgets(uwinp); + } + } + else + { + Drawwin_Remove_Gadgets(uwinp); + Drawwin_Remove_Header(uwinp); + } + + + Draw_ConfigWin(Userwin_XClient(uwinp), + left_x, top_y, + cwidth, cheight); + + Draw_ConfigWin(Userwin_XParentWin(uwinp), + tw_rect.left_x, tw_rect.top_y, + width, height); +} + + +/* Get client position and size relative to its Parent. + * Useful when an annoying client tries to Re-parent itself + * back to the root window! + * + * Code borrowed from Drawwin_Config_Wrapping(). + */ +int +Drawwin_Client_Position(uwinp, px, py, pwd, pht) + Userwin *uwinp; + int *px, *py; /* these are all Returned */ + unsigned int *pwd, *pht; +{ + TWRectangle rect; + + + rect = Userwin_Get_Rectangle(uwinp); + + *pwd = rect.right_x - rect.left_x + 1; + *pht = rect.bottom_y - rect.top_y + 1; + + *px = *py = 0; + + if (Userwin_Get_Window_Option( uwinp, USE_BORDERS )) + { + *px += BORDER_SIZE_VAL; + *py += BORDER_SIZE_VAL; + } + + if (Userwin_Get_Window_Option( uwinp, USE_HEADER )) + { + *py += (uwinp->header_height + INNER_BORDER_LINEWIDTH_VAL); + } + +} + + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +/* Unmap the Decorated Win if its size changed on the Move + * Operation. + */ +/*ARGSUSED*/ +void Drawwin_Move_Close( uwinp, clear ) + Userwin *uwinp; + bool clear; +{ + /* make it work with X -- always unmap */ + /* --- removed for efficiency, and to make focus --- */ + /* work correctly */ +/* XUnmapWindow(dpy, Userwin_XParentWin(uwinp)); */ +} + +/* ------------------------------------------------------------ */ + +void Drawwin_Listener_Move_Close( uwinp, clear ) + Userwin *uwinp; + bool clear; +{ + int grab_result; + unsigned int ev_mask = PointerMotionMask | ButtonPressMask | ButtonReleaseMask; + + grab_result = XGrabPointer(dpy, root, False, ev_mask, + GrabModeAsync, GrabModeAsync, + Userwin_XClient(uwinp), (Cursor) None, + CurrentTime); + Drawwin_Move_Close( uwinp, clear ); +} + +/* ------------------------------------------------------------ */ + +/* Redraw the Decorated Window on completion of the Move + * Operation. If the DW's size is unchanged, reconfigure + * PARENT window only, and Notify the client of the Move. + */ +void Drawwin_Move_Open( uwinp ) + Userwin *uwinp; +{ + TWRectangle window_rect; + int new_x, new_y; + + /* find the x-y position for the window */ + + window_rect = Userwin_Get_Rectangle(uwinp); + new_x = Get_LeftX(window_rect); + new_y = Get_TopY(window_rect); + + if ( Userwin_Size_Changed(uwinp) == FALSE ) + { + /* Just move it w/o resize */ + XMoveWindow(dpy, Userwin_XParentWin(uwinp), new_x, new_y); + } + else + { + Drawwin_Config_Wrapping(uwinp); + } + /* send WM_MOVED message --- needs to be added here */ + + /* ensure remap of Client when its Icon is Closed... + mike says --- ?????? + */ + /* XMapWindow(dpy, Userwin_XParentWin(uwinp)); */ +} + +/* ------------------------------------------------------------ */ + +void Drawwin_Listener_Move_Open( uwinp ) + Userwin *uwinp; +{ + Drawwin_Move_Open( uwinp ); + XUngrabPointer(dpy, CurrentTime); +} + +/* ------------------------------------------------------------ */ + +/* Finish Close operation + */ +void Drawwin_Unmap(uwinp) + Userwin *uwinp; +{ + XUnmapSubwindows(dpy, Userwin_XParentWin(uwinp)); + XUnmapWindow(dpy, Userwin_XParentWin(uwinp)); +} + +/* ------------------------------------------------------------ */ + +/* Begin Close operation - + * + * if Window will be covered by other Windows when it's un-mapped, + * then it's not "in the clear" (will cause flashing), so Lower it. + */ +/*ARGSUSED*/ +void +Drawwin_Close(uwinp, clear) + Userwin *uwinp; + bool clear; +{ + XLowerWindow(dpy, Userwin_XParentWin(uwinp)); +} + +/* ------------------------------------------------------------ */ + +void Drawwin_Open( uwinp ) + Userwin *uwinp; +{ + Drawwin_Config_Wrapping(uwinp); +} + +/* ------------------------------------------------------------ */ + +/* ARGSUSED */ +void Drawwin_Draw( uwinp ) + Userwin *uwinp; +{ +} + +/* ------------------------------------------------------------ */ +/* This is the only place where X Expose events aren't there + * to make the x-client redraw its window. + */ +void Drawwin_Redraw( uwinp ) + Userwin *uwinp; +{ + TWRectangle rect; + + + rect = Userwin_Get_Rectangle(uwinp); + + Draw_Background_Rectangle(rect.left_x, rect.top_y, + rect.right_x, rect.bottom_y); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +/* Invert Client Window's image, upon a Move Operation + */ +void Drawwin_Show_Moving( uwinp ) + Userwin *uwinp; +{ + Size window_size; + + window_size = Userwin_Get_Size(uwinp); + XFillRectangle(dpy, (Drawable) Userwin_XParentWin(uwinp), invert_body_GC, + 0, 0, window_size.width, window_size.height); +} + +/* ------------------------------------------------------------ */ + +/* Revert Client Window's image to "standard" color - Move + * Operation was completed or cancelled. + */ +void Drawwin_Unshow_Moving( uwinp ) + Userwin *uwinp; +{ + + Drawwin_Show_Moving( uwinp ); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static int old_x0, old_y0, old_x1, old_y1; + +int +Drawwin_Draw_Box(x0, y0, x1, y1, draw_x) + int x0, y0, x1, y1; + bool draw_x; +{ + XPoint points[8]; + XPoint *pt = points; + + + pt -> x = x0; + pt++ -> y = y0; + + pt -> x = x1; /* Box - top side */ + pt++ -> y = y0; + + pt -> x = x1; /* right side */ + pt++ -> y = y1; + + pt -> x = x0; /* bottom side */ + pt++ -> y = y1; + + pt -> x = x0; /* left side */ + pt++ -> y = y0; + + + if (draw_x == TRUE) /* should we draw cross-hatch (X)? */ + { + pt -> x = x1; + pt++ -> y = y1; + + pt -> x = x0; + pt++ -> y = y1; + + pt -> x = x1; + pt++ -> y = y0; + } + + XDrawLines(dpy, root, xorGC, points, pt - points, CoordModeOrigin); + + + pt = points; /* "double" the left, bottom and right sides */ + + pt -> x = x0 + 1; + pt++ -> y = y0 + 1; + + pt -> x = x1 - 1; /* Box - top side */ + pt++ -> y = y0 + 1; + + pt -> x = x1 - 1; /* right side */ + pt++ -> y = y1 - 1; + + pt -> x = x0 + 1; /* bottom side */ + pt++ -> y = y1 - 1; + + pt -> x = x0 + 1; /* left side */ + pt++ -> y = y0 + 1; + + XDrawLines(dpy, root, xorGC, points, pt - points, CoordModeOrigin); +} + + +void Drawwin_Good_Open_Box( start_pos, pos ) + TWPoint start_pos; + TWPoint pos; +{ + + old_x0 = start_pos.x; + old_y0 = start_pos.y; + old_x1 = pos.x; + old_y1 = pos.y; + + Drawwin_Draw_Box( old_x0, old_y0, old_x1, old_y1, + UserGlobals_Get_Option(DRAW_X_ON_OPEN) ); +} + +/* ------------------------------------------------------------ */ + +void Drawwin_Bad_Open_Box( start_pos, pos ) + TWPoint start_pos; + TWPoint pos; +{ + + Drawwin_Good_Open_Box(start_pos, pos); +} + +/* ------------------------------------------------------------ */ + +void Drawwin_Undo_Open_Box() +{ + + Drawwin_Draw_Box( old_x0, old_y0, old_x1, old_y1, + UserGlobals_Get_Option(DRAW_X_ON_OPEN) ); +} + +/* ============================================================ */ + +static void Drawwin_Calc_Move_Rect( pos, siz ) + TWPoint pos; + Size siz; +{ + int xdif, ydif; + + + xdif = siz.width/2; + ydif = siz.height/2; + + old_x0 = pos.x - xdif + 1; + old_y0 = pos.y - ydif + 1; + old_x1 = pos.x + xdif; + old_y1 = pos.y + ydif; +} + +/* ------------------------------------------------------------ */ + +/*ARGSUSED*/ +void Drawwin_Good_Move_Box( uwinp, pos, siz ) + Userwin *uwinp; + TWPoint pos; + Size siz; +{ + + Drawwin_Calc_Move_Rect(pos, siz); + + Drawwin_Draw_Box( old_x0, old_y0, old_x1, old_y1, + UserGlobals_Get_Option(DRAW_X_ON_MOVE) ); +} + +/* ------------------------------------------------------------ */ + +void Drawwin_Bad_Move_Box( uwinp, pos, siz ) + Userwin *uwinp; + TWPoint pos; + Size siz; +{ + + Drawwin_Good_Move_Box(uwinp, pos, siz); +} + +/* ------------------------------------------------------------ */ + +void Drawwin_Undo_Move_Box() +{ + + Drawwin_Draw_Box( old_x0, old_y0, old_x1, old_y1, + UserGlobals_Get_Option(DRAW_X_ON_MOVE) ); +} + +/* ============================================================ */ + +static void Drawwin_Calc_Edge_Resize( uwinp, side, pos ) + Userwin *uwinp; + Side side; + TWPoint pos; +{ + + old_x0 = Userwin_Get_Rectangle(uwinp).left_x; + old_y0 = Userwin_Get_Rectangle(uwinp).top_y; + old_x1 = Userwin_Get_Rectangle(uwinp).right_x; + old_y1 = Userwin_Get_Rectangle(uwinp).bottom_y; + + switch(side) + { + case Left: + old_x0 = pos.x; + break; + case Top: + old_y0 = pos.y; + break; + case Right: + old_x1 = pos.x; + break; + case Bottom: + old_y1 = pos.y; + break; + } + +} + +/* ------------------------------------------------------------ */ + +/*ARGSUSED*/ +void Drawwin_Edge_Resize( uwinp, side, pos ) + Userwin *uwinp; + Side side; + TWPoint pos; +{ + + Drawwin_Calc_Edge_Resize( uwinp, side, pos ); + + Drawwin_Draw_Box( old_x0, old_y0, old_x1, old_y1, + UserGlobals_Get_Option(DRAW_X_ON_RESIZE) ); +} + +/* ------------------------------------------------------------ */ + +void Drawwin_Undo_Edge_Resize() +{ + + Drawwin_Draw_Box( old_x0, old_y0, old_x1, old_y1, + UserGlobals_Get_Option(DRAW_X_ON_RESIZE) ); +} + +/* ============================================================ */ + +static void Drawwin_Calc_Corner_Resize( uwinp, side, pos ) + Userwin *uwinp; + Side side; + TWPoint pos; +{ + + old_x0 = Userwin_Get_Rectangle(uwinp).left_x; + old_y0 = Userwin_Get_Rectangle(uwinp).top_y; + old_x1 = Userwin_Get_Rectangle(uwinp).right_x; + old_y1 = Userwin_Get_Rectangle(uwinp).bottom_y; + + switch(side) + { + case Top_Left: + old_x0 = pos.x; + old_y0 = pos.y; + break; + case Bottom_Left: + old_x0 = pos.x; + old_y1 = pos.y; + break; + case Top_Right: + old_x1 = pos.x; + old_y0 = pos.y; + break; + case Bottom_Right: + old_x1 = pos.x; + old_y1 = pos.y; + break; + } + +} + +/* ------------------------------------------------------------ */ + +/*ARGSUSED*/ +void Drawwin_Corner_Resize( uwinp, side, pos ) + Userwin *uwinp; + Side side; + TWPoint pos; +{ + + Drawwin_Calc_Corner_Resize(uwinp, side, pos); + + Drawwin_Draw_Box( old_x0, old_y0, old_x1, old_y1, + UserGlobals_Get_Option(DRAW_X_ON_RESIZE) ); +} + +/* ------------------------------------------------------------ */ + +void Drawwin_Undo_Corner_Resize() +{ + + Drawwin_Draw_Box( old_x0, old_y0, old_x1, old_y1, + UserGlobals_Get_Option(DRAW_X_ON_RESIZE) ); +} + +void Drawwin_Insert(uwinp) + Userwin *uwinp; +{ + XChangeSaveSet(dpy, Userwin_XClient(uwinp), SetModeInsert); + XReparentWindow(dpy, Userwin_XClient(uwinp), + Userwin_XParentWin(uwinp), 0, 0); +} + +void Drawwin_Withdraw(uwinp) + Userwin *uwinp; +{ + XChangeSaveSet(dpy, Userwin_XClient(uwinp), SetModeDelete); + XReparentWindow(dpy, Userwin_XClient(uwinp), + RootWindow(dpy, scrn), 0, 0); +} + +void Drawwin_Prepare(uwinp) + Userwin *uwinp; +{ +} diff --git a/drawwin.h b/drawwin.h new file mode 100644 index 0000000..171529c --- /dev/null +++ b/drawwin.h @@ -0,0 +1,133 @@ +/* +static char sccs_id[] = "@(#)drawwin.h 5.5 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +#ifndef BASETYPE +#include "basetype.h" +#endif + +extern void Drawwin_Init(); + +extern void Drawwin_Flash(); + +extern void Drawwin_Initial_Size(); + /* Userwin *uwinp */ + /* Size siz */ + +extern void Drawwin_Start(); + +extern void Drawwin_Finish(); + +extern void Drawwin_Create(); + /* uwinp */ + +extern void Drawwin_Prepare(); + /* uwinp */ + +extern void Drawwin_Insert(); + /* uwinp */ + +extern void Drawwin_Withdraw(); + /* uwinp */ + +extern void Drawwin_Destroy(); + /* uwinp */ + +extern void Drawwin_Draw_Background(); + /* rect */ + +extern bool Drawwin_Redraw_All(); + /* rect */ + +extern void Drawwin_Unmap(); + /* uwinp */ + +extern void Drawwin_Close(); + /* uwinp */ + +extern void Drawwin_Open(); + /* uwinp */ + +extern void Drawwin_Move_Open(); + /* uwinp */ + +extern void Drawwin_Move_Close(); + /* uwinp */ + +extern void Drawwin_Listener_Move_Open(); + /* uwinp */ + +extern void Drawwin_Listener_Move_Close(); + /* uwinp */ + +extern void Drawwin_Redraw(); + /* uwinp */ + +extern void Drawwin_Draw(); + /* uwinp */ + +extern void Drawwin_Display_Focus(); + /* uwinp */ + +extern void Drawwin_Display_Wrapping(); + /* uwinp */ + +extern void Drawwin_Retitle(); + /* uwinp */ + +extern void Drawwin_Show_Moving(); + /* uwinp */ + +extern void Drawwin_Unshow_Moving(); + /* uwinp */ + +extern void Drawwin_Good_Open_Box(); + /* spos, cpos */ + +extern void Drawwin_Bad_Open_Box(); + /* spos, cpos */ + +extern void Drawwin_Undo_Open_Box(); + +extern void Drawwin_Edge_Resize(); + /* uwinp, side, pos */ + +extern void Drawwin_Undo_Edge_Resize(); + +extern void Drawwin_Corner_Resize(); + /* uwinp, side, pos */ + +extern void Drawwin_Undo_Corner_Resize(); + +extern void Drawwin_Good_Move_Box(); + /* spos, cpos */ + +extern void Drawwin_Bad_Move_Box(); + /* spos, cpos */ + +extern void Drawwin_Undo_Move_Box(); diff --git a/drawwin_d.c b/drawwin_d.c new file mode 100644 index 0000000..8113229 --- /dev/null +++ b/drawwin_d.c @@ -0,0 +1,715 @@ +#ifndef lint +static char sccs_id[] = "%W% %H%"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +/* The Drawwin package manages Decorated client windows + */ + +#include +#include +#include + +#include "basetype.h" +#include "userglobD.h" +#include "uwinD.h" +#include "uwinXD.h" +#include "draw.h" + +#include +#include +#include "xio.h" + +#define HEADER_FONT "6x12" + + +GC fillGC, clearGC, xorGC, invert_body_GC; +XFontStruct *fontp; + + +static void Drawwin_Config_Corners(Userwin *uwinp, int width, int height); +static int Drawwin_Draw_Corner_Lines(Window parent, GC gc, int width, int height); +static int Drawwin_Draw_Corners(Window parent, GC gc, int width, int height); + +/*-----------------------------------------------------------------*/ + +/* Font and drawing function set-up + * ?? Could get foreground/background colors from interface/options + */ +void +Drawwin_Init() +{ + XGCValues gcv; + unsigned long vmask; + + + if ( (fontp = XLoadQueryFont(dpy, HEADER_FONT)) == NULL ) + { + fprintf(stderr, "XLoadFont failed\n"); + exit(1); + } + + + vmask = GCForeground | GCFont; + gcv.foreground = BlackPixel(dpy, scrn); + gcv.font = fontp->fid; + fillGC = XCreateGC(dpy, root, vmask, &gcv); + + gcv.foreground = WhitePixel(dpy, scrn); + clearGC = XCreateGC(dpy, root, vmask, &gcv); + + + gcv.foreground = 0xfd; + gcv.line_width = 0; + gcv.function = GXxor; + gcv.subwindow_mode = IncludeInferiors; + xorGC = XCreateGC(dpy, root, + GCForeground | GCLineWidth | + GCFunction | GCSubwindowMode, + &gcv); + + gcv.function = GXxor; + gcv.foreground = BlackPixel(dpy, scrn) ^ WhitePixel(dpy,scrn); + invert_body_GC = XCreateGC(dpy, root, + GCForeground | GCFunction | GCSubwindowMode, &gcv); +} + +/*-----------------------------------------------------------------*/ + +void +Drawwin_Config_Borders(uwinp, width, height) + Userwin *uwinp; + int width, height; /* dimensions of parent window */ +{ + + Draw_ConfigWin(Userwin_XTopBorder(uwinp), + 0, + 0, + width, + BORDER_SIZE_VAL); + + Draw_ConfigWin(Userwin_XLeftBorder(uwinp), + 0, + BORDER_SIZE_VAL, + BORDER_SIZE_VAL, + height - (2 * BORDER_SIZE_VAL)); + + + Draw_ConfigWin(Userwin_XRightBorder(uwinp), + width - BORDER_SIZE_VAL, + BORDER_SIZE_VAL, + BORDER_SIZE_VAL, + height - (2 * BORDER_SIZE_VAL)); + + + Draw_ConfigWin(Userwin_XBottomBorder(uwinp), + 0, + height - BORDER_SIZE_VAL, + width, + BORDER_SIZE_VAL); + + + if (UserGlobals_Get_Option(USE_CORNER_BORDERS) == TRUE) + { + Drawwin_Config_Corners(uwinp, width, height); + } +} + + +/* Draw the representation of the Border windows in the + * parent window + */ +void +Drawwin_Draw_Borders(uwinp, width, height) + Userwin *uwinp; + int width, height; /* dimensions of parent window */ +{ + XRectangle rects[4]; + XRectangle *pr = rects; + Window parent = Userwin_XParentWin(uwinp); + + + /* Draw 4 FILLED rects to make the borders + * (top, left, right and bottom borders) + */ + pr -> x = 0; + pr -> y = 0; + pr -> width = width; + pr++ -> height = BORDER_SIZE_VAL; + + pr -> x = 0; + pr -> y = BORDER_SIZE_VAL; + pr -> width = BORDER_SIZE_VAL; + pr++ -> height = height; + + pr -> x = width - BORDER_SIZE_VAL; + pr -> y = 0; + pr -> width = BORDER_SIZE_VAL; + pr++ -> height = height; + + pr -> x = 0; + pr -> y = height - BORDER_SIZE_VAL; + pr -> width = width; + pr++ -> height = BORDER_SIZE_VAL; + + XFillRectangles(dpy, parent, fillGC, rects, pr - rects); + + + if ((UserGlobals_Get_Option(SHOW_FOCUS_IN_BORDERS) && uwinp->focus) || + (UserGlobals_Get_Option(SHOW_LISTENER_IN_BORDERS) && uwinp->listener)) + { + if (UserGlobals_Get_Option(DISTINGUISH_CORNER_BORDERS) == TRUE && + UserGlobals_Get_Option(USE_CORNER_BORDERS) == TRUE) + { + if ( UserGlobals_Get_Option(DISTNGSH_CORNER_BORDERS_BY_INV)) + { + Drawwin_Draw_Corners(parent, clearGC, width, height); + } + else + { + Drawwin_Draw_Corner_Lines(parent, clearGC, width, height); + } + } + } + else /* show border lines by CLEARing rects, offset by linewidths... */ + { + pr = rects; + + pr -> x = OUTER_BORDER_LINEWIDTH_VAL; + pr -> y = OUTER_BORDER_LINEWIDTH_VAL; + pr -> width = width - (2 * OUTER_BORDER_LINEWIDTH_VAL); + pr++ -> height = BORDER_SIZE_VAL - + (OUTER_BORDER_LINEWIDTH_VAL + INNER_BORDER_LINEWIDTH_VAL); + + pr -> x = OUTER_BORDER_LINEWIDTH_VAL; + pr -> y = OUTER_BORDER_LINEWIDTH_VAL; + pr -> width = BORDER_SIZE_VAL - + (OUTER_BORDER_LINEWIDTH_VAL + INNER_BORDER_LINEWIDTH_VAL); + pr++ -> height = height - (2 * OUTER_BORDER_LINEWIDTH_VAL); + + pr -> x = width - BORDER_SIZE_VAL + INNER_BORDER_LINEWIDTH_VAL; + pr -> y = OUTER_BORDER_LINEWIDTH_VAL; + pr -> width = BORDER_SIZE_VAL - + (OUTER_BORDER_LINEWIDTH_VAL + INNER_BORDER_LINEWIDTH_VAL); + pr++ -> height = height - (2 * OUTER_BORDER_LINEWIDTH_VAL); + + pr -> x = OUTER_BORDER_LINEWIDTH_VAL; + pr -> y = height - BORDER_SIZE_VAL + INNER_BORDER_LINEWIDTH_VAL; + pr -> width = width - (2 * OUTER_BORDER_LINEWIDTH_VAL); + pr++ -> height = BORDER_SIZE_VAL - + (OUTER_BORDER_LINEWIDTH_VAL + INNER_BORDER_LINEWIDTH_VAL); + + XFillRectangles(dpy, parent, clearGC, rects, pr - rects); + + + if (UserGlobals_Get_Option(DISTINGUISH_CORNER_BORDERS) == TRUE && + UserGlobals_Get_Option(USE_CORNER_BORDERS) == TRUE) + { + if ( UserGlobals_Get_Option(DISTNGSH_CORNER_BORDERS_BY_INV)) + { + Drawwin_Draw_Corners(parent, fillGC, width, height); + } + else /* just draw lines to highlight the corner borders */ + { + Drawwin_Draw_Corner_Lines(parent, fillGC, width, height); + } + } + } +} + + +/* Remove (but don't destroy the resources associated with) + * all border windows + */ +void +Drawwin_Remove_Borders(uwinp) + Userwin *uwinp; +{ + XUnmapWindow(dpy, Userwin_XTopBorder(uwinp)); + XUnmapWindow(dpy, Userwin_XLeftBorder(uwinp)); + XUnmapWindow(dpy, Userwin_XRightBorder(uwinp)); + XUnmapWindow(dpy, Userwin_XBottomBorder(uwinp)); +} + +/*-----------------------------------------------------------------*/ + +/* Create the corner border windows, as part of the + * decorated-client window + */ +static void +Drawwin_Config_Corners(uwinp, width, height) + Userwin *uwinp; + int width, height; +{ + + Draw_ConfigWin(Userwin_XTopLeftCorner(uwinp), + 0, + 0, + 2 * BORDER_SIZE_VAL, + 2 * BORDER_SIZE_VAL); + + Draw_ConfigWin(Userwin_XTopRightCorner(uwinp), + width - (2 * BORDER_SIZE_VAL), + 0, + 2 * BORDER_SIZE_VAL, + 2 * BORDER_SIZE_VAL); + + Draw_ConfigWin(Userwin_XBottomLeftCorner(uwinp), + 0, + height - (2 * BORDER_SIZE_VAL), + 2 * BORDER_SIZE_VAL, + 2 * BORDER_SIZE_VAL); + + Draw_ConfigWin(Userwin_XBottomRightCorner(uwinp), + width - (2 * BORDER_SIZE_VAL), + height - (2 * BORDER_SIZE_VAL), + 2 * BORDER_SIZE_VAL, + 2 * BORDER_SIZE_VAL); +} + + +static int +Drawwin_Draw_Corners(parent, gc, width, height) + Window parent; + GC gc; + int width, height; +{ + XRectangle rects[8]; + XRectangle *pr = rects; + + + pr -> x = OUTER_BORDER_LINEWIDTH_VAL; /* top left */ + pr -> y = OUTER_BORDER_LINEWIDTH_VAL; + pr -> width = BORDER_SIZE_VAL - + (OUTER_BORDER_LINEWIDTH_VAL + INNER_BORDER_LINEWIDTH_VAL); + pr++ -> height = 2 * BORDER_SIZE_VAL - + (OUTER_BORDER_LINEWIDTH_VAL + INNER_BORDER_LINEWIDTH_VAL); + + pr -> x = OUTER_BORDER_LINEWIDTH_VAL; + pr -> y = OUTER_BORDER_LINEWIDTH_VAL; + pr -> width = 2 * BORDER_SIZE_VAL - + (OUTER_BORDER_LINEWIDTH_VAL + INNER_BORDER_LINEWIDTH_VAL); + pr++ -> height = BORDER_SIZE_VAL - + (OUTER_BORDER_LINEWIDTH_VAL + INNER_BORDER_LINEWIDTH_VAL); + + /* top right */ + pr -> x = width - BORDER_SIZE_VAL + INNER_BORDER_LINEWIDTH_VAL; + pr -> y = OUTER_BORDER_LINEWIDTH_VAL; + pr -> width = BORDER_SIZE_VAL - + (OUTER_BORDER_LINEWIDTH_VAL + INNER_BORDER_LINEWIDTH_VAL); + pr++ -> height = 2 * BORDER_SIZE_VAL - + (OUTER_BORDER_LINEWIDTH_VAL + INNER_BORDER_LINEWIDTH_VAL); + + pr -> x = width - (2 * BORDER_SIZE_VAL) + INNER_BORDER_LINEWIDTH_VAL; + pr -> y = OUTER_BORDER_LINEWIDTH_VAL; + pr -> width = 2 * BORDER_SIZE_VAL - + (OUTER_BORDER_LINEWIDTH_VAL + INNER_BORDER_LINEWIDTH_VAL); + pr++ -> height = BORDER_SIZE_VAL - + (OUTER_BORDER_LINEWIDTH_VAL + INNER_BORDER_LINEWIDTH_VAL); + + + pr -> x = OUTER_BORDER_LINEWIDTH_VAL; /* bottom left */ + pr -> y = height - (2 * BORDER_SIZE_VAL) + INNER_BORDER_LINEWIDTH_VAL; + pr -> width = BORDER_SIZE_VAL - + (OUTER_BORDER_LINEWIDTH_VAL + INNER_BORDER_LINEWIDTH_VAL); + pr++ -> height = (2 * BORDER_SIZE_VAL) - + (OUTER_BORDER_LINEWIDTH_VAL + INNER_BORDER_LINEWIDTH_VAL); + + pr -> x = OUTER_BORDER_LINEWIDTH_VAL; + pr -> y = height - BORDER_SIZE_VAL + INNER_BORDER_LINEWIDTH_VAL; + pr -> width = 2 * BORDER_SIZE_VAL - + (OUTER_BORDER_LINEWIDTH_VAL + INNER_BORDER_LINEWIDTH_VAL); + pr++ -> height = BORDER_SIZE_VAL - + (OUTER_BORDER_LINEWIDTH_VAL + INNER_BORDER_LINEWIDTH_VAL); + + /* bottom right */ + pr -> x = width - BORDER_SIZE_VAL + INNER_BORDER_LINEWIDTH_VAL; + pr -> y = height - (2 * BORDER_SIZE_VAL) + INNER_BORDER_LINEWIDTH_VAL; + pr -> width = BORDER_SIZE_VAL - + (OUTER_BORDER_LINEWIDTH_VAL + INNER_BORDER_LINEWIDTH_VAL); + pr++ -> height = (2 * BORDER_SIZE_VAL) - + (OUTER_BORDER_LINEWIDTH_VAL + INNER_BORDER_LINEWIDTH_VAL); + + pr -> x = width - (2 * BORDER_SIZE_VAL) + INNER_BORDER_LINEWIDTH_VAL; + pr -> y = height - BORDER_SIZE_VAL + INNER_BORDER_LINEWIDTH_VAL; + pr -> width = 2 * BORDER_SIZE_VAL - + (OUTER_BORDER_LINEWIDTH_VAL + INNER_BORDER_LINEWIDTH_VAL); + pr++ -> height = BORDER_SIZE_VAL - + (OUTER_BORDER_LINEWIDTH_VAL + INNER_BORDER_LINEWIDTH_VAL); + + + XFillRectangles(dpy, parent, gc, rects, pr - rects); +} + + +/* Draw distinguishing lines for Corner Borders. + */ +static int +Drawwin_Draw_Corner_Lines(parent, gc, width, height) + Window parent; + GC gc; + int width, height; +{ + XGCValues gcv; + unsigned long vmask; + XSegment segments[8]; + XSegment *psg = segments; + + + vmask = GCLineWidth; + gcv.line_width = INNER_BORDER_LINEWIDTH_VAL; + + XChangeGC(dpy, gc, vmask, &gcv); + + + /* top left corner */ + psg -> x1 = 0; + psg -> y1 = 2 * BORDER_SIZE_VAL - INNER_BORDER_LINEWIDTH_VAL; + psg -> x2 = BORDER_SIZE_VAL - 1; + psg++ -> y2 = 2 * BORDER_SIZE_VAL - INNER_BORDER_LINEWIDTH_VAL; + + psg -> x1 = 2 * BORDER_SIZE_VAL - INNER_BORDER_LINEWIDTH_VAL; + psg -> y1 = 0; + psg -> x2 = 2 * BORDER_SIZE_VAL - INNER_BORDER_LINEWIDTH_VAL; + psg++ -> y2 = BORDER_SIZE_VAL - 1; + + + psg -> x1 = width - BORDER_SIZE_VAL; /* top right corner */ + psg -> y1 = 2 * BORDER_SIZE_VAL - INNER_BORDER_LINEWIDTH_VAL; + psg -> x2 = width - 1; + psg++ -> y2 = 2 * BORDER_SIZE_VAL - INNER_BORDER_LINEWIDTH_VAL; + + psg -> x1 = width - 2 * BORDER_SIZE_VAL + INNER_BORDER_LINEWIDTH_VAL; + psg -> y1 = 0; + psg -> x2 = width - (2 * BORDER_SIZE_VAL) + INNER_BORDER_LINEWIDTH_VAL; + psg++ -> y2 = BORDER_SIZE_VAL - 1; + + + psg -> x1 = 0; /* bottom left corner */ + psg -> y1 = height - (2 * BORDER_SIZE_VAL) + INNER_BORDER_LINEWIDTH_VAL; + psg -> x2 = BORDER_SIZE_VAL - 1; + psg++ -> y2 = height - (2 * BORDER_SIZE_VAL) + INNER_BORDER_LINEWIDTH_VAL; + + psg -> x1 = (2 * BORDER_SIZE_VAL) - INNER_BORDER_LINEWIDTH_VAL; + psg -> y1 = height - BORDER_SIZE_VAL; + psg -> x2 = (2 * BORDER_SIZE_VAL) - INNER_BORDER_LINEWIDTH_VAL; + psg++ -> y2 = height - 1; + + + psg -> x1 = width - BORDER_SIZE_VAL; /* bottom right corner */ + psg -> y1 = height - (2 * BORDER_SIZE_VAL) + INNER_BORDER_LINEWIDTH_VAL; + psg -> x2 = width - 1; + psg++ -> y2 = height - (2 * BORDER_SIZE_VAL) + INNER_BORDER_LINEWIDTH_VAL; + + psg -> x1 = width - (2 * BORDER_SIZE_VAL) + INNER_BORDER_LINEWIDTH_VAL; + psg -> y1 = height - BORDER_SIZE_VAL; + psg -> x2 = width - (2 * BORDER_SIZE_VAL) + INNER_BORDER_LINEWIDTH_VAL; + psg++ -> y2 = height - 1; + + + XDrawSegments(dpy, parent, gc, segments, psg - segments); +} + + +/*-----------------------------------------------------------------*/ + +/* Create the header window, as part of the + * decorated-client window + */ +void +Drawwin_Config_Header(uwinp, width, height) + Userwin *uwinp; + int width, height; +{ + int left_x, top_y; + + + left_x = 0; + top_y = 0; + height = uwinp->header_height + INNER_BORDER_LINEWIDTH_VAL; + + + if (Userwin_Get_Window_Option( uwinp, USE_BORDERS )) + { + left_x += BORDER_SIZE_VAL;; + top_y += BORDER_SIZE_VAL; + width -= (2 * BORDER_SIZE_VAL); + } + + Draw_ConfigWin(Userwin_XHeader(uwinp), + left_x, top_y, + width, height); +} + + +/* Draw the header and its contents (string) + */ +void +Drawwin_Draw_Header(uwinp, width, height) + Userwin *uwinp; + int width, height; +{ + int left_x, top_y; + Window parent = Userwin_XParentWin(uwinp); + GC titleGC; + + + left_x = 0; + top_y = 0; + height = uwinp->header_height + INNER_BORDER_LINEWIDTH_VAL; + + if (Userwin_Get_Window_Option(uwinp, USE_BORDERS)) + { + left_x += BORDER_SIZE_VAL; + top_y += BORDER_SIZE_VAL; + width -= (2 * BORDER_SIZE_VAL); + } + + if (Userwin_Get_Window_Option( uwinp, USE_GADGETS )) + { + left_x += (GADGET_WIDTH_VAL + INNER_BORDER_LINEWIDTH_VAL); + width -= (GADGET_WIDTH_VAL + INNER_BORDER_LINEWIDTH_VAL); + + if (Userwin_Get_Window_Option(uwinp, USE_MOVE_GADGET)) + { + width -= (GADGET_WIDTH_VAL + INNER_BORDER_LINEWIDTH_VAL); + } + } + + + if ((UserGlobals_Get_Option(SHOW_FOCUS_IN_HEADER) && uwinp->focus) || + (UserGlobals_Get_Option(SHOW_LISTENER_IN_HEADER) && uwinp->listener)) + { + XFillRectangle(dpy, parent, fillGC, left_x, top_y, + (unsigned) width, (unsigned) height); + + titleGC = clearGC; + } + else + { + /* create the Inner Border line in the header... + */ + XFillRectangle(dpy, parent, clearGC, left_x, top_y, + (unsigned) width, + (unsigned) height - INNER_BORDER_LINEWIDTH_VAL); + + XFillRectangle(dpy, parent, fillGC, + left_x, + top_y + height - INNER_BORDER_LINEWIDTH_VAL, + (unsigned) width, + (unsigned) INNER_BORDER_LINEWIDTH_VAL); + + titleGC = fillGC; + } + + +#define TITLE_NCHARS 100 + + if ( (uwinp->title != (char *) NULL) && + Userwin_Get_Window_Option( uwinp, INCLUDE_TITLE_IN_HEADER ) ) + { + char s[TITLE_NCHARS]; + int nc; + + + nc = Draw_Num_Drawables(uwinp->title, + fontp, + width - fontp->max_bounds.width, + TITLE_NCHARS); + + strncpy(s, uwinp->title, nc); + s[nc] = '\0'; + + + /* Position title string at 1 char position from left of header, + * and "font-height" position from top of header. + * This positioning affects the above calcs... + */ + XDrawString(dpy, parent, titleGC, + left_x + fontp->max_bounds.width, + top_y + fontp->max_bounds.ascent, + s, nc); + } + +} + + +/* Remove the Header window from the decorated client window + */ +void +Drawwin_Remove_Header(uwinp) + Userwin *uwinp; +{ + XUnmapWindow(dpy, Userwin_XHeader(uwinp)); +} + +/*-----------------------------------------------------------------*/ + +/* Create the Gadget subwindows + */ +/*ARGSUSED*/ +void +Drawwin_Config_Gadgets(uwinp, width, height) + Userwin *uwinp; + int width, height; +{ + int left_x, top_y; + int g_width, g_height; + + + g_width = GADGET_WIDTH_VAL + INNER_BORDER_LINEWIDTH_VAL; + g_height = uwinp->header_height + INNER_BORDER_LINEWIDTH_VAL; + + if (Userwin_Get_Window_Option( uwinp, USE_BORDERS )) /* zoom gadget */ + { + left_x = top_y = BORDER_SIZE_VAL; + } + else + { + left_x = top_y = 0; + } + + Draw_ConfigWin(Userwin_XZoomGadget(uwinp), + left_x, top_y, + g_width, g_height); + + + if (Userwin_Get_Window_Option(uwinp, USE_MOVE_GADGET)) /* move gadget */ + { + left_x = (Userwin_Get_Window_Option( uwinp, USE_BORDERS )) ? + width - BORDER_SIZE_VAL - g_width + 1 : + width - g_width; + + Draw_ConfigWin(Userwin_XMoveGadget(uwinp), + left_x, top_y, + g_width, g_height); + } + else + { + XUnmapWindow(dpy, Userwin_XMoveGadget(uwinp)); + } +} + + +/* Draw the representation of the desired Gadgets + */ +/*ARGSUSED*/ +void +Drawwin_Draw_Gadgets(uwinp, width, height) + Userwin *uwinp; + int width, height; +{ + unsigned int border_width, inner_border_width; + Window parent = Userwin_XParentWin(uwinp); + + + + border_width = (Userwin_Get_Window_Option( uwinp, USE_BORDERS )) ? + BORDER_SIZE_VAL : 0; + + inner_border_width = (Userwin_Get_Window_Option( uwinp, USE_BORDERS )) ? + INNER_BORDER_LINEWIDTH_VAL : 0; + + + XFillRectangle(dpy, parent, fillGC, /* Zoom gadget */ + 0 + border_width, + 0 + border_width, + (unsigned) (GADGET_WIDTH_VAL + inner_border_width), + (unsigned) (uwinp->header_height + inner_border_width)); + + XFillRectangle(dpy, parent, clearGC, + 0 + border_width, + 0 + border_width, + (unsigned) (GADGET_WIDTH_VAL), + (unsigned) (uwinp->header_height)); + + if (uwinp->zoomed) + { + XDrawRectangle(dpy, parent, fillGC, + 0 + border_width + 2, + 0 + border_width + 2, + (unsigned) (GADGET_WIDTH_VAL - 5), + (unsigned) (uwinp->header_height - 5)); + } + else + { + XFillRectangle(dpy, parent, fillGC, + 0 + border_width + (GADGET_WIDTH_VAL / 2) - 2, + 0 + border_width + (uwinp->header_height / 2) - 2, + (unsigned) 4, + (unsigned) 4); + } + + if (Userwin_Get_Window_Option(uwinp, LISTENER_TIED_TO_ZOOM) == TRUE) + { + XDrawLine(dpy, parent, fillGC, + 0 + border_width, + 0 + border_width + (uwinp->header_height / 2), + 0 + border_width + GADGET_WIDTH_VAL - 1, + 0 + border_width + (uwinp->header_height / 2)); + } + + + if (Userwin_Get_Window_Option(uwinp, USE_MOVE_GADGET) == TRUE) + { + + /* Clear Move Gadget's area. + */ + XFillRectangle(dpy, parent, clearGC, + width - GADGET_WIDTH_VAL - border_width - inner_border_width, + 0 + border_width, + (unsigned) (GADGET_WIDTH_VAL + inner_border_width), + (unsigned) (uwinp->header_height + inner_border_width)); + + /* Draw left border of gadget. + */ + XFillRectangle(dpy, parent, fillGC, + width - GADGET_WIDTH_VAL - border_width - inner_border_width, + 0 + border_width, + inner_border_width, + (unsigned) (uwinp->header_height + inner_border_width)); + + /* Draw bottom border of gadget/header. + */ + XFillRectangle(dpy, parent, fillGC, + width - GADGET_WIDTH_VAL - border_width - inner_border_width, + 0 + border_width + uwinp->header_height, + (unsigned) GADGET_WIDTH_VAL, + inner_border_width); + } +} + + +/* Remove the Gadget windows from the decorated window + */ +void +Drawwin_Remove_Gadgets(uwinp) + Userwin *uwinp; +{ + XUnmapWindow(dpy, Userwin_XZoomGadget(uwinp)); + + XUnmapWindow(dpy, Userwin_XMoveGadget(uwinp)); +} diff --git a/events.c b/events.c new file mode 100644 index 0000000..56d0b5b --- /dev/null +++ b/events.c @@ -0,0 +1,36 @@ +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + + +void (*WAIT)(); + +void (*UP)(); +void (*DOWN)(); + +void (*MOUSE)(); +void (*KEY)(); + +void (*LEAVE)(); +void (*ENTER)(); + diff --git a/events.h b/events.h new file mode 100644 index 0000000..29eb92c --- /dev/null +++ b/events.h @@ -0,0 +1,38 @@ +/* +static char sccs_id[] = "@(#)events.h 5.5 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +extern void (*WAIT)(); + +extern void (*UP)(); +extern void (*DOWN)(); +extern void (*MOUSE)(); +extern void (*KEY)(); +extern void (*LEAVE)(); +extern void (*ENTER)(); + diff --git a/evsave.c b/evsave.c new file mode 100644 index 0000000..13d3db6 --- /dev/null +++ b/evsave.c @@ -0,0 +1,136 @@ +#ifndef lint +static char sccs_id[] = "%W% %H%"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +/* + RTL Menu Package Version 1.2 + by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1988 + + evsave.c: saves/restores the X event queue +*/ + +#include + +#include "evstackX.h" +#include "evsaveP.h" + +void SaveEvents(display, Stack, mask) + Display *display; + EventStore *Stack; + unsigned long mask; /* Save only events that match mask; */ + /* others remain on the event queue */ +{ + XEvent ev; + bool Match = TRUE; + + + *Stack = (EventStore)EmptyEventStack(); + + while (XPending(display) && Match) + { + if (XCheckMaskEvent(display, mask, &ev)) + { + PushEvent(&ev, (EventStack *)Stack); + } + else + Match = FALSE; + } + return; + +} + +void RestoreEvents(display, Stack) + Display *display; + EventStore *Stack; /* pointer to stack containing saved events */ +{ + XEvent ev; + + + while (!EventStackIsEmpty((EventStack)*Stack)) + { + ev = PopEvent((EventStack *)Stack); + XPutBackEvent(display, &ev); + } + XFlush(display); + return; + +} + +void DisposeEvents(display, mask) + Display *display; + unsigned long mask; /* dispose events that match mask */ +{ + bool Match = TRUE; + XEvent ev; + + + while (XPending(display) && Match) + { + if (XCheckMaskEvent(display, mask, &ev)) + { + } + else + Match = FALSE; + } + return; + +} + +void DiscardEventStore(Stack) + EventStore *Stack; +{ + + while (!EventStackIsEmpty((EventStack)*Stack)) + { + (void) PopEvent((EventStack *)Stack); + } +} + +void AddEventToStore(Stack, ev) + EventStore *Stack; + XEvent ev; +{ + PushEvent(&ev, (EventStack *)Stack); +} + +void RemoveEventFromStore(Stack, ev) + EventStore *Stack; + XEvent *ev; +{ + *ev = PopEvent((EventStack *)Stack); +} + +EventStore GetEventStore() +{ + return (EventStore)EmptyEventStack(); +} + +bool EventStoreIsEmpty(Stack) + EventStore *Stack; +{ + return EventStackIsEmpty((EventStack)*Stack); +} diff --git a/evsave.h b/evsave.h new file mode 100644 index 0000000..0aa05ba --- /dev/null +++ b/evsave.h @@ -0,0 +1,39 @@ +/* +#ifndef lint +static char sccs_id[] = "@(#)evsave.h 5.6 9/1/88 Siemens Corporate Research and Support, Inc."; +#endif +*/ +/* + RTL Menu Package Version 1.2 + by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1988 + + evsave.h: external definitions for evsave package +*/ + +/* + +Copyright 1988 by + Siemens Corporate Research and Support, Inc., Princeton, New Jersey + +Permission to use, copy, modify, and distribute this software +and its documentation for any purpose and without fee is +hereby granted, provided that the above copyright notice +appear in all copies and that both that copyright notice and +this permission notice appear in supporting documentation, and +that the name of Siemens not be used in advertising or +publicity pertaining to distribution of the software without +specific, written prior permission. Siemens makes no +representations about the suitability of this software for any +purpose. It is provided "as is" without express or implied +warranty. + +*/ + +extern void SaveEvents(/* Display *, EventStore *, unsigned long */); +extern void RestoreEvents(/* Display *, EventStore * */); +extern void DisposeEvents(/* Display *, unsigned long */); +extern void DiscardEventStore(/* EventStore * */); +extern void AddEventToStore(/* EventStore *, XEvent */); +extern void RemoveEventFromStore(/* EventStore *, XEvent */); +extern EventStore GetEventStore(/* */); +extern bool EventStoreIsEmpty(/* EventStore * */); diff --git a/evsaveD.h b/evsaveD.h new file mode 100644 index 0000000..da4c1fd --- /dev/null +++ b/evsaveD.h @@ -0,0 +1,13 @@ +/* +#ifndef lint +static char sccs_id[] = "@(#)evsaveD.h 5.6 9/1/88 Siemens Corporate Research and Support, Inc."; +#endif +*/ +/* + RTL Menu Package Version 1.0 + by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1987 + + evsaveD.h: macro definitions for evsave package +*/ + + diff --git a/evsaveP.h b/evsaveP.h new file mode 100644 index 0000000..371dec7 --- /dev/null +++ b/evsaveP.h @@ -0,0 +1,41 @@ +/* +#ifndef lint +static char sccs_id[] = "@(#)evsaveP.h 5.5 9/1/88 Siemens Corporate Research and Support, Inc."; +#endif +*/ + +/* + RTL Menu Package Version 1.2 + by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1988 + + evsaveP.h: data structure definitions for evsave package +*/ + +/* + +Copyright 1988 by + Siemens Corporate Research and Support, Inc., Princeton, New Jersey + +Permission to use, copy, modify, and distribute this software +and its documentation for any purpose and without fee is +hereby granted, provided that the above copyright notice +appear in all copies and that both that copyright notice and +this permission notice appear in supporting documentation, and +that the name of Siemens not be used in advertising or +publicity pertaining to distribution of the software without +specific, written prior permission. Siemens makes no +representations about the suitability of this software for any +purpose. It is provided "as is" without express or implied +warranty. + +*/ + +#include "evsaveSH.h" + + + + + + + + diff --git a/evsaveSH.h b/evsaveSH.h new file mode 100644 index 0000000..534f014 --- /dev/null +++ b/evsaveSH.h @@ -0,0 +1,41 @@ +/* +#ifndef lint +static char sccs_id[] = "@(#)evsaveSH.h 5.5 9/1/88 Siemens Corporate Research and Support, Inc."; +#endif +*/ + +/* + RTL Menu Package Version 1.2 + by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1988 + + evsaveSH.h: shared functions and types for evsave package +*/ + +/* + +Copyright 1988 by + Siemens Corporate Research and Support, Inc., Princeton, New Jersey + +Permission to use, copy, modify, and distribute this software +and its documentation for any purpose and without fee is +hereby granted, provided that the above copyright notice +appear in all copies and that both that copyright notice and +this permission notice appear in supporting documentation, and +that the name of Siemens not be used in advertising or +publicity pertaining to distribution of the software without +specific, written prior permission. Siemens makes no +representations about the suitability of this software for any +purpose. It is provided "as is" without express or implied +warranty. + +*/ + +#ifndef _XLIB_H_ +#include +#endif + +#ifndef STD_DEFS +#include "std_defs.h" +#endif + +typedef pointer EventStore; diff --git a/evsaveX.h b/evsaveX.h new file mode 100644 index 0000000..29b1165 --- /dev/null +++ b/evsaveX.h @@ -0,0 +1,33 @@ +/* +#ifndef lint +static char sccs_id[] = "@(#)evsaveX.h 5.2 9/1/88 "; +#endif +*/ +/* + RTL Menu Package Version 1.2 + by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1988 + + evsaveX.h: exported functions and types for evsave package +*/ + +/* + +Copyright 1988 by + Siemens Corporate Research and Support, Inc., Princeton, New Jersey + +Permission to use, copy, modify, and distribute this software +and its documentation for any purpose and without fee is +hereby granted, provided that the above copyright notice +appear in all copies and that both that copyright notice and +this permission notice appear in supporting documentation, and +that the name of Siemens not be used in advertising or +publicity pertaining to distribution of the software without +specific, written prior permission. Siemens makes no +representations about the suitability of this software for any +purpose. It is provided "as is" without express or implied +warranty. + +*/ + +#include "evsaveSH.h" +#include "evsave.h" diff --git a/evstack.c b/evstack.c new file mode 100644 index 0000000..c53e6c1 --- /dev/null +++ b/evstack.c @@ -0,0 +1,78 @@ +#ifndef lint +static char sccs_id[] = "%W% %H%"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +/* + RTL Menu Package Version 1.2 + by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1988 + + evstack.c: stack implementation for X events +*/ + +#include +#include +#include + +#include "evstackP.h" + +bool EventStackIsEmpty(EventStk) + EventStack EventStk; +{ + return (EventStk == NullStack); +} + + +void PushEvent(event, EventStk) + XEvent *event; + EventStack *EventStk; +{ + EventNode *new_node; + + new_node = (_EventStack)malloc(sizeof(EventNode)); + new_node->next = *(_EventStack *)EventStk; + new_node->event = *event; + *EventStk = (EventStack)new_node; +} + +EventStack EmptyEventStack() +{ + return NullStack; +} + + +XEvent PopEvent(EventStk) + EventStack *EventStk; +{ + EventNode *old_node; + XEvent pop_event; + + old_node = *(_EventStack *)EventStk; + *EventStk = (EventStack)old_node->next; + pop_event = old_node->event; + free((pointer)old_node); + return pop_event; +} diff --git a/evstack.h b/evstack.h new file mode 100644 index 0000000..1717180 --- /dev/null +++ b/evstack.h @@ -0,0 +1,36 @@ +/* +#ifndef lint +static char sccs_id[] = "@(#)evstack.h 5.6 9/1/88 Siemens Corporate Research and Support, Inc."; +#endif +*/ +/* + RTL Menu Package Version 1.2 + by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1988 + + evstack.h: external definitions for evsave package +*/ + +/* + +Copyright 1988 by + Siemens Corporate Research and Support, Inc., Princeton, New Jersey + +Permission to use, copy, modify, and distribute this software +and its documentation for any purpose and without fee is +hereby granted, provided that the above copyright notice +appear in all copies and that both that copyright notice and +this permission notice appear in supporting documentation, and +that the name of Siemens not be used in advertising or +publicity pertaining to distribution of the software without +specific, written prior permission. Siemens makes no +representations about the suitability of this software for any +purpose. It is provided "as is" without express or implied +warranty. + +*/ + +extern bool EventStackIsEmpty(/* EventStack */); +extern void PushEvent(/* (XEvent *), (EventStack *) */); +extern EventStack EmptyEventStack(/* */); +extern XEvent PopEvent(/* (EventStack *) */); + diff --git a/evstackD.h b/evstackD.h new file mode 100644 index 0000000..90d646c --- /dev/null +++ b/evstackD.h @@ -0,0 +1,37 @@ +/* +#ifndef lint +static char sccs_id[] = "@(#)evstackD.h 5.6 9/1/88 Siemens Corporate Research and Support, Inc."; +#endif +*/ + +/* + RTL Menu Package Version 1.2 + by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1988 + + evstackD.h: macro definitions for evstack package +*/ + +/* + +Copyright 1988 by + Siemens Corporate Research and Support, Inc., Princeton, New Jersey + +Permission to use, copy, modify, and distribute this software +and its documentation for any purpose and without fee is +hereby granted, provided that the above copyright notice +appear in all copies and that both that copyright notice and +this permission notice appear in supporting documentation, and +that the name of Siemens not be used in advertising or +publicity pertaining to distribution of the software without +specific, written prior permission. Siemens makes no +representations about the suitability of this software for any +purpose. It is provided "as is" without express or implied +warranty. + +*/ + +#define NullNode (EventNode *) NULL +#define NullStack (EventStack)NullNode + + + diff --git a/evstackP.h b/evstackP.h new file mode 100644 index 0000000..e1ec7c3 --- /dev/null +++ b/evstackP.h @@ -0,0 +1,47 @@ +/* +#ifndef lint +static char sccs_id[] = "@(#)evstackP.h 5.5 9/1/88 Siemens Corporate Research and Support, Inc."; +#endif +*/ + +/* + RTL Menu Package Version 1.2 + by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1988 + + evstackP.h: data structure definitions for evstack package +*/ + +/* + +Copyright 1988 by + Siemens Corporate Research and Support, Inc., Princeton, New Jersey + +Permission to use, copy, modify, and distribute this software +and its documentation for any purpose and without fee is +hereby granted, provided that the above copyright notice +appear in all copies and that both that copyright notice and +this permission notice appear in supporting documentation, and +that the name of Siemens not be used in advertising or +publicity pertaining to distribution of the software without +specific, written prior permission. Siemens makes no +representations about the suitability of this software for any +purpose. It is provided "as is" without express or implied +warranty. + +*/ + +#include "evstackSH.h" +#include "evstackD.h" + +typedef struct _eventNode EventNode; +typedef EventNode * _EventStack; + +struct _eventNode +{ + XEvent event; + EventNode *next; +}; + + + + diff --git a/evstackSH.h b/evstackSH.h new file mode 100644 index 0000000..1b0eb27 --- /dev/null +++ b/evstackSH.h @@ -0,0 +1,45 @@ +/* +#ifndef lint +static char sccs_id[] = "@(#)evstackSH.h 5.5 9/1/88 Siemens Corporate Research and Support, Inc."; +#endif +*/ + +/* + RTL Menu Package Version 1.2 + by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1988 + + evstackSH.h: shared functions and types for evsave package +*/ + +/* + +Copyright 1988 by + Siemens Corporate Research and Support, Inc., Princeton, New Jersey + +Permission to use, copy, modify, and distribute this software +and its documentation for any purpose and without fee is +hereby granted, provided that the above copyright notice +appear in all copies and that both that copyright notice and +this permission notice appear in supporting documentation, and +that the name of Siemens not be used in advertising or +publicity pertaining to distribution of the software without +specific, written prior permission. Siemens makes no +representations about the suitability of this software for any +purpose. It is provided "as is" without express or implied +warranty. + +*/ + +#ifndef _XLIB_H_ +#include +#endif + +#ifndef STD_DEFS +#include "std_defs.h" +#endif + +typedef pointer EventStack; + + + + diff --git a/evstackX.h b/evstackX.h new file mode 100644 index 0000000..e9ffa16 --- /dev/null +++ b/evstackX.h @@ -0,0 +1,35 @@ +/* +#ifndef lint +static char sccs_id[] = "@(#)evstackX.h 5.2 9/1/88 "; +#endif +*/ +/* + RTL Menu Package Version 1.2 + by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1988 + + evstackX.h: exported functions and types for evsave package +*/ + +/* + +Copyright 1988 by + Siemens Corporate Research and Support, Inc., Princeton, New Jersey + +Permission to use, copy, modify, and distribute this software +and its documentation for any purpose and without fee is +hereby granted, provided that the above copyright notice +appear in all copies and that both that copyright notice and +this permission notice appear in supporting documentation, and +that the name of Siemens not be used in advertising or +publicity pertaining to distribution of the software without +specific, written prior permission. Siemens makes no +representations about the suitability of this software for any +purpose. It is provided "as is" without express or implied +warranty. + +*/ + +#include "evstackSH.h" +#include "evstack.h" + + diff --git a/evstrings.h b/evstrings.h new file mode 100644 index 0000000..2c6d53a --- /dev/null +++ b/evstrings.h @@ -0,0 +1,69 @@ +/* +static char sccs_id[] = "@(#)evstrings.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +/* DEBUGGING code... + * these have to be in sync with event defns found in + */ + +char *evstrings[] = +{ + "error?", + "reply?", + "KeyPress", + "KeyRelease", + "ButtonPress", + "ButtonRelease", + "MotionNotify", + "EnterNotify", + "LeaveNotify", + "FocusIn", + "FocusOut", + "KeymapNotify", + "Expose", + "GraphicsExpose", + "NoExpose", + "VisibilityNotify", + "CreateNotify", + "DestroyNotify", + "UnmapNotify", + "MapNotify", + "MapRequest", + "ReparentNotify", + "ConfigureNotify", + "ConfigureRequest", + "GravityNotify", + "ResizeRequest", + "CirculateNotify", + "CirculateRequest", + "PropertyNotify", + "SelectionClear", + "SelectionRequest", + "SelectionNotify", + "ColormapNotify", + "InterpretNotify", + "LASTEvent" +}; diff --git a/exploptsP.h b/exploptsP.h new file mode 100644 index 0000000..b4aa076 --- /dev/null +++ b/exploptsP.h @@ -0,0 +1,36 @@ +/* +static char sccs_id[] = "@(#)exploptsP.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +typedef enum { + + EXPLICIT_AUTO_PRORATE, + EXPLICIT_ALLOW_AUTOMATIC_CLOSE, + + LENGTH_EXPLICIT_GLOBAL_OPTIONS +} Explicit_Global_Options; + diff --git a/explwoptsP.h b/explwoptsP.h new file mode 100644 index 0000000..52bc3a1 --- /dev/null +++ b/explwoptsP.h @@ -0,0 +1,42 @@ +/* +static char sccs_id[] = "@(#)explwoptsP.h 5.6 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + + +typedef enum { + + EXPLICIT_LISTENER_TIED_TO_ZOOM, + EXPLICIT_FIXED_COMPLETELY, + EXPLICIT_FIXED_HEIGHT, + EXPLICIT_FIXED_WIDTH, + EXPLICIT_REQUIRE_MANUAL_CLOSE, + EXPLICIT_ZOOM_TIED_TO_DESIRE, + + LENGTH_EXPLICIT_WINDOW_OPTIONS + } Explicit_Window_Options; + diff --git a/extras/rhyme.c b/extras/rhyme.c new file mode 100644 index 0000000..95014d9 --- /dev/null +++ b/extras/rhyme.c @@ -0,0 +1,51 @@ + +#include +#define NULL 0 + +/* ------------------------------------------------------------ */ + +char *Rhyme_Read( stream ) + FILE *stream; +{ + char str[128]; + char *result; + + printf( "\f" ); + while ( ( ( result = fgets( str, 128, stream ) ) != NULL ) && + ( strlen(str) > 1 ) ) + { + printf( "%s", str ); + } + return result; +} + + +/* ------------------------------------------------------------ */ + +main() +{ + char *homenv; + char *result = NULL; + FILE *stream; + char *cur; + char path[256]; + + homenv = (char *)getenv("HOME"); + strcpy( path, homenv ); + cur = path + strlen(path); + while ( *cur != '/' ) + cur--; + *(cur+1) = '\0'; + + strcat( path, "rtl/extras/rhymes" ); + + while ( 1 ) + { + if ( result == NULL ) + stream = fopen( path, "r" ); + result = Rhyme_Read( stream ); + sleep(6); + if ( result == NULL ) + fclose( stream ); + } +} diff --git a/extras/rhymes b/extras/rhymes new file mode 100644 index 0000000..c89e4d5 --- /dev/null +++ b/extras/rhymes @@ -0,0 +1,56 @@ +I got rid of on-screen mess +With tiled windows, I confess + +Do not make your users sore +Overlay less, tile more + +C'mon baby, cut the crap +I don't want to overlap + +If you want to live in style +Have your window system tile + +It does not pay +To overlay + +Overlapping is a crime +Cause it wastes your precious time + +Tiled windows across the nation +Write Siemens for more information + +To get rid of window mess +Tile more, overlay less + +I'd walk a mile +To tile + +See the gleeful users clap +When windows do not overlap + +Tile +A while + +What a triumph, what a trend +Tiled windows -- the user's friend + +I think that I have never seen +A desktop lovely as a tiled screen + +You know if I had my way +Windows would never overlay + +C'mon baby, stay a while +I'll let you watch my windows tile + +Tiled windows sure are great +Get them now, don't be late + +Watch the grateful users smile +When they see their windows tile + +Sorry if it sounds real rotten +But overlapping will be forgotten + +You know it's really pretty wild +To see all of those windows tiled diff --git a/extras/yow-press.c b/extras/yow-press.c new file mode 100644 index 0000000..4c7208d --- /dev/null +++ b/extras/yow-press.c @@ -0,0 +1,1187 @@ +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + + Yow: A Zippy Example X11 Application + ------------------------------------ + + Mark Biggers + biggers%siemens.com@princeton.edu + (609) 734-3325 + + Ellis Cohen + Ellis.Cohen@a.gp.cs.cmu.edu + (609) 734-6524 + + Siemens RTL Tiled Window Project + 105 College Rd East + Princeton NJ 08540 + + 15 Dec 1987 + +Though the X11 protocol is now stable, the interaction between +application programs and window managers is still evolving. +While there are still some disagreements about these interactions, +we think that application writers will benefit from an example +program that reflects the current state. Where there are +disagreements about usage, we will try to indicate what they +are. + +The application, "Yow", was originally built to exercise our own +window manager. It has evolved based on input from a variety of +individuals who are building real applications to better fit their +needs. + +Yow is quite a bit longer and more complex than Dave Rosenthal's very +helpful "Hello World" program for a number of reasons. First, it is +divided into a number of functions, each of which is a chunk that can +easily be reused or adapted. Also, there are a number of specific +additional features provided and issues addressed. These are discussed +in the notes that follow the code. + +Yow is divided into two parts. The first part is application +independent, and contains functions taken from a library (RTLib) we +have developed locally. Applications share a variety of global variables +with the RTLib functions. The RTLib functions generally DO need to be +called in the order they are invoked by Yow. + +The first half of the program could be copied and either included +directly in an application or placed in a separate file. +Many users will additionally want to adapt RTLib_Process_Arguments and +RTLib_Get_Resources to their own needs. + +Only the second and shorter half of the program is specific to the Yow +application. + +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +/* ************************************************************ + * Yow is a simple zippy application that provides an example of how + * to use X11 to draw in a window and interact with a window manager. + * Yow centers a string in a window, and responds to button presses + * by enlarging or shrinking the window + * ************************************************************ + */ + +/* Copyright (c) 1987 Siemens Corporate Research and Support, Inc., + * Princeton, NJ. + * + * Permission to use, copy, modify, and distribute this software and + * its documentation for any purpose and without fee is hereby + * granted, provided that the above copyright notice appear in all + * copies and that both that copyright notice and this permission + * notice appear in supporting documentation, and that the name of + * Siemens not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior + * permission. Siemens makes no representations about the + * suitability of this software for any purpose. It is provided "as + * is" without express or implied warranty. + */ +#ifndef lint +static char sccs_id[] = "@(#)yow.c 1.7 4/12/88 Copyright (c) 1987, Siemens Corporate Research and Support, Inc."; +#endif + +#include +#include +#include +#include +#include +#include +#include + +extern char *malloc(), *getenv(); +extern Window XCreateSimpleWindow(); + +#define IS_NULL(s) ((s) == (char *) 0) + +/* ------------------------------------------------------------ */ + +#define DEFAULT_BORDER_WIDTH 2 + +/* ------------------------------------------------------------ */ + +#define INCLUDE_HOST_NAME 1 /* See Note 8 */ +#define SET_ICON_FROM_WINDOW_NAME 1 /* See Note 8 */ + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + + /* X structures SHARED WITH APPLICATION */ + +Display *dpy; /* The display used */ +int screen; /* The screen on the display */ +Window parent_window; /* The window in which to open the client window */ +Window window; /* The client window */ +XFontStruct *fontp; /* The font used for drawing */ +GC gc; /* The graphics context used for drawing */ + + /* desired & min geometry SHARED WITH APPLICATION */ + +unsigned int min_width, min_height; +unsigned int desired_width, desired_height; +int desired_x, desired_y; + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + + /* static string & hint storage */ + +static unsigned char host_str[100]; +static char window_name_str[100]; +static XSizeHints size_hint; +static char *resource_class; + +/* ------------------------------------------------------------ */ + + /* possible command line args */ + +static char *display = (char *) NULL; +static char *resource_name = (char *) NULL; +static char *window_name = (char *) NULL; +static char *icon_name = (char *) NULL; +static char *foreground_color = (char *) NULL; +static char *background_color = (char *) NULL; +static char *border_color = (char *) NULL; +static char *border_width = (char *) NULL; +static char *font = (char *) NULL; +static char *parent = (char *) NULL; +static char *geometry = (char *) NULL; + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + + /* Process the command line. Optional arguents are + * -r + * -w + * -i + * -c + * -b + * -e + * -s + * -p + * -f + * -g + * -d + * + * See Note 1 + */ + +void RTLib_Process_Arguments(argc, argv) + int argc; + char *argv[]; +{ + extern char *optarg; + extern int optind, opterr; + int c; + Bool errflg = False; + + while ((c = getopt(argc, argv, "r:w:i:c:b:e:s:p:f:g:d:")) != EOF) + { + switch (c) + { + case 'r': + resource_name = optarg; + break; + + case 'w': + window_name = optarg; + break; + + case 'i': + icon_name = optarg; + break; + + case 'c': + foreground_color = optarg; + break; + + case 'b': + background_color = optarg; + break; + + case 'e': + border_color = optarg; + break; + + case 's': + border_width = optarg; + break; + + case 'p': + parent = optarg; + break; + + case 'f': + font = optarg; + break; + + case 'g': + geometry = optarg; + break; + + case 'd': + display = optarg; + break; + + case '?': + errflg = True; + break; + } + } + + if (errflg) + { + fprintf(stderr, "usage: %s", argv[0]); + fprintf(stderr, "\n -r -w -i "); + fprintf(stderr, "\n -c -b -e "); + fprintf(stderr, "\n -s -p -f "); + fprintf(stderr, "\n -g -d \n"); + exit(-1); + } +} + +/* ------------------------------------------------------------ */ + + /* Open a connection to the X server + * A argument on the command line + * (as saved in "display") indicates which screen on + * which display controlled by the server should be used. + * If there was no such argument, display will be NULL, and + * XOpenDisplay will use the contents of the DISPLAY + * environment variable to indicate the display and sceen. + */ + +void RTLib_Open_Display() +{ + if (!(dpy = XOpenDisplay(display))) + { + fprintf(stderr, "Failed to open display %s...\n", display); + exit(1); + } + + screen = DefaultScreen(dpy); +} + +/* ------------------------------------------------------------ */ + + /* Error_Handler hooked into Xlib. See Note 2 */ + +int RTLib_Error_Handler(dpy, error) + Display *dpy; + XErrorEvent *error; +{ + char buffer[BUFSIZ]; + + XGetErrorText(dpy, error->error_code, buffer, (int) BUFSIZ); + + fprintf(stderr, "X Error <%s>\n", buffer); + fprintf(stderr, " Request Major code: %d\n", error->request_code); + fprintf(stderr, " Request Minor code: %d\n", error->minor_code); + fprintf(stderr, " ResourceId 0x%x\n", error->resourceid); + fprintf(stderr, " Error Serial #%d\n", error->serial); + fprintf(stderr, " Current Serial #%d\n", dpy->request); + + return 0; +} + +/* ------------------------------------------------------------ */ + + /* Determines whether the window "w" exists on "dpy" */ + +Bool RTLib_Window_Exists( w ) + Window w; +{ + XWindowAttributes xwa; + + return XGetWindowAttributes(dpy, w, &xwa); +} + +/* ------------------------------------------------------------ */ + + /* A window's resource_class is the name of the application + * + * A window's resource_name is used to distinguish two instances + * of the same application. It is taken from the first of the + * following that applies: + * a -r command line argument + * The RESOURCE_NAME environment variable + * argv[0] + * + * See Note 3 + */ + +void RTLib_Set_Resource_Name_And_Class(class,argv) + char *class; + char *argv[]; +{ + extern char *rindex(); + char *nam; + + resource_class = class; + + if (IS_NULL(resource_name)) + { + resource_name = getenv("RESOURCE_NAME"); + + if (IS_NULL(resource_name) ) + { + if ( (nam = rindex(argv[0], '/')) != (char *) NULL ) + { + resource_name = nam + 1; + } + else + { + resource_name = argv[0]; + } + } + } +} + +/* ------------------------------------------------------------ */ + + /* Use resource_name to get resources from .Xdefaults file + * Get any resource not already set by a command-line + * argument. + * + * See Note 4 + */ + +void RTLib_Get_Resources() +{ + if (IS_NULL(window_name)) + window_name = XGetDefault(dpy, resource_name, "Name"); + + if (IS_NULL(icon_name)) + icon_name = XGetDefault(dpy, resource_name, "IconName"); + + if (IS_NULL(foreground_color)) + foreground_color = XGetDefault(dpy, resource_name, "Foreground"); + + if (IS_NULL(background_color)) + background_color = XGetDefault(dpy, resource_name, "Background"); + + if (IS_NULL(border_color)) + border_color = XGetDefault(dpy, resource_name, "Border"); + + if (IS_NULL(border_width)) + border_width = XGetDefault(dpy, resource_name, "BorderWidth"); + + if (IS_NULL(font)) + font = XGetDefault(dpy, resource_name, "BodyFont"); + + if (IS_NULL(geometry)) + geometry = XGetDefault(dpy, resource_name, "Geometry"); +} + +/* ------------------------------------------------------------ */ + + /* Load the font */ + +void RTLib_Load_Font( default_font ) + char *default_font; +{ + if ( IS_NULL(font) ) + font = default_font; + + if ( (fontp = XLoadQueryFont(dpy, font)) == (XFontStruct *) NULL ) + { + fprintf(stderr, "Cannot load font %s, exiting!\n", font); + exit(-2); + } +} + +/* ------------------------------------------------------------ */ + + /* Determine the parent window specified either via the + * "-p" command line argument, or via the PARENT_DESKTOP + * environment variable. + * If neither, or if the parent specified is not a window, + * the parent is the root window + * + * See Note 5 + */ + +void RTLib_Parent_Window() +{ + if (IS_NULL(parent)) + { + parent = getenv("PARENT_DESKTOP"); + } + + if (IS_NULL(parent)) + { + parent_window = RootWindow(dpy, screen); + } + else + { + parent_window = atoi(parent); + if ( ! RTLib_Window_Exists( parent_window ) ) + parent_window = RootWindow(dpy, screen); + } +} + +/* ------------------------------------------------------------ */ + + /* Returns the parent window's width and height */ + +void RTLib_Parent_Size( pwidth, pheight ) + int *pwidth; + int *pheight; +{ + XWindowAttributes xwa; + + XGetWindowAttributes( dpy, parent_window, &xwa ); + + *pwidth = xwa.width; + *pheight = xwa.height; +} + +/* ------------------------------------------------------------ */ + + /* Called after the application has set the minimum size + * and default initial size and position of the window + * + * If a geometry argument has been provided, then it determines + * the user-specified initial size and/or position + * If no geometry argument has been provided, then + * leave the defaults set by the application alone. + * + * Set the size_hint structure appropriately + * + * See Note 6 + */ + +void RTLib_Set_Initial_Geometry() +{ + int result; + + size_hint.flags = PMinSize; /* minimum size set */ + size_hint.min_width = min_width; + size_hint.min_height = min_height; + + if (IS_NULL(geometry)) + { + size_hint.flags |= PSize; /* size set by program */ + } + else + { + result = XParseGeometry(geometry, + &desired_x, &desired_y, + &desired_width, &desired_height); + + if (desired_width < min_width) + desired_width = min_width; + + if (desired_height < min_height) + desired_height = min_height; + + + if ( (result & (WidthValue | HeightValue)) != 0 ) + size_hint.flags |= USSize; /* size set by user */ + else + size_hint.flags |= PSize; /* size set by program */ + + + if ( (result & (XValue | YValue)) != 0 ) + size_hint.flags |= USPosition; /* position set by user */ + + if ( (result & ( XNegative | YNegative )) != 0 ) + { + /* Set position relative to right or bottom edge + * of parent window if x or y was negative + */ + + int parent_width, parent_height; + RTLib_Parent_Size( &parent_width, &parent_height ); + if ( (result & XNegative ) != 0 ) + desired_x += parent_width - desired_width + 1; + if ( (result & YNegative ) != 0 ) + desired_y += parent_height - desired_height + 1; + } + } + + size_hint.width = desired_width; + size_hint.height = desired_height; + + size_hint.x = desired_x; + size_hint.y = desired_y; +} + +/* ------------------------------------------------------------ */ + + /* Returns pixel corresponding to "color", + * or if that fails, "default_color" + */ + +unsigned long RTLib_Get_Color( color, default_color ) + char *color; + unsigned long default_color; +{ + XColor xcolor; + + if (! IS_NULL(color) && + XParseColor(dpy, DefaultColormap(dpy, screen), + color, &xcolor) && + XAllocColor(dpy, DefaultColormap(dpy, screen), &xcolor)) + { + return xcolor.pixel; + } + else + return default_color; +} + +/* ------------------------------------------------------------ */ + + /* Create the window that the application will use + * as a subwindow of that parent window. + */ + +void RTLib_Create_Window() +{ + unsigned long border, background; + unsigned int border_width_val; + + border = RTLib_Get_Color( border_color, + BlackPixel(dpy, screen) ); + background = RTLib_Get_Color( background_color, + WhitePixel(dpy, screen) ); + + if ( IS_NULL(border_width) ) + border_width_val = DEFAULT_BORDER_WIDTH; + else + border_width_val = atoi(border_width); + + window = XCreateSimpleWindow(dpy, parent_window, + desired_x, desired_y, + desired_width, desired_height, + border_width_val, + border, + background); +} + +/* ------------------------------------------------------------ */ + + /* Determine the host on which the application is running + * and use it to set the WM_CLIENT_MACHINE property. + * + * See Note 7 + */ + +void RTLib_Set_Host() +{ + gethostname(host_str, 100); + host_str[99] = '\0'; + + XChangeProperty(dpy, window, XA_WM_CLIENT_MACHINE, XA_STRING, 8, + PropModeReplace, host_str, strlen(host_str)); +} + +/* ------------------------------------------------------------ */ + + /* Set WM_CLASS_HINTS from the resource_name and resource_class + * + * See Note 3 + */ + +void RTLib_Set_Class_Hints() +{ + XClassHint class_hint; + + class_hint.res_name = resource_name; + class_hint.res_class = resource_class; + + XSetClassHint(dpy, window, &class_hint); +} + +/* ------------------------------------------------------------ */ + + /* If WM_NAME was not set via the "-w" command line argument + * or obtained as a resource, set it automatically as + * resource_name @ host (resource_class) + * Eliminate the (resource_class) if the same as the resource_name + * Eliminate the host if INCLUDE_HOST_NAME is false + * + * See Note 8 + */ + +void RTLib_Set_Name() +{ + if (SET_ICON_FROM_WINDOW_NAME && IS_NULL(icon_name)) + icon_name = window_name; + + if (IS_NULL(window_name)) + { + window_name = window_name_str; + + if ( INCLUDE_HOST_NAME ) + { + if ( strcmp(resource_class, resource_name) == 0 ) + sprintf(window_name, "%s @ %s", + resource_name, + host_str); + else + sprintf(window_name, "%s @ %s (%s)", + resource_name, + host_str, + resource_class); + } + else + { + if ( strcmp(resource_class, resource_name) == 0 ) + strcpy( window_name, resource_name ); + else + sprintf(window_name, "%s (%s)", + resource_name, + resource_class); + } + } + + XStoreName(dpy, window, window_name); +} + +/* ------------------------------------------------------------ */ + + /* Extend WM_NAME to append "str" to the basic WM_NAME set above + * + * See Note 10 + */ + +void RTLib_Extend_Name( str ) + char *str; +{ + char extend_name[100]; + + strcpy( extend_name, window_name ); + strcat( extend_name, str ); + XStoreName(dpy, window, extend_name); +} + +/* ------------------------------------------------------------ */ + + /* If WM_ICON_NAME was not set via the "-i" command line argument + * or obtained as a resource, or set from the window name + * set it automatically as + * resource_name @ host + * Eliminate the host if INCLUDE_HOST_NAME is false + * + * See Note 8 + */ + +void RTLib_Set_Icon_Name() +{ + char icon_name_str[100]; + + if (IS_NULL(icon_name)) + { + icon_name = icon_name_str; + + if ( INCLUDE_HOST_NAME ) + sprintf(icon_name, "%s @ %s", + resource_name, + host_str); + else + strcpy( icon_name, resource_name ); + } + + XSetIconName(dpy, window, icon_name); +} + +/* ------------------------------------------------------------ */ + + /* Set WM_HINTS to indicate that the client does not take + * responsibility for the input focus (but leaves it to the wm), + * and that when the window is initially mapped, it should be opened + * (rather than iconized). + * This application does not bother to provide its own icon, + * but leaves it to the wm to provide a default one. + */ + +void RTLib_Set_WM_Hints() +{ + XWMHints wmhints; + + wmhints.flags = InputHint | StateHint; + + wmhints.input = True; + wmhints.initial_state = NormalState; + + XSetWMHints(dpy, window, &wmhints); +} + +/* ------------------------------------------------------------ */ + + /* Set the various window properties + * + * See Note 9 + */ + +void RTLib_Set_Properties( argv, argc ) + char *argv[]; + int argc; +{ + RTLib_Set_Class_Hints(); + RTLib_Set_Host(); + XSetCommand(dpy, window, argv, argc); + RTLib_Set_Name(); + RTLib_Set_Icon_Name(); + XSetNormalHints(dpy, window, &size_hint); + RTLib_Set_WM_Hints(); +} + +/* ------------------------------------------------------------ */ + + /* Set the graphics context used for drawing in the window */ + +void RTLib_Set_GC() +{ + unsigned long gcMask; + XGCValues gcv; + + gcMask = GCForeground | GCFunction | GCFont; + gcv.font = fontp->fid; + gcv.function = GXcopy; + gcv.foreground = RTLib_Get_Color( foreground_color, + BlackPixel(dpy, screen) ); + + gc = XCreateGC(dpy, RootWindow(dpy, screen), + gcMask, &gcv); +} + +/* ------------------------------------------------------------ */ + + /* Called after the client has changed the desired window size + * based on the user's action + * Check that the desired size is not less than the minimum. + * First, request that the window is explicitly resized. + * Then, update the size_hint and WM_NORMAL_HINTS to reflect + * the change + * + * See Note 11 + */ + +void RTLib_User_Resize() +{ + if ( desired_width < min_width ) + desired_width = min_width; + + if ( desired_height < min_height ) + desired_height = min_height; + + XResizeWindow(dpy, window, desired_width, desired_height); + + size_hint.flags &= ~PSize; /*in case PSize was initially specified */ + size_hint.flags |= USSize; + + size_hint.width = desired_width; + size_hint.height = desired_height; + + XSetNormalHints(dpy, window, &size_hint); +} + +/* ------------------------------------------------------------ */ + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + * $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + * + * Everything above here is application independent + * + * The code below is Yow-specifc + * + * $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + * $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +/* ------------------------------------------------------------ */ + +#define CLASS "yow" /* class of this program */ + +#define STR "Smile if You Tile!" /* string to display */ + +#define DEFAULT_FONT "vg-25" + +#define SHOW_SIZE 1 /* See Note 10 */ +#define DESIRE_BASED 0 /* See Note 12 */ + +/* ------------------------------------------------------------ */ + +unsigned int cur_width, cur_height; /* current window size */ + +/* ------------------------------------------------------------ */ + + /* Update WM_NAME to display current height and width + * if SHOW_SIZE is set. See Note 10. + */ + +void Yow_Extend_Current_Size() +{ + char sizstr[20]; + + if ( SHOW_SIZE ) + { + sprintf( sizstr, " < %d, %d >", cur_width, cur_height ); + RTLib_Extend_Name( sizstr ); + } +} + +/* ------------------------------------------------------------ */ + + /* Set the current window width and height + * based on information from the ConfigureNotify event + * Update WM_NAME to display current height and width + */ + +void Yow_Set_Current_Size(xconfigure) + XConfigureEvent xconfigure; +{ + cur_width = xconfigure.width; + cur_height = xconfigure.height; + Yow_Extend_Current_Size(); +} + +/* ------------------------------------------------------------ */ + + /* Set the minimum window size so that "str" can be completely + * shown in the font. + * default initial size to 1.3 * the minimum size, + * and the default initial position is (0,0) + * Initialize cur_width and cur_height from the desired counterparts + * after they have been adjusted by RTLib + * + * See Note 6 + */ + +void Yow_Set_Initial_Geometry( str ) + char *str; +{ + min_width = 4 + XTextWidth(fontp, str, strlen(str)); + min_height = 4 + fontp->max_bounds.ascent + fontp->max_bounds.descent; + + desired_width = 1.3 * min_width; + desired_height = 1.3 * min_height; + desired_x = 0; + desired_y = 0; + + RTLib_Set_Initial_Geometry(); + + cur_width = desired_width; + cur_height = desired_height; +} + +/* ------------------------------------------------------------ */ + + /* Shift Button 1 increases the desired window size by 10% + * Shift Button 2 decreases the desired window size by 10% + * Shift Button 3 means unmap the window + * Ctrl Shift any button means exit + * + * If DESIRE_BASED + * then increase or decrease based on the desired size + * else base it on the current window size + * + * See Note 12 + */ + +void Yow_Button_Press(xbutton) + XButtonEvent xbutton; +{ + if ( !(xbutton.state & ShiftMask) ) + return; + +/* if (xbutton.state & ControlMask) + exit(0);*/ + + if (xbutton.button == Button3) /* unmap */ + { + XUnmapWindow( dpy, window ); + return; + } + + if (! DESIRE_BASED) + { + desired_height = cur_height; + desired_width = cur_width; + } + + if (xbutton.button == Button1) /* increase size */ + { + desired_height = desired_height * 1.1; + desired_width = desired_width * 1.1; + } + else if (xbutton.button == Button2) /* decrease size */ + { + desired_height = desired_height / 1.1; + desired_width = desired_width / 1.1; + } + + RTLib_User_Resize(); +} + +/* ------------------------------------------------------------ */ + + /* Draw a string "str", centered in the window */ + +void Yow_Center_String(str) + char *str; +{ + int xc, yc; + + xc = (cur_width - XTextWidth(fontp, str, strlen(str))) / 2; + yc = (cur_height + + fontp->max_bounds.ascent - fontp->max_bounds.descent) / 2; + + XClearWindow(dpy, window); + XDrawString(dpy, window, gc, xc, yc, str, strlen(str)); +} + +/* ------------------------------------------------------------ */ + +main(argc, argv) + int argc; + char *argv[]; +{ + XEvent ev; + + RTLib_Process_Arguments(argc, argv); + + RTLib_Open_Display(); + XSetErrorHandler(RTLib_Error_Handler); + + RTLib_Set_Resource_Name_And_Class(CLASS,argv); + RTLib_Get_Resources(); + RTLib_Parent_Window(); + RTLib_Load_Font( DEFAULT_FONT ); + Yow_Set_Initial_Geometry( STR ); + + RTLib_Create_Window(); + RTLib_Set_Properties(argv, argc); + Yow_Extend_Current_Size(); + RTLib_Set_GC(); + + XSelectInput(dpy, window, + ExposureMask | ButtonPressMask | StructureNotifyMask | KeyPressMask ); + + XMapWindow(dpy, window); + + for (;;) + { + XNextEvent(dpy, &ev); + printf("%d\n",ev.type); + + switch(ev.type & 0x7f) /* See Note 13 */ + { + case Expose: + if (ev.xexpose.count == 0) + Yow_Center_String(STR); + break; + + case ButtonPress: + Yow_Button_Press(ev.xbutton); + break; + + case ConfigureNotify: + Yow_Set_Current_Size(ev.xconfigure); + + default: + break; + } + } +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + +1) RTLib_Process_Arguments processes command line arguments. These can +be used for specifying the display, the initial geometry, and various +resources. We use one character arguments. They are not standard, but +then again, there really is no standard here anyway. + +Eventually, command line parsing should be handled by the Xrm faciilties +(in particular XrmParseCommand), however, they are currently in the +process of being changed. + +Many users will wish to replace or adapt this function to handle +application-specific arguments. In any case, processing of +arguments should be done early in the program. + +------------------------------ + +2) RTLib_Error_Handler provides an error handler. Errors resulting from X +server requests are printed out in a standard format. + +------------------------------ + +3) RTLib_Set_Resource_Name_And_Class and RTLib_Set_Class_Hints set +WM_CLASS. WM_CLASS was added to Standard Properties somewhat late and is +not set by XSetStandardProperties. It consists of two fields: res_class, +and res_name. These are used both by the application and by the window +manager to obtain resources for the client. + +res_class should be set to the name of the application -- in this case, +"yow". + +res_name is used to more specifically identify an instance of the +application, to distinguish it from other running instances. The +distinction can be based either on the invocation or on the environment. + +By default, res_name should be set to the name by which the application +was invoked -- argv[0] in Unix systems. This should be overridden if the +RESOURCE_NAME environment variable is set (in Unix anyway). Finally, +this should be overridden if a specific command line argument (we use +"-r") is provided. + +The reader should be warned that there is no general consensus regarding +the setting of res_name. However, this model has evolved through +our interactions with a number of application writers, and seems to +satisfy everyone's needs. + +------------------------------ + +4) RTLib_Get_Resources shows how to get a variety of resources based on +WM_CLASS using the XGetDefault facilities. We would prefer using the Xrm +facilities, however, they are in the process of being changed. +XGetDefault requires that resources be obtained solely using res_name. +When the Xrm facilities become stable, resources should be able to be +obtained based both on res_name and res_class. + +Many users will wish to replace or adapt this function to handle +application-specific resources. In any case, obtaining resources +should be done early in the program -- as soon as the resource name is +set. + +------------------------------ + +5) RTLib_Parent_Window sets the parent window which may be specified, +either via a PARENT_DESKTOP environment variable, or via a -p command +line argument. If neither, the parent window is the root. The +application's window will be opened within the parent window. + +The use of a parent window is not standard. We are strongly urging that +clients use this model however. There WILL be window managers that wish +to operate within a window rather than taking over the entire screen. +Applications that do not check for a parent window will not be able to +work in such an environment. + +------------------------------ + +6) The yow-specific Yow_Set_Initial_Geometry sets the minimum window +size so that a specified string can always be shown. The default +initial desired window size is set 1.3 times larger than this, and the +default position for the window is the upper left hand corner. + +The application-independent RTLib_Set_Initial_Geometry is then called to +override the default if a geometry argument or resource has been +provided. +The desired size is used both in initially creating the window, and in +setting the size_hint structure, used to initialize WM_NORMAL_HINTS when +the window is later actually created. + +------------------------------ + +7) RTLib_Set_Host sets WM_CLIENT_MACHINE to be the host machine on which +the client is running. Window managers need to use this for a variety of +reasons. Some may optionally show arrange to show it in the window +header (See Note 8). Others may use it to distinguish between two +instances of an application that are running on different clients (where +res_name is not used to distinguish them) for the purposes of saving and +restoring layouts. + + ------------------------------ + +8) RTLib_Set_Name and RTLib_Set_Icon_Name automatically set WM_NAME and +WM_ICON_NAME if they are not provided either as arguments or from a +defaults file. We have found that many users like to see the name of the +host on which the application is runnning in the window and icon. Thus, +by default, we set WM_NAME to be + + res_name @ host (res_class) [if res_name != res_class] + res_name @ host [if res_name == res_class] + +and WM_ICON_NAME to be + + res_name @ host + +There is some disagreement about whether the host should be included +by the client or by the window manager. We believe that it would be +best for the window manager to determine which properties (e.g. WM_NAME, +WM_CLIENT_MACHINE, etc.) are displayed in windows and icons based on +defaults, and our window manager does this. +However, there are a number of window managers, such as wm, that do not +allow this possibility, and only show WM_NAME or WM_ICON_NAME. +For the time being, we feel we must recommend that clients include the +hosts in the names. However, the inclusion of the host name is +controlled by the constant INCLUDE_HOST_NAME. + +Also, if the window name has been provided as an argument or from a +defaults file, but the icon name has not been, there is no clear +model of how to set the icon name. If the constant +SET_ICON_FROM_WINDOW_NAME is 1, we set it to the provided window name. +If it is 0, we still set it to "res_name @ host" (or just "res_name"). + +------------------------------ + +9) RTLib sets the WM_CLASS property first. This is important because +many window managers use res_name and res_class to set default options +and values for the window. Properties that are set later may then +override these defaults, though a well-written window manager should be +able to handle properties set in any order. + +Note that RTLib does not set WM_ZOOM_HINTS. There is some controversy +over Zoom Hints, and it is likely that they will either be eliminated or +replaced in the near future. + +------------------------------ + +10) Clients generally may wish other information to appear in the window +title. RTLib_Extend_Name can be used to append a changing +application-specified string to WM_NAME. Yow_Extend_Current_Size +optionally (based on the constant SHOW_SIZE) uses this function to append +the window's current size to WM_NAME and update it when the size changes. + +------------------------------ + +11) RTLib_User_Resize is used when the client wants to resize its window. +REsizing is accomplished by both calling XResizeWindow and resetting +WM_NORMAL_HINTS. This is a simplification of a more complex protocol +that has been proposed by DEC. That protocol would be used when an +application needs to redraw itself even if its new size request cannot be +met at all. + +------------------------------ + +12) Yow_Button_Press highlights an important issue that users should be +aware of -- the difference between a window's desired size, and its +current size. When a client requests that a window's size be changed +(as in RTLib_User_Resize) to a new desired size, the window manager may +intercept the request and, because of layout constraints, grow the window +to some smaller size, or not even change it at all. Thus the window's +current size may be different than its desired size. + +If the user presses button1 (with shift depressed), the window size will +grow by 10%. If button2 is pressed instead, the window size is shrunk by +10%. By default, the basis for shrinking is the current size. By +setting the constant DESIRED_BASED to 1, the basis for shrinking is the +current desired size. On window managers that do not constrain layout, +there should be no difference, since the current and desired size are the +same. On the Siemens RTL Tiled Window Manager, which will be available +shortly, the difference is quite dramatic. + +Pressing button3 (with shift depressed) unmaps the window. This is a +good test of window manager capabilities. A window manager should open +a default icon when the window is unmapped. + +------------------------------ + +13) In main, after obtaining the next event ev, the high order bit +in ev.type is masked out. This bit is turned on by the X protocol +when the event was caused by a client XSendEvent rather than by +the server directly. If the bit is not turned off, the case statement +based on ev.type will not work correctly. + +XSendEvent is used in a number of ways. Clients that wish to execute +scripts to play back canned demos can cause events this way. + +In addition, window managers may use XSendEvent. For example, when a +window manager reparents a window and then moves it, the client does not +receive a ConfigureNotify event. A pending proposal suggests that all +window managers send a synthetic ConfigureNotify (using XSendEvent) in +this case. + +The Siemens RTL Tiled Window Manager uses XSendEvent in a different way +-- it (optionally) uses XSendEvent to send key and button presses typed +while the cursor is in the window header on to the client (acting as if +the cursor were in the client's window). + +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ diff --git a/extras/yow-transient.c b/extras/yow-transient.c new file mode 100644 index 0000000..25cb85b --- /dev/null +++ b/extras/yow-transient.c @@ -0,0 +1,1327 @@ +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + + Yow: A Zippy Example X11 Application + ------------------------------------ + + Mark Biggers + biggers%siemens.com@princeton.edu + (609) 734-3325 + + Ellis Cohen + Ellis.Cohen@a.gp.cs.cmu.edu + (609) 734-6524 + + Siemens RTL Tiled Window Project + 105 College Rd East + Princeton NJ 08540 + + 15 Dec 1987 + +Though the X11 protocol is now stable, the interaction between +application programs and window managers is still evolving. +While there are still some disagreements about these interactions, +we think that application writers will benefit from an example +program that reflects the current state. Where there are +disagreements about usage, we will try to indicate what they +are. + +The application, "Yow", was originally built to exercise our own +window manager. It has evolved based on input from a variety of +individuals who are building real applications to better fit their +needs. + +Yow is quite a bit longer and more complex than Dave Rosenthal's very +helpful "Hello World" program for a number of reasons. First, it is +divided into a number of functions, each of which is a chunk that can +easily be reused or adapted. Also, there are a number of specific +additional features provided and issues addressed. These are discussed +in the notes that follow the code. + +Yow is divided into two parts. The first part is application +independent, and contains functions taken from a library (RTLib) we +have developed locally. Applications share a variety of global variables +with the RTLib functions. The RTLib functions generally DO need to be +called in the order they are invoked by Yow. + +The first half of the program could be copied and either included +directly in an application or placed in a separate file. +Many users will additionally want to adapt RTLib_Process_Arguments and +RTLib_Get_Resources to their own needs. + +Only the second and shorter half of the program is specific to the Yow +application. + +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +/* ************************************************************ + * Yow is a simple zippy application that provides an example of how + * to use X11 to draw in a window and interact with a window manager. + * Yow centers a string in a window, and responds to button presses + * by enlarging or shrinking the window + * ************************************************************ + */ + +/* Copyright (c) 1987 Siemens Corporate Research and Support, Inc., + * Princeton, NJ. + * + * Permission to use, copy, modify, and distribute this software and + * its documentation for any purpose and without fee is hereby + * granted, provided that the above copyright notice appear in all + * copies and that both that copyright notice and this permission + * notice appear in supporting documentation, and that the name of + * Siemens not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior + * permission. Siemens makes no representations about the + * suitability of this software for any purpose. It is provided "as + * is" without express or implied warranty. + */ +#ifndef lint +static char sccs_id[] = "@(#)yow.c 1.6 12/18/87 Copyright (c) 1987, Siemens Corporate Research and Support, Inc."; +#endif + +#include +#include +#include +#include +#include +#include +#include + +extern char *malloc(), *getenv(); +extern Window XCreateSimpleWindow(); + +#define IS_NULL(s) ((s) == (char *) 0) + +/* ------------------------------------------------------------ */ + +#define DEFAULT_BORDER_WIDTH 2 + +/* ------------------------------------------------------------ */ + +#define INCLUDE_HOST_NAME 1 /* See Note 8 */ +#define SET_ICON_FROM_WINDOW_NAME 1 /* See Note 8 */ + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + + /* X structures SHARED WITH APPLICATION */ + +Display *dpy; /* The display used */ +int screen; /* The screen on the display */ +Window parent_window; /* The window in which to open the client window */ +Window window; /* The client window */ +Window client_icon; /* The client icon window */ +Window transient_window; /* The transient window */ +XFontStruct *fontp; /* The font used for drawing */ +GC gc; /* The graphics context used for drawing */ + + /* desired & min geometry SHARED WITH APPLICATION */ + +unsigned int min_width, min_height; +unsigned int desired_width, desired_height; +int desired_x, desired_y; + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + + /* static string & hint storage */ + +static unsigned char host_str[100]; +static char window_name_str[100]; +static XSizeHints size_hint; +static char *resource_class; + +/* ------------------------------------------------------------ */ + + /* possible command line args */ + +static char *display = (char *) NULL; +static char *resource_name = (char *) NULL; +static char *window_name = (char *) NULL; +static char *icon_name = (char *) NULL; +static char *foreground_color = (char *) NULL; +static char *background_color = (char *) NULL; +static char *border_color = (char *) NULL; +static char *border_width = (char *) NULL; +static char *font = (char *) NULL; +static char *parent = (char *) NULL; +static char *geometry = (char *) NULL; +static int use_client_icon = 0; +static int use_transient = 0; +static int transient_mapped = 0; +static int transient_size = 150; + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + + /* Process the command line. Optional arguents are + * -r + * -w + * -i + * -c + * -b + * -e + * -s + * -p + * -f + * -g + * -d + * -u use client icon + * + * See Note 1 + */ + +void RTLib_Process_Arguments(argc, argv) + int argc; + char *argv[]; +{ + extern char *optarg; + extern int optind, opterr; + int c; + Bool errflg = False; + + while ((c = getopt(argc, argv, "r:w:i:c:b:e:s:p:f:g:d:ut")) != EOF) + { + switch (c) + { + case 'r': + resource_name = optarg; + break; + + case 'w': + window_name = optarg; + break; + + case 'i': + icon_name = optarg; + break; + + case 'c': + foreground_color = optarg; + break; + + case 'b': + background_color = optarg; + break; + + case 'e': + border_color = optarg; + break; + + case 's': + border_width = optarg; + break; + + case 'p': + parent = optarg; + break; + + case 'f': + font = optarg; + break; + + case 'g': + geometry = optarg; + break; + + case 'd': + display = optarg; + break; + + case 'u': + use_client_icon++; + break; + + case 't': + use_transient++; + break; + + case '?': + errflg = True; + break; + } + } + + if (errflg) + { + fprintf(stderr, "usage: %s", argv[0]); + fprintf(stderr, "\n -r -w -i "); + fprintf(stderr, "\n -c -b -e "); + fprintf(stderr, "\n -s -p -f "); + fprintf(stderr, "\n -g -d -u\n"); + exit(-1); + } +} + +/* ------------------------------------------------------------ */ + + /* Open a connection to the X server + * A argument on the command line + * (as saved in "display") indicates which screen on + * which display controlled by the server should be used. + * If there was no such argument, display will be NULL, and + * XOpenDisplay will use the contents of the DISPLAY + * environment variable to indicate the display and sceen. + */ + +void RTLib_Open_Display() +{ + if (!(dpy = XOpenDisplay(display))) + { + fprintf(stderr, "Failed to open display %s...\n", display); + exit(1); + } + + screen = DefaultScreen(dpy); +} + +/* ------------------------------------------------------------ */ + + /* Error_Handler hooked into Xlib. See Note 2 */ + +int RTLib_Error_Handler(dpy, error) + Display *dpy; + XErrorEvent *error; +{ + char buffer[BUFSIZ]; + + XGetErrorText(dpy, error->error_code, buffer, (int) BUFSIZ); + + fprintf(stderr, "X Error <%s>\n", buffer); + fprintf(stderr, " Request Major code: %d\n", error->request_code); + fprintf(stderr, " Request Minor code: %d\n", error->minor_code); + fprintf(stderr, " ResourceId 0x%x\n", error->resourceid); + fprintf(stderr, " Error Serial #%d\n", error->serial); + fprintf(stderr, " Current Serial #%d\n", dpy->request); + + return 0; +} + +/* ------------------------------------------------------------ */ + + /* Determines whether the window "w" exists on "dpy" */ + +Bool RTLib_Window_Exists( w ) + Window w; +{ + XWindowAttributes xwa; + + return XGetWindowAttributes(dpy, w, &xwa); +} + +/* ------------------------------------------------------------ */ + + /* A window's resource_class is the name of the application + * + * A window's resource_name is used to distinguish two instances + * of the same application. It is taken from the first of the + * following that applies: + * a -r command line argument + * The RESOURCE_NAME environment variable + * argv[0] + * + * See Note 3 + */ + +void RTLib_Set_Resource_Name_And_Class(class,argv) + char *class; + char *argv[]; +{ + extern char *rindex(); + char *nam; + + resource_class = class; + + if (IS_NULL(resource_name)) + { + resource_name = getenv("RESOURCE_NAME"); + + if (IS_NULL(resource_name) ) + { + if ( (nam = rindex(argv[0], '/')) != (char *) NULL ) + { + resource_name = nam + 1; + } + else + { + resource_name = argv[0]; + } + } + } +} + +/* ------------------------------------------------------------ */ + + /* Use resource_name to get resources from .Xdefaults file + * Get any resource not already set by a command-line + * argument. + * + * See Note 4 + */ + +void RTLib_Get_Resources() +{ + if (IS_NULL(window_name)) + window_name = XGetDefault(dpy, resource_name, "Name"); + + if (IS_NULL(icon_name)) + icon_name = XGetDefault(dpy, resource_name, "IconName"); + + if (IS_NULL(foreground_color)) + foreground_color = XGetDefault(dpy, resource_name, "Foreground"); + + if (IS_NULL(background_color)) + background_color = XGetDefault(dpy, resource_name, "Background"); + + if (IS_NULL(border_color)) + border_color = XGetDefault(dpy, resource_name, "Border"); + + if (IS_NULL(border_width)) + border_width = XGetDefault(dpy, resource_name, "BorderWidth"); + + if (IS_NULL(font)) + font = XGetDefault(dpy, resource_name, "BodyFont"); + + if (IS_NULL(geometry)) + geometry = XGetDefault(dpy, resource_name, "Geometry"); +} + +/* ------------------------------------------------------------ */ + + /* Load the font */ + +void RTLib_Load_Font( default_font ) + char *default_font; +{ + if ( IS_NULL(font) ) + font = default_font; + + if ( (fontp = XLoadQueryFont(dpy, font)) == (XFontStruct *) NULL ) + { + fprintf(stderr, "Cannot load font %s, exiting!\n", font); + exit(-2); + } +} + +/* ------------------------------------------------------------ */ + + /* Determine the parent window specified either via the + * "-p" command line argument, or via the PARENT_DESKTOP + * environment variable. + * If neither, or if the parent specified is not a window, + * the parent is the root window + * + * See Note 5 + */ + +void RTLib_Parent_Window() +{ + if (IS_NULL(parent)) + { + parent = getenv("PARENT_DESKTOP"); + } + + if (IS_NULL(parent)) + { + parent_window = RootWindow(dpy, screen); + } + else + { + parent_window = atoi(parent); + if ( ! RTLib_Window_Exists( parent_window ) ) + parent_window = RootWindow(dpy, screen); + } +} + +/* ------------------------------------------------------------ */ + + /* Returns the parent window's width and height */ + +void RTLib_Parent_Size( pwidth, pheight ) + int *pwidth; + int *pheight; +{ + XWindowAttributes xwa; + + XGetWindowAttributes( dpy, parent_window, &xwa ); + + *pwidth = xwa.width; + *pheight = xwa.height; +} + +/* ------------------------------------------------------------ */ + + /* Called after the application has set the minimum size + * and default initial size and position of the window + * + * If a geometry argument has been provided, then it determines + * the user-specified initial size and/or position + * If no geometry argument has been provided, then + * leave the defaults set by the application alone. + * + * Set the size_hint structure appropriately + * + * See Note 6 + */ + +void RTLib_Set_Initial_Geometry() +{ + int result; + + size_hint.flags = PMinSize; /* minimum size set */ + size_hint.min_width = min_width; + size_hint.min_height = min_height; + + if (IS_NULL(geometry)) + { + size_hint.flags |= PSize; /* size set by program */ + } + else + { + result = XParseGeometry(geometry, + &desired_x, &desired_y, + &desired_width, &desired_height); + + if (desired_width < min_width) + desired_width = min_width; + + if (desired_height < min_height) + desired_height = min_height; + + + if ( (result & (WidthValue | HeightValue)) != 0 ) + size_hint.flags |= USSize; /* size set by user */ + else + size_hint.flags |= PSize; /* size set by program */ + + + if ( (result & (XValue | YValue)) != 0 ) + size_hint.flags |= USPosition; /* position set by user */ + + if ( (result & ( XNegative | YNegative )) != 0 ) + { + /* Set position relative to right or bottom edge + * of parent window if x or y was negative + */ + + int parent_width, parent_height; + RTLib_Parent_Size( &parent_width, &parent_height ); + if ( (result & XNegative ) != 0 ) + desired_x += parent_width - desired_width + 1; + if ( (result & YNegative ) != 0 ) + desired_y += parent_height - desired_height + 1; + } + } + + size_hint.width = desired_width; + size_hint.height = desired_height; + + size_hint.x = desired_x; + size_hint.y = desired_y; +} + +/* ------------------------------------------------------------ */ + + /* Returns pixel corresponding to "color", + * or if that fails, "default_color" + */ + +unsigned long RTLib_Get_Color( color, default_color ) + char *color; + unsigned long default_color; +{ + XColor xcolor; + + if (! IS_NULL(color) && + XParseColor(dpy, DefaultColormap(dpy, screen), + color, &xcolor) && + XAllocColor(dpy, DefaultColormap(dpy, screen), &xcolor)) + { + return xcolor.pixel; + } + else + return default_color; +} + +/* ------------------------------------------------------------ */ + + /* Create the window that the application will use + * as a subwindow of that parent window. + */ + +void RTLib_Create_Window() +{ + unsigned long border, background; + unsigned int border_width_val; + + border = RTLib_Get_Color( border_color, + BlackPixel(dpy, screen) ); + background = RTLib_Get_Color( background_color, + WhitePixel(dpy, screen) ); + + if ( IS_NULL(border_width) ) + border_width_val = DEFAULT_BORDER_WIDTH; + else + border_width_val = atoi(border_width); + + window = XCreateSimpleWindow(dpy, parent_window, + desired_x, desired_y, + desired_width, desired_height, + border_width_val, + border, + background); + XFlush(dpy); +} + +/* ------------------------------------------------------------ */ + + /* Create the client icon that the application will use + * as a subwindow of that parent window. + */ + +void RTLib_Create_Client_Icon() +{ + unsigned long border, background; + unsigned int border_width_val; + unsigned int desired_x, desired_y; + unsigned int desired_width, desired_height; + + border = RTLib_Get_Color( border_color, + BlackPixel(dpy, screen) ); + background = RTLib_Get_Color( background_color, + WhitePixel(dpy, screen) ); + + desired_x = 100; + desired_y = 100; + desired_width = 64; + desired_height = 64; + border_width_val = 2; + + client_icon = XCreateSimpleWindow(dpy, parent_window, + desired_x, desired_y, + desired_width, desired_height, + border_width_val, + border, + background); + + XFlush(dpy); +} + +/* ------------------------------------------------------------ */ + +void RTLib_Create_Transient_Window() +{ + unsigned long border, background; + unsigned int border_width_val; + unsigned int desired_x, desired_y; + unsigned int desired_width, desired_height; + + border = RTLib_Get_Color( border_color, + BlackPixel(dpy, screen) ); + background = RTLib_Get_Color( background_color, + WhitePixel(dpy, screen) ); + + desired_x = transient_size; + desired_y = transient_size; + desired_width = transient_size; + desired_height = 64; + border_width_val = 6; + + transient_window = XCreateSimpleWindow(dpy, parent_window, + desired_x, desired_y, + desired_width, desired_height, + border_width_val, + border, + background); + + XSetTransientForHint(dpy, transient_window, window); + XFlush(dpy); +} +/* ------------------------------------------------------------ */ + + /* Determine the host on which the application is running + * and use it to set the WM_CLIENT_MACHINE property. + * + * See Note 7 + */ + +void RTLib_Set_Host() +{ + gethostname(host_str, 100); + host_str[99] = '\0'; + + XChangeProperty(dpy, window, XA_WM_CLIENT_MACHINE, XA_STRING, 8, + PropModeReplace, host_str, strlen(host_str)); +} + +/* ------------------------------------------------------------ */ + + /* Set WM_CLASS_HINTS from the resource_name and resource_class + * + * See Note 3 + */ + +void RTLib_Set_Class_Hints() +{ + XClassHint class_hint; + + class_hint.res_name = resource_name; + class_hint.res_class = resource_class; + + XSetClassHint(dpy, window, &class_hint); +} + +/* ------------------------------------------------------------ */ + + /* If WM_NAME was not set via the "-w" command line argument + * or obtained as a resource, set it automatically as + * resource_name @ host (resource_class) + * Eliminate the (resource_class) if the same as the resource_name + * Eliminate the host if INCLUDE_HOST_NAME is false + * + * See Note 8 + */ + +void RTLib_Set_Name() +{ + if (SET_ICON_FROM_WINDOW_NAME && IS_NULL(icon_name)) + icon_name = window_name; + + if (IS_NULL(window_name)) + { + window_name = window_name_str; + + if ( INCLUDE_HOST_NAME ) + { + if ( strcmp(resource_class, resource_name) == 0 ) + sprintf(window_name, "%s @ %s", + resource_name, + host_str); + else + sprintf(window_name, "%s @ %s (%s)", + resource_name, + host_str, + resource_class); + } + else + { + if ( strcmp(resource_class, resource_name) == 0 ) + strcpy( window_name, resource_name ); + else + sprintf(window_name, "%s (%s)", + resource_name, + resource_class); + } + } + + XStoreName(dpy, window, window_name); +} + +/* ------------------------------------------------------------ */ + + /* Extend WM_NAME to append "str" to the basic WM_NAME set above + * + * See Note 10 + */ + +void RTLib_Extend_Name( str ) + char *str; +{ + char extend_name[100]; + + strcpy( extend_name, window_name ); + strcat( extend_name, str ); + XStoreName(dpy, window, extend_name); +} + +/* ------------------------------------------------------------ */ + + /* If WM_ICON_NAME was not set via the "-i" command line argument + * or obtained as a resource, or set from the window name + * set it automatically as + * resource_name @ host + * Eliminate the host if INCLUDE_HOST_NAME is false + * + * See Note 8 + */ + +void RTLib_Set_Icon_Name() +{ + char icon_name_str[100]; + + if (IS_NULL(icon_name)) + { + icon_name = icon_name_str; + + if ( INCLUDE_HOST_NAME ) + sprintf(icon_name, "%s @ %s", + resource_name, + host_str); + else + strcpy( icon_name, resource_name ); + } + + XSetIconName(dpy, window, icon_name); +} + +/* ------------------------------------------------------------ */ + + /* Set WM_HINTS to indicate that the client does not take + * responsibility for the input focus (but leaves it to the wm), + * and that when the window is initially mapped, it should be opened + * (rather than iconized). + * This application does not bother to provide its own icon, + * but leaves it to the wm to provide a default one. + */ + +void RTLib_Set_WM_Hints() +{ + XWMHints wmhints; + + wmhints.flags = InputHint | StateHint; + + wmhints.input = True; + wmhints.initial_state = NormalState; + + if (use_client_icon) + { + wmhints.flags |= IconWindowHint; + wmhints.icon_window = client_icon; + } + + XSetWMHints(dpy, window, &wmhints); +} + +/* ------------------------------------------------------------ */ + + /* Set the various window properties + * + * See Note 9 + */ + +void RTLib_Set_Properties( argv, argc ) + char *argv[]; + int argc; +{ + RTLib_Set_Class_Hints(); + RTLib_Set_Host(); + XSetCommand(dpy, window, argv, argc); + RTLib_Set_Name(); + RTLib_Set_Icon_Name(); + XSetNormalHints(dpy, window, &size_hint); + RTLib_Set_WM_Hints(); +} + +/* ------------------------------------------------------------ */ + + /* Set the graphics context used for drawing in the window */ + +void RTLib_Set_GC() +{ + unsigned long gcMask; + XGCValues gcv; + + gcMask = GCForeground | GCFunction | GCFont; + gcv.font = fontp->fid; + gcv.function = GXcopy; + gcv.foreground = RTLib_Get_Color( foreground_color, + BlackPixel(dpy, screen) ); + + gc = XCreateGC(dpy, RootWindow(dpy, screen), + gcMask, &gcv); +} + +/* ------------------------------------------------------------ */ + + /* Called after the client has changed the desired window size + * based on the user's action + * Check that the desired size is not less than the minimum. + * First, request that the window is explicitly resized. + * Then, update the size_hint and WM_NORMAL_HINTS to reflect + * the change + * + * See Note 11 + */ + +void RTLib_User_Resize() +{ + if ( desired_width < min_width ) + desired_width = min_width; + + if ( desired_height < min_height ) + desired_height = min_height; + + XResizeWindow(dpy, window, desired_width, desired_height); + + size_hint.flags &= ~PSize; /*in case PSize was initially specified */ + size_hint.flags |= USSize; + + size_hint.width = desired_width; + size_hint.height = desired_height; + + XSetNormalHints(dpy, window, &size_hint); +} + +/* ------------------------------------------------------------ */ + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + * $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + * + * Everything above here is application independent + * + * The code below is Yow-specifc + * + * $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + * $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +/* ------------------------------------------------------------ */ + +#define CLASS "yow" /* class of this program */ + +#define STR "Smile if You Tile!" /* string to display */ + +#define DEFAULT_FONT "vg-25" + +#define SHOW_SIZE 1 /* See Note 10 */ +#define DESIRE_BASED 0 /* See Note 12 */ + +/* ------------------------------------------------------------ */ + +unsigned int cur_width, cur_height; /* current window size */ + +/* ------------------------------------------------------------ */ + + /* Update WM_NAME to display current height and width + * if SHOW_SIZE is set. See Note 10. + */ + +void Yow_Extend_Current_Size() +{ + char sizstr[20]; + + if ( SHOW_SIZE ) + { + sprintf( sizstr, " < %d, %d >", cur_width, cur_height ); + RTLib_Extend_Name( sizstr ); + } +} + +/* ------------------------------------------------------------ */ + + /* Set the current window width and height + * based on information from the ConfigureNotify event + * Update WM_NAME to display current height and width + */ + +void Yow_Set_Current_Size(xconfigure) + XConfigureEvent xconfigure; +{ + cur_width = xconfigure.width; + cur_height = xconfigure.height; + Yow_Extend_Current_Size(); +} + +/* ------------------------------------------------------------ */ + + /* Set the minimum window size so that "str" can be completely + * shown in the font. + * default initial size to 1.3 * the minimum size, + * and the default initial position is (0,0) + * Initialize cur_width and cur_height from the desired counterparts + * after they have been adjusted by RTLib + * + * See Note 6 + */ + +void Yow_Set_Initial_Geometry( str ) + char *str; +{ + min_width = 4 + XTextWidth(fontp, str, strlen(str)); + min_height = 4 + fontp->max_bounds.ascent + fontp->max_bounds.descent; + + desired_width = 1.3 * min_width; + desired_height = 1.3 * min_height; + desired_x = 0; + desired_y = 0; + + RTLib_Set_Initial_Geometry(); + + cur_width = desired_width; + cur_height = desired_height; +} + +/* ------------------------------------------------------------ */ + + /* Shift Button 1 increases the desired window size by 10% + * Shift Button 2 decreases the desired window size by 10% + * Shift Button 3 means unmap the window + * Ctrl Shift any button means exit + * + * If DESIRE_BASED + * then increase or decrease based on the desired size + * else base it on the current window size + * + * See Note 12 + */ + +void Yow_Button_Press(xbutton) + XButtonEvent xbutton; +{ + if (xbutton.state & (ControlMask | ShiftMask)) + exit(0); + + if ((xbutton.button == Button3) && /* unmap */ + (xbutton.state & ShiftMask)) + { + XUnmapWindow( dpy, window ); + if(use_client_icon) + { + XMapWindow(dpy, client_icon); + XClearWindow(dpy, client_icon); + XDrawString(dpy, client_icon, gc, 1, 32, "ICON", + strlen("ICON")); + XFlush(dpy); + } + return; + } + + if (! DESIRE_BASED) + { + desired_height = cur_height; + desired_width = cur_width; + } + + if ((xbutton.button == Button1) && /* increase size */ + (xbutton.state & ShiftMask)) + { + desired_height = desired_height * 1.1; + desired_width = desired_width * 1.1; + } + else if ((xbutton.button == Button2) && /* decrease size */ + (xbutton.state & ShiftMask)) + { + desired_height = desired_height / 1.1; + desired_width = desired_width / 1.1; + } + else if (xbutton.button == Button1) + { + if(use_transient && (transient_mapped == 0)) + { + transient_mapped = 1; + XMapWindow(dpy, transient_window); + XFlush(dpy); + sleep(1); + XClearWindow(dpy, transient_window); + XDrawString(dpy, transient_window, gc, 1, 32, + "TRANSIENT", strlen("TRANSIENT")); + XFlush(dpy); + } + } + else if (xbutton.button == Button2) + { + if(use_transient && (transient_mapped == 1)) + { + transient_mapped = 0; + XUnmapWindow(dpy, transient_window); + } + } + else if (xbutton.button == Button3) + { + if(use_transient && (transient_mapped == 1)) + { + if (transient_size == 150) + transient_size = 300; + else + transient_size = 150; + + XMoveResizeWindow(dpy, transient_window, + transient_size, + transient_size, + transient_size, + 64); + } + } + + RTLib_User_Resize(); +} + +/* ------------------------------------------------------------ */ + + /* Draw a string "str", centered in the window */ + +void Yow_Center_String(str) + char *str; +{ + int xc, yc; + + xc = (cur_width - XTextWidth(fontp, str, strlen(str))) / 2; + yc = (cur_height + + fontp->max_bounds.ascent - fontp->max_bounds.descent) / 2; + + XClearWindow(dpy, window); + XDrawString(dpy, window, gc, xc, yc, str, strlen(str)); +} + +/* ------------------------------------------------------------ */ + +main(argc, argv) + int argc; + char *argv[]; +{ + XEvent ev; + char chr; + + RTLib_Process_Arguments(argc, argv); + + RTLib_Open_Display(); + XSetErrorHandler(RTLib_Error_Handler); + + RTLib_Set_Resource_Name_And_Class(CLASS,argv); + RTLib_Get_Resources(); + RTLib_Parent_Window(); + RTLib_Load_Font( DEFAULT_FONT ); + Yow_Set_Initial_Geometry( STR ); + + RTLib_Create_Window(); + if (use_client_icon) + RTLib_Create_Client_Icon(); + if (use_transient) + RTLib_Create_Transient_Window(); + + RTLib_Set_Properties(argv, argc); + Yow_Extend_Current_Size(); + RTLib_Set_GC(); + + XSelectInput(dpy, window, + ExposureMask | ButtonPressMask | StructureNotifyMask ); + + printf("Type to map the window!\n"); + scanf("%c", &chr); + + XMapWindow(dpy, window); + + for (;;) + { + XNextEvent(dpy, &ev); + + switch(ev.type & 0x7f) /* See Note 13 */ + { + case Expose: + if (ev.xexpose.count == 0) + Yow_Center_String(STR); + break; + + case ButtonPress: + Yow_Button_Press(ev.xbutton); + break; + + case ConfigureNotify: + Yow_Set_Current_Size(ev.xconfigure); + + default: + break; + } + } +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + +1) RTLib_Process_Arguments processes command line arguments. These can +be used for specifying the display, the initial geometry, and various +resources. We use one character arguments. They are not standard, but +then again, there really is no standard here anyway. + +Eventually, command line parsing should be handled by the Xrm faciilties +(in particular XrmParseCommand), however, they are currently in the +process of being changed. + +Many users will wish to replace or adapt this function to handle +application-specific arguments. In any case, processing of +arguments should be done early in the program. + +------------------------------ + +2) RTLib_Error_Handler provides an error handler. Errors resulting from X +server requests are printed out in a standard format. + +------------------------------ + +3) RTLib_Set_Resource_Name_And_Class and RTLib_Set_Class_Hints set +WM_CLASS. WM_CLASS was added to Standard Properties somewhat late and is +not set by XSetStandardProperties. It consists of two fields: res_class, +and res_name. These are used both by the application and by the window +manager to obtain resources for the client. + +res_class should be set to the name of the application -- in this case, +"yow". + +res_name is used to more specifically identify an instance of the +application, to distinguish it from other running instances. The +distinction can be based either on the invocation or on the environment. + +By default, res_name should be set to the name by which the application +was invoked -- argv[0] in Unix systems. This should be overridden if the +RESOURCE_NAME environment variable is set (in Unix anyway). Finally, +this should be overridden if a specific command line argument (we use +"-r") is provided. + +The reader should be warned that there is no general consensus regarding +the setting of res_name. However, this model has evolved through +our interactions with a number of application writers, and seems to +satisfy everyone's needs. + +------------------------------ + +4) RTLib_Get_Resources shows how to get a variety of resources based on +WM_CLASS using the XGetDefault facilities. We would prefer using the Xrm +facilities, however, they are in the process of being changed. +XGetDefault requires that resources be obtained solely using res_name. +When the Xrm facilities become stable, resources should be able to be +obtained based both on res_name and res_class. + +Many users will wish to replace or adapt this function to handle +application-specific resources. In any case, obtaining resources +should be done early in the program -- as soon as the resource name is +set. + +------------------------------ + +5) RTLib_Parent_Window sets the parent window which may be specified, +either via a PARENT_DESKTOP environment variable, or via a -p command +line argument. If neither, the parent window is the root. The +application's window will be opened within the parent window. + +The use of a parent window is not standard. We are strongly urging that +clients use this model however. There WILL be window managers that wish +to operate within a window rather than taking over the entire screen. +Applications that do not check for a parent window will not be able to +work in such an environment. + +------------------------------ + +6) The yow-specific Yow_Set_Initial_Geometry sets the minimum window +size so that a specified string can always be shown. The default +initial desired window size is set 1.3 times larger than this, and the +default position for the window is the upper left hand corner. + +The application-independent RTLib_Set_Initial_Geometry is then called to +override the default if a geometry argument or resource has been +provided. +The desired size is used both in initially creating the window, and in +setting the size_hint structure, used to initialize WM_NORMAL_HINTS when +the window is later actually created. + +------------------------------ + +7) RTLib_Set_Host sets WM_CLIENT_MACHINE to be the host machine on which +the client is running. Window managers need to use this for a variety of +reasons. Some may optionally show arrange to show it in the window +header (See Note 8). Others may use it to distinguish between two +instances of an application that are running on different clients (where +res_name is not used to distinguish them) for the purposes of saving and +restoring layouts. + + ------------------------------ + +8) RTLib_Set_Name and RTLib_Set_Icon_Name automatically set WM_NAME and +WM_ICON_NAME if they are not provided either as arguments or from a +defaults file. We have found that many users like to see the name of the +host on which the application is runnning in the window and icon. Thus, +by default, we set WM_NAME to be + + res_name @ host (res_class) [if res_name != res_class] + res_name @ host [if res_name == res_class] + +and WM_ICON_NAME to be + + res_name @ host + +There is some disagreement about whether the host should be included +by the client or by the window manager. We believe that it would be +best for the window manager to determine which properties (e.g. WM_NAME, +WM_CLIENT_MACHINE, etc.) are displayed in windows and icons based on +defaults, and our window manager does this. +However, there are a number of window managers, such as wm, that do not +allow this possibility, and only show WM_NAME or WM_ICON_NAME. +For the time being, we feel we must recommend that clients include the +hosts in the names. However, the inclusion of the host name is +controlled by the constant INCLUDE_HOST_NAME. + +Also, if the window name has been provided as an argument or from a +defaults file, but the icon name has not been, there is no clear +model of how to set the icon name. If the constant +SET_ICON_FROM_WINDOW_NAME is 1, we set it to the provided window name. +If it is 0, we still set it to "res_name @ host" (or just "res_name"). + +------------------------------ + +9) RTLib sets the WM_CLASS property first. This is important because +many window managers use res_name and res_class to set default options +and values for the window. Properties that are set later may then +override these defaults, though a well-written window manager should be +able to handle properties set in any order. + +Note that RTLib does not set WM_ZOOM_HINTS. There is some controversy +over Zoom Hints, and it is likely that they will either be eliminated or +replaced in the near future. + +------------------------------ + +10) Clients generally may wish other information to appear in the window +title. RTLib_Extend_Name can be used to append a changing +application-specified string to WM_NAME. Yow_Extend_Current_Size +optionally (based on the constant SHOW_SIZE) uses this function to append +the window's current size to WM_NAME and update it when the size changes. + +------------------------------ + +11) RTLib_User_Resize is used when the client wants to resize its window. +REsizing is accomplished by both calling XResizeWindow and resetting +WM_NORMAL_HINTS. This is a simplification of a more complex protocol +that has been proposed by DEC. That protocol would be used when an +application needs to redraw itself even if its new size request cannot be +met at all. + +------------------------------ + +12) Yow_Button_Press highlights an important issue that users should be +aware of -- the difference between a window's desired size, and its +current size. When a client requests that a window's size be changed +(as in RTLib_User_Resize) to a new desired size, the window manager may +intercept the request and, because of layout constraints, grow the window +to some smaller size, or not even change it at all. Thus the window's +current size may be different than its desired size. + +If the user presses button1 (with shift depressed), the window size will +grow by 10%. If button2 is pressed instead, the window size is shrunk by +10%. By default, the basis for shrinking is the current size. By +setting the constant DESIRED_BASED to 1, the basis for shrinking is the +current desired size. On window managers that do not constrain layout, +there should be no difference, since the current and desired size are the +same. On the Siemens RTL Tiled Window Manager, which will be available +shortly, the difference is quite dramatic. + +Pressing button3 (with shift depressed) unmaps the window. This is a +good test of window manager capabilities. A window manager should open +a default icon when the window is unmapped. + +------------------------------ + +13) In main, after obtaining the next event ev, the high order bit +in ev.type is masked out. This bit is turned on by the X protocol +when the event was caused by a client XSendEvent rather than by +the server directly. If the bit is not turned off, the case statement +based on ev.type will not work correctly. + +XSendEvent is used in a number of ways. Clients that wish to execute +scripts to play back canned demos can cause events this way. + +In addition, window managers may use XSendEvent. For example, when a +window manager reparents a window and then moves it, the client does not +receive a ConfigureNotify event. A pending proposal suggests that all +window managers send a synthetic ConfigureNotify (using XSendEvent) in +this case. + +The Siemens RTL Tiled Window Manager uses XSendEvent in a different way +-- it (optionally) uses XSendEvent to send key and button presses typed +while the cursor is in the window header on to the client (acting as if +the cursor were in the client's window). + +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ diff --git a/extras/yow.c b/extras/yow.c new file mode 100644 index 0000000..c5fb1f3 --- /dev/null +++ b/extras/yow.c @@ -0,0 +1,1186 @@ +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + + Yow: A Zippy Example X11 Application + ------------------------------------ + + Mark Biggers + biggers%siemens.com@princeton.edu + (609) 734-3325 + + Ellis Cohen + Ellis.Cohen@a.gp.cs.cmu.edu + (609) 734-6524 + + Siemens RTL Tiled Window Project + 105 College Rd East + Princeton NJ 08540 + + 15 Dec 1987 + +Though the X11 protocol is now stable, the interaction between +application programs and window managers is still evolving. +While there are still some disagreements about these interactions, +we think that application writers will benefit from an example +program that reflects the current state. Where there are +disagreements about usage, we will try to indicate what they +are. + +The application, "Yow", was originally built to exercise our own +window manager. It has evolved based on input from a variety of +individuals who are building real applications to better fit their +needs. + +Yow is quite a bit longer and more complex than Dave Rosenthal's very +helpful "Hello World" program for a number of reasons. First, it is +divided into a number of functions, each of which is a chunk that can +easily be reused or adapted. Also, there are a number of specific +additional features provided and issues addressed. These are discussed +in the notes that follow the code. + +Yow is divided into two parts. The first part is application +independent, and contains functions taken from a library (RTLib) we +have developed locally. Applications share a variety of global variables +with the RTLib functions. The RTLib functions generally DO need to be +called in the order they are invoked by Yow. + +The first half of the program could be copied and either included +directly in an application or placed in a separate file. +Many users will additionally want to adapt RTLib_Process_Arguments and +RTLib_Get_Resources to their own needs. + +Only the second and shorter half of the program is specific to the Yow +application. + +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +/* ************************************************************ + * Yow is a simple zippy application that provides an example of how + * to use X11 to draw in a window and interact with a window manager. + * Yow centers a string in a window, and responds to button presses + * by enlarging or shrinking the window + * ************************************************************ + */ + +/* Copyright (c) 1987 Siemens Corporate Research and Support, Inc., + * Princeton, NJ. + * + * Permission to use, copy, modify, and distribute this software and + * its documentation for any purpose and without fee is hereby + * granted, provided that the above copyright notice appear in all + * copies and that both that copyright notice and this permission + * notice appear in supporting documentation, and that the name of + * Siemens not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior + * permission. Siemens makes no representations about the + * suitability of this software for any purpose. It is provided "as + * is" without express or implied warranty. + */ +#ifndef lint +static char sccs_id[] = "@(#)yow.c 1.7 6/20/88 Copyright (c) 1987, Siemens Corporate Research and Support, Inc."; +#endif + +#include +#include +#include +#include +#include +#include +#include + +extern char *malloc(), *getenv(); +extern Window XCreateSimpleWindow(); + +#define IS_NULL(s) ((s) == (char *) 0) + +/* ------------------------------------------------------------ */ + +#define DEFAULT_BORDER_WIDTH 2 + +/* ------------------------------------------------------------ */ + +#define INCLUDE_HOST_NAME 1 /* See Note 8 */ +#define SET_ICON_FROM_WINDOW_NAME 1 /* See Note 8 */ + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + + /* X structures SHARED WITH APPLICATION */ + +Display *dpy; /* The display used */ +int screen; /* The screen on the display */ +Window parent_window; /* The window in which to open the client window */ +Window window; /* The client window */ +XFontStruct *fontp; /* The font used for drawing */ +GC gc; /* The graphics context used for drawing */ + + /* desired & min geometry SHARED WITH APPLICATION */ + +unsigned int min_width, min_height; +unsigned int desired_width, desired_height; +int desired_x, desired_y; + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + + /* static string & hint storage */ + +static unsigned char host_str[100]; +static char window_name_str[100]; +static XSizeHints size_hint; +static char *resource_class; + +/* ------------------------------------------------------------ */ + + /* possible command line args */ + +static char *display = (char *) NULL; +static char *resource_name = (char *) NULL; +static char *window_name = (char *) NULL; +static char *icon_name = (char *) NULL; +static char *foreground_color = (char *) NULL; +static char *background_color = (char *) NULL; +static char *border_color = (char *) NULL; +static char *border_width = (char *) NULL; +static char *font = (char *) NULL; +static char *parent = (char *) NULL; +static char *geometry = (char *) NULL; + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + + /* Process the command line. Optional arguents are + * -r + * -w + * -i + * -c + * -b + * -e + * -s + * -p + * -f + * -g + * -d + * + * See Note 1 + */ + +void RTLib_Process_Arguments(argc, argv) + int argc; + char *argv[]; +{ + extern char *optarg; + extern int optind, opterr; + int c; + Bool errflg = False; + + while ((c = getopt(argc, argv, "r:w:i:c:b:e:s:p:f:g:d:")) != EOF) + { + switch (c) + { + case 'r': + resource_name = optarg; + break; + + case 'w': + window_name = optarg; + break; + + case 'i': + icon_name = optarg; + break; + + case 'c': + foreground_color = optarg; + break; + + case 'b': + background_color = optarg; + break; + + case 'e': + border_color = optarg; + break; + + case 's': + border_width = optarg; + break; + + case 'p': + parent = optarg; + break; + + case 'f': + font = optarg; + break; + + case 'g': + geometry = optarg; + break; + + case 'd': + display = optarg; + break; + + case '?': + errflg = True; + break; + } + } + + if (errflg) + { + fprintf(stderr, "usage: %s", argv[0]); + fprintf(stderr, "\n -r -w -i "); + fprintf(stderr, "\n -c -b -e "); + fprintf(stderr, "\n -s -p -f "); + fprintf(stderr, "\n -g -d \n"); + exit(-1); + } +} + +/* ------------------------------------------------------------ */ + + /* Open a connection to the X server + * A argument on the command line + * (as saved in "display") indicates which screen on + * which display controlled by the server should be used. + * If there was no such argument, display will be NULL, and + * XOpenDisplay will use the contents of the DISPLAY + * environment variable to indicate the display and sceen. + */ + +void RTLib_Open_Display() +{ + if (!(dpy = XOpenDisplay(display))) + { + fprintf(stderr, "Failed to open display %s...\n", display); + exit(1); + } + + screen = DefaultScreen(dpy); +} + +/* ------------------------------------------------------------ */ + + /* Error_Handler hooked into Xlib. See Note 2 */ + +int RTLib_Error_Handler(dpy, error) + Display *dpy; + XErrorEvent *error; +{ + char buffer[BUFSIZ]; + + XGetErrorText(dpy, error->error_code, buffer, (int) BUFSIZ); + + fprintf(stderr, "X Error <%s>\n", buffer); + fprintf(stderr, " Request Major code: %d\n", error->request_code); + fprintf(stderr, " Request Minor code: %d\n", error->minor_code); + fprintf(stderr, " ResourceId 0x%x\n", error->resourceid); + fprintf(stderr, " Error Serial #%d\n", error->serial); + fprintf(stderr, " Current Serial #%d\n", dpy->request); + + return 0; +} + +/* ------------------------------------------------------------ */ + + /* Determines whether the window "w" exists on "dpy" */ + +Bool RTLib_Window_Exists( w ) + Window w; +{ + XWindowAttributes xwa; + + return XGetWindowAttributes(dpy, w, &xwa); +} + +/* ------------------------------------------------------------ */ + + /* A window's resource_class is the name of the application + * + * A window's resource_name is used to distinguish two instances + * of the same application. It is taken from the first of the + * following that applies: + * a -r command line argument + * The RESOURCE_NAME environment variable + * argv[0] + * + * See Note 3 + */ + +void RTLib_Set_Resource_Name_And_Class(class,argv) + char *class; + char *argv[]; +{ + extern char *rindex(); + char *nam; + + resource_class = class; + + if (IS_NULL(resource_name)) + { + resource_name = getenv("RESOURCE_NAME"); + + if (IS_NULL(resource_name) ) + { + if ( (nam = rindex(argv[0], '/')) != (char *) NULL ) + { + resource_name = nam + 1; + } + else + { + resource_name = argv[0]; + } + } + } +} + +/* ------------------------------------------------------------ */ + + /* Use resource_name to get resources from .Xdefaults file + * Get any resource not already set by a command-line + * argument. + * + * See Note 4 + */ + +void RTLib_Get_Resources() +{ + if (IS_NULL(window_name)) + window_name = XGetDefault(dpy, resource_name, "Name"); + + if (IS_NULL(icon_name)) + icon_name = XGetDefault(dpy, resource_name, "IconName"); + + if (IS_NULL(foreground_color)) + foreground_color = XGetDefault(dpy, resource_name, "Foreground"); + + if (IS_NULL(background_color)) + background_color = XGetDefault(dpy, resource_name, "Background"); + + if (IS_NULL(border_color)) + border_color = XGetDefault(dpy, resource_name, "Border"); + + if (IS_NULL(border_width)) + border_width = XGetDefault(dpy, resource_name, "BorderWidth"); + + if (IS_NULL(font)) + font = XGetDefault(dpy, resource_name, "BodyFont"); + + if (IS_NULL(geometry)) + geometry = XGetDefault(dpy, resource_name, "Geometry"); +} + +/* ------------------------------------------------------------ */ + + /* Load the font */ + +void RTLib_Load_Font( default_font ) + char *default_font; +{ + if ( IS_NULL(font) ) + font = default_font; + + if ( (fontp = XLoadQueryFont(dpy, font)) == (XFontStruct *) NULL ) + { + fprintf(stderr, "Cannot load font %s, exiting!\n", font); + exit(-2); + } +} + +/* ------------------------------------------------------------ */ + + /* Determine the parent window specified either via the + * "-p" command line argument, or via the PARENT_DESKTOP + * environment variable. + * If neither, or if the parent specified is not a window, + * the parent is the root window + * + * See Note 5 + */ + +void RTLib_Parent_Window() +{ + if (IS_NULL(parent)) + { + parent = getenv("PARENT_DESKTOP"); + } + + if (IS_NULL(parent)) + { + parent_window = RootWindow(dpy, screen); + } + else + { + parent_window = atoi(parent); + if ( ! RTLib_Window_Exists( parent_window ) ) + parent_window = RootWindow(dpy, screen); + } +} + +/* ------------------------------------------------------------ */ + + /* Returns the parent window's width and height */ + +void RTLib_Parent_Size( pwidth, pheight ) + int *pwidth; + int *pheight; +{ + XWindowAttributes xwa; + + XGetWindowAttributes( dpy, parent_window, &xwa ); + + *pwidth = xwa.width; + *pheight = xwa.height; +} + +/* ------------------------------------------------------------ */ + + /* Called after the application has set the minimum size + * and default initial size and position of the window + * + * If a geometry argument has been provided, then it determines + * the user-specified initial size and/or position + * If no geometry argument has been provided, then + * leave the defaults set by the application alone. + * + * Set the size_hint structure appropriately + * + * See Note 6 + */ + +void RTLib_Set_Initial_Geometry() +{ + int result; + + size_hint.flags = PMinSize; /* minimum size set */ + size_hint.min_width = min_width; + size_hint.min_height = min_height; + + if (IS_NULL(geometry)) + { + size_hint.flags |= PSize; /* size set by program */ + } + else + { + result = XParseGeometry(geometry, + &desired_x, &desired_y, + &desired_width, &desired_height); + + if (desired_width < min_width) + desired_width = min_width; + + if (desired_height < min_height) + desired_height = min_height; + + + if ( (result & (WidthValue | HeightValue)) != 0 ) + size_hint.flags |= USSize; /* size set by user */ + else + size_hint.flags |= PSize; /* size set by program */ + + + if ( (result & (XValue | YValue)) != 0 ) + size_hint.flags |= USPosition; /* position set by user */ + + if ( (result & ( XNegative | YNegative )) != 0 ) + { + /* Set position relative to right or bottom edge + * of parent window if x or y was negative + */ + + int parent_width, parent_height; + RTLib_Parent_Size( &parent_width, &parent_height ); + if ( (result & XNegative ) != 0 ) + desired_x += parent_width - desired_width + 1; + if ( (result & YNegative ) != 0 ) + desired_y += parent_height - desired_height + 1; + } + } + + size_hint.width = desired_width; + size_hint.height = desired_height; + + size_hint.x = desired_x; + size_hint.y = desired_y; +} + +/* ------------------------------------------------------------ */ + + /* Returns pixel corresponding to "color", + * or if that fails, "default_color" + */ + +unsigned long RTLib_Get_Color( color, default_color ) + char *color; + unsigned long default_color; +{ + XColor xcolor; + + if (! IS_NULL(color) && + XParseColor(dpy, DefaultColormap(dpy, screen), + color, &xcolor) && + XAllocColor(dpy, DefaultColormap(dpy, screen), &xcolor)) + { + return xcolor.pixel; + } + else + return default_color; +} + +/* ------------------------------------------------------------ */ + + /* Create the window that the application will use + * as a subwindow of that parent window. + */ + +void RTLib_Create_Window() +{ + unsigned long border, background; + unsigned int border_width_val; + + border = RTLib_Get_Color( border_color, + BlackPixel(dpy, screen) ); + background = RTLib_Get_Color( background_color, + WhitePixel(dpy, screen) ); + + if ( IS_NULL(border_width) ) + border_width_val = DEFAULT_BORDER_WIDTH; + else + border_width_val = atoi(border_width); + + window = XCreateSimpleWindow(dpy, parent_window, + desired_x, desired_y, + desired_width, desired_height, + border_width_val, + border, + background); +} + +/* ------------------------------------------------------------ */ + + /* Determine the host on which the application is running + * and use it to set the WM_CLIENT_MACHINE property. + * + * See Note 7 + */ + +void RTLib_Set_Host() +{ + gethostname(host_str, 100); + host_str[99] = '\0'; + + XChangeProperty(dpy, window, XA_WM_CLIENT_MACHINE, XA_STRING, 8, + PropModeReplace, host_str, strlen(host_str)); +} + +/* ------------------------------------------------------------ */ + + /* Set WM_CLASS_HINTS from the resource_name and resource_class + * + * See Note 3 + */ + +void RTLib_Set_Class_Hints() +{ + XClassHint class_hint; + + class_hint.res_name = resource_name; + class_hint.res_class = resource_class; + + XSetClassHint(dpy, window, &class_hint); +} + +/* ------------------------------------------------------------ */ + + /* If WM_NAME was not set via the "-w" command line argument + * or obtained as a resource, set it automatically as + * resource_name @ host (resource_class) + * Eliminate the (resource_class) if the same as the resource_name + * Eliminate the host if INCLUDE_HOST_NAME is false + * + * See Note 8 + */ + +void RTLib_Set_Name() +{ + if (SET_ICON_FROM_WINDOW_NAME && IS_NULL(icon_name)) + icon_name = window_name; + + if (IS_NULL(window_name)) + { + window_name = window_name_str; + + if ( INCLUDE_HOST_NAME ) + { + if ( strcmp(resource_class, resource_name) == 0 ) + sprintf(window_name, "%s @ %s", + resource_name, + host_str); + else + sprintf(window_name, "%s @ %s (%s)", + resource_name, + host_str, + resource_class); + } + else + { + if ( strcmp(resource_class, resource_name) == 0 ) + strcpy( window_name, resource_name ); + else + sprintf(window_name, "%s (%s)", + resource_name, + resource_class); + } + } + + XStoreName(dpy, window, window_name); +} + +/* ------------------------------------------------------------ */ + + /* Extend WM_NAME to append "str" to the basic WM_NAME set above + * + * See Note 10 + */ + +void RTLib_Extend_Name( str ) + char *str; +{ + char extend_name[100]; + + strcpy( extend_name, window_name ); + strcat( extend_name, str ); + XStoreName(dpy, window, extend_name); +} + +/* ------------------------------------------------------------ */ + + /* If WM_ICON_NAME was not set via the "-i" command line argument + * or obtained as a resource, or set from the window name + * set it automatically as + * resource_name @ host + * Eliminate the host if INCLUDE_HOST_NAME is false + * + * See Note 8 + */ + +void RTLib_Set_Icon_Name() +{ + char icon_name_str[100]; + + if (IS_NULL(icon_name)) + { + icon_name = icon_name_str; + + if ( INCLUDE_HOST_NAME ) + sprintf(icon_name, "%s @ %s", + resource_name, + host_str); + else + strcpy( icon_name, resource_name ); + } + + XSetIconName(dpy, window, icon_name); +} + +/* ------------------------------------------------------------ */ + + /* Set WM_HINTS to indicate that the client does not take + * responsibility for the input focus (but leaves it to the wm), + * and that when the window is initially mapped, it should be opened + * (rather than iconized). + * This application does not bother to provide its own icon, + * but leaves it to the wm to provide a default one. + */ + +void RTLib_Set_WM_Hints() +{ + XWMHints wmhints; + + wmhints.flags = InputHint | StateHint; + + wmhints.input = True; + wmhints.initial_state = NormalState; + + XSetWMHints(dpy, window, &wmhints); +} + +/* ------------------------------------------------------------ */ + + /* Set the various window properties + * + * See Note 9 + */ + +void RTLib_Set_Properties( argv, argc ) + char *argv[]; + int argc; +{ + RTLib_Set_Class_Hints(); + RTLib_Set_Host(); + XSetCommand(dpy, window, argv, argc); + RTLib_Set_Name(); + RTLib_Set_Icon_Name(); + XSetNormalHints(dpy, window, &size_hint); + RTLib_Set_WM_Hints(); +} + +/* ------------------------------------------------------------ */ + + /* Set the graphics context used for drawing in the window */ + +void RTLib_Set_GC() +{ + unsigned long gcMask; + XGCValues gcv; + + gcMask = GCForeground | GCFunction | GCFont; + gcv.font = fontp->fid; + gcv.function = GXcopy; + gcv.foreground = RTLib_Get_Color( foreground_color, + BlackPixel(dpy, screen) ); + + gc = XCreateGC(dpy, RootWindow(dpy, screen), + gcMask, &gcv); +} + +/* ------------------------------------------------------------ */ + + /* Called after the client has changed the desired window size + * based on the user's action + * Check that the desired size is not less than the minimum. + * First, request that the window is explicitly resized. + * Then, update the size_hint and WM_NORMAL_HINTS to reflect + * the change + * + * See Note 11 + */ + +void RTLib_User_Resize() +{ + if ( desired_width < min_width ) + desired_width = min_width; + + if ( desired_height < min_height ) + desired_height = min_height; + + XResizeWindow(dpy, window, desired_width, desired_height); + + size_hint.flags &= ~PSize; /*in case PSize was initially specified */ + size_hint.flags |= USSize; + + size_hint.width = desired_width; + size_hint.height = desired_height; + + XSetNormalHints(dpy, window, &size_hint); +} + +/* ------------------------------------------------------------ */ + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + * $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + * + * Everything above here is application independent + * + * The code below is Yow-specifc + * + * $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + * $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +/* ------------------------------------------------------------ */ + +#define CLASS "yow" /* class of this program */ + +#define STR "Smile if You Tile!" /* string to display */ + +#define DEFAULT_FONT "vg-25" + +#define SHOW_SIZE 1 /* See Note 10 */ +#define DESIRE_BASED 0 /* See Note 12 */ + +/* ------------------------------------------------------------ */ + +unsigned int cur_width, cur_height; /* current window size */ + +/* ------------------------------------------------------------ */ + + /* Update WM_NAME to display current height and width + * if SHOW_SIZE is set. See Note 10. + */ + +void Yow_Extend_Current_Size() +{ + char sizstr[20]; + + if ( SHOW_SIZE ) + { + sprintf( sizstr, " < %d, %d >", cur_width, cur_height ); + RTLib_Extend_Name( sizstr ); + } +} + +/* ------------------------------------------------------------ */ + + /* Set the current window width and height + * based on information from the ConfigureNotify event + * Update WM_NAME to display current height and width + */ + +void Yow_Set_Current_Size(xconfigure) + XConfigureEvent xconfigure; +{ + cur_width = xconfigure.width; + cur_height = xconfigure.height; + Yow_Extend_Current_Size(); +} + +/* ------------------------------------------------------------ */ + + /* Set the minimum window size so that "str" can be completely + * shown in the font. + * default initial size to 1.3 * the minimum size, + * and the default initial position is (0,0) + * Initialize cur_width and cur_height from the desired counterparts + * after they have been adjusted by RTLib + * + * See Note 6 + */ + +void Yow_Set_Initial_Geometry( str ) + char *str; +{ + min_width = 4 + XTextWidth(fontp, str, strlen(str)); + min_height = 4 + fontp->max_bounds.ascent + fontp->max_bounds.descent; + + desired_width = 1.3 * min_width; + desired_height = 1.3 * min_height; + desired_x = 0; + desired_y = 0; + + RTLib_Set_Initial_Geometry(); + + cur_width = desired_width; + cur_height = desired_height; +} + +/* ------------------------------------------------------------ */ + + /* Shift Button 1 increases the desired window size by 10% + * Shift Button 2 decreases the desired window size by 10% + * Shift Button 3 means unmap the window + * Ctrl Shift any button means exit + * + * If DESIRE_BASED + * then increase or decrease based on the desired size + * else base it on the current window size + * + * See Note 12 + */ + +void Yow_Button_Press(xbutton) + XButtonEvent xbutton; +{ + if ( !(xbutton.state & ShiftMask) ) + return; + + if (xbutton.state & ControlMask) + exit(0); + + if (xbutton.button == Button3) /* unmap */ + { + XUnmapWindow( dpy, window ); + return; + } + + if (! DESIRE_BASED) + { + desired_height = cur_height; + desired_width = cur_width; + } + + if (xbutton.button == Button1) /* increase size */ + { + desired_height = desired_height * 1.1; + desired_width = desired_width * 1.1; + } + else if (xbutton.button == Button2) /* decrease size */ + { + desired_height = desired_height / 1.1; + desired_width = desired_width / 1.1; + } + + RTLib_User_Resize(); +} + +/* ------------------------------------------------------------ */ + + /* Draw a string "str", centered in the window */ + +void Yow_Center_String(str) + char *str; +{ + int xc, yc; + + xc = (cur_width - XTextWidth(fontp, str, strlen(str))) / 2; + yc = (cur_height + + fontp->max_bounds.ascent - fontp->max_bounds.descent) / 2; + + XClearWindow(dpy, window); + XDrawString(dpy, window, gc, xc, yc, str, strlen(str)); +} + +/* ------------------------------------------------------------ */ + +main(argc, argv) + int argc; + char *argv[]; +{ + XEvent ev; + + RTLib_Process_Arguments(argc, argv); + + RTLib_Open_Display(); + XSetErrorHandler(RTLib_Error_Handler); + + RTLib_Set_Resource_Name_And_Class(CLASS,argv); + RTLib_Get_Resources(); + RTLib_Parent_Window(); + RTLib_Load_Font( DEFAULT_FONT ); + Yow_Set_Initial_Geometry( STR ); + + RTLib_Create_Window(); + RTLib_Set_Properties(argv, argc); + Yow_Extend_Current_Size(); + RTLib_Set_GC(); + + XSelectInput(dpy, window, + ExposureMask | ButtonPressMask | StructureNotifyMask ); + + XMapWindow(dpy, window); + + for (;;) + { + XNextEvent(dpy, &ev); + + switch(ev.type & 0x7f) /* See Note 13 */ + { + case Expose: + if (ev.xexpose.count == 0) + Yow_Center_String(STR); + break; + + case ButtonPress: + Yow_Button_Press(ev.xbutton); + break; + + case ConfigureNotify: + Yow_Set_Current_Size(ev.xconfigure); + + default: + break; + } + } +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + +1) RTLib_Process_Arguments processes command line arguments. These can +be used for specifying the display, the initial geometry, and various +resources. We use one character arguments. They are not standard, but +then again, there really is no standard here anyway. + +Eventually, command line parsing should be handled by the Xrm faciilties +(in particular XrmParseCommand), however, they are currently in the +process of being changed. + +Many users will wish to replace or adapt this function to handle +application-specific arguments. In any case, processing of +arguments should be done early in the program. + +------------------------------ + +2) RTLib_Error_Handler provides an error handler. Errors resulting from X +server requests are printed out in a standard format. + +------------------------------ + +3) RTLib_Set_Resource_Name_And_Class and RTLib_Set_Class_Hints set +WM_CLASS. WM_CLASS was added to Standard Properties somewhat late and is +not set by XSetStandardProperties. It consists of two fields: res_class, +and res_name. These are used both by the application and by the window +manager to obtain resources for the client. + +res_class should be set to the name of the application -- in this case, +"yow". + +res_name is used to more specifically identify an instance of the +application, to distinguish it from other running instances. The +distinction can be based either on the invocation or on the environment. + +By default, res_name should be set to the name by which the application +was invoked -- argv[0] in Unix systems. This should be overridden if the +RESOURCE_NAME environment variable is set (in Unix anyway). Finally, +this should be overridden if a specific command line argument (we use +"-r") is provided. + +The reader should be warned that there is no general consensus regarding +the setting of res_name. However, this model has evolved through +our interactions with a number of application writers, and seems to +satisfy everyone's needs. + +------------------------------ + +4) RTLib_Get_Resources shows how to get a variety of resources based on +WM_CLASS using the XGetDefault facilities. We would prefer using the Xrm +facilities, however, they are in the process of being changed. +XGetDefault requires that resources be obtained solely using res_name. +When the Xrm facilities become stable, resources should be able to be +obtained based both on res_name and res_class. + +Many users will wish to replace or adapt this function to handle +application-specific resources. In any case, obtaining resources +should be done early in the program -- as soon as the resource name is +set. + +------------------------------ + +5) RTLib_Parent_Window sets the parent window which may be specified, +either via a PARENT_DESKTOP environment variable, or via a -p command +line argument. If neither, the parent window is the root. The +application's window will be opened within the parent window. + +The use of a parent window is not standard. We are strongly urging that +clients use this model however. There WILL be window managers that wish +to operate within a window rather than taking over the entire screen. +Applications that do not check for a parent window will not be able to +work in such an environment. + +------------------------------ + +6) The yow-specific Yow_Set_Initial_Geometry sets the minimum window +size so that a specified string can always be shown. The default +initial desired window size is set 1.3 times larger than this, and the +default position for the window is the upper left hand corner. + +The application-independent RTLib_Set_Initial_Geometry is then called to +override the default if a geometry argument or resource has been +provided. +The desired size is used both in initially creating the window, and in +setting the size_hint structure, used to initialize WM_NORMAL_HINTS when +the window is later actually created. + +------------------------------ + +7) RTLib_Set_Host sets WM_CLIENT_MACHINE to be the host machine on which +the client is running. Window managers need to use this for a variety of +reasons. Some may optionally show arrange to show it in the window +header (See Note 8). Others may use it to distinguish between two +instances of an application that are running on different clients (where +res_name is not used to distinguish them) for the purposes of saving and +restoring layouts. + + ------------------------------ + +8) RTLib_Set_Name and RTLib_Set_Icon_Name automatically set WM_NAME and +WM_ICON_NAME if they are not provided either as arguments or from a +defaults file. We have found that many users like to see the name of the +host on which the application is runnning in the window and icon. Thus, +by default, we set WM_NAME to be + + res_name @ host (res_class) [if res_name != res_class] + res_name @ host [if res_name == res_class] + +and WM_ICON_NAME to be + + res_name @ host + +There is some disagreement about whether the host should be included +by the client or by the window manager. We believe that it would be +best for the window manager to determine which properties (e.g. WM_NAME, +WM_CLIENT_MACHINE, etc.) are displayed in windows and icons based on +defaults, and our window manager does this. +However, there are a number of window managers, such as wm, that do not +allow this possibility, and only show WM_NAME or WM_ICON_NAME. +For the time being, we feel we must recommend that clients include the +hosts in the names. However, the inclusion of the host name is +controlled by the constant INCLUDE_HOST_NAME. + +Also, if the window name has been provided as an argument or from a +defaults file, but the icon name has not been, there is no clear +model of how to set the icon name. If the constant +SET_ICON_FROM_WINDOW_NAME is 1, we set it to the provided window name. +If it is 0, we still set it to "res_name @ host" (or just "res_name"). + +------------------------------ + +9) RTLib sets the WM_CLASS property first. This is important because +many window managers use res_name and res_class to set default options +and values for the window. Properties that are set later may then +override these defaults, though a well-written window manager should be +able to handle properties set in any order. + +Note that RTLib does not set WM_ZOOM_HINTS. There is some controversy +over Zoom Hints, and it is likely that they will either be eliminated or +replaced in the near future. + +------------------------------ + +10) Clients generally may wish other information to appear in the window +title. RTLib_Extend_Name can be used to append a changing +application-specified string to WM_NAME. Yow_Extend_Current_Size +optionally (based on the constant SHOW_SIZE) uses this function to append +the window's current size to WM_NAME and update it when the size changes. + +------------------------------ + +11) RTLib_User_Resize is used when the client wants to resize its window. +REsizing is accomplished by both calling XResizeWindow and resetting +WM_NORMAL_HINTS. This is a simplification of a more complex protocol +that has been proposed by DEC. That protocol would be used when an +application needs to redraw itself even if its new size request cannot be +met at all. + +------------------------------ + +12) Yow_Button_Press highlights an important issue that users should be +aware of -- the difference between a window's desired size, and its +current size. When a client requests that a window's size be changed +(as in RTLib_User_Resize) to a new desired size, the window manager may +intercept the request and, because of layout constraints, grow the window +to some smaller size, or not even change it at all. Thus the window's +current size may be different than its desired size. + +If the user presses button1 (with shift depressed), the window size will +grow by 10%. If button2 is pressed instead, the window size is shrunk by +10%. By default, the basis for shrinking is the current size. By +setting the constant DESIRED_BASED to 1, the basis for shrinking is the +current desired size. On window managers that do not constrain layout, +there should be no difference, since the current and desired size are the +same. On the Siemens RTL Tiled Window Manager, which will be available +shortly, the difference is quite dramatic. + +Pressing button3 (with shift depressed) unmaps the window. This is a +good test of window manager capabilities. A window manager should open +a default icon when the window is unmapped. + +------------------------------ + +13) In main, after obtaining the next event ev, the high order bit +in ev.type is masked out. This bit is turned on by the X protocol +when the event was caused by a client XSendEvent rather than by +the server directly. If the bit is not turned off, the case statement +based on ev.type will not work correctly. + +XSendEvent is used in a number of ways. Clients that wish to execute +scripts to play back canned demos can cause events this way. + +In addition, window managers may use XSendEvent. For example, when a +window manager reparents a window and then moves it, the client does not +receive a ConfigureNotify event. A pending proposal suggests that all +window managers send a synthetic ConfigureNotify (using XSendEvent) in +this case. + +The Siemens RTL Tiled Window Manager uses XSendEvent in a different way +-- it (optionally) uses XSendEvent to send key and button presses typed +while the cursor is in the window header on to the client (acting as if +the cursor were in the client's window). + +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ diff --git a/extras/yow2.c b/extras/yow2.c new file mode 100644 index 0000000..2213357 --- /dev/null +++ b/extras/yow2.c @@ -0,0 +1,1191 @@ +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + + Yow: A Zippy Example X11 Application + ------------------------------------ + + Mark Biggers + biggers%siemens.com@princeton.edu + (609) 734-3325 + + Ellis Cohen + Ellis.Cohen@a.gp.cs.cmu.edu + (609) 734-6524 + + Siemens RTL Tiled Window Project + 105 College Rd East + Princeton NJ 08540 + + 15 Dec 1987 + +Though the X11 protocol is now stable, the interaction between +application programs and window managers is still evolving. +While there are still some disagreements about these interactions, +we think that application writers will benefit from an example +program that reflects the current state. Where there are +disagreements about usage, we will try to indicate what they +are. + +The application, "Yow", was originally built to exercise our own +window manager. It has evolved based on input from a variety of +individuals who are building real applications to better fit their +needs. + +Yow is quite a bit longer and more complex than Dave Rosenthal's very +helpful "Hello World" program for a number of reasons. First, it is +divided into a number of functions, each of which is a chunk that can +easily be reused or adapted. Also, there are a number of specific +additional features provided and issues addressed. These are discussed +in the notes that follow the code. + +Yow is divided into two parts. The first part is application +independent, and contains functions taken from a library (RTLib) we +have developed locally. Applications share a variety of global variables +with the RTLib functions. The RTLib functions generally DO need to be +called in the order they are invoked by Yow. + +The first half of the program could be copied and either included +directly in an application or placed in a separate file. +Many users will additionally want to adapt RTLib_Process_Arguments and +RTLib_Get_Resources to their own needs. + +Only the second and shorter half of the program is specific to the Yow +application. + +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +/* ************************************************************ + * Yow is a simple zippy application that provides an example of how + * to use X11 to draw in a window and interact with a window manager. + * Yow centers a string in a window, and responds to button presses + * by enlarging or shrinking the window + * ************************************************************ + */ + +/* Copyright (c) 1987 Siemens Corporate Research and Support, Inc., + * Princeton, NJ. + * + * Permission to use, copy, modify, and distribute this software and + * its documentation for any purpose and without fee is hereby + * granted, provided that the above copyright notice appear in all + * copies and that both that copyright notice and this permission + * notice appear in supporting documentation, and that the name of + * Siemens not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior + * permission. Siemens makes no representations about the + * suitability of this software for any purpose. It is provided "as + * is" without express or implied warranty. + */ +#ifndef lint +static char sccs_id[] = "@(#)yow.c 1.7 4/12/88 Copyright (c) 1987, Siemens Corporate Research and Support, Inc."; +#endif + +#include +#include +#include +#include +#include +#include +#include + +extern char *malloc(), *getenv(); +extern Window XCreateSimpleWindow(); + +#define IS_NULL(s) ((s) == (char *) 0) + +/* ------------------------------------------------------------ */ + +#define DEFAULT_BORDER_WIDTH 2 + +/* ------------------------------------------------------------ */ + +#define INCLUDE_HOST_NAME 1 /* See Note 8 */ +#define SET_ICON_FROM_WINDOW_NAME 1 /* See Note 8 */ + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + + /* X structures SHARED WITH APPLICATION */ + +Display *dpy; /* The display used */ +int screen; /* The screen on the display */ +Window parent_window; /* The window in which to open the client window */ +Window window; /* The client window */ +XFontStruct *fontp; /* The font used for drawing */ +GC gc; /* The graphics context used for drawing */ + + /* desired & min geometry SHARED WITH APPLICATION */ + +unsigned int min_width, min_height; +unsigned int desired_width, desired_height; +int desired_x, desired_y; + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + + /* static string & hint storage */ + +static unsigned char host_str[100]; +static char window_name_str[100]; +static XSizeHints size_hint; +static char *resource_class; + +/* ------------------------------------------------------------ */ + + /* possible command line args */ + +static char *display = (char *) NULL; +static char *resource_name = (char *) NULL; +static char *window_name = (char *) NULL; +static char *icon_name = (char *) NULL; +static char *foreground_color = (char *) NULL; +static char *background_color = (char *) NULL; +static char *border_color = (char *) NULL; +static char *border_width = (char *) NULL; +static char *font = (char *) NULL; +static char *parent = (char *) NULL; +static char *geometry = (char *) NULL; + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + + /* Process the command line. Optional arguents are + * -r + * -w + * -i + * -c + * -b + * -e + * -s + * -p + * -f + * -g + * -d + * + * See Note 1 + */ + +void RTLib_Process_Arguments(argc, argv) + int argc; + char *argv[]; +{ + extern char *optarg; + extern int optind, opterr; + int c; + Bool errflg = False; + + while ((c = getopt(argc, argv, "r:w:i:c:b:e:s:p:f:g:d:")) != EOF) + { + switch (c) + { + case 'r': + resource_name = optarg; + break; + + case 'w': + window_name = optarg; + break; + + case 'i': + icon_name = optarg; + break; + + case 'c': + foreground_color = optarg; + break; + + case 'b': + background_color = optarg; + break; + + case 'e': + border_color = optarg; + break; + + case 's': + border_width = optarg; + break; + + case 'p': + parent = optarg; + break; + + case 'f': + font = optarg; + break; + + case 'g': + geometry = optarg; + break; + + case 'd': + display = optarg; + break; + + case '?': + errflg = True; + break; + } + } + + if (errflg) + { + fprintf(stderr, "usage: %s", argv[0]); + fprintf(stderr, "\n -r -w -i "); + fprintf(stderr, "\n -c -b -e "); + fprintf(stderr, "\n -s -p -f "); + fprintf(stderr, "\n -g -d \n"); + exit(-1); + } +} + +/* ------------------------------------------------------------ */ + + /* Open a connection to the X server + * A argument on the command line + * (as saved in "display") indicates which screen on + * which display controlled by the server should be used. + * If there was no such argument, display will be NULL, and + * XOpenDisplay will use the contents of the DISPLAY + * environment variable to indicate the display and sceen. + */ + +void RTLib_Open_Display() +{ + if (!(dpy = XOpenDisplay(display))) + { + fprintf(stderr, "Failed to open display %s...\n", display); + exit(1); + } + + screen = DefaultScreen(dpy); +} + +/* ------------------------------------------------------------ */ + + /* Error_Handler hooked into Xlib. See Note 2 */ + +int RTLib_Error_Handler(dpy, error) + Display *dpy; + XErrorEvent *error; +{ + char buffer[BUFSIZ]; + + XGetErrorText(dpy, error->error_code, buffer, (int) BUFSIZ); + + fprintf(stderr, "X Error <%s>\n", buffer); + fprintf(stderr, " Request Major code: %d\n", error->request_code); + fprintf(stderr, " Request Minor code: %d\n", error->minor_code); + fprintf(stderr, " ResourceId 0x%x\n", error->resourceid); + fprintf(stderr, " Error Serial #%d\n", error->serial); + fprintf(stderr, " Current Serial #%d\n", dpy->request); + + return 0; +} + +/* ------------------------------------------------------------ */ + + /* Determines whether the window "w" exists on "dpy" */ + +Bool RTLib_Window_Exists( w ) + Window w; +{ + XWindowAttributes xwa; + + return XGetWindowAttributes(dpy, w, &xwa); +} + +/* ------------------------------------------------------------ */ + + /* A window's resource_class is the name of the application + * + * A window's resource_name is used to distinguish two instances + * of the same application. It is taken from the first of the + * following that applies: + * a -r command line argument + * The RESOURCE_NAME environment variable + * argv[0] + * + * See Note 3 + */ + +void RTLib_Set_Resource_Name_And_Class(class,argv) + char *class; + char *argv[]; +{ + extern char *rindex(); + char *nam; + + resource_class = class; + + if (IS_NULL(resource_name)) + { + resource_name = getenv("RESOURCE_NAME"); + + if (IS_NULL(resource_name) ) + { + if ( (nam = rindex(argv[0], '/')) != (char *) NULL ) + { + resource_name = nam + 1; + } + else + { + resource_name = argv[0]; + } + } + } +} + +/* ------------------------------------------------------------ */ + + /* Use resource_name to get resources from .Xdefaults file + * Get any resource not already set by a command-line + * argument. + * + * See Note 4 + */ + +void RTLib_Get_Resources() +{ + if (IS_NULL(window_name)) + window_name = XGetDefault(dpy, resource_name, "Name"); + + if (IS_NULL(icon_name)) + icon_name = XGetDefault(dpy, resource_name, "IconName"); + + if (IS_NULL(foreground_color)) + foreground_color = XGetDefault(dpy, resource_name, "Foreground"); + + if (IS_NULL(background_color)) + background_color = XGetDefault(dpy, resource_name, "Background"); + + if (IS_NULL(border_color)) + border_color = XGetDefault(dpy, resource_name, "Border"); + + if (IS_NULL(border_width)) + border_width = XGetDefault(dpy, resource_name, "BorderWidth"); + + if (IS_NULL(font)) + font = XGetDefault(dpy, resource_name, "BodyFont"); + + if (IS_NULL(geometry)) + geometry = XGetDefault(dpy, resource_name, "Geometry"); +} + +/* ------------------------------------------------------------ */ + + /* Load the font */ + +void RTLib_Load_Font( default_font ) + char *default_font; +{ + if ( IS_NULL(font) ) + font = default_font; + + if ( (fontp = XLoadQueryFont(dpy, font)) == (XFontStruct *) NULL ) + { + fprintf(stderr, "Cannot load font %s, exiting!\n", font); + exit(-2); + } +} + +/* ------------------------------------------------------------ */ + + /* Determine the parent window specified either via the + * "-p" command line argument, or via the PARENT_DESKTOP + * environment variable. + * If neither, or if the parent specified is not a window, + * the parent is the root window + * + * See Note 5 + */ + +void RTLib_Parent_Window() +{ + if (IS_NULL(parent)) + { + parent = getenv("PARENT_DESKTOP"); + } + + if (IS_NULL(parent)) + { + parent_window = RootWindow(dpy, screen); + } + else + { + parent_window = atoi(parent); + if ( ! RTLib_Window_Exists( parent_window ) ) + parent_window = RootWindow(dpy, screen); + } +} + +/* ------------------------------------------------------------ */ + + /* Returns the parent window's width and height */ + +void RTLib_Parent_Size( pwidth, pheight ) + int *pwidth; + int *pheight; +{ + XWindowAttributes xwa; + + XGetWindowAttributes( dpy, parent_window, &xwa ); + + *pwidth = xwa.width; + *pheight = xwa.height; +} + +/* ------------------------------------------------------------ */ + + /* Called after the application has set the minimum size + * and default initial size and position of the window + * + * If a geometry argument has been provided, then it determines + * the user-specified initial size and/or position + * If no geometry argument has been provided, then + * leave the defaults set by the application alone. + * + * Set the size_hint structure appropriately + * + * See Note 6 + */ + +void RTLib_Set_Initial_Geometry() +{ + int result; + + size_hint.flags = PMinSize; /* minimum size set */ + size_hint.min_width = min_width; + size_hint.min_height = min_height; + + if (IS_NULL(geometry)) + { + size_hint.flags |= PSize; /* size set by program */ + } + else + { + result = XParseGeometry(geometry, + &desired_x, &desired_y, + &desired_width, &desired_height); + + if (desired_width < min_width) + desired_width = min_width; + + if (desired_height < min_height) + desired_height = min_height; + + + if ( (result & (WidthValue | HeightValue)) != 0 ) + size_hint.flags |= USSize; /* size set by user */ + else + size_hint.flags |= PSize; /* size set by program */ + + + if ( (result & (XValue | YValue)) != 0 ) + size_hint.flags |= USPosition; /* position set by user */ + + if ( (result & ( XNegative | YNegative )) != 0 ) + { + /* Set position relative to right or bottom edge + * of parent window if x or y was negative + */ + + int parent_width, parent_height; + RTLib_Parent_Size( &parent_width, &parent_height ); + if ( (result & XNegative ) != 0 ) + desired_x += parent_width - desired_width + 1; + if ( (result & YNegative ) != 0 ) + desired_y += parent_height - desired_height + 1; + } + } + + size_hint.width = desired_width; + size_hint.height = desired_height; + + size_hint.x = desired_x; + size_hint.y = desired_y; +} + +/* ------------------------------------------------------------ */ + + /* Returns pixel corresponding to "color", + * or if that fails, "default_color" + */ + +unsigned long RTLib_Get_Color( color, default_color ) + char *color; + unsigned long default_color; +{ + XColor xcolor; + + if (! IS_NULL(color) && + XParseColor(dpy, DefaultColormap(dpy, screen), + color, &xcolor) && + XAllocColor(dpy, DefaultColormap(dpy, screen), &xcolor)) + { + return xcolor.pixel; + } + else + return default_color; +} + +/* ------------------------------------------------------------ */ + + /* Create the window that the application will use + * as a subwindow of that parent window. + */ + +void RTLib_Create_Window() +{ + unsigned long border, background; + unsigned int border_width_val; + + border = RTLib_Get_Color( border_color, + BlackPixel(dpy, screen) ); + background = RTLib_Get_Color( background_color, + WhitePixel(dpy, screen) ); + + if ( IS_NULL(border_width) ) + border_width_val = DEFAULT_BORDER_WIDTH; + else + border_width_val = atoi(border_width); + + window = XCreateSimpleWindow(dpy, parent_window, + desired_x, desired_y, + desired_width, desired_height, + border_width_val, + border, + background); +} + +/* ------------------------------------------------------------ */ + + /* Determine the host on which the application is running + * and use it to set the WM_CLIENT_MACHINE property. + * + * See Note 7 + */ + +void RTLib_Set_Host() +{ + gethostname(host_str, 100); + host_str[99] = '\0'; + + XChangeProperty(dpy, window, XA_WM_CLIENT_MACHINE, XA_STRING, 8, + PropModeReplace, host_str, strlen(host_str)); +} + +/* ------------------------------------------------------------ */ + + /* Set WM_CLASS_HINTS from the resource_name and resource_class + * + * See Note 3 + */ + +void RTLib_Set_Class_Hints() +{ + XClassHint class_hint; + + class_hint.res_name = resource_name; + class_hint.res_class = resource_class; + + XSetClassHint(dpy, window, &class_hint); +} + +/* ------------------------------------------------------------ */ + + /* If WM_NAME was not set via the "-w" command line argument + * or obtained as a resource, set it automatically as + * resource_name @ host (resource_class) + * Eliminate the (resource_class) if the same as the resource_name + * Eliminate the host if INCLUDE_HOST_NAME is false + * + * See Note 8 + */ + +void RTLib_Set_Name() +{ + if (SET_ICON_FROM_WINDOW_NAME && IS_NULL(icon_name)) + icon_name = window_name; + + if (IS_NULL(window_name)) + { + window_name = window_name_str; + + if ( INCLUDE_HOST_NAME ) + { + if ( strcmp(resource_class, resource_name) == 0 ) + sprintf(window_name, "%s @ %s", + resource_name, + host_str); + else + sprintf(window_name, "%s @ %s (%s)", + resource_name, + host_str, + resource_class); + } + else + { + if ( strcmp(resource_class, resource_name) == 0 ) + strcpy( window_name, resource_name ); + else + sprintf(window_name, "%s (%s)", + resource_name, + resource_class); + } + } + + XStoreName(dpy, window, window_name); +} + +/* ------------------------------------------------------------ */ + + /* Extend WM_NAME to append "str" to the basic WM_NAME set above + * + * See Note 10 + */ + +void RTLib_Extend_Name( str ) + char *str; +{ + char extend_name[100]; + + strcpy( extend_name, window_name ); + strcat( extend_name, str ); + XStoreName(dpy, window, extend_name); +} + +/* ------------------------------------------------------------ */ + + /* If WM_ICON_NAME was not set via the "-i" command line argument + * or obtained as a resource, or set from the window name + * set it automatically as + * resource_name @ host + * Eliminate the host if INCLUDE_HOST_NAME is false + * + * See Note 8 + */ + +void RTLib_Set_Icon_Name() +{ + char icon_name_str[100]; + + if (IS_NULL(icon_name)) + { + icon_name = icon_name_str; + + if ( INCLUDE_HOST_NAME ) + sprintf(icon_name, "%s @ %s", + resource_name, + host_str); + else + strcpy( icon_name, resource_name ); + } + + XSetIconName(dpy, window, icon_name); +} + +/* ------------------------------------------------------------ */ + + /* Set WM_HINTS to indicate that the client does not take + * responsibility for the input focus (but leaves it to the wm), + * and that when the window is initially mapped, it should be opened + * (rather than iconized). + * This application does not bother to provide its own icon, + * but leaves it to the wm to provide a default one. + */ + +void RTLib_Set_WM_Hints() +{ + XWMHints wmhints; + + wmhints.flags = InputHint | StateHint; + + wmhints.input = True; + wmhints.initial_state = NormalState; + + XSetWMHints(dpy, window, &wmhints); +} + +/* ------------------------------------------------------------ */ + + /* Set the various window properties + * + * See Note 9 + */ + +void RTLib_Set_Properties( argv, argc ) + char *argv[]; + int argc; +{ + RTLib_Set_Class_Hints(); + RTLib_Set_Host(); + XSetCommand(dpy, window, argv, argc); + RTLib_Set_Name(); + RTLib_Set_Icon_Name(); + XSetNormalHints(dpy, window, &size_hint); + RTLib_Set_WM_Hints(); +} + +/* ------------------------------------------------------------ */ + + /* Set the graphics context used for drawing in the window */ + +void RTLib_Set_GC() +{ + unsigned long gcMask; + XGCValues gcv; + + gcMask = GCForeground | GCFunction | GCFont; + gcv.font = fontp->fid; + gcv.function = GXcopy; + gcv.foreground = RTLib_Get_Color( foreground_color, + BlackPixel(dpy, screen) ); + + gc = XCreateGC(dpy, RootWindow(dpy, screen), + gcMask, &gcv); +} + +/* ------------------------------------------------------------ */ + + /* Called after the client has changed the desired window size + * based on the user's action + * Check that the desired size is not less than the minimum. + * First, request that the window is explicitly resized. + * Then, update the size_hint and WM_NORMAL_HINTS to reflect + * the change + * + * See Note 11 + */ + +void RTLib_User_Resize() +{ + if ( desired_width < min_width ) + desired_width = min_width; + + if ( desired_height < min_height ) + desired_height = min_height; + + XResizeWindow(dpy, window, desired_width, desired_height); + + size_hint.flags &= ~PSize; /*in case PSize was initially specified */ + size_hint.flags |= USSize; + + size_hint.width = desired_width; + size_hint.height = desired_height; + + XSetNormalHints(dpy, window, &size_hint); +} + +/* ------------------------------------------------------------ */ + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + * $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + * + * Everything above here is application independent + * + * The code below is Yow-specifc + * + * $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + * $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +/* ------------------------------------------------------------ */ + +#define CLASS "yow" /* class of this program */ + +#define STR "Smile if You Tile!" /* string to display */ + +#define DEFAULT_FONT "vg-25" + +#define SHOW_SIZE 1 /* See Note 10 */ +#define DESIRE_BASED 0 /* See Note 12 */ + +/* ------------------------------------------------------------ */ + +unsigned int cur_width, cur_height; /* current window size */ + +/* ------------------------------------------------------------ */ + + /* Update WM_NAME to display current height and width + * if SHOW_SIZE is set. See Note 10. + */ + +void Yow_Extend_Current_Size() +{ + char sizstr[20]; + + if ( SHOW_SIZE ) + { + sprintf( sizstr, " < %d, %d >", cur_width, cur_height ); + RTLib_Extend_Name( sizstr ); + } +} + +/* ------------------------------------------------------------ */ + + /* Set the current window width and height + * based on information from the ConfigureNotify event + * Update WM_NAME to display current height and width + */ + +void Yow_Set_Current_Size(xconfigure) + XConfigureEvent xconfigure; +{ + cur_width = xconfigure.width; + cur_height = xconfigure.height; + Yow_Extend_Current_Size(); +} + +/* ------------------------------------------------------------ */ + + /* Set the minimum window size so that "str" can be completely + * shown in the font. + * default initial size to 1.3 * the minimum size, + * and the default initial position is (0,0) + * Initialize cur_width and cur_height from the desired counterparts + * after they have been adjusted by RTLib + * + * See Note 6 + */ + +void Yow_Set_Initial_Geometry( str ) + char *str; +{ + min_width = 4 + XTextWidth(fontp, str, strlen(str)); + min_height = 4 + fontp->max_bounds.ascent + fontp->max_bounds.descent; + + desired_width = 1.3 * min_width; + desired_height = 1.3 * min_height; + desired_x = 0; + desired_y = 0; + + RTLib_Set_Initial_Geometry(); + + cur_width = desired_width; + cur_height = desired_height; +} + +/* ------------------------------------------------------------ */ + + /* Shift Button 1 increases the desired window size by 10% + * Shift Button 2 decreases the desired window size by 10% + * Shift Button 3 means unmap the window + * Ctrl Shift any button means exit + * + * If DESIRE_BASED + * then increase or decrease based on the desired size + * else base it on the current window size + * + * See Note 12 + */ + +void Yow_Button_Press(xbutton) + XButtonEvent xbutton; +{ + if ( !(xbutton.state & ShiftMask) ) + return; + + if (xbutton.state & ControlMask) + exit(0); + + if (xbutton.button == Button3) /* unmap */ + { + XUnmapWindow( dpy, window ); + return; + } + + if (! DESIRE_BASED) + { + desired_height = cur_height; + desired_width = cur_width; + } + + if (xbutton.button == Button1) /* increase size */ + { + desired_height = desired_height * 1.1; + desired_width = desired_width * 1.1; + } + else if (xbutton.button == Button2) /* decrease size */ + { + desired_height = desired_height / 1.1; + desired_width = desired_width / 1.1; + } + + RTLib_User_Resize(); +} + +/* ------------------------------------------------------------ */ + + /* Draw a string "str", centered in the window */ + +void Yow_Center_String(str) + char *str; +{ + int xc, yc; + + xc = (cur_width - XTextWidth(fontp, str, strlen(str))) / 2; + yc = (cur_height + + fontp->max_bounds.ascent - fontp->max_bounds.descent) / 2; + + XClearWindow(dpy, window); + XDrawString(dpy, window, gc, xc, yc, str, strlen(str)); +} + +/* ------------------------------------------------------------ */ + +main(argc, argv) + int argc; + char *argv[]; +{ + XEvent ev; + + RTLib_Process_Arguments(argc, argv); + + RTLib_Open_Display(); + XSetErrorHandler(RTLib_Error_Handler); + + RTLib_Set_Resource_Name_And_Class(CLASS,argv); + RTLib_Get_Resources(); + RTLib_Parent_Window(); + RTLib_Load_Font( DEFAULT_FONT ); + Yow_Set_Initial_Geometry( STR ); + + RTLib_Create_Window(); + RTLib_Set_Properties(argv, argc); + Yow_Extend_Current_Size(); + RTLib_Set_GC(); + + XSelectInput(dpy, window, + ExposureMask | ButtonPressMask | StructureNotifyMask | KeyPressMask ); + + XMapWindow(dpy, window); + + for (;;) + { + XNextEvent(dpy, &ev); + + switch(ev.type & 0x7f) /* See Note 13 */ + { + case Expose: + if (ev.xexpose.count == 0) + Yow_Center_String(STR); + break; + + case ButtonPress: + Yow_Button_Press(ev.xbutton); + break; + + case ConfigureNotify: + Yow_Set_Current_Size(ev.xconfigure); + break; + + case KeyPress: + printf("Yow! %u\n",ev.xkey.keycode); + break; + + default: + break; + } + } +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ + +1) RTLib_Process_Arguments processes command line arguments. These can +be used for specifying the display, the initial geometry, and various +resources. We use one character arguments. They are not standard, but +then again, there really is no standard here anyway. + +Eventually, command line parsing should be handled by the Xrm faciilties +(in particular XrmParseCommand), however, they are currently in the +process of being changed. + +Many users will wish to replace or adapt this function to handle +application-specific arguments. In any case, processing of +arguments should be done early in the program. + +------------------------------ + +2) RTLib_Error_Handler provides an error handler. Errors resulting from X +server requests are printed out in a standard format. + +------------------------------ + +3) RTLib_Set_Resource_Name_And_Class and RTLib_Set_Class_Hints set +WM_CLASS. WM_CLASS was added to Standard Properties somewhat late and is +not set by XSetStandardProperties. It consists of two fields: res_class, +and res_name. These are used both by the application and by the window +manager to obtain resources for the client. + +res_class should be set to the name of the application -- in this case, +"yow". + +res_name is used to more specifically identify an instance of the +application, to distinguish it from other running instances. The +distinction can be based either on the invocation or on the environment. + +By default, res_name should be set to the name by which the application +was invoked -- argv[0] in Unix systems. This should be overridden if the +RESOURCE_NAME environment variable is set (in Unix anyway). Finally, +this should be overridden if a specific command line argument (we use +"-r") is provided. + +The reader should be warned that there is no general consensus regarding +the setting of res_name. However, this model has evolved through +our interactions with a number of application writers, and seems to +satisfy everyone's needs. + +------------------------------ + +4) RTLib_Get_Resources shows how to get a variety of resources based on +WM_CLASS using the XGetDefault facilities. We would prefer using the Xrm +facilities, however, they are in the process of being changed. +XGetDefault requires that resources be obtained solely using res_name. +When the Xrm facilities become stable, resources should be able to be +obtained based both on res_name and res_class. + +Many users will wish to replace or adapt this function to handle +application-specific resources. In any case, obtaining resources +should be done early in the program -- as soon as the resource name is +set. + +------------------------------ + +5) RTLib_Parent_Window sets the parent window which may be specified, +either via a PARENT_DESKTOP environment variable, or via a -p command +line argument. If neither, the parent window is the root. The +application's window will be opened within the parent window. + +The use of a parent window is not standard. We are strongly urging that +clients use this model however. There WILL be window managers that wish +to operate within a window rather than taking over the entire screen. +Applications that do not check for a parent window will not be able to +work in such an environment. + +------------------------------ + +6) The yow-specific Yow_Set_Initial_Geometry sets the minimum window +size so that a specified string can always be shown. The default +initial desired window size is set 1.3 times larger than this, and the +default position for the window is the upper left hand corner. + +The application-independent RTLib_Set_Initial_Geometry is then called to +override the default if a geometry argument or resource has been +provided. +The desired size is used both in initially creating the window, and in +setting the size_hint structure, used to initialize WM_NORMAL_HINTS when +the window is later actually created. + +------------------------------ + +7) RTLib_Set_Host sets WM_CLIENT_MACHINE to be the host machine on which +the client is running. Window managers need to use this for a variety of +reasons. Some may optionally show arrange to show it in the window +header (See Note 8). Others may use it to distinguish between two +instances of an application that are running on different clients (where +res_name is not used to distinguish them) for the purposes of saving and +restoring layouts. + + ------------------------------ + +8) RTLib_Set_Name and RTLib_Set_Icon_Name automatically set WM_NAME and +WM_ICON_NAME if they are not provided either as arguments or from a +defaults file. We have found that many users like to see the name of the +host on which the application is runnning in the window and icon. Thus, +by default, we set WM_NAME to be + + res_name @ host (res_class) [if res_name != res_class] + res_name @ host [if res_name == res_class] + +and WM_ICON_NAME to be + + res_name @ host + +There is some disagreement about whether the host should be included +by the client or by the window manager. We believe that it would be +best for the window manager to determine which properties (e.g. WM_NAME, +WM_CLIENT_MACHINE, etc.) are displayed in windows and icons based on +defaults, and our window manager does this. +However, there are a number of window managers, such as wm, that do not +allow this possibility, and only show WM_NAME or WM_ICON_NAME. +For the time being, we feel we must recommend that clients include the +hosts in the names. However, the inclusion of the host name is +controlled by the constant INCLUDE_HOST_NAME. + +Also, if the window name has been provided as an argument or from a +defaults file, but the icon name has not been, there is no clear +model of how to set the icon name. If the constant +SET_ICON_FROM_WINDOW_NAME is 1, we set it to the provided window name. +If it is 0, we still set it to "res_name @ host" (or just "res_name"). + +------------------------------ + +9) RTLib sets the WM_CLASS property first. This is important because +many window managers use res_name and res_class to set default options +and values for the window. Properties that are set later may then +override these defaults, though a well-written window manager should be +able to handle properties set in any order. + +Note that RTLib does not set WM_ZOOM_HINTS. There is some controversy +over Zoom Hints, and it is likely that they will either be eliminated or +replaced in the near future. + +------------------------------ + +10) Clients generally may wish other information to appear in the window +title. RTLib_Extend_Name can be used to append a changing +application-specified string to WM_NAME. Yow_Extend_Current_Size +optionally (based on the constant SHOW_SIZE) uses this function to append +the window's current size to WM_NAME and update it when the size changes. + +------------------------------ + +11) RTLib_User_Resize is used when the client wants to resize its window. +REsizing is accomplished by both calling XResizeWindow and resetting +WM_NORMAL_HINTS. This is a simplification of a more complex protocol +that has been proposed by DEC. That protocol would be used when an +application needs to redraw itself even if its new size request cannot be +met at all. + +------------------------------ + +12) Yow_Button_Press highlights an important issue that users should be +aware of -- the difference between a window's desired size, and its +current size. When a client requests that a window's size be changed +(as in RTLib_User_Resize) to a new desired size, the window manager may +intercept the request and, because of layout constraints, grow the window +to some smaller size, or not even change it at all. Thus the window's +current size may be different than its desired size. + +If the user presses button1 (with shift depressed), the window size will +grow by 10%. If button2 is pressed instead, the window size is shrunk by +10%. By default, the basis for shrinking is the current size. By +setting the constant DESIRED_BASED to 1, the basis for shrinking is the +current desired size. On window managers that do not constrain layout, +there should be no difference, since the current and desired size are the +same. On the Siemens RTL Tiled Window Manager, which will be available +shortly, the difference is quite dramatic. + +Pressing button3 (with shift depressed) unmaps the window. This is a +good test of window manager capabilities. A window manager should open +a default icon when the window is unmapped. + +------------------------------ + +13) In main, after obtaining the next event ev, the high order bit +in ev.type is masked out. This bit is turned on by the X protocol +when the event was caused by a client XSendEvent rather than by +the server directly. If the bit is not turned off, the case statement +based on ev.type will not work correctly. + +XSendEvent is used in a number of ways. Clients that wish to execute +scripts to play back canned demos can cause events this way. + +In addition, window managers may use XSendEvent. For example, when a +window manager reparents a window and then moves it, the client does not +receive a ConfigureNotify event. A pending proposal suggests that all +window managers send a synthetic ConfigureNotify (using XSendEvent) in +this case. + +The Siemens RTL Tiled Window Manager uses XSendEvent in a different way +-- it (optionally) uses XSendEvent to send key and button presses typed +while the cursor is in the window header on to the client (acting as if +the cursor were in the client's window). + +$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ diff --git a/fieldP.h b/fieldP.h new file mode 100644 index 0000000..8c7b6c1 --- /dev/null +++ b/fieldP.h @@ -0,0 +1,79 @@ +/* +static char sccs_id[] = "@(#)fieldP.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +#ifndef FIELD +#define FIELD +#endif + +#define unshifted(i,fld) ( (i) >> (fld) ) + /* returns i shifted right fld spaces */ + +#define shifted(i,fld) ( (i) << (fld) ) + /* returns i shifted left fld spaces */ + +/* ----------------------------------------------------------------- */ + +#define lowmask(wid) ( (1 << wid) - 1 ) + /* returns a mask of the rightmost wid bits */ + +#define mask(fld,wid) shifted( lowmask(wid), fld ) + /* returns a mask of width wid at field fld */ + +#define onemask(fld) shifted( 1, fld ) + /* returns a mask with a bit in fld */ + +/* ----------------------------------------------------------------- */ + +#define lowmasked(i,wid) ( i & lowmask(wid) ) + /* returns the bottom wid bits of i */ + +#define masked(i,fld,wid) ( i & mask(fld,wid) ) + /* returns i masked by the wid bits at field fld */ + +#define onemasked(i,fld) ( i & onemask(fld) ) + /* returns i masked by bit at fld */ + +/* ----------------------------------------------------------------- */ + +#define extract(i,fld,wid) ( unshifted(i,fld) & lowmask(wid) ) + /* returns the wid bits of i at filed fld */ + +#define intract(i,fld,wid) shifted( lowmasked(i,wid), fld ) + /* returns i placed in field fld with width wid */ + +/* ----------------------------------------------------------------- */ + +#define is_set(i,fld) onemasked(i,fld) + /* returns non-zero if bit fld is set */ + +#define any_set(i,fld,wid) masked(i,fld,wid) + /* returns non-zero if any bit in fld,wid is set */ + +#define all_set(i,fld,wid) ( masked(i,fld,wid) == mask(fld,wid) ) + /* returns true if all bits in fld,wid is set */ + diff --git a/frame.c b/frame.c new file mode 100644 index 0000000..9f1fcc6 --- /dev/null +++ b/frame.c @@ -0,0 +1,32 @@ +#ifndef lint +static char sccs_id[] = "%W% %H%"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +void +frame_nil() +{ +} diff --git a/goal.c b/goal.c new file mode 100644 index 0000000..5ffa641 --- /dev/null +++ b/goal.c @@ -0,0 +1,51 @@ +#ifndef lint +static char sccs_id[] = "@(#)goal.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" +#include "twinD.h" + +float +Goal (winp, current_size, new_size) + Tilwin *winp; + Size current_size, + new_size; +{ + float value = 0.0; + +#ifdef lint + winp = winp; +#endif + + if (Get_Width(current_size) != Get_Width(new_size)) + value = (float) (Get_Width(new_size) - Get_Width(current_size)) / (float) Get_Width(current_size); + else + value = (float)(Get_Height(new_size) - Get_Height(current_size)) / (float)Get_Height(current_size); + + return(value); +} + diff --git a/goal.h b/goal.h new file mode 100644 index 0000000..7bdb27c --- /dev/null +++ b/goal.h @@ -0,0 +1,31 @@ +/* +static char sccs_id[] = "@(#)goal.h 5.3 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +extern float Goal(); + /* winp, desired_siz, avail_siz */ + diff --git a/goalP.h b/goalP.h new file mode 100644 index 0000000..44a673b --- /dev/null +++ b/goalP.h @@ -0,0 +1,31 @@ +/* +static char sccs_id[] = "@(#)goalP.h 5.1 8/30/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +extern float Goal(); + /* winp, desired_siz, avail_siz */ + diff --git a/gravity.c b/gravity.c new file mode 100644 index 0000000..0195ef6 --- /dev/null +++ b/gravity.c @@ -0,0 +1,333 @@ +#ifndef lint +static char sccs_id[] = "@(#)gravity.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#include +#include "copyright.h" + +/* Align edges of Resized or newly Opened Window + * with "nearby" edges of other Windows - "Gravity" + */ +#include "basetype.h" +#include "twinD.h" +#include "twin.h" + +typedef struct an_edge Edge; +struct an_edge +{ + Basetype edge_coord; /* axis coordinate of edge(s) */ + int ref_count; /* number of edges with this coord */ + Edge *next_edge; +}; + +#define min(a, b) ( ((a) < (b)) ? (a) : (b) ) + +static Edge x_edge_list, /* sentinels for edge lists */ + y_edge_list; + + +/* Gravity initialization + */ +void +Gravity_Init() +{ + x_edge_list.next_edge = (Edge *) NULL; + y_edge_list.next_edge = (Edge *) NULL; +} + + +/* Insert an edge into an edge_list in non-decreasing order + * of coordinate value. Increment the reference count for + * that edge (more than one edge may exist at a given coordinate). + * THIS FUNCTION MUST BE THE FIRST LIST FUNCTION CALLED! + */ +void +Gravity_Insert_Edge(edge_coord, side) + Basetype edge_coord; + Side side; +{ + Edge *prev_edge, *p_edge, *tmp_edge; + + switch (side) + { + case Top: + case Bottom: + prev_edge = &y_edge_list; + p_edge = prev_edge -> next_edge; + break; + + case Left: + case Right: + prev_edge = &x_edge_list; + p_edge = prev_edge -> next_edge; + break; + } + + if (p_edge == (Edge *) NULL) /* first edge added to list */ + { + tmp_edge = allocate(Edge, 1); + tmp_edge -> edge_coord = edge_coord; + tmp_edge -> ref_count = 1; + tmp_edge -> next_edge = (Edge *) NULL; + prev_edge -> next_edge = tmp_edge; + } + else /* insert edge in order on list */ + do + { + if (edge_coord == p_edge -> edge_coord) + { + /* at least one edge at this coord exists, so... */ + p_edge -> ref_count += 1; + break; + } + else if (edge_coord < p_edge -> edge_coord) + { + tmp_edge = allocate(Edge, 1); + tmp_edge -> edge_coord = edge_coord; + tmp_edge -> ref_count = 1; + tmp_edge -> next_edge = p_edge; + prev_edge -> next_edge = tmp_edge; + break; + } + else /* (p_edge -> edge_coord < edge_coord) */ + { + if (p_edge -> next_edge == (Edge *) NULL) + + /* then add this largest-value edge + at end of list... */ + { + tmp_edge = allocate(Edge, 1); + tmp_edge -> edge_coord = edge_coord; + tmp_edge -> ref_count = 1; + tmp_edge -> next_edge = (Edge *) NULL; + p_edge -> next_edge = tmp_edge; + break; + } + } + prev_edge = p_edge; + } + while ( (p_edge = p_edge -> next_edge) != (Edge *) NULL ); +} + + +/* Delete an Edge from the given edge_list. + * Decrement the reference count for that Edge. + * If the ref count goes to zero, remove that Edge + * (element) from the list. + */ +void +Gravity_Delete_Edge(coord, side) + Basetype coord; + Side side; +{ + Edge *p_edge, *prev_edge; + + switch (side) + { + case Top: + case Bottom: + prev_edge = &y_edge_list; + p_edge = prev_edge -> next_edge; + break; + + case Left: + case Right: + prev_edge = &x_edge_list; + p_edge = prev_edge -> next_edge; + break; + } + + while (p_edge != (Edge *) NULL) + { + if (p_edge -> edge_coord == coord) + { + p_edge -> ref_count -= 1; + + if (p_edge -> ref_count == 0) + { + prev_edge -> next_edge = p_edge -> next_edge; + free((char *)p_edge); + } + break; + } + prev_edge = p_edge; + p_edge = p_edge -> next_edge; + } +} + + +/* Return "vector" (magnitude * direction) to an edge + * which is closest in value to the edge given, of all + * the edges on edge_list + */ +static Basetype +Gravity_Closest_Edge(edge_coord, edge_list) + Basetype edge_coord; + Edge edge_list; +{ + Basetype floor_coord = (Basetype) 0; + Basetype floor_dist, ceil_dist; + Edge *p_edge = edge_list.next_edge; + + if (p_edge == (Edge *) NULL) + return(0); + + while (p_edge != (Edge *) NULL) + { + if (edge_coord < p_edge -> edge_coord) + { + ceil_dist = p_edge -> edge_coord - edge_coord; + + if (p_edge == edge_list.next_edge) + return(ceil_dist); + + if ( abs(floor_dist = floor_coord - edge_coord) + <= ceil_dist ) + return(floor_dist); + else + return (ceil_dist); + } + else if (edge_coord == p_edge -> edge_coord) + return(0); + + else /* (p_edge -> edge_coord < edge_coord) */ + { + floor_coord = p_edge -> edge_coord; + p_edge = p_edge -> next_edge; + } + } + + return(floor_coord - edge_coord); /* edge_coord > last edge on list */ +} + + +/* Local gravity and edge (even/odd) adjustment. + */ +Basetype +Gravity_Adjust_Edge(coord, side) + Basetype coord; + Side side; +{ + Basetype vector; /* magnitude and direction of gravity */ + + if (Tilwin_Get_Global_Option(ENABLE_GRAVITY) == TRUE) + { + switch (side) + { + case Left: + case Right: + vector = Gravity_Closest_Edge(coord, x_edge_list); + break; + + case Top: + case Bottom: + vector = Gravity_Closest_Edge(coord, y_edge_list); + break; + } + + /* if magnitude of vector is greater than range of gravity... + */ + if (Tilwin_Get_Gravity() < abs(vector)) + vector = 0; + + coord += vector; /* side value adjusted for gravity */ + } + + switch (side) + { + case Left: /* Left and Top sides have EVEN values */ + case Top: + if (Is_Odd_Number(coord)) + coord++; + break; + + case Right: /* Right and Bottom sides have ODD values */ + case Bottom: + if (Is_Even_Number(coord)) + coord--; + break; + } + + return(coord); +} + + +/* Local gravity and edge (even/odd) adjustment for a TWRectangle. + */ +void +Gravity_Adjust(rectp) + TWRectangle *rectp; +{ + rectp -> left_x = Gravity_Adjust_Edge(rectp -> left_x, Left); + rectp -> right_x = Gravity_Adjust_Edge(rectp -> right_x, Right); + rectp -> top_y = Gravity_Adjust_Edge(rectp -> top_y, Top); + rectp -> bottom_y = Gravity_Adjust_Edge(rectp -> bottom_y, Bottom); +} + +Basetype +Gravity_Difference(coord, side) + Basetype coord; + Side side; +{ + Basetype diff; + + switch (side) { + case Left: + case Right: + diff = Gravity_Closest_Edge(coord, x_edge_list); + break; + case Top: + case Bottom: + diff = Gravity_Closest_Edge(coord, y_edge_list); + break; + } + + return(abs(diff)); +} +#ifdef WM_DEBUG +#include + +void +Gravity_Print_Lists() +{ + Edge *x_edge = x_edge_list.next_edge; + Edge *y_edge = y_edge_list.next_edge; + + printf("X Edge List\n"); + while (x_edge != (Edge *) NULL) { + printf("%d ", x_edge->edge_coord); + x_edge = x_edge->next_edge; + } + + printf("\nY Edge List\n"); + while (y_edge != (Edge *) NULL) { + printf("%d ", y_edge->edge_coord); + y_edge = y_edge->next_edge; + } + + printf("\n"); +} +#endif diff --git a/gravity.h b/gravity.h new file mode 100644 index 0000000..1d1e948 --- /dev/null +++ b/gravity.h @@ -0,0 +1,56 @@ +/* +static char sccs_id[] = "@(#)gravity.h 5.3 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#ifndef BASETYPE +#include "basetype.h" +#endif + +#define GRAVITY + + +extern void Gravity_Insert_Edge(); + /* Basetype edge_coord; + * Side side; + */ + +extern void Gravity_Delete_Edge(); + /* Basetype edge_coord; + * Side side; + */ + +extern void Gravity_Adjust(); + /* TWRectangle *rectp; + */ + +extern Basetype Gravity_Adjust_Edge(); + /* Basetype edge_coord; + * Side side; + */ + +extern void Gravity_Init(); + +extern Basetype Gravity_Difference(); diff --git a/gray1_32.h b/gray1_32.h new file mode 100644 index 0000000..631d535 --- /dev/null +++ b/gray1_32.h @@ -0,0 +1,14 @@ +#define gray1_32_width 32 +#define gray1_32_height 32 +static char gray1_32_bits[] = { + 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, + 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, + 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, + 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, + 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, + 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, + 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, + 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, + 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, + 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, + 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa}; diff --git a/icons.c b/icons.c new file mode 100644 index 0000000..6df703a --- /dev/null +++ b/icons.c @@ -0,0 +1,149 @@ +#ifndef lint +static char sccs_id[] = "%W% %H%"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" +#include "uwinD.h" +#include "assoc.h" +#include "draw.h" + +#include +#include +#include "xio.h" + +#include "icons/rtl_icon.h" + +static Pixmap + rtl_icon; + +/* ------------------------------------------------------------ */ + +/* Load the Icons as Pixmaps from their bitmap data. + */ +int +Icons_Load() +{ + + rtl_icon = (Pixmap) XCreateBitmapFromData(dpy, root, + rtl_icon_bits, + rtl_icon_width, + rtl_icon_height); +} + +/* ------------------------------------------------------------ */ + +/* Free Icon pixmaps. ??NOT called from anywhere, yet. + */ +int +Icons_Destroy() +{ + + XFreePixmap(dpy, rtl_icon); +} + + +/* ------------------------------------------------------------ */ + +static Size Icons_Pixmap_Size( pix ) + Pixmap pix; +{ + Window w; + int x, y; + unsigned int width, height; + unsigned int border_width; + unsigned int depth; + Size siz; + + XGetGeometry( dpy, pix, &w, &x, &y, + &width, &height, + &border_width, &depth ); + + siz.width = width; + siz.height = height; + + return siz; +} + +/* ------------------------------------------------------------ */ + +static Pixmap icon_pixmap; + +static bool Icons_Read_Bitmap_File( filnam ) + char *filnam; +{ + int width, height; + int x_hot, y_hot; + int status; + + status = XReadBitmapFile(dpy, root, filnam, + &width, &height, + &icon_pixmap, &x_hot, &y_hot); + + /*?? These pixmaps should be Freed somewhere + *?? when Rtl exits! + */ + + return (status == BitmapSuccess); +} + +/* ------------------------------------------------------------ */ + +/* Set the Icon pixmap for a window */ + +Size Icons_Set( uwinp, siz, filnam ) + Userwin *uwinp; + Size siz; + char *filnam; /* filename for pixmap */ +{ + extern bool Open_Read_With(); + + uwinp->iconpix_pending = None; + + if ( filnam != NULL ) + { + if ( Open_Read_With( filnam, Icons_Read_Bitmap_File ) ) + uwinp->iconpix = icon_pixmap; + } + + if ( uwinp->iconpix == None ) + return siz; + else + return Icons_Pixmap_Size( uwinp->iconpix ); + +} + +/* ------------------------------------------------------------ */ + +/* Set the special RTL icon pixmap. + */ +int +Icons_Set_Rtl_Icon(uwinp) + Userwin *uwinp; +{ + + uwinp->iconpix = rtl_icon; +} diff --git a/icons/arrow_ic32.h b/icons/arrow_ic32.h new file mode 100644 index 0000000..1007193 --- /dev/null +++ b/icons/arrow_ic32.h @@ -0,0 +1,40 @@ +/* +static char sccs_id[] = "%W% %H%"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#define arrow_32_width 32 +#define arrow_32_height 32 +static char arrow_32_bits[] = { + 0x30, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, + 0xc0, 0x01, 0x00, 0x00, 0x9e, 0x03, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/icons/arrow_icon.h b/icons/arrow_icon.h new file mode 100644 index 0000000..86301f5 --- /dev/null +++ b/icons/arrow_icon.h @@ -0,0 +1,31 @@ +/* +static char sccs_id[] = "%W% %H%"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#define arrow_width 10 +#define arrow_height 9 +static char arrow_bits[] = { + 0x30, 0x00, 0x60, 0x00, 0xff, 0x00, 0xc0, 0x01, 0x9e, 0x03, 0xc0, 0x01, + 0xff, 0x00, 0x60, 0x00, 0x30, 0x00}; diff --git a/icons/background.h b/icons/background.h new file mode 100644 index 0000000..1a5f2a2 --- /dev/null +++ b/icons/background.h @@ -0,0 +1,32 @@ +/* +static char sccs_id[] = "%W% %H%"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#define background_width 16 +#define background_height 16 +static char background_bits[] = { + 0x88, 0x88, 0x88, 0x88, 0x22, 0x22, 0x22, 0x22, 0x88, 0x88, 0x88, 0x88, + 0x22, 0x22, 0x22, 0x22, 0x88, 0x88, 0x88, 0x88, 0x22, 0x22, 0x22, 0x22, + 0x88, 0x88, 0x88, 0x88, 0x22, 0x22, 0x22, 0x22}; diff --git a/icons/check_ic32.h b/icons/check_ic32.h new file mode 100644 index 0000000..b5f7fa2 --- /dev/null +++ b/icons/check_ic32.h @@ -0,0 +1,40 @@ +/* +static char sccs_id[] = "%W% %H%"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#define check_32_width 32 +#define check_32_height 32 +static char check_32_bits[] = { + 0x00, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0x60, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/icons/gray1_32.h b/icons/gray1_32.h new file mode 100644 index 0000000..631d535 --- /dev/null +++ b/icons/gray1_32.h @@ -0,0 +1,14 @@ +#define gray1_32_width 32 +#define gray1_32_height 32 +static char gray1_32_bits[] = { + 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, + 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, + 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, + 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, + 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, + 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, + 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, + 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, + 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, + 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa, + 0x55, 0x55, 0x55, 0x55, 0xaa, 0xaa, 0xaa, 0xaa}; diff --git a/icons/icon_frame.h b/icons/icon_frame.h new file mode 100644 index 0000000..2a8577d --- /dev/null +++ b/icons/icon_frame.h @@ -0,0 +1,46 @@ +#define icon_frame_width 64 +#define icon_frame_height 64 +static char icon_frame_bits[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; diff --git a/icons/null_icon.h b/icons/null_icon.h new file mode 100644 index 0000000..12f8ae5 --- /dev/null +++ b/icons/null_icon.h @@ -0,0 +1,35 @@ +/* +static char sccs_id[] = "%W% %H%"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#define null_icon_width 1 +#define null_icon_height 1 +static char null_icon_bits[] = +{ + 0x00 +}; + + + diff --git a/icons/rtl.xbm b/icons/rtl.xbm new file mode 100644 index 0000000..5b14e03 --- /dev/null +++ b/icons/rtl.xbm @@ -0,0 +1,89 @@ +#define rtl_width 128 +#define rtl_height 64 +static char rtl_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x02, + 0x20, 0x00, 0x02, 0x20, 0x00, 0x02, 0x20, 0x00, 0x02, 0x20, 0x00, 0x02, + 0x50, 0x2e, 0xe5, 0x52, 0x2e, 0xe5, 0x52, 0x2e, 0xe5, 0x52, 0x2e, 0xe5, + 0x52, 0x2e, 0xe5, 0x02, 0xb0, 0x24, 0x4b, 0xb2, 0x24, 0x4b, 0xb2, 0x24, + 0x4b, 0xb2, 0x24, 0x4b, 0xb2, 0x24, 0x4b, 0x02, 0x10, 0x24, 0x41, 0x12, + 0x24, 0x41, 0x12, 0x24, 0x41, 0x12, 0x24, 0x41, 0x12, 0x24, 0x41, 0x02, + 0x10, 0x24, 0x41, 0x12, 0x24, 0x41, 0x12, 0x24, 0x41, 0x12, 0x24, 0x41, + 0x12, 0x24, 0x41, 0x02, 0x10, 0x48, 0x81, 0x14, 0x48, 0x81, 0x14, 0x48, + 0x81, 0x14, 0x48, 0x81, 0x14, 0x48, 0x81, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xb0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x05, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, + 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0b, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x20, 0x00, 0x02, 0x20, 0x00, 0x02, + 0x20, 0x00, 0x02, 0x20, 0x00, 0x02, 0x20, 0x00, 0x50, 0x72, 0x25, 0x57, + 0x72, 0x25, 0x57, 0x72, 0x25, 0x57, 0x72, 0x25, 0x57, 0x72, 0x25, 0x07, + 0xb0, 0x22, 0x2b, 0xb2, 0x22, 0x2b, 0xb2, 0x22, 0x2b, 0xb2, 0x22, 0x2b, + 0xb2, 0x22, 0x2b, 0x02, 0x10, 0x22, 0x21, 0x12, 0x22, 0x21, 0x12, 0x22, + 0x21, 0x12, 0x22, 0x21, 0x12, 0x22, 0x21, 0x02, 0x10, 0x22, 0x21, 0x12, + 0x22, 0x21, 0x12, 0x22, 0x21, 0x12, 0x22, 0x21, 0x12, 0x22, 0x21, 0x02, + 0x10, 0x44, 0x41, 0x14, 0x44, 0x41, 0x14, 0x44, 0x41, 0x14, 0x44, 0x41, + 0x14, 0x44, 0x41, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00}; diff --git a/icons/rtl_icon.h b/icons/rtl_icon.h new file mode 100644 index 0000000..48a7833 --- /dev/null +++ b/icons/rtl_icon.h @@ -0,0 +1,72 @@ +/* +static char sccs_id[] = "%W% %H%"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#define rtl_icon_width 64 +#define rtl_icon_height 64 +static char rtl_icon_bits[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, 0xe1, 0x08, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x11, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x11, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, 0x11, 0x88, 0xa9, 0x31, + 0xc5, 0x09, 0x00, 0x80, 0xe1, 0x48, 0x5a, 0x4a, 0x2b, 0x08, 0x00, 0x80, + 0x01, 0xc9, 0x4b, 0x7a, 0xc9, 0x08, 0x00, 0x80, 0x01, 0x49, 0x48, 0x0a, + 0x09, 0x09, 0x00, 0x80, 0x11, 0x49, 0x4a, 0x4a, 0x29, 0x09, 0x00, 0x80, + 0xe1, 0x88, 0x49, 0x32, 0xc9, 0x08, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0xf0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x10, 0xff, 0xe1, 0x7f, 0x0c, 0x80, 0x01, 0x00, 0x10, 0xff, + 0xe3, 0x7f, 0x0c, 0x80, 0x01, 0x00, 0x10, 0x03, 0x03, 0x06, 0x0c, 0x80, + 0x01, 0x00, 0x10, 0x03, 0x03, 0x06, 0x0c, 0x80, 0x01, 0x00, 0x10, 0x03, + 0x03, 0x06, 0x0c, 0x80, 0x01, 0x00, 0x10, 0xff, 0x01, 0x06, 0x0c, 0x80, + 0x01, 0x00, 0x10, 0xff, 0x01, 0x06, 0x0c, 0x80, 0x01, 0x00, 0x10, 0x03, + 0x03, 0x06, 0x0c, 0x80, 0x01, 0x00, 0x10, 0x03, 0x03, 0x06, 0x0c, 0x80, + 0x01, 0x00, 0x10, 0x03, 0x03, 0x06, 0x0c, 0x80, 0x01, 0x00, 0x10, 0x03, + 0x03, 0x06, 0xfc, 0x87, 0x01, 0x00, 0x10, 0x03, 0x03, 0x06, 0xfc, 0x87, + 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; diff --git a/init_tws.c b/init_tws.c new file mode 100644 index 0000000..f52d55e --- /dev/null +++ b/init_tws.c @@ -0,0 +1,102 @@ +#ifndef lint +static char sccs_id[] = "@(#)init_tws.c 5.3 9/7/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#include +#include "copyright.h" + +/* initialization of the Tiling system + */ +#define NULL_DEFN /* this file defines global "null" tile */ + +#include "tileD.h" +#include "tile-listP.h" + + +Tile *Tile_at_CP; /* reference to the tile system */ + +Tile *Null_Tile; /* "null" tile - all tiles' pointers not + pointing to a valid tile point to this! */ + +int tile_name = 0; /* internally generated tile name */ + +Tile_Element *te_freelist = TENULL; /* pointer to freelist of + * Tile_Elements (used for memory + * management of list elements) + */ + +static bool tiles_initialized = FALSE; /* flag which tell whether or not the + * tiling system has already been + * initialized + */ + +/* NOTE: on a desktop resize, this routine will be called again. The + * interface guarantees that there will be no solid tiles on the desktop. + * Therefore, the Tile_at_CP must be a space tile and is the only such tile on + * the desktop. + */ + +void +Tile_Init_Tws(left_x, right_x, bottom_y, top_y) + Basetype left_x, right_x, bottom_y, top_y; +{ + Tile *tilep; + + if (tiles_initialized == FALSE){ + Null_Tile = allocate(Tile, 1); + Tile_Set_Win(Null_Tile, (pointer) NULL); + + tr_stitch(Null_Tile) = /* "null" points to itself */ + rt_stitch(Null_Tile) = + bl_stitch(Null_Tile) = + lb_stitch(Null_Tile) = NULL_TILE; + Tile_Set_Name(Null_Tile, tile_name++); /* set tile ID */ + + /* the first created Tile is a Space Tile + */ + tilep = allocate(Tile, 1); + Tile_Set_Name(tilep, tile_name++); /* set tile ID */ + Tile_Set_Type(tilep, Space); + Tile_Set_Win(tilep, (pointer) NULL); + + tr_stitch(tilep) = /* set tile stitches */ + rt_stitch(tilep) = + bl_stitch(tilep) = + lb_stitch(tilep) = NULL_TILE; + + Tile_at_CP = tilep; + + tiles_initialized = TRUE; + + } + + Left_X(Tile_at_CP) = left_x; /* set tile coordinates */ + Right_X(Tile_at_CP) = right_x; + Bottom_Y(Tile_at_CP) = bottom_y; + Top_Y(Tile_at_CP) = top_y; + +} + diff --git a/input.c b/input.c new file mode 100644 index 0000000..ad44678 --- /dev/null +++ b/input.c @@ -0,0 +1,782 @@ +#ifndef lint +static char sccs_id[] = "%W% %H%"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#include "copyright.h" + +#include +#include + +#include "basetype.h" +#include "buttonsD.h" +#include "userglobD.h" +#include "uwinXD.h" + +#include "control.h" +#include "current.h" +#include "events.h" +#include "manage.h" +#include "client.h" +#include "assoc.h" +#include "tilecrsr.h" +#include "draw.h" +#include "drawwin.h" +#include "region.h" +#include "interf.h" +#include "evsaveX.h" +#include "layout.h" + +#include +#include +#include +#include + +#include "evstrings.h" /* for debugging output */ + +#include +#include +#include +#include +#include + +#define RTL_VERSION "5.1" +#include "patchlevel.h" + +#ifndef RTLDISPLAY +#define RTLDISPLAY NULL +#endif + +#include "smdebug.h" + +/* externs in xio.h */ +Window root; +Display *dpy; +int scrn; +pointer stackp; +Window transient_plane; + +XEvent *current_Xevent; + +static Time last_button_time, timeout_time; + +static bool timer_set = FALSE; + +/* set to indicate we've left a window we know about, but haven't */ +/* yet entered a window we do know about -- so ignore user input */ +static bool limbo; + +static void Input_Update_Current_Position(); +extern void Tool_Initiate(); +extern void Interf_Reenter_Region(); + +static char *display; + +/* ------------------------------------------------------------ */ + +void Input_Reenter() +{ + Input_Update_Current_Position(); + + current_uwinp = Manage_Locate( current_pos ); + current_region = Region_Locate( current_uwinp, current_pos ); +} + +/* ------------------------------------------------------------ */ + +void Input_Determine_Buttons() +{ +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static void Input_Update_Button_State( state ) + unsigned int state; +{ + if (state & Button1Mask) + Buttons_Down( current_butstate, 0 ); + else + Buttons_Up( current_butstate, 0 ); + if (state & Button2Mask) + Buttons_Down( current_butstate, 1 ); + else + Buttons_Up( current_butstate, 1 ); + if (state & Button3Mask) + Buttons_Down( current_butstate, 2 ); + else + Buttons_Up( current_butstate, 2 ); +} + +/* ------------------------------------------------------------ */ + +static void Input_Update_Current_Position() +{ + Window wroot, child; + int win_x, win_y; + unsigned int bmask; + + (void) XQueryPointer(dpy, root, &wroot, &child, + ¤t_pos.x, ¤t_pos.y, + &win_x, &win_y, &bmask); +} + + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static TWRegion Input_Get_Region( w, uwinp ) + Window w; + Userwin *uwinp; +{ + TWRegion region; + + if (uwinp == UWIN_NULL) + region = back_region; + else if (uwinp->current_type == rtl) + region = rtl_region; + else + { + if (w == Userwin_XClient(uwinp)) + region = body_region; + + else if (w == Userwin_XHeader(uwinp)) + region = header_region; + + else if (w == Userwin_XIcon(uwinp)) + region = icon_region; + + else if (w == Userwin_XTopBorder(uwinp)) + region = top_region; + else if (w == Userwin_XLeftBorder(uwinp)) + region = left_region; + else if (w == Userwin_XRightBorder(uwinp)) + region = right_region; + else if (w == Userwin_XBottomBorder(uwinp)) + region = bottom_region; + + else if (w == Userwin_XTopLeftCorner(uwinp)) + region = top_left_region; + else if (w == Userwin_XTopRightCorner(uwinp)) + region = top_right_region; + else if (w == Userwin_XBottomLeftCorner(uwinp)) + region = bottom_left_region; + else if (w == Userwin_XBottomRightCorner(uwinp)) + region = bottom_right_region; + + else if (w == Userwin_XZoomGadget(uwinp)) + region = zoom_gadget_region; + + else if (w == Userwin_XMoveGadget(uwinp)) + region = move_gadget_region; + } + return region; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static XComposeStatus compose_status = {NULL, 0}; + +static void Input_Handle_KeyPress( ev ) + XEvent *ev; +{ + char buffer[10]; + int n = 10; + int len; + + if (limbo == FALSE) + { + current_time = ev->xkey.time; + len = XLookupString((XKeyEvent *)ev, + buffer, n, + (KeySym *) NULL, + &compose_status); + + if (len > 0) + current_ch = buffer[0]; + else + current_ch = '\0'; + + current_pos.x = ev->xkey.x_root; + current_pos.y = ev->xkey.y_root; + + + SMTRANS(KEY); + } + + XAllowEvents(dpy, AsyncKeyboard, CurrentTime); +} + +/* ------------------------------------------------------------ */ + +#define X_TO_SUN_MSBUTTON(but) ( (but) - 1 ) + +static void Input_Handle_ButtonPress( ev ) + XEvent *ev; +{ + if (limbo == FALSE) + { + current_time = ev->xbutton.time; + + current_but = + ( X_TO_SUN_MSBUTTON(ev->xbutton.button) + | ( ev->xbutton.state & ShiftMask ? SHIFT_DOWN : 0 ) + | ( ev->xbutton.state & ControlMask ? CTRL_DOWN : 0 ) + ); + + current_pos.x = ev->xbutton.x_root; + current_pos.y = ev->xbutton.y_root; + + last_button_time = ev->xbutton.time; + + Input_Update_Button_State( ev->xbutton.state ); + Buttons_Down( current_butstate, current_but ); + SMTRANS(DOWN); + } + XAllowEvents(dpy, AsyncPointer, CurrentTime); +} + +/* ------------------------------------------------------------ */ + +static void Input_Handle_ButtonRelease( ev ) + XEvent *ev; +{ + if (limbo == FALSE) + { + current_time = ev->xbutton.time; + + current_but = + ( X_TO_SUN_MSBUTTON(ev->xbutton.button) + | ( ev->xbutton.state & ShiftMask ? SHIFT_DOWN : 0 ) + | ( ev->xbutton.state & ControlMask ? CTRL_DOWN : 0 ) + ); + + current_pos.x = ev->xbutton.x_root; + current_pos.y = ev->xbutton.y_root; + + Input_Update_Button_State( ev->xbutton.state ); + Buttons_Up( current_butstate, current_but ); + SMTRANS(UP); + } + XAllowEvents(dpy, AsyncPointer, CurrentTime); +} + +/* ------------------------------------------------------------ */ + +static void Input_Handle_Motion( ev ) + XEvent *ev; +{ + /* Throw out all motion events but the last + */ + + while (XCheckTypedEvent(dpy, MotionNotify, ev)) + ; + + Input_Update_Current_Position(); + + current_time = ev->xmotion.time; + + SMTRANS(MOUSE); +} + +/* ------------------------------------------------------------ */ + +static void Input_Handle_Enter( ev ) + XEvent *ev; +{ + Window w; + + if (! Control_Pointer_Grabbed() ) + { + /* Throw out all Enter events but the last + */ + + while (XCheckTypedEvent(dpy, EnterNotify, ev)) + ; + + limbo = FALSE; + current_time = ev->xcrossing.time; + if (ev->xcrossing.mode != NotifyGrab) + { + w = ev->xcrossing.window; + current_uwinp = (Userwin *) Assoc_Get( w ); + current_region = Input_Get_Region( w, current_uwinp ); + SMTRANS(ENTER); + } + } +} + +/* ------------------------------------------------------------ */ + +static void Input_Handle_Leave( ev ) + XEvent *ev; +{ + Userwin *uwinp; + Window w; + + if (! Control_Pointer_Grabbed() ) + { + /* Throw out all Leave events but the last + */ + + while (XCheckTypedEvent(dpy, LeaveNotify, ev)) + ; + + if (ev->xcrossing.mode == NotifyNormal) + limbo = TRUE; + /* Only notify if window we're leaving is a parent or icon. + */ + w = ev->xcrossing.window; + uwinp = (Userwin *) Assoc_Get( w ); + current_time = ev->xcrossing.time; + + if ( ev->xcrossing.mode == NotifyNormal && + uwinp != UWIN_NULL && + (ev->xcrossing.window == Userwin_XParentWin(uwinp) || + ev->xcrossing.window == Userwin_XIcon(uwinp)) && + uwinp == current_uwinp) + { + SMTRANS(LEAVE); + } + + } +} + +/* ------------------------------------------------------------ */ + +static void Input_Handle_FocusIn( ev ) + XEvent *ev; +{ + Userwin *uwinp; + Window w; + + if ( ev->xfocus.mode == NotifyNormal ) + { + w = ev->xfocus.window; + uwinp = (Userwin *) Assoc_Get( w ); + if ((uwinp != (Userwin *)NULL) && + (Userwin_XTransient_For(uwinp) == None)) + Interf_Handle_FocusIn(uwinp); + } + +} + +/* ------------------------------------------------------------ */ + +static void Input_Handle_Expose( ev ) + XEvent *ev; +{ + Userwin *uwinp; + Window w; + + w = ev->xexpose.window; + uwinp = (Userwin *) Assoc_Get( w ); + + if (uwinp != (Userwin *) NULL) + { + if (ev->xexpose.count == 0) + { + if (w == Userwin_XParentWin(uwinp)) + { + Drawwin_Display_Wrapping(uwinp); + } + else if (w == Userwin_XIcon(uwinp)) + { + DrawIcon_Display(uwinp); + } + } + } +} + +/* ------------------------------------------------------------ */ + +static void Input_Handle_Event(ev) + XEvent *ev; +{ + switch (ev->type) + { + + case KeyPress: + Input_Handle_KeyPress( ev ); + break; + + case ButtonPress: + Input_Handle_ButtonPress( ev ); + break; + + case ButtonRelease: + Input_Handle_ButtonRelease( ev ); + break; + + case MotionNotify: /*** Motion during Grabbed Pointer ***/ + Input_Handle_Motion( ev ); + break; + + case EnterNotify: + Input_Handle_Enter( ev ); + break; + + case LeaveNotify: + Input_Handle_Leave( ev ); + break; + + case FocusIn: /*** Input focus to this win ***/ + Input_Handle_FocusIn( ev ); + break; + + case Expose: + Input_Handle_Expose( ev ); + break; + + default: + break; + } + +} + +/* ------------------------------------------------------------ + * Event timing routines. + * ------------------------------------------------------------ + */ + +/* ------------------------------------------------------------ + */ +static void +Input_Handle_Timer() +{ + + Input_Update_Current_Position(); + + SMTRANS(WAIT); + + timer_set = FALSE; +} + +/* ------------------------------------------------------------ + * Cancel simulated timer. + */ +void +Input_Cancel_Wait() +{ + timer_set = FALSE; +} + +/* ------------------------------------------------------------ + * Simulate an event timer, using X current timestamps + */ +void Input_Wait(timeout) + int timeout; /* value in milli-seconds */ +{ + if (timer_set == FALSE) + { + /* assume event time is relative to last button press */ + timeout_time = last_button_time + timeout; + timer_set = TRUE; + } +} + +/* ------------------------------------------------------------ + * cursor positioning + * ------------------------------------------------------------ + */ + +/* ------------------------------------------------------------ + * Relative warp of mouse position. + */ +void Input_Change_Pos( pt ) + TWPoint pt; +{ + + /* relative warp ---v */ + XWarpPointer(dpy, None, None, + 0, 0, 0, 0, + pt.x, pt.y); + + Input_Update_Current_Position(); + +} + +/* ------------------------------------------------------------ + * Resets mouse position. + */ +void +Input_Set_Pos( pt ) + TWPoint pt; +{ + + XWarpPointer(dpy, None, root, + 0, 0, 0, 0, + pt.x, pt.y); + + current_pos = pt; + + XFlush(dpy); +} + +void Input_Handle_Child(sig, code, scp) + int sig, code; + struct sigcontext *scp; +{ + union wait + { + int x; + } status; + struct rusage ru; + + (void) wait3(&status, WNOHANG, &ru); + +} + + +/* ------------------------------------------------------------ + * Rtl starts here! + * ------------------------------------------------------------ */ + +static void Input_Setup() +{ + extern int Error_Handler(); + extern void Exit(); + XSetWindowAttributes attr; + + printf( "\nStarting the Siemens RTL Tiled Window Manager, " ); + printf("Version %s, Release %d\n", RTL_VERSION, PATCHLEVEL); + fflush(stdout); + + if ( (dpy = XOpenDisplay(display)) == (Display *) NULL ) + { + fprintf(stderr, "RTL: Could not open display device, exiting!\n"); + exit(1); + } + + (void) signal(SIGHUP, SIG_IGN); + (void) signal(SIGINT, Exit); + (void) signal(SIGTERM, Exit); + (void) signal(SIGPIPE, Exit); + (void) signal(SIGCHLD, Input_Handle_Child); + + XSetErrorHandler(Error_Handler); + + scrn = DefaultScreen(dpy); + root = RootWindow(dpy, scrn); + + /* create a window that is used to separate the tiled windows from */ + /* transient windows (which can be overlapped) */ + attr.override_redirect = True; + transient_plane = XCreateWindow( dpy, root, 0, 0, + (unsigned int) 1, (unsigned int) 1, + (unsigned int) 0, 0, + InputOnly, CopyFromParent, + (unsigned int) (CWOverrideRedirect), + &attr ); +} + +/* ------------------------------------------------------------ */ + +static void Input_Init() +{ + extern int errorStatus; + extern void Pause_RTL(); + + errorStatus = False; + + XSelectInput(dpy, root, SubstructureRedirectMask | SubstructureNotifyMask | + ButtonPressMask | ButtonReleaseMask | KeyPressMask | + EnterWindowMask | LeaveWindowMask ); + + XSync(dpy, False); + + if (errorStatus == True) + { + printf("\nYou must be running another window manager, bye!\n"); + Pause_RTL(); + } + + if (Assoc_InitTable() == FALSE) + { + fprintf(stderr, "Could not set up X resource-association table!\n"); + Pause_RTL(); + } + + + /* close TCP fd on exec() - so Tools from Menu work when RTL exits + */ + if ((errorStatus = fcntl(ConnectionNumber(dpy), F_SETFD, 1)) == -1) + { + fprintf(stderr, "RTL: Child processes have TCP fd, exiting!\n"); + Pause_RTL(); + } + + XDefineCursor(dpy, root, (XID) background_tilecursor); + Buttons_Clear( current_butstate ); + +} + +/* ------------------------------------------------------------ */ + +static void Input_Set_Desktop_Size() +{ + Size desksiz; + Window retroot; + int root_x, root_y; + unsigned int root_width, root_height; + unsigned int bw, depth; + + (void) XGetGeometry(dpy, (Drawable) root, &retroot, + &root_x, &root_y, + &root_width, &root_height, + &bw, &depth); + + UserGlobals_Set_Value( FULL_WIDTH, root_width ); + UserGlobals_Set_Value( FULL_HEIGHT, root_height ); + + desksiz.width = root_width; + desksiz.height = root_height; + + Manage_Set_Desktop_Size( desksiz ); +} + +/* ------------------------------------------------------------ */ + +static void Input_Set_Icon_Sizes() +{ + XIconSize icon_size; + + icon_size.min_width = 64; + icon_size.min_height = 64; + icon_size.max_width = 64; + icon_size.max_height = 64; + icon_size.width_inc = 0; + icon_size.height_inc = 0; + + XSetIconSizes(dpy, root, &icon_size, 1); +} + +/* ------------------------------------------------------------ */ + +static void Input_Process_Event() +{ + XEvent ev; + + if (timer_set == TRUE && (current_time >= timeout_time)) + Input_Handle_Timer(); + + if (QLength(dpy) == 0)/* XNextEvent doesn't flush anymore! (rel 2) */ + XFlush(dpy); + XNextEvent(dpy, &ev); + + if (ev.xany.send_event == True) + { + /* someone sent this event to us --- ignore it */ + return; + } + + if (ev.type == MotionNotify && (! Control_Pointer_Grabbed() ) ) + return; + + if ( Control_Pointer_Grabbed() && + !(ev.type == MotionNotify || /* tracking the cursor. */ + ev.type == ButtonPress || + ev.type == ButtonRelease)) + { + AddEventToStore(&stackp, ev); + return; + } + + current_Xevent = &ev; + + if (ev.type < CreateNotify) + { + Input_Handle_Event(&ev); + } + else + { + Redirect_Handle_Event(&ev); + } +} + +/* ------------------------------------------------------------ */ + +main(argc,argv) + int argc; + char **argv; +{ + int use_startup_file = 0; + int finish_layout = 0; + int ignore_layout_file = 0; + char c; + extern void Wsys_Startup(); + + argc--; argv++; + while(argc) + { + if (strcmp(*argv, "-display") == 0) + { + argc--; argv++; + if (argc > 0) + display = *argv; + } + else if (strcmp(*argv, "-s") == 0) + { + use_startup_file++; + } + else if (strcmp(*argv, "-f") == 0) + { + finish_layout++; + } + else if (strcmp(*argv, "-i") == 0) + { + ignore_layout_file++; + } + argc--; argv++; + } + + Input_Setup(); + + XGrabServer(dpy); + + Input_Set_Desktop_Size(); + Input_Init(); + Interf_Init(); /* initialize Cursors, Buttons, Menus, and Profiles */ + Manage_Init(); /* initialize drawing functions and Icons */ + Interf_Reset(); + + Input_Set_Icon_Sizes(); + + if (ignore_layout_file) + Layout_Finish(); + + Wsys_Startup(); + XUngrabServer(dpy); + + if (finish_layout) + Layout_Finish(); + if (use_startup_file) + Tool_Initiate(); + + Interf_Reenter_Region(); + + limbo = FALSE; + + FOREVER /* window-input and client-request Event Loop */ + Input_Process_Event(); +} diff --git a/input.h b/input.h new file mode 100644 index 0000000..c75c404 --- /dev/null +++ b/input.h @@ -0,0 +1,44 @@ +/* +static char sccs_id[] = "@(#)input.h 5.3 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#ifndef STD_DEFS +#include "std_defs.h" +#endif + +extern void Input_Reenter(); + +extern void Input_Determine_Buttons(); + +extern void Input_Set_Pos(); +/* pos */ + +extern void Input_Change_Pos(); + +extern void Input_Wait(); +/* time in msecs */ + +extern void Input_Cancel_Wait(); diff --git a/interf.c b/interf.c new file mode 100644 index 0000000..4cc64db --- /dev/null +++ b/interf.c @@ -0,0 +1,5640 @@ +#ifndef lint +static char sccs_id[] = "%W% %H%"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include +#include "copyright.h" + +#include "basetype.h" + +#include "client.h" +#include "closed.h" +#include "control.h" +#include "current.h" +#include "drawicon.h" +#include "drawwin.h" +#include "events.h" +#include "input.h" +#include "layout.h" +#include "manage.h" +#include "message.h" +#include "profile.h" +#include "region.h" +#include "tilecrsr.h" +#include "tilemenu.h" +#include "twin.h" +#include "tool.h" + +#include "userglobD.h" +#include "buttonsD.h" +#include "uwinD.h" +#include "uwinL.h" + +#define SMDEBUG +#include "smdebug.h" + +#define CLICK_TIME 290 /* in milliseconds */ + + +Buttons TOOL_BUTTONS; +Buttons DISCONNECT_BUTTONS; +Buttons EXIT_BUTTONS; +Buttons BODY_MANAGER_MENU_BUTTONS; +Buttons BODY_USER_MENU_BUTTONS; +Buttons HEADER_MANAGER_MENU_BUTTONS; +Buttons HEADER_USER_MENU_BUTTONS; +Buttons ICON_OPEN_BUTTONS; +Buttons ICON_MOVE_BUTTONS; +Buttons CLOSE_BUTTONS; +Buttons REDRAW_BUTTONS; +Buttons ZOOM_BUTTONS; +Buttons ZOOM_LOCK_BUTTONS; +Buttons DESIRE_BUTTONS; +Buttons ENLARGE_BUTTONS; +Buttons MOVE_BUTTONS; +Buttons RELOCATE_BUTTONS; +Buttons EXCHANGE_BUTTONS; +Buttons RESIZE_BUTTONS; +Buttons TOGGLE_GRAVITY_BUTTONS; +Buttons CANCEL_BUTTONS; +Buttons UNDESIRE_BUTTONS; +Buttons FORCE_RESET_MIN_MAX_BUTTONS; +Buttons FORCE_LISTENER_BUTTONS; +Buttons FORCE_ZOOM_BUTTONS; + +static TileMenu manager_title_menu; +static TileMenu manager_tool_menu; +static TileMenu manager_size_menu; +static TileMenu manager_repop_menu; +static TileMenu manager_background_menu; +static TileMenu manager_icon_menu; +static TileMenu manager_window_menu; +static TileMenu manager_window_option_menu; + +static Message exitmsg; +static Message pausemsg; +static Message savemsg; +static Message softmsg; +static Message hardmsg; +static Message notifymsg; +static Message groupmsg; + +#define user_window_join_excursion(uwin,opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = Userwin_Get_Window_Option(uwin,opt); \ + Userwin_Set_Window_Option( uwin, opt, (temp_val || val) ); \ + code; \ + Userwin_Set_Window_Option(uwin,opt,temp_val); \ +} + + +static void Interf_Press(); +static void Interf_Click(); +static void Interf_Seen_Down(); +static void Interf_Press_UP(); +static void Interf_Have_Lsnr_swInMod(); +static void Interf_Grabbed_Lsnr_swInMod(); +static void Interf_Have_Lsnr(); +static void Interf_Grabbed_Lsnr(); +static void Interf_Am_Lsnr(); +static void Interf_Gbd_Sblsnr(); +static void Interf_Am_Sblsnr(); +static void Interf_Am_Clk_Lsnr(); +static void Interf_Gbd_Clk_Sblsnr(); +static void Interf_Click_Sblsnr(); +static void Interf_Wait_Cmplt_Cancel(); +static void Interf_Cancel_Here(); +static void Interf_Wait_Complete(); +static void Interf_Check_Complete(); +static void Interf_Wait_For_Conf(); +static void Interf_Trk_Cont_Ctr_Opng(); +static void Interf_Trk_Cont_Crnr_Opng(); +static void Interf_Start_Continue_Opening(); +static void Interf_Track_Opening(); +static void Interf_Track_Icon_Opening(); +static void Interf_Start_Opening(); +static void Interf_Start_Icon_Opening(); +static void Interf_Open_In_Icon(); +static void Interf_Track_Edge_Rszng(); +static void Interf_Track_Crnr_Rszng(); +static void Interf_Track_Basing_Rsz(); +static void Interf_Track_Moving(); +static void Interf_Track_Vert_Moving(); +static void Interf_Track_Horiz_Moving(); +static void Interf_Track_Icon_Moving(); +static void Interf_Track_Exchanging(); +static void Interf_Inside_Background(); +static void Interf_Inside_Rtl(); +static void Interf_Inside_Body(); +static void Interf_Inside_Header(); +static void Interf_Inside_Icon(); +static void Interf_Inside_Zoom_Gadget(); +static void Interf_Inside_Move_Gadget(); +static void Interf_Inside_Side_Border(); +static void Interf_Ins_Crnr_Border(); + + +static void (*button)(); + +static void Interf_Signal_Button(sigkind) +enum ButKind sigkind; +{ + current_kind = sigkind; + (*button)(); +} + +static Buttons down_but; +static TWPoint down_pos; + +static Buttons up_but; +static TWPoint up_pos; + + +static bool tracking = FALSE; +static bool wait_for_click = TRUE; +static bool complete_down = FALSE; +static bool inside_client = FALSE; + +static void Interf_Click_DOWN() +{ + extern void Interf_Click(); +{ + + extern void Interf_Seen_Down(); + extern void Interf_Press(); + down_but = current_but; + down_pos = current_pos; + if ( wait_for_click ) + { + if (tracking) + (*MOUSE)(); + { Interf_Seen_Down(); return; } + } + else + { + wait_for_click = ! inside_client; + Interf_Signal_Button(down); + { Interf_Press(); return; } + } + +} +} + +static void Interf_Click_UP() +{ + extern void Interf_Click(); +{ + + Interf_Signal_Button(up); + { Interf_Click(); return; } + +} +} + +static void Interf_Click() +{ + DOWN = Interf_Click_DOWN; + UP = Interf_Click_UP; +} + + +static void Interf_Seen_Down_WAIT() +{ + extern void Interf_Seen_Down(); +{ + + Interf_Signal_Button(down); + { Interf_Click(); return; } + +} +} + +static void Interf_Seen_Down_DOWN() +{ + extern void Interf_Seen_Down(); +{ + Input_Cancel_Wait(); + + Interf_Signal_Button(down); + down_but = current_but; + down_pos = current_pos; + { Interf_Seen_Down(); return; } + +} +} + +static void Interf_Seen_Down_UP() +{ + extern void Interf_Seen_Down(); +{ + Input_Cancel_Wait(); + + if ( Buttons_Equal( current_but, down_but ) ) + { + Interf_Signal_Button(click); + } + else + { + up_pos = current_pos; + up_but = current_but; + + current_pos = down_pos; + current_but = down_but; + + Interf_Signal_Button(down); + + current_pos = up_pos; + current_but = up_but; + + Interf_Signal_Button(up); + } + { Interf_Click(); return; } + +} +} + +static void Interf_Seen_Down() +{ + WAIT = Interf_Seen_Down_WAIT; + DOWN = Interf_Seen_Down_DOWN; + UP = Interf_Seen_Down_UP; + Input_Wait(CLICK_TIME); +} + + +static void Interf_Press_WAIT() +{ + extern void Interf_Press(); +{ + + { Interf_Click(); return; } + +} +} + +static void Interf_Press_DOWN() +{ + extern void Interf_Press(); +{ + Input_Cancel_Wait(); + + down_but = current_but; + down_pos = current_pos; + if ( wait_for_click ) + { + if (tracking) + (*MOUSE)(); + { Interf_Seen_Down(); return; } + } + else + { + Interf_Signal_Button(down); + { Interf_Press(); return; } + } + +} +} + +static void Interf_Press_UP() +{ + extern void Interf_Press(); +{ + Input_Cancel_Wait(); + + if ( complete_down || inside_client || + (! Buttons_Equal( current_but, down_but ) ) ) + Interf_Signal_Button(up); + { Interf_Click(); return; } + +} +} + +static void Interf_Press() +{ + WAIT = Interf_Press_WAIT; + DOWN = Interf_Press_DOWN; + UP = Interf_Press_UP; + Input_Wait(CLICK_TIME); +} + + + +static Side current_side; +static TWPoint base_pos; +static TWPoint cancel_pos; + +static bool menu_at_work = FALSE; +static bool menu_positioned = FALSE; + + +static void Interf_Set_Pos( pos ) + TWPoint pos; +{ + menu_positioned = FALSE; + Input_Set_Pos( pos ); +} + + +static TWPoint Interf_Tracking_Offset( pos ) + TWPoint pos; +{ + pos.x -= base_pos.x; + pos.y -= base_pos.y; + return pos; +} + + +static void Interf_Track_Pos( pos ) + TWPoint pos; +{ + Input_Change_Pos( Interf_Tracking_Offset( pos ) ); +} + + +static void Interf_Track_Edge_Pos() +{ + Interf_Track_Pos( Region_Get_Edge_Pos( + current_uwinp, current_side, base_pos ) ); +} + + +static void Interf_Track_Corner_Pos() +{ + Interf_Track_Pos( Region_Get_Corner_Pos( + current_uwinp, current_side ) ); +} + + +static TWPoint Interf_Track_Center_Pos() +{ + TWPoint offset; + Interf_Track_Pos( Userwin_Get_Center(current_uwinp) ); + offset.x = 0; + offset.y = 0; + return offset; +} + + +static TWPoint Interf_Center_Offset() +{ + return Interf_Tracking_Offset( + Userwin_Get_Center(current_uwinp) ); +} + + +static TWPoint Interf_Track_Icon_Center_Pos() +{ + TWPoint offset; + Interf_Track_Pos( Userwin_Get_Icon_Center(current_uwinp) ); + offset.x = 0; + offset.y = 0; + return offset; +} + + +static TWPoint Interf_Icon_Center_Offset() +{ + return Interf_Tracking_Offset( + Userwin_Get_Icon_Center(current_uwinp) ); +} + + +static bool Interf_Start_Watching() +{ + if ( tracking ) + { + Control_Set_Cursor( watch_tilecursor ); + return TRUE; + } + else + return Control_Grab_User( FALSE, watch_tilecursor ); +} + + +static void Interf_Stop_Watching() +{ + Control_Restore_Cursor(); + if ( (! tracking) && Control_Pointer_Grabbed() ) + Control_Ungrab_User(); +} + + +#define Interf_Watch(code) \ +{ \ + Interf_Start_Watching(); \ + code; \ + Interf_Stop_Watching(); \ +} + + +static bool client_watching; + +static bool Interf_Client_Start_Watching() +{ + client_watching = ! ( tracking || Control_Pointer_Grabbed() ); + if ( client_watching ) + return Control_Grab_User( FALSE, watch_tilecursor ); + else + return FALSE; +} + + +static void Interf_Client_Stop_Watching() +{ + extern void Interf_Reenter_Region(); + + if ( client_watching ) + { + client_watching = FALSE; + Interf_Reenter_Region(); + } +} + + +#define Interf_Client_Watch(code) \ +{ \ + Interf_Client_Start_Watching(); \ + code; \ + Interf_Client_Stop_Watching(); \ +} + + +static void Interf_Menu_Grab() +{ + if ( menu_positioned ) + { + cancel_pos = TileMenu_Entry_Pos(); + base_pos = current_pos; + } + else + { + cancel_pos = down_pos; + base_pos = down_pos; + } + + if ( menu_at_work ) + { + menu_at_work = FALSE; + Input_Determine_Buttons(); + } +} + + +static void Interf_Reset_Menu_Pos() +{ + cancel_pos = TileMenu_Entry_Pos(); + Input_Set_Pos( cancel_pos ); + base_pos = current_pos; + menu_positioned = FALSE; +} + + +static bool Interf_Start_Grabbing( cursor ) + TileCursor cursor; +{ + Interf_Menu_Grab(); + return Control_Grab_User( FALSE, cursor ); +} + + +static bool Interf_Start_Tracking( cursor ) + TileCursor cursor; +{ + Interf_Menu_Grab(); + + if (! tracking) + { + if (! Control_Grab_User( TRUE, cursor )) + return FALSE; + Control_Grab_Server(); + tracking = TRUE; + } + return TRUE; +} + + +static bool Interf_Client_Start_Tracking( cursor ) + TileCursor cursor; +{ + if (tracking) + return FALSE; + + else if (! Control_Grab_User( TRUE, cursor )) + return FALSE; + + Control_Grab_Server(); + tracking = TRUE; + + return TRUE; +} + + +static TWPoint Interf_Continue_Tracking() +{ + if ( current_kind != up ) + { + base_pos = down_pos; + return base_pos; + } + else + return current_pos; +} + + +static bool change_state = FALSE; + + +static void Interf_Prepare_Reenter() +{ + if ( menu_positioned ) + { + menu_positioned = FALSE; + if ( UserGlobals_Get_Option( + PLACE_CSR_BACK_AFTER_MENU_OP) ) + { + if ( (! change_state) && + ( Region_Get_Type(current_region) == header ) ) + Input_Set_Pos( Region_Get_Header_Pos( + current_uwinp, TileMenu_Entry_Pos() ) ); + else + Input_Set_Pos( TileMenu_Entry_Pos() ); + } + } + + change_state = FALSE; + + if ( menu_at_work ) + { + menu_at_work = FALSE; + Input_Determine_Buttons(); + } + + if ( tracking ) + { + tracking = FALSE; + Control_Ungrab_Server(); + Control_Ungrab_User(); + } + else if ( Control_Pointer_Grabbed() ) + Control_Ungrab_User(); +} + + +static void Interf_Menu_Enter( menu, butnum, kind ) + TileMenu menu; + int butnum; + enum ButKind kind; +{ + extern void Interf_Reenter_Region(); + + Input_Determine_Buttons(); + menu_at_work = TRUE; + menu_positioned = TRUE; + + TileMenu_Enter( menu, butnum, kind, current_time ); + + if ( menu_positioned ) + { + menu_positioned = FALSE; + if ( UserGlobals_Get_Option(PLACE_CSR_BACK_ON_CANCEL) ) + Input_Set_Pos( TileMenu_Entry_Pos() ); + } + + if ( menu_at_work ) + { + menu_at_work = FALSE; + Input_Determine_Buttons(); + { Interf_Reenter_Region(); return; } + } +} + + + + static Userwin *current_listener = UWIN_NULL; + + static bool accept_key; + static bool accept_non_listener; + static bool accept_button; + + static bool key_makes_listener; + static bool button_makes_listener; + + static bool button_sets_listener; + static bool button_sets_sublistener; + +extern void + Interf_Have_Lsnr(), Interf_Grabbed_Lsnr(), + Interf_Am_Lsnr(), Interf_Gbd_Sblsnr(), + Interf_Am_Sblsnr(), Interf_Am_Clk_Lsnr(), + Interf_Click_Sblsnr(), Interf_Gbd_Clk_Sblsnr(); + +static void (*insideLsnr)(); +static void (*becomeLsnr)(); +static void (*becomeSblsnr)(); +static void (*focusIn)(); +static void (*loseLsnr)(); +static void (*swInMod)(); +static void (*mvToUngrab)(); +static void (*moveToGrab)(); +static void (*moveOut)(); + + +static void Interf_Button_Sets() +{ + button_sets_listener = button_makes_listener; + button_sets_sublistener = FALSE; + + if ( (! Userwin_Is_Iconic(current_uwinp) ) && + Userwin_Input_Enabled(current_uwinp) ) + { + if ( current_uwinp != current_listener ) + { + if ( UserGlobals_Get_Option(FOCUS_FOLLOWS_CURSOR) ) + { + button_sets_listener = button_makes_listener; + button_sets_sublistener = (! button_makes_listener) && + accept_key && accept_non_listener && + (! key_makes_listener); + } + else + { + button_sets_listener = button_makes_listener && + key_makes_listener; + button_sets_sublistener = + accept_key && accept_non_listener && + (! key_makes_listener); + } + } + } +} + + +static void Interf_Manage_Focus() +{ + bool same_listener; + bool switch_focus; + + same_listener = (current_listener == current_uwinp) || + ( Manage_Get_Sublistener() == current_uwinp ); + + if ( Userwin_Is_Iconic(current_uwinp) ) + switch_focus = FALSE; + else if ( Userwin_Input_Enabled(current_uwinp) ) + switch_focus = ( accept_key && + (same_listener || accept_non_listener) ); + else + switch_focus = ( same_listener && accept_key && + Userwin_Takes_Focus( current_uwinp ) ); + + if ( switch_focus ) + Manage_Switch_Focus(current_uwinp); + else + Manage_Switch_Focus(UWIN_NULL); +} + + +static void Interf_Have_Lsnr_insideLsnr() +{ + extern void Interf_Have_Lsnr(); +{ + + + /* now re-entering the listener window */ +/* Control_Set_Focus(current_uwinp);*/ + + /* send message to client */ + if ( Userwin_Takes_Focus( current_uwinp ) ) + Client_Take_Focus(current_uwinp); + + { Interf_Grabbed_Lsnr(); return; } + + +} +} + +static void Interf_Have_Lsnr_becomeLsnr() +{ + extern void Interf_Have_Lsnr(); +{ + + +/* Control_Set_Focus(current_uwinp);*/ + Interf_Manage_Focus(); + + if ( accept_key && accept_button ) + { + Control_Release_Grab(current_uwinp); + { Interf_Am_Lsnr(); return; } + } + /* otherwise we keep the input grabbed to throw it away... */ + else + { + { Interf_Grabbed_Lsnr(); return; } + } + + +} +} + +static void Interf_Have_Lsnr_becomeSblsnr() +{ + extern void Interf_Have_Lsnr(); +{ + + + Manage_Switch_Sublistener(current_uwinp); + + if (! Userwin_Is_Iconic(current_uwinp) ) +/* Control_Set_Focus(current_uwinp)*/; + Interf_Manage_Focus(); + + if ( key_makes_listener || button_sets_listener || + !accept_key || !accept_button ) + { + { Interf_Gbd_Sblsnr(); return; } + } + else + { + Control_Release_Grab(current_uwinp); + + { Interf_Am_Sblsnr(); return; } + } + + +} +} + +static void Interf_Have_Lsnr_focusIn() +{ + extern void Interf_Have_Lsnr(); +{ + + + { Interf_Grabbed_Lsnr(); return; } + + +} +} + +static void Interf_Have_Lsnr_loseLsnr() +{ + extern void Interf_Have_Lsnr(); +{ + + + { Interf_Have_Lsnr(); return; } + + +} +} + +static void Interf_Have_Lsnr_moveOut() +{ + extern void Interf_Have_Lsnr(); +{ + + + { Interf_Have_Lsnr(); return; } + + +} +} + +static void Interf_Have_Lsnr_swInMod() +{ + extern void Interf_Have_Lsnr(); +{ + + + if ( current_listener != UWIN_NULL ) + { + Control_Set_Focus(current_listener); + Manage_Switch_Focus(current_listener); + Control_Release_Grab(current_listener); + } + else + Control_Unset_Focus(); + { Interf_Am_Clk_Lsnr(); return; } + + +} +} + +static void Interf_Have_Lsnr() +{ + insideLsnr = Interf_Have_Lsnr_insideLsnr; + becomeLsnr = Interf_Have_Lsnr_becomeLsnr; + becomeSblsnr = Interf_Have_Lsnr_becomeSblsnr; + focusIn = Interf_Have_Lsnr_focusIn; + loseLsnr = Interf_Have_Lsnr_loseLsnr; + moveOut = Interf_Have_Lsnr_moveOut; + swInMod = Interf_Have_Lsnr_swInMod; +} + + + +static void Interf_Grabbed_Lsnr_mvToUngrab() +{ + extern void Interf_Grabbed_Lsnr(); +{ + + + Control_Release_Grab(current_uwinp); + { Interf_Am_Lsnr(); return; } + + +} +} + +static void Interf_Grabbed_Lsnr_moveToGrab() +{ + extern void Interf_Grabbed_Lsnr(); +{ + + + { Interf_Grabbed_Lsnr(); return; } + + +} +} + +static void Interf_Grabbed_Lsnr_moveOut() +{ + extern void Interf_Grabbed_Lsnr(); +{ + + + Control_Focus_Out( current_uwinp ); + { Interf_Have_Lsnr(); return; } + + +} +} + +static void Interf_Grabbed_Lsnr_focusIn() +{ + extern void Interf_Grabbed_Lsnr(); +{ + + + { Interf_Grabbed_Lsnr(); return; } + + +} +} + +static void Interf_Grabbed_Lsnr_insideLsnr() +{ + extern void Interf_Grabbed_Lsnr(); +{ + + + { Interf_Grabbed_Lsnr(); return; } + + +} +} + +static void Interf_Grabbed_Lsnr_swInMod() +{ + extern void Interf_Grabbed_Lsnr(); +{ + + + Control_Release_Grab(current_uwinp); + + { Interf_Am_Clk_Lsnr(); return; } + +} +} + +static void Interf_Grabbed_Lsnr() +{ + mvToUngrab = Interf_Grabbed_Lsnr_mvToUngrab; + moveToGrab = Interf_Grabbed_Lsnr_moveToGrab; + moveOut = Interf_Grabbed_Lsnr_moveOut; + focusIn = Interf_Grabbed_Lsnr_focusIn; + insideLsnr = Interf_Grabbed_Lsnr_insideLsnr; + swInMod = Interf_Grabbed_Lsnr_swInMod; +} + + + +static void Interf_Am_Lsnr_focusIn() +{ + extern void Interf_Am_Lsnr(); +{ + + + Control_Restore_Grab(); + { Interf_Grabbed_Lsnr(); return; } + + +} +} + +static void Interf_Am_Lsnr_mvToUngrab() +{ + extern void Interf_Am_Lsnr(); +{ + + + { Interf_Am_Lsnr(); return; } + + +} +} + +static void Interf_Am_Lsnr_moveToGrab() +{ + extern void Interf_Am_Lsnr(); +{ + + + /* Set Grab on listener to throw input away */ + Control_Restore_Grab(); + + { Interf_Grabbed_Lsnr(); return; } + + +} +} + +static void Interf_Am_Lsnr_moveOut() +{ + extern void Interf_Am_Lsnr(); +{ + + + /* Set Grab on (former) listener */ + Control_Restore_Grab(); + +/* Control_Set_Focus( UWIN_NULL );*/ + { Interf_Have_Lsnr(); return; } + + +} +} + +static void Interf_Am_Lsnr_insideLsnr() +{ + extern void Interf_Am_Lsnr(); +{ + + + { Interf_Am_Lsnr(); return; } + + +} +} + +static void Interf_Am_Lsnr_swInMod() +{ + extern void Interf_Am_Lsnr(); +{ + + + { Interf_Am_Clk_Lsnr(); return; } + +} +} + +static void Interf_Am_Lsnr() +{ + focusIn = Interf_Am_Lsnr_focusIn; + mvToUngrab = Interf_Am_Lsnr_mvToUngrab; + moveToGrab = Interf_Am_Lsnr_moveToGrab; + moveOut = Interf_Am_Lsnr_moveOut; + insideLsnr = Interf_Am_Lsnr_insideLsnr; + swInMod = Interf_Am_Lsnr_swInMod; +} + + + +static void Interf_Gbd_Sblsnr_mvToUngrab() +{ + extern void Interf_Gbd_Sblsnr(); +{ + + + /* should not get this if we move to becomeLsnr region */ + + Control_Release_Grab(current_uwinp); + { Interf_Am_Sblsnr(); return; } + + +} +} + +static void Interf_Gbd_Sblsnr_moveToGrab() +{ + extern void Interf_Gbd_Sblsnr(); +{ + + + { Interf_Gbd_Sblsnr(); return; } + + +} +} + +static void Interf_Gbd_Sblsnr_moveOut() +{ + extern void Interf_Gbd_Sblsnr(); +{ + + + Manage_Switch_Sublistener( UWIN_NULL ); +/* Control_Set_Focus( UWIN_NULL );*/ + + { Interf_Have_Lsnr(); return; } + + +} +} + +static void Interf_Gbd_Sblsnr_insideLsnr() +{ + extern void Interf_Gbd_Sblsnr(); +{ + + + Manage_Switch_Sublistener( UWIN_NULL ); + + /* now re-entering the listener window */ +/* Control_Set_Focus(current_uwinp);*/ + + /* send message to client */ + if ( Userwin_Takes_Focus( current_uwinp ) ) + Client_Take_Focus(current_uwinp); + + { Interf_Grabbed_Lsnr(); return; } + + +} +} + +static void Interf_Gbd_Sblsnr_focusIn() +{ + extern void Interf_Gbd_Sblsnr(); +{ + + + Manage_Switch_Sublistener( UWIN_NULL ); + { Interf_Grabbed_Lsnr(); return; } + + +} +} + +static void Interf_Gbd_Sblsnr_becomeLsnr() +{ + extern void Interf_Gbd_Sblsnr(); +{ + + + Manage_Switch_Sublistener( UWIN_NULL ); + + if ( accept_key && accept_button ) + { + Control_Release_Grab(current_uwinp); + { Interf_Am_Lsnr(); return; } + } + /* otherwise we keep the input grabbed to throw it away... */ + else + { + { Interf_Grabbed_Lsnr(); return; } + } + + +} +} + +static void Interf_Gbd_Sblsnr_swInMod() +{ + extern void Interf_Gbd_Sblsnr(); +{ + + + if ( key_makes_listener || button_sets_listener || + !accept_key || !accept_button ) + { + { Interf_Gbd_Clk_Sblsnr(); return; } + } + else + { + Control_Release_Grab(current_uwinp); + { Interf_Click_Sblsnr(); return; } + } + +} +} + +static void Interf_Gbd_Sblsnr() +{ + mvToUngrab = Interf_Gbd_Sblsnr_mvToUngrab; + moveToGrab = Interf_Gbd_Sblsnr_moveToGrab; + moveOut = Interf_Gbd_Sblsnr_moveOut; + insideLsnr = Interf_Gbd_Sblsnr_insideLsnr; + focusIn = Interf_Gbd_Sblsnr_focusIn; + becomeLsnr = Interf_Gbd_Sblsnr_becomeLsnr; + swInMod = Interf_Gbd_Sblsnr_swInMod; +} + + + +static void Interf_Am_Sblsnr_focusIn() +{ + extern void Interf_Am_Sblsnr(); +{ + + + Manage_Switch_Sublistener( UWIN_NULL ); + Control_Restore_Grab(); + { Interf_Grabbed_Lsnr(); return; } + + +} +} + +static void Interf_Am_Sblsnr_moveOut() +{ + extern void Interf_Am_Sblsnr(); +{ + + + Manage_Switch_Sublistener( UWIN_NULL ); + + /* Set Grab on (former) Sublistener */ + Control_Restore_Grab(); + +/* Control_Set_Focus( UWIN_NULL ); */ + { Interf_Have_Lsnr(); return; } + + +} +} + +static void Interf_Am_Sblsnr_insideLsnr() +{ + extern void Interf_Am_Sblsnr(); +{ + + + Manage_Switch_Sublistener( UWIN_NULL ); + + /* Set Grab on (former) Sublistener */ + Control_Restore_Grab(); + + /* now re-entering the listener window */ +/* Control_Set_Focus(current_uwinp);*/ + + /* send message to client */ + if ( Userwin_Takes_Focus( current_uwinp ) ) + Client_Take_Focus(current_uwinp); + + { Interf_Grabbed_Lsnr(); return; } + + +} +} + +static void Interf_Am_Sblsnr_mvToUngrab() +{ + extern void Interf_Am_Sblsnr(); +{ + + + { Interf_Am_Sblsnr(); return; } + + +} +} + +static void Interf_Am_Sblsnr_moveToGrab() +{ + extern void Interf_Am_Sblsnr(); +{ + + + /* We might have moved to non-input-accepting */ + /* area or to becomeLsnr region */ + + /* Set Grab on Sublistener to throw input away */ + Control_Restore_Grab(); + + { Interf_Gbd_Sblsnr(); return; } + + +} +} + +static void Interf_Am_Sblsnr_swInMod() +{ + extern void Interf_Am_Sblsnr(); +{ + + + if ( key_makes_listener || button_sets_listener || + !accept_key || !accept_button ) + { + { Interf_Gbd_Clk_Sblsnr(); return; } + } + else + { + Control_Release_Grab(current_uwinp); + { Interf_Click_Sblsnr(); return; } + } + +} +} + +static void Interf_Am_Sblsnr() +{ + focusIn = Interf_Am_Sblsnr_focusIn; + moveOut = Interf_Am_Sblsnr_moveOut; + insideLsnr = Interf_Am_Sblsnr_insideLsnr; + mvToUngrab = Interf_Am_Sblsnr_mvToUngrab; + moveToGrab = Interf_Am_Sblsnr_moveToGrab; + swInMod = Interf_Am_Sblsnr_swInMod; +} + + + +static void Interf_Am_Clk_Lsnr_becomeLsnr() +{ + extern void Interf_Am_Clk_Lsnr(); +{ + + + Control_Set_Focus(current_uwinp); + Manage_Switch_Focus(current_uwinp); + + Control_Release_Grab(current_uwinp); + + { Interf_Am_Clk_Lsnr(); return; } + + +} +} + +static void Interf_Am_Clk_Lsnr_becomeSblsnr() +{ + extern void Interf_Am_Clk_Lsnr(); +{ + + + Manage_Switch_Sublistener(current_uwinp); + if (! Userwin_Is_Iconic(current_uwinp) ) + Control_Set_Focus(current_uwinp); + + Manage_Switch_Focus(current_uwinp); + + Control_Release_Grab(current_uwinp); + + { Interf_Click_Sblsnr(); return; } + + +} +} + +static void Interf_Am_Clk_Lsnr_insideLsnr() +{ + extern void Interf_Am_Clk_Lsnr(); +{ + + + Control_Release_Grab(current_uwinp); + { Interf_Am_Clk_Lsnr(); return; } + + +} +} + +static void Interf_Am_Clk_Lsnr_loseLsnr() +{ + extern void Interf_Am_Clk_Lsnr(); +{ + + + /* Set Grab on (former) listener */ + Control_Restore_Grab(); + + Control_Unset_Focus(); + Manage_Switch_Focus( UWIN_NULL ); + + { Interf_Am_Clk_Lsnr(); return; } + + +} +} + +static void Interf_Am_Clk_Lsnr_focusIn() +{ + extern void Interf_Am_Clk_Lsnr(); +{ + + + Control_Release_Grab(current_uwinp); + { Interf_Am_Clk_Lsnr(); return; } + + +} +} + +static void Interf_Am_Clk_Lsnr_mvToUngrab() +{ + extern void Interf_Am_Clk_Lsnr(); +{ + + + { Interf_Am_Clk_Lsnr(); return; } + + +} +} + +static void Interf_Am_Clk_Lsnr_moveToGrab() +{ + extern void Interf_Am_Clk_Lsnr(); +{ + + + { Interf_Am_Clk_Lsnr(); return; } + + +} +} + +static void Interf_Am_Clk_Lsnr_moveOut() +{ + extern void Interf_Am_Clk_Lsnr(); +{ + + + { Interf_Am_Clk_Lsnr(); return; } + + +} +} + +static void Interf_Am_Clk_Lsnr_swInMod() +{ + extern void Interf_Am_Clk_Lsnr(); +{ + + + if (current_listener != current_uwinp) + { + Control_Set_Focus( UWIN_NULL ); + Manage_Switch_Focus( UWIN_NULL ); + + Control_Restore_Grab(); + { Interf_Have_Lsnr(); return; } + } + else + { + if ( accept_key && accept_button ) + { + { Interf_Am_Lsnr(); return; } + } + else + { + Control_Restore_Grab(); + { Interf_Grabbed_Lsnr(); return; } + } + } + +} +} + +static void Interf_Am_Clk_Lsnr() +{ + becomeLsnr = Interf_Am_Clk_Lsnr_becomeLsnr; + becomeSblsnr = Interf_Am_Clk_Lsnr_becomeSblsnr; + insideLsnr = Interf_Am_Clk_Lsnr_insideLsnr; + loseLsnr = Interf_Am_Clk_Lsnr_loseLsnr; + focusIn = Interf_Am_Clk_Lsnr_focusIn; + mvToUngrab = Interf_Am_Clk_Lsnr_mvToUngrab; + moveToGrab = Interf_Am_Clk_Lsnr_moveToGrab; + moveOut = Interf_Am_Clk_Lsnr_moveOut; + swInMod = Interf_Am_Clk_Lsnr_swInMod; +} + + + +static void Interf_Gbd_Clk_Sblsnr_becomeLsnr() +{ + extern void Interf_Gbd_Clk_Sblsnr(); +{ + + + Manage_Switch_Sublistener( UWIN_NULL ); + + Control_Release_Grab(current_uwinp); + { Interf_Am_Clk_Lsnr(); return; } + + +} +} + +static void Interf_Gbd_Clk_Sblsnr_mvToUngrab() +{ + extern void Interf_Gbd_Clk_Sblsnr(); +{ + + + Control_Release_Grab(current_uwinp); + { Interf_Click_Sblsnr(); return; } + + +} +} + +static void Interf_Gbd_Clk_Sblsnr_moveToGrab() +{ + extern void Interf_Gbd_Clk_Sblsnr(); +{ + + + { Interf_Gbd_Clk_Sblsnr(); return; } + + +} +} + +static void Interf_Gbd_Clk_Sblsnr_moveOut() +{ + extern void Interf_Gbd_Clk_Sblsnr(); +{ + + + Manage_Switch_Sublistener( UWIN_NULL ); + + + if ( current_listener == UWIN_NULL ) + Control_Unset_Focus(); + else + Control_Set_Focus( current_listener ); + + Manage_Switch_Focus( current_listener ); + + + { Interf_Am_Clk_Lsnr(); return; } + + +} +} + +static void Interf_Gbd_Clk_Sblsnr_focusIn() +{ + extern void Interf_Gbd_Clk_Sblsnr(); +{ + + + Manage_Switch_Sublistener( UWIN_NULL ); + + { Interf_Am_Clk_Lsnr(); return; } + + +} +} + +static void Interf_Gbd_Clk_Sblsnr_swInMod() +{ + extern void Interf_Gbd_Clk_Sblsnr(); +{ + + + if ( key_makes_listener || button_sets_listener || + !accept_key || !accept_button ) + { + { Interf_Gbd_Sblsnr(); return; } + } + else + { + Control_Release_Grab(current_uwinp); + { Interf_Am_Sblsnr(); return; } + } + +} +} + +static void Interf_Gbd_Clk_Sblsnr() +{ + becomeLsnr = Interf_Gbd_Clk_Sblsnr_becomeLsnr; + mvToUngrab = Interf_Gbd_Clk_Sblsnr_mvToUngrab; + moveToGrab = Interf_Gbd_Clk_Sblsnr_moveToGrab; + moveOut = Interf_Gbd_Clk_Sblsnr_moveOut; + focusIn = Interf_Gbd_Clk_Sblsnr_focusIn; + swInMod = Interf_Gbd_Clk_Sblsnr_swInMod; +} + + + +static void Interf_Click_Sblsnr_mvToUngrab() +{ + extern void Interf_Click_Sblsnr(); +{ + + + { Interf_Click_Sblsnr(); return; } + + +} +} + +static void Interf_Click_Sblsnr_moveToGrab() +{ + extern void Interf_Click_Sblsnr(); +{ + + + Control_Restore_Grab(); + { Interf_Gbd_Clk_Sblsnr(); return; } + + +} +} + +static void Interf_Click_Sblsnr_moveOut() +{ + extern void Interf_Click_Sblsnr(); +{ + + + Manage_Switch_Sublistener( UWIN_NULL ); + + Control_Restore_Grab(); + + + if ( current_listener == UWIN_NULL ) + Control_Unset_Focus(); + else + Control_Set_Focus( current_listener ); + + Manage_Switch_Focus( current_listener ); + + + { Interf_Am_Clk_Lsnr(); return; } + + +} +} + +static void Interf_Click_Sblsnr_focusIn() +{ + extern void Interf_Click_Sblsnr(); +{ + + + Manage_Switch_Sublistener( UWIN_NULL ); + + Control_Restore_Grab(); + + { Interf_Am_Clk_Lsnr(); return; } + + +} +} + +static void Interf_Click_Sblsnr_swInMod() +{ + extern void Interf_Click_Sblsnr(); +{ + + + if ( key_makes_listener || button_sets_listener || + !accept_key || !accept_button ) + { + Control_Restore_Grab(); + { Interf_Gbd_Sblsnr(); return; } + } + else + { + { Interf_Am_Sblsnr(); return; } + } + +} +} + +static void Interf_Click_Sblsnr() +{ + mvToUngrab = Interf_Click_Sblsnr_mvToUngrab; + moveToGrab = Interf_Click_Sblsnr_moveToGrab; + moveOut = Interf_Click_Sblsnr_moveOut; + focusIn = Interf_Click_Sblsnr_focusIn; + swInMod = Interf_Click_Sblsnr_swInMod; +} + + + +static void Interf_Send_Button(uwinp, kind, button, pos) + Userwin *uwinp; + enum ButKind kind; + Buttons button; + TWPoint pos; +{ + Manage_Note_Input( uwinp ); + Client_Send_Button(uwinp, kind, button, pos); +} + + +static void Interf_Handle_Button() +{ + bool send_button; + Userwin *current_sublistener; + + current_sublistener = Manage_Get_Sublistener(); + + if ( Userwin_Input_Enabled(current_uwinp) ) + { + if ( (current_uwinp != current_listener) && + (current_uwinp != current_sublistener) && + (! button_sets_listener ) && + (! button_sets_sublistener ) ) + send_button = FALSE; + else + send_button = accept_button; + + if ( send_button ) + Interf_Send_Button( current_uwinp, + current_kind, current_but, current_pos ); + else + Client_Ignore_Button(); + + if ( current_uwinp != current_listener ) + { + if ( button_sets_listener ) + { + current_listener = current_uwinp; + Interf_Watch( + Manage_Switch_Listener( current_listener ) ) + (*becomeLsnr)(); + } + + else if ( current_uwinp != current_sublistener ) + { + if ( button_sets_sublistener ) + (*becomeSblsnr)(); + else if ( current_uwinp == UWIN_NULL ) + { + current_listener = UWIN_NULL; + Interf_Watch( + Manage_Switch_Listener( UWIN_NULL ) ) + (*loseLsnr)(); + } + } + } + } + + else if ( current_uwinp != current_listener ) + { + if ( ( current_uwinp == UWIN_NULL ) || + ( Region_Get_Type(current_region) == rtl ) ) + { + current_listener = UWIN_NULL; + Interf_Watch( + Manage_Switch_Listener( UWIN_NULL ) ) + (*loseLsnr)(); + Client_Ignore_Button(); + } + else if ( accept_button ) + Interf_Send_Button( current_uwinp, + current_kind, current_but, current_pos ); + else if ( Userwin_Takes_Focus( current_uwinp ) ) + { + Client_Take_Focus( current_uwinp ); + Client_Ignore_Button(); + Manage_Note_Input( current_uwinp ); + } + else + Client_Ignore_Button(); + } + + else if ( accept_button ) + Interf_Send_Button( current_uwinp, + current_kind, current_but, current_pos ); + else + Client_Ignore_Button(); +} + + +static void Interf_Ignore_Key() +{ + Drawwin_Flash(); + Client_Ignore_Key(); +} + +static void Interf_Send_Key( uwinp, ch ) + Userwin *uwinp; + char ch; +{ + Manage_Note_Input( uwinp ); + Client_Send_Key( uwinp, ch ); +} + + +static void Interf_Handle_Key() +{ + bool key_makes_sublistener; + bool send_key; + Userwin *current_sublistener; + + current_sublistener = Manage_Get_Sublistener(); + + if ( (! inside_client) && (current_ch == 0) ) + Client_Ignore_Key(); /* Modifier Key */ + + else if ( UserGlobals_Get_Option(FOCUS_FOLLOWS_CURSOR) ) + { + if ( current_uwinp == UWIN_NULL ) + Interf_Ignore_Key(); + + else if ( Userwin_Input_Enabled(current_uwinp) ) + { + send_key = accept_key; + + if ( current_uwinp != current_listener ) + { + key_makes_sublistener = (! key_makes_listener) && + accept_key && accept_non_listener; /* temporary */ + + if ( key_makes_listener ) + { + current_listener = current_uwinp; + Interf_Watch( + Manage_Switch_Listener( current_listener ) ) + (*becomeLsnr)(); + } + + else if (current_uwinp != current_sublistener) + { + if ( key_makes_sublistener ) + (*becomeSblsnr)(); + else + send_key = FALSE; + } + + if ( send_key ) + Interf_Send_Key( current_uwinp, current_ch ); + else + Interf_Ignore_Key(); + } + else + { + if ( send_key ) + Interf_Send_Key( current_uwinp, current_ch ); + else + Interf_Ignore_Key(); + } + } + + else if ( current_uwinp != current_listener ) + { + if ( key_makes_listener ) + { + if ( accept_key && accept_non_listener ) + Interf_Send_Key( current_uwinp, current_ch ); + else + Interf_Ignore_Key(); + } + else + Interf_Ignore_Key(); + } + } + + else + { + if ( Manage_Get_Focus() == UWIN_NULL ) + Interf_Ignore_Key(); + else + Interf_Send_Key( Manage_Get_Focus(), current_ch); + } +} + + +void Interf_Handle_FocusIn( uwinp ) + Userwin *uwinp; +{ +/* + current_uwinp = uwinp; + + current_listener = current_uwinp; + Interf_Watch( + Manage_Switch_Listener( current_listener ) ) + Manage_Switch_Focus( current_listener ); + + (*focusIn)(); + + if ( UserGlobals_Get_Option(FOCUS_FOLLOWS_CURSOR) ) + Control_Pointer_To_Window( uwinp ); +*/ +} + + +void Interf_Handle_Leave() +{ + Userwin *current_sublistener; + + current_sublistener = Manage_Get_Sublistener(); + + if (current_uwinp == current_listener || + current_uwinp == current_sublistener) + { + (*moveOut)(); + } + + if ( UserGlobals_Get_Option(FOCUS_FOLLOWS_CURSOR) ) + Manage_Switch_Focus(UWIN_NULL); +} + + +void Interf_Handle_Enter() +{ + Userwin *current_sublistener; + + current_sublistener = Manage_Get_Sublistener(); + + if ( current_listener != Manage_Get_Listener() ) + { + if ( current_listener != UWIN_NULL ) + (*moveOut)(); + current_listener = Manage_Get_Listener(); + } + + Interf_Button_Sets(); + + if ( UserGlobals_Get_Option(FOCUS_FOLLOWS_CURSOR) ) + Interf_Manage_Focus(); + + if (current_listener == current_uwinp) + { + (*insideLsnr)(); + + if ( accept_key && accept_button ) + (*mvToUngrab)(); + else + (*moveToGrab)(); + } + else if ( current_sublistener == current_uwinp ) + { + if ( key_makes_listener || button_sets_listener || + !accept_key || !accept_button ) + (*moveToGrab)(); + else + (*mvToUngrab)(); + } + else + (*moveOut)(); +} + + +void Interf_Enter_Region() +{ + extern void Interf_Inside_Background(); + extern void Interf_Inside_Body(); + extern void Interf_Inside_Header(); + extern void Interf_Inside_Zoom_Gadget(); + extern void Interf_Inside_Move_Gadget(); + extern void Interf_Inside_Side_Border(); + extern void Interf_Ins_Crnr_Border(); + extern void Interf_Inside_Icon(); + extern void Interf_Inside_Rtl(); + + wait_for_click = FALSE; + inside_client = FALSE; + Control_Set_Cursor(Region_Get_Cursor(current_uwinp,current_region)); + switch ( Region_Get_Type(current_region) ) + { + case background: + accept_key = FALSE; + accept_button = FALSE; + accept_non_listener = FALSE; + key_makes_listener = FALSE; + button_makes_listener = FALSE; + { Interf_Inside_Background(); return; } + case body: + inside_client = TRUE; + Client_Enter( current_uwinp, + current_butstate, current_pos ); + accept_key = Userwin_Get_Window_Option( + current_uwinp, ACCEPT_KEY_IN_BODY ); + accept_button = Userwin_Get_Window_Option( + current_uwinp, ACCEPT_BUTTON_IN_BODY ); + accept_non_listener = + UserGlobals_Get_Option(ACCEPT_NON_LISTENER_IN_BODY); + key_makes_listener = + UserGlobals_Get_Option(KEY_MAKES_LISTENER_IN_BODY); + button_makes_listener = + UserGlobals_Get_Option(BUTTON_MAKES_LISTENER_IN_BODY); + Interf_Handle_Enter(); + { Interf_Inside_Body(); return; } + case header: + accept_key = Userwin_Get_Window_Option( + current_uwinp, ACCEPT_KEY_IN_HEADER ); + accept_button = Userwin_Get_Window_Option( + current_uwinp, ACCEPT_BUTTON_IN_HEADER ); + accept_non_listener = + UserGlobals_Get_Option(ACCEPT_NON_LISTENER_IN_HEADER); + key_makes_listener = + UserGlobals_Get_Option(KEY_MAKES_LISTENER_IN_HEADER); + button_makes_listener = + UserGlobals_Get_Option(BUTTON_MAKES_LISTENER_IN_HEADER); + Interf_Handle_Enter(); + { Interf_Inside_Header(); return; } + case zoom_gadget: + accept_key = Userwin_Get_Window_Option( + current_uwinp, ACCEPT_KEY_IN_GADGET ); + accept_button = FALSE; + accept_non_listener = + UserGlobals_Get_Option(ACCEPT_NON_LISTENER_IN_GADGET); + key_makes_listener = + UserGlobals_Get_Option(KEY_MAKES_LISTENER_IN_GADGET); + button_makes_listener = FALSE; + Interf_Handle_Enter(); + { Interf_Inside_Zoom_Gadget(); return; } + case move_gadget: + accept_key = Userwin_Get_Window_Option( + current_uwinp, ACCEPT_KEY_IN_GADGET ); + accept_button = FALSE; + accept_non_listener = + UserGlobals_Get_Option(ACCEPT_NON_LISTENER_IN_GADGET); + key_makes_listener = + UserGlobals_Get_Option(KEY_MAKES_LISTENER_IN_GADGET); + button_makes_listener = FALSE; + Interf_Handle_Enter(); + { Interf_Inside_Move_Gadget(); return; } + case edge: + accept_key = Userwin_Get_Window_Option( + current_uwinp, ACCEPT_KEY_IN_BORDER ); + accept_button = FALSE; + accept_non_listener = + UserGlobals_Get_Option(ACCEPT_NON_LISTENER_IN_BORDER); + key_makes_listener = + UserGlobals_Get_Option(KEY_MAKES_LISTENER_IN_BORDER); + button_makes_listener = FALSE; + Interf_Handle_Enter(); + { Interf_Inside_Side_Border(); return; } + case corner: + accept_key = Userwin_Get_Window_Option( + current_uwinp, ACCEPT_KEY_IN_BORDER ); + accept_button = FALSE; + accept_non_listener = + UserGlobals_Get_Option(ACCEPT_NON_LISTENER_IN_BORDER); + key_makes_listener = + UserGlobals_Get_Option(KEY_MAKES_LISTENER_IN_BORDER); + button_makes_listener = FALSE; + Interf_Handle_Enter(); + { Interf_Ins_Crnr_Border(); return; } + case icon: + accept_key = Userwin_Get_Window_Option( + current_uwinp, ACCEPT_KEY_IN_ICON ); + accept_button = Userwin_Get_Window_Option( + current_uwinp, ACCEPT_BUTTON_IN_ICON ); + accept_non_listener = TRUE; + key_makes_listener = FALSE; + button_makes_listener = FALSE; + Interf_Handle_Enter(); + { Interf_Inside_Icon(); return; } + case rtl: + accept_key = FALSE; + accept_button = FALSE; + accept_non_listener = FALSE; + key_makes_listener = FALSE; + button_makes_listener = FALSE; + Interf_Handle_Enter(); + { Interf_Inside_Rtl(); return; } + } +} + + +void Interf_Reenter_Region() +{ + Interf_Prepare_Reenter(); + Input_Reenter(); + { Interf_Enter_Region(); return; } +} + + +void Interf_Enable_Input(uwinp) + Userwin *uwinp; +{ + Userwin_Enable_Input(uwinp); + if (current_uwinp == uwinp) + { Interf_Reenter_Region(); return; } +} + + +void Interf_Disable_Input( uwinp ) + Userwin *uwinp; +{ + Userwin_Disable_Input(uwinp); + if (current_uwinp == uwinp) + { Interf_Reenter_Region(); return; } +} + + +static void Interf_Wait_Cmplt_Cancel_KEY() +{ + extern void Interf_Wait_Cmplt_Cancel(); +{ + + Drawwin_Flash(); + { Interf_Wait_Cmplt_Cancel(); return; } + +} +} + +static void Interf_Wait_Cmplt_Cancel_MOUSE() +{ + extern void Interf_Wait_Cmplt_Cancel(); +{ + + { Interf_Wait_Cmplt_Cancel(); return; } + +} +} + +static void Interf_Wait_Cmplt_Cancel_button() +{ + extern void Interf_Wait_Cmplt_Cancel(); +{ + + extern void Interf_Cancel_Here(); + { Interf_Cancel_Here(); return; } + +} +} + +static void Interf_Wait_Cmplt_Cancel() +{ + KEY = Interf_Wait_Cmplt_Cancel_KEY; + MOUSE = Interf_Wait_Cmplt_Cancel_MOUSE; + button = Interf_Wait_Cmplt_Cancel_button; +} + + + +static void Interf_Cancel_Here() +{ + complete_down = Buttons_Any_Down(current_butstate); + if ( complete_down ) + { Interf_Wait_Cmplt_Cancel(); return; } + else + { Interf_Reenter_Region(); return; } +} + + +static void Interf_Cancel() +{ + if ( UserGlobals_Get_Option(PLACE_CSR_BACK_ON_CANCEL) ) + Interf_Set_Pos( cancel_pos ); + + { Interf_Cancel_Here(); return; } +} + + +static void Interf_Flash_Cancel() +{ + Drawwin_Flash(); + { Interf_Cancel(); return; } +} + + +static void Interf_Confirmed_Notify_All() +{ + Manage_Notify_All(); + { Interf_Reenter_Region(); return; } +} + + +static void Interf_Confirmed_Soft_Kill_All() +{ + Manage_Soft_Kill_All(); + change_state = TRUE; + { Interf_Reenter_Region(); return; } +} + + +static void Interf_Confirmed_Exit() +{ + Manage_Exit(); + Control_Exit(); + exit(0); +} + + +static void Interf_Confirmed_Pause() +{ + extern void Pause_RTL(); + Pause_RTL(); + { Interf_Reenter_Region(); return; } +} + + +static void Interf_Confirmed_Icon_Notify() +{ + Client_Icon_Notify(current_uwinp); + { Interf_Reenter_Region(); return; } +} + + +static void Interf_Confirmed_Group_Close() +{ + Manage_Group_Close(current_uwinp); + { Interf_Reenter_Region(); return; } +} + + +static void Interf_Confirmed_Group_Open() +{ + Manage_Group_Open(current_uwinp); + { Interf_Reenter_Region(); return; } +} + + +static void Interf_Confirmed_Notify() +{ + Manage_Notify(current_uwinp); + { Interf_Reenter_Region(); return; } +} + + +static void Interf_Confirmed_Delete_Window() +{ + Interf_Watch( + Manage_Delete_Window(current_uwinp) ) + change_state = TRUE; + { Interf_Reenter_Region(); return; } +} + + +static void Interf_Confirmed_Soft_Kill() +{ + Interf_Watch( + Manage_Soft_Kill(current_uwinp) ) + change_state = TRUE; + { Interf_Reenter_Region(); return; } +} + + +static void Interf_Confirmed_Hard_Kill() +{ + Interf_Watch( + Manage_Hard_Kill(current_uwinp) ) + change_state = TRUE; + { Interf_Reenter_Region(); return; } +} + + +static VoidFunc act_func; +static VoidFunc cancel_func; + +static void Interf_Wait_Complete_KEY() +{ + extern void Interf_Wait_Complete(); +{ + + Drawwin_Flash(); + { Interf_Wait_Complete(); return; } + +} +} + +static void Interf_Wait_Complete_MOUSE() +{ + extern void Interf_Wait_Complete(); +{ + + { Interf_Wait_Complete(); return; } + +} +} + +static void Interf_Wait_Complete_button() +{ + extern void Interf_Wait_Complete(); +{ + + extern void Interf_Check_Complete(); + + if ( (current_kind != up) && + Buttons_Match(current_but,CANCEL_BUTTONS) ) + { (*cancel_func)(); return; } + else + { Interf_Check_Complete(); return; } + +} +} + +static void Interf_Wait_Complete() +{ + KEY = Interf_Wait_Complete_KEY; + MOUSE = Interf_Wait_Complete_MOUSE; + button = Interf_Wait_Complete_button; +} + + + +static void Interf_Check_Complete() +{ + complete_down = Buttons_Any_Down(current_butstate); + + if ( complete_down ) + { Interf_Wait_Complete(); return; } + else + { (*act_func)(); return; } +} + + +static void Interf_Arrange( actfunc, cancelfunc ) + VoidFunc actfunc; + VoidFunc cancelfunc; +{ + act_func = actfunc; + cancel_func = cancelfunc; + + { Interf_Check_Complete(); return; } +} + + +static void Interf_Act( actfunc ) + VoidFunc actfunc; +{ + act_func = actfunc; + cancel_func = Interf_Cancel; + + complete_down = Buttons_Any_Down(current_butstate); + + if (! complete_down ) + { (*act_func)(); return; } + else if ( Control_Grab_User( FALSE, watch_tilecursor ) ) + { Interf_Wait_Complete(); return; } + else + { (*act_func)(); return; } +} + + +static VoidFunc wait_prcs; + + +static void Interf_Confirm_Cancel() +{ + Message_Put_Down(); + { Interf_Cancel(); return; } +} + + +static void Interf_Wait_For_Conf_KEY() +{ + extern void Interf_Wait_For_Conf(); +{ + + Drawwin_Flash(); + { Interf_Wait_For_Conf(); return; } + +} +} + +static void Interf_Wait_For_Conf_MOUSE() +{ + extern void Interf_Wait_For_Conf(); +{ + + { Interf_Wait_For_Conf(); return; } + +} +} + +static void Interf_Wait_For_Conf_button() +{ + extern void Interf_Wait_For_Conf(); +{ + + if ( Buttons_Match(current_but,CANCEL_BUTTONS) ) + { Interf_Confirm_Cancel(); return; } + else if ( current_kind == up ) + { Interf_Wait_For_Conf(); return; } + else + { + Message_Put_Down(); + { Interf_Arrange( wait_prcs, Interf_Confirm_Cancel ); return; } + } + +} +} + +static void Interf_Wait_For_Conf() +{ + KEY = Interf_Wait_For_Conf_KEY; + MOUSE = Interf_Wait_For_Conf_MOUSE; + button = Interf_Wait_For_Conf_button; +} + + + +static void Interf_Start_Wait_For_Confirm(msg,prcs) + Message msg; + VoidFunc prcs; +{ + if (! Interf_Start_Grabbing( confirmation_tilecursor ) ) + { Interf_Flash_Cancel(); return; } + Message_Pop_Up(current_pos,msg); + wait_prcs = prcs; + { Interf_Wait_For_Conf(); return; } +} + + + +static TWPoint start_pos; +static bool center_opening; +static bool good_open; +TWPoint last_pos; + +static void Interf_Cancel_Opening() +{ + if ( Userwin_Is_Open(current_uwinp) ) + Drawwin_Unshow_Moving(current_uwinp); + else if ( Userwin_Is_Iconic(current_uwinp) ) + DrawIcon_Unshow_Opening(current_uwinp); + else if (! Userwin_Ever_Opened(current_uwinp) ) + Interf_Watch( + Manage_Client_Open_Icon(current_uwinp) ) + { Interf_Cancel(); return; } +} + +static void Interf_Finish_Opening() +{ + if ( UserGlobals_Get_Option(PLACE_CSR_IN_GADGET_AFT_MAN_OPEN) ) + Interf_Set_Pos( Region_Gadget_Center( current_uwinp ) ); + { Interf_Reenter_Region(); return; } +} + +static void Interf_Act_Center_Opening() +{ + extern void Interf_Start_Icon_Opening(); + extern void Interf_Start_Opening(); + bool result; + + if ( Userwin_Is_Open(current_uwinp) ) + Drawwin_Unshow_Moving(current_uwinp); + else if ( Userwin_Is_Iconic(current_uwinp) ) + DrawIcon_Unshow_Opening(current_uwinp); + + Interf_Watch( + { + result = Manage_Center_Open(current_uwinp,current_pos); + } ) + if ( result ) + { Interf_Finish_Opening(); return; } + + if ( (! Userwin_Is_Open(current_uwinp)) && + Userwin_Is_Iconic(current_uwinp) ) + { Interf_Start_Icon_Opening(); return; } + else + { Interf_Start_Opening(); return; } +} + +static void Interf_Trk_Cont_Ctr_Opng_KEY() +{ + extern void Interf_Trk_Cont_Ctr_Opng(); +{ + + Drawwin_Flash(); + { Interf_Trk_Cont_Ctr_Opng(); return; } + +} +} + +static void Interf_Trk_Cont_Ctr_Opng_MOUSE() +{ + extern void Interf_Trk_Cont_Ctr_Opng(); +{ + + extern void Interf_Start_Continue_Opening(); + { Interf_Start_Continue_Opening(); return; } + +} +} + +static void Interf_Trk_Cont_Ctr_Opng_button() +{ + extern void Interf_Trk_Cont_Ctr_Opng(); +{ + + if ( Buttons_Match(current_but,CANCEL_BUTTONS) ) + { Interf_Cancel_Opening(); return; } + else if ( current_kind != down ) + { + if (! ( Userwin_Sized( current_uwinp ) || + UserGlobals_Get_Option(AUTO_PLACE_ON_UNSIZED_OPEN) ) ) + Drawwin_Flash(); + else + { Interf_Arrange( Interf_Act_Center_Opening, Interf_Cancel_Opening ); return; } + } + { Interf_Trk_Cont_Ctr_Opng(); return; } + +} +} + +static void Interf_Trk_Cont_Ctr_Opng() +{ + KEY = Interf_Trk_Cont_Ctr_Opng_KEY; + MOUSE = Interf_Trk_Cont_Ctr_Opng_MOUSE; + button = Interf_Trk_Cont_Ctr_Opng_button; +} + + +static void Interf_Cancel_Corner_Opening() +{ + Drawwin_Undo_Open_Box(); + { Interf_Cancel_Opening(); return; } +} + +static void Interf_Setup_Corner_Open() +{ + Control_Set_Cursor(corner_open_tilecursor); + good_open = Userwin_Check_Corner_Open( current_uwinp, &start_pos, + ¤t_pos, Top_Left ); + last_pos = current_pos; + if ( good_open ) + Drawwin_Good_Open_Box(start_pos,current_pos); + else + Drawwin_Bad_Open_Box(start_pos,current_pos); +} + +static void Interf_Act_Corner_Opening() +{ + extern void Interf_Start_Continue_Opening(); + bool result; + + Drawwin_Undo_Open_Box(); + + if ( Userwin_Is_Open(current_uwinp) ) + Drawwin_Unshow_Moving(current_uwinp); + else if ( Userwin_Is_Iconic(current_uwinp) ) + DrawIcon_Unshow_Opening(current_uwinp); + + Interf_Watch( + { + result = + Manage_Corner_Open(current_uwinp,start_pos,last_pos, + Buttons_Match(current_but,FORCE_RESET_MIN_MAX_BUTTONS), + Buttons_Match(current_but,UNDESIRE_BUTTONS) ); + } ) + if ( result ) + { Interf_Finish_Opening(); return; } + + if ( Userwin_Is_Open(current_uwinp) ) + Drawwin_Show_Moving(current_uwinp); + else if ( Userwin_Is_Iconic(current_uwinp) ) + DrawIcon_Show_Opening(current_uwinp); + + { Interf_Start_Continue_Opening(); return; } +} + +static void Interf_Trk_Cont_Crnr_Opng_KEY() +{ + extern void Interf_Trk_Cont_Crnr_Opng(); +{ + + Drawwin_Flash(); + { Interf_Trk_Cont_Crnr_Opng(); return; } + +} +} + +static void Interf_Trk_Cont_Crnr_Opng_MOUSE() +{ + extern void Interf_Trk_Cont_Crnr_Opng(); +{ + + extern void Interf_Start_Continue_Opening(); + if ( (last_pos.x == current_pos.x) && (last_pos.y == current_pos.y) ) + { Interf_Trk_Cont_Crnr_Opng(); return; } + Drawwin_Undo_Open_Box(); + { Interf_Start_Continue_Opening(); return; } + +} +} + +static void Interf_Trk_Cont_Crnr_Opng_button() +{ + extern void Interf_Trk_Cont_Crnr_Opng(); +{ + + if ( Buttons_Match(current_but,CANCEL_BUTTONS) ) + { Interf_Cancel_Corner_Opening(); return; } + else if ( good_open && (current_kind != down) ) + { Interf_Arrange( Interf_Act_Corner_Opening, Interf_Cancel_Corner_Opening ) ; return; } + { Interf_Trk_Cont_Crnr_Opng(); return; } + +} +} + +static void Interf_Trk_Cont_Crnr_Opng() +{ + KEY = Interf_Trk_Cont_Crnr_Opng_KEY; + MOUSE = Interf_Trk_Cont_Crnr_Opng_MOUSE; + button = Interf_Trk_Cont_Crnr_Opng_button; +} + + +static void Interf_Start_Continue_Opening() +{ + center_opening = Region_Nearby(start_pos,current_pos); + if ( center_opening ) + { + Control_Set_Cursor(center_open_tilecursor); + { Interf_Trk_Cont_Ctr_Opng(); return; } + } + else + { + Interf_Setup_Corner_Open(); + { Interf_Trk_Cont_Crnr_Opng(); return; } + } +} + +static void Interf_Track_Opening_KEY() +{ + extern void Interf_Track_Opening(); +{ + + Drawwin_Flash(); + { Interf_Track_Opening(); return; } + +} +} + +static void Interf_Track_Opening_MOUSE() +{ + extern void Interf_Track_Opening(); +{ + + { Interf_Track_Opening(); return; } + +} +} + +static void Interf_Track_Opening_button() +{ + extern void Interf_Track_Opening(); +{ + + if ( Buttons_Match(current_but,CANCEL_BUTTONS) ) + { Interf_Cancel_Opening(); return; } + else + { + Control_Set_Cursor(center_open_tilecursor); + start_pos = Interf_Continue_Tracking(); + { Interf_Trk_Cont_Ctr_Opng(); return; } + } + +} +} + +static void Interf_Track_Opening() +{ + KEY = Interf_Track_Opening_KEY; + MOUSE = Interf_Track_Opening_MOUSE; + button = Interf_Track_Opening_button; +} + + +static void Interf_Start_Opening() +{ + Control_Set_Cursor(track_open_tilecursor); + if ( Userwin_Is_Open(current_uwinp) ) + Drawwin_Show_Moving(current_uwinp); + { Interf_Track_Opening(); return; } +} + + + +static void Interf_Cancel_Open_In_Icon() +{ + DrawIcon_Unshow_Opening( current_uwinp ); + { Interf_Cancel(); return; } +} + +static void Interf_Track_Icon_Opening_KEY() +{ + extern void Interf_Track_Icon_Opening(); +{ + + Drawwin_Flash(); + { Interf_Track_Icon_Opening(); return; } + +} +} + +static void Interf_Track_Icon_Opening_MOUSE() +{ + extern void Interf_Track_Icon_Opening(); +{ + + extern void Interf_Open_In_Icon(); + if ( Manage_Locate( current_pos ) == current_uwinp ) + { + Control_Set_Cursor(open_in_icon_tilecursor); + { Interf_Open_In_Icon(); return; } + } + start_pos = current_pos; + { Interf_Track_Icon_Opening(); return; } + +} +} + +static void Interf_Track_Icon_Opening_button() +{ + extern void Interf_Track_Icon_Opening(); +{ + + if ( Buttons_Match(current_but,CANCEL_BUTTONS) ) + { Interf_Cancel_Open_In_Icon(); return; } + else + { + Control_Set_Cursor(center_open_tilecursor); + start_pos = Interf_Continue_Tracking(); + { Interf_Trk_Cont_Ctr_Opng(); return; } + } + +} +} + +static void Interf_Track_Icon_Opening() +{ + KEY = Interf_Track_Icon_Opening_KEY; + MOUSE = Interf_Track_Icon_Opening_MOUSE; + button = Interf_Track_Icon_Opening_button; +} + + +static void Interf_Continue_Icon_Opening() +{ + Control_Set_Cursor(track_open_tilecursor); + { Interf_Track_Icon_Opening(); return; } +} + +static void Interf_Start_Icon_Opening() +{ + if ( Userwin_Is_Iconic(current_uwinp) ) + DrawIcon_Show_Opening(current_uwinp); + { Interf_Continue_Icon_Opening(); return; } +} + +static void Interf_Act_Open_In_Icon() +{ + bool result; + + Interf_Watch( + { + result = Manage_User_Open_Automatically( current_uwinp, + /* Buttons_Match(current_but,FORCE_LISTENER_BUTTONS), */ + FALSE, + Buttons_Match(current_but,FORCE_ZOOM_BUTTONS) ); + } ) + if ( result ) + { + if ( UserGlobals_Get_Option( + PLACE_CSR_GDGT_AFT_US_AUTO_OPEN) ) + Interf_Set_Pos( Region_Gadget_Center( current_uwinp ) ); + if ( Buttons_Match(current_but,FORCE_LISTENER_BUTTONS) ) + /* arghhh */; + } + else + DrawIcon_Unshow_Opening( current_uwinp ); + { Interf_Reenter_Region(); return; } +} + +static void Interf_Open_In_Icon_KEY() +{ + extern void Interf_Open_In_Icon(); +{ + + Drawwin_Flash(); + { Interf_Open_In_Icon(); return; } + +} +} + +static void Interf_Open_In_Icon_MOUSE() +{ + extern void Interf_Open_In_Icon(); +{ + + if ( Manage_Locate( current_pos ) == current_uwinp ) + { Interf_Open_In_Icon(); return; } + else + { Interf_Continue_Icon_Opening(); return; } + +} +} + +static void Interf_Open_In_Icon_button() +{ + extern void Interf_Open_In_Icon(); +{ + + if ( Buttons_Match(current_but,CANCEL_BUTTONS) ) + { Interf_Cancel_Open_In_Icon(); return; } + else if ( current_kind != up ) + { Interf_Arrange( Interf_Act_Open_In_Icon, Interf_Cancel_Open_In_Icon ); return; } + { Interf_Open_In_Icon(); return; } + +} +} + +static void Interf_Open_In_Icon() +{ + KEY = Interf_Open_In_Icon_KEY; + MOUSE = Interf_Open_In_Icon_MOUSE; + button = Interf_Open_In_Icon_button; +} + + +static void Interf_Start_Open_In_Icon() +{ + if (! Interf_Start_Tracking(open_in_icon_tilecursor)) + { Interf_Flash_Cancel(); return; } + DrawIcon_Show_Opening( current_uwinp ); + { Interf_Open_In_Icon(); return; } +} + + +static bool old_gravity; + +typedef bool (*BoolFunc)(); +static BoolFunc resize_proc; + + +static void Interf_Setup_Edge_Resizing() +{ + extern void Interf_Track_Edge_Rszng(); + Userwin_Check_Edge_Resize( current_uwinp, ¤t_pos, current_side ); + last_pos = current_pos; + Drawwin_Edge_Resize(current_uwinp, current_side, current_pos); + { Interf_Track_Edge_Rszng(); return; } +} + +static void Interf_Cancel_Edge_Resizing() +{ + Drawwin_Undo_Edge_Resize(); + Tilwin_Set_Global_Option( ENABLE_GRAVITY, old_gravity ); + { Interf_Cancel(); return; } +} + +static void Interf_Act_Edge_Resizing() +{ + bool result; + + Drawwin_Undo_Edge_Resize(); + Interf_Watch( + { + result = (*resize_proc)(current_uwinp,last_pos,current_side, + Buttons_Match(current_but,FORCE_RESET_MIN_MAX_BUTTONS), + Buttons_Match(current_but,UNDESIRE_BUTTONS) ); + } ) + if ( result ) + { + if ( UserGlobals_Get_Option(PLACE_CSR_IN_BORDER_AFTER_RESIZE) ) + Interf_Set_Pos( Region_Get_Edge_Pos( + current_uwinp, current_side, current_pos ) ); + Tilwin_Set_Global_Option( ENABLE_GRAVITY, old_gravity ); + { Interf_Reenter_Region(); return; } + } + else + { Interf_Setup_Edge_Resizing(); return; } +} + +static void Interf_Track_Edge_Rszng_KEY() +{ + extern void Interf_Track_Edge_Rszng(); +{ + + Drawwin_Flash(); + { Interf_Track_Edge_Rszng(); return; } + +} +} + +static void Interf_Track_Edge_Rszng_MOUSE() +{ + extern void Interf_Track_Edge_Rszng(); +{ + + if ( (last_pos.x == current_pos.x) && (last_pos.y == current_pos.y) ) + { Interf_Track_Edge_Rszng(); return; } + Drawwin_Undo_Edge_Resize(); + { Interf_Setup_Edge_Resizing(); return; } + +} +} + +static void Interf_Track_Edge_Rszng_button() +{ + extern void Interf_Track_Edge_Rszng(); +{ + + if ( Buttons_Match(current_but,CANCEL_BUTTONS) ) + { Interf_Cancel_Edge_Resizing(); return; } + else if ( current_kind != down ) + { Interf_Arrange( Interf_Act_Edge_Resizing, Interf_Cancel_Edge_Resizing ); return; } + { Interf_Track_Edge_Rszng(); return; } + +} +} + +static void Interf_Track_Edge_Rszng() +{ + KEY = Interf_Track_Edge_Rszng_KEY; + MOUSE = Interf_Track_Edge_Rszng_MOUSE; + button = Interf_Track_Edge_Rszng_button; +} + + +static void Interf_Start_Edge_Resizing() +{ + if (! Interf_Start_Tracking( + Region_Get_Cursor(current_uwinp,current_region) ) ) + { Interf_Flash_Cancel(); return; } + resize_proc = Manage_Resize; + old_gravity = Tilwin_Get_Global_Option( ENABLE_GRAVITY ); + if ( Buttons_Match(current_but,TOGGLE_GRAVITY_BUTTONS) ) + Tilwin_Set_Global_Option( ENABLE_GRAVITY, !old_gravity ); + Interf_Track_Edge_Pos(); + { Interf_Setup_Edge_Resizing(); return; } +} + + +static void Interf_Setup_Crnr_Rszng() +{ + extern void Interf_Track_Crnr_Rszng(); + Userwin_Check_Corner_Resize( current_uwinp, ¤t_pos, current_side ); + last_pos = current_pos; + Drawwin_Corner_Resize(current_uwinp, current_side, current_pos); + { Interf_Track_Crnr_Rszng(); return; } +} + +static void Interf_Cancel_Crnr_Rszng() +{ + Drawwin_Undo_Corner_Resize(); + Tilwin_Set_Global_Option( ENABLE_GRAVITY, old_gravity ); + { Interf_Cancel(); return; } +} + +static void Interf_Act_Crnr_Rszng() +{ + bool result; + + Drawwin_Undo_Corner_Resize(); + Interf_Watch( + { + result = (*resize_proc)(current_uwinp,last_pos,current_side, + Buttons_Match(current_but,FORCE_RESET_MIN_MAX_BUTTONS), + Buttons_Match(current_but,UNDESIRE_BUTTONS) ); + } ) + if ( result ) + { + if ( UserGlobals_Get_Option(PLACE_CSR_IN_BORDER_AFTER_RESIZE) ) + Interf_Set_Pos( Region_Get_Corner_Pos( + current_uwinp, current_side ) ); + Tilwin_Set_Global_Option( ENABLE_GRAVITY, old_gravity ); + { Interf_Reenter_Region(); return; } + } + else + { Interf_Setup_Crnr_Rszng(); return; } +} + +static void Interf_Track_Crnr_Rszng_KEY() +{ + extern void Interf_Track_Crnr_Rszng(); +{ + + Drawwin_Flash(); + { Interf_Track_Crnr_Rszng(); return; } + +} +} + +static void Interf_Track_Crnr_Rszng_MOUSE() +{ + extern void Interf_Track_Crnr_Rszng(); +{ + + if ( (last_pos.x == current_pos.x) && (last_pos.y == current_pos.y) ) + { Interf_Track_Crnr_Rszng(); return; } + Drawwin_Undo_Corner_Resize(); + { Interf_Setup_Crnr_Rszng(); return; } + +} +} + +static void Interf_Track_Crnr_Rszng_button() +{ + extern void Interf_Track_Crnr_Rszng(); +{ + + if ( Buttons_Match(current_but,CANCEL_BUTTONS) ) + { Interf_Cancel_Crnr_Rszng(); return; } + else if ( current_kind != down ) + { Interf_Arrange( Interf_Act_Crnr_Rszng, Interf_Cancel_Crnr_Rszng ); return; } + { Interf_Track_Crnr_Rszng(); return; } + +} +} + +static void Interf_Track_Crnr_Rszng() +{ + KEY = Interf_Track_Crnr_Rszng_KEY; + MOUSE = Interf_Track_Crnr_Rszng_MOUSE; + button = Interf_Track_Crnr_Rszng_button; +} + + +static void Interf_Start_Crnr_Rszng() +{ + if (! Interf_Start_Tracking( + Region_Get_Cursor(current_uwinp,current_region) ) ) + { Interf_Flash_Cancel(); return; } + resize_proc = Manage_Resize; + old_gravity = Tilwin_Get_Global_Option( ENABLE_GRAVITY ); + if ( Buttons_Match(current_but,TOGGLE_GRAVITY_BUTTONS) ) + Tilwin_Set_Global_Option( ENABLE_GRAVITY, !old_gravity ); + Interf_Track_Corner_Pos(); + { Interf_Setup_Crnr_Rszng(); return; } +} + + + +static void Interf_Setup_Basing_Rsz() +{ + current_region = Region_Nearest_Border( current_uwinp, current_pos ); + Control_Set_Cursor( Region_Get_Cursor( current_uwinp, current_region ) ); + current_side = Region_Get_Border(current_region); +} + +static void Interf_Start_Resizing() +{ + Interf_Setup_Basing_Rsz(); + old_gravity = Tilwin_Get_Global_Option( ENABLE_GRAVITY ); + if ( resize_proc == Manage_Resize ) + { + if ( Buttons_Match(current_but,TOGGLE_GRAVITY_BUTTONS) ) + Tilwin_Set_Global_Option( ENABLE_GRAVITY, !old_gravity ); + } + else + { + if ( Buttons_Match(current_but,TOGGLE_GRAVITY_BUTTONS) ) + { + if (! old_gravity) + Tilwin_Set_Global_Option( ENABLE_GRAVITY, TRUE ); + } + else + { + if (old_gravity) + Tilwin_Set_Global_Option( ENABLE_GRAVITY, FALSE ); + } + } + Interf_Continue_Tracking(); + switch( Region_Get_Type(current_region) ) + { + case edge: + Interf_Track_Edge_Pos(); + { Interf_Setup_Edge_Resizing(); return; } + case corner: + Interf_Track_Corner_Pos(); + { Interf_Setup_Crnr_Rszng(); return; } + } +} + +static void Interf_Track_Basing_Rsz_KEY() +{ + extern void Interf_Track_Basing_Rsz(); +{ + + Drawwin_Flash(); + { Interf_Track_Basing_Rsz(); return; } + +} +} + +static void Interf_Track_Basing_Rsz_MOUSE() +{ + extern void Interf_Track_Basing_Rsz(); +{ + + Interf_Setup_Basing_Rsz(); + { Interf_Track_Basing_Rsz(); return; } + +} +} + +static void Interf_Track_Basing_Rsz_button() +{ + extern void Interf_Track_Basing_Rsz(); +{ + + if ( Buttons_Match(current_but,CANCEL_BUTTONS) ) + { Interf_Cancel(); return; } + else + { Interf_Start_Resizing(); return; } + +} +} + +static void Interf_Track_Basing_Rsz() +{ + KEY = Interf_Track_Basing_Rsz_KEY; + MOUSE = Interf_Track_Basing_Rsz_MOUSE; + button = Interf_Track_Basing_Rsz_button; +} + + +static void Interf_Start_Basing_Set_Size() +{ + if (! Interf_Start_Tracking( + Region_Get_Cursor( current_uwinp, current_region ) ) ) + { Interf_Flash_Cancel(); return; } + Interf_Set_Pos( cancel_pos ); + Interf_Setup_Basing_Rsz(); + { Interf_Track_Basing_Rsz(); return; } +} + +static void Interf_Start_Basing_Rsz() +{ + resize_proc = Manage_Resize; + { Interf_Start_Basing_Set_Size(); return; } +} + + + +bool good_move; +TWPoint move_offset; +TWPoint move_pos; + +static void Interf_Setup_Moving() +{ + extern void Interf_Track_Moving(); + Size move_siz; + last_pos = current_pos; + move_pos.x = current_pos.x + move_offset.x; + move_pos.y = current_pos.y + move_offset.y; + good_move = Userwin_Check_Move( current_uwinp, &move_pos, &move_siz ); + if ( good_move ) + Drawwin_Good_Move_Box( current_uwinp, move_pos, move_siz ); + else + Drawwin_Bad_Move_Box( current_uwinp, move_pos, move_siz ); + { Interf_Track_Moving(); return; } +} + +static void Interf_Cancel_Moving() +{ + Drawwin_Undo_Move_Box(); + Tilwin_Set_Global_Option( ENABLE_GRAVITY, old_gravity ); + if ( Userwin_Is_Open(current_uwinp) ) + Drawwin_Unshow_Moving(current_uwinp); + else if (! Userwin_Ever_Opened(current_uwinp) ) + Interf_Watch( + Manage_Client_Open_Icon(current_uwinp) ) + { Interf_Cancel(); return; } +} + +static void Interf_Act_Moving() +{ + bool result; + + Drawwin_Undo_Move_Box(); + if ( Userwin_Is_Open(current_uwinp) ) + Drawwin_Unshow_Moving(current_uwinp); + Interf_Watch( + { + result = Manage_Move( current_uwinp, move_pos ); + } ) + if ( result ) + { + if ( UserGlobals_Get_Option(PLACE_CSR_IN_GADGET_AFT_MOVE) ) + Interf_Set_Pos( Region_Gadget_Center( current_uwinp ) ); + Tilwin_Set_Global_Option( ENABLE_GRAVITY, old_gravity ); + { Interf_Reenter_Region(); return; } + } + if ( Userwin_Is_Open(current_uwinp) ) + Drawwin_Show_Moving(current_uwinp); + { Interf_Setup_Moving(); return; } +} + +static void Interf_Track_Moving_KEY() +{ + extern void Interf_Track_Moving(); +{ + + Drawwin_Flash(); + { Interf_Track_Moving(); return; } + +} +} + +static void Interf_Track_Moving_MOUSE() +{ + extern void Interf_Track_Moving(); +{ + + if ( (last_pos.x == current_pos.x) && (last_pos.y == current_pos.y) ) + { Interf_Track_Moving(); return; } + Drawwin_Undo_Move_Box(); + { Interf_Setup_Moving(); return; } + +} +} + +static void Interf_Track_Moving_button() +{ + extern void Interf_Track_Moving(); +{ + + if ( Buttons_Match(current_but,CANCEL_BUTTONS) ) + { Interf_Cancel_Moving(); return; } + else if ( good_move && (current_kind != down) ) + { Interf_Arrange( Interf_Act_Moving, Interf_Cancel_Moving ); return; } + { Interf_Track_Moving(); return; } + +} +} + +static void Interf_Track_Moving() +{ + KEY = Interf_Track_Moving_KEY; + MOUSE = Interf_Track_Moving_MOUSE; + button = Interf_Track_Moving_button; +} + + +static void Interf_Prepare_Moving() +{ + if ( UserGlobals_Get_Option(CENTER_CURSOR_ON_MOVE) ) + move_offset = Interf_Track_Center_Pos(); + else + move_offset = Interf_Center_Offset(); + if ( Userwin_Is_Open(current_uwinp) ) + Drawwin_Show_Moving(current_uwinp); + { Interf_Setup_Moving(); return; } +} + +static void Interf_Start_Moving() +{ + if (! Interf_Start_Tracking( move_tilecursor )) + { Interf_Flash_Cancel(); return; } + old_gravity = Tilwin_Get_Global_Option( ENABLE_GRAVITY ); + { Interf_Prepare_Moving(); return; } +} + +static void Interf_Start_Gravity_Moving() +{ + if (! Interf_Start_Tracking( move_tilecursor )) + { Interf_Flash_Cancel(); return; } + old_gravity = Tilwin_Get_Global_Option( ENABLE_GRAVITY ); + if ( Buttons_Match(current_but,TOGGLE_GRAVITY_BUTTONS) ) + Tilwin_Set_Global_Option( ENABLE_GRAVITY, !old_gravity ); + { Interf_Prepare_Moving(); return; } +} + + + +static void Interf_Setup_Vert_Moving() +{ + extern void Interf_Track_Vert_Moving(); + Size move_siz; + move_pos.x = Userwin_Get_Center(current_uwinp).x; + move_pos.y = current_pos.y + move_offset.y; + good_move = Userwin_Check_Move( current_uwinp, &move_pos, &move_siz ); + if ( good_move ) + Drawwin_Good_Move_Box( current_uwinp, move_pos, move_siz ); + else + Drawwin_Bad_Move_Box( current_uwinp, move_pos, move_siz ); + { Interf_Track_Vert_Moving(); return; } +} + +static void Interf_Cancel_Vert_Moving() +{ + Drawwin_Undo_Move_Box(); + Drawwin_Unshow_Moving(current_uwinp); + Tilwin_Set_Global_Option( ENABLE_GRAVITY, old_gravity ); + { Interf_Cancel(); return; } +} + +static void Interf_Act_Vert_Moving() +{ + bool result; + + Drawwin_Undo_Move_Box(); + Drawwin_Unshow_Moving(current_uwinp); + Interf_Watch( + { + result = Manage_Move( current_uwinp, move_pos ); + } ) + if ( result ) + { + if ( UserGlobals_Get_Option(PLACE_CSR_IN_GADGET_AFT_MOVE) ) + Interf_Set_Pos( Region_Gadget_Center( current_uwinp ) ); + Tilwin_Set_Global_Option( ENABLE_GRAVITY, old_gravity ); + { Interf_Reenter_Region(); return; } + } + Drawwin_Show_Moving(current_uwinp); + { Interf_Setup_Vert_Moving(); return; } +} + +static void Interf_Track_Vert_Moving_KEY() +{ + extern void Interf_Track_Vert_Moving(); +{ + + Drawwin_Flash(); + { Interf_Track_Vert_Moving(); return; } + +} +} + +static void Interf_Track_Vert_Moving_MOUSE() +{ + extern void Interf_Track_Vert_Moving(); +{ + + Drawwin_Undo_Move_Box(); + { Interf_Setup_Vert_Moving(); return; } + +} +} + +static void Interf_Track_Vert_Moving_button() +{ + extern void Interf_Track_Vert_Moving(); +{ + + if ( Buttons_Match(current_but,CANCEL_BUTTONS) ) + { Interf_Cancel_Vert_Moving(); return; } + else if ( good_move && (current_kind != down) ) + { Interf_Arrange( Interf_Act_Vert_Moving, Interf_Cancel_Vert_Moving ); return; } + { Interf_Track_Vert_Moving(); return; } + +} +} + +static void Interf_Track_Vert_Moving() +{ + KEY = Interf_Track_Vert_Moving_KEY; + MOUSE = Interf_Track_Vert_Moving_MOUSE; + button = Interf_Track_Vert_Moving_button; +} + + +static void Interf_Start_Vert_Moving() +{ + if (! Interf_Start_Tracking( move_tilecursor )) + { Interf_Flash_Cancel(); return; } + old_gravity = Tilwin_Get_Global_Option( ENABLE_GRAVITY ); + if ( Buttons_Match(current_but,TOGGLE_GRAVITY_BUTTONS) ) + Tilwin_Set_Global_Option( ENABLE_GRAVITY, !old_gravity ); + if ( UserGlobals_Get_Option(CENTER_CURSOR_ON_MOVE) ) + move_offset = Interf_Track_Center_Pos(); + else + move_offset = Interf_Center_Offset(); + Drawwin_Show_Moving(current_uwinp); + Control_Set_Cursor( move_tilecursor ); + { Interf_Setup_Vert_Moving(); return; } +} + + + +static void Interf_Setup_Horiz_Moving() +{ + extern void Interf_Track_Horiz_Moving(); + Size move_siz; + move_pos.x = current_pos.x + move_offset.x; + move_pos.y = Userwin_Get_Center(current_uwinp).y; + good_move = Userwin_Check_Move( current_uwinp, &move_pos, &move_siz ); + if ( good_move ) + Drawwin_Good_Move_Box( current_uwinp, move_pos, move_siz ); + else + Drawwin_Bad_Move_Box( current_uwinp, move_pos, move_siz ); + { Interf_Track_Horiz_Moving(); return; } +} + +static void Interf_Cancel_Horiz_Moving() +{ + Drawwin_Undo_Move_Box(); + Drawwin_Unshow_Moving(current_uwinp); + Tilwin_Set_Global_Option( ENABLE_GRAVITY, old_gravity ); + { Interf_Cancel(); return; } +} + +static void Interf_Act_Horiz_Moving() +{ + bool result; + + Drawwin_Undo_Move_Box(); + Drawwin_Unshow_Moving(current_uwinp); + Interf_Watch( + { + result = Manage_Move( current_uwinp, move_pos ); + } ) + if ( result ) + { + if ( UserGlobals_Get_Option(PLACE_CSR_IN_GADGET_AFT_MOVE) ) + Interf_Set_Pos( Region_Gadget_Center( current_uwinp ) ); + Tilwin_Set_Global_Option( ENABLE_GRAVITY, old_gravity ); + { Interf_Reenter_Region(); return; } + } + Drawwin_Show_Moving(current_uwinp); + { Interf_Setup_Horiz_Moving(); return; } +} + +static void Interf_Track_Horiz_Moving_KEY() +{ + extern void Interf_Track_Horiz_Moving(); +{ + + Drawwin_Flash(); + { Interf_Track_Horiz_Moving(); return; } + +} +} + +static void Interf_Track_Horiz_Moving_MOUSE() +{ + extern void Interf_Track_Horiz_Moving(); +{ + + Drawwin_Undo_Move_Box(); + { Interf_Setup_Horiz_Moving(); return; } + +} +} + +static void Interf_Track_Horiz_Moving_button() +{ + extern void Interf_Track_Horiz_Moving(); +{ + + if ( Buttons_Match(current_but,CANCEL_BUTTONS) ) + { Interf_Cancel_Horiz_Moving(); return; } + else if ( good_move && (current_kind != down) ) + { Interf_Arrange( Interf_Act_Horiz_Moving, Interf_Cancel_Horiz_Moving ); return; } + { Interf_Track_Horiz_Moving(); return; } + +} +} + +static void Interf_Track_Horiz_Moving() +{ + KEY = Interf_Track_Horiz_Moving_KEY; + MOUSE = Interf_Track_Horiz_Moving_MOUSE; + button = Interf_Track_Horiz_Moving_button; +} + + +static void Interf_Start_Horiz_Moving() +{ + if (! Interf_Start_Tracking( move_tilecursor )) + { Interf_Flash_Cancel(); return; } + old_gravity = Tilwin_Get_Global_Option( ENABLE_GRAVITY ); + if ( Buttons_Match(current_but,TOGGLE_GRAVITY_BUTTONS) ) + Tilwin_Set_Global_Option( ENABLE_GRAVITY, !old_gravity ); + if ( UserGlobals_Get_Option(CENTER_CURSOR_ON_MOVE) ) + move_offset = Interf_Track_Center_Pos(); + else + move_offset = Interf_Center_Offset(); + Drawwin_Show_Moving(current_uwinp); + Control_Set_Cursor( move_tilecursor ); + { Interf_Setup_Horiz_Moving(); return; } +} + + + +static void Interf_Setup_Icon_Moving() +{ + extern void Interf_Track_Icon_Moving(); + Size move_siz; + move_pos.x = current_pos.x + move_offset.x; + move_pos.y = current_pos.y + move_offset.y; + good_move = Userwin_Check_Icon_Move( current_uwinp, &move_pos, &move_siz ); + if ( good_move ) + DrawIcon_Good_Move_Box( current_uwinp, move_pos, move_siz ); + else + DrawIcon_Bad_Move_Box( current_uwinp, move_pos, move_siz ); + { Interf_Track_Icon_Moving(); return; } +} + +static void Interf_Cancel_Icon_Moving() +{ + DrawIcon_Undo_Move_Box(); + DrawIcon_Unshow_Moving(current_uwinp); + Tilwin_Set_Global_Option( ENABLE_GRAVITY, old_gravity ); + { Interf_Cancel(); return; } +} + +static void Interf_Act_Icon_Moving() +{ + bool result; + + DrawIcon_Undo_Move_Box(); + DrawIcon_Unshow_Moving(current_uwinp); + Interf_Watch( + { + result = Manage_Icon_Move( current_uwinp, move_pos ); + } ) + if ( result ) + { + Tilwin_Set_Global_Option( ENABLE_GRAVITY, old_gravity ); + { Interf_Reenter_Region(); return; } + } + DrawIcon_Show_Moving(current_uwinp); + { Interf_Setup_Icon_Moving(); return; } +} + +static void Interf_Track_Icon_Moving_KEY() +{ + extern void Interf_Track_Icon_Moving(); +{ + + Drawwin_Flash(); + { Interf_Track_Icon_Moving(); return; } + +} +} + +static void Interf_Track_Icon_Moving_MOUSE() +{ + extern void Interf_Track_Icon_Moving(); +{ + + DrawIcon_Undo_Move_Box(); + { Interf_Setup_Icon_Moving(); return; } + +} +} + +static void Interf_Track_Icon_Moving_button() +{ + extern void Interf_Track_Icon_Moving(); +{ + + if ( Buttons_Match(current_but,CANCEL_BUTTONS) ) + { Interf_Cancel_Icon_Moving(); return; } + else if ( good_move && (current_kind != down) ) + { Interf_Arrange( Interf_Act_Icon_Moving, Interf_Cancel_Icon_Moving ); return; } + { Interf_Track_Icon_Moving(); return; } + +} +} + +static void Interf_Track_Icon_Moving() +{ + KEY = Interf_Track_Icon_Moving_KEY; + MOUSE = Interf_Track_Icon_Moving_MOUSE; + button = Interf_Track_Icon_Moving_button; +} + + +static void Interf_Start_Icon_Moving() +{ + if (! Interf_Start_Tracking( move_tilecursor )) + { Interf_Flash_Cancel(); return; } + old_gravity = Tilwin_Get_Global_Option( ENABLE_GRAVITY ); + if ( UserGlobals_Get_Option(CENTER_CURSOR_ON_MOVE) ) + move_offset = Interf_Track_Icon_Center_Pos(); + else + move_offset = Interf_Icon_Center_Offset(); + DrawIcon_Show_Moving(current_uwinp); + Control_Set_Cursor( move_tilecursor ); + { Interf_Setup_Icon_Moving(); return; } +} + +static void Interf_Start_Gravity_Icon_Moving() +{ + if (! Interf_Start_Tracking( move_tilecursor )) + { Interf_Flash_Cancel(); return; } + old_gravity = Tilwin_Get_Global_Option( ENABLE_GRAVITY ); + if ( Buttons_Match(current_but,TOGGLE_GRAVITY_BUTTONS) ) + Tilwin_Set_Global_Option( ENABLE_GRAVITY, !old_gravity ); + if ( UserGlobals_Get_Option(CENTER_CURSOR_ON_MOVE) ) + move_offset = Interf_Track_Icon_Center_Pos(); + else + move_offset = Interf_Icon_Center_Offset(); + DrawIcon_Show_Moving(current_uwinp); + Control_Set_Cursor( move_tilecursor ); + { Interf_Setup_Icon_Moving(); return; } +} + + + +Userwin *exchange_uwinp; +bool good_exchange; + +static void Interf_Show_Exchanging() +{ + if ( Userwin_Is_Iconic( current_uwinp ) ) + DrawIcon_Show_Moving( current_uwinp ); + else + Drawwin_Show_Moving( current_uwinp ); +} + +static void Interf_Unshow_Exchanging() +{ + if ( Userwin_Is_Iconic( current_uwinp ) ) + DrawIcon_Unshow_Moving( current_uwinp ); + else + Drawwin_Unshow_Moving( current_uwinp ); +} + +static void Interf_Setup_Exchanging() +{ + extern void Interf_Track_Exchanging(); + exchange_uwinp = Manage_Locate( current_pos ); + good_exchange = + ( ( exchange_uwinp != current_uwinp ) + && ( exchange_uwinp != UWIN_NULL ) ); + if ( good_exchange ) + Control_Set_Cursor(good_exchange_tilecursor); + else + Control_Set_Cursor(bad_exchange_tilecursor); + { Interf_Track_Exchanging(); return; } +} + +static void Interf_Cancel_Exchanging() +{ + Interf_Unshow_Exchanging(); + { Interf_Cancel(); return; } +} + +static void Interf_Act_Exchanging() +{ + bool result; + + Interf_Unshow_Exchanging(); + Interf_Watch( + { + result = Manage_Exchange( current_uwinp, exchange_uwinp ); + } ) + if ( result ) + { + if ( UserGlobals_Get_Option( + PLACE_CSR_IN_GADGET_AFT_EXCHANGE) && + (! Userwin_Is_Iconic( current_uwinp ) ) ) + Interf_Set_Pos( Region_Gadget_Center( current_uwinp ) ); + { Interf_Reenter_Region(); return; } + } + Interf_Show_Exchanging(); + { Interf_Setup_Exchanging(); return; } +} + +static void Interf_Track_Exchanging_KEY() +{ + extern void Interf_Track_Exchanging(); +{ + + Drawwin_Flash(); + { Interf_Track_Exchanging(); return; } + +} +} + +static void Interf_Track_Exchanging_MOUSE() +{ + extern void Interf_Track_Exchanging(); +{ + + { Interf_Setup_Exchanging(); return; } + +} +} + +static void Interf_Track_Exchanging_button() +{ + extern void Interf_Track_Exchanging(); +{ + + if ( Buttons_Match(current_but,CANCEL_BUTTONS) ) + { Interf_Cancel_Exchanging(); return; } + else if ( good_exchange && ( current_kind != down ) ) + { Interf_Arrange( Interf_Act_Exchanging, Interf_Cancel_Exchanging ); return; } + else + Drawwin_Flash(); + { Interf_Setup_Exchanging(); return; } + +} +} + +static void Interf_Track_Exchanging() +{ + KEY = Interf_Track_Exchanging_KEY; + MOUSE = Interf_Track_Exchanging_MOUSE; + button = Interf_Track_Exchanging_button; +} + + +static void Interf_Start_Exchanging() +{ + if (! Interf_Start_Tracking( bad_exchange_tilecursor ) ) + { Interf_Flash_Cancel(); return; } + Interf_Show_Exchanging(); + { Interf_Setup_Exchanging(); return; } +} + + + +static void Interf_Start_Relocating() +{ + if (! Interf_Start_Tracking(track_open_tilecursor)) + { Interf_Flash_Cancel(); return; } + if ( UserGlobals_Get_Option(CENTER_CURSOR_ON_RELOCATE) ) + Interf_Track_Center_Pos(); + { Interf_Start_Opening(); return; } +} + + +static void Interf_Close() +{ + Interf_Watch( + Manage_Close(current_uwinp) ) + if ( UserGlobals_Get_Option(PLACE_CSR_IN_ICON_AFTER_CLOSE) && + Userwin_Is_Iconic(current_uwinp) ) + Interf_Set_Pos( Userwin_Get_Icon_Center(current_uwinp) ); + change_state = TRUE; + { Interf_Reenter_Region(); return; } +} + + +static void Interf_Invoke() +{ + Tool_Invoke(0); + { Interf_Reenter_Region(); return; } +} + +static void Interf_Redraw_All() +{ + Manage_Redraw_All(); + { Interf_Reenter_Region(); return; } +} + +static void Interf_Redraw() +{ + Manage_Redraw( current_uwinp ); + { Interf_Reenter_Region(); return; } +} + +static void Interf_Enlarge() +{ + Interf_Watch( + Manage_Enlarge(current_uwinp) ) + { Interf_Reenter_Region(); return; } +} + +static void Interf_Desire() +{ + Interf_Watch( + Manage_Desire(current_uwinp) ) + { Interf_Reenter_Region(); return; } +} + +static void Interf_Toggle_Zoom() +{ + Interf_Watch( + Manage_Toggle_Zoom(current_uwinp) ) + { Interf_Reenter_Region(); return; } +} + +static void Interf_Toggle_Zoom_Lock() +{ + Interf_Watch( + Manage_Toggle_Zoom_Lock(current_uwinp) ) + { Interf_Reenter_Region(); return; } +} + +static void Interf_Open() +{ + bool result; + + Interf_Watch( + { + result = Manage_User_Open_Automatically( + current_uwinp, FALSE, FALSE ); + } ) + if ( result && + UserGlobals_Get_Option( + PLACE_CSR_GDGT_AFT_US_AUTO_OPEN) ) + Interf_Set_Pos( Region_Gadget_Center(current_uwinp) ); + { Interf_Reenter_Region(); return; } +} + + + +static void Interf_Inside_Background_ENTER() +{ + extern void Interf_Inside_Background(); +{ + + { Interf_Enter_Region(); return; } + +} +} + +static void Interf_Inside_Background_KEY() +{ + extern void Interf_Inside_Background(); +{ + + Interf_Handle_Key(); + { Interf_Inside_Background(); return; } + +} +} + +static void Interf_Inside_Background_button() +{ + extern void Interf_Inside_Background(); +{ + + if ( Buttons_Match( current_but, TOOL_BUTTONS ) ) + { + if (current_kind != up) + { Interf_Act( Interf_Invoke ); return; } + } + else if ( Buttons_Match( current_but, REDRAW_BUTTONS ) ) + { + if (current_kind != up) + { Interf_Act( Interf_Redraw_All ); return; } + } + else if ( Buttons_Match( current_but, HEADER_MANAGER_MENU_BUTTONS ) ) + { + if (current_kind != up) + { + { Interf_Menu_Enter( manager_background_menu, Buttons_Number(current_but ), current_kind ); return; } + } + } + else + { + Interf_Handle_Button(); + { Interf_Inside_Background(); return; } + } + +} +} + +static void Interf_Inside_Background() +{ + ENTER = Interf_Inside_Background_ENTER; + KEY = Interf_Inside_Background_KEY; + button = Interf_Inside_Background_button; +} + + + +static void Interf_Leave() +{ + Interf_Handle_Leave(); + current_uwinp = UWIN_NULL; + current_region = Region_Locate( current_uwinp, current_pos ); + { Interf_Enter_Region(); return; } +} + + +static void Interf_Inside_Rtl_LEAVE() +{ + extern void Interf_Inside_Rtl(); +{ + + { Interf_Leave(); return; } + +} +} + +static void Interf_Inside_Rtl_ENTER() +{ + extern void Interf_Inside_Rtl(); +{ + + { Interf_Enter_Region(); return; } + +} +} + +static void Interf_Inside_Rtl_KEY() +{ + extern void Interf_Inside_Rtl(); +{ + + Drawwin_Flash(); + { Interf_Inside_Rtl(); return; } + +} +} + +static void Interf_Inside_Rtl_button() +{ + extern void Interf_Inside_Rtl(); +{ + + if ( UserGlobals_Get_Option(REDRAW_IN_ICON) && + Buttons_Match( current_but, REDRAW_BUTTONS ) ) + { + if (current_kind != up) + { Interf_Act( Interf_Redraw_All ); return; } + } + else if ( UserGlobals_Get_Option(EXCHANGE_IN_ICON) && + Buttons_Match(current_but,EXCHANGE_BUTTONS) ) + { + if (current_kind != up) + { Interf_Start_Exchanging(); return; } + } + else if ( UserGlobals_Get_Option(MOVE_IN_ICON) && + Buttons_Match(current_but,ICON_MOVE_BUTTONS) ) + { + if (current_kind != up) + { Interf_Start_Gravity_Icon_Moving(); return; } + } + else if ( Buttons_Match( current_but, EXIT_BUTTONS ) ) + { + if (current_kind != up) + { Interf_Start_Wait_For_Confirm(exitmsg,Interf_Confirmed_Exit); return; } + } + else if ( Buttons_Match( current_but, HEADER_MANAGER_MENU_BUTTONS ) ) + { + if ( current_kind != up ) + { Interf_Menu_Enter( manager_background_menu, Buttons_Number(current_but ), current_kind ); return; } + } + else + { + Interf_Handle_Button(); + { Interf_Inside_Rtl(); return; } + } + { Interf_Inside_Rtl(); return; } + +} +} + +static void Interf_Inside_Rtl() +{ + LEAVE = Interf_Inside_Rtl_LEAVE; + ENTER = Interf_Inside_Rtl_ENTER; + KEY = Interf_Inside_Rtl_KEY; + button = Interf_Inside_Rtl_button; +} + + + +static void Interf_Inside_Body_LEAVE() +{ + extern void Interf_Inside_Body(); +{ + + { Interf_Leave(); return; } + +} +} + +static void Interf_Inside_Body_ENTER() +{ + extern void Interf_Inside_Body(); +{ + + { Interf_Enter_Region(); return; } + +} +} + +static void Interf_Inside_Body_MOUSE() +{ + extern void Interf_Inside_Body(); +{ + + Client_Send_Mouse(current_uwinp, + current_butstate, current_pos); + { Interf_Inside_Body(); return; } + +} +} + +static void Interf_Inside_Body_KEY() +{ + extern void Interf_Inside_Body(); +{ + + Interf_Handle_Key(); + { Interf_Inside_Body(); return; } + +} +} + +static void Interf_Inside_Body_button() +{ + extern void Interf_Inside_Body(); +{ + + if ( UserGlobals_Get_Option(MANAGER_MENU_IN_BODY) && + Buttons_Match(current_but,BODY_MANAGER_MENU_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Menu_Enter( manager_window_menu, Buttons_Number(current_but), current_kind ); return; } + } + else if ( UserGlobals_Get_Option(USER_MENU_IN_BODY) + && Buttons_Match(current_but,BODY_USER_MENU_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Menu_Enter( Region_Get_Menu(current_uwinp,current_region), Buttons_Number(current_but), current_kind ); return; } + } + else + Interf_Handle_Button(); + { Interf_Inside_Body(); return; } + +} +} + +static void Interf_Inside_Body() +{ + LEAVE = Interf_Inside_Body_LEAVE; + ENTER = Interf_Inside_Body_ENTER; + MOUSE = Interf_Inside_Body_MOUSE; + KEY = Interf_Inside_Body_KEY; + button = Interf_Inside_Body_button; +} + + + +static void Interf_Inside_Header_LEAVE() +{ + extern void Interf_Inside_Header(); +{ + + { Interf_Leave(); return; } + +} +} + +static void Interf_Inside_Header_ENTER() +{ + extern void Interf_Inside_Header(); +{ + + { Interf_Enter_Region(); return; } + +} +} + +static void Interf_Inside_Header_KEY() +{ + extern void Interf_Inside_Header(); +{ + + Interf_Handle_Key(); + { Interf_Inside_Header(); return; } + +} +} + +static void Interf_Inside_Header_button() +{ + extern void Interf_Inside_Header(); +{ + + if ( UserGlobals_Get_Option(REDRAW_IN_HEADER) && + Buttons_Match(current_but,REDRAW_BUTTONS) ) + { + if (current_kind != up) + { Interf_Act( Interf_Redraw ); return; } + } + else if ( UserGlobals_Get_Option(CLOSE_IN_HEADER) && + Buttons_Match(current_but,CLOSE_BUTTONS) ) + { + if (current_kind != up) + { Interf_Act( Interf_Close ); return; } + } + else if ( UserGlobals_Get_Option(ZOOM_IN_HEADER) && + Buttons_Match(current_but,ZOOM_BUTTONS) ) + { + if (current_kind != up) + { Interf_Act( Interf_Toggle_Zoom ); return; } + } + else if ( UserGlobals_Get_Option(DESIRE_IN_HEADER) && + Buttons_Match(current_but,DESIRE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Act( Interf_Desire ); return; } + } + else if ( UserGlobals_Get_Option(ENLARGE_IN_HEADER) && + Buttons_Match(current_but,ENLARGE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Act( Interf_Enlarge ); return; } + } + else if ( UserGlobals_Get_Option(RESIZE_IN_HEADER) && + Buttons_Match(current_but,RESIZE_BUTTONS) ) + { + if (current_kind != up) + { Interf_Start_Basing_Rsz(); return; } + } + else if ( UserGlobals_Get_Option(RELOCATE_IN_HEADER) && + Buttons_Match(current_but,RELOCATE_BUTTONS) ) + { + if (current_kind != up) + { Interf_Start_Relocating(); return; } + } + else if ( UserGlobals_Get_Option(EXCHANGE_IN_HEADER) && + Buttons_Match(current_but,EXCHANGE_BUTTONS) ) + { + if (current_kind != up) + { Interf_Start_Exchanging(); return; } + } + else if ( UserGlobals_Get_Option(MOVE_IN_HEADER) && + Buttons_Match(current_but,MOVE_BUTTONS) ) + { + if (current_kind != up) + { Interf_Start_Gravity_Moving(); return; } + } + if ( UserGlobals_Get_Option(USER_MENU_IN_HEADER) && + Buttons_Match(current_but,HEADER_USER_MENU_BUTTONS) ) + { + if (current_kind != up) + { Interf_Menu_Enter( Region_Get_Menu(current_uwinp,current_region), Buttons_Number(current_but), current_kind ); return; } + } + else if ( UserGlobals_Get_Option(MANAGER_MENU_IN_HEADER) && + Buttons_Match(current_but,HEADER_MANAGER_MENU_BUTTONS) ) + { + if (current_kind != up) + { Interf_Menu_Enter( manager_window_menu, Buttons_Number(current_but), current_kind ); return; } + } + else + Interf_Handle_Button(); + { Interf_Inside_Header(); return; } + +} +} + +static void Interf_Inside_Header() +{ + LEAVE = Interf_Inside_Header_LEAVE; + ENTER = Interf_Inside_Header_ENTER; + KEY = Interf_Inside_Header_KEY; + button = Interf_Inside_Header_button; +} + + + +static void Interf_Inside_Icon_LEAVE() +{ + extern void Interf_Inside_Icon(); +{ + + { Interf_Leave(); return; } + +} +} + +static void Interf_Inside_Icon_ENTER() +{ + extern void Interf_Inside_Icon(); +{ + + { Interf_Enter_Region(); return; } + +} +} + +static void Interf_Inside_Icon_KEY() +{ + extern void Interf_Inside_Icon(); +{ + + Interf_Handle_Key(); + { Interf_Inside_Icon(); return; } + +} +} + +static void Interf_Inside_Icon_button() +{ + extern void Interf_Inside_Icon(); +{ + + if ( Buttons_Match(current_but,ICON_OPEN_BUTTONS) ) + { + if ( Userwin_Group_Closed( current_uwinp ) ) + { + if (current_kind != up) + { Interf_Start_Wait_For_Confirm(groupmsg,Interf_Confirmed_Group_Open); return; } + } + else if ( Userwin_Notifies_Icon( current_uwinp ) ) + { + if (current_kind != up) + { Interf_Start_Wait_For_Confirm(notifymsg,Interf_Confirmed_Icon_Notify); return; } + } + else + { + if ( UserGlobals_Get_Option(AUTO_PLACE_ON_ICON_OPEN) ) + { + if ( UserGlobals_Get_Option(AUTO_PLACE_ON_UNSIZED_OPEN) || + Userwin_Sized( current_uwinp ) ) + { + if ( current_kind != up ) + { Interf_Act( Interf_Open ); return; } + } + else if ( current_kind != up ) + { + if (! Interf_Start_Tracking(track_open_tilecursor)) + { Interf_Flash_Cancel(); return; } + { Interf_Start_Opening(); return; } + } + } + else if ( current_kind != up ) + { + if ( Manage_Get_Focus() == current_uwinp ) + Manage_Switch_Focus( UWIN_NULL ); + { Interf_Start_Open_In_Icon(); return; } + } + } + } + else if ( UserGlobals_Get_Option(REDRAW_IN_ICON) && + Buttons_Match(current_but,REDRAW_BUTTONS) ) + { + if (current_kind != up) + { Interf_Act( Interf_Redraw ); return; } + } + else if ( UserGlobals_Get_Option(EXCHANGE_IN_ICON) && + Buttons_Match(current_but,EXCHANGE_BUTTONS) ) + { + if (current_kind != up) + { Interf_Start_Exchanging(); return; } + } + else if ( UserGlobals_Get_Option(MOVE_IN_ICON) && + Buttons_Match(current_but,ICON_MOVE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Start_Gravity_Icon_Moving(); return; } + } + else if ( UserGlobals_Get_Option(USER_MENU_IN_ICON) && + Buttons_Match(current_but,HEADER_USER_MENU_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Menu_Enter( Region_Get_Menu(current_uwinp,current_region), Buttons_Number(current_but), current_kind ); return; } + } + else if ( UserGlobals_Get_Option(MANAGER_MENU_IN_ICON) && + Buttons_Match(current_but,HEADER_MANAGER_MENU_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Menu_Enter( manager_icon_menu, Buttons_Number(current_but), current_kind ); return; } + } + else if ( Buttons_Match(current_but,DISCONNECT_BUTTONS) ) + { + if (current_kind != up) + { Interf_Start_Wait_For_Confirm(hardmsg,Interf_Confirmed_Hard_Kill); return; } + } + else + Interf_Handle_Button(); + { Interf_Inside_Icon(); return; } + +} +} + +static void Interf_Inside_Icon() +{ + LEAVE = Interf_Inside_Icon_LEAVE; + ENTER = Interf_Inside_Icon_ENTER; + KEY = Interf_Inside_Icon_KEY; + button = Interf_Inside_Icon_button; +} + + + +static void Interf_Inside_Zoom_Gadget_LEAVE() +{ + extern void Interf_Inside_Zoom_Gadget(); +{ + + { Interf_Leave(); return; } + +} +} + +static void Interf_Inside_Zoom_Gadget_ENTER() +{ + extern void Interf_Inside_Zoom_Gadget(); +{ + + { Interf_Enter_Region(); return; } + +} +} + +static void Interf_Inside_Zoom_Gadget_KEY() +{ + extern void Interf_Inside_Zoom_Gadget(); +{ + + Interf_Handle_Key(); + { Interf_Inside_Zoom_Gadget(); return; } + +} +} + +static void Interf_Inside_Zoom_Gadget_button() +{ + extern void Interf_Inside_Zoom_Gadget(); +{ + + if ( UserGlobals_Get_Option(REDRAW_IN_ZOOM_GADGET) && + Buttons_Match(current_but,REDRAW_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Act( Interf_Redraw ); return; } + } + else if ( UserGlobals_Get_Option(CLOSE_IN_ZOOM_GADGET) && + Buttons_Match(current_but,CLOSE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Act( Interf_Close ); return; } + } + else if ( UserGlobals_Get_Option(ZOOM_IN_ZOOM_GADGET) && + Buttons_Match(current_but,ZOOM_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Act( Interf_Toggle_Zoom ); return; } + } + else if ( UserGlobals_Get_Option(DESIRE_IN_ZOOM_GADGET) && + Buttons_Match(current_but,DESIRE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Act( Interf_Desire ); return; } + } + else if ( UserGlobals_Get_Option(ENLARGE_IN_ZOOM_GADGET) && + Buttons_Match(current_but,ENLARGE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Act( Interf_Enlarge ); return; } + } + else if ( UserGlobals_Get_Option(RESIZE_IN_ZOOM_GADGET) && + Buttons_Match(current_but,RESIZE_BUTTONS) ) + { + if ( current_kind != up ) + { + current_side = Top_Left; + current_region = Region_Make_Corner( Top_Left ); + { Interf_Start_Crnr_Rszng(); return; } + } + } + else if ( UserGlobals_Get_Option(RELOCATE_IN_ZOOM_GADGET) && + Buttons_Match(current_but,RELOCATE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Start_Relocating(); return; } + } + else if ( UserGlobals_Get_Option(EXCHANGE_IN_ZOOM_GADGET) && + Buttons_Match(current_but,EXCHANGE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Start_Exchanging(); return; } + } + else if ( UserGlobals_Get_Option(MOVE_IN_ZOOM_GADGET) && + Buttons_Match(current_but,MOVE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Start_Moving(); return; } + } + { Interf_Inside_Zoom_Gadget(); return; } + +} +} + +static void Interf_Inside_Zoom_Gadget() +{ + LEAVE = Interf_Inside_Zoom_Gadget_LEAVE; + ENTER = Interf_Inside_Zoom_Gadget_ENTER; + KEY = Interf_Inside_Zoom_Gadget_KEY; + button = Interf_Inside_Zoom_Gadget_button; +} + + + +static void Interf_Inside_Move_Gadget_LEAVE() +{ + extern void Interf_Inside_Move_Gadget(); +{ + + { Interf_Leave(); return; } + +} +} + +static void Interf_Inside_Move_Gadget_ENTER() +{ + extern void Interf_Inside_Move_Gadget(); +{ + + { Interf_Enter_Region(); return; } + +} +} + +static void Interf_Inside_Move_Gadget_KEY() +{ + extern void Interf_Inside_Move_Gadget(); +{ + + Interf_Handle_Key(); + { Interf_Inside_Move_Gadget(); return; } + +} +} + +static void Interf_Inside_Move_Gadget_button() +{ + extern void Interf_Inside_Move_Gadget(); +{ + + if ( UserGlobals_Get_Option(REDRAW_IN_MOVE_GADGET) && + Buttons_Match(current_but,REDRAW_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Act( Interf_Redraw ); return; } + } + else if ( UserGlobals_Get_Option(CLOSE_IN_MOVE_GADGET) && + Buttons_Match(current_but,CLOSE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Act( Interf_Close ); return; } + } + else if ( UserGlobals_Get_Option(RESIZE_IN_MOVE_GADGET) && + Buttons_Match(current_but,RESIZE_BUTTONS) ) + { + if ( current_kind != up ) + { + current_side = Top_Right; + current_region = Region_Make_Corner( Top_Right ); + { Interf_Start_Crnr_Rszng(); return; } + } + } + else if ( UserGlobals_Get_Option(RELOCATE_IN_MOVE_GADGET) && + Buttons_Match(current_but,RELOCATE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Start_Relocating(); return; } + } + else if ( UserGlobals_Get_Option(EXCHANGE_IN_MOVE_GADGET) && + Buttons_Match(current_but,EXCHANGE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Start_Exchanging(); return; } + } + else if ( UserGlobals_Get_Option(MOVE_IN_MOVE_GADGET) && + Buttons_Match(current_but,MOVE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Start_Moving(); return; } + } + else if ( UserGlobals_Get_Option(ZOOM_IN_MOVE_GADGET) && + Buttons_Match(current_but,ZOOM_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Act( Interf_Toggle_Zoom ); return; } + } + else if ( UserGlobals_Get_Option(DESIRE_IN_MOVE_GADGET) && + Buttons_Match(current_but,DESIRE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Act( Interf_Desire ); return; } + } + else if ( UserGlobals_Get_Option(ENLARGE_IN_MOVE_GADGET) && + Buttons_Match(current_but,ENLARGE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Act( Interf_Enlarge ); return; } + } + { Interf_Inside_Move_Gadget(); return; } + +} +} + +static void Interf_Inside_Move_Gadget() +{ + LEAVE = Interf_Inside_Move_Gadget_LEAVE; + ENTER = Interf_Inside_Move_Gadget_ENTER; + KEY = Interf_Inside_Move_Gadget_KEY; + button = Interf_Inside_Move_Gadget_button; +} + + + +static void Interf_Inside_Side_Border_LEAVE() +{ + extern void Interf_Inside_Side_Border(); +{ + + { Interf_Leave(); return; } + +} +} + +static void Interf_Inside_Side_Border_ENTER() +{ + extern void Interf_Inside_Side_Border(); +{ + + { Interf_Enter_Region(); return; } + +} +} + +static void Interf_Inside_Side_Border_KEY() +{ + extern void Interf_Inside_Side_Border(); +{ + + Interf_Handle_Key(); + { Interf_Inside_Side_Border(); return; } + +} +} + +static void Interf_Inside_Side_Border_button() +{ + extern void Interf_Inside_Side_Border(); +{ + + if ( UserGlobals_Get_Option(ZOOM_IN_SIDE_BORDER) && + Buttons_Match(current_but,ZOOM_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Act( Interf_Toggle_Zoom ); return; } + } + else if ( UserGlobals_Get_Option(DESIRE_IN_SIDE_BORDER) && + Buttons_Match(current_but,DESIRE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Act( Interf_Desire ); return; } + } + else if ( UserGlobals_Get_Option(ENLARGE_IN_SIDE_BORDER) && + Buttons_Match(current_but,ENLARGE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Act( Interf_Enlarge ); return; } + } + else if ( UserGlobals_Get_Option(REDRAW_IN_SIDE_BORDER) && + Buttons_Match(current_but,REDRAW_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Act( Interf_Redraw ); return; } + } + else if ( UserGlobals_Get_Option(CLOSE_IN_SIDE_BORDER) && + Buttons_Match(current_but,CLOSE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Act( Interf_Close ); return; } + } + else if ( UserGlobals_Get_Option(RESIZE_IN_SIDE_BORDER) && + Buttons_Match(current_but,RESIZE_BUTTONS) ) + { + if ( current_kind != up ) + { + current_side = Region_Get_Border(current_region); + { Interf_Start_Edge_Resizing(); return; } + } + } + else if ( UserGlobals_Get_Option(RELOCATE_IN_SIDE_BORDER) && + Buttons_Match(current_but,RELOCATE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Start_Relocating(); return; } + } + else if ( UserGlobals_Get_Option(EXCHANGE_IN_SIDE_BORDER) && + Buttons_Match(current_but,EXCHANGE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Start_Exchanging(); return; } + } + else if ( UserGlobals_Get_Option(MOVE_IN_SIDE_BORDER) && + Buttons_Match(current_but,MOVE_BUTTONS) ) + { + if ( current_kind != up ) + { + switch ( Region_Get_Border(current_region) ) + { + case Top: + case Bottom: + { Interf_Start_Vert_Moving(); return; } + case Left: + case Right: + { Interf_Start_Horiz_Moving(); return; } + } + } + } + else if ( UserGlobals_Get_Option(USER_MENU_IN_SIDE_BORDER) && + Buttons_Match(current_but,HEADER_USER_MENU_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Menu_Enter( Region_Get_Menu(current_uwinp,current_region), Buttons_Number(current_but), current_kind ); return; } + } + else if ( UserGlobals_Get_Option(MANAGER_MENU_IN_SIDE_BORDER) && + Buttons_Match(current_but,HEADER_MANAGER_MENU_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Menu_Enter( manager_window_menu, Buttons_Number(current_but), current_kind ); return; } + } + { Interf_Inside_Side_Border(); return; } + +} +} + +static void Interf_Inside_Side_Border() +{ + LEAVE = Interf_Inside_Side_Border_LEAVE; + ENTER = Interf_Inside_Side_Border_ENTER; + KEY = Interf_Inside_Side_Border_KEY; + button = Interf_Inside_Side_Border_button; +} + + + +static void Interf_Ins_Crnr_Border_LEAVE() +{ + extern void Interf_Ins_Crnr_Border(); +{ + + { Interf_Leave(); return; } + +} +} + +static void Interf_Ins_Crnr_Border_ENTER() +{ + extern void Interf_Ins_Crnr_Border(); +{ + + { Interf_Enter_Region(); return; } + +} +} + +static void Interf_Ins_Crnr_Border_KEY() +{ + extern void Interf_Ins_Crnr_Border(); +{ + + Interf_Handle_Key(); + { Interf_Ins_Crnr_Border(); return; } + +} +} + +static void Interf_Ins_Crnr_Border_button() +{ + extern void Interf_Ins_Crnr_Border(); +{ + + if ( UserGlobals_Get_Option(ZOOM_IN_CORNER_BORDER) && + Buttons_Match(current_but,ZOOM_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Act( Interf_Toggle_Zoom ); return; } + } + else if ( UserGlobals_Get_Option(DESIRE_IN_CORNER_BORDER) && + Buttons_Match(current_but,DESIRE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Act( Interf_Desire ); return; } + } + else if ( UserGlobals_Get_Option(ENLARGE_IN_CORNER_BORDER) && + Buttons_Match(current_but,ENLARGE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Act( Interf_Enlarge ); return; } + } + else if ( UserGlobals_Get_Option(REDRAW_IN_CORNER_BORDER) && + Buttons_Match(current_but,REDRAW_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Act( Interf_Redraw ); return; } + } + else if ( UserGlobals_Get_Option(CLOSE_IN_CORNER_BORDER) && + Buttons_Match(current_but,CLOSE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Act( Interf_Close ); return; } + } + else if ( UserGlobals_Get_Option(RESIZE_IN_CORNER_BORDER) && + Buttons_Match(current_but,RESIZE_BUTTONS) ) + { + if ( current_kind != up ) + { + current_side = Region_Get_Border(current_region); + { Interf_Start_Crnr_Rszng(); return; } + } + } + else if ( UserGlobals_Get_Option(RELOCATE_IN_CORNER_BORDER) && + Buttons_Match(current_but,RELOCATE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Start_Relocating(); return; } + } + else if ( UserGlobals_Get_Option(EXCHANGE_IN_CORNER_BORDER) && + Buttons_Match(current_but,EXCHANGE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Start_Exchanging(); return; } + } + else if ( UserGlobals_Get_Option(MOVE_IN_CORNER_BORDER) && + Buttons_Match(current_but,MOVE_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Start_Gravity_Moving(); return; } + } + else if ( UserGlobals_Get_Option(USER_MENU_IN_CORNER_BORDER) && + Buttons_Match(current_but,HEADER_USER_MENU_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Menu_Enter( Region_Get_Menu(current_uwinp,current_region), Buttons_Number(current_but), current_kind ); return; } + } + else if ( UserGlobals_Get_Option(MANAGER_MENU_IN_CORNER_BORDER) && + Buttons_Match(current_but,HEADER_MANAGER_MENU_BUTTONS) ) + { + if ( current_kind != up ) + { Interf_Menu_Enter( manager_window_menu, Buttons_Number(current_but), current_kind ); return; } + } + { Interf_Ins_Crnr_Border(); return; } + +} +} + +static void Interf_Ins_Crnr_Border() +{ + LEAVE = Interf_Ins_Crnr_Border_LEAVE; + ENTER = Interf_Ins_Crnr_Border_ENTER; + KEY = Interf_Ins_Crnr_Border_KEY; + button = Interf_Ins_Crnr_Border_button; +} + + + +static void Interf_Manage_Icon_Open( uwinp ) + Userwin *uwinp; +{ + if ( Userwin_Group_Closed( uwinp ) ) + Manage_Want_State( uwinp, IconicState ); + else + Interf_Client_Watch( + Manage_Client_Open_Icon( uwinp ) ) +} + +/* ------------------------------------------------------------ */ + +static void Interf_Manage_Open( uwinp ) + Userwin *uwinp; +{ + bool result; + current_uwinp = uwinp; + + if ( Userwin_Group_Closed( uwinp ) ) + Manage_Want_State( uwinp, NormalState ); + + else if ( Userwin_Get_Window_Option( uwinp, AUTO_PLACE_ON_CLIENT_OPEN ) + && ( UserGlobals_Get_Option(AUTO_PLACE_ON_UNSIZED_OPEN) || + Userwin_Sized( uwinp ) ) ) + { + Interf_Client_Watch( + { + result = Manage_Client_Open_Automatically( uwinp ); + if ( result && + UserGlobals_Get_Option( + PLACE_CSR_GDGT_AFT_CL_AUTO_OPEN) ) + Interf_Set_Pos( Region_Gadget_Center( uwinp ) ); + } ) + } + else if ( Userwin_Ever_Opened(uwinp) ) + { + if (! Interf_Client_Start_Tracking(track_open_tilecursor)) + Drawwin_Flash(); + else + { Interf_Start_Opening(); return; } + } + else + { + if (! Interf_Client_Start_Tracking(track_open_tilecursor)) + { + Drawwin_Flash(); + Interf_Client_Watch( + Manage_Client_Open_Icon(uwinp) ) + } + else + { Interf_Start_Opening(); return; } + } +} + +/* ------------------------------------------------------------ */ + +void Interf_Client_Open( uwinp ) + Userwin *uwinp; +{ + int state; + + state = Userwin_State(uwinp); + + if ( ! Userwin_Ever_Opened( uwinp ) ) + { + Manage_Prepare_Open( uwinp ); + + if ( (state == NormalState) || + (state == ClientIconState) || + ( ( Userwin_Laid_Out(uwinp) || + (state == NoState) || (state == DontCareState) ) && + Userwin_Get_Window_Option( uwinp, AUTO_OPEN_ON_CREATE ) ) ) + { + user_window_join_excursion( uwinp, AUTO_PLACE_ON_CLIENT_OPEN, + ( Userwin_Sized(uwinp) && Userwin_Positioned(uwinp) ), + Interf_Manage_Open( uwinp ) ) + } + else + Interf_Manage_Icon_Open( uwinp ); + } + else if ( (! Userwin_Is_Open( uwinp )) && + ( (state == NoState) || + (state == DontCareState) || + (state == NormalState) ) ) + Interf_Manage_Open( uwinp ); +} + + +void Interf_Client_Note_Output( uwinp ) + Userwin *uwinp; +{ + int state; + + state = Userwin_State(uwinp); + Manage_Note_Output( uwinp ); + + if ( ! Userwin_Ever_Opened( uwinp ) ) + { + Manage_Prepare_Open( uwinp ); + + if ( (state == NormalState) || + (state == ClientIconState) || + ( ( Userwin_Laid_Out(uwinp) || + (state == NoState) || (state == DontCareState) ) && + ( Userwin_Get_Window_Option( uwinp, AUTO_OPEN_ON_CREATE ) || + Userwin_Get_Window_Option( uwinp, AUTO_OPEN_ON_WRITE ) ) ) ) + { + user_window_join_excursion( uwinp, AUTO_PLACE_ON_CLIENT_OPEN, + ( Userwin_Sized(uwinp) && Userwin_Positioned(uwinp) ), + Interf_Manage_Open( uwinp ) ) + } + else + Interf_Manage_Icon_Open( uwinp ); + } + else if ( (! Userwin_Is_Open( uwinp )) && + ( (state == NoState) || + (state == DontCareState) || + (state == NormalState) ) && + Userwin_Get_Window_Option( uwinp, AUTO_OPEN_ON_WRITE ) ) + Interf_Manage_Open( uwinp ); +} + + +void Interf_Client_Icon_Open( uwinp ) + Userwin *uwinp; +{ + int state; + + state = Userwin_State(uwinp); + + if ( ! Userwin_Ever_Opened( uwinp ) ) + { + Manage_Prepare_Open( uwinp ); + + if ( ( state == ClientIconState ) || + ( Userwin_Laid_Out(uwinp) && + Userwin_Get_Window_Option( uwinp, AUTO_OPEN_ON_CREATE ) ) ) + { + user_window_join_excursion( uwinp, AUTO_PLACE_ON_CLIENT_OPEN, + ( Userwin_Sized(uwinp) && Userwin_Positioned(uwinp) ), + Interf_Manage_Open( uwinp ) ) + } + else + Interf_Manage_Icon_Open( uwinp ); + } + else if ( Userwin_Is_Open( uwinp ) && + ( (state == NoState) || + (state == DontCareState) || + (state == NormalState) ) ) + Interf_Manage_Icon_Open( uwinp ); +} + + +void Interf_Client_Close( uwinp ) + Userwin *uwinp; +{ + int state; + + state = Userwin_State(uwinp); + + if ( ! Userwin_Ever_Opened( uwinp ) ) + { + Manage_Prepare_Open( uwinp ); + + if ( ( state == ClientIconState ) || + ( Userwin_Laid_Out(uwinp) && + Userwin_Get_Window_Option( uwinp, AUTO_OPEN_ON_CREATE ) ) ) + { + user_window_join_excursion( uwinp, AUTO_PLACE_ON_CLIENT_OPEN, + ( Userwin_Sized(uwinp) && Userwin_Positioned(uwinp) ), + Interf_Manage_Open( uwinp ) ) + } + else + Interf_Manage_Icon_Open( uwinp ); + } + else if (! Userwin_Group_Closed( uwinp ) ) + { + if ( state == ClientIconState ) + Drawwin_Open( uwinp ); + else + Interf_Client_Watch( + Manage_Client_Close( uwinp ) ) + } +} + + +void Interf_Client_Icon_Close( uwinp ) + Userwin *uwinp; +{ + if ( Userwin_Ever_Opened( uwinp ) ) + Interf_Client_Watch( + Manage_Client_Close_Icon( uwinp ) ) +} + + +void Interf_Client_Set_State( uwinp, state ) + Userwin *uwinp; + int state; +{ + if ( ! Userwin_Ever_Opened( uwinp ) ) + Manage_Client_Set_State( uwinp, state ); + else + Interf_Client_Watch( + Manage_Client_Change_State( uwinp, state ) ) +} + + +void Interf_Client_Set_Group( uwinp, group ) + Userwin *uwinp; + Userwin *group; +{ + if ( ! Userwin_Ever_Opened( uwinp ) ) + Manage_Client_Set_Group( uwinp, group ); + else + Interf_Client_Watch( + Manage_Client_Set_Group( uwinp, group ) ) +} + + +void Interf_Client_Set_Icon_Size( uwinp, siz ) + Userwin *uwinp; + Size siz; +{ + if (! Userwin_Is_Iconic( uwinp ) ) + Manage_Client_Set_Icon_Size( uwinp, siz ); + else + Interf_Client_Watch( + Manage_Client_Set_Icon_Size( uwinp, siz ) ) +} + + +void Interf_Client_Set_Icon_Position( uwinp, pt ) + Userwin *uwinp; + TWPoint pt; +{ + if (! Userwin_Is_Iconic( uwinp ) ) + Manage_Client_Set_Icon_Position( uwinp, pt ); + else + Interf_Client_Watch( + Manage_Client_Set_Icon_Position( uwinp, pt ) ) +} + + + +void Interf_Client_Startup() +{ + Interf_Client_Watch( + Manage_Startup_Finish() ) +} + + +void Interf_Client_Set_Command( uwinp, str ) + Userwin *uwinp; + char *str; +{ + if ( Userwin_Command_Effect( uwinp ) ) + Interf_Client_Watch( + Manage_Set_Command( uwinp, str ) ) + else + Manage_Set_Command( uwinp, str ); +} + + +void Interf_Client_Configure( uwinp, flags, top_left, bodsiz, detail ) + Userwin *uwinp; + unsigned long flags; + TWPoint top_left; + Size bodsiz; + int detail; +{ + if ( Userwin_Is_Open( uwinp ) ) + Interf_Client_Watch( + Manage_Client_Configure( uwinp, flags, top_left, bodsiz, detail ) + ) + else + Manage_Client_Configure( uwinp, flags, top_left, bodsiz, detail ); +} + + +void Interf_Client_Destroy( uwinp ) + Userwin *uwinp; +{ + if ( Userwin_Is_Open( uwinp ) || Userwin_Is_Iconic( uwinp ) ) + Interf_Client_Watch( + Manage_Client_Destroy( uwinp ) ) + else + Manage_Client_Destroy( uwinp ); +} + + +void Interf_Client_Reset_Min_Max( uwinp, minsiz, maxsiz ) + Userwin *uwinp; + Size minsiz, maxsiz; +{ + if ( Userwin_Is_Open( uwinp ) ) + Interf_Client_Watch( + Manage_Client_Reset_Min_Max( uwinp, minsiz, maxsiz ) ) + else + Manage_Client_Reset_Min_Max( uwinp, minsiz, maxsiz ); +} + + +void Interf_Client_Set_Normal_Hints( uwinp, flags, + min_size, max_size, incr_size, + min_aspect, max_aspect, base_size ) + Userwin *uwinp; + long flags; + Size min_size, max_size, incr_size, base_size; + TWPoint min_aspect, max_aspect; +{ + if ( Userwin_Is_Open( uwinp ) ) + Interf_Client_Watch( + Manage_Client_Set_Normal_Hints( uwinp, flags, + min_size, max_size, incr_size, + min_aspect, max_aspect, base_size ) ) + else + Manage_Client_Set_Normal_Hints( uwinp, flags, + min_size, max_size, incr_size, + min_aspect, max_aspect, base_size ); +} + + +void Interf_Client_Set_Geometry_Hints( uwinp, flags, + top_left, size ) + Userwin *uwinp; + long flags; + TWPoint top_left; + Size size; +{ + if ( Userwin_Is_Open( uwinp ) ) + Interf_Client_Watch( + Manage_Client_Set_Geometry_Hints( uwinp, flags, + top_left, size ) ) + else + Manage_Client_Set_Geometry_Hints( uwinp, flags, + top_left, size ); +} + + + +static void Interf_Menu_Redraw_All() +{ + Manage_Redraw_All(); + { Interf_Reenter_Region(); return; } +} + +static void Interf_User_Open() +{ + if ( UserGlobals_Get_Option(AUTO_PLACE_ON_MENU_OPEN) && + ( UserGlobals_Get_Option(AUTO_PLACE_ON_UNSIZED_OPEN) || + Userwin_Sized( current_uwinp ) ) ) + { + { Interf_Open(); return; } + } + else + { + if (! Interf_Start_Tracking(track_open_tilecursor)) + { Interf_Flash_Cancel(); return; } + if ( Userwin_Is_Iconic(current_uwinp) ) + { Interf_Start_Icon_Opening(); return; } + else + { Interf_Start_Opening(); return; } + } +} + +static void Interf_Menu_Open( menu, item ) + TileMenu menu; + TileMenuItem item; +{ + current_uwinp = (Userwin *)TileMenu_Data(menu,item); + if ( Userwin_Group_Closed( current_uwinp ) ) + { Interf_Start_Wait_For_Confirm(groupmsg,Interf_Confirmed_Group_Open); return; } + else + { Interf_User_Open(); return; } +} + + +static void Interf_Profile( menu, item ) + TileMenu menu; + TileMenuItem item; +{ + bool follows; + follows = UserGlobals_Get_Option(FOCUS_FOLLOWS_CURSOR); + Interf_Watch( + Manage_Profile( TileMenu_Data(menu,item) ) ) + if ( follows != UserGlobals_Get_Option(FOCUS_FOLLOWS_CURSOR) ) + (*swInMod)(); + { Interf_Reenter_Region(); return; } +} + + +static void Interf_Menu_Invoke( menu, item ) + TileMenu menu; + TileMenuItem item; +{ + Tool_Invoke( (int)TileMenu_Data(menu,item) ); + { Interf_Reenter_Region(); return; } +} + + +static void Interf_Menu_Prorate() +{ + Interf_Watch( + Manage_Prorate() ) + { Interf_Reenter_Region(); return; } +} + +static void Interf_Menu_Fill() +{ + Interf_Watch( + Manage_Fill() ) + { Interf_Reenter_Region(); return; } +} + +static void Interf_Menu_Undo() +{ + Interf_Watch( + Manage_Undo() ) + { Interf_Reenter_Region(); return; } +} + + +static void Interf_Menu_Repopulate_Auto() +{ + Interf_Watch( + Manage_Repopulate_All( FALSE, TRUE ) ) + { Interf_Reenter_Region(); return; } +} + +static void Interf_Menu_Repopulate_All() +{ + Interf_Watch( + Manage_Repopulate_All( FALSE, FALSE ) ) + { Interf_Reenter_Region(); return; } +} + +static void Interf_Menu_Repopulate_Last() +{ + Interf_Watch( + Manage_Repopulate_Last() ) + { Interf_Reenter_Region(); return; } +} + + +static void Interf_Confirmed_Save_Layout() +{ + if (! Layout_Save() ) + Drawwin_Flash(); + { Interf_Reenter_Region(); return; } +} + +static void Interf_Menu_Save_Layout() +{ + { Interf_Start_Wait_For_Confirm( savemsg, Interf_Confirmed_Save_Layout ); return; } +} + +static void Interf_Confirmed_Finish_Layout() +{ + Interf_Watch( + Manage_Finish_Layout() ); + { Interf_Reenter_Region(); return; } +} + +static void Interf_Menu_Finish_Layout() +{ + { Interf_Start_Wait_For_Confirm( savemsg, Interf_Confirmed_Finish_Layout ); return; } +} + +static void Interf_Menu_Generate_Layout( strp, procp ) + char **strp; + VoidFunc *procp; +{ + if ( Layout_Done() ) + { + *strp = "Save Layout"; + *procp = Interf_Menu_Save_Layout; + } + else + { + *strp = "Finish Layout"; + *procp = Interf_Menu_Finish_Layout; + } +} + + +static void Interf_Menu_Notify_All() +{ + { Interf_Start_Wait_For_Confirm( notifymsg, Interf_Confirmed_Notify_All ); return; } } + +static void Interf_Menu_Soft_Kill_All() +{ + { Interf_Start_Wait_For_Confirm( exitmsg, Interf_Confirmed_Soft_Kill_All ); return; } } + +static void Interf_Menu_Exit() +{ + { Interf_Start_Wait_For_Confirm( exitmsg, Interf_Confirmed_Exit ); return; } +} + +static void Interf_Menu_Pause() +{ + { Interf_Start_Wait_For_Confirm( exitmsg, Interf_Confirmed_Pause ); return; } +} + + + +static void Interf_Menu_Redraw() +{ + Manage_Redraw(current_uwinp); + { Interf_Reenter_Region(); return; } +} + +static void Interf_Menu_Close() +{ + { Interf_Close(); return; } +} + +static void Interf_Menu_Resize() +{ + { Interf_Start_Basing_Rsz(); return; } +} + +static void Interf_Menu_Set_Size( menu, item ) + TileMenu menu; + TileMenuItem item; +{ + resize_proc = (BoolFunc)TileMenu_Data(menu,item); + { Interf_Start_Basing_Set_Size(); return; } +} + +static void Interf_Menu_Move() +{ + Interf_Reset_Menu_Pos(); + { Interf_Start_Moving(); return; } +} + +static void Interf_Menu_Relocate() +{ + { Interf_Start_Relocating(); return; } +} + +static void Interf_Menu_Exchange() +{ + { Interf_Start_Exchanging(); return; } +} + +static void Interf_Menu_Enlarge() +{ + Interf_Watch( + Manage_Enlarge(current_uwinp) ) + { Interf_Reenter_Region(); return; } +} + +static void Interf_Menu_Expand() +{ + Interf_Watch( + Manage_Expand(current_uwinp) ) + { Interf_Reenter_Region(); return; } +} + +static void Interf_Menu_Desire() +{ + Interf_Watch( + Manage_Desire(current_uwinp) ) + { Interf_Reenter_Region(); return; } +} + +static void Interf_Menu_Shrink() +{ + Interf_Watch( + Manage_Shrink(current_uwinp) ) + { Interf_Reenter_Region(); return; } +} + + +static void Interf_Menu_Zoom() +{ + Interf_Watch( + Manage_Zoom(current_uwinp) ) + { Interf_Reenter_Region(); return; } +} + +static void Interf_Menu_Unzoom() +{ + Interf_Watch( + Manage_Unzoom(current_uwinp) ) + { Interf_Reenter_Region(); return; } +} + +static void Interf_Menu_Generate_Zoom( strp, procp ) + char **strp; + VoidFunc *procp; +{ + if ( Userwin_Is_Zoomed( current_uwinp ) ) + { + *strp = "Unzoom"; + *procp = Interf_Menu_Unzoom; + } + else + { + *strp = "Zoom"; + *procp = Interf_Menu_Zoom; + } +} + + +static void Interf_Menu_Generate_Title( strp, procp ) + char **strp; + VoidFunc *procp; +{ + *strp = Userwin_Title( current_uwinp ); + *procp = Interf_Reenter_Region; +} + + +static bool Interf_Menu_Check_Locked_Open() +{ + return ! Userwin_Allows_Close( current_uwinp ); +} + +static void Interf_Menu_Toggle_Locked_Open() +{ + if ( Userwin_Allows_Close( current_uwinp ) ) + Userwin_Dont_Close(current_uwinp) + else + Userwin_Allow_Close(current_uwinp); + { Interf_Reenter_Region(); return; } +} + + +static bool Interf_Menu_Check_Fixed_Width() +{ + return ! Userwin_Allows_Change_Width( current_uwinp ); +} + +static void Interf_Menu_Toggle_Fixed_Width() +{ + if ( Userwin_Allows_Change_Width( current_uwinp ) ) + Userwin_Dont_Change_Width(current_uwinp) + else + Userwin_Allow_Change_Width(current_uwinp); + { Interf_Reenter_Region(); return; } +} + + +static bool Interf_Menu_Check_Fixed_Height() +{ + return ! Userwin_Allows_Change_Height( current_uwinp ); +} + +static void Interf_Menu_Toggle_Fixed_Height() +{ + if ( Userwin_Allows_Change_Height( current_uwinp ) ) + Userwin_Dont_Change_Height(current_uwinp) + else + Userwin_Allow_Change_Height(current_uwinp); + { Interf_Reenter_Region(); return; } +} + + +static bool Interf_Menu_Check_Fixed_Edges() +{ + return ! Userwin_Allows_Change( current_uwinp ); +} + +static void Interf_Menu_Toggle_Fixed_Edges() +{ + if ( Userwin_Allows_Change( current_uwinp ) ) + Userwin_Dont_Change(current_uwinp) + else + Userwin_Allow_Change(current_uwinp); + { Interf_Reenter_Region(); return; } +} + + +static bool Interf_Menu_Check_Tied_Listener() +{ + return Userwin_Tied_Listener( current_uwinp ); +} + +static void Interf_Menu_Toggle_Tied_Listener() +{ + Interf_Watch( + Manage_Toggle_Zoom_Lock(current_uwinp) ) + { Interf_Reenter_Region(); return; } +} + + +static bool Interf_Menu_Check_Tied_Desire() +{ + return Userwin_Tied_Desire( current_uwinp ); +} + +static void Interf_Menu_Toggle_Tied_Desire() +{ + if ( Userwin_Tied_Desire( current_uwinp ) ) + Userwin_Dont_Tie_Desire(current_uwinp) + else + Userwin_Allow_Tie_Desire(current_uwinp); + { Interf_Reenter_Region(); return; } +} + + + +static void Interf_Menu_Group_Close() +{ + if ( Userwin_Group_Closed( current_uwinp ) ) + { + Drawwin_Flash(); + { Interf_Reenter_Region(); return; } + } + else + { Interf_Start_Wait_For_Confirm( groupmsg, Interf_Confirmed_Group_Close ); return; } +} + +static void Interf_Menu_Notify() +{ + { Interf_Start_Wait_For_Confirm( notifymsg, Interf_Confirmed_Notify ); return; } +} + +static void Interf_Menu_Soft_Kill() +{ + { Interf_Start_Wait_For_Confirm( softmsg, Interf_Confirmed_Soft_Kill ); return; } +} + +static void Interf_Menu_Delete_Window() +{ + { Interf_Start_Wait_For_Confirm( softmsg, Interf_Confirmed_Delete_Window ); return; } +} + +static void Interf_Menu_Hard_Kill() +{ + { Interf_Start_Wait_For_Confirm( hardmsg, Interf_Confirmed_Hard_Kill ); return; } +} + + + +static void Interf_Menu_Icon_Redraw() +{ + Manage_Redraw(current_uwinp); + { Interf_Reenter_Region(); return; } +} + +static void Interf_Menu_Icon_Move() +{ + { Interf_Start_Icon_Moving(); return; } +} + +static void Interf_Menu_Icon_Open() +{ + if ( Userwin_Group_Closed( current_uwinp ) ) + { Interf_Start_Wait_For_Confirm(groupmsg,Interf_Confirmed_Group_Open); return; } + else + { Interf_Start_Open_In_Icon(); return; } +} + + +static void Interf_Menu_Gen_Icon_Open( strp, procp ) + char **strp; + VoidFunc *procp; +{ + *procp = Interf_Menu_Icon_Open; + if ( Userwin_Group_Closed( current_uwinp ) ) + *strp = "Group Open"; + else + *strp = "Open"; +} + + +Interf_Init_Menus() +{ + TileMenuItem tool_item; + + manager_tool_menu = TileMenu_Create(); + + manager_repop_menu = TileMenu_Create(); + + TileMenu_Append_Call( manager_repop_menu, + "Repopulate Auto", Interf_Menu_Repopulate_Auto, NULL ); + TileMenu_Append_Call( manager_repop_menu, + "Repopulate All", Interf_Menu_Repopulate_All, NULL ); + TileMenu_Append_Call( manager_repop_menu, + "Repopulate Last", Interf_Menu_Repopulate_Last, NULL ); + + manager_background_menu = TileMenu_Create(); + TileMenu_Append_Call( manager_background_menu, + "Redraw All", Interf_Menu_Redraw_All, NULL ); + Closed_Init( manager_background_menu, Interf_Menu_Open ); + tool_item = TileMenu_Append_Submenu( manager_background_menu, + "Tools", manager_tool_menu ); + TileMenu_Append_Call( manager_background_menu, + "Prorate", Interf_Menu_Prorate, NULL ); + TileMenu_Append_Call( manager_background_menu, + "Fill", Interf_Menu_Fill, NULL ); + TileMenu_Append_Call( manager_background_menu, + "Undo", Interf_Menu_Undo, NULL ); + TileMenu_Append_Submenu( manager_background_menu, + "Repopulate", manager_repop_menu ); + Profile_Init( manager_background_menu, Interf_Profile ); + TileMenu_Append_Callback( manager_background_menu, + Interf_Menu_Generate_Layout ); + TileMenu_Append_Call( manager_background_menu, + "Notify All", Interf_Menu_Notify_All, NULL ); + TileMenu_Append_Call( manager_background_menu, + "Soft Kill All", Interf_Menu_Soft_Kill_All, NULL ); + TileMenu_Append_Call( manager_background_menu, + "Hard Exit", Interf_Menu_Exit, NULL ); + TileMenu_Append_Call( manager_background_menu, + "Detach Manager", Interf_Menu_Pause, NULL ); + + if (! Tool_Init( manager_tool_menu, Interf_Menu_Invoke ) ) + TileMenu_Inactivate_Entry( manager_background_menu, tool_item ); + + manager_size_menu = TileMenu_Create(); + TileMenu_Append_Call( manager_size_menu, + "Normal Min", Interf_Menu_Set_Size, + (pointer)Manage_Set_Regular_Min_Size ); + TileMenu_Append_Call( manager_size_menu, + "Normal Desired", Interf_Menu_Set_Size, + (pointer)Manage_Set_Regular_Desired_Size ); + TileMenu_Append_Call( manager_size_menu, + "Zoom Min", Interf_Menu_Set_Size, + (pointer)Manage_Set_Zoom_Min_Size ); + TileMenu_Append_Call( manager_size_menu, + "Zoom Desired", Interf_Menu_Set_Size, + (pointer)Manage_Set_Zoom_Desired_Size ); + TileMenu_Append_Call( manager_size_menu, + "Max", Interf_Menu_Set_Size, + (pointer)Manage_Set_Max_Size ); + + manager_window_option_menu = TileMenu_Create(); + TileMenu_Append_Checkback( manager_window_option_menu, + "Locked Open", Interf_Menu_Check_Locked_Open, + Interf_Menu_Toggle_Locked_Open ); + TileMenu_Append_Checkback( manager_window_option_menu, + "Fixed Width", Interf_Menu_Check_Fixed_Width, + Interf_Menu_Toggle_Fixed_Width ); + TileMenu_Append_Checkback( manager_window_option_menu, + "Fixed Height", Interf_Menu_Check_Fixed_Height, + Interf_Menu_Toggle_Fixed_Height ); + TileMenu_Append_Checkback( manager_window_option_menu, + "Fixed Edges", Interf_Menu_Check_Fixed_Edges, + Interf_Menu_Toggle_Fixed_Edges ); + TileMenu_Append_Checkback( manager_window_option_menu, + "Listener Tied To Zoom", Interf_Menu_Check_Tied_Listener, + Interf_Menu_Toggle_Tied_Listener ); + TileMenu_Append_Checkback( manager_window_option_menu, + "Zoom Tied To Desire", Interf_Menu_Check_Tied_Desire, + Interf_Menu_Toggle_Tied_Desire ); + + manager_title_menu = TileMenu_Create(); + TileMenu_Append_Callback( manager_title_menu, + Interf_Menu_Generate_Title ); + + manager_window_menu = TileMenu_Create(); + TileMenu_Append_Submenu( manager_window_menu, + "Title", manager_title_menu ); + TileMenu_Append_Call( manager_window_menu, + "Redraw", Interf_Menu_Redraw, NULL ); + if ( UserGlobals_Get_Option(INCL_BGRND_MENU_IN_WINDOW_MENU) ) + TileMenu_Append_Submenu( manager_window_menu, + "Manager", manager_background_menu ); + TileMenu_Append_Call( manager_window_menu, + "Close", Interf_Menu_Close, NULL ); + TileMenu_Append_Call( manager_window_menu, + "Group Close", Interf_Menu_Group_Close, NULL ); + TileMenu_Append_Call( manager_window_menu, + "Resize", Interf_Menu_Resize, NULL ); + TileMenu_Append_Call( manager_window_menu, + "Relocate", Interf_Menu_Relocate, NULL ); + TileMenu_Append_Call( manager_window_menu, + "Move", Interf_Menu_Move, NULL ); + TileMenu_Append_Call( manager_window_menu, + "Exchange", Interf_Menu_Exchange, NULL ); + TileMenu_Append_Call( manager_window_menu, + "Expand", Interf_Menu_Expand, NULL ); + TileMenu_Append_Call( manager_window_menu, + "Desire", Interf_Menu_Desire, NULL ); + TileMenu_Append_Call( manager_window_menu, + "Shrink", Interf_Menu_Shrink, NULL ); + TileMenu_Append_Call( manager_window_menu, + "Enlarge", Interf_Menu_Enlarge, NULL ); + TileMenu_Append_Callback( manager_window_menu, + Interf_Menu_Generate_Zoom ); + TileMenu_Append_Submenu( manager_window_menu, + "Set Size", manager_size_menu ); + TileMenu_Append_Submenu( manager_window_menu, + "Options", manager_window_option_menu ); + TileMenu_Append_Call( manager_window_menu, + "Notify", Interf_Menu_Notify, NULL ); + TileMenu_Append_Call( manager_window_menu, + "Soft Kill", Interf_Menu_Soft_Kill, NULL ); + TileMenu_Append_Call( manager_window_menu, + "Hard Kill", Interf_Menu_Hard_Kill, NULL ); + + manager_icon_menu = TileMenu_Create(); + TileMenu_Append_Submenu( manager_icon_menu, + "Title", manager_title_menu ); + TileMenu_Append_Call( manager_icon_menu, + "Redraw", Interf_Menu_Icon_Redraw, NULL ); + if ( UserGlobals_Get_Option(INCL_BGRND_MENU_IN_WINDOW_MENU) ) + TileMenu_Append_Submenu( manager_icon_menu, + "Manager", manager_background_menu ); + TileMenu_Append_Callback( manager_icon_menu, + Interf_Menu_Gen_Icon_Open ); + TileMenu_Append_Call( manager_icon_menu, + "Group Close", Interf_Menu_Group_Close, NULL ); + TileMenu_Append_Call( manager_icon_menu, + "Move", Interf_Menu_Icon_Move, NULL ); + TileMenu_Append_Call( manager_icon_menu, + "Exchange", Interf_Menu_Exchange, NULL ); + TileMenu_Append_Submenu( manager_icon_menu, + "Options", manager_window_option_menu ); + TileMenu_Append_Call( manager_icon_menu, + "Notify", Interf_Menu_Notify, NULL ); + TileMenu_Append_Call( manager_icon_menu, + "Soft Kill", Interf_Menu_Soft_Kill, NULL ); + TileMenu_Append_Call( manager_icon_menu, + "Hard Kill", Interf_Menu_Hard_Kill, NULL ); +} + + +void Interf_Init() +{ + extern void Interf_Init_Buttons(); + extern void Open_Init(); + + Open_Init(); + TileCursor_Init(); + Interf_Init_Buttons(); + Interf_Init_Menus(); + Interf_Click(); +} + + +void Interf_Reset() +{ + Interf_Enter_Region(); + if ( UserGlobals_Get_Option(FOCUS_FOLLOWS_CURSOR) ) + Interf_Have_Lsnr(); + else + Interf_Am_Clk_Lsnr(); +} diff --git a/interf.h b/interf.h new file mode 100644 index 0000000..39521ad --- /dev/null +++ b/interf.h @@ -0,0 +1,52 @@ +/* +static char sccs_id[] = "@(#)interf.h 5.6 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +extern void Interf_Init(); +extern void Interf_Reset(); + +extern void Interf_Enable_Input(); +extern void Interf_Disable_Input(); + +extern void Interf_Client_Open(); +extern void Interf_Client_Icon_Open(); +extern void Interf_Client_Close(); +extern void Interf_Client_Icon_Close(); +extern void Interf_Client_Note_Output(); +extern void Interf_Client_Set_State(); +extern void Interf_Client_Set_Group(); +extern void Interf_Client_Set_Icon_Size(); +extern void Interf_Client_Set_Icon_Position(); + +extern void Interf_Client_Startup(); +extern void Interf_Client_Set_Command(); +extern void Interf_Client_Destroy(); +extern void Interf_Client_Configure(); +extern void Interf_Client_Reset_Min_Max(); +extern void Interf_Client_Set_Normal_Hints(); +extern void Interf_Client_Set_Geometry_Hints(); + +extern void Interf_Handle_FocusIn(); diff --git a/interf_in.c b/interf_in.c new file mode 100644 index 0000000..1e612d2 --- /dev/null +++ b/interf_in.c @@ -0,0 +1,139 @@ +#ifndef lint +static char sccs_id[] = "@(#)interf_in.c 5.2 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +/* bits 0,1, and 2 correspond to buttons 0,1, and 2 */ +/* bits 8-11 correspond to logical operators on CTRL and SHIFT */ + +#define LEFT_BUTTON 0x1 +#define MIDDLE_BUTTON 0x2 +#define RIGHT_BUTTON 0x4 + +#define NOT_LEFT_BUTTON 0x6 +#define NOT_MIDDLE_BUTTON 0x5 +#define NOT_RIGHT_BUTTON 0x3 + +#define ANY_BUTTON 0x7 + +#define NOT_BUTTONS(but) ( 7 - (but) ) + +/* ------------------------------------------------------------ */ + +#define DISALLOWED 0x000 + +#define NONE_SHIFT_CTRL 0x100 +#define JUST_SHIFT 0x200 +#define NOT_CTRL 0x300 +#define JUST_CTRL 0x400 +#define NOT_SHIFT 0x500 +#define JUST_ONE_SHIFT_CTRL 0x600 +#define NOT_BOTH_SHIFT_CTRL 0x700 + +#define BOTH_SHIFT_CTRL 0x800 +#define NOT_JUST_ONE_SHIFT_CTRL 0x900 +#define HAS_SHIFT 0xa00 +#define NOT_JUST_CTRL 0xb00 +#define HAS_CTRL 0xc00 +#define NOT_JUST_SHIFT 0xd00 +#define SOME_SHIFT_CTRL 0xe00 + +#define DONT_CARE 0xf00 + +/* ------------------------------------------------------------ */ + +extern short TOOL_BUTTONS; +extern short DISCONNECT_BUTTONS; +extern short EXIT_BUTTONS; +extern short BODY_MANAGER_MENU_BUTTONS; +extern short BODY_USER_MENU_BUTTONS; +extern short HEADER_MANAGER_MENU_BUTTONS; +extern short HEADER_USER_MENU_BUTTONS; +extern short ICON_OPEN_BUTTONS; +extern short ICON_MOVE_BUTTONS; +extern short CLOSE_BUTTONS; +extern short REDRAW_BUTTONS; +extern short ZOOM_BUTTONS; +extern short DESIRE_BUTTONS; +extern short ENLARGE_BUTTONS; +extern short MOVE_BUTTONS; +extern short RELOCATE_BUTTONS; +extern short EXCHANGE_BUTTONS; +extern short RESIZE_BUTTONS; +extern short TOGGLE_GRAVITY_BUTTONS; +extern short CANCEL_BUTTONS; +extern short UNDESIRE_BUTTONS; +extern short FORCE_RESET_MIN_MAX_BUTTONS; +extern short FORCE_LISTENER_BUTTONS; +extern short FORCE_ZOOM_BUTTONS; + +void Interf_Init_Buttons() +{ + short menu_button, move_button, size_button; + + menu_button = RIGHT_BUTTON; + move_button = MIDDLE_BUTTON; + size_button = LEFT_BUTTON; + + + DESIRE_BUTTONS = size_button | NONE_SHIFT_CTRL; + ZOOM_BUTTONS = size_button | JUST_SHIFT; + ENLARGE_BUTTONS = size_button | JUST_CTRL; + + ICON_OPEN_BUTTONS = size_button | NONE_SHIFT_CTRL; + + RESIZE_BUTTONS = size_button | NOT_CTRL; + + TOGGLE_GRAVITY_BUTTONS = ANY_BUTTON | JUST_SHIFT; + FORCE_RESET_MIN_MAX_BUTTONS = ANY_BUTTON | JUST_SHIFT; + UNDESIRE_BUTTONS = ANY_BUTTON | JUST_CTRL; + FORCE_LISTENER_BUTTONS = ANY_BUTTON | HAS_SHIFT; + FORCE_ZOOM_BUTTONS = ANY_BUTTON | HAS_CTRL; + TOOL_BUTTONS = ANY_BUTTON | DISALLOWED; + + + RELOCATE_BUTTONS = move_button | NONE_SHIFT_CTRL; + EXCHANGE_BUTTONS = move_button | JUST_CTRL; + MOVE_BUTTONS = move_button | NOT_CTRL; + ICON_MOVE_BUTTONS = move_button | NOT_CTRL; + + + CANCEL_BUTTONS = menu_button | DONT_CARE; + CLOSE_BUTTONS = menu_button | BOTH_SHIFT_CTRL; + EXIT_BUTTONS = menu_button | DISALLOWED; + DISCONNECT_BUTTONS = menu_button | BOTH_SHIFT_CTRL; + + + REDRAW_BUTTONS = NOT_BUTTONS( menu_button ) | BOTH_SHIFT_CTRL; + + + HEADER_MANAGER_MENU_BUTTONS = menu_button | NONE_SHIFT_CTRL; + +/* Not used for X version */ + + HEADER_USER_MENU_BUTTONS = menu_button | JUST_ONE_SHIFT_CTRL; + BODY_USER_MENU_BUTTONS = menu_button | NONE_SHIFT_CTRL; + BODY_MANAGER_MENU_BUTTONS = menu_button | JUST_ONE_SHIFT_CTRL; +} diff --git a/interf_in1.c b/interf_in1.c new file mode 100644 index 0000000..62e0473 --- /dev/null +++ b/interf_in1.c @@ -0,0 +1,124 @@ +#ifndef lint +static char sccs_id[] = "@(#)interf_in1.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +/* bits 0,1, and 2 correspond to buttons 0,1, and 2 */ +/* bits 8-11 correspond to logical operators on CTRL and SHIFT */ + +#define LEFT_BUTTON 0x1 +#define MIDDLE_BUTTON 0x2 +#define RIGHT_BUTTON 0x4 + +#define NOT_LEFT_BUTTON 0x6 +#define NOT_MIDDLE_BUTTON 0x5 +#define NOT_RIGHT_BUTTON 0x3 + +#define ANY_BUTTON 0x7 + +#define NOT_BUTTONS(but) ( 7 - (but) ) + +/* ------------------------------------------------------------ */ + +#define DISALLOWED 0x000; + +#define NONE_SHIFT_CTRL 0x100 +#define JUST_SHIFT 0x200 +#define NOT_CTRL 0x300 +#define JUST_CTRL 0x400 +#define NOT_SHIFT 0x500 +#define JUST_ONE_SHIFT_CTRL 0x600 +#define NOT_BOTH_SHIFT_CTRL 0x700 + +#define BOTH_SHIFT_CTRL 0x800 +#define NOT_JUST_ONE_SHIFT_CTRL 0x900 +#define HAS_SHIFT 0xa00 +#define NOT_JUST_CTRL 0xb00 +#define HAS_CTRL 0xc00 +#define NOT_JUST_SHIFT 0xd00 +#define SOME_SHIFT_CTRL 0xe00 + +#define DONT_CARE 0xf00 + +/* ------------------------------------------------------------ */ + +extern short TOOL_BUTTONS; +extern short DISCONNECT_BUTTONS; +extern short EXIT_BUTTONS; +extern short BODY_MANAGER_MENU_BUTTONS; +extern short BODY_USER_MENU_BUTTONS; +extern short HEADER_MANAGER_MENU_BUTTONS; +extern short HEADER_USER_MENU_BUTTONS; +extern short ICON_OPEN_BUTTONS; +extern short ICON_MOVE_BUTTONS; +extern short CLOSE_BUTTONS; +extern short REDRAW_BUTTONS; +extern short ZOOM_BUTTONS; +extern short ZOOM_LOCK_BUTTONS; +extern short DESIRE_BUTTONS; +extern short ENLARGE_BUTTONS; +extern short MOVE_BUTTONS; +extern short RELOCATE_BUTTONS; +extern short EXCHANGE_BUTTONS; +extern short RESIZE_BUTTONS; +extern short TOGGLE_GRAVITY_BUTTONS; +extern short CANCEL_BUTTONS; +extern short UNDESIRE_BUTTONS; +extern short FORCE_RESET_MIN_MAX_BUTTONS; +extern short FORCE_LISTENER_BUTTONS; +extern short FORCE_ZOOM_BUTTONS; + +void Interf_Init_Buttons() +{ + + DESIRE_BUTTONS = ANY_BUTTON | NONE_SHIFT_CTRL; + ZOOM_BUTTONS = ANY_BUTTON | JUST_SHIFT; + ENLARGE_BUTTONS = ANY_BUTTON | JUST_CTRL; + + ICON_OPEN_BUTTONS = ANY_BUTTON | NONE_SHIFT_CTRL; + + RESIZE_BUTTONS = ANY_BUTTON | NOT_SHIFT; + + TOGGLE_GRAVITY_BUTTONS = ANY_BUTTON | JUST_CTRL; + FORCE_RESET_MIN_MAX_BUTTONS = ANY_BUTTON | JUST_SHIFT; + UNDESIRE_BUTTONS = ANY_BUTTON | JUST_CTRL; + FORCE_LISTENER_BUTTONS = ANY_BUTTON | HAS_SHIFT; + FORCE_ZOOM_BUTTONS = ANY_BUTTON | HAS_CTRL; + TOOL_BUTTONS = ANY_BUTTON | DISALLOWED; + + RELOCATE_BUTTONS = ANY_BUTTON | NONE_SHIFT_CTRL; + EXCHANGE_BUTTONS = ANY_BUTTON | JUST_CTRL; + MOVE_BUTTONS = ANY_BUTTON | JUST_SHIFT; + ICON_MOVE_BUTTONS = ANY_BUTTON | JUST_SHIFT; + + CANCEL_BUTTONS = ANY_BUTTON | BOTH_SHIFT_CTRL; + CLOSE_BUTTONS = ANY_BUTTON | BOTH_SHIFT_CTRL; + EXIT_BUTTONS = ANY_BUTTON | DISALLOWED; + DISCONNECT_BUTTONS = ANY_BUTTON | BOTH_SHIFT_CTRL; + + REDRAW_BUTTONS = ANY_BUTTON | BOTH_SHIFT_CTRL; + + HEADER_MANAGER_MENU_BUTTONS = ANY_BUTTON | NOT_JUST_ONE_SHIFT_CTRL; +} diff --git a/layout.c b/layout.c new file mode 100644 index 0000000..c770363 --- /dev/null +++ b/layout.c @@ -0,0 +1,651 @@ +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include + +#include "basetype.h" + +#include "draw.h" + +#include "twinD.h" +#include "twin.h" +#include "uwinD.h" + +extern FILE* Open_Read(); +extern FILE* Open_Write(); + +typedef pointer Layoutp; +#define LAYOUT_NULL (Layout *)NULL + +/* ------------------------------------------------------------ */ + +#define strnullcpy( str1, str2 ) \ +{ \ + str2[strlen(str2)-1] = NULL; \ + strcpy( str1, str2 ); \ +} + +/* ------------------------------------------------------------ */ + +int unmatched_layouts = 0; + +static char hoststr[128]; +static char preference_str[128]; +static char *preference_file; +static FILE *layout_stream; + +/* ------------------------------------------------------------ */ + +typedef struct layout Layout; + +struct layout +{ + Layout *next; + bool found; + + char res_class[128]; + char res_name[128]; + char hostname[128]; + char identity[128]; + char command[128]; + + bool open; + Size siz; + TWPoint center; + TWPoint icon_center; + + bool zoomed; + Size regular_size; + Size regular_min; + Size zoom_size; + Size zoom_min; + Size max_size; + + TWRectangle rezoom_rect; + + bool positioned; + + bool explicit_fixed_completely; + bool explicit_fixed_height; + bool explicit_fixed_width; + bool explicit_require_manual_close; + bool explicit_listener_tied_to_zoom; + bool explicit_zoom_tied_to_desire; + + bool fixed_completely; + bool fixed_height; + bool fixed_width; + bool require_manual_close; + bool listener_tied_to_zoom; + bool zoom_tied_to_desire; +}; + +static Layout *layout_head, *layout_tail; + +/* ------------------------------------------------------------ */ + +static void Layout_Scan_Values( layoutp, str ) + char *str; + Layout *layoutp; +{ + sscanf( str, + "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n", + &(layoutp->open), + &(layoutp->siz.width), + &(layoutp->siz.height), + &(layoutp->center.x), + &(layoutp->center.y), + &(layoutp->icon_center.x), + &(layoutp->icon_center.y), + &(layoutp->zoomed), + &(layoutp->regular_size.width), + &(layoutp->regular_size.height), + &(layoutp->regular_min.width), + &(layoutp->regular_min.height), + &(layoutp->zoom_size.width), + &(layoutp->zoom_size.height), + &(layoutp->zoom_min.width), + &(layoutp->zoom_min.height), + &(layoutp->max_size.width), + &(layoutp->max_size.height), + &(layoutp->rezoom_rect.left_x), + &(layoutp->rezoom_rect.right_x), + &(layoutp->rezoom_rect.top_y), + &(layoutp->rezoom_rect.bottom_y), + &(layoutp->positioned) ); +} + +/* ------------------------------------------------------------ */ + +static void Layout_Scan_Options( layoutp, str ) + char *str; + Layout *layoutp; +{ + int scanned; + + scanned = sscanf( str, + "%d %d %d %d %d %d %d %d %d %d %d %d\n", + &(layoutp->explicit_require_manual_close), + &(layoutp->require_manual_close), + &(layoutp->explicit_fixed_width), + &(layoutp->fixed_width), + &(layoutp->explicit_fixed_height), + &(layoutp->fixed_height), + &(layoutp->explicit_fixed_completely), + &(layoutp->fixed_completely), + &(layoutp->explicit_listener_tied_to_zoom), + &(layoutp->listener_tied_to_zoom), + &(layoutp->explicit_zoom_tied_to_desire), + &(layoutp->zoom_tied_to_desire) ); + + if ( scanned < 12 ) /* old format */ + { + layoutp->explicit_zoom_tied_to_desire = FALSE; + sscanf( str, + "%d %d %d %d %d %d %d %d %d %d\n", + &(layoutp->explicit_listener_tied_to_zoom), + &(layoutp->explicit_fixed_completely), + &(layoutp->explicit_fixed_height), + &(layoutp->explicit_fixed_width), + &(layoutp->explicit_require_manual_close), + &(layoutp->listener_tied_to_zoom), + &(layoutp->fixed_completely), + &(layoutp->fixed_height), + &(layoutp->fixed_width), + &(layoutp->require_manual_close) ); + } +} + +/* ------------------------------------------------------------ */ + +void Layout_Update( filnam ) + char *filnam; +{ + if ( filnam == NULL ) + preference_file = NULL; + else + { + (void) strcpy( preference_str, filnam ); + preference_file = preference_str; + } +} + +/* ------------------------------------------------------------ */ + +char *Layout_Init() +{ + char str[256]; + + gethostname( hoststr, 128 ); + + preference_file = NULL; + + layout_tail = layout_head = LAYOUT_NULL; + + layout_stream = Open_Read( ".rtl.layout" ); + if ( layout_stream == NULL ) + return NULL; + + fgets( str, 128, layout_stream ); + + fgets( str, 128, layout_stream ); + sscanf( str, "%s", preference_str ); + if ( strlen(preference_str) != 0 ) + preference_file = preference_str; + + return preference_file; +} + +/* ------------------------------------------------------------ */ + +void Layout_Read() +{ + char str[256]; + Layout *layoutp; + int wid, ht; + + if ( layout_stream == NULL ) + return; + + fgets( str, 128, layout_stream ); + if ( sscanf( str, "%d %d", &wid, &ht ) == 2 ) + { + UserGlobals_Set_Value( RTL_WIDTH, wid ); + UserGlobals_Set_Value( RTL_HEIGHT, ht ); + } + + while ( fgets( str, 256, layout_stream ) != NULL ) + { + unmatched_layouts++; + layoutp = allocate( Layout, 1 ); + layoutp->found = FALSE; + + fgets( str, 256, layout_stream ); + strnullcpy( layoutp->res_class, str ); + + fgets( str, 256, layout_stream ); + strnullcpy( layoutp->res_name, str ); + + fgets( str, 256, layout_stream ); + strnullcpy( layoutp->hostname, str ); + + fgets( str, 256, layout_stream ); + strnullcpy( layoutp->identity, str ); + + fgets( str, 256, layout_stream ); + strnullcpy( layoutp->command, str ); + + fgets( str, 256, layout_stream ); + Layout_Scan_Values( layoutp, str ); + fgets( str, 256, layout_stream ); + Layout_Scan_Options( layoutp, str ); + + if ( layout_tail == LAYOUT_NULL ) + layout_head = layoutp; + else + layout_tail->next = layoutp; + layout_tail = layoutp; + layoutp->next = LAYOUT_NULL; + } + fclose ( layout_stream ); +} + +/* ------------------------------------------------------------ */ + +Layoutp Layout_Find( uwinp ) + Userwin *uwinp; +{ + Layout *layoutp; + bool same; + + if ( unmatched_layouts <= 0 ) + return (Layoutp)LAYOUT_NULL; + + if ( (uwinp->res_class == NULL) && (uwinp->res_name == NULL) ) + return (Layoutp)LAYOUT_NULL; + + /* Match host, res, identity, command */ + + for ( layoutp = layout_head; layoutp != LAYOUT_NULL; + layoutp = layoutp->next ) + { + /* for ULTRIX */ + same = streql( uwinp->hostname, layoutp->hostname ) && + streql( uwinp->res_class, layoutp->res_class ) && + streql( uwinp->res_name, layoutp->res_name ); + same = same && streql( uwinp->identity, layoutp->identity ) && + streql( uwinp->command, layoutp->command ); + + if ( (! layoutp->found) && same) + { + layoutp->found = TRUE; + unmatched_layouts--; + return (Layoutp)layoutp; + } + } + + for ( layoutp = layout_head; layoutp != LAYOUT_NULL; + layoutp = layoutp->next ) + { + /* for ULTRIX */ + same = streql( "*", layoutp->hostname ) && + streql( uwinp->res_class, layoutp->res_class ) && + streql( uwinp->res_name, layoutp->res_name ); + same = same && streql( uwinp->identity, layoutp->identity ) && + streql( uwinp->command, layoutp->command ); + + if ( (! layoutp->found) && same) + { + layoutp->found = TRUE; + unmatched_layouts--; + return (Layoutp)layoutp; + } + } + + /* Match host, res, identity */ + + if ( (uwinp->res_class == NULL) && (uwinp->res_name == NULL) ) + return (Layoutp)LAYOUT_NULL; + + for ( layoutp = layout_head; layoutp != LAYOUT_NULL; + layoutp = layoutp->next ) + { + /* for ULTRIX */ + same = streql( uwinp->hostname, layoutp->hostname ) && + streql( uwinp->res_class, layoutp->res_class ); + same = same && streql( uwinp->res_name, layoutp->res_name ) && + streql( uwinp->identity, layoutp->identity ); + + if ( (! layoutp->found) && same) + { + layoutp->found = TRUE; + unmatched_layouts--; + return (Layoutp)layoutp; + } + } + + for ( layoutp = layout_head; layoutp != LAYOUT_NULL; + layoutp = layoutp->next ) + { + /* for ULTRIX */ + + same = streql( "*", layoutp->hostname ) && + streql( uwinp->res_class, layoutp->res_class ); + same = same && streql( uwinp->res_name, layoutp->res_name ) && + streql( uwinp->identity, layoutp->identity ); + + if ( (! layoutp->found) && same) + { + layoutp->found = TRUE; + unmatched_layouts--; + return (Layoutp)layoutp; + } + } + + /* Match host, res, command */ + + if ( (uwinp->res_class == NULL) && (uwinp->res_name == NULL) ) + return (Layoutp)LAYOUT_NULL; + + for ( layoutp = layout_head; layoutp != LAYOUT_NULL; + layoutp = layoutp->next ) + { + /* for ULTRIX */ + same = streql( uwinp->hostname, layoutp->hostname ) && + streql( uwinp->res_class, layoutp->res_class ); + same = same && streql( uwinp->res_name, layoutp->res_name ) && + streql( uwinp->command, layoutp->command ); + + if ( (! layoutp->found) && same) + { + layoutp->found = TRUE; + unmatched_layouts--; + return (Layoutp)layoutp; + } + } + + for ( layoutp = layout_head; layoutp != LAYOUT_NULL; + layoutp = layoutp->next ) + { + /* for ULTRIX */ + same = streql( "*", layoutp->hostname ) && + streql( uwinp->res_class, layoutp->res_class ); + same = same && streql( uwinp->res_name, layoutp->res_name ) && + streql( uwinp->command, layoutp->command ); + + if ( (! layoutp->found) && same) + { + layoutp->found = TRUE; + unmatched_layouts--; + return (Layoutp)layoutp; + } + } + + /* Match host, res */ + + for ( layoutp = layout_head; layoutp != LAYOUT_NULL; + layoutp = layoutp->next ) + { + if ( (! layoutp->found) && + streql( uwinp->hostname, layoutp->hostname ) && + streql( uwinp->res_class, layoutp->res_class ) && + streql( uwinp->res_name, layoutp->res_name ) ) + { + layoutp->found = TRUE; + unmatched_layouts--; + return (Layoutp)layoutp; + } + } + + for ( layoutp = layout_head; layoutp != LAYOUT_NULL; + layoutp = layoutp->next ) + { + if ( (! layoutp->found) && + streql( "*", layoutp->hostname ) && + streql( uwinp->res_class, layoutp->res_class ) && + streql( uwinp->res_name, layoutp->res_name ) ) + { + layoutp->found = TRUE; + unmatched_layouts--; + return (Layoutp)layoutp; + } + } + + return (Layoutp)LAYOUT_NULL; +} + +/* ------------------------------------------------------------ */ + +void Layout_Set_Values( layoutp, uwinp ) + Userwin *uwinp; + Layoutp layoutp; +{ + Size siz; + Layout *layp = (Layout *)layoutp; + + if ( layp == LAYOUT_NULL ) return; + uwinp->sized = TRUE; + uwinp->positioned = layp->open || layp->positioned; + uwinp->icon_positioned = (! layp->open ) || layp->positioned; + siz = Tilwin_Get_Size( uwinp->iconp ); + Tilwin_Set_Min( uwinp->iconp, siz ); + Tilwin_Set_Max( uwinp->iconp, siz ); + Tilwin_Set( uwinp->iconp, layp->icon_center, siz ); + uwinp->zoomed = layp->zoomed; + uwinp->regular_size = layp->regular_size; + uwinp->regular_min = layp->regular_min; + Tilwin_Set_Min( uwinp->winp, uwinp->regular_min ); + uwinp->zoom_size = layp->zoom_size; + uwinp->zoom_min = layp->zoom_min; + uwinp->rezoom_rect = layp->rezoom_rect; + Tilwin_Set_Max( uwinp->winp, layp->max_size ); + Tilwin_Set( uwinp->winp, layp->center, layp->siz ); +} + +/* ------------------------------------------------------------ */ + +void Layout_Set_Options( layoutp, uwinp ) + Userwin *uwinp; + Layoutp layoutp; +{ + Layout *layp = (Layout *)layoutp; + + if ( layp == LAYOUT_NULL ) return; + + Userwin_Set_Window_Option( uwinp, + AUTO_OPEN_ON_CREATE, layp->open ); + + if ( layp->explicit_fixed_completely ) + { + Tilwin_Set_Window_Option( uwinp->winp, FIXED_COMPLETELY, + layp->fixed_completely ); + Explicit_Window_Set( uwinp, EXPLICIT_FIXED_COMPLETELY ); + } + if ( layp->explicit_fixed_height ) + { + Tilwin_Set_Window_Option( uwinp->winp, FIXED_HEIGHT, + layp->fixed_height ); + Explicit_Window_Set( uwinp, EXPLICIT_FIXED_HEIGHT ); + } + if ( layp->explicit_fixed_width ) + { + Tilwin_Set_Window_Option( uwinp->winp, FIXED_WIDTH, + layp->fixed_width ); + Explicit_Window_Set( uwinp, EXPLICIT_FIXED_WIDTH ); + } + if ( layp->explicit_require_manual_close ) + { + Tilwin_Set_Window_Option( uwinp->winp, REQUIRE_MANUAL_CLOSE, + layp->require_manual_close ); + Explicit_Window_Set( uwinp, EXPLICIT_REQUIRE_MANUAL_CLOSE ); + } + if ( layp->explicit_listener_tied_to_zoom ) + { + Userwin_Set_Window_Option( uwinp, LISTENER_TIED_TO_ZOOM, + layp->listener_tied_to_zoom ); + Explicit_Window_Set( uwinp, EXPLICIT_LISTENER_TIED_TO_ZOOM ); + } + if ( layp->explicit_zoom_tied_to_desire ) + { + Userwin_Set_Window_Option( uwinp, ZOOM_TIED_TO_DESIRE, + layp->zoom_tied_to_desire ); + Explicit_Window_Set( uwinp, EXPLICIT_ZOOM_TIED_TO_DESIRE ); + } +} + +/* ------------------------------------------------------------ */ + +static void Layout_Write_Window( layout_stream, uwinp ) + FILE *layout_stream; + Userwin *uwinp; +{ + if ( ( ( uwinp->res_class == NULL ) && + ( uwinp->res_name == NULL ) ) || + (! Userwin_Get_Window_Option( uwinp, SAVE_IN_LAYOUT ) ) ) + return; + + if ( uwinp->zoomed ) + { + uwinp->zoom_size = Tilwin_Get_Desired( uwinp->winp ); + uwinp->zoom_min = Tilwin_Get_Min( uwinp->winp ); + } + else + { + uwinp->regular_size = Tilwin_Get_Desired( uwinp->winp ); + uwinp->regular_min = Tilwin_Get_Min( uwinp->winp ); + } + + fprintf( layout_stream, "\n" ); + + if ( uwinp->res_class == NULL ) + fprintf( layout_stream, "\n" ); + else + fprintf( layout_stream, "%s\n", uwinp->res_class ); + + if ( uwinp->res_name == NULL ) + fprintf( layout_stream, "\n" ); + else + fprintf( layout_stream, "%s\n", uwinp->res_name ); + + if ( uwinp->hostname == NULL ) + fprintf( layout_stream, "\n" ); + else if ( streql( hoststr, uwinp->hostname ) ) + fprintf( layout_stream, "*\n" ); + else + fprintf( layout_stream, "%s\n", uwinp->hostname ); + + if ( uwinp->identity == NULL ) + fprintf( layout_stream, "\n" ); + else + fprintf( layout_stream, "%s\n", uwinp->identity ); + + if ( uwinp->command == NULL ) + fprintf( layout_stream, "\n" ); + else + fprintf( layout_stream, "%s\n", uwinp->command ); + + fprintf( layout_stream, + "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n", + Tilwin_Is_Open( uwinp->winp ), + Tilwin_Get_Size( uwinp->winp ).width, + Tilwin_Get_Size( uwinp->winp ).height, + Tilwin_Get_Center( uwinp->winp ).x, + Tilwin_Get_Center( uwinp->winp ).y, + Tilwin_Get_Center( uwinp->iconp ).x, + Tilwin_Get_Center( uwinp->iconp ).y, + uwinp->zoomed, + uwinp->regular_size.width, + uwinp->regular_size.height, + uwinp->regular_min.width, + uwinp->regular_min.height, + uwinp->zoom_size.width, + uwinp->zoom_size.height, + uwinp->zoom_min.width, + uwinp->zoom_min.height, + Tilwin_Get_Max( uwinp->winp ).width, + Tilwin_Get_Max( uwinp->winp ).height, + uwinp->rezoom_rect.left_x, + uwinp->rezoom_rect.right_x, + uwinp->rezoom_rect.top_y, + uwinp->rezoom_rect.bottom_y, + ( Tilwin_Is_Open( uwinp->winp ) ? + uwinp->icon_positioned : + uwinp->positioned ) ); + + fprintf( layout_stream, + "%d %d %d %d %d %d %d %d %d %d %d %d\n", + Explicit_Window_Get( uwinp, EXPLICIT_REQUIRE_MANUAL_CLOSE ), + Tilwin_Get_Window_Option( uwinp->winp, REQUIRE_MANUAL_CLOSE), + Explicit_Window_Get( uwinp, EXPLICIT_FIXED_WIDTH ), + Tilwin_Get_Window_Option( uwinp->winp, FIXED_WIDTH ), + Explicit_Window_Get( uwinp, EXPLICIT_FIXED_HEIGHT ), + Tilwin_Get_Window_Option( uwinp->winp, FIXED_HEIGHT ), + Explicit_Window_Get( uwinp, EXPLICIT_FIXED_COMPLETELY ), + Tilwin_Get_Window_Option( uwinp->winp, FIXED_COMPLETELY ), + Explicit_Window_Get( uwinp, EXPLICIT_LISTENER_TIED_TO_ZOOM ), + Userwin_Get_Window_Option( uwinp, LISTENER_TIED_TO_ZOOM ), + Explicit_Window_Get( uwinp, EXPLICIT_ZOOM_TIED_TO_DESIRE ), + Userwin_Get_Window_Option( uwinp, ZOOM_TIED_TO_DESIRE ) ); +} + +/* ------------------------------------------------------------ */ + +bool Layout_Save() +{ + FILE *layout_stream; + Tilwinp winp; + Userwin *uwinp; + + layout_stream = Open_Write( ".rtl.layout" ); + if ( layout_stream == NULL ) return FALSE; + + if ( preference_file == NULL ) + fprintf( layout_stream, "\n\n" ); + else + fprintf( layout_stream, "\n%s\n", preference_file ); + + fprintf( layout_stream, "%d %d\n", + Draw_Get_Frame_Width(), + Draw_Get_Frame_Height() ); + + Tilwin_Gen_Open_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get( winp ); + if ( uwinp->winp == winp ) + Layout_Write_Window( layout_stream, uwinp ); + } + + Tilwin_Gen_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get( winp ); + if ( uwinp->winp == winp ) + Layout_Write_Window( layout_stream, uwinp ); + } + + fclose( layout_stream ); + return TRUE; +} + diff --git a/layout.h b/layout.h new file mode 100644 index 0000000..199f6b0 --- /dev/null +++ b/layout.h @@ -0,0 +1,59 @@ +/* +static char sccs_id[] = "@(#)layout.h 5.6 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +typedef pointer Layoutp; +#define LAYOUT_NULL (Layoutp)NULL + +extern bool Layout_Save(); + +#define Layout_Startup_Filename() \ + ( startup_file ) + +extern int unmatched_layouts; + +#define Layout_Done() \ + ( unmatched_layouts <= 0 ) + +#define Layout_Finish() \ + ( unmatched_layouts = 0 ) + +extern Layoutp Layout_Find(); +/* uwinp */ + +extern void Layout_Set_Values(); +/* layoutp, uwinp */ + +extern void Layout_Set_Options(); +/* layoutp, uwinp */ + +extern char *Layout_Init(); + +extern void Layout_Read(); + +extern void Layout_Update(); diff --git a/listsP.h b/listsP.h new file mode 100644 index 0000000..65c8ad6 --- /dev/null +++ b/listsP.h @@ -0,0 +1,60 @@ +/* +static char sccs_id[] = "@(#)listsP.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +#define LISTS + +#ifndef STD_DEFS +#include "std_defs.h" +#endif + + +typedef struct node Node; + +struct node +{ + struct node *prev, *next; + pointer info; + int id; /* optional identifier (used in + find operations) */ +}; + +#define NODE_NULL (Node *)NULL +#define DEFAULT_NODE_ID 0 + +typedef struct { + Node *head, *tail; + } + List; + +#define LIST_NULL (List *)NULL + +#define Lists_Convert_Node_Info(node, type) \ + ((type)((node)->info)) + +#define Lists_For_Each_Node_On_List(list, node) \ + for((node)=(list)->head;node;(node)=(node)->next) diff --git a/manage.c b/manage.c new file mode 100644 index 0000000..518db7a --- /dev/null +++ b/manage.c @@ -0,0 +1,5343 @@ +#ifndef lint +static char sccs_id[] = "@(#)manage.c 5.7 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include +#include "copyright.h" + +#include "basetype.h" + +#include "userglobD.h" +#include "twin.h" + +#ifndef TILWIN_DEFINE +#include "twinD.h" +#endif + +#ifndef USERWIN_DEFINE +#include "uwinD.h" +#endif + +#include "uwinL.h" +#include "uwinvalP.h" + +#include "client.h" +#include "closed.h" +#include "draw.h" +#include "drawicon.h" +#include "drawwin.h" +#include "layout.h" +#include "profile.h" +#include "region.h" + +/* ------------------------------------------------------------ */ + +#define SWAP_BOOL( val1, val2 ) \ +{ \ + bool temp; \ + temp = val1; \ + val1 = val2; \ + val2 = temp; \ +} + +/* ------------------------------------------------------------ */ + +#define SWAP_INT( val1, val2 ) \ +{ \ + int temp; \ + temp = val1; \ + val1 = val2; \ + val2 = temp; \ +} + +/* ------------------------------------------------------------ */ + +#define SWAP_POS( val1, val2 ) \ +{ \ + TWPoint temp; \ + temp = val1; \ + val1 = val2; \ + val2 = temp; \ +} + +/* ------------------------------------------------------------ */ + +#define SWAP_SIZE( val1, val2 ) \ +{ \ + Size temp; \ + temp = val1; \ + val1 = val2; \ + val2 = temp; \ +} + +/* ------------------------------------------------------------ */ + +#define SWAP_RECT( val1, val2 ) \ +{ \ + TWRectangle temp; \ + temp = val1; \ + val1 = val2; \ + val2 = temp; \ +} + +/* ------------------------------------------------------------ */ + +#define SWAP_UWINP( uwinp1, uwinp2 ) \ +{ \ + Userwin *temp; \ + temp = uwinp1; \ + uwinp1 = uwinp2; \ + uwinp2 = temp; \ +} + +/* ------------------------------------------------------------ */ + +#define COMPUTE_DISTANCE(pt1, pt2) \ + (((Get_PtX(pt1) - Get_PtX(pt2)) * (Get_PtX(pt1) - Get_PtX(pt2))) + \ + ((Get_PtY(pt1) - Get_PtY(pt2)) * (Get_PtY(pt1) - Get_PtY(pt2)))) + + +#define window_excursion(win,opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = Tilwin_Get_Window_Option(win,opt); \ + Tilwin_Set_Window_Option(win,opt,val); \ + code; \ + Tilwin_Set_Window_Option(win,opt,temp_val); \ +} + +#define window_restrict_excursion(win,opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = Tilwin_Get_Window_Option(win,opt); \ + Tilwin_Set_Window_Option( win, opt, (temp_val && val) ); \ + code; \ + Tilwin_Set_Window_Option(win,opt,temp_val); \ +} + +#define window_join_excursion(win,opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = Tilwin_Get_Window_Option(win,opt); \ + Tilwin_Set_Window_Option( win, opt, (temp_val || val) ); \ + code; \ + Tilwin_Set_Window_Option(win,opt,temp_val); \ +} + +#define global_excursion(opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = Tilwin_Get_Global_Option(opt); \ + Tilwin_Set_Global_Option(opt,val); \ + code; \ + Tilwin_Set_Global_Option(opt,temp_val); \ +} + +#define global_restrict_excursion(opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = Tilwin_Get_Global_Option(opt); \ + Tilwin_Set_Global_Option( opt, (temp_val && val) ); \ + code; \ + Tilwin_Set_Global_Option(opt,temp_val); \ +} + +#define user_window_excursion(uwin,opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = Userwin_Get_Window_Option(uwin,opt); \ + Userwin_Set_Window_Option( uwin, opt, val ); \ + code; \ + Userwin_Set_Window_Option(uwin,opt,temp_val); \ +} + +#define user_window_join_excursion(uwin,opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = Userwin_Get_Window_Option(uwin,opt); \ + Userwin_Set_Window_Option( uwin, opt, (temp_val || val) ); \ + code; \ + Userwin_Set_Window_Option(uwin,opt,temp_val); \ +} + +#define user_global_excursion(opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = UserGlobals_Get_Option(opt); \ + UserGlobals_Set_Option( opt, val ); \ + code; \ + UserGlobals_Set_Option(opt,temp_val); \ +} + +#define user_global_restrict_excursion(opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = UserGlobals_Get_Option(opt); \ + UserGlobals_Set_Option( opt, (temp_val && val) ); \ + code; \ + UserGlobals_Set_Option(opt,temp_val); \ +} + +#define user_global_join_excursion(opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = UserGlobals_Get_Option(opt); \ + UserGlobals_Set_Option( opt, (temp_val || val) ); \ + code; \ + UserGlobals_Set_Option(opt,temp_val); \ +} + +#define min_excursion(win,code) \ +{ \ + Size temp_min; \ + temp_min = Tilwin_Get_Min(win); \ + Tilwin_Set_Min( win, Tilwin_Get_Size(win) ); \ + code; \ + Tilwin_Set_Min( win, temp_min ); \ +} + +/* ------------------------------------------------------------ */ + +#define height_excursion(winp,code) \ +{ \ + if ( Tilwin_Get_Size(winp).height < \ + Tilwin_Get_Previous_Size(winp).height ) \ + window_excursion( winp, FIXED_HEIGHT, TRUE, code ) \ + else \ + { \ + Size temp_min; \ + Size temp_siz; \ + temp_siz = temp_min = Tilwin_Get_Min(winp); \ + temp_siz.height = Tilwin_Get_Size(winp).height; \ + Tilwin_Set_Min( winp, temp_siz ); \ + code; \ + Tilwin_Set_Min( winp, temp_min ); \ + } \ +} + +/* ------------------------------------------------------------ */ + +#define width_excursion(winp,code) \ +{ \ + if ( Tilwin_Get_Size(winp).width < \ + Tilwin_Get_Previous_Size(winp).width ) \ + window_excursion( winp, FIXED_WIDTH, TRUE, code ) \ + else \ + { \ + Size temp_min; \ + Size temp_siz; \ + temp_siz = temp_min = Tilwin_Get_Min(winp); \ + temp_siz.width = Tilwin_Get_Size(winp).width; \ + Tilwin_Set_Min( winp, temp_siz ); \ + code; \ + Tilwin_Set_Min( winp, temp_min ); \ + } \ +} + +static void Manage_Do_Unzoom(Userwin *uwinp, bool explicit); +static void Manage_Start_Trying(); +static void Manage_Finish_Trying(bool result); + +/* ------------------------------------------------------------ */ + +TimeStamp last_stamp; + +static int winnum = 0; + +Userwin *focus = UWIN_NULL; +Userwin *listener = UWIN_NULL; +Userwin *sublistener = UWIN_NULL; +Userwin *switch_listener = UWIN_NULL; +Userwin *prev_listener = UWIN_NULL; +Userwin *last_zoom = UWIN_NULL; +Userwin *touch = UWIN_NULL; +Userwin *prev_touch = UWIN_NULL; + +Userwin *rtl_uwinp; + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void Manage_Init() +{ + Draw_Init(); + Region_Init(); + Drawwin_Init(); + DrawIcon_Init(); + + last_stamp = 0; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static Userwin *Manage_Init_Window() +{ + Userwin *uwinp; + uwinp = Userwin_Allocate; + + uwinp->prepared = FALSE; + uwinp->layout = FALSE; + uwinp->layout_found = FALSE; + uwinp->output_sent = FALSE; + uwinp->ever_opened = FALSE; + uwinp->soft_kill = FALSE; + uwinp->saving_state = FALSE; + uwinp->client_state = NoState; + uwinp->wm_state = NeverState; + uwinp->group_state = GroupState; + uwinp->current_type = body; + + uwinp->group = UWIN_NULL; + uwinp->messages = 0; + + uwinp->hostname = NULL; + uwinp->res_class = NULL; + uwinp->res_name = NULL; + uwinp->wmname = NULL; + uwinp->iconname = NULL; + uwinp->command = NULL; + uwinp->identity = NULL; + uwinp->title = NULL; + + uwinp->positioned = FALSE; + uwinp->sized = FALSE; + + uwinp->focus = FALSE; + uwinp->listener = FALSE; + uwinp->zoomed = FALSE; + + uwinp->icon_positioned = FALSE; + + uwinp->winp = Tilwin_Create_Window( (pointer)uwinp ); + uwinp->iconp = Tilwin_Create_Window( (pointer)uwinp ); + + uwinp->open_stamp = 0; + uwinp->zoom_stamp = 0; + + Tilwin_Set_Window_Option( uwinp->iconp, FIXED_LEFT_EDGE, FALSE ); + Tilwin_Set_Window_Option( uwinp->iconp, FIXED_RIGHT_EDGE, FALSE ); + Tilwin_Set_Window_Option( uwinp->iconp, FIXED_TOP_EDGE, FALSE ); + Tilwin_Set_Window_Option( uwinp->iconp, FIXED_BOTTOM_EDGE, FALSE ); + + Tilwin_Set_Window_Option( uwinp->iconp, FIXED_SIZE, TRUE ); + Tilwin_Set_Window_Option( uwinp->iconp, FIXED_COMPLETELY, FALSE ); + + Tilwin_Set_Window_Option( uwinp->iconp, EXPENSIVE_TO_REDRAW, FALSE ); + + Tilwin_Set_Window_Option( uwinp->iconp, REQUIRE_MANUAL_CLOSE, TRUE ); + + Profile_Create( uwinp ); + + return uwinp; +} + +/* ------------------------------------------------------------ */ + +Userwin *Manage_Create_Window( ) +{ + Userwin *uwinp; + + uwinp = Manage_Init_Window(); + + uwinp->winnum = ++winnum; + + Drawwin_Create( uwinp ); + DrawIcon_Create( uwinp ); + + return uwinp; +} + +/* ------------------------------------------------------------ */ + +static void Manage_Untitle( uwinp ) + Userwin *uwinp; +{ + if ( (uwinp->hostname) != NULL ) + free( uwinp->hostname ); + if ( (uwinp->res_class) != NULL ) + free( uwinp->res_class ); + if ( (uwinp->res_name) != NULL ) + free( uwinp->res_name ); + if ( (uwinp->wmname) != NULL ) + free( uwinp->wmname ); + if ( (uwinp->iconname) != NULL ) + free( uwinp->iconname ); + if ( (uwinp->command) != NULL ) + free( uwinp->command ); + if ( (uwinp->identity) != NULL ) + free( uwinp->identity ); + if ( (uwinp->title) != NULL ) + free( uwinp->title ); +} + +/* ------------------------------------------------------------ */ + +static void Manage_Retitle( uwinp ) + Userwin *uwinp; +{ + int strsiz; + bool has_class, has_name; + + if ( (uwinp->title) != NULL ) + free( uwinp->title ); + + strsiz = 1; + + has_class = (uwinp->res_class != NULL) && + Userwin_Get_Window_Option( uwinp, INCLUDE_RES_CLASS_IN_TITLE ); + + has_name = (uwinp->res_name != NULL) && + Userwin_Get_Window_Option( uwinp, INCLUDE_RES_NAME_IN_TITLE ); + + if ( has_class || has_name ) + { + strsiz +=1; + + if ( has_class ) + strsiz += strlen(uwinp->res_class); + + if ( has_class && has_name ) + strsiz +=1; + + if ( has_name ) + strsiz += strlen(uwinp->res_name); + + strsiz +=2; + } + + if ( (uwinp->wmname != NULL) && + Userwin_Get_Window_Option( uwinp, INCLUDE_NAME_IN_TITLE ) ) + strsiz += strlen(uwinp->wmname); + + if ( (uwinp->hostname != NULL) && + Userwin_Get_Window_Option( uwinp, INCLUDE_HOST_IN_TITLE ) ) + strsiz += (3 + strlen(uwinp->hostname)); + + uwinp->title = allocate( char, strsiz ); + uwinp->title[0] = '\0'; + + if ( has_class || has_name ) + { + (void)strcat( uwinp->title, "[" ); + + if ( has_class ) + (void)strcat( uwinp->title, uwinp->res_class ); + + if ( has_class && has_name ) + (void)strcat( uwinp->title, ":" ); + + if ( has_name ) + (void)strcat( uwinp->title, uwinp->res_name ); + + (void)strcat( uwinp->title, "] " ); + } + + if ( (uwinp->wmname != NULL) && + Userwin_Get_Window_Option( uwinp, INCLUDE_NAME_IN_TITLE ) ) + { + (void)strcat( uwinp->title, uwinp->wmname ); + } + + if ( (uwinp->hostname != NULL) && + Userwin_Get_Window_Option( uwinp, INCLUDE_HOST_IN_TITLE ) ) + { + (void)strcat( uwinp->title, " (" ); + (void)strcat( uwinp->title, uwinp->hostname ); + (void)strcat( uwinp->title, ")" ); + } + + if ( Tilwin_Is_Open( uwinp->winp ) ) + Drawwin_Retitle( uwinp ); + else if ( uwinp->ever_opened ) + { + Closed_Retitle( uwinp ); + if ( Tilwin_Is_Open( uwinp->iconp ) ) + DrawIcon_Retitle(uwinp); + } +} + +/* ------------------------------------------------------------ */ + +void Manage_Set_Class( uwinp, res_class, res_name ) + Userwin *uwinp; + char *res_class; + char *res_name; +{ + if ( streql( uwinp->res_class, res_class ) && + streql( uwinp->res_name, res_name ) ) + return; + + if ( (uwinp->res_class) != NULL ) + free( uwinp->res_class ); + + if ( res_class == NULL ) + uwinp->res_class = NULL; + else + { + uwinp->res_class = + allocate( char, 1 + strlen(res_class) ); + (void)strcpy( uwinp->res_class, res_class ); + } + + if ( (uwinp->res_name) != NULL ) + free( uwinp->res_name ); + + if ( res_name == NULL ) + uwinp->res_name = NULL; + else + { + uwinp->res_name = + allocate( char, 1 + strlen(res_name) ); + (void)strcpy( uwinp->res_name, res_name ); + } + + Profile_Prepare( uwinp ); + uwinp->prepared = TRUE; + + Manage_Retitle( uwinp ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Set_Name( uwinp, str ) + Userwin *uwinp; + char *str; +{ + if ( (uwinp->wmname) != NULL ) + free( uwinp->wmname ); + + uwinp->wmname = allocate( char, 1 + strlen(str) ); + (void)strcpy( uwinp->wmname, str ); + + if ( uwinp->identity == NULL ) + { + uwinp->identity = allocate( char, 1 + strlen(str) ); + (void)strcpy( uwinp->identity, str ); + } + + Manage_Retitle( uwinp ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Set_Icon_Name( uwinp, str ) + Userwin *uwinp; + char *str; +{ + if ( (uwinp->iconname) != NULL ) + free( uwinp->iconname ); + + uwinp->iconname = allocate( char, 1 + strlen(str) ); + (void)strcpy( uwinp->iconname, str ); + Manage_Retitle( uwinp ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Set_Hostname( uwinp, str ) + Userwin *uwinp; + char *str; +{ + if ( (uwinp->hostname) != NULL ) + free( uwinp->hostname ); + + uwinp->hostname = allocate( char, 1 + strlen(str) ); + (void)strcpy( uwinp->hostname, str ); + Manage_Retitle( uwinp ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Set_Command( uwinp, str ) + Userwin *uwinp; + char *str; +{ + if ( uwinp->soft_kill ) + { + extern void Manage_Client_Destroy(); + Manage_Client_Destroy( uwinp ); + return; + } + uwinp->saving_state = FALSE; + + if ( (uwinp->command) != NULL ) + free( uwinp->command ); + + uwinp->command = allocate( char, 1 + strlen(str) ); + (void)strcpy( uwinp->command, str ); + Manage_Retitle( uwinp ); +} + +/* ------------------------------------------------------------ */ + +static void Manage_Prepare( uwinp ) + Userwin *uwinp; +{ + if ( (uwinp->res_class == NULL) && (uwinp->res_name == NULL) && + (uwinp->wmname != NULL) ) + Manage_Set_Class( uwinp, uwinp->wmname, NULL ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Layout( uwinp ) + Userwin *uwinp; +{ + if (! uwinp->prepared) + Manage_Prepare( uwinp ); + + Profile_Layout( uwinp ); + uwinp->layout = TRUE; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +Userwin *Manage_Locate(pos) + TWPoint pos; +{ + return Userwin_Get(Tilwin_Locate(pos)); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void Manage_Set_Focus( uwinp ) + Userwin *uwinp; +{ + focus = uwinp; + if (focus != UWIN_NULL) + { + focus->focus = TRUE; + if ( Tilwin_Is_Open( focus->winp ) ) + Drawwin_Display_Focus( focus ); + } +} + +/* ------------------------------------------------------------ */ + +void Manage_Unset_Focus() +{ + if (focus != UWIN_NULL) + { + focus->focus = FALSE; + if ( Tilwin_Is_Open( focus->winp ) ) + Drawwin_Display_Focus( focus ); + focus = UWIN_NULL; + } +} + +/* ------------------------------------------------------------ */ + +void Manage_Switch_Focus( uwinp ) + Userwin *uwinp; +{ + if ( uwinp != focus ) + { + Manage_Unset_Focus(); + Manage_Set_Focus( uwinp ); + } +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +#define Manage_Global_Client_Restrict(op) \ + global_restrict_excursion( ALLOW_AUTOMATIC_SHRINK, \ + UserGlobals_Get_Option(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT), \ + global_restrict_excursion( ALLOW_AUTOMATIC_CLOSE, \ + UserGlobals_Get_Option(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT), op ) ) + +/* ------------------------------------------------------------ */ + +#define Manage_Client_Restrict(uwinp,op) \ + window_join_excursion( uwinp->winp, REQUIRE_MANUAL_CLOSE, \ + (! UserGlobals_Get_Option(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)), \ + { window_join_excursion( uwinp->winp, FIXED_COMPLETELY, \ + ( uwinp->focus && \ + (! UserGlobals_Get_Option(ALLOW_LSNR_TO_CHANGE_BY_CLIENT))), \ + Manage_Global_Client_Restrict( op ) ) } ) \ + +/* ------------------------------------------------------------ */ + +#define Manage_Client(op) \ +{ \ + Userwin *cur_listener; \ + Userwin *cur_sublistener; \ + cur_listener = listener; \ + cur_sublistener = sublistener; \ + if ( sublistener != UWIN_NULL ) \ + { \ + if ( listener != UWIN_NULL ) \ + window_join_excursion( cur_listener->winp, REQUIRE_MANUAL_CLOSE, \ + (! UserGlobals_Get_Option(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)), \ + Manage_Client_Restrict( cur_sublistener, op ) ) \ + else \ + Manage_Client_Restrict( cur_sublistener, op ) \ + } \ + else \ + { \ + if ( listener != UWIN_NULL ) \ + Manage_Client_Restrict( cur_listener, op ) \ + else \ + Manage_Global_Client_Restrict( op ) \ + } \ +} + +/* ------------------------------------------------------------ */ + +void Manage_Set_Sublistener( uwinp ) + Userwin *uwinp; +{ + sublistener = uwinp; + + if ( Userwin_Get_Window_Option( sublistener, NOTE_LISTENER ) ) + Tilwin_Note_Use( sublistener->winp ); + + if (! UserGlobals_Get_Option(ALLOW_LISTENER_TO_CLOSE)) + { + sublistener->regular_manual_close = + Tilwin_Get_Window_Option( sublistener->winp, REQUIRE_MANUAL_CLOSE ); + Tilwin_Set_Window_Option( sublistener->winp, REQUIRE_MANUAL_CLOSE, TRUE ); + } +} + +/* ------------------------------------------------------------ */ + +void Manage_Unset_Sublistener() +{ + if ( sublistener != UWIN_NULL ) + { + if ( ( listener != UWIN_NULL ) && + Userwin_Get_Window_Option( listener, NOTE_LISTENER ) ) + Tilwin_Note_Use( listener->winp ); + + if (! UserGlobals_Get_Option(ALLOW_LISTENER_TO_CLOSE)) + Tilwin_Set_Window_Option( sublistener->winp, REQUIRE_MANUAL_CLOSE, + sublistener->regular_manual_close ); + + sublistener = UWIN_NULL; + } +} + + +/* ------------------------------------------------------------ */ + +void Manage_Switch_Sublistener( uwinp ) + Userwin *uwinp; +{ + if ( uwinp != sublistener ) + { + Manage_Unset_Sublistener(); + if ( uwinp != UWIN_NULL ) + Manage_Set_Sublistener( uwinp ); + } +} + +/* ------------------------------------------------------------ */ + +static void Manage_Set_Listener( uwinp ) + Userwin *uwinp; +{ + listener = uwinp; + + if ( listener != UWIN_NULL ) + { + Manage_Unset_Sublistener(); + + listener->listener = TRUE; + Tilwin_Act_Modified( listener->winp ); + + if ( Userwin_Get_Window_Option( listener, NOTE_LISTENER ) ) + Tilwin_Note_Use( listener->winp ); + + if (! UserGlobals_Get_Option(ALLOW_LISTENER_TO_CLOSE)) + { + listener->regular_manual_close = + Tilwin_Get_Window_Option( listener->winp, REQUIRE_MANUAL_CLOSE ); + Tilwin_Set_Window_Option( listener->winp, + REQUIRE_MANUAL_CLOSE, TRUE ); + } + } +} + +/* ------------------------------------------------------------ */ + +static void Manage_Unset_Listener() +{ + listener->listener = FALSE; + Tilwin_Act_Modified( listener->winp ); + + if (! UserGlobals_Get_Option(ALLOW_LISTENER_TO_CLOSE)) + Tilwin_Set_Window_Option( listener->winp, REQUIRE_MANUAL_CLOSE, + listener->regular_manual_close ); + + listener = UWIN_NULL; +} + +/* ------------------------------------------------------------ */ + +static void Manage_Unset( uwinp ) + Userwin *uwinp; +{ + extern void Manage_Do_Unzoom(); + + if ( uwinp == focus ) + Manage_Unset_Focus(); + + if ( uwinp == listener ) + { + if ( Userwin_Get_Window_Option(listener,LISTENER_TIED_TO_ZOOM) && + listener->zoomed ) + Manage_Do_Unzoom( listener, FALSE ); + Manage_Unset_Listener(); + } + else if ( uwinp == sublistener ) + Manage_Unset_Sublistener(); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +TWRectangle Manage_Neighborhood_Rectangle( nbhd, center, siz ) + float nbhd; + TWPoint center; + Size siz; +{ + TWRectangle rect; + int horiz, vert; + int dhoriz, dvert; + int factor; + + factor = UserGlobals_Get_Value( NEIGHBORHOOD_SHRINK_FACTOR ); + + dhoriz = 100 * Tilwin_Get_Desktop_Size().width; + dvert = 100 * Tilwin_Get_Desktop_Size().height; + + horiz = nbhd * siz.width * (dhoriz - (factor*siz.width)) / dhoriz; + horiz += (siz.width/2); + rect.left_x = center.x - horiz; + rect.right_x = center.x + horiz; + + vert = nbhd * siz.height * (dvert - (factor*siz.height)) / dvert; + vert += (siz.height/2); + rect.top_y = center.y - vert; + rect.bottom_y = center.y + vert; + + return rect; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static bool Manage_Neighborhood_Icon_Open( uwinp, center ) + Userwin *uwinp; + TWPoint center; +{ + TWRectangle rect; + Size siz; + bool result; + + extern void Manage_Start_Trying(); + extern bool Manage_Can_Try_Listener_Unzoom(); + extern void Manage_Finish_Trying(); + + siz = Tilwin_Get_Size( uwinp->iconp ); + + Manage_Start_Trying(); + global_restrict_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + { + result = Tilwin_Open( uwinp->iconp, center, siz ); + if ( (! result) && Manage_Can_Try_Listener_Unzoom() ) + result = Tilwin_Open( uwinp->iconp, center, siz ); + } ) + Manage_Finish_Trying( result ); + + if ( result ) return TRUE; + + rect = Manage_Neighborhood_Rectangle( 0.75, center, siz ); + return Tilwin_Open_Nearest_In_Area( uwinp->iconp, rect, center, siz ); +} + +/* ------------------------------------------------------------ */ + +bool Manage_Icon_Open( uwinp ) + Userwin *uwinp; +{ + TWRectangle desk,iconarea, rect, area, bigger_area; + TWPoint center; + Size siz; + bool first_none = FALSE; + bool second_none = FALSE; + bool icon_positioned; + bool result; + + if ( ( uwinp->client_state == InactiveState ) || + ( uwinp->client_state == IgnoreState ) || + ( Userwin_Group_Closed(uwinp) && + ( uwinp->group != uwinp ) ) || + ( ! Userwin_Get_Window_Option( uwinp, SHOW_ICON ) ) ) + return FALSE; + + if ( (uwinp->icon_positioned) && + Userwin_Get_Window_Option( uwinp, + REQUIRE_PREVIOUS_ICON_POSITION ) ) + { + if ( Manage_Neighborhood_Icon_Open( uwinp, + Tilwin_Get_Position( uwinp->iconp ) ) ) + return TRUE; + } + + icon_positioned = (uwinp->icon_positioned) && + ( Userwin_Get_Window_Option( uwinp, + PREFER_PREVIOUS_ICON_POSITION ) || + Userwin_Get_Window_Option( uwinp, + REQUIRE_PREVIOUS_ICON_POSITION ) ); + + siz = Tilwin_Get_Size( uwinp->iconp ); + + desk = Tilwin_Get_Desktop_Rectangle(); + + if ( UserGlobals_Get_Option( USE_ICON_AREA ) ) + { + iconarea.left_x = UserGlobals_Get_Value( ICON_AREA_LEFT ); + iconarea.right_x = UserGlobals_Get_Value( ICON_AREA_RIGHT ); + iconarea.top_y = UserGlobals_Get_Value( ICON_AREA_TOP ); + iconarea.bottom_y = UserGlobals_Get_Value( ICON_AREA_BOTTOM ); + } + else + iconarea = desk; + + bigger_area = area = rect = iconarea; + + switch ( (Icon_Position)UserGlobals_Get_Value( + SECONDARY_ICON_PLACEMENT) ) + { + case Icon_Top: + rect.bottom_y = iconarea.top_y + siz.height - 1; + break; + case Icon_Bottom: + rect.top_y = iconarea.bottom_y - siz.height + 1; + break; + case Icon_Left: + rect.right_x = iconarea.left_x + siz.width - 1; + break; + case Icon_Right: + rect.left_x = iconarea.right_x - siz.width + 1; + break; + case Icon_None: + second_none = TRUE; + case Icon_Middle: + default: + break; + } + + switch ( (Icon_Position)UserGlobals_Get_Value(ICON_PLACEMENT) ) + { + case Icon_None: + first_none = TRUE; + default: + break; + case Icon_Top: + rect.top_y = iconarea.top_y; + rect.bottom_y = iconarea.top_y + siz.height - 1; + area.bottom_y = iconarea.top_y + siz.height - 1; + bigger_area.bottom_y = iconarea.top_y + (2* siz.height) - 1; + break; + case Icon_Bottom: + rect.bottom_y = iconarea.bottom_y; + rect.top_y = iconarea.bottom_y - siz.height + 1; + area.top_y = iconarea.bottom_y - siz.height + 1; + bigger_area.top_y = iconarea.bottom_y - (2*siz.height) + 1; + break; + case Icon_Left: + rect.left_x = iconarea.left_x; + rect.right_x = iconarea.left_x + siz.width - 1; + area.right_x = iconarea.left_x + siz.width - 1; + bigger_area.right_x = iconarea.left_x + (2*siz.width) - 1; + break; + case Icon_Right: + rect.right_x = iconarea.right_x; + rect.left_x = iconarea.right_x - siz.width + 1; + area.left_x = iconarea.right_x - siz.width + 1; + bigger_area.left_x = iconarea.right_x - (2*siz.width) + 1; + break; + } + + COMPUTE_CENTER( rect, center ); + + if ( icon_positioned ) + { + center = Tilwin_Get_Position( uwinp->iconp ); + if ( first_none ) + result = Manage_Neighborhood_Icon_Open( uwinp, center ); + else + result = Tilwin_Open_Nearest_In_Area( uwinp->iconp, + area, center, siz ); + if (! result) + result = Tilwin_Open_Nearest_In_Area( uwinp->iconp, + iconarea, center, siz ); + if (! result) + result = Tilwin_Open_Nearest_In_Area( uwinp->iconp, + desk, center, siz ); + + } + else if ( first_none ) + { + result = Tilwin_Open_Best_In_Area( uwinp->iconp, + iconarea, siz ); + if (! result) + result = Tilwin_Open_Best_In_Area( uwinp->iconp, + desk, siz ); + } + + else if (second_none) + { + result = Tilwin_Open_Best_In_Area( uwinp->iconp, + area, siz ); + if (! result) + result = Tilwin_Open_Best_In_Area( uwinp->iconp, + bigger_area, siz ); + if (! result) + result = Tilwin_Open_Nearest_In_Area( uwinp->iconp, + iconarea, center, siz ); + if (! result) + result = Tilwin_Open_Nearest_In_Area( uwinp->iconp, + desk, center, siz ); + } + else + { + result = Tilwin_Open_Nearest_In_Area( uwinp->iconp, + area, center, siz ); + if (! result) + result = Tilwin_Open_Nearest_In_Area( uwinp->iconp, + bigger_area, center, siz ); + if (! result) + result = Tilwin_Open_Nearest_In_Area( uwinp->iconp, + iconarea, center, siz ); + if (! result) + result = Tilwin_Open_Nearest_In_Area( uwinp->iconp, + desk, center, siz ); + } + + if ( result && !uwinp->icon_positioned ) + { + uwinp->icon_positioned = TRUE; + Tilwin_Set_Position( uwinp->iconp, + Tilwin_Get_Center( uwinp->iconp ) ); + } + + return result; +} + +/* ------------------------------------------------------------ */ + +void Manage_Update_Icons() +{ + Tilwinp winp; + Userwin *uwinp; + bool keep_updating; + + if ( UserGlobals_Get_Option(USE_ICONS) ) + { + Tilwin_Gen_Just_Opened_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( ( uwinp->winp == winp ) && Tilwin_Is_Open( uwinp->iconp ) ) + Tilwin_Close( uwinp->iconp ); + } + + Tilwin_Gen_Just_Modified_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( ( uwinp->winp == winp ) && Tilwin_Is_Open( uwinp->iconp ) ) + Tilwin_Close( uwinp->iconp ); + } + + keep_updating = TRUE; + while ( keep_updating ) + { + keep_updating = FALSE; + Tilwin_Gen_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( ( uwinp->iconp == winp ) + && ( ! Tilwin_Is_Open( uwinp->winp ) ) + && uwinp->ever_opened ) + keep_updating |= Manage_Icon_Open( uwinp ); + } + } + } +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static bool drawing = FALSE; +static bool redrawing = FALSE; + +/* ------------------------------------------------------------ */ + +static void Manage_Update_Desktop() +{ + Tilwinp winp; + Userwin *uwinp; + + Drawwin_Start(); + + Tilwin_Gen_Just_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( uwinp->current_type == body ) + { + Manage_Unset( uwinp ); + Drawwin_Close( uwinp, + (! Tilwin_Is_Covered( + Tilwin_Get_Previous_Rectangle( winp ) ) ) ); + uwinp->output_sent = FALSE; + if ( ( uwinp->client_state != IgnoreState ) && + ( uwinp->client_state != NeverState ) ) + Closed_Add( uwinp ); + } + else + { + DrawIcon_Close( uwinp ); + } + + if (! ( Tilwin_Is_Open(uwinp->winp) || + Tilwin_Is_Open(uwinp->iconp) ) ) + { + if ( uwinp->client_state == IgnoreState ) + uwinp->wm_state = IgnoreState; + else + uwinp->wm_state = InactiveState; + + /* Window may be destroyed or rtl icon */ + + if ( uwinp->client_state != NeverState ) + Client_Set_State( uwinp ); + } + } + + Tilwin_Gen_Just_Modified_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( ( ! uwinp->positioned ) && + ( uwinp->current_type == body ) ) + Tilwin_Set_Position( winp, + Tilwin_Get_Center( winp ) ); + } + + if ( drawing ) + { + Tilwin_Gen_Just_Modified_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( uwinp->current_type == body ) + Drawwin_Draw( uwinp ); + else + DrawIcon_Draw( uwinp ); + } + } + else + { + Tilwin_Gen_Just_Modified_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + if ( Tilwin_Was_Actually_Modified(winp) || redrawing ) + { + uwinp = Userwin_Get(winp); + if ( uwinp->current_type != body ) + DrawIcon_Move_Close( uwinp ); + else if ( uwinp == switch_listener ) + Drawwin_Listener_Move_Close( uwinp, + (! Tilwin_Is_Covered( + Tilwin_Get_Previous_Rectangle( winp ) ) ) ); + else + Drawwin_Move_Close( uwinp, + (! Tilwin_Is_Covered( + Tilwin_Get_Previous_Rectangle( winp ) ) ) ); + } + + Tilwin_Gen_Just_Modified_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( Tilwin_Was_Actually_Modified(winp) || redrawing ) + { + if ( uwinp->current_type != body ) + { + DrawIcon_Move_Open( uwinp ); + if ( redrawing ) + DrawIcon_Redraw( uwinp ); + } + else if ( uwinp == switch_listener ) + Drawwin_Listener_Move_Open( uwinp ); + else + { + Drawwin_Move_Open( uwinp ); + if ( redrawing ) + Drawwin_Retitle( uwinp ); + } + } + } + + if ( listener != prev_listener ) + { + if ( ( listener != UWIN_NULL ) && + Tilwin_Was_Just_Modified( listener->winp ) && + (! Tilwin_Was_Actually_Modified( listener->winp )) && + ( listener->current_type == body ) ) + Drawwin_Display_Wrapping( listener ); + + if ( ( prev_listener != UWIN_NULL ) && + Tilwin_Was_Just_Modified( prev_listener->winp ) && + (! Tilwin_Was_Actually_Modified( prev_listener->winp )) && + ( prev_listener->current_type == body ) ) + Drawwin_Display_Wrapping( prev_listener ); + } + else + { + if ( ( touch != UWIN_NULL ) && + Tilwin_Was_Just_Modified( touch->winp ) && + (! Tilwin_Was_Actually_Modified( touch->winp )) && + ( touch->current_type == body ) ) + Drawwin_Display_Wrapping( touch ); + } + } + + Tilwin_Gen_Just_Opened_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( winp == uwinp->winp ) + { + uwinp->current_type = body; + uwinp->sized = TRUE; + if ( ! uwinp->positioned ) + Tilwin_Set_Position( winp, + Tilwin_Get_Center( winp ) ); + Drawwin_Open( uwinp ); + Closed_Remove( uwinp ); + uwinp->wm_state = NormalState; + } + else + { + if ( uwinp != rtl_uwinp ) + uwinp->current_type = icon; + DrawIcon_Open( uwinp ); + if ( Userwin_Get_Window_Option( uwinp, CLIENT_DRAWS_ICON ) ) + uwinp->wm_state = ClientIconState; + else + uwinp->wm_state = IconicState; + } + if ( uwinp->current_type != rtl ) + Client_Set_State( uwinp ); + } + + if (! drawing ) + { + Tilwin_Gen_Just_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( uwinp->winp == winp ) + Drawwin_Unmap( uwinp ); + } + } + + Drawwin_Finish(); + + switch_listener = UWIN_NULL; + prev_touch = touch; + touch = UWIN_NULL; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void Manage_Save_State( uwinp ) + Userwin *uwinp; +{ + uwinp->undo_stamp = Tilwin_Get_Timestamp(); + + uwinp->prev_positioned = uwinp->positioned; + uwinp->prev_sized = uwinp->sized; + uwinp->prev_zoomed = uwinp->zoomed; + + uwinp->prev_group_state = uwinp->group_state; + + uwinp->prev_desire = Tilwin_Get_Desired( uwinp->winp ); + uwinp->prev_min = Tilwin_Get_Min( uwinp->winp ); + uwinp->prev_max = Tilwin_Get_Max( uwinp->winp ); + + uwinp->prev_rezoom_rect = uwinp->rezoom_rect; +} + +/* ------------------------------------------------------------ */ + +static void Manage_Exchange_State( uwinp ) + Userwin *uwinp; +{ + Size temp_size; + + if ( last_stamp != uwinp->undo_stamp ) + return; + + SWAP_BOOL( uwinp->prev_positioned, uwinp->positioned ) + SWAP_BOOL( uwinp->prev_sized, uwinp->sized ) + SWAP_BOOL( uwinp->prev_zoomed, uwinp->zoomed ) + + SWAP_INT( uwinp->prev_group_state, uwinp->group_state ) + + SWAP_RECT( uwinp->prev_rezoom_rect, uwinp->rezoom_rect ) + + temp_size = Tilwin_Get_Desired( uwinp->winp ); + Tilwin_Set_Desired( uwinp->winp, uwinp->prev_desire ); + uwinp->prev_desire = temp_size; + + temp_size = Tilwin_Get_Min( uwinp->winp ); + Tilwin_Set_Min( uwinp->winp, uwinp->prev_min ); + uwinp->prev_min = temp_size; + + temp_size = Tilwin_Get_Max( uwinp->winp ); + Tilwin_Set_Max( uwinp->winp, uwinp->prev_max ); + uwinp->prev_max = temp_size; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static void Manage_Cant_Undo() +{ + prev_listener = listener; + Tilwin_Start_Transaction(); + Tilwin_Commit_Transaction(); + last_stamp = Tilwin_Get_Timestamp(); +} + +/* ------------------------------------------------------------ */ + +void Manage_Start() +{ + if ( Tilwin_Transaction_Depth() == 0 ) + prev_listener = listener; + Tilwin_Start_Transaction(); +} + +/* ------------------------------------------------------------ */ + +static void Manage_Restart() +{ + Tilwin_Abort_Transaction(); + Tilwin_Start_Transaction(); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +extern bool Manage_Repopulate_Since(); +extern bool Manage_Aggressive_Repopulation(); + +/* ------------------------------------------------------------ */ + +static bool Manage_Unzoom_Repopulation() +{ + TimeStamp repop_since; + Tilwinp winp; + Userwin *uwinp; + bool result = FALSE; + + repop_since = last_stamp; + + Tilwin_Gen_Just_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( ( uwinp->current_type == body ) && + ( ( uwinp->zoomed ) || + ( ( uwinp->undo_stamp == last_stamp ) && + ( uwinp->prev_zoomed ) ) ) ) + { + if (! UserGlobals_Get_Option( + ONLY_REPOP_SINCE_ON_AUTO_UNZOOM) ) + repop_since = (TimeStamp)0; + else if ( uwinp->zoom_stamp < repop_since ) + repop_since = uwinp->zoom_stamp; + } + } + + Tilwin_Gen_Just_Modified_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( ( uwinp->current_type == body ) && + (! uwinp->zoomed ) && + ( uwinp->undo_stamp == last_stamp ) && + ( uwinp->prev_zoomed ) ) + { + if (! UserGlobals_Get_Option( + ONLY_REPOP_SINCE_ON_AUTO_UNZOOM) ) + repop_since = (TimeStamp)0; + else if ( uwinp->zoom_stamp < repop_since ) + repop_since = uwinp->zoom_stamp; + } + } + + if ( repop_since < last_stamp ) + { + user_global_join_excursion( + REQUIRE_PREV_POS_ON_AUTO_REPOP, TRUE, + { + if ( Manage_Repopulate_Since( + repop_since, FALSE, FALSE, TRUE ) ) + result = TRUE; + } ) + if ( Manage_Repopulate_Since( + repop_since, FALSE, FALSE, TRUE ) ) + result = TRUE; + } + + return result; +} + +/* ------------------------------------------------------------ */ + +static bool Manage_Finish_Repopulation() +{ + bool result; + + result = FALSE; + + if ( UserGlobals_Get_Option(AUTO_REPOPULATE_LAST) ) + if ( Manage_Repopulate_Since( + last_stamp, FALSE, FALSE, TRUE ) ) + result = TRUE; + + if ( UserGlobals_Get_Option(ALLOW_AGGRESSIVE_REPOPULATION) ) + if ( Manage_Aggressive_Repopulation() ) + result = TRUE; + + if ( UserGlobals_Get_Option( + AUTO_REPOPULATE_ON_AUTO_UNZOOM) ) + global_excursion( ALLOW_AUTOMATIC_SHRINK, FALSE, + { + if ( Manage_Unzoom_Repopulation() ) + result = TRUE; + } ) + + + return result; +} + +/* ------------------------------------------------------------ */ + +extern void Manage_Auto_Prorate(); +extern void Manage_Ordered_Desire(); + +void Manage_Finish( result ) + bool result; +{ + extern void Manage_Ordered_Desire(); + bool allow_repop_shrink, can_repop, can_size; + + if ( Tilwin_Transaction_Depth() > 1 ) + Tilwin_Commit_Transaction(); + + else if (! result) + { + Tilwin_Abort_Transaction(); + Draw_Flash(); + } + + else + { + last_stamp = Tilwin_Get_Timestamp(); + + allow_repop_shrink = + Tilwin_Get_Global_Option(ALLOW_AUTOMATIC_SHRINK) && + Tilwin_Get_Global_Option(ALLOW_AUTO_SHRINK_MORE_RECENT) && + UserGlobals_Get_Option( + ALLOW_AUTO_SHRINK_ON_AUTO_REPOP); + + can_repop = Layout_Done() || + UserGlobals_Get_Option( ENABLE_AUTO_REPOP_DURING_LAYOUT ); + + can_size = Layout_Done() || + UserGlobals_Get_Option( ENABLE_AUTO_SIZING_DURING_LAYOUT ); + + Manage_Update_Icons(); + + if ( allow_repop_shrink && can_size && + UserGlobals_Get_Option(AUTO_DESIRED_ENLARGE) ) + Manage_Ordered_Desire(); + + if ( can_repop && Manage_Finish_Repopulation() ) + Manage_Update_Icons(); + + if ( can_size && + UserGlobals_Get_Option(AUTO_DESIRED_ENLARGE) ) + Manage_Ordered_Desire(); + + if ( can_size && + UserGlobals_Get_Option(AUTO_PRORATE) ) + while ( TRUE ) + { + Manage_Auto_Prorate(); + + if ( can_size && + UserGlobals_Get_Option( + TRY_REPOP_AGAIN_AFT_AUTO_PRORATE) && + Manage_Finish_Repopulation() ) + Manage_Update_Icons(); + else + break; + } + + Manage_Update_Desktop(); + Tilwin_Commit_Transaction(); + } + +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +bool Manage_Finish_Fixed_Completely( uwinp, result ) + Userwin *uwinp; + bool result; +{ + if ( result && ( uwinp != UWIN_NULL ) ) + window_excursion( uwinp->winp, FIXED_COMPLETELY, TRUE, + Manage_Finish( TRUE ) ) + else + Manage_Finish( result ); + return result; +} + +/* ------------------------------------------------------------ */ + +bool Manage_Finish_Fixed_Size( uwinp, result ) + Userwin *uwinp; + bool result; +{ + if ( result && ( uwinp != UWIN_NULL ) ) + window_excursion( uwinp->winp, FIXED_SIZE, TRUE, + Manage_Finish( TRUE ) ) + else + Manage_Finish( result ); + return result; +} + +/* ------------------------------------------------------------ */ + +bool Manage_Finish_Locked( uwinp, result ) + Userwin *uwinp; + bool result; +{ + if ( result && ( uwinp != UWIN_NULL ) ) + window_excursion( uwinp->winp, REQUIRE_MANUAL_CLOSE, TRUE, + Manage_Finish( TRUE ) ) + else + Manage_Finish( result ); + return result; +} + +/* ------------------------------------------------------------ */ + +bool Manage_Finish_Minned( uwinp, result ) + Userwin *uwinp; + bool result; +{ + if ( result && ( uwinp != UWIN_NULL ) ) + min_excursion( uwinp->winp, + window_excursion( uwinp->winp, REQUIRE_MANUAL_CLOSE, TRUE, + Manage_Finish( TRUE ) ) ) + else + Manage_Finish( result ); + return result; +} + +/* ------------------------------------------------------------ */ + +#define Manage_Client_Finish_Minned(uwinp,op) \ + Manage_Client( \ + { \ + op; \ + Manage_Finish_Minned( uwinp, TRUE ); \ + } ) + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static void Manage_Undo_Start() +{ + Tilwinp winp; + Userwin *uwinp; + + Tilwin_Undo(); + + Tilwin_Gen_Just_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( uwinp->winp == winp ) + Manage_Exchange_State( uwinp ); + } + + Tilwin_Gen_Just_Modified_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( uwinp->winp == winp ) + Manage_Exchange_State( uwinp ); + } + + Tilwin_Gen_Just_Opened_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( uwinp->winp == winp ) + Manage_Exchange_State( uwinp ); + } + + Tilwin_Continue_Transaction(); + + if ( listener != prev_listener ) + { + if ( listener != UWIN_NULL ) + { + listener->listener = FALSE; + Tilwin_Act_Modified( listener->winp ); + } + + SWAP_UWINP( listener, prev_listener ) + + touch = prev_touch; + + if ( listener != UWIN_NULL ) + { + listener->listener = TRUE; + Tilwin_Act_Modified( listener->winp ); + } + } + +} + +/* ------------------------------------------------------------ */ + +void Manage_Undo() +{ + Tilwinp winp; + Userwin *uwinp; + + Manage_Undo_Start(); + + if ( UserGlobals_Get_Option(USE_ICONS) ) + { + Tilwin_Gen_Just_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if (! ( Tilwin_Is_Open( uwinp->winp ) || + Tilwin_Is_Open( uwinp->iconp ) ) ) + Manage_Icon_Open( uwinp ); + } + } + + user_global_excursion( AUTO_PRORATE, FALSE, + user_global_excursion( AUTO_REPOPULATE_LAST, FALSE, + user_global_excursion( ALLOW_AGGRESSIVE_REPOPULATION, FALSE, + Manage_Finish( TRUE ) + ) ) ) +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void Manage_Redraw( uwinp ) + Userwin *uwinp; +{ + if ( uwinp->current_type == body ) + Drawwin_Redraw(uwinp); + else + DrawIcon_Redraw(uwinp); +} + +/* ------------------------------------------------------------ */ + +void Manage_Redraw_All() +{ + Tilwinp winp; + + if ( Drawwin_Redraw_All( Tilwin_Get_Desktop_Rectangle() ) ) + return; + + Tilwin_Gen_Open_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + Manage_Redraw( Userwin_Get(winp) ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Finish_Layout() +{ + Manage_Start(); + Layout_Finish(); + Manage_Finish( TRUE ); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void Manage_Initial_Icon_Open( uwinp ) + Userwin *uwinp; +{ + Manage_Start(); + Tilwin_Note_Use( uwinp->winp ); + if ( uwinp->client_state != IgnoreState ) + { + Closed_Add( uwinp ); + if ( UserGlobals_Get_Option(USE_ICONS) ) + { + if (! uwinp->layout_found ) + Manage_Icon_Open( uwinp ); + else + global_excursion( ENABLE_GRAVITY, FALSE, + user_window_excursion( uwinp, + REQUIRE_PREVIOUS_ICON_POSITION, TRUE, + Manage_Icon_Open( uwinp ) ) ) + } + } + Manage_Finish( TRUE ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Prepare_Open( uwinp ) + Userwin *uwinp; +{ + if (! uwinp->layout) + Manage_Layout( uwinp ); + + Tilwin_Set_Position( uwinp->winp, + Tilwin_Get_Center( uwinp->winp ) ); + + Tilwin_Set_Position( uwinp->iconp, + Tilwin_Get_Center( uwinp->iconp ) ); + + Drawwin_Insert( uwinp ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Note_Output( uwinp ) + Userwin *uwinp; +{ + if (! uwinp->layout) + Manage_Layout( uwinp ); + + if ( Tilwin_Is_Open( uwinp->winp ) ) + { + if ( Userwin_Get_Window_Option( uwinp, NOTE_OPEN_OUTPUT ) ) + Tilwin_Note_Use( uwinp->winp ); + } + else if ( Userwin_Get_Window_Option( uwinp, NOTE_CLOSED_OUTPUT ) ) + Tilwin_Note_Use( uwinp->winp ); + + if (! uwinp->output_sent) + { + uwinp->output_sent = TRUE; + if ( Tilwin_Is_Open(uwinp->iconp) ) + DrawIcon_Note_Output( uwinp ); + } +} + +/* ------------------------------------------------------------ */ + +void Manage_Note_Input( uwinp ) + Userwin *uwinp; +{ + if ( Tilwin_Is_Open( uwinp->winp ) ) + { + if ( Userwin_Get_Window_Option( uwinp, NOTE_OPEN_INPUT ) ) + Tilwin_Note_Use( uwinp->winp ); + else if ( ( uwinp == listener ) && + Userwin_Get_Window_Option( uwinp, NOTE_LISTENER_INPUT ) ) + Tilwin_Note_Use( uwinp->winp ); + } + else if ( Userwin_Get_Window_Option( uwinp, NOTE_CLOSED_INPUT ) ) + Tilwin_Note_Use( uwinp->winp ); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void Manage_Init_Rtl() +{ + Userwin *uwinp; + + Manage_Start(); + uwinp = Manage_Init_Window(); + rtl_uwinp = uwinp; + + uwinp->winnum = 0; + uwinp->connection = -1; + + uwinp->client_state = NeverState; + uwinp->current_type = rtl; + uwinp->layout = TRUE; + uwinp->layout_found = TRUE; + + Userwin_Set_Window_Option( uwinp, SHOW_ICON, + UserGlobals_Get_Option(USE_RTL_ICON) ); + + Tilwin_Set_Window_Option( uwinp->iconp, FIXED_SIZE, TRUE ); + + Userwin_Set_Window_Option( uwinp, SAVE_IN_LAYOUT, FALSE ); + Userwin_Set_Window_Option( uwinp, CONSIDER_FOR_REPOPULATION, FALSE ); + + DrawIcon_Init_Rtl( uwinp ); + + if ( UserGlobals_Get_Option(USE_ICONS) ) + Manage_Icon_Open( uwinp ); + + Manage_Finish( TRUE ); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void Manage_Start_Repaint() +{ + Tilwin_Start_Transaction(); +} + +/* ------------------------------------------------------------ */ + +void Manage_Repaint_Rect( rect ) + TWRectangle rect; +{ + Tilwin_Modify_Covered_Windows( rect ); + Drawwin_Draw_Background( rect ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Finish_Repaint() +{ + Tilwinp winp; + Tilwin_Commit_Transaction(); + + Tilwin_Gen_Just_Modified_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + Manage_Redraw( Userwin_Get(winp) ); + } + + Manage_Cant_Undo(); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void Manage_Set_Desktop_Size( desksiz ) + Size desksiz; +{ + Tilwin_Set_Desktop_Size( desksiz ); + Drawwin_Draw_Background( Tilwin_Get_Desktop_Rectangle() ); +} + +/* ------------------------------------------------------------ */ + +static void Manage_Reorganize_Desktop( desksiz ) + Size desksiz; +{ + Tilwinp winp, head, middle, tail; + Userwin *uwinp; + TWPoint center; + TWPoint pos; + TWRectangle rect; + Size siz; + Size old_desksiz; + TWRectangle old_deskrect, deskrect; + + head = middle = tail = WIN_NULL; + + Tilwin_Gen_Open_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( uwinp->current_type != body ) + { + if ( UserGlobals_Get_Option(USE_ICONS) && + ( uwinp != rtl_uwinp ) ) + { + if ( tail == WIN_NULL ) tail = winp; + if ( middle == WIN_NULL ) middle = winp; + Tilwin_Put_Data( winp, head ); + head = winp; + } + } + else if ( Tilwin_Get_Window_Option( winp, REQUIRE_MANUAL_CLOSE ) ) + { + if ( middle == WIN_NULL ) + { + if ( tail == WIN_NULL ) tail = winp; + Tilwin_Put_Data( winp, head ); + head = winp; + middle = winp; + } + else if ( middle == tail ) + { + Tilwin_Put_Data( tail, winp ); + Tilwin_Put_Data( winp, WIN_NULL ); + tail = winp; + middle = winp; + } + else + { + Tilwin_Put_Data( winp, Tilwin_Get_Data( middle ) ); + Tilwin_Put_Data( middle, winp ); + middle = winp; + } + } + else + { + if ( head == WIN_NULL ) + head = winp; + else + Tilwin_Put_Data( tail, winp ); + Tilwin_Put_Data( winp, WIN_NULL ); + tail = winp; + } + + Tilwin_Auto_Close( winp ); + } + + old_desksiz = Tilwin_Get_Desktop_Size(); + old_deskrect = Tilwin_Get_Desktop_Rectangle(); + Tilwin_Set_Desktop_Size( desksiz ); + desksiz = Tilwin_Get_Desktop_Size(); + deskrect = Tilwin_Get_Desktop_Rectangle(); + + Tilwin_Gen_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + + if ( uwinp->winp == winp ) + Manage_Retitle( uwinp ); + + center = Tilwin_Get_Center( winp ); + pos = Tilwin_Get_Position( winp ); + rect = Tilwin_Get_Rectangle( winp ); + + siz = Tilwin_Get_Size( winp ); + + if ( desksiz.width < old_desksiz.width ) + { + siz.width = ( siz.width * desksiz.width ) / + old_desksiz.width; + center.x = ( center.x * desksiz.width ) / + old_desksiz.width; + pos.x = ( pos.x * desksiz.width ) / + old_desksiz.width; + } + else if ( rect.right_x == old_deskrect.right_x ) + { + center.x += ( desksiz.width - old_desksiz.width ); + pos.x += ( desksiz.width - old_desksiz.width ); + } + else if ( rect.left_x != 0 ) + { + center.x = ( center.x * desksiz.width ) / + old_desksiz.width; + pos.x = ( pos.x * desksiz.width ) / + old_desksiz.width; + } + + if ( desksiz.height < old_desksiz.height ) + { + siz.height = ( siz.height * desksiz.height ) / + old_desksiz.height; + center.y = ( center.y * desksiz.height ) / + old_desksiz.height; + pos.y = ( pos.y * desksiz.height ) / + old_desksiz.height; + } + else if ( rect.bottom_y == old_deskrect.bottom_y ) + { + center.y += ( desksiz.height - old_desksiz.height ); + pos.y += ( desksiz.height - old_desksiz.height ); + } + else if ( rect.top_y != 0 ) + { + center.y = ( center.y * desksiz.height ) / + old_desksiz.height; + pos.y = ( pos.y * desksiz.height ) / + old_desksiz.height; + } + + Set_Min_Size( siz, siz, Tilwin_Get_Max( winp ) ) + Set_Max_Size( siz, siz, Tilwin_Get_Min( winp ) ) + + Tilwin_Set( winp, center, siz ); + Tilwin_Set_Position( winp, pos ); + } + + if ( UserGlobals_Get_Option(USE_ICONS) ) + Manage_Icon_Open( rtl_uwinp ); + + for ( winp = head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + uwinp = Userwin_Get(winp); + if ( uwinp->current_type == body ) + Tilwin_Open_Nearest_In_Area( winp, deskrect, + Tilwin_Get_Center( winp ), Tilwin_Get_Size( winp ) ); + else if ( UserGlobals_Get_Option(USE_ICONS) ) + Manage_Icon_Open( uwinp ); + } + + if ( UserGlobals_Get_Option(AUTO_REPOP_ON_DESKTOP_RESIZE) ) + Manage_Repopulate_Since( (TimeStamp)0, TRUE, FALSE, TRUE ); + +} + +/* ------------------------------------------------------------ */ + +void Manage_Resize_Desktop( desksiz ) + Size desksiz; +{ + drawing = TRUE; + Manage_Start(); + Manage_Reorganize_Desktop( desksiz ); + Drawwin_Draw_Background( Tilwin_Get_Desktop_Rectangle() ); + Manage_Finish( TRUE ); + drawing = FALSE; + Manage_Cant_Undo(); +} + +/* ------------------------------------------------------------ */ + +void Manage_Profile( filnam ) + char *filnam; +{ + int primary, secondary; + Userwin *uwinp; + Tilwinp winp; + + Manage_Start(); + + secondary = UserGlobals_Get_Value( SECONDARY_ICON_PLACEMENT); + primary = UserGlobals_Get_Value( ICON_PLACEMENT); + + if (! UserGlobals_Get_Option(ALLOW_LISTENER_TO_CLOSE)) + { + if ( listener != UWIN_NULL ) + Tilwin_Set_Window_Option( listener->winp, REQUIRE_MANUAL_CLOSE, + listener->regular_manual_close ); + if ( sublistener != UWIN_NULL ) + Tilwin_Set_Window_Option( sublistener->winp, REQUIRE_MANUAL_CLOSE, + sublistener->regular_manual_close ); + } + + Profile_Update( filnam ); + + Userwin_Set_Window_Option( rtl_uwinp, SHOW_ICON, + UserGlobals_Get_Option(USE_RTL_ICON) ); + + Manage_Reorganize_Desktop( Tilwin_Get_Desktop_Size() ); + + Tilwin_Gen_Open_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( uwinp->iconp == winp ) + { + if ( ( secondary != + UserGlobals_Get_Value(SECONDARY_ICON_PLACEMENT) ) || + ( primary != + UserGlobals_Get_Value(ICON_PLACEMENT) ) ) + Tilwin_Set_Position( winp, Tilwin_Get_Center( winp ) ); + } + } + + if (! UserGlobals_Get_Option(ALLOW_LISTENER_TO_CLOSE)) + { + if ( listener != UWIN_NULL ) + Tilwin_Set_Window_Option( listener->winp, + REQUIRE_MANUAL_CLOSE, TRUE ); + if ( sublistener != UWIN_NULL ) + Tilwin_Set_Window_Option( sublistener->winp, + REQUIRE_MANUAL_CLOSE, TRUE ); + } + + redrawing = TRUE; + Manage_Finish( TRUE ); + redrawing = FALSE; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +#define Manage_Set_Rezoom_Horizontal(uwinp,op) \ +{ \ + if ( Tilwin_Get_Rectangle(uwinp->winp).left_x == 0 ) \ + window_excursion( uwinp->winp, FIXED_LEFT_EDGE, TRUE, op ) \ + else if ( Tilwin_Get_Rectangle(uwinp->winp).right_x == \ + ( Tilwin_Get_Desktop_Size().width - 1 ) ) \ + window_excursion( uwinp->winp, FIXED_RIGHT_EDGE, TRUE, op ) \ + else if ( Tilwin_Get_Rectangle(uwinp->winp).left_x == \ + uwinp->rezoom_rect.left_x ) \ + window_excursion( uwinp->winp, FIXED_LEFT_EDGE, TRUE, op ) \ + else if ( Tilwin_Get_Rectangle(uwinp->winp).right_x == \ + uwinp->rezoom_rect.right_x ) \ + window_excursion( uwinp->winp, FIXED_RIGHT_EDGE, TRUE, op ) \ + else op; \ +} + +/* ------------------------------------------------------------ */ + +#define Manage_Set_Rezoom_Vertical(uwinp,op) \ +{ \ + if ( Tilwin_Get_Rectangle(uwinp->winp).top_y == 0 ) \ + window_excursion( uwinp->winp, FIXED_TOP_EDGE, TRUE, op ) \ + else if ( Tilwin_Get_Rectangle(uwinp->winp).bottom_y == \ + ( Tilwin_Get_Desktop_Size().height - 1 ) ) \ + window_excursion( uwinp->winp, FIXED_BOTTOM_EDGE, TRUE, op ) \ + else if ( Tilwin_Get_Rectangle(uwinp->winp).top_y == \ + uwinp->rezoom_rect.top_y ) \ + window_excursion( uwinp->winp, FIXED_TOP_EDGE, TRUE, op ) \ + else if ( Tilwin_Get_Rectangle(uwinp->winp).bottom_y == \ + uwinp->rezoom_rect.bottom_y ) \ + window_excursion( uwinp->winp, FIXED_BOTTOM_EDGE, TRUE, op ) \ + else op; \ +} + +/* ------------------------------------------------------------ */ + +static bool Manage_Rezoom( uwinp, siz ) + Userwin *uwinp; + Size siz; +{ + bool result; + + Manage_Set_Rezoom_Vertical( uwinp, + Manage_Set_Rezoom_Horizontal( uwinp, + result = Tilwin_Set_Size( uwinp->winp, siz ) ) ); + return result; +} + +/* ------------------------------------------------------------ */ + +static bool Manage_Rezoom_In_Area( uwinp, rect, pt, siz ) + Userwin *uwinp; + TWRectangle rect; + TWPoint pt; + Size siz; +{ + bool result; + + Manage_Set_Rezoom_Vertical( uwinp, + Manage_Set_Rezoom_Horizontal( uwinp, + result = Tilwin_Open_Nearest_In_Area( + uwinp->winp, rect, pt, siz ) ) ); + return result; +} + +/* ------------------------------------------------------------ */ + +static bool Manage_Neighborhood_Rezoom( uwinp, siz ) + Userwin *uwinp; + Size siz; +{ + TWRectangle rect; + TWPoint pt; + bool result; + + pt = Tilwin_Get_Center( uwinp->winp ); + rect = Manage_Neighborhood_Rectangle( 0.5, pt, siz ); + + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + { window_excursion( uwinp->winp, FIXED_SIZE, TRUE, + { + result = Manage_Rezoom( uwinp, siz ); + if (! result) + result = Manage_Rezoom_In_Area( uwinp, rect, pt, siz ); + } ) } ); + + if (! result) + result = Tilwin_Open_Nearest_In_Area( uwinp->winp, rect, pt, siz ); + + return result; +} + +/* ------------------------------------------------------------ */ + +static bool Manage_Neighborhood_Unzoom_Open( uwinp, siz ) + Userwin *uwinp; + Size siz; +{ + TWRectangle rect; + TWPoint pt; + bool result; + + pt = Tilwin_Get_Center( uwinp->winp ); + rect = Tilwin_Get_Rectangle( uwinp->winp ); + + result = Manage_Rezoom_In_Area( uwinp, rect, pt, siz ); + + if (! result) + result = Tilwin_Open_Nearest_In_Area( + uwinp->winp, rect, pt, siz ); + + if ( (! result) && + (! Userwin_Get_Window_Option( + uwinp, REQUIRE_PREV_POS ) ) ) + result = Tilwin_Open_Nearest_In_Area( + uwinp->winp, + Tilwin_Get_Desktop_Rectangle(), + pt, siz ); + + return result; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static void Manage_Setup_Zoom( uwinp, full ) + Userwin *uwinp; + bool full; +{ + Size siz; + + Manage_Save_State( uwinp ); + + uwinp->zoomed = TRUE; + + uwinp->regular_min = Tilwin_Get_Min(uwinp->winp); + uwinp->regular_size = Tilwin_Get_Desired(uwinp->winp); + + if ( full ) + { + if ( Userwin_Get_Window_Option( uwinp, ZOOM_FULL_HEIGHT ) ) + uwinp->zoom_size.height = Tilwin_Get_Desktop_Size().height; + if ( Userwin_Get_Window_Option( uwinp, ZOOM_FULL_WIDTH ) ) + uwinp->zoom_size.width = Tilwin_Get_Desktop_Size().width; + } + + if ( UserGlobals_Get_Option( RESET_ZOOM_MIN ) ) + { + if ( UserGlobals_Get_Option( RESET_ZOOM_MIN_USES_DESIRE ) ) + Set_Min_Size( siz, uwinp->regular_size, + Tilwin_Get_Size( uwinp->winp ) ) + else + siz = Tilwin_Get_Size( uwinp->winp ); + + if ( UserGlobals_Get_Option( RESET_ZOOM_MIN_ALLOWS_DECREASE ) ) + uwinp->zoom_min = siz; + else + Set_Max_Size( uwinp->zoom_min, uwinp->zoom_min, siz ) + } + + if ( Userwin_Get_Window_Option( uwinp, ZOOM_TIED_TO_DESIRE ) ) + { + uwinp->zoom_min = uwinp->zoom_size = uwinp->regular_size; + } + + if ( Userwin_Get_Window_Option( uwinp, ENFORCE_CLIENT_MINIMUMS ) ) + { + Set_Max_Size( uwinp->zoom_min, uwinp->zoom_min, + uwinp->client_min ) + Set_Max_Size( uwinp->zoom_size, uwinp->zoom_size, + uwinp->client_min ) + } + + Set_Max_Size( uwinp->zoom_min, uwinp->zoom_min, + uwinp->regular_min ) + Set_Max_Size( uwinp->zoom_size, uwinp->zoom_size, + uwinp->regular_size ) + + if ( Userwin_Get_Window_Option( uwinp, ENFORCE_CLIENT_MAXIMUMS ) ) + { + Set_Min_Size( uwinp->zoom_min, uwinp->zoom_min, + uwinp->client_max ) + Set_Min_Size( uwinp->zoom_size, uwinp->zoom_size, + uwinp->client_max ) + } + + Tilwin_Set_Min( uwinp->winp, uwinp->zoom_min ); + Tilwin_Set_Desired( uwinp->winp, uwinp->zoom_size ); + +} + +/* ------------------------------------------------------------ */ + +static void Manage_Setup_Unzoom( uwinp ) + Userwin *uwinp; +{ + Manage_Save_State( uwinp ); + + uwinp->zoomed = FALSE; + + uwinp->zoom_min = Tilwin_Get_Min(uwinp->winp); + uwinp->zoom_size = Tilwin_Get_Desired(uwinp->winp); + + if ( Userwin_Get_Window_Option( uwinp, ENFORCE_CLIENT_MAXIMUMS ) ) + { + Set_Min_Size( uwinp->regular_min, uwinp->regular_min, + uwinp->client_max ) + Set_Min_Size( uwinp->regular_size, uwinp->regular_size, + uwinp->client_max ) + } + + Set_Min_Size( uwinp->regular_min, uwinp->regular_min, + uwinp->zoom_min ) + Set_Min_Size( uwinp->regular_size, uwinp->regular_size, + uwinp->zoom_size ) + + if ( Userwin_Get_Window_Option( uwinp, ENFORCE_CLIENT_MINIMUMS ) ) + { + Set_Max_Size( uwinp->regular_min, uwinp->regular_min, + uwinp->client_min ) + Set_Max_Size( uwinp->regular_size, uwinp->regular_size, + uwinp->client_min ) + } + + Tilwin_Set_Min( uwinp->winp, uwinp->regular_min ); + Tilwin_Set_Desired( uwinp->winp, uwinp->regular_size ); +} + +/* ------------------------------------------------------------ */ + +static Size Manage_Get_Zoom_Size( uwinp ) + Userwin *uwinp; +{ + Size cursiz, siz; + + cursiz = Tilwin_Get_Size(uwinp->winp); + + Set_Max_Size( siz, uwinp->zoom_size, uwinp->zoom_min ) + + if ( Tilwin_Is_Open( uwinp->winp ) && + ( siz.width < cursiz.width ) && + ( siz.height < cursiz.height ) ) + siz = cursiz; + + return Tilwin_Checked_Size( uwinp->winp, siz ); +} + +/* ------------------------------------------------------------ */ + +static Size Manage_Get_Unzoom_Open_Size( uwinp ) + Userwin *uwinp; +{ + Size siz; + + Set_Max_Size( siz, uwinp->zoom_size, uwinp->regular_min ) + + return Tilwin_Checked_Size( uwinp->winp, siz ); +} + +/* ------------------------------------------------------------ */ + +static Size Manage_Get_Closed_Unzoom_Size( uwinp ) + Userwin *uwinp; +{ + Size siz; + + Set_Max_Size( siz, uwinp->regular_size, uwinp->regular_min ) + Set_Min_Size( siz, siz, Tilwin_Get_Size(uwinp->winp) ) + + return Tilwin_Checked_Size( uwinp->winp, siz ); +} + +/* ------------------------------------------------------------ */ + +static Size Manage_Get_Open_Unzoom_Size( uwinp ) + Userwin *uwinp; +{ + Size siz; + + COMPUTE_SIZE( uwinp->rezoom_rect, siz ); + Set_Min_Size( siz, siz, uwinp->regular_size ) + Set_Min_Size( siz, siz, Tilwin_Get_Size(uwinp->winp) ) + Set_Max_Size( siz, siz, uwinp->regular_min ) + + return Tilwin_Checked_Size( uwinp->winp, siz ); +} + +/* ------------------------------------------------------------ */ + +static bool Manage_Followup_Zoom( uwinp ) + Userwin *uwinp; +{ + Size siz; + bool result; + + siz = Manage_Get_Zoom_Size( uwinp ); + + if ( ( siz.width < uwinp->zoom_min.width ) || + ( siz.height < uwinp->zoom_min.height ) ) + result = FALSE; + else + global_restrict_excursion( ALLOW_AUTOMATIC_CLOSE, + Userwin_Get_Window_Option( uwinp, ALLOW_ZOOM_CLOSE ), + { + result = Manage_Neighborhood_Rezoom( uwinp, siz ); + } ) + + if ( result ) + { + Set_Max_Size( siz, siz, + Tilwin_Get_Previous_Size( uwinp->winp ) ); + + global_restrict_excursion( ALLOW_AUTOMATIC_SHRINK, FALSE, + global_restrict_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + Tilwin_Enlarge_Nearest( uwinp->winp, + Tilwin_Get_Previous_Center( uwinp->winp ), + siz ) ) ) + + Tilwin_Act_Modified( uwinp->winp ); + uwinp->zoom_stamp = Tilwin_Get_Timestamp(); + uwinp->rezoom_rect = Tilwin_Get_Previous_Rectangle( uwinp->winp ); + } + else + Manage_Setup_Unzoom( uwinp ); + + return result; +} + +/* ------------------------------------------------------------ */ + +static void Manage_Followup_Unzoom( uwinp, explicit ) + Userwin *uwinp; + bool explicit; +{ + bool force_repop; + bool force_shrink; + bool allow_shrink; + TimeStamp repop_since; + TWPoint pt; + Size siz; + + if (! Tilwin_Is_Open( uwinp->winp ) ) + Manage_Rezoom( uwinp, Manage_Get_Closed_Unzoom_Size( uwinp ) ); + else + { + Tilwin_Act_Modified( uwinp->winp ); + + if ( explicit ) + { + allow_shrink = + Userwin_Get_Window_Option(uwinp,ALLOW_SHRINK_ON_UNZOOM); + force_shrink = + Userwin_Get_Window_Option(uwinp,FORCE_SHRINK_ON_UNZOOM); + force_repop = UserGlobals_Get_Option( + AUTO_REPOP_ON_EXPLICIT_UNZOOM); + if ( UserGlobals_Get_Option( + ONLY_REPOP_SINCE_ON_EXPL_UNZOOM) ) + repop_since = uwinp->zoom_stamp; + else + repop_since = (TimeStamp)0; + } + else + { + allow_shrink = + Userwin_Get_Window_Option(uwinp,ALLOW_SHRINK_ON_UNZOOM) && + Userwin_Get_Window_Option(uwinp,ALLOW_SHRINK_ON_AUTO_UNZOOM); + force_shrink = + Userwin_Get_Window_Option(uwinp,FORCE_SHRINK_ON_UNZOOM) && + Userwin_Get_Window_Option(uwinp,FORCE_SHRINK_ON_AUTO_UNZOOM); + force_repop = UserGlobals_Get_Option( + AUTO_REPOPULATE_ON_AUTO_UNZOOM); + if ( UserGlobals_Get_Option( + ONLY_REPOP_SINCE_ON_AUTO_UNZOOM) ) + repop_since = uwinp->zoom_stamp; + else + repop_since = (TimeStamp)0; + } + + if ( allow_shrink || force_shrink ) + { + COMPUTE_CENTER( uwinp->rezoom_rect, pt ); + siz = Manage_Get_Open_Unzoom_Size( uwinp ); + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + { + if ( Tilwin_Set( uwinp->winp, pt, siz ) ) + Tilwin_Set_Position( uwinp->winp, pt ); + else + Manage_Rezoom( uwinp, siz ); + } ) + } + + if ( force_repop ) + { + user_global_excursion( + REQUIRE_PREV_POS_ON_AUTO_REPOP, TRUE, + Manage_Repopulate_Since( repop_since, FALSE, FALSE, TRUE ) ); + } + + if ( UserGlobals_Get_Option(AUTO_DESIRED_ENLARGE) ) + window_excursion( uwinp->winp, FIXED_SIZE, TRUE, + Manage_Ordered_Desire() ); + + if ( allow_shrink && (! force_shrink) ) + global_excursion( ALLOW_AUTOMATIC_SHRINK, FALSE, + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + { + if ( UserGlobals_Get_Option(AUTO_DESIRED_ENLARGE) ) + Tilwin_Enlarge_Nearest( uwinp->winp, + Tilwin_Get_Previous_Center( uwinp->winp ), + Tilwin_Get_Previous_Size( uwinp->winp ) ); + else + Tilwin_Open_Nearest_In_Area( uwinp->winp, + Tilwin_Get_Previous_Rectangle( uwinp->winp ), + Tilwin_Get_Previous_Center( uwinp->winp ), + Tilwin_Get_Previous_Size( uwinp->winp ) ); + } ) ) + + if ( force_repop ) + { + Manage_Repopulate_Since( repop_since, + FALSE, FALSE, TRUE ); + } + } + + uwinp->rezoom_rect = Tilwin_Get_Previous_Rectangle( uwinp->winp ); +} + +/* ------------------------------------------------------------ */ + +static bool Manage_Followup_Unzoom_Open( uwinp ) + Userwin *uwinp; +{ + bool result; + + result = Manage_Neighborhood_Unzoom_Open( uwinp, + Manage_Get_Unzoom_Open_Size( uwinp ) ); + if ( result ) + uwinp->rezoom_rect = Tilwin_Get_Previous_Rectangle( uwinp->winp ); + else + Manage_Setup_Zoom( uwinp, FALSE ); + + return result; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static bool Manage_Do_Zoom( uwinp, explicit ) + Userwin *uwinp; + bool explicit; +{ + bool full; + + full = + ( + ( Userwin_Get_Window_Option(uwinp,ZOOM_FULL_EXPLICIT) && + explicit ) + && + ( + Userwin_Get_Window_Option(uwinp,ZOOM_FULL_WIDTH) + || + Userwin_Get_Window_Option(uwinp,ZOOM_FULL_HEIGHT) + ) + ); + + Manage_Setup_Zoom( uwinp, full ); + return Manage_Followup_Zoom( uwinp ); +} + +/* ------------------------------------------------------------ */ + +static void Manage_Do_Unzoom( uwinp, explicit ) + Userwin *uwinp; + bool explicit; +{ + Manage_Setup_Unzoom( uwinp ); + Manage_Followup_Unzoom( uwinp, explicit ); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static Userwin *unzoomed_listener; + +/* ------------------------------------------------------------ */ + +static void Manage_Start_Trying() +{ + unzoomed_listener = UWIN_NULL; +} + +/* ------------------------------------------------------------ */ + +bool Manage_Can_Try_Listener_Unzoom() +{ + if ( UserGlobals_Get_Option(UNZOOM_TIED_LSNR_IF_NECESSARY) && + ( listener != UWIN_NULL ) && + Userwin_Get_Window_Option(listener,LISTENER_TIED_TO_ZOOM) && + listener->zoomed ) + { + Manage_Setup_Unzoom( listener ); + unzoomed_listener = listener; + return TRUE; + } + else + return FALSE; +} + +/* ------------------------------------------------------------ */ + +static void Manage_Finish_Trying( result ) + bool result; +{ + if ( unzoomed_listener != UWIN_NULL ) + { + if ( result ) + Manage_Followup_Unzoom( unzoomed_listener, FALSE ); + else + Manage_Setup_Zoom( unzoomed_listener, FALSE ); + } +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +bool Manage_Unzoom_Open( uwinp ) + Userwin *uwinp; +{ + bool iconized; + bool result; + + iconized = Tilwin_Is_Open( uwinp->iconp ); + if ( iconized ) + Tilwin_Close( uwinp->iconp ); + + Manage_Setup_Unzoom( uwinp ); + result = Manage_Followup_Unzoom_Open( uwinp ); + if ( (! result) && iconized ) + Tilwin_Open( uwinp->iconp, + Tilwin_Get_Center( uwinp->iconp ), + Tilwin_Get_Size( uwinp->iconp ) ); + + return result; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void Manage_Zoom( uwinp ) + Userwin *uwinp; +{ + bool result; + + Manage_Start(); + Manage_Start_Trying(); + result = Manage_Do_Zoom( uwinp, TRUE ); + if ( (! result) && Manage_Can_Try_Listener_Unzoom() ) + result = Manage_Do_Zoom( uwinp, TRUE ); + Manage_Finish_Trying( result ); + Tilwin_Note_Desired_Width( uwinp->winp ); + Tilwin_Note_Desired_Height( uwinp->winp ); + last_zoom = uwinp; + touch = uwinp; + Manage_Finish_Minned( uwinp, result ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Unzoom( uwinp ) + Userwin *uwinp; +{ + if ( ( uwinp == last_zoom ) && + ( uwinp->zoom_stamp == last_stamp ) ) + Manage_Undo_Start(); + else + { + Manage_Start(); + Manage_Do_Unzoom( uwinp, TRUE ); + } + touch = uwinp; + Manage_Finish( TRUE ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Toggle_Zoom( uwinp ) + Userwin *uwinp; +{ + if ( uwinp->zoomed ) + Manage_Unzoom( uwinp ); + else + Manage_Zoom( uwinp ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Toggle_Zoom_Lock( uwinp ) + Userwin *uwinp; +{ + if ( Userwin_Tied_Listener(uwinp) ) + { + Userwin_Dont_Tie_Listener( uwinp ); + Manage_Start(); + Tilwin_Act_Modified( uwinp->winp ); + touch = uwinp; + Manage_Finish( TRUE ); + } + else + { + Userwin_Allow_Tie_Listener( uwinp ); + if ( ( uwinp == listener ) && (! uwinp->zoomed) ) + Manage_Zoom( uwinp ); + else if ( ( uwinp != listener ) && ( uwinp->zoomed ) ) + Manage_Unzoom( uwinp ); + else + { + Manage_Start(); + Tilwin_Act_Modified( uwinp->winp ); + touch = uwinp; + Manage_Finish( TRUE ); + } + } +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void Manage_Switch_Listener( uwinp ) + Userwin *uwinp; +{ + Userwin *old_listener; + bool unzoom_old; + bool zoom_new; + bool listener_zooming; + bool transact; + TimeStamp zoom_stamp = (TimeStamp)0; + + switch_listener = uwinp; + + unzoom_old = (listener != UWIN_NULL) && (listener->zoomed) && + Userwin_Get_Window_Option(listener,LISTENER_TIED_TO_ZOOM); + + zoom_new = (uwinp != UWIN_NULL) && (!uwinp->zoomed) && + Userwin_Get_Window_Option(uwinp,LISTENER_TIED_TO_ZOOM); + + listener_zooming = unzoom_old || zoom_new; + + transact = listener_zooming || + ( UserGlobals_Get_Option(AUTO_PRORATE) && + UserGlobals_Get_Option(BIASED_AUTO_PRORATE) ); + + old_listener = listener; + + if ( unzoom_old ) + zoom_stamp = listener->zoom_stamp; + + if ( unzoom_old && + UserGlobals_Get_Option(AUTO_REPOPULATE_ON_AUTO_UNZOOM) && + ( listener == last_zoom ) && + ( zoom_stamp == last_stamp ) ) + { + Manage_Undo_Start(); + unzoom_old = FALSE; + if ( zoom_new ) + last_zoom = UWIN_NULL; + } + else if ( listener_zooming ) + { + Manage_Start(); + if (! unzoom_old) + last_zoom = uwinp; + } + else if ( transact ) + Manage_Start(); + + if ( listener != UWIN_NULL ) + { + Manage_Unset_Listener(); + if ( unzoom_old ) + Manage_Setup_Unzoom( old_listener ); + else if (! transact) + Drawwin_Display_Wrapping( old_listener ); + } + + Manage_Set_Listener(uwinp); + + if ( listener != UWIN_NULL ) + { + if ( zoom_new ) + { + if ( Manage_Do_Zoom( listener, FALSE ) && + ( zoom_stamp != (TimeStamp)0 ) ) + listener->zoom_stamp = zoom_stamp; + } + else if (! transact) + Drawwin_Display_Wrapping( listener ); + } + + if ( unzoom_old ) + { + if ( listener == UWIN_NULL ) + Manage_Followup_Unzoom( old_listener, FALSE ); + else + min_excursion( listener->winp, + Manage_Followup_Unzoom( old_listener, FALSE ) ) + } + + if ( transact ) + Manage_Finish_Minned( listener, TRUE ); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static bool Manage_Resatisfy( uwinp ) + Userwin *uwinp; +{ + bool result; + Size siz; + + Manage_Save_State( uwinp ); + result = Tilwin_Is_Satisfied( uwinp->winp ); + if (! result ) + { + siz = Tilwin_Get_Size( uwinp->winp ); + Set_Max_Size( siz, siz, Tilwin_Get_Min( uwinp->winp ) ) + Set_Min_Size( siz, siz, Tilwin_Get_Max( uwinp->winp ) ) + if ( Tilwin_Is_Open(uwinp->winp) ) + result = Manage_Neighborhood_Rezoom( uwinp, siz ); + else + result = Manage_Rezoom( uwinp, siz ); + } + return result; +} + +/* ------------------------------------------------------------ */ + +void Manage_Client_Reset_Min_Max( uwinp, min_size, max_size ) + Userwin *uwinp; + Size min_size; + Size max_size; +{ + Size siz; + bool has_min, has_max, result; + + if (! uwinp->prepared) + Manage_Prepare( uwinp ); + + has_max = ( max_size.width > 0 ) && ( max_size.height > 0 ); + has_min = ( min_size.width >= 0 ) && ( min_size.height >= 0 ); + + if ( Profile_Supplies_User_Value( uwinp, CLIENT_MAX_WIDTH ) ) + max_size.width = uwinp->body_max.width; + if ( Profile_Supplies_User_Value( uwinp, CLIENT_MAX_HEIGHT ) ) + max_size.height = uwinp->body_max.height; + + if ( Profile_Supplies_User_Value( uwinp, CLIENT_MIN_WIDTH ) ) + min_size.width = uwinp->body_min.width; + if ( Profile_Supplies_User_Value( uwinp, CLIENT_MIN_HEIGHT ) ) + min_size.height = uwinp->body_min.height; + + if ( has_min ) + Set_Max_Size( max_size, max_size, min_size ) + + if ( has_max ) + { + uwinp->body_max = max_size; + uwinp->client_max = Region_Adjust_Size( uwinp, max_size ); + if ( Userwin_Get_Window_Option( uwinp, ENFORCE_CLIENT_MAXIMUMS ) ) + { + Set_Min_Size( siz, Tilwin_Get_Max( uwinp->winp ), + uwinp->client_max ) + Tilwin_Set_Max( uwinp->winp, siz ); + Set_Min_Size( siz, siz, Tilwin_Get_Desired( uwinp->winp ) ) + Tilwin_Set_Desired( uwinp->winp, siz ); + } + } + + if ( has_min ) + { + uwinp->body_min = min_size; + uwinp->client_min = Region_Adjust_Size( uwinp, min_size ); + if ( Userwin_Get_Window_Option( uwinp, ENFORCE_CLIENT_MINIMUMS ) ) + { + Set_Max_Size( siz, Tilwin_Get_Min( uwinp->winp ), + uwinp->client_min ) + Tilwin_Set_Min( uwinp->winp, siz ); + Set_Max_Size( siz, siz, Tilwin_Get_Desired( uwinp->winp ) ) + Tilwin_Set_Desired( uwinp->winp, siz ); + } + } + + if ( Same_Size( Tilwin_Get_Min(uwinp->winp), + Tilwin_Get_Max(uwinp->winp) ) ) + uwinp->sized = TRUE; + + if (! uwinp->ever_opened) + return; + + if (! Tilwin_Is_Open( uwinp->winp )) + Manage_Resatisfy( uwinp ); + else if ( Userwin_Get_Window_Option( uwinp, AUTO_RESATISFY_ON_RESET_MINMAX ) ) + { + Manage_Start(); + Manage_Client( + { + result = Manage_Resatisfy( uwinp ); + } ) + Manage_Finish_Minned( uwinp, result ); + Manage_Cant_Undo(); + } +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static Size Manage_Calc_Size( siz, rect, side, pos ) + Size siz; + TWRectangle rect; + Side side; + TWPoint pos; +{ + + switch (side) + { + case Top: + case Top_Left: + case Top_Right: + siz.height = 1 + rect.bottom_y - pos.y; + break; + case Bottom: + case Bottom_Left: + case Bottom_Right: + siz.height = 1 + pos.y - rect.top_y; + break; + default: + break; + } + + switch (side) + { + case Left: + case Top_Left: + case Bottom_Left: + siz.width = 1 + rect.right_x - pos.x; + break; + case Right: + case Top_Right: + case Bottom_Right: + siz.width = 1 + pos.x - rect.left_x; + break; + default: + break; + } + + return siz; +} + +/* ------------------------------------------------------------ */ + +bool Manage_Set_Regular_Min_Size( uwinp, pos, side, force, ctrl ) + Userwin *uwinp; + TWPoint pos; + Side side; + bool force, ctrl; +{ + Size max_size; + TWRectangle rect; + rect = Tilwin_Get_Rectangle( uwinp->winp ); + + Manage_Start(); + + if (! uwinp->zoomed) + uwinp->regular_min = Tilwin_Get_Min( uwinp->winp ); + uwinp->regular_min = + Manage_Calc_Size( uwinp->regular_min, rect, side, pos ); + + if ( Userwin_Get_Window_Option( uwinp, ENFORCE_CLIENT_MAXIMUMS ) ) + Set_Min_Size( uwinp->regular_min, uwinp->regular_min, + uwinp->client_max ) + + Set_Min_Size( uwinp->regular_min, uwinp->regular_min, + Tilwin_Get_Max( uwinp->winp ) ) + + if ( Userwin_Get_Window_Option( uwinp, ENFORCE_CLIENT_MINIMUMS ) ) + Set_Max_Size( uwinp->regular_min, uwinp->regular_min, + uwinp->client_min ) + + max_size = Tilwin_Get_Max( uwinp->winp ); + if ( UserGlobals_Get_Option(RESET_MAX_ON_INCREASE) || force ) + Set_Max_Size( max_size, max_size, uwinp->regular_min ) + else + Set_Min_Size( uwinp->regular_min, uwinp->regular_min, max_size ) + Tilwin_Set_Max( uwinp->winp, max_size ); + + if (! uwinp->zoomed) + { + Set_Max_Size( uwinp->regular_size, uwinp->regular_min, + Tilwin_Get_Desired( uwinp->winp ) ) + Tilwin_Set_Min( uwinp->winp, uwinp->regular_min ); + Tilwin_Set_Desired( uwinp->winp, uwinp->regular_size ); + } + else + { + Set_Max_Size( uwinp->regular_size, uwinp->regular_size, + uwinp->regular_min ) + Set_Max_Size( uwinp->zoom_min, uwinp->regular_min, + Tilwin_Get_Min( uwinp->winp ) ) + Set_Max_Size( uwinp->zoom_size, uwinp->zoom_min, + Tilwin_Get_Desired( uwinp->winp ) ) + Tilwin_Set_Min( uwinp->winp, uwinp->zoom_min ); + Tilwin_Set_Desired( uwinp->winp, uwinp->zoom_size ); + } + + Manage_Resatisfy( uwinp ); + + Manage_Finish( TRUE ); + return TRUE; +} + +/* ------------------------------------------------------------ */ + +bool Manage_Set_Zoom_Min_Size( uwinp, pos, side, force, ctrl ) + Userwin *uwinp; + TWPoint pos; + Side side; + bool force, ctrl; +{ + Size max_size; + TWRectangle rect; + rect = Tilwin_Get_Rectangle( uwinp->winp ); + + Manage_Start(); + + if ( uwinp->zoomed ) + uwinp->zoom_min = Tilwin_Get_Min( uwinp->winp ); + uwinp->zoom_min = + Manage_Calc_Size( uwinp->zoom_min, rect, side, pos ); + + if ( Userwin_Get_Window_Option( uwinp, ENFORCE_CLIENT_MAXIMUMS ) ) + Set_Min_Size( uwinp->zoom_min, uwinp->zoom_min, + uwinp->client_max ) + + Set_Min_Size( uwinp->regular_min, uwinp->regular_min, + Tilwin_Get_Max( uwinp->winp ) ) + + if ( Userwin_Get_Window_Option( uwinp, ENFORCE_CLIENT_MINIMUMS ) ) + Set_Max_Size( uwinp->zoom_min, uwinp->zoom_min, + uwinp->client_min ) + + max_size = Tilwin_Get_Max( uwinp->winp ); + if ( UserGlobals_Get_Option(RESET_MAX_ON_INCREASE) || force ) + Set_Max_Size( max_size, max_size, uwinp->zoom_min ) + else + Set_Min_Size( uwinp->zoom_min, uwinp->zoom_min, max_size ) + Tilwin_Set_Max( uwinp->winp, max_size ); + + if ( uwinp->zoomed ) + { + Set_Max_Size( uwinp->zoom_size, uwinp->zoom_min, + Tilwin_Get_Desired( uwinp->winp ) ) + Tilwin_Set_Min( uwinp->winp, uwinp->zoom_min ); + Tilwin_Set_Desired( uwinp->winp, uwinp->zoom_size ); + } + else + { + Set_Max_Size( uwinp->zoom_size, uwinp->zoom_size, + uwinp->zoom_min ) + Set_Min_Size( uwinp->regular_min, uwinp->zoom_min, + Tilwin_Get_Min( uwinp->winp ) ) + Tilwin_Set_Min( uwinp->winp, uwinp->regular_min ); + } + + Manage_Resatisfy( uwinp ); + + Manage_Finish( TRUE ); + return TRUE; +} + +/* ------------------------------------------------------------ */ + +bool Manage_Set_Regular_Desired_Size( uwinp, pos, side, force, ctrl ) + Userwin *uwinp; + TWPoint pos; + Side side; + bool force, ctrl; +{ + Size max_size; + TWRectangle rect; + rect = Tilwin_Get_Rectangle( uwinp->winp ); + + Manage_Start(); + + if (! uwinp->zoomed ) + { + uwinp->regular_size = Tilwin_Get_Desired( uwinp->winp ); + uwinp->regular_min = Tilwin_Get_Min( uwinp->winp ); + } + else + uwinp->zoom_min = Tilwin_Get_Min( uwinp->winp ); + + uwinp->regular_size = + Manage_Calc_Size( uwinp->regular_size, rect, side, pos ); + + if ( Userwin_Get_Window_Option( uwinp, ENFORCE_CLIENT_MAXIMUMS ) ) + Set_Min_Size( uwinp->regular_size, uwinp->regular_size, + uwinp->client_max ) + + if ( Userwin_Get_Window_Option( uwinp, ENFORCE_CLIENT_MINIMUMS ) ) + Set_Max_Size( uwinp->regular_size, uwinp->regular_size, + uwinp->client_min ) + + max_size = Tilwin_Get_Max( uwinp->winp ); + if ( UserGlobals_Get_Option(RESET_MAX_ON_INCREASE) || force ) + Set_Max_Size( max_size, max_size, uwinp->regular_size ) + else + Set_Min_Size( uwinp->regular_size, uwinp->regular_size, max_size ) + Tilwin_Set_Max( uwinp->winp, max_size ); + + if ( UserGlobals_Get_Option(RESET_MIN_ON_DECREASE) || force ) + Set_Min_Size( uwinp->regular_min, uwinp->regular_min, + uwinp->regular_size ) + else + Set_Max_Size( uwinp->regular_size, uwinp->regular_size, + uwinp->regular_min ) + + if (! uwinp->zoomed) + { + Tilwin_Set_Min( uwinp->winp, uwinp->regular_min ); + Tilwin_Set_Desired( uwinp->winp, uwinp->regular_size ); + } + else + { + Set_Max_Size( uwinp->zoom_size, uwinp->regular_size, + Tilwin_Get_Size( uwinp->winp ) ) + Tilwin_Set_Desired( uwinp->winp, uwinp->zoom_size ); + } + + Manage_Finish( TRUE ); + return TRUE; +} + +/* ------------------------------------------------------------ */ + +bool Manage_Set_Zoom_Desired_Size( uwinp, pos, side, force, ctrl ) + Userwin *uwinp; + TWPoint pos; + Side side; + bool force, ctrl; +{ + Size max_size; + TWRectangle rect; + rect = Tilwin_Get_Rectangle( uwinp->winp ); + + Manage_Start(); + + if ( uwinp->zoomed ) + { + uwinp->zoom_size = Tilwin_Get_Desired( uwinp->winp ); + uwinp->zoom_min = Tilwin_Get_Min( uwinp->winp ); + } + else + uwinp->regular_min = Tilwin_Get_Min( uwinp->winp ); + + uwinp->zoom_size = + Manage_Calc_Size( uwinp->zoom_size, rect, side, pos ); + + if ( Userwin_Get_Window_Option( uwinp, ENFORCE_CLIENT_MAXIMUMS ) ) + Set_Min_Size( uwinp->zoom_size, uwinp->zoom_size, + uwinp->client_max ) + + if ( Userwin_Get_Window_Option( uwinp, ENFORCE_CLIENT_MINIMUMS ) ) + Set_Max_Size( uwinp->zoom_size, uwinp->zoom_size, + uwinp->client_min ) + + max_size = Tilwin_Get_Max( uwinp->winp ); + if ( UserGlobals_Get_Option(RESET_MAX_ON_INCREASE) || force ) + Set_Max_Size( max_size, max_size, uwinp->zoom_size ) + else + Set_Min_Size( uwinp->zoom_size, uwinp->zoom_size, max_size ) + Tilwin_Set_Max( uwinp->winp, max_size ); + + if ( UserGlobals_Get_Option(RESET_MIN_ON_DECREASE) || force ) + Set_Min_Size( uwinp->zoom_min, uwinp->zoom_min, + uwinp->zoom_size ) + else + Set_Max_Size( uwinp->zoom_size, uwinp->zoom_size, + uwinp->zoom_min ) + + if (uwinp->zoomed) + { + Tilwin_Set_Min( uwinp->winp, uwinp->zoom_min ); + Tilwin_Set_Desired( uwinp->winp, uwinp->zoom_size ); + } + else + { + if ( UserGlobals_Get_Option(RESET_MIN_ON_DECREASE) || force ) + { + Set_Min_Size( uwinp->regular_min, uwinp->regular_min, + uwinp->zoom_size ) + Tilwin_Set_Min( uwinp->winp, uwinp->regular_min ); + } + else + { + Set_Max_Size( uwinp->zoom_size, uwinp->zoom_size, + uwinp->regular_min ) + } + Set_Min_Size( uwinp->regular_size, uwinp->zoom_size, + Tilwin_Get_Size( uwinp->winp ) ) + Tilwin_Set_Desired( uwinp->winp, uwinp->regular_size ); + } + + Manage_Finish( TRUE ); + return TRUE; +} + +/* ------------------------------------------------------------ */ + +bool Manage_Set_Max_Size( uwinp, pos, side, force, ctrl ) + Userwin *uwinp; + TWPoint pos; + Side side; + bool force, ctrl; +{ + Size max_size; + TWRectangle rect; + rect = Tilwin_Get_Rectangle( uwinp->winp ); + + Manage_Start(); + + max_size = Manage_Calc_Size( + Tilwin_Get_Max( uwinp->winp), rect, side, pos ); + + if (uwinp->zoomed) + uwinp->zoom_min = Tilwin_Get_Min( uwinp->winp ); + else + uwinp->regular_min = Tilwin_Get_Min( uwinp->winp ); + + if ( Userwin_Get_Window_Option( uwinp, ENFORCE_CLIENT_MAXIMUMS ) ) + Set_Min_Size( max_size, max_size, uwinp->client_max ) + + if ( Userwin_Get_Window_Option( uwinp, ENFORCE_CLIENT_MINIMUMS ) ) + Set_Max_Size( max_size, max_size, uwinp->client_min ) + + if ( UserGlobals_Get_Option(RESET_MIN_ON_DECREASE) || force ) + { + Set_Min_Size( uwinp->regular_min, uwinp->regular_min, + max_size ) + Set_Min_Size( uwinp->zoom_min, uwinp->zoom_min, + max_size ) + } + else + { + Set_Max_Size( max_size, max_size, uwinp->regular_min ) + Set_Max_Size( max_size, max_size, uwinp->zoom_min ) + } + Tilwin_Set_Max( uwinp->winp, max_size ); + + if ( uwinp->zoomed ) + { + Set_Min_Size( uwinp->zoom_size, max_size, + Tilwin_Get_Desired( uwinp->winp ) ) + Tilwin_Set_Desired( uwinp->winp, uwinp->zoom_size ); + Set_Min_Size( uwinp->regular_size, uwinp->regular_size, max_size ) + Tilwin_Set_Min( uwinp->winp, uwinp->zoom_min ); + } + else + { + Set_Min_Size( uwinp->regular_size, max_size, + Tilwin_Get_Desired( uwinp->winp ) ) + Tilwin_Set_Desired( uwinp->winp, uwinp->regular_size ); + Set_Min_Size( uwinp->zoom_size, uwinp->zoom_size, max_size ) + Tilwin_Set_Min( uwinp->winp, uwinp->regular_min ); + } + + Manage_Resatisfy( uwinp ); + + Manage_Finish( TRUE ); + return TRUE; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void Manage_Min_Max_Resizing( uwinp, siz1, siz2 ) + Userwin *uwinp; + Size siz1, siz2; +{ + Size siz; + + Set_Min_Size( siz, siz1, siz2 ) + Tilwin_Set_Min( uwinp->winp, siz ); + Set_Max_Size( siz, siz1, siz2 ) + Tilwin_Set_Max( uwinp->winp, siz ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Cancel_Resizing( uwinp ) + Userwin *uwinp; +{ + Tilwin_Set_Min( uwinp->winp, uwinp->prev_min ); + Tilwin_Set_Max( uwinp->winp, uwinp->prev_max ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Finish_Resizing( uwinp, side, force, undesire ) + Userwin *uwinp; + Side side; + bool force, undesire; +{ + Size newmin, newmax; + Size siz, prevsiz, desired; + bool horiz, vert, enlarge; + + horiz = ( side != NoSide ) && ( side != Top ) && ( side != Bottom ); + vert = ( side != NoSide ) && ( side != Left ) && ( side != Right ); + + newmin = uwinp->prev_min; + newmax = uwinp->prev_max; + + if ( uwinp->sized ) + prevsiz = Tilwin_Get_Previous_Size( uwinp->winp ); + else + { + prevsiz = newmin; + if ( UserGlobals_Get_Option(RESET_MIN_MAX_ON_UNSZD_MAN_OPEN) ) + { + force = TRUE; + horiz = TRUE; + vert = TRUE; + } + } + + siz = Tilwin_Get_Size( uwinp->winp ); + + if (! undesire) + { + desired = Tilwin_Get_Desired( uwinp->winp ); + + enlarge = (desired.width > prevsiz.width) || + (desired.height > prevsiz.height); + + if ( horiz ) + { + if ( desired.width >= prevsiz.width ) + { + if ( force || UserGlobals_Get_Option(RESET_MIN_ON_ENLARGE) || + ( UserGlobals_Get_Option(RESET_TIED_ZOOMED_MIN_ON_ENLARGE) && + (uwinp->zoomed) && + Userwin_Get_Window_Option(uwinp,LISTENER_TIED_TO_ZOOM) ) ) + newmin.width = siz.width; + } + else + { + if ( (! enlarge) && + ( force || UserGlobals_Get_Option(RESET_MAX_ON_SHRINK) ) ) + newmax.width = siz.width; + } + } + + if ( vert ) + { + if ( desired.height >= prevsiz.height ) + { + if ( force || UserGlobals_Get_Option(RESET_MIN_ON_ENLARGE) || + ( UserGlobals_Get_Option( + RESET_TIED_ZOOMED_MIN_ON_ENLARGE) && + (uwinp->zoomed) && + Userwin_Get_Window_Option(uwinp,LISTENER_TIED_TO_ZOOM) ) ) + newmin.height = siz.height; + } + else + { + if ( (! enlarge) && + ( force || UserGlobals_Get_Option(RESET_MAX_ON_SHRINK) ) ) + newmax.height = siz.height; + } + } + } + + if ( UserGlobals_Get_Option(RESET_MIN_ON_DECREASE) || force ) + Set_Min_Size( newmin, newmin, siz ) + + if ( UserGlobals_Get_Option(RESET_MAX_ON_INCREASE) || force ) + Set_Max_Size( newmax, newmax, siz ) + + Tilwin_Set_Min( uwinp->winp, newmin ); + Tilwin_Set_Max( uwinp->winp, newmax ); + + Set_Min_Size( siz, newmax, Tilwin_Get_Desired(uwinp->winp) ) + Set_Max_Size( siz, newmin, siz ) + Tilwin_Set_Desired( uwinp->winp, siz ); + +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static bool Manage_Slide_Resize( uwinp, center, siz, side ) + Userwin *uwinp; + TWPoint center; + Size siz; + Side side; +{ + bool result; + Size shrinksiz; + Side shrinkside = NoSide; + + if (! UserGlobals_Get_Option(TRY_SLIDING_ON_RESIZE)) + return Tilwin_Resize( uwinp->winp, siz, side ); + + global_restrict_excursion( ALLOW_AUTOMATIC_CLOSE, + (! UserGlobals_Get_Option( + PREF_SLD_TO_AUTO_CL_ON_RESIZE)), + { global_restrict_excursion( ALLOW_AUTOMATIC_SHRINK, + (! UserGlobals_Get_Option( + PREF_SLD_TO_AUTO_SHR_ON_RESIZE)), + { window_join_excursion( uwinp->winp, FIXED_SIZE, + UserGlobals_Get_Option(PREF_SLD_TO_SHRINK_ON_RESIZE), + { + result = Tilwin_Resize( uwinp->winp, siz, side ); + } ) } ) } ); + + if ( result ) return TRUE; + + shrinksiz = Tilwin_Get_Size( uwinp->winp ); + + switch (side) + { + case Top: + case Top_Left: + case Top_Right: + if ( siz.height < shrinksiz.height ) + { + shrinkside = Top; + shrinksiz.height = siz.height; + } + break; + case Bottom: + case Bottom_Left: + case Bottom_Right: + if ( siz.height < shrinksiz.height ) + { + shrinkside = Bottom; + shrinksiz.height = siz.height; + } + break; + default: + break; + } + + switch (side) + { + case Left: + case Top_Left: + case Bottom_Left: + if ( siz.width < shrinksiz.width ) + { + shrinkside = Left; + shrinksiz.width = siz.width; + } + break; + case Right: + case Top_Right: + case Bottom_Right: + if ( siz.width < shrinksiz.width ) + { + shrinkside = Right; + shrinksiz.width = siz.width; + } + break; + default: + break; + } + + if ( shrinkside != NoSide ) + Tilwin_Resize( uwinp->winp, shrinksiz, shrinkside ); + + return Tilwin_Enlarge_Nearest( uwinp->winp, center, siz ); +} + +/* ------------------------------------------------------------ */ + +static bool Manage_Cntr_Neighborhood_Rsz( uwinp, center, siz, side ) + Userwin *uwinp; + TWPoint center; + Size siz; + Side side; +{ + bool result; + TWRectangle rect; + + if (! UserGlobals_Get_Option(TRY_CTR_NBRHD_ON_RESIZE)) + return Manage_Slide_Resize( uwinp, center, siz, side ); + + global_restrict_excursion( ALLOW_AUTOMATIC_CLOSE, + (! UserGlobals_Get_Option( + PF_CTR_NBR_2_AUTO_CL_ON_RESIZE) ), + { global_restrict_excursion( ALLOW_AUTOMATIC_SHRINK, + (! UserGlobals_Get_Option( + PF_CTR_NBR_2_AUTO_SHR_ON_RESIZE) ), + { window_join_excursion( uwinp->winp, FIXED_SIZE, + UserGlobals_Get_Option( + PF_CTR_NBR_2_SHRINK_ON_RESIZE), + { + result = Manage_Slide_Resize( uwinp, center, siz, side ); + } ) } ) } ); + + if ( result ) return TRUE; + + rect = Manage_Neighborhood_Rectangle( 0.5, center, siz ); + + return Tilwin_Open_Nearest_In_Area( uwinp->winp, rect, center, siz ); +} + +/* ------------------------------------------------------------ */ + +static bool Manage_Edge_Neighborhood_Resize( uwinp, center, siz, side ) + Userwin *uwinp; + TWPoint center; + Size siz; + Side side; +{ + bool result; + TWRectangle rect; + + if (! UserGlobals_Get_Option(TRY_EDGE_NEIGHBORHOOD_ON_RESIZE)) + return Manage_Cntr_Neighborhood_Rsz( uwinp, center, siz, side ); + + global_restrict_excursion( ALLOW_AUTOMATIC_CLOSE, + (! UserGlobals_Get_Option( + PF_EDGE_NBR_2_AUTO_CL_ON_RESIZE) ), + { global_restrict_excursion( ALLOW_AUTOMATIC_SHRINK, + (! UserGlobals_Get_Option( + PF_EDGE_NBR_2_AUTO_SHR_ON_RESIZE) ), + { window_join_excursion( uwinp->winp, FIXED_SIZE, + UserGlobals_Get_Option(PF_EDGE_NBR_2_SHRINK_ON_RESIZE), + { + result = Manage_Cntr_Neighborhood_Rsz( uwinp, center, siz, side ); + } ) } ) } ); + + if ( result ) return TRUE; + + rect = Manage_Neighborhood_Rectangle( 1.0, center, siz ); + + return Tilwin_Open_Nearest_In_Area( uwinp->winp, rect, center, siz ); +} + +/* ------------------------------------------------------------ */ + +bool Manage_Resize( uwinp, pos, side, force, undesire ) + Userwin *uwinp; + Side side; + TWPoint pos; + bool force, undesire; +{ + Size siz, desired; + TWPoint center; + TWRectangle rect; + bool result; + + siz = Tilwin_Get_Size( uwinp->winp ); + rect = Tilwin_Get_Rectangle( uwinp->winp ); + siz = Manage_Calc_Size( siz, rect, side, pos ); + + if (! ( UserGlobals_Get_Option(RESET_MIN_ON_DECREASE) || force )) + Set_Max_Size( siz, siz, uwinp->prev_min ) + if (! ( UserGlobals_Get_Option(RESET_MAX_ON_INCREASE) || force )) + Set_Min_Size( siz, siz, uwinp->prev_max ) + + desired = Tilwin_Get_Desired( uwinp->winp ); + + switch (side) + { + case Top: + case Top_Left: + case Top_Right: + rect.top_y = rect.bottom_y - siz.height + 1; + desired.height = siz.height; + break; + case Bottom: + case Bottom_Left: + case Bottom_Right: + rect.bottom_y = rect.top_y + siz.height - 1; + desired.height = siz.height; + break; + default: + break; + } + + switch (side) + { + case Left: + case Top_Left: + case Bottom_Left: + rect.left_x = rect.right_x - siz.width + 1; + desired.width = siz.width; + break; + case Right: + case Top_Right: + case Bottom_Right: + rect.right_x = rect.left_x + siz.width - 1; + desired.width = siz.width; + break; + default: + break; + } + + COMPUTE_CENTER( rect, center ); + + switch (side) + { + case Top: + case Bottom: + center.x = Tilwin_Get_Position(uwinp->winp).x; + break; + case Left: + case Right: + center.y = Tilwin_Get_Position(uwinp->winp).y; + break; + default: + break; + } + + Manage_Start(); + Manage_Save_State( uwinp ); + + if (! undesire) + { + Tilwin_Set_Desired( uwinp->winp, desired ); + if ( ( side != Top ) && ( side != Bottom ) ) + Tilwin_Note_Desired_Width( uwinp->winp ); + if ( ( side != Left ) && ( side != Right ) ) + Tilwin_Note_Desired_Height( uwinp->winp ); + Tilwin_Set_Position( uwinp->winp, center ); + uwinp->positioned = TRUE; + } + + Manage_Min_Max_Resizing( uwinp, siz, Tilwin_Get_Size( uwinp->winp ) ); + + Manage_Start_Trying(); + global_excursion( PREFER_CLOSE_TO_SHRINK, + UserGlobals_Get_Option(PREFER_CL_TO_SHR_ON_RESIZE), + { window_join_excursion( uwinp->winp, FIXED_SIZE, + ! UserGlobals_Get_Option(ALLOW_SHRINK_ON_RESIZE), + { + result = Same_Size( Tilwin_Get_Size( uwinp->winp ), siz ) || + ( Manage_Edge_Neighborhood_Resize( uwinp, center, siz, side ) + && Tilwin_Was_Just_Modified( uwinp->winp ) ); + if ( (! result) && + ( listener != uwinp ) && + Manage_Can_Try_Listener_Unzoom() ) + result = Manage_Edge_Neighborhood_Resize( uwinp, center, siz, side ) + && Tilwin_Was_Just_Modified( uwinp->winp ); + + } ) } ) + Manage_Finish_Trying( result ); + + if ( result ) + Manage_Finish_Resizing( uwinp, side, force, undesire ); + else + Manage_Cancel_Resizing( uwinp ); + + height_excursion( uwinp->winp, + width_excursion( uwinp->winp, + window_excursion( uwinp->winp, REQUIRE_MANUAL_CLOSE, TRUE, + Manage_Finish( result ) ) ) ); + + + return result; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static bool zoom_forced; + +/* ------------------------------------------------------------ */ + +void Manage_Start_Open( uwinp, force_zoom ) + Userwin *uwinp; + bool force_zoom; +{ + Manage_Start(); + Manage_Start_Trying(); + Manage_Save_State( uwinp ); + + zoom_forced = FALSE; + if (! Tilwin_Is_Open( uwinp->winp )) + { + if ( Tilwin_Is_Open( uwinp->iconp ) ) + Tilwin_Close( uwinp->iconp ); + if ( Userwin_Get_Window_Option( uwinp, ZOOM_ON_OPEN ) || + ( (! uwinp->ever_opened ) && + UserGlobals_Get_Option(ZOOM_ON_CREATE) ) ) + force_zoom = TRUE; + if ( force_zoom && (! uwinp->zoomed) ) + { + zoom_forced = TRUE; + Manage_Do_Zoom( uwinp, FALSE ); + } + } +} + +/* ------------------------------------------------------------ */ + +bool Manage_Can_Try_Self_Unzoom( uwinp ) + Userwin *uwinp; +{ + bool result; + result = UserGlobals_Get_Option(PREFER_UNZOOM_TO_CLOSE) + && (uwinp->zoomed) + && (! Tilwin_Is_Open( uwinp->winp ) ); + if ( result ) + { + zoom_forced = FALSE; + Manage_Do_Unzoom( uwinp, FALSE ); + } + return result; +} + +/* ------------------------------------------------------------ */ + +bool Manage_Finish_Unsized_Open( uwinp, result ) + Userwin *uwinp; + bool result; +{ + if ( result ) + { + uwinp->open_stamp = Tilwin_Get_Timestamp(); + uwinp->ever_opened = TRUE; + } + else if ( zoom_forced ) + Manage_Do_Unzoom( uwinp, FALSE ); + Manage_Finish_Trying( result ); + return Manage_Finish_Locked( uwinp, result ); +} + +/* ------------------------------------------------------------ */ + +bool Manage_Finish_Sized_Open( uwinp, result ) + Userwin *uwinp; + bool result; +{ + if ( result ) + { + uwinp->open_stamp = Tilwin_Get_Timestamp(); + uwinp->ever_opened = TRUE; + } + else if ( zoom_forced ) + Manage_Do_Unzoom( uwinp, FALSE ); + Manage_Finish_Trying( result ); + return Manage_Finish_Minned( uwinp, result ); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +bool Manage_Move( uwinp, pos ) + Userwin *uwinp; + TWPoint pos; +{ + bool result; + + Manage_Start(); + Tilwin_Set_Position( uwinp->winp, pos ); + uwinp->positioned = TRUE; + if ( (! uwinp->ever_opened ) || + UserGlobals_Get_Option(TREAT_MOVE_LIKE_RELOCATE) ) + { + uwinp->ever_opened = TRUE; + return Manage_Finish_Minned( uwinp, + Manage_Center_Open( uwinp, pos ) ); + } + else + { + Manage_Start_Trying(); + result = Tilwin_Open( uwinp->winp, pos, + Tilwin_Get_Size( uwinp->winp ) ); + if ( (! result) && ( listener != uwinp ) + && Manage_Can_Try_Listener_Unzoom() ) + result = Tilwin_Open( uwinp->winp, pos, + Tilwin_Get_Size( uwinp->winp ) ); + Manage_Finish_Trying( result ); + return Manage_Finish_Fixed_Completely( uwinp, result ); + } +} + +/* ------------------------------------------------------------ */ + +bool Manage_Icon_Move( uwinp, pos ) + Userwin *uwinp; + TWPoint pos; +{ + bool result; + + Manage_Start(); + Tilwin_Set_Position( uwinp->iconp, pos ); + if ( UserGlobals_Get_Option(TREAT_MOVE_LIKE_RELOCATE) ) + result = Manage_Neighborhood_Icon_Open( uwinp, pos ); + else + { + Manage_Start_Trying(); + result = Tilwin_Open( uwinp->iconp, pos, + Tilwin_Get_Size( uwinp->iconp ) ); + if ( (! result) && Manage_Can_Try_Listener_Unzoom() ) + result = Tilwin_Open( uwinp->iconp, pos, + Tilwin_Get_Size( uwinp->iconp ) ); + Manage_Finish_Trying( result ); + } + if ( result ) + window_excursion( uwinp->iconp, FIXED_COMPLETELY, TRUE, + Manage_Finish( result ) ) + else + Manage_Finish( FALSE ); + return result; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +#define Configure_Has_X(flags) \ + ( ( (flags) & (1L << 0) ) != 0 ) +#define Configure_Has_Y(flags) \ + ( ( (flags) & (1L << 1) ) != 0 ) +#define Configure_Has_Width(flags) \ + ( ( (flags) & (1L << 2) ) != 0 ) +#define Configure_Has_Height(flags) \ + ( ( (flags) & (1L << 3) ) != 0 ) + +#define Configure_Has_Position(flags) \ + ( Configure_Has_X(flags) || Configure_Has_Y(flags) ) +#define Configure_Has_Size(flags) \ + ( Configure_Has_Width(flags) || Configure_Has_Height(flags) ) + +/* ------------------------------------------------------------ */ + +static void Manage_User_Open_Configure( uwinp, pos, siz, + pos_act, siz_act ) + Userwin *uwinp; + TWPoint pos; + Size siz; + bool pos_act, siz_act; +{ + bool result = TRUE; + + if ( pos_act && siz_act ) + { + result = Manage_Center_Neighborhood_Open( uwinp, pos, siz ); + } + + else if ( pos_act ) + { + result = Manage_Center_Neighborhood_Open( uwinp, pos, + Tilwin_Get_Desired( uwinp->winp ) ); + } + + else if ( siz_act ) + { + result = Manage_Center_Neighborhood_Open( uwinp, + Tilwin_Get_Center( uwinp->winp ), siz ); + } + + if (! result) + Draw_Flash(); +} + +/* ------------------------------------------------------------ */ + +void Manage_Client_Configure( uwinp, flags, top_left, bodsiz, detail ) + Userwin *uwinp; + unsigned long flags; + TWPoint top_left; + Size bodsiz; + int detail; +{ + TWPoint center; + Size tempsiz, siz, desired; + TWRectangle rect; + + Manage_Start(); + + rect = Region_Body_Rectangle( uwinp ); + + COMPUTE_SIZE( rect, tempsiz ); + + if ( Configure_Has_Width(flags) ) + tempsiz.width = bodsiz.width; + if ( Configure_Has_Height(flags) ) + tempsiz.height = bodsiz.height; + + if ( Configure_Has_X(flags) ) + rect.left_x = top_left.x; + if ( Configure_Has_Y(flags) ) + rect.top_y = top_left.y; + + rect.right_x = rect.left_x + tempsiz.width - 1; + rect.bottom_y = rect.top_y + tempsiz.height - 1; + + rect = Region_Adjust_Rectangle( uwinp, rect ); + + COMPUTE_CENTER( rect, center ); + COMPUTE_SIZE( rect, siz ); + + if ( Configure_Has_Size(flags) ) + uwinp->sized = TRUE; + if ( Configure_Has_Position(flags) ) + { + uwinp->positioned = TRUE; + Tilwin_Set_Position( uwinp->winp, center ); + } + + if ( Userwin_Get_Window_Option( uwinp, + ENFORCE_CLIENT_MINIMUMS ) ) + Set_Max_Size( siz, siz, uwinp->client_min ); + + if ( Userwin_Get_Window_Option( uwinp, + ENFORCE_CLIENT_MAXIMUMS ) ) + Set_Min_Size( siz, siz, uwinp->client_max ); + + Set_Min_Size( tempsiz, + Tilwin_Get_Min( uwinp->winp ), siz ); + Tilwin_Set_Min( uwinp->winp, tempsiz ); + Set_Max_Size( tempsiz, + Tilwin_Get_Max( uwinp->winp ), siz ); + Tilwin_Set_Max( uwinp->winp, tempsiz ); + + desired = Tilwin_Get_Desired( uwinp->winp ); + if ( Configure_Has_Width(flags) ) + desired.width = siz.width; + if ( Configure_Has_Height(flags) ) + desired.height = siz.height; + Tilwin_Set_Desired( uwinp->winp, desired ); + + if (! Tilwin_Was_Actually_Modified( uwinp->winp )) + Client_Configure_Denied( uwinp ); + + if (! Tilwin_Is_Open( uwinp->winp ) ) + { + Tilwin_Set( uwinp->winp, center, siz ); + Manage_Finish_Minned( uwinp, TRUE ); + Manage_Cant_Undo(); + } + else + { + Manage_User_Open_Configure( uwinp, center, siz, + Configure_Has_Position(flags), + Configure_Has_Size(flags) ); + Manage_Finish_Minned( uwinp, TRUE ); + } +} + +/* ------------------------------------------------------------ */ + +void Manage_Client_Set_Icon_Size( uwinp, siz ) + Userwin *uwinp; + Size siz; +{ + Tilwin_Set_Min( uwinp->iconp, siz ); + Tilwin_Set_Max( uwinp->iconp, siz ); + Tilwin_Set_Desired( uwinp->iconp, siz ); + + if ( Tilwin_Is_Open( uwinp->iconp ) ) + { + Manage_Client( + { + Manage_Start(); + Tilwin_Set_Size( uwinp->iconp, siz ); + Manage_Finish( TRUE ); + } ) + Manage_Cant_Undo(); + } + else + Tilwin_Set_Size( uwinp->iconp, siz ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Client_Set_Icon_Position( uwinp, pt ) + Userwin *uwinp; + TWPoint pt; +{ + uwinp->icon_positioned = TRUE; + Tilwin_Set_Position( uwinp->iconp, pt ); + + if ( Tilwin_Is_Open( uwinp->iconp ) ) + { + Manage_Client( + { + Manage_Start(); + Manage_Icon_Open( uwinp ); + Manage_Finish( TRUE ); + } ) + Manage_Cant_Undo(); + } + else + Tilwin_Set( uwinp->iconp, pt, Tilwin_Get_Size( uwinp->iconp ) ); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +#define Size_Hints_User_Position(flags) \ + ( ( (flags) & (1L << 0) ) != 0 ) +#define Size_Hints_User_Size(flags) \ + ( ( (flags) & (1L << 1) ) != 0 ) +#define Size_Hints_Client_Position(flags) \ + ( ( (flags) & (1L << 2) ) != 0 ) +#define Size_Hints_Client_Size(flags) \ + ( ( (flags) & (1L << 3) ) != 0 ) +#define Size_Hints_Position(flags) \ + ( ( (flags) & ((1L << 2) | (1L << 0)) ) != 0 ) +#define Size_Hints_Size(flags) \ + ( ( (flags) & ((1L << 3) | (1L << 1)) ) != 0 ) +#define Size_Hints_Min(flags) \ + ( ( (flags) & (1L << 4) ) != 0 ) +#define Size_Hints_Max(flags) \ + ( ( (flags) & (1L << 5) ) != 0 ) +#define Size_Hints_Base(flags) \ + ( ( (flags) & (1L << 8) ) != 0 ) + +#define Manage_Use_Size(uwinp,flags) \ + ( Size_Hints_Size(flags) && \ + (! Userwin_Get_Window_Option( uwinp, IGNORE_SIZE_HINTS ) ) && \ + ( uwinp->ever_opened || \ + (! Userwin_Get_Window_Option( uwinp, \ + IGNORE_INITIAL_SIZE_HINTS ) ) ) ) + +#define Manage_Use_Position(uwinp,flags) \ + ( Size_Hints_Position(flags) && \ + (! Userwin_Get_Window_Option( uwinp, IGNORE_POSITION_HINTS ) ) && \ + ( uwinp->ever_opened || \ + (! Userwin_Get_Window_Option( uwinp, \ + IGNORE_INITIAL_POSITION_HINTS ) ) ) ) + +/* ------------------------------------------------------------ */ + +static void Manage_Act_Hints_Open( uwinp, pos, siz, pos_act, siz_act ) + Userwin *uwinp; + TWPoint pos; + Size siz; + bool pos_act, siz_act; +{ + bool result; + + if ( pos_act ) + result = Manage_Center_Neighborhood_Open( + uwinp, pos, siz ); + + else if ( siz_act ) + result = Manage_Center_Neighborhood_Open( + uwinp, Tilwin_Get_Center( uwinp->winp ), siz ); + + if (! result) + Draw_Flash(); +} + +/* ------------------------------------------------------------ */ + +static void Manage_Act_Hints_Closed( uwinp, pos, siz, pos_act, siz_act ) + Userwin *uwinp; + TWPoint pos; + Size siz; + bool pos_act, siz_act; +{ + if ( pos_act && siz_act ) + Tilwin_Set( uwinp->winp, pos, siz ); + + else if ( pos_act ) + Tilwin_Set( uwinp->winp, pos, Tilwin_Get_Center( uwinp->winp ) ); + + else if ( siz_act ) + Tilwin_Set( uwinp->winp, Tilwin_Get_Center( uwinp->winp ), siz ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Client_Set_Geometry_Hints( uwinp, flags, + top_left, size ) + Userwin *uwinp; + long flags; + TWPoint top_left; + Size size; +{ + Size siz; + TWRectangle rect; + TWPoint pos; + bool pos_act, siz_act; + bool by_user; + + if (! uwinp->prepared) + Manage_Prepare( uwinp ); + + Manage_Start(); + Manage_Save_State( uwinp ); + + if ( uwinp->zoomed ) + { + uwinp->zoom_min = Tilwin_Get_Min(uwinp->winp); + uwinp->zoom_size = Tilwin_Get_Desired(uwinp->winp); + } + else + { + uwinp->regular_min = Tilwin_Get_Min(uwinp->winp); + uwinp->regular_size = Tilwin_Get_Desired(uwinp->winp); + } + + by_user = + ( Size_Hints_User_Position(flags) || + Size_Hints_User_Size(flags) ); + + /* - - - - - - - - - - - - - - - - - - - - - - - - */ + + if (! Manage_Use_Size( uwinp, flags) ) + size = Region_Unadjust_Size( uwinp, uwinp->regular_size ); + + rect = Region_Body_Rectangle( uwinp ); + if ( Manage_Use_Position( uwinp, flags) ) + { + uwinp->positioned = TRUE; + rect.top_y = top_left.y; + rect.left_x = top_left.x; + } + rect.right_x = rect.left_x + size.width - 1; + rect.bottom_y = rect.top_y + size.height - 1; + + rect = Region_Adjust_Rectangle( uwinp, rect ); + + COMPUTE_CENTER( rect, pos ); + if ( Manage_Use_Position( uwinp, flags ) ) + Tilwin_Set_Position( uwinp->winp, pos ); + + COMPUTE_SIZE( rect, size ); + if ( ! uwinp->ever_opened ) + { + if ( Profile_Supplies_User_Value( uwinp, NORMAL_DESIRED_WIDTH ) ) + size.width = uwinp->regular_size.width; + if ( Profile_Supplies_User_Value( uwinp, NORMAL_DESIRED_HEIGHT ) ) + size.height = uwinp->regular_size.height; + } + + /* - - - - - - - - - - - - - - - - - - - - - - - - */ + + siz_act = Size_Hints_User_Size(flags); + + if ( Userwin_Get_Window_Option( uwinp, + ENFORCE_CLIENT_MINIMUMS ) ) + Set_Max_Size( size, size, uwinp->client_min ); + + if ( Userwin_Get_Window_Option( uwinp, + ENFORCE_CLIENT_MAXIMUMS ) ) + Set_Min_Size( size, size, uwinp->client_max ); + + if ( Size_Hints_User_Size(flags) ) + { + if ( UserGlobals_Get_Option(RESET_MIN_ON_DECREASE) ) + Set_Min_Size( uwinp->regular_min, uwinp->regular_min, size ) + else + Set_Max_Size( size, size, uwinp->regular_min ); + + if ( UserGlobals_Get_Option(RESET_MAX_ON_INCREASE) ) + { + Set_Max_Size( siz, Tilwin_Get_Max( uwinp->winp ), size ); + Tilwin_Set_Max( uwinp->winp, siz ); + } + else + Set_Min_Size( size, size, Tilwin_Get_Max( uwinp->winp ) ); + } + else + { + Set_Min_Size( size, size, Tilwin_Get_Max( uwinp->winp ) ); + Set_Max_Size( size, size, uwinp->regular_min ); + } + + if ( Manage_Use_Size( uwinp, flags ) ) + { + uwinp->sized = TRUE; + uwinp->regular_size = size; + } + else + if ( uwinp->zoomed ) + siz_act = FALSE; + + /* - - - - - - - - - - - - - - - - - - - - - - - - */ + + pos_act = Size_Hints_User_Position(flags); + + Set_Max_Size( uwinp->zoom_size, + uwinp->zoom_size, uwinp->regular_size ); + Set_Max_Size( uwinp->zoom_min, + uwinp->zoom_min, uwinp->regular_min ); + + if ( uwinp->zoomed ) + { + Tilwin_Set_Min( uwinp->winp, uwinp->zoom_min ); + Tilwin_Set_Desired( uwinp->winp, uwinp->zoom_size ); + } + else + { + Tilwin_Set_Min( uwinp->winp, uwinp->regular_min ); + Tilwin_Set_Desired( uwinp->winp, uwinp->regular_size ); + } + + if ( (! ( siz_act || pos_act ) ) || + ( (! uwinp->ever_opened) && uwinp->layout_found ) ) + { + Manage_Finish( TRUE ); + if (! by_user) + Manage_Cant_Undo(); + } + else if (! Userwin_Is_Open(uwinp) ) + { + Manage_Act_Hints_Closed( uwinp, pos, size, + pos_act, siz_act ); + Manage_Finish( TRUE ); + Manage_Cant_Undo(); + } + else if ( by_user ) + { + Manage_Act_Hints_Open( uwinp, pos, size, + pos_act, siz_act ); + Manage_Finish_Minned( uwinp, TRUE ); + } + else + Manage_Client_Finish_Minned( uwinp, + Manage_Act_Hints_Open( uwinp, pos, size, + pos_act, siz_act ) ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Initial_Geometry( uwinp, top_left, bodsiz ) + Userwin *uwinp; + TWPoint top_left; + Size bodsiz; +{ + TWPoint center; + Size siz; + TWRectangle rect; + + if (! uwinp->prepared) + Manage_Prepare( uwinp ); + + rect.left_x = top_left.x; + rect.top_y = top_left.y; + + rect.right_x = rect.left_x + bodsiz.width - 1; + rect.bottom_y = rect.top_y + bodsiz.height - 1; + + rect = Region_Adjust_Rectangle( uwinp, rect ); + + COMPUTE_CENTER( rect, center ); + + COMPUTE_SIZE( rect, siz ); + if ( Profile_Supplies_User_Value( uwinp, NORMAL_DESIRED_WIDTH ) ) + siz.width = uwinp->regular_size.width; + if ( Profile_Supplies_User_Value( uwinp, NORMAL_DESIRED_HEIGHT ) ) + siz.height = uwinp->regular_size.height; + + Set_Min_Size( siz, siz, Tilwin_Get_Max( uwinp->winp ) ); + Set_Max_Size( siz, siz, Tilwin_Get_Min( uwinp->winp ) ); + + Tilwin_Set_Desired( uwinp->winp, siz ); + Tilwin_Set( uwinp->winp, center, siz ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Client_Set_Normal_Hints( uwinp, flags, + min_size, max_size, incr_size, + min_aspect, max_aspect, base_size ) + Userwin *uwinp; + long flags; + Size min_size, max_size, incr_size, base_size; + TWPoint min_aspect, max_aspect; +{ + Size siz; + bool act = FALSE; + + if (! uwinp->prepared) + Manage_Prepare( uwinp ); + + Manage_Start(); + Manage_Save_State( uwinp ); + + if ( uwinp->zoomed ) + { + uwinp->zoom_min = Tilwin_Get_Min(uwinp->winp); + uwinp->zoom_size = Tilwin_Get_Desired(uwinp->winp); + } + else + { + uwinp->regular_min = Tilwin_Get_Min(uwinp->winp); + uwinp->regular_size = Tilwin_Get_Desired(uwinp->winp); + } + + if ( Profile_Supplies_User_Value( uwinp, CLIENT_MAX_WIDTH ) ) + max_size.width = uwinp->body_max.width; + if ( Profile_Supplies_User_Value( uwinp, CLIENT_MAX_HEIGHT ) ) + max_size.height = uwinp->body_max.height; + + if ( Profile_Supplies_User_Value( uwinp, CLIENT_MIN_WIDTH ) ) + min_size.width = uwinp->body_min.width; + if ( Profile_Supplies_User_Value( uwinp, CLIENT_MIN_HEIGHT ) ) + min_size.height = uwinp->body_min.height; + + /* - - - - - - - - - - - - - - - - - - - - - - - - */ + + if ( Size_Hints_Max(flags) ) + { + if ( Size_Hints_Min(flags) ) + Set_Max_Size( max_size, max_size, min_size ) + else if ( Size_Hints_Base(flags) ) + { + min_size = base_size; + Set_Max_Size( max_size, max_size, min_size ) + } + + uwinp->client_max = Region_Adjust_Size( uwinp, max_size ); + if ( Userwin_Get_Window_Option( uwinp, ENFORCE_CLIENT_MAXIMUMS ) ) + { + if ( Userwin_Get_Window_Option( uwinp, + AUTO_RESATISFY_ON_RESET_MINMAX ) ) + act = TRUE; + + Set_Min_Size( siz, Tilwin_Get_Max( uwinp->winp ), + uwinp->client_max ) + Tilwin_Set_Max( uwinp->winp, siz ); + + Set_Min_Size( uwinp->regular_min, + uwinp->regular_min, uwinp->client_max ); + + Set_Min_Size( uwinp->regular_size, + uwinp->regular_size, uwinp->client_max ) + } + } + + if ( Size_Hints_Min(flags) || Size_Hints_Base(flags) ) + { + uwinp->body_min = min_size; + uwinp->client_min = Region_Adjust_Size( uwinp, min_size ); + if ( Userwin_Get_Window_Option( uwinp, ENFORCE_CLIENT_MINIMUMS ) ) + { + if ( Userwin_Get_Window_Option( uwinp, + AUTO_RESATISFY_ON_RESET_MINMAX ) ) + act = TRUE; + + Set_Max_Size( siz, Tilwin_Get_Min( uwinp->winp ), + uwinp->client_min ) + Tilwin_Set_Min( uwinp->winp, siz ); + + Set_Max_Size( uwinp->regular_min, + uwinp->regular_min, uwinp->client_min ); + + Set_Max_Size( uwinp->regular_size, + uwinp->regular_size, uwinp->client_min ); + } + } + + if ( Same_Size( Tilwin_Get_Min(uwinp->winp), + Tilwin_Get_Max(uwinp->winp) ) ) + uwinp->sized = TRUE; + + Set_Max_Size( uwinp->zoom_size, + uwinp->zoom_size, uwinp->regular_size ); + Set_Max_Size( uwinp->zoom_min, + uwinp->zoom_min, uwinp->regular_min ); + + if ( uwinp->zoomed ) + { + Tilwin_Set_Min( uwinp->winp, uwinp->zoom_min ); + Tilwin_Set_Desired( uwinp->winp, uwinp->zoom_size ); + } + else + { + Tilwin_Set_Min( uwinp->winp, uwinp->regular_min ); + Tilwin_Set_Desired( uwinp->winp, uwinp->regular_size ); + } + + if ( !act || + ( (! uwinp->ever_opened) && uwinp->layout_found ) ) + { + Manage_Finish( TRUE ); + Manage_Cant_Undo(); + } + else if (! Userwin_Is_Open(uwinp) ) + { + Manage_Resatisfy( uwinp ); + Manage_Finish( TRUE ); + Manage_Cant_Undo(); + } + else + Manage_Client_Finish_Minned( uwinp, + { + if( ! Manage_Resatisfy( uwinp ) ) + Draw_Flash(); + } ) +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +extern bool Manage_Fixed_Open(); +extern bool Manage_User_Open_Automatically(); + +/* ------------------------------------------------------------ */ + +bool Manage_Client_Open_Automatically( uwinp ) + Userwin *uwinp; +{ + bool result = FALSE; + + if ( ! uwinp->ever_opened ) + { + Manage_Start(); + + if ( uwinp->sized && uwinp->positioned ) + Manage_Client( + global_excursion( ENABLE_GRAVITY, FALSE, + { + result = Manage_Fixed_Open( uwinp ); + } ) ) + + if (! result) + Manage_Client( + { + result = Manage_User_Open_Automatically( + uwinp, FALSE, FALSE ); + } ) + + if (! result) + Manage_Client( + Manage_Initial_Icon_Open( uwinp ) ); + + uwinp->ever_opened = TRUE; + Manage_Finish( TRUE ); + } + else + Manage_Client( + { + result = Manage_User_Open_Automatically( + uwinp, FALSE, FALSE ); + } ) + + return result; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static bool Manage_Exchange_Open( uwinp, pos, siz ) + Userwin *uwinp; + TWPoint pos; + Size siz; +{ + bool result; + + Manage_Start_Trying(); + + result = Manage_Center_Neighborhood_Open( uwinp, pos, siz ); + if ( (! result) && Manage_Can_Try_Listener_Unzoom() ) + result = Manage_Center_Neighborhood_Open( uwinp, pos, siz ); + + Manage_Finish_Trying( result ); + return result; +} + +/* ------------------------------------------------------------ */ + +static bool Manage_Icon_Exchange_Open( uwinp, pos ) + Userwin *uwinp; + TWPoint pos; +{ + bool result; + + result = Manage_Neighborhood_Icon_Open( uwinp, pos ); + if (! result) + result = Manage_Icon_Open( uwinp ); + + return result; +} + +/* ------------------------------------------------------------ */ + +static bool Manage_Icon_Exchange( uwinp1, uwinp2 ) + Userwin *uwinp1, *uwinp2; +{ + bool result; + TWPoint pt1, pt2; + pt1 = Tilwin_Get_Center( uwinp1->iconp ); + pt2 = Tilwin_Get_Center( uwinp2->iconp ); + + Tilwin_Close( uwinp1->iconp ); + + global_excursion( PREFER_CLOSE_TO_SHRINK, + UserGlobals_Get_Option(PREFER_CL_TO_SHR_ON_EXCHANGE), + global_restrict_excursion( + ALLOW_AUTOMATIC_CLOSE, + UserGlobals_Get_Option(ALLOW_AUTO_CLOSE_ON_EXCHANGE), + global_restrict_excursion( + ALLOW_AUTOMATIC_SHRINK, + UserGlobals_Get_Option(ALLOW_AUTO_SHRINK_ON_EXCHANGE), + { + result = Manage_Icon_Exchange_Open( uwinp2, pt1 ); + if ( result ) + result = Manage_Icon_Exchange_Open( uwinp1, pt2 ); + } ) ) ) + + if ( result ) + { + Tilwin_Set_Position( uwinp1->iconp, pt2 ); + Tilwin_Set_Position( uwinp2->iconp, pt1 ); + } + + return result; +} + +/* ------------------------------------------------------------ */ + +static bool Manage_Open_Exchange( uwinp1, uwinp2 ) + Userwin *uwinp1, *uwinp2; +{ + TWPoint pt1, pt2; + Size siz; + bool result; + + Manage_Restart(); + + pt1 = Tilwin_Get_Center( uwinp1->winp ); + pt2 = Tilwin_Get_Center( uwinp2->winp ); + + Tilwin_Close( uwinp1->winp ); + + user_global_restrict_excursion( + UNZOOM_TIED_LSNR_IF_NECESSARY, + ( ( listener != uwinp1 ) && ( listener != uwinp2 ) ), + global_excursion( PREFER_CLOSE_TO_SHRINK, + UserGlobals_Get_Option(PREFER_CL_TO_SHR_ON_EXCHANGE), + global_restrict_excursion( + ALLOW_AUTOMATIC_CLOSE, + UserGlobals_Get_Option(ALLOW_AUTO_CLOSE_ON_EXCHANGE), + global_restrict_excursion( + ALLOW_AUTOMATIC_SHRINK, + UserGlobals_Get_Option(ALLOW_AUTO_SHRINK_ON_EXCHANGE), + { + siz = Tilwin_Checked_Desired_Size( uwinp2->winp ); + result = Manage_Exchange_Open( uwinp2, pt1, siz ); + if ( result ) + window_excursion( uwinp2->winp, REQUIRE_MANUAL_CLOSE, TRUE, + { + siz = Tilwin_Checked_Desired_Size( uwinp1->winp ); + result = Manage_Exchange_Open( uwinp1, pt2, siz ); + } ) + } ) ) ) ) + + if ( result ) + { + Tilwin_Set_Position( uwinp1->winp, pt2 ); + uwinp1->positioned = TRUE; + Tilwin_Set_Position( uwinp2->winp, pt1 ); + uwinp2->positioned = TRUE; + } + return result; +} + +/* ------------------------------------------------------------ */ + +static bool Manage_Different_Exchange( uwinp1, uwinp2 ) + Userwin *uwinp1, *uwinp2; +{ + TWPoint pt1, pt2; + Size siz; + bool result; + bool repos1 = FALSE; + bool repos2 = FALSE; + + if ( uwinp2 == rtl_uwinp ) return FALSE; + + Manage_Restart(); + + pt1 = Tilwin_Get_Center( uwinp1->winp ); + pt2 = Tilwin_Get_Center( uwinp2->iconp ); + + Tilwin_Close( uwinp1->winp ); + Tilwin_Close( uwinp2->iconp ); + + user_global_restrict_excursion( + UNZOOM_TIED_LSNR_IF_NECESSARY, + ( listener != uwinp1 ), + { global_excursion( PREFER_CLOSE_TO_SHRINK, + UserGlobals_Get_Option(PREFER_CL_TO_SHR_ON_EXCHANGE), + { global_restrict_excursion( + ALLOW_AUTOMATIC_CLOSE, + UserGlobals_Get_Option(ALLOW_AUTO_CLOSE_ON_EXCHANGE), + { global_restrict_excursion( + ALLOW_AUTOMATIC_SHRINK, + UserGlobals_Get_Option(ALLOW_AUTO_SHRINK_ON_EXCHANGE), + { + siz = Tilwin_Checked_Desired_Size( uwinp2->winp ); + if ( UserGlobals_Get_Option(PREFER_EXCHANGED_LOC_ON_OPENING) && + (! ( uwinp2->positioned && + Userwin_Get_Window_Option( uwinp2, + REQUIRE_PREV_POS ) ) ) ) + { + result = Manage_Exchange_Open( uwinp2, pt1, siz ); + if ( result ) + repos2 = TRUE; + } + if (! result) + result = Manage_Desktop_Open( uwinp2, siz ); + } ) } ) } ) } ) + if (! result) + return FALSE; + window_excursion( uwinp2->winp, REQUIRE_MANUAL_CLOSE, TRUE, + { + if ( UserGlobals_Get_Option( + PREFER_EXC_LOC_ON_ICONIZING) ) + { + if ( Manage_Neighborhood_Icon_Open( uwinp1, pt2 ) ) + repos1 = TRUE; + else + Manage_Icon_Open( uwinp1 ); + } + else + Manage_Icon_Open( uwinp1 ); + } ) + + if ( repos1 ) + Tilwin_Set_Position( uwinp1->iconp, pt2 ); + if ( repos2 ) + { + Tilwin_Set_Position( uwinp2->winp, pt1 ); + uwinp2->positioned = TRUE; + } + + return TRUE; +} + +/* ------------------------------------------------------------ */ + +bool Manage_Exchange( uwinp1, uwinp2 ) + Userwin *uwinp1, *uwinp2; +{ + bool open1, open2; + bool result; + + Manage_Start(); + + open1 = ( uwinp1->current_type == body ); + open2 = ( uwinp2->current_type == body ); + + if ( open1 && (! open2) ) + { + result = Manage_Different_Exchange( uwinp1, uwinp2 ); + Manage_Finish_Locked( uwinp2, result ); + } + + else if ( open2 && (! open1) ) + { + result = Manage_Different_Exchange( uwinp2, uwinp1 ); + Manage_Finish_Locked( uwinp1, result ); + } + + else if ( (! open1) && (! open2) ) + { + result = Manage_Icon_Exchange( uwinp1, uwinp2 ); + Manage_Finish( result ); + } + + else + { + result = FALSE; + + if ( UserGlobals_Get_Option( + TRY_CTR_NBRHD_ON_EXCHANGE) && + UserGlobals_Get_Option( + TRY_CTR_NBRHD_ON_OPEN) ) + { + result = Manage_Open_Exchange( uwinp1, uwinp2 ); + if (! result) + result = Manage_Open_Exchange( uwinp2, uwinp1 ); + } + + if (! result) + user_global_excursion( + TRY_CTR_NBRHD_ON_OPEN, FALSE, + { + result = Manage_Open_Exchange( uwinp1, uwinp2 ); + if (! result) + result = Manage_Open_Exchange( uwinp2, uwinp1 ); + } ) + + window_excursion( uwinp1->winp, REQUIRE_MANUAL_CLOSE, TRUE, + window_excursion( uwinp2->winp, REQUIRE_MANUAL_CLOSE, TRUE, + Manage_Finish( result ) ) ); + + } + + return result; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static void Manage_Remove_Window( uwinp ) + Userwin *uwinp; +{ + TimeStamp stamp; + + Manage_Start(); + + if ( Tilwin_Is_Open( uwinp->winp ) ) + { + Tilwin_Close( uwinp->winp ); + + if ( UserGlobals_Get_Option(AUTO_REPOPULATE_ON_CLOSE) ) + { + if ( UserGlobals_Get_Option(AUTO_DESIRED_ENLARGE) ) + Manage_Ordered_Desire(); + + if ( UserGlobals_Get_Option(ONLY_REPOPULATE_SINCE_ON_CLOSE) ) + stamp = uwinp->open_stamp; + else + stamp = (TimeStamp)0; + Manage_Repopulate_Since( stamp, FALSE, FALSE, TRUE ); + } + } + + Manage_Finish( TRUE ); +} + +/* ------------------------------------------------------------ */ + +static void Manage_Remove( uwinp ) + Userwin *uwinp; +{ + if ( Tilwin_Is_Open( uwinp->winp ) ) + Tilwin_Close( uwinp->winp ); + else if ( Tilwin_Is_Open( uwinp->iconp ) ) + Tilwin_Close( uwinp->iconp ); + + Closed_Remove( uwinp ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Close( uwinp ) + Userwin *uwinp; +{ + extern void Manage_Contract(); + + if ( uwinp->client_state != ClientIconState ) + Manage_Remove_Window( uwinp ); + else if ( Same_Size( Tilwin_Get_Min(uwinp->winp), + Tilwin_Get_Size(uwinp->winp) ) ) + Manage_Remove_Window( uwinp ); + else + Manage_Contract( uwinp ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Client_Close( uwinp ) + Userwin *uwinp; +{ + Manage_Client( Manage_Remove_Window( uwinp ) ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Client_Open_Icon( uwinp ) + Userwin *uwinp; +{ + if ( uwinp->ever_opened ) + Manage_Client_Close( uwinp ); + else + { + uwinp->ever_opened = TRUE; + Manage_Client( Manage_Initial_Icon_Open( uwinp ) ) + } +} + +/* ------------------------------------------------------------ */ + +static void Manage_Close_Icon( uwinp ) + Userwin *uwinp; +{ + Manage_Start(); + if ( Tilwin_Is_Open( uwinp->iconp ) ) + Tilwin_Close( uwinp->iconp ); + Manage_Finish( TRUE ); +} + +/* ------------------------------------------------------------ */ + +static void Manage_Inactivate( uwinp ) + Userwin *uwinp; +{ + if ( Tilwin_Is_Open( uwinp->winp ) ) + Manage_Remove_Window( uwinp ); + else + Manage_Close_Icon( uwinp ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Client_Close_Icon( uwinp ) + Userwin *uwinp; +{ + Manage_Client( Manage_Inactivate( uwinp ) ) +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void Manage_Group_Close( uwinp ) + Userwin *uwinp; +{ + Tilwinp winp; + Userwin *group; + TimeStamp stamp; + + group = uwinp->group; + if ( group == UWIN_NULL ) + { + Manage_Close( uwinp ); + return; + } + + Manage_Start(); + + group->group = group; + + Tilwin_Gen_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( (uwinp->group == group) && + (! Tilwin_Is_Open(uwinp->winp)) && + (! Tilwin_Is_Open(uwinp->iconp)) ) + { + Manage_Save_State( uwinp ); + Closed_Remove( uwinp ); + uwinp->group_state = uwinp->wm_state; + } + } + + stamp = last_stamp; + + Tilwin_Gen_Open_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( uwinp->group == group ) + { + if ( uwinp->winp == winp ) + stamp = MIN( stamp, uwinp->open_stamp ); + + Manage_Save_State( uwinp ); + Manage_Remove( uwinp ); + uwinp->group_state = uwinp->wm_state; + } + } + + if (! group->ever_opened) + Manage_Prepare_Open( group ); + + Closed_Add( uwinp ); + if ( UserGlobals_Get_Option(USE_ICONS) ) + Manage_Icon_Open( uwinp ); + + if ( UserGlobals_Get_Option(AUTO_REPOPULATE_ON_CLOSE) ) + { + if ( UserGlobals_Get_Option(AUTO_DESIRED_ENLARGE) ) + Manage_Ordered_Desire(); + + if (! UserGlobals_Get_Option(ONLY_REPOPULATE_SINCE_ON_CLOSE) ) + stamp = (TimeStamp)0; + Manage_Repopulate_Since( stamp, FALSE, FALSE, TRUE ); + } + + Manage_Finish( TRUE ); +} + +/* ------------------------------------------------------------ */ + +static void Manage_Group_Restore( uwinp ) + Userwin *uwinp; +{ + int state; + + state = uwinp->group_state; + uwinp->group_state = GroupState; + + switch ( state ) + { + case NeverState: + break; + + case NoState: + case DontCareState: + case NormalState: + Closed_Add( uwinp ); + Manage_User_Open_Automatically( uwinp, FALSE, FALSE ); + break; + + case ClientIconState: + case IconicState: + case InactiveState: + Closed_Add( uwinp ); + if ( uwinp->client_state == ClientIconState ) + Manage_User_Open_Automatically( uwinp, FALSE, FALSE ); + else + Manage_Icon_Open( uwinp ); + break; + + case IgnoreState: + break; + } +} + +/* ------------------------------------------------------------ */ + +void Manage_Group_Open( group ) + Userwin *group; +{ + bool found = TRUE; + Tilwinp winp; + Userwin *uwinp; + + Manage_Start(); + + Manage_Save_State( group ); + if ( Tilwin_Is_Open( group->iconp ) ) + Tilwin_Close( group->iconp ); + Closed_Remove( group ); + + while (found) + { + found = FALSE; + + Tilwin_Gen_Closed_Windows(); + while ( (! found) && + ( (winp = Tilwin_Next_Window()) != WIN_NULL ) ) + { + uwinp = Userwin_Get(winp); + if ( Userwin_Group_Closed( uwinp ) && + (uwinp->group == group) ) + { + found = TRUE; + Manage_Group_Restore( uwinp ); + } + } + } + + Manage_Finish( TRUE ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Want_State( uwinp, state ) + Userwin *uwinp; + int state; +{ + uwinp->group_state = state; +} + +/* ------------------------------------------------------------ */ + +static void Manage_Set_Group( uwinp, group ) + Userwin *uwinp; + Userwin *group; +{ + Manage_Start(); + + uwinp->group = group; + if (! Userwin_Group_Closed( uwinp ) ) + { + if ( ( group != UWIN_NULL) && Userwin_Group_Closed( group ) ) + { + Manage_Save_State( uwinp ); + Manage_Remove( uwinp ); + uwinp->group_state = uwinp->wm_state; + } + } + else if ( ( group == UWIN_NULL ) || + (! Userwin_Group_Closed( group ) ) ) + Manage_Group_Restore( uwinp ); + + Manage_Finish( TRUE ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Client_Set_Group( uwinp, group ) + Userwin *uwinp; + Userwin *group; +{ + Manage_Client( Manage_Set_Group( uwinp, group ) ) +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void Manage_Client_Set_State( uwinp, state ) + Userwin *uwinp; + int state; +{ + uwinp->client_state = state; +} + +/* ------------------------------------------------------------ */ + +void Manage_Client_Change_State( uwinp, state ) + Userwin *uwinp; + int state; +{ + uwinp->client_state = state; + + if ( ( state != IgnoreState ) && + ( uwinp->wm_state == IgnoreState ) ) + Drawwin_Insert( uwinp ); + else if ( ( state == IgnoreState ) && + ( uwinp->wm_state != IgnoreState ) ) + Drawwin_Withdraw( uwinp ); + + if ( Userwin_Group_Closed( uwinp ) ) + { + if ( state == IgnoreState ) + { + if ( (uwinp->wm_state != IgnoreState) && + (uwinp->group != uwinp) ) + { + uwinp->wm_state = IgnoreState; + Client_Set_State( uwinp ); + } + uwinp->group_state = IgnoreState; + } + else + { + if ( uwinp->wm_state == IgnoreState ) + { + uwinp->wm_state = InactiveState; + uwinp->group_state = state; + Client_Set_State( uwinp ); + } + + else if ( ( state != NoState ) && ( state != DontCareState ) ) + uwinp->group_state = state; + } + } + else + { + switch ( state ) + { + case NoState: + case DontCareState: + break; + + case NormalState: + case ClientIconState: + if (! Tilwin_Is_Open( uwinp->winp ) ) + Manage_Client_Open_Automatically( uwinp ); + break; + + case IconicState: + Manage_Client( Manage_Remove_Window( uwinp ) ); + break; + + case InactiveState: + if ( Tilwin_Is_Open(uwinp->winp) || + Tilwin_Is_Open(uwinp->iconp) ) + Manage_Client( Manage_Inactivate( uwinp ) ) + + uwinp->wm_state = InactiveState; + Client_Set_State( uwinp ); + Closed_Add( uwinp ); + + break; + + case IgnoreState: + if ( Tilwin_Is_Open(uwinp->winp) || + Tilwin_Is_Open(uwinp->iconp) ) + Manage_Client( Manage_Inactivate( uwinp ) ) + + uwinp->wm_state = IgnoreState; + Client_Set_State( uwinp ); + + Closed_Remove( uwinp ); + break; + } + } +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void Manage_Repopulate_Last() +{ + Manage_Start(); + Manage_Repopulate_Since( last_stamp, TRUE, FALSE, TRUE ); + Manage_Finish( TRUE ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Repopulate_All( strict, only_auto_close ) + bool strict; + bool only_auto_close; +{ + Manage_Start(); + Manage_Repopulate_Since( (TimeStamp)0, TRUE, strict, only_auto_close ); + Manage_Finish( TRUE ); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static void Manage_Cleanup_Window( uwinp ) + Userwin *uwinp; +{ + if ( uwinp == prev_touch ) prev_touch = UWIN_NULL; + if ( uwinp == prev_listener ) prev_listener = UWIN_NULL; + Manage_Unset( uwinp ); + + /* So Update Desktop treats correctly */ + uwinp->client_state = NeverState; + + Manage_Remove( uwinp ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Eliminate_Window( uwinp ) + Userwin *uwinp; +{ + Manage_Untitle( uwinp ); + + Drawwin_Destroy( uwinp ); + DrawIcon_Destroy( uwinp ); + + Tilwin_Destroy_Window( uwinp->winp ); + Tilwin_Destroy_Window( uwinp->iconp ); + + Userwin_Deallocate( uwinp ); +} + +/* ------------------------------------------------------------ */ + +static void Manage_Cleanup_Connection( connection ) + int connection; +{ + Tilwinp winp; + Userwin *uwinp; + + Tilwin_Gen_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( (uwinp->connection == connection ) && + ( (winp == uwinp->winp) || Tilwin_Is_Open(uwinp->winp) ) ) + { + Manage_Cleanup_Window( uwinp ); + } + } +} + +/* ------------------------------------------------------------ */ + +static void Manage_Eliminate_Connection( connection ) + int connection; +{ + Tilwinp winp; + Userwin *uwinp; + bool killed = TRUE; + + while (killed) + { + killed = FALSE; + Tilwin_Gen_Closed_Windows(); + while ( (! killed) && + ( (winp = Tilwin_Next_Window()) != WIN_NULL ) ) + { + uwinp = Userwin_Get(winp); + if ( (uwinp->connection == connection ) && + ( (winp == uwinp->winp) || Tilwin_Is_Open(uwinp->winp) ) ) + { + Manage_Eliminate_Window( uwinp ); + killed = TRUE; + } + } + } +} + +/* ------------------------------------------------------------ */ + +static void Manage_Destroy_Window( uwinp ) + Userwin *uwinp; +{ + bool zoomed; + TimeStamp open_stamp, zoom_stamp; + + Manage_Start(); + + if ( UserGlobals_Get_Option(ONLY_REPOPULATE_SINCE_ON_CLOSE) ) + open_stamp = uwinp->open_stamp; + else + open_stamp = (TimeStamp)0; + + zoomed = uwinp->zoomed; + if ( UserGlobals_Get_Option( + ONLY_REPOP_SINCE_ON_AUTO_UNZOOM) || + UserGlobals_Get_Option( + ONLY_REPOP_SINCE_ON_EXPL_UNZOOM) ) + zoom_stamp = uwinp->zoom_stamp; + else + zoom_stamp = (TimeStamp)0; + + Manage_Cleanup_Window( uwinp ); + + Manage_Update_Desktop(); + + Manage_Eliminate_Window( uwinp ); + + if ( UserGlobals_Get_Option(AUTO_DESIRED_ENLARGE) ) + Manage_Ordered_Desire(); + + if ( UserGlobals_Get_Option(AUTO_REPOPULATE_ON_CLOSE) ) + Manage_Repopulate_Since( open_stamp, FALSE, FALSE, TRUE ); + + if ( zoomed && + UserGlobals_Get_Option(AUTO_REPOP_ON_EXPLICIT_UNZOOM) ) + Manage_Repopulate_Since( zoom_stamp, FALSE, FALSE, TRUE ); + + Manage_Finish( TRUE ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Client_Destroy( uwinp ) + Userwin *uwinp; +{ + Manage_Unset( uwinp ); + Manage_Client( Manage_Destroy_Window( uwinp ) ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Hard_Kill( uwinp ) + Userwin *uwinp; +{ + Client_Kill( uwinp ); + Manage_Destroy_Window( uwinp ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Notify( uwinp ) + Userwin *uwinp; +{ + if ( Userwin_Bangs( uwinp ) ) + { + uwinp->saving_state = TRUE; + Client_Bang( uwinp ); + } + else + Draw_Flash(); +} + +/* ------------------------------------------------------------ */ + +void Manage_Soft_Kill( uwinp ) + Userwin *uwinp; +{ + if ( Userwin_Bangs( uwinp ) ) + { + uwinp->saving_state = TRUE; + uwinp->soft_kill = TRUE; + Client_Bang( uwinp ); + } + else + { + Client_Kill( uwinp ); + Manage_Destroy_Window( uwinp ); + } +} + +/* ------------------------------------------------------------ */ + +void Manage_Delete_Window( uwinp ) + Userwin *uwinp; +{ + if ( Userwin_Deletes_Window( uwinp ) ) + Client_Delete_Window( uwinp ); + else + Manage_Soft_Kill( uwinp ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Notify_All() +{ + Tilwinp winp; + Userwin *uwinp; + + Tilwin_Gen_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( (uwinp != rtl_uwinp) && + ( (winp == uwinp->winp) || Tilwin_Is_Open(uwinp->winp) ) ) + { + if ( Userwin_Bangs( uwinp ) ) + Manage_Notify( uwinp ); + } + } +} + +/* ------------------------------------------------------------ */ + +void Manage_Soft_Kill_All() +{ + Tilwinp winp; + Userwin *uwinp; + bool killed = TRUE; + + while (killed) + { + killed = FALSE; + Tilwin_Gen_Closed_Windows(); + while ( (! killed) && + ( (winp = Tilwin_Next_Window()) != WIN_NULL ) ) + { + uwinp = Userwin_Get(winp); + if ( (uwinp != rtl_uwinp) && + ( (winp == uwinp->winp) || Tilwin_Is_Open(uwinp->winp) ) ) + { + Manage_Soft_Kill( uwinp ); + killed = TRUE; + } + } + } +} + +/* ------------------------------------------------------------ */ + +void Manage_Exit() +{ + Tilwinp winp; + Userwin *uwinp; + + Tilwin_Gen_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( (uwinp != rtl_uwinp) && + ( (winp == uwinp->winp) || Tilwin_Is_Open(uwinp->winp) ) ) + Client_Kill( uwinp ); + } +} + +/* ------------------------------------------------------------ */ + +void Manage_Client_Set_Messages( uwinp, messages ) + Userwin *uwinp; + long messages; +{ + uwinp->messages = messages; +} diff --git a/manage.h b/manage.h new file mode 100644 index 0000000..f4b0692 --- /dev/null +++ b/manage.h @@ -0,0 +1,271 @@ +/* +static char sccs_id[] = "@(#)manage.h 5.7 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +#ifndef BASETYPE +#include "basetype.h" +#endif + +#ifndef USERWIN +#include "uwinP.h" +#endif + +extern Userwin *focus; +extern Userwin *sublistener; +extern Userwin *listener; + +#define Manage_Get_Focus() \ + ( focus ) + +#define Manage_Get_Sublistener() \ + ( sublistener ) + +#define Manage_Get_Listener() \ + ( listener ) + +extern void Manage_Init(); +extern void Manage_Init_Rtl(); + +extern void Manage_Start(); + +extern void Manage_Finish(); + /* bool */ + +extern void Manage_Layout(); + +extern void Manage_Finish_Layout(); + +extern void Manage_Note_Output(); +extern void Manage_Note_Input(); + +extern void Manage_Redraw(); + /* uwinp */ + +extern void Manage_Redraw_All(); + +extern void Manage_Start_Repaint(); + +extern void Manage_Repaint_Rect(); + /* rect */ + +extern void Manage_Finish_Repaint(); + +extern void Manage_Set_Desktop_Size(); + /* desksiz */ + +extern void Manage_Resize_Desktop(); + /* desksiz */ + +extern void Manage_Resize_Repaint(); + +extern Userwin *Manage_Create_Window(); + +extern void Manage_Eliminate_Window(); + +extern Userwin *Manage_Locate(); + /* pos */ + +extern void Manage_Zoom(); + /* uwinp */ + +extern void Manage_Unzoom(); + /* uwinp */ + +extern void Manage_Toggle_Zoom(); + /* uwinp */ + +extern void Manage_Toggle_Zoom_Lock(); + /* uwinp */ + +extern void Manage_Set_Focus(); + +extern void Manage_Unset_Focus(); +extern void Manage_Switch_Focus(); + /* uwinp */ + +extern void Manage_Switch_Listener(); + /* uwinp */ + +extern void Manage_Set_Sublistener(); +extern void Manage_Switch_Sublistener(); + /* uwinp */ + +extern void Manage_Unset_Sublistener(); + +extern void Manage_Close(); + /* uwinp */ + +extern void Manage_Undo(); + +extern void Manage_Repopulate_Last(); + +extern void Manage_Repopulate_All(); + +extern bool Manage_Move(); + /* uwinp, pos */ + +extern bool Manage_Icon_Move(); + /* uwinp, pos */ + +extern bool Manage_Exchange(); + /* uwinp, exch_uwinp */ + +extern bool Manage_Center_Open(); + /* uwinp, pos */ + +extern bool Manage_Corner_Open(); + /* uwinp, start_pos, pos, force, undesire */ + +extern bool Manage_User_Open_Automatically(); + /* uwinp */ + +extern bool Manage_Client_Open_Automatically(); + /* uwinp */ + +extern bool Manage_Auto_Open_Automatically(); + /* uwinp */ + +extern void Manage_Startup_Open(); +extern void Manage_Startup_Finish(); + +extern void Manage_Determine_Startup_State(); + +extern void Manage_Client_Open(); + +extern void Manage_Initial_Geometry(); +extern void Manage_Client_Configure(); + /* uwinp, rect */ + +extern void Manage_Client_Set_Normal_Hints(); +extern void Manage_Client_Set_Geometry_Hints(); + +extern void Manage_Client_Reset_Min_Max(); + /* uwinp, min_size, max_size */ + +extern void Manage_Client_Close(); + /* uwinp */ + +extern void Manage_Destroy(); + +extern void Manage_Client_Destroy(); + /* uwinp */ + +extern bool Manage_Set_Regular_Min_Size(); + /* uwinp, pos, side, force, ctrl */ + +extern bool Manage_Set_Regular_Desired_Size(); + /* uwinp, pos, side, force, ctrl */ + +extern bool Manage_Set_Zoom_Min_Size(); + /* uwinp, pos, side, force, ctrl */ + +extern bool Manage_Set_Zoom_Desired_Size(); + /* uwinp, pos, side, force, ctrl */ + +extern bool Manage_Set_Max_Size(); + /* uwinp, pos, side, force, ctrl */ + +extern bool Manage_Resize(); + /* uwinp, pos, side, force, undesire */ + +extern void Manage_Set_Class(); + /* uwinp, res_class, res_name */ + +extern void Manage_Set_Name(); + /* uwinp, str */ + +extern void Manage_Set_Icon_Name(); + /* uwinp, str */ + +extern void Manage_Set_Hostname(); + /* uwinp, str */ + +extern void Manage_Set_Command(); + /* uwinp, str */ + +extern void Manage_Notify(); + /* uwinp */ + +extern void Manage_Delete_Window(); + /* uwinp */ + +extern void Manage_Soft_Kill(); + /* uwinp */ + +extern void Manage_Hard_Kill(); + /* uwinp */ + +extern void Manage_Notify_All(); + +extern void Manage_Soft_Kill_All(); + +extern void Manage_Exit(); + +extern void Manage_Contract(); + /* uwinp */ + +extern void Manage_Expand(); + /* uwinp */ + +extern void Manage_Desire(); + /* uwinp */ + +extern void Manage_Shrink(); + /* uwinp */ + +extern void Manage_Enlarge(); + /* uwinp */ + +extern void Manage_Profile(); + /* filnam */ + +extern void Manage_Prorate(); + +extern void Manage_Fill(); + +extern void Manage_Desire(); +/* uwinp */ + +extern void Manage_Prepare_Open(); + +extern void Manage_Client_Open_Icon(); +extern void Manage_Client_Close_Icon(); + +extern void Manage_Client_Set_State(); + +extern void Manage_Client_Change_State(); + +extern void Manage_Group_Open(); +extern void Manage_Group_Close(); +extern void Manage_Want_State(); +extern void Manage_Client_Set_Group(); +extern void Manage_Client_Set_Messages(); + +extern void Manage_Client_Set_Icon_Position(); +extern void Manage_Client_Set_Icon_Size(); + diff --git a/manage.vim.c b/manage.vim.c new file mode 100644 index 0000000..bf26c78 --- /dev/null +++ b/manage.vim.c @@ -0,0 +1,9777 @@ +# 1 "manage.c" +# 1 "" +# 1 "" +# 1 "manage.c" + +static char sccs_id[] = "@(#)manage.c 5.7 9/1/88"; +# 27 "manage.c" +# 1 "/usr/include/stdlib.h" 1 3 4 +# 25 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/features.h" 1 3 4 +# 358 "/usr/include/features.h" 3 4 +# 1 "/usr/include/sys/cdefs.h" 1 3 4 +# 353 "/usr/include/sys/cdefs.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 354 "/usr/include/sys/cdefs.h" 2 3 4 +# 359 "/usr/include/features.h" 2 3 4 +# 382 "/usr/include/features.h" 3 4 +# 1 "/usr/include/gnu/stubs.h" 1 3 4 + + + +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 5 "/usr/include/gnu/stubs.h" 2 3 4 + + + + +# 1 "/usr/include/gnu/stubs-64.h" 1 3 4 +# 10 "/usr/include/gnu/stubs.h" 2 3 4 +# 383 "/usr/include/features.h" 2 3 4 +# 26 "/usr/include/stdlib.h" 2 3 4 + + + + + + + +# 1 "/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.2/include/stddef.h" 1 3 4 +# 212 "/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.2/include/stddef.h" 3 4 +typedef long unsigned int size_t; +# 324 "/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.2/include/stddef.h" 3 4 +typedef int wchar_t; +# 34 "/usr/include/stdlib.h" 2 3 4 + + + + + + + + +# 1 "/usr/include/bits/waitflags.h" 1 3 4 +# 43 "/usr/include/stdlib.h" 2 3 4 +# 1 "/usr/include/bits/waitstatus.h" 1 3 4 +# 65 "/usr/include/bits/waitstatus.h" 3 4 +# 1 "/usr/include/endian.h" 1 3 4 +# 37 "/usr/include/endian.h" 3 4 +# 1 "/usr/include/bits/endian.h" 1 3 4 +# 38 "/usr/include/endian.h" 2 3 4 +# 61 "/usr/include/endian.h" 3 4 +# 1 "/usr/include/bits/byteswap.h" 1 3 4 +# 28 "/usr/include/bits/byteswap.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 29 "/usr/include/bits/byteswap.h" 2 3 4 +# 62 "/usr/include/endian.h" 2 3 4 +# 66 "/usr/include/bits/waitstatus.h" 2 3 4 + +union wait + { + int w_status; + struct + { + + unsigned int __w_termsig:7; + unsigned int __w_coredump:1; + unsigned int __w_retcode:8; + unsigned int:16; + + + + + + + + } __wait_terminated; + struct + { + + unsigned int __w_stopval:8; + unsigned int __w_stopsig:8; + unsigned int:16; + + + + + + + } __wait_stopped; + }; +# 44 "/usr/include/stdlib.h" 2 3 4 +# 68 "/usr/include/stdlib.h" 3 4 +typedef union + { + union wait *__uptr; + int *__iptr; + } __WAIT_STATUS __attribute__ ((__transparent_union__)); +# 96 "/usr/include/stdlib.h" 3 4 + + +typedef struct + { + int quot; + int rem; + } div_t; + + + +typedef struct + { + long int quot; + long int rem; + } ldiv_t; + + + + + + + +__extension__ typedef struct + { + long long int quot; + long long int rem; + } lldiv_t; + + +# 140 "/usr/include/stdlib.h" 3 4 +extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) ; + + + + +extern double atof (__const char *__nptr) + __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + +extern int atoi (__const char *__nptr) + __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + +extern long int atol (__const char *__nptr) + __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + + + + + +__extension__ extern long long int atoll (__const char *__nptr) + __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + + + + + +extern double strtod (__const char *__restrict __nptr, + char **__restrict __endptr) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; + + + + + +extern float strtof (__const char *__restrict __nptr, + char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; + +extern long double strtold (__const char *__restrict __nptr, + char **__restrict __endptr) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; + + + + + +extern long int strtol (__const char *__restrict __nptr, + char **__restrict __endptr, int __base) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; + +extern unsigned long int strtoul (__const char *__restrict __nptr, + char **__restrict __endptr, int __base) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; + + + + +__extension__ +extern long long int strtoq (__const char *__restrict __nptr, + char **__restrict __endptr, int __base) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; + +__extension__ +extern unsigned long long int strtouq (__const char *__restrict __nptr, + char **__restrict __endptr, int __base) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; + + + + + +__extension__ +extern long long int strtoll (__const char *__restrict __nptr, + char **__restrict __endptr, int __base) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; + +__extension__ +extern unsigned long long int strtoull (__const char *__restrict __nptr, + char **__restrict __endptr, int __base) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; + +# 311 "/usr/include/stdlib.h" 3 4 +extern char *l64a (long int __n) __attribute__ ((__nothrow__)) ; + + +extern long int a64l (__const char *__s) + __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; + + + + +# 1 "/usr/include/sys/types.h" 1 3 4 +# 28 "/usr/include/sys/types.h" 3 4 + + +# 1 "/usr/include/bits/types.h" 1 3 4 +# 28 "/usr/include/bits/types.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 29 "/usr/include/bits/types.h" 2 3 4 + + +typedef unsigned char __u_char; +typedef unsigned short int __u_short; +typedef unsigned int __u_int; +typedef unsigned long int __u_long; + + +typedef signed char __int8_t; +typedef unsigned char __uint8_t; +typedef signed short int __int16_t; +typedef unsigned short int __uint16_t; +typedef signed int __int32_t; +typedef unsigned int __uint32_t; + +typedef signed long int __int64_t; +typedef unsigned long int __uint64_t; + + + + + + + +typedef long int __quad_t; +typedef unsigned long int __u_quad_t; +# 131 "/usr/include/bits/types.h" 3 4 +# 1 "/usr/include/bits/typesizes.h" 1 3 4 +# 132 "/usr/include/bits/types.h" 2 3 4 + + +typedef unsigned long int __dev_t; +typedef unsigned int __uid_t; +typedef unsigned int __gid_t; +typedef unsigned long int __ino_t; +typedef unsigned long int __ino64_t; +typedef unsigned int __mode_t; +typedef unsigned long int __nlink_t; +typedef long int __off_t; +typedef long int __off64_t; +typedef int __pid_t; +typedef struct { int __val[2]; } __fsid_t; +typedef long int __clock_t; +typedef unsigned long int __rlim_t; +typedef unsigned long int __rlim64_t; +typedef unsigned int __id_t; +typedef long int __time_t; +typedef unsigned int __useconds_t; +typedef long int __suseconds_t; + +typedef int __daddr_t; +typedef long int __swblk_t; +typedef int __key_t; + + +typedef int __clockid_t; + + +typedef void * __timer_t; + + +typedef long int __blksize_t; + + + + +typedef long int __blkcnt_t; +typedef long int __blkcnt64_t; + + +typedef unsigned long int __fsblkcnt_t; +typedef unsigned long int __fsblkcnt64_t; + + +typedef unsigned long int __fsfilcnt_t; +typedef unsigned long int __fsfilcnt64_t; + +typedef long int __ssize_t; + + + +typedef __off64_t __loff_t; +typedef __quad_t *__qaddr_t; +typedef char *__caddr_t; + + +typedef long int __intptr_t; + + +typedef unsigned int __socklen_t; +# 31 "/usr/include/sys/types.h" 2 3 4 + + + +typedef __u_char u_char; +typedef __u_short u_short; +typedef __u_int u_int; +typedef __u_long u_long; +typedef __quad_t quad_t; +typedef __u_quad_t u_quad_t; +typedef __fsid_t fsid_t; + + + + +typedef __loff_t loff_t; + + + +typedef __ino_t ino_t; +# 61 "/usr/include/sys/types.h" 3 4 +typedef __dev_t dev_t; + + + + +typedef __gid_t gid_t; + + + + +typedef __mode_t mode_t; + + + + +typedef __nlink_t nlink_t; + + + + +typedef __uid_t uid_t; + + + + + +typedef __off_t off_t; +# 99 "/usr/include/sys/types.h" 3 4 +typedef __pid_t pid_t; + + + + + +typedef __id_t id_t; + + + + +typedef __ssize_t ssize_t; + + + + + +typedef __daddr_t daddr_t; +typedef __caddr_t caddr_t; + + + + + +typedef __key_t key_t; +# 133 "/usr/include/sys/types.h" 3 4 +# 1 "/usr/include/time.h" 1 3 4 +# 58 "/usr/include/time.h" 3 4 + + +typedef __clock_t clock_t; + + + +# 74 "/usr/include/time.h" 3 4 + + +typedef __time_t time_t; + + + +# 92 "/usr/include/time.h" 3 4 +typedef __clockid_t clockid_t; +# 104 "/usr/include/time.h" 3 4 +typedef __timer_t timer_t; +# 134 "/usr/include/sys/types.h" 2 3 4 +# 147 "/usr/include/sys/types.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.2/include/stddef.h" 1 3 4 +# 148 "/usr/include/sys/types.h" 2 3 4 + + + +typedef unsigned long int ulong; +typedef unsigned short int ushort; +typedef unsigned int uint; +# 195 "/usr/include/sys/types.h" 3 4 +typedef int int8_t __attribute__ ((__mode__ (__QI__))); +typedef int int16_t __attribute__ ((__mode__ (__HI__))); +typedef int int32_t __attribute__ ((__mode__ (__SI__))); +typedef int int64_t __attribute__ ((__mode__ (__DI__))); + + +typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); +typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); +typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); +typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); + +typedef int register_t __attribute__ ((__mode__ (__word__))); +# 220 "/usr/include/sys/types.h" 3 4 +# 1 "/usr/include/sys/select.h" 1 3 4 +# 31 "/usr/include/sys/select.h" 3 4 +# 1 "/usr/include/bits/select.h" 1 3 4 +# 23 "/usr/include/bits/select.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 24 "/usr/include/bits/select.h" 2 3 4 +# 32 "/usr/include/sys/select.h" 2 3 4 + + +# 1 "/usr/include/bits/sigset.h" 1 3 4 +# 24 "/usr/include/bits/sigset.h" 3 4 +typedef int __sig_atomic_t; + + + + +typedef struct + { + unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; + } __sigset_t; +# 35 "/usr/include/sys/select.h" 2 3 4 + + + +typedef __sigset_t sigset_t; + + + + + +# 1 "/usr/include/time.h" 1 3 4 +# 120 "/usr/include/time.h" 3 4 +struct timespec + { + __time_t tv_sec; + long int tv_nsec; + }; +# 45 "/usr/include/sys/select.h" 2 3 4 + +# 1 "/usr/include/bits/time.h" 1 3 4 +# 31 "/usr/include/bits/time.h" 3 4 +struct timeval + { + __time_t tv_sec; + __suseconds_t tv_usec; + }; +# 47 "/usr/include/sys/select.h" 2 3 4 + + +typedef __suseconds_t suseconds_t; + + + + + +typedef long int __fd_mask; +# 67 "/usr/include/sys/select.h" 3 4 +typedef struct + { + + + + + + + __fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; + + + } fd_set; + + + + + + +typedef __fd_mask fd_mask; +# 99 "/usr/include/sys/select.h" 3 4 + +# 109 "/usr/include/sys/select.h" 3 4 +extern int select (int __nfds, fd_set *__restrict __readfds, + fd_set *__restrict __writefds, + fd_set *__restrict __exceptfds, + struct timeval *__restrict __timeout); +# 121 "/usr/include/sys/select.h" 3 4 +extern int pselect (int __nfds, fd_set *__restrict __readfds, + fd_set *__restrict __writefds, + fd_set *__restrict __exceptfds, + const struct timespec *__restrict __timeout, + const __sigset_t *__restrict __sigmask); + + + +# 221 "/usr/include/sys/types.h" 2 3 4 + + +# 1 "/usr/include/sys/sysmacros.h" 1 3 4 +# 30 "/usr/include/sys/sysmacros.h" 3 4 + + +__extension__ +extern unsigned int gnu_dev_major (unsigned long long int __dev) + __attribute__ ((__nothrow__)); +__extension__ +extern unsigned int gnu_dev_minor (unsigned long long int __dev) + __attribute__ ((__nothrow__)); +__extension__ +extern unsigned long long int gnu_dev_makedev (unsigned int __major, + unsigned int __minor) + __attribute__ ((__nothrow__)); +# 64 "/usr/include/sys/sysmacros.h" 3 4 + +# 224 "/usr/include/sys/types.h" 2 3 4 + + + + + +typedef __blksize_t blksize_t; + + + + + + +typedef __blkcnt_t blkcnt_t; + + + +typedef __fsblkcnt_t fsblkcnt_t; + + + +typedef __fsfilcnt_t fsfilcnt_t; +# 271 "/usr/include/sys/types.h" 3 4 +# 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 +# 23 "/usr/include/bits/pthreadtypes.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 24 "/usr/include/bits/pthreadtypes.h" 2 3 4 +# 50 "/usr/include/bits/pthreadtypes.h" 3 4 +typedef unsigned long int pthread_t; + + +typedef union +{ + char __size[56]; + long int __align; +} pthread_attr_t; + + + +typedef struct __pthread_internal_list +{ + struct __pthread_internal_list *__prev; + struct __pthread_internal_list *__next; +} __pthread_list_t; +# 76 "/usr/include/bits/pthreadtypes.h" 3 4 +typedef union +{ + struct __pthread_mutex_s + { + int __lock; + unsigned int __count; + int __owner; + + unsigned int __nusers; + + + + int __kind; + + int __spins; + __pthread_list_t __list; +# 101 "/usr/include/bits/pthreadtypes.h" 3 4 + } __data; + char __size[40]; + long int __align; +} pthread_mutex_t; + +typedef union +{ + char __size[4]; + int __align; +} pthread_mutexattr_t; + + + + +typedef union +{ + struct + { + int __lock; + unsigned int __futex; + __extension__ unsigned long long int __total_seq; + __extension__ unsigned long long int __wakeup_seq; + __extension__ unsigned long long int __woken_seq; + void *__mutex; + unsigned int __nwaiters; + unsigned int __broadcast_seq; + } __data; + char __size[48]; + __extension__ long long int __align; +} pthread_cond_t; + +typedef union +{ + char __size[4]; + int __align; +} pthread_condattr_t; + + + +typedef unsigned int pthread_key_t; + + + +typedef int pthread_once_t; + + + + + +typedef union +{ + + struct + { + int __lock; + unsigned int __nr_readers; + unsigned int __readers_wakeup; + unsigned int __writer_wakeup; + unsigned int __nr_readers_queued; + unsigned int __nr_writers_queued; + int __writer; + int __shared; + unsigned long int __pad1; + unsigned long int __pad2; + + + unsigned int __flags; + } __data; +# 187 "/usr/include/bits/pthreadtypes.h" 3 4 + char __size[56]; + long int __align; +} pthread_rwlock_t; + +typedef union +{ + char __size[8]; + long int __align; +} pthread_rwlockattr_t; + + + + + +typedef volatile int pthread_spinlock_t; + + + + +typedef union +{ + char __size[32]; + long int __align; +} pthread_barrier_t; + +typedef union +{ + char __size[4]; + int __align; +} pthread_barrierattr_t; +# 272 "/usr/include/sys/types.h" 2 3 4 + + + +# 321 "/usr/include/stdlib.h" 2 3 4 + + + + + + +extern long int random (void) __attribute__ ((__nothrow__)); + + +extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__)); + + + + + +extern char *initstate (unsigned int __seed, char *__statebuf, + size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); + + + +extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + + + + + + +struct random_data + { + int32_t *fptr; + int32_t *rptr; + int32_t *state; + int rand_type; + int rand_deg; + int rand_sep; + int32_t *end_ptr; + }; + +extern int random_r (struct random_data *__restrict __buf, + int32_t *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + +extern int srandom_r (unsigned int __seed, struct random_data *__buf) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); + +extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, + size_t __statelen, + struct random_data *__restrict __buf) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))); + +extern int setstate_r (char *__restrict __statebuf, + struct random_data *__restrict __buf) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + + + + + + +extern int rand (void) __attribute__ ((__nothrow__)); + +extern void srand (unsigned int __seed) __attribute__ ((__nothrow__)); + + + + +extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__)); + + + + + + + +extern double drand48 (void) __attribute__ ((__nothrow__)); +extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + +extern long int lrand48 (void) __attribute__ ((__nothrow__)); +extern long int nrand48 (unsigned short int __xsubi[3]) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + +extern long int mrand48 (void) __attribute__ ((__nothrow__)); +extern long int jrand48 (unsigned short int __xsubi[3]) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + +extern void srand48 (long int __seedval) __attribute__ ((__nothrow__)); +extern unsigned short int *seed48 (unsigned short int __seed16v[3]) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); +extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + + + + +struct drand48_data + { + unsigned short int __x[3]; + unsigned short int __old_x[3]; + unsigned short int __c; + unsigned short int __init; + unsigned long long int __a; + }; + + +extern int drand48_r (struct drand48_data *__restrict __buffer, + double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); +extern int erand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int lrand48_r (struct drand48_data *__restrict __buffer, + long int *__restrict __result) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); +extern int nrand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + long int *__restrict __result) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int mrand48_r (struct drand48_data *__restrict __buffer, + long int *__restrict __result) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); +extern int jrand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + long int *__restrict __result) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int srand48_r (long int __seedval, struct drand48_data *__buffer) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); + +extern int seed48_r (unsigned short int __seed16v[3], + struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + +extern int lcong48_r (unsigned short int __param[7], + struct drand48_data *__buffer) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + + + + + + + + + +extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; + +extern void *calloc (size_t __nmemb, size_t __size) + __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; + + + + + + + + + + +extern void *realloc (void *__ptr, size_t __size) + __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); + +extern void free (void *__ptr) __attribute__ ((__nothrow__)); + + + + +extern void cfree (void *__ptr) __attribute__ ((__nothrow__)); + + + +# 1 "/usr/include/alloca.h" 1 3 4 +# 25 "/usr/include/alloca.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.2/include/stddef.h" 1 3 4 +# 26 "/usr/include/alloca.h" 2 3 4 + + + + + + + +extern void *alloca (size_t __size) __attribute__ ((__nothrow__)); + + + + + + +# 498 "/usr/include/stdlib.h" 2 3 4 + + + + + +extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) ; + + + + +extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; + + + + +extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); + + + +extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); +# 531 "/usr/include/stdlib.h" 3 4 + + + + + +extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + + + + + +extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); +# 554 "/usr/include/stdlib.h" 3 4 + + + + + + +extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); + + + + + + +extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; + + + + +extern char *__secure_getenv (__const char *__name) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; + + + + + +extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + + + + +extern int setenv (__const char *__name, __const char *__value, int __replace) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); + + +extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + + + + + +extern int clearenv (void) __attribute__ ((__nothrow__)); +# 606 "/usr/include/stdlib.h" 3 4 +extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; +# 620 "/usr/include/stdlib.h" 3 4 +extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ; +# 642 "/usr/include/stdlib.h" 3 4 +extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ; +# 663 "/usr/include/stdlib.h" 3 4 +extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; +# 712 "/usr/include/stdlib.h" 3 4 + + + + + +extern int system (__const char *__command) ; + +# 734 "/usr/include/stdlib.h" 3 4 +extern char *realpath (__const char *__restrict __name, + char *__restrict __resolved) __attribute__ ((__nothrow__)) ; + + + + + + +typedef int (*__compar_fn_t) (__const void *, __const void *); +# 752 "/usr/include/stdlib.h" 3 4 + + + +extern void *bsearch (__const void *__key, __const void *__base, + size_t __nmemb, size_t __size, __compar_fn_t __compar) + __attribute__ ((__nonnull__ (1, 2, 5))) ; + + + +extern void qsort (void *__base, size_t __nmemb, size_t __size, + __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); +# 771 "/usr/include/stdlib.h" 3 4 +extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; +extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; + + + +__extension__ extern long long int llabs (long long int __x) + __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; + + + + + + + +extern div_t div (int __numer, int __denom) + __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; +extern ldiv_t ldiv (long int __numer, long int __denom) + __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; + + + + +__extension__ extern lldiv_t lldiv (long long int __numer, + long long int __denom) + __attribute__ ((__nothrow__)) __attribute__ ((__const__)) ; + +# 808 "/usr/include/stdlib.h" 3 4 +extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; + + + + +extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; + + + + +extern char *gcvt (double __value, int __ndigit, char *__buf) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ; + + + + +extern char *qecvt (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; +extern char *qfcvt (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) ; +extern char *qgcvt (long double __value, int __ndigit, char *__buf) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) ; + + + + +extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign, char *__restrict __buf, + size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); +extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign, char *__restrict __buf, + size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); + +extern int qecvt_r (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign, + char *__restrict __buf, size_t __len) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); +extern int qfcvt_r (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign, + char *__restrict __buf, size_t __len) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); + + + + + + + +extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__)) ; + + +extern int mbtowc (wchar_t *__restrict __pwc, + __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) ; + + +extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) ; + + + +extern size_t mbstowcs (wchar_t *__restrict __pwcs, + __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)); + +extern size_t wcstombs (char *__restrict __s, + __const wchar_t *__restrict __pwcs, size_t __n) + __attribute__ ((__nothrow__)); + + + + + + + + +extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; +# 896 "/usr/include/stdlib.h" 3 4 +extern int getsubopt (char **__restrict __optionp, + char *__const *__restrict __tokens, + char **__restrict __valuep) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))) ; +# 948 "/usr/include/stdlib.h" 3 4 +extern int getloadavg (double __loadavg[], int __nelem) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); +# 964 "/usr/include/stdlib.h" 3 4 + +# 28 "manage.c" 2 +# 1 "copyright.h" 1 +# 29 "copyright.h" +static char copyright[] = ""; +# 29 "manage.c" 2 + +# 1 "basetype.h" 1 +# 38 "basetype.h" +# 1 "std_defs.h" 1 +# 42 "std_defs.h" +typedef int bool; + +typedef char *pointer; +typedef void (*VoidFunc)(); +# 121 "std_defs.h" +# 1 "/usr/include/X11/Xos.h" 1 3 4 +# 36 "/usr/include/X11/Xos.h" 3 4 +# 1 "/usr/include/X11/Xosdefs.h" 1 3 4 +# 37 "/usr/include/X11/Xos.h" 2 3 4 +# 62 "/usr/include/X11/Xos.h" 3 4 +# 1 "/usr/include/string.h" 1 3 4 +# 29 "/usr/include/string.h" 3 4 + + + + + +# 1 "/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.2/include/stddef.h" 1 3 4 +# 35 "/usr/include/string.h" 2 3 4 + + + + + + + + + +extern void *memcpy (void *__restrict __dest, + __const void *__restrict __src, size_t __n) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern void *memmove (void *__dest, __const void *__src, size_t __n) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + + + + + + +extern void *memccpy (void *__restrict __dest, __const void *__restrict __src, + int __c, size_t __n) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + + + + + +extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + +extern int memcmp (__const void *__s1, __const void *__s2, size_t __n) + __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 95 "/usr/include/string.h" 3 4 +extern void *memchr (__const void *__s, int __c, size_t __n) + __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + +# 126 "/usr/include/string.h" 3 4 + + +extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + +extern char *strncpy (char *__restrict __dest, + __const char *__restrict __src, size_t __n) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern char *strcat (char *__restrict __dest, __const char *__restrict __src) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + +extern char *strncat (char *__restrict __dest, __const char *__restrict __src, + size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int strcmp (__const char *__s1, __const char *__s2) + __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + +extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) + __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int strcoll (__const char *__s1, __const char *__s2) + __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + +extern size_t strxfrm (char *__restrict __dest, + __const char *__restrict __src, size_t __n) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); + + + + + + +# 1 "/usr/include/xlocale.h" 1 3 4 +# 28 "/usr/include/xlocale.h" 3 4 +typedef struct __locale_struct +{ + + struct __locale_data *__locales[13]; + + + const unsigned short int *__ctype_b; + const int *__ctype_tolower; + const int *__ctype_toupper; + + + const char *__names[13]; +} *__locale_t; + + +typedef __locale_t locale_t; +# 163 "/usr/include/string.h" 2 3 4 + + +extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l) + __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); + +extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n, + __locale_t __l) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))); + + + + + +extern char *strdup (__const char *__s) + __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); + + + + + + +extern char *strndup (__const char *__string, size_t __n) + __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); +# 210 "/usr/include/string.h" 3 4 + +# 235 "/usr/include/string.h" 3 4 +extern char *strchr (__const char *__s, int __c) + __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 262 "/usr/include/string.h" 3 4 +extern char *strrchr (__const char *__s, int __c) + __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + +# 281 "/usr/include/string.h" 3 4 + + + +extern size_t strcspn (__const char *__s, __const char *__reject) + __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern size_t strspn (__const char *__s, __const char *__accept) + __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 314 "/usr/include/string.h" 3 4 +extern char *strpbrk (__const char *__s, __const char *__accept) + __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 342 "/usr/include/string.h" 3 4 +extern char *strstr (__const char *__haystack, __const char *__needle) + __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern char *strtok (char *__restrict __s, __const char *__restrict __delim) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); + + + + +extern char *__strtok_r (char *__restrict __s, + __const char *__restrict __delim, + char **__restrict __save_ptr) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); + +extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, + char **__restrict __save_ptr) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); +# 397 "/usr/include/string.h" 3 4 + + +extern size_t strlen (__const char *__s) + __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + + +extern size_t strnlen (__const char *__string, size_t __maxlen) + __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + + +extern char *strerror (int __errnum) __attribute__ ((__nothrow__)); + +# 427 "/usr/include/string.h" 3 4 +extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__)) + + __attribute__ ((__nonnull__ (2))); +# 445 "/usr/include/string.h" 3 4 +extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__)); + + + + + +extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + + +extern void bcopy (__const void *__src, void *__dest, size_t __n) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + +extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) + __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 489 "/usr/include/string.h" 3 4 +extern char *index (__const char *__s, int __c) + __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 517 "/usr/include/string.h" 3 4 +extern char *rindex (__const char *__s, int __c) + __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + +extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); +# 536 "/usr/include/string.h" 3 4 +extern int strcasecmp (__const char *__s1, __const char *__s2) + __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) + __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 559 "/usr/include/string.h" 3 4 +extern char *strsep (char **__restrict __stringp, + __const char *__restrict __delim) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern char *strsignal (int __sig) __attribute__ ((__nothrow__)); + + +extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); +extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + + + +extern char *__stpncpy (char *__restrict __dest, + __const char *__restrict __src, size_t __n) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); +extern char *stpncpy (char *__restrict __dest, + __const char *__restrict __src, size_t __n) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); +# 646 "/usr/include/string.h" 3 4 + +# 63 "/usr/include/X11/Xos.h" 2 3 4 +# 88 "/usr/include/X11/Xos.h" 3 4 +# 1 "/usr/include/fcntl.h" 1 3 4 +# 30 "/usr/include/fcntl.h" 3 4 + + + + +# 1 "/usr/include/bits/fcntl.h" 1 3 4 +# 26 "/usr/include/bits/fcntl.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 27 "/usr/include/bits/fcntl.h" 2 3 4 +# 168 "/usr/include/bits/fcntl.h" 3 4 +struct flock + { + short int l_type; + short int l_whence; + + __off_t l_start; + __off_t l_len; + + + + + __pid_t l_pid; + }; +# 266 "/usr/include/bits/fcntl.h" 3 4 + +# 340 "/usr/include/bits/fcntl.h" 3 4 + +# 35 "/usr/include/fcntl.h" 2 3 4 + + + + + +# 1 "/usr/include/time.h" 1 3 4 +# 41 "/usr/include/fcntl.h" 2 3 4 +# 1 "/usr/include/bits/stat.h" 1 3 4 +# 46 "/usr/include/bits/stat.h" 3 4 +struct stat + { + __dev_t st_dev; + + + + + __ino_t st_ino; + + + + + + + + __nlink_t st_nlink; + __mode_t st_mode; + + __uid_t st_uid; + __gid_t st_gid; + + int __pad0; + + __dev_t st_rdev; + + + + + __off_t st_size; + + + + __blksize_t st_blksize; + + __blkcnt_t st_blocks; +# 91 "/usr/include/bits/stat.h" 3 4 + struct timespec st_atim; + struct timespec st_mtim; + struct timespec st_ctim; +# 106 "/usr/include/bits/stat.h" 3 4 + long int __unused[3]; +# 115 "/usr/include/bits/stat.h" 3 4 + }; +# 42 "/usr/include/fcntl.h" 2 3 4 +# 125 "/usr/include/fcntl.h" 3 4 +extern int fcntl (int __fd, int __cmd, ...); +# 134 "/usr/include/fcntl.h" 3 4 +extern int open (__const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1))); +# 158 "/usr/include/fcntl.h" 3 4 +extern int openat (int __fd, __const char *__file, int __oflag, ...) + __attribute__ ((__nonnull__ (2))); +# 180 "/usr/include/fcntl.h" 3 4 +extern int creat (__const char *__file, __mode_t __mode) __attribute__ ((__nonnull__ (1))); +# 209 "/usr/include/fcntl.h" 3 4 +extern int lockf (int __fd, int __cmd, __off_t __len); +# 226 "/usr/include/fcntl.h" 3 4 +extern int posix_fadvise (int __fd, __off_t __offset, __off_t __len, + int __advise) __attribute__ ((__nothrow__)); +# 248 "/usr/include/fcntl.h" 3 4 +extern int posix_fallocate (int __fd, __off_t __offset, __off_t __len); +# 270 "/usr/include/fcntl.h" 3 4 + +# 89 "/usr/include/X11/Xos.h" 2 3 4 +# 1 "/usr/include/unistd.h" 1 3 4 +# 28 "/usr/include/unistd.h" 3 4 + +# 203 "/usr/include/unistd.h" 3 4 +# 1 "/usr/include/bits/posix_opt.h" 1 3 4 +# 204 "/usr/include/unistd.h" 2 3 4 + + + +# 1 "/usr/include/bits/environments.h" 1 3 4 +# 23 "/usr/include/bits/environments.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 24 "/usr/include/bits/environments.h" 2 3 4 +# 208 "/usr/include/unistd.h" 2 3 4 +# 227 "/usr/include/unistd.h" 3 4 +# 1 "/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.2/include/stddef.h" 1 3 4 +# 228 "/usr/include/unistd.h" 2 3 4 +# 256 "/usr/include/unistd.h" 3 4 +typedef __useconds_t useconds_t; +# 268 "/usr/include/unistd.h" 3 4 +typedef __intptr_t intptr_t; + + + + + + +typedef __socklen_t socklen_t; +# 288 "/usr/include/unistd.h" 3 4 +extern int access (__const char *__name, int __type) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); +# 305 "/usr/include/unistd.h" 3 4 +extern int faccessat (int __fd, __const char *__file, int __type, int __flag) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ; +# 331 "/usr/include/unistd.h" 3 4 +extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__)); +# 350 "/usr/include/unistd.h" 3 4 +extern int close (int __fd); + + + + + + +extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ; + + + + + +extern ssize_t write (int __fd, __const void *__buf, size_t __n) ; +# 373 "/usr/include/unistd.h" 3 4 +extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, + __off_t __offset) ; + + + + + + +extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n, + __off_t __offset) ; +# 414 "/usr/include/unistd.h" 3 4 +extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__)) ; +# 429 "/usr/include/unistd.h" 3 4 +extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__)); +# 441 "/usr/include/unistd.h" 3 4 +extern unsigned int sleep (unsigned int __seconds); + + + + + + + +extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval) + __attribute__ ((__nothrow__)); + + + + + + +extern int usleep (__useconds_t __useconds); +# 466 "/usr/include/unistd.h" 3 4 +extern int pause (void); + + + +extern int chown (__const char *__file, __uid_t __owner, __gid_t __group) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; + + + +extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__)) ; + + + + +extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; + + + + + + +extern int fchownat (int __fd, __const char *__file, __uid_t __owner, + __gid_t __group, int __flag) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ; + + + +extern int chdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; + + + +extern int fchdir (int __fd) __attribute__ ((__nothrow__)) ; +# 508 "/usr/include/unistd.h" 3 4 +extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__)) ; +# 522 "/usr/include/unistd.h" 3 4 +extern char *getwd (char *__buf) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ; + + + + +extern int dup (int __fd) __attribute__ ((__nothrow__)) ; + + +extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__)); +# 540 "/usr/include/unistd.h" 3 4 +extern char **__environ; + + + + + + + +extern int execve (__const char *__path, char *__const __argv[], + char *__const __envp[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[]) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); + + + + +extern int execv (__const char *__path, char *__const __argv[]) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + + + +extern int execle (__const char *__path, __const char *__arg, ...) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + + + +extern int execl (__const char *__path, __const char *__arg, ...) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + + + +extern int execvp (__const char *__file, char *__const __argv[]) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern int execlp (__const char *__file, __const char *__arg, ...) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); +# 595 "/usr/include/unistd.h" 3 4 +extern int nice (int __inc) __attribute__ ((__nothrow__)) ; + + + + +extern void _exit (int __status) __attribute__ ((__noreturn__)); + + + + + +# 1 "/usr/include/bits/confname.h" 1 3 4 +# 26 "/usr/include/bits/confname.h" 3 4 +enum + { + _PC_LINK_MAX, + + _PC_MAX_CANON, + + _PC_MAX_INPUT, + + _PC_NAME_MAX, + + _PC_PATH_MAX, + + _PC_PIPE_BUF, + + _PC_CHOWN_RESTRICTED, + + _PC_NO_TRUNC, + + _PC_VDISABLE, + + _PC_SYNC_IO, + + _PC_ASYNC_IO, + + _PC_PRIO_IO, + + _PC_SOCK_MAXBUF, + + _PC_FILESIZEBITS, + + _PC_REC_INCR_XFER_SIZE, + + _PC_REC_MAX_XFER_SIZE, + + _PC_REC_MIN_XFER_SIZE, + + _PC_REC_XFER_ALIGN, + + _PC_ALLOC_SIZE_MIN, + + _PC_SYMLINK_MAX, + + _PC_2_SYMLINKS + + }; + + +enum + { + _SC_ARG_MAX, + + _SC_CHILD_MAX, + + _SC_CLK_TCK, + + _SC_NGROUPS_MAX, + + _SC_OPEN_MAX, + + _SC_STREAM_MAX, + + _SC_TZNAME_MAX, + + _SC_JOB_CONTROL, + + _SC_SAVED_IDS, + + _SC_REALTIME_SIGNALS, + + _SC_PRIORITY_SCHEDULING, + + _SC_TIMERS, + + _SC_ASYNCHRONOUS_IO, + + _SC_PRIORITIZED_IO, + + _SC_SYNCHRONIZED_IO, + + _SC_FSYNC, + + _SC_MAPPED_FILES, + + _SC_MEMLOCK, + + _SC_MEMLOCK_RANGE, + + _SC_MEMORY_PROTECTION, + + _SC_MESSAGE_PASSING, + + _SC_SEMAPHORES, + + _SC_SHARED_MEMORY_OBJECTS, + + _SC_AIO_LISTIO_MAX, + + _SC_AIO_MAX, + + _SC_AIO_PRIO_DELTA_MAX, + + _SC_DELAYTIMER_MAX, + + _SC_MQ_OPEN_MAX, + + _SC_MQ_PRIO_MAX, + + _SC_VERSION, + + _SC_PAGESIZE, + + + _SC_RTSIG_MAX, + + _SC_SEM_NSEMS_MAX, + + _SC_SEM_VALUE_MAX, + + _SC_SIGQUEUE_MAX, + + _SC_TIMER_MAX, + + + + + _SC_BC_BASE_MAX, + + _SC_BC_DIM_MAX, + + _SC_BC_SCALE_MAX, + + _SC_BC_STRING_MAX, + + _SC_COLL_WEIGHTS_MAX, + + _SC_EQUIV_CLASS_MAX, + + _SC_EXPR_NEST_MAX, + + _SC_LINE_MAX, + + _SC_RE_DUP_MAX, + + _SC_CHARCLASS_NAME_MAX, + + + _SC_2_VERSION, + + _SC_2_C_BIND, + + _SC_2_C_DEV, + + _SC_2_FORT_DEV, + + _SC_2_FORT_RUN, + + _SC_2_SW_DEV, + + _SC_2_LOCALEDEF, + + + _SC_PII, + + _SC_PII_XTI, + + _SC_PII_SOCKET, + + _SC_PII_INTERNET, + + _SC_PII_OSI, + + _SC_POLL, + + _SC_SELECT, + + _SC_UIO_MAXIOV, + + _SC_IOV_MAX = _SC_UIO_MAXIOV, + + _SC_PII_INTERNET_STREAM, + + _SC_PII_INTERNET_DGRAM, + + _SC_PII_OSI_COTS, + + _SC_PII_OSI_CLTS, + + _SC_PII_OSI_M, + + _SC_T_IOV_MAX, + + + + _SC_THREADS, + + _SC_THREAD_SAFE_FUNCTIONS, + + _SC_GETGR_R_SIZE_MAX, + + _SC_GETPW_R_SIZE_MAX, + + _SC_LOGIN_NAME_MAX, + + _SC_TTY_NAME_MAX, + + _SC_THREAD_DESTRUCTOR_ITERATIONS, + + _SC_THREAD_KEYS_MAX, + + _SC_THREAD_STACK_MIN, + + _SC_THREAD_THREADS_MAX, + + _SC_THREAD_ATTR_STACKADDR, + + _SC_THREAD_ATTR_STACKSIZE, + + _SC_THREAD_PRIORITY_SCHEDULING, + + _SC_THREAD_PRIO_INHERIT, + + _SC_THREAD_PRIO_PROTECT, + + _SC_THREAD_PROCESS_SHARED, + + + _SC_NPROCESSORS_CONF, + + _SC_NPROCESSORS_ONLN, + + _SC_PHYS_PAGES, + + _SC_AVPHYS_PAGES, + + _SC_ATEXIT_MAX, + + _SC_PASS_MAX, + + + _SC_XOPEN_VERSION, + + _SC_XOPEN_XCU_VERSION, + + _SC_XOPEN_UNIX, + + _SC_XOPEN_CRYPT, + + _SC_XOPEN_ENH_I18N, + + _SC_XOPEN_SHM, + + + _SC_2_CHAR_TERM, + + _SC_2_C_VERSION, + + _SC_2_UPE, + + + _SC_XOPEN_XPG2, + + _SC_XOPEN_XPG3, + + _SC_XOPEN_XPG4, + + + _SC_CHAR_BIT, + + _SC_CHAR_MAX, + + _SC_CHAR_MIN, + + _SC_INT_MAX, + + _SC_INT_MIN, + + _SC_LONG_BIT, + + _SC_WORD_BIT, + + _SC_MB_LEN_MAX, + + _SC_NZERO, + + _SC_SSIZE_MAX, + + _SC_SCHAR_MAX, + + _SC_SCHAR_MIN, + + _SC_SHRT_MAX, + + _SC_SHRT_MIN, + + _SC_UCHAR_MAX, + + _SC_UINT_MAX, + + _SC_ULONG_MAX, + + _SC_USHRT_MAX, + + + _SC_NL_ARGMAX, + + _SC_NL_LANGMAX, + + _SC_NL_MSGMAX, + + _SC_NL_NMAX, + + _SC_NL_SETMAX, + + _SC_NL_TEXTMAX, + + + _SC_XBS5_ILP32_OFF32, + + _SC_XBS5_ILP32_OFFBIG, + + _SC_XBS5_LP64_OFF64, + + _SC_XBS5_LPBIG_OFFBIG, + + + _SC_XOPEN_LEGACY, + + _SC_XOPEN_REALTIME, + + _SC_XOPEN_REALTIME_THREADS, + + + _SC_ADVISORY_INFO, + + _SC_BARRIERS, + + _SC_BASE, + + _SC_C_LANG_SUPPORT, + + _SC_C_LANG_SUPPORT_R, + + _SC_CLOCK_SELECTION, + + _SC_CPUTIME, + + _SC_THREAD_CPUTIME, + + _SC_DEVICE_IO, + + _SC_DEVICE_SPECIFIC, + + _SC_DEVICE_SPECIFIC_R, + + _SC_FD_MGMT, + + _SC_FIFO, + + _SC_PIPE, + + _SC_FILE_ATTRIBUTES, + + _SC_FILE_LOCKING, + + _SC_FILE_SYSTEM, + + _SC_MONOTONIC_CLOCK, + + _SC_MULTI_PROCESS, + + _SC_SINGLE_PROCESS, + + _SC_NETWORKING, + + _SC_READER_WRITER_LOCKS, + + _SC_SPIN_LOCKS, + + _SC_REGEXP, + + _SC_REGEX_VERSION, + + _SC_SHELL, + + _SC_SIGNALS, + + _SC_SPAWN, + + _SC_SPORADIC_SERVER, + + _SC_THREAD_SPORADIC_SERVER, + + _SC_SYSTEM_DATABASE, + + _SC_SYSTEM_DATABASE_R, + + _SC_TIMEOUTS, + + _SC_TYPED_MEMORY_OBJECTS, + + _SC_USER_GROUPS, + + _SC_USER_GROUPS_R, + + _SC_2_PBS, + + _SC_2_PBS_ACCOUNTING, + + _SC_2_PBS_LOCATE, + + _SC_2_PBS_MESSAGE, + + _SC_2_PBS_TRACK, + + _SC_SYMLOOP_MAX, + + _SC_STREAMS, + + _SC_2_PBS_CHECKPOINT, + + + _SC_V6_ILP32_OFF32, + + _SC_V6_ILP32_OFFBIG, + + _SC_V6_LP64_OFF64, + + _SC_V6_LPBIG_OFFBIG, + + + _SC_HOST_NAME_MAX, + + _SC_TRACE, + + _SC_TRACE_EVENT_FILTER, + + _SC_TRACE_INHERIT, + + _SC_TRACE_LOG, + + + _SC_LEVEL1_ICACHE_SIZE, + + _SC_LEVEL1_ICACHE_ASSOC, + + _SC_LEVEL1_ICACHE_LINESIZE, + + _SC_LEVEL1_DCACHE_SIZE, + + _SC_LEVEL1_DCACHE_ASSOC, + + _SC_LEVEL1_DCACHE_LINESIZE, + + _SC_LEVEL2_CACHE_SIZE, + + _SC_LEVEL2_CACHE_ASSOC, + + _SC_LEVEL2_CACHE_LINESIZE, + + _SC_LEVEL3_CACHE_SIZE, + + _SC_LEVEL3_CACHE_ASSOC, + + _SC_LEVEL3_CACHE_LINESIZE, + + _SC_LEVEL4_CACHE_SIZE, + + _SC_LEVEL4_CACHE_ASSOC, + + _SC_LEVEL4_CACHE_LINESIZE, + + + + _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, + + _SC_RAW_SOCKETS, + + + _SC_V7_ILP32_OFF32, + + _SC_V7_ILP32_OFFBIG, + + _SC_V7_LP64_OFF64, + + _SC_V7_LPBIG_OFFBIG, + + + _SC_SS_REPL_MAX, + + + _SC_TRACE_EVENT_NAME_MAX, + + _SC_TRACE_NAME_MAX, + + _SC_TRACE_SYS_MAX, + + _SC_TRACE_USER_EVENT_MAX, + + + _SC_XOPEN_STREAMS, + + + _SC_THREAD_ROBUST_PRIO_INHERIT, + + _SC_THREAD_ROBUST_PRIO_PROTECT + + }; + + +enum + { + _CS_PATH, + + + _CS_V6_WIDTH_RESTRICTED_ENVS, + + + + _CS_GNU_LIBC_VERSION, + + _CS_GNU_LIBPTHREAD_VERSION, + + + _CS_V5_WIDTH_RESTRICTED_ENVS, + + + + _CS_V7_WIDTH_RESTRICTED_ENVS, + + + + _CS_LFS_CFLAGS = 1000, + + _CS_LFS_LDFLAGS, + + _CS_LFS_LIBS, + + _CS_LFS_LINTFLAGS, + + _CS_LFS64_CFLAGS, + + _CS_LFS64_LDFLAGS, + + _CS_LFS64_LIBS, + + _CS_LFS64_LINTFLAGS, + + + _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, + + _CS_XBS5_ILP32_OFF32_LDFLAGS, + + _CS_XBS5_ILP32_OFF32_LIBS, + + _CS_XBS5_ILP32_OFF32_LINTFLAGS, + + _CS_XBS5_ILP32_OFFBIG_CFLAGS, + + _CS_XBS5_ILP32_OFFBIG_LDFLAGS, + + _CS_XBS5_ILP32_OFFBIG_LIBS, + + _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, + + _CS_XBS5_LP64_OFF64_CFLAGS, + + _CS_XBS5_LP64_OFF64_LDFLAGS, + + _CS_XBS5_LP64_OFF64_LIBS, + + _CS_XBS5_LP64_OFF64_LINTFLAGS, + + _CS_XBS5_LPBIG_OFFBIG_CFLAGS, + + _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, + + _CS_XBS5_LPBIG_OFFBIG_LIBS, + + _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, + + + _CS_POSIX_V6_ILP32_OFF32_CFLAGS, + + _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, + + _CS_POSIX_V6_ILP32_OFF32_LIBS, + + _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, + + _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, + + _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, + + _CS_POSIX_V6_ILP32_OFFBIG_LIBS, + + _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, + + _CS_POSIX_V6_LP64_OFF64_CFLAGS, + + _CS_POSIX_V6_LP64_OFF64_LDFLAGS, + + _CS_POSIX_V6_LP64_OFF64_LIBS, + + _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, + + _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, + + _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, + + _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, + + _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS, + + + _CS_POSIX_V7_ILP32_OFF32_CFLAGS, + + _CS_POSIX_V7_ILP32_OFF32_LDFLAGS, + + _CS_POSIX_V7_ILP32_OFF32_LIBS, + + _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS, + + _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS, + + _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS, + + _CS_POSIX_V7_ILP32_OFFBIG_LIBS, + + _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS, + + _CS_POSIX_V7_LP64_OFF64_CFLAGS, + + _CS_POSIX_V7_LP64_OFF64_LDFLAGS, + + _CS_POSIX_V7_LP64_OFF64_LIBS, + + _CS_POSIX_V7_LP64_OFF64_LINTFLAGS, + + _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS, + + _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS, + + _CS_POSIX_V7_LPBIG_OFFBIG_LIBS, + + _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS, + + + _CS_V6_ENV, + + _CS_V7_ENV + + }; +# 607 "/usr/include/unistd.h" 2 3 4 + + +extern long int pathconf (__const char *__path, int __name) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + +extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__)); + + +extern long int sysconf (int __name) __attribute__ ((__nothrow__)); + + + +extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__)); + + + + +extern __pid_t getpid (void) __attribute__ ((__nothrow__)); + + +extern __pid_t getppid (void) __attribute__ ((__nothrow__)); + + + + +extern __pid_t getpgrp (void) __attribute__ ((__nothrow__)); +# 643 "/usr/include/unistd.h" 3 4 +extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__)); + +extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__)); + + + + + + +extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__)); +# 669 "/usr/include/unistd.h" 3 4 +extern int setpgrp (void) __attribute__ ((__nothrow__)); +# 686 "/usr/include/unistd.h" 3 4 +extern __pid_t setsid (void) __attribute__ ((__nothrow__)); + + + +extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__)); + + + +extern __uid_t getuid (void) __attribute__ ((__nothrow__)); + + +extern __uid_t geteuid (void) __attribute__ ((__nothrow__)); + + +extern __gid_t getgid (void) __attribute__ ((__nothrow__)); + + +extern __gid_t getegid (void) __attribute__ ((__nothrow__)); + + + + +extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__)) ; +# 719 "/usr/include/unistd.h" 3 4 +extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__)); + + + + +extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__)); + + + + +extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__)); + + + + + + +extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__)); + + + + +extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__)); + + + + +extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__)); +# 775 "/usr/include/unistd.h" 3 4 +extern __pid_t fork (void) __attribute__ ((__nothrow__)); + + + + + + + +extern __pid_t vfork (void) __attribute__ ((__nothrow__)); + + + + + +extern char *ttyname (int __fd) __attribute__ ((__nothrow__)); + + + +extern int ttyname_r (int __fd, char *__buf, size_t __buflen) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) ; + + + +extern int isatty (int __fd) __attribute__ ((__nothrow__)); + + + + + +extern int ttyslot (void) __attribute__ ((__nothrow__)); + + + + +extern int link (__const char *__from, __const char *__to) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ; + + + + +extern int linkat (int __fromfd, __const char *__from, int __tofd, + __const char *__to, int __flags) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))) ; + + + + +extern int symlink (__const char *__from, __const char *__to) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ; + + + + +extern ssize_t readlink (__const char *__restrict __path, + char *__restrict __buf, size_t __len) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) ; + + + + +extern int symlinkat (__const char *__from, int __tofd, + __const char *__to) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) ; + + +extern ssize_t readlinkat (int __fd, __const char *__restrict __path, + char *__restrict __buf, size_t __len) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))) ; + + + +extern int unlink (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + + +extern int unlinkat (int __fd, __const char *__name, int __flag) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); + + + +extern int rmdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + + +extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__)); + + +extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__)); + + + + + + +extern char *getlogin (void); + + + + + + + +extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1))); + + + + +extern int setlogin (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); +# 890 "/usr/include/unistd.h" 3 4 +# 1 "/usr/include/getopt.h" 1 3 4 +# 59 "/usr/include/getopt.h" 3 4 +extern char *optarg; +# 73 "/usr/include/getopt.h" 3 4 +extern int optind; + + + + +extern int opterr; + + + +extern int optopt; +# 152 "/usr/include/getopt.h" 3 4 +extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) + __attribute__ ((__nothrow__)); +# 891 "/usr/include/unistd.h" 2 3 4 + + + + + + + +extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + + + + + +extern int sethostname (__const char *__name, size_t __len) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; + + + +extern int sethostid (long int __id) __attribute__ ((__nothrow__)) ; + + + + + +extern int getdomainname (char *__name, size_t __len) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; +extern int setdomainname (__const char *__name, size_t __len) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; + + + + + +extern int vhangup (void) __attribute__ ((__nothrow__)); + + +extern int revoke (__const char *__file) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; + + + + + + + +extern int profil (unsigned short int *__sample_buffer, size_t __size, + size_t __offset, unsigned int __scale) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + + + + +extern int acct (__const char *__name) __attribute__ ((__nothrow__)); + + + +extern char *getusershell (void) __attribute__ ((__nothrow__)); +extern void endusershell (void) __attribute__ ((__nothrow__)); +extern void setusershell (void) __attribute__ ((__nothrow__)); + + + + + +extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__)) ; + + + + + + +extern int chroot (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; + + + +extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1))); +# 976 "/usr/include/unistd.h" 3 4 +extern int fsync (int __fd); +# 990 "/usr/include/unistd.h" 3 4 +extern long int gethostid (void); + + +extern void sync (void) __attribute__ ((__nothrow__)); + + + + + +extern int getpagesize (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); + + + + +extern int getdtablesize (void) __attribute__ ((__nothrow__)); +# 1014 "/usr/include/unistd.h" 3 4 +extern int truncate (__const char *__file, __off_t __length) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) ; +# 1036 "/usr/include/unistd.h" 3 4 +extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__)) ; +# 1057 "/usr/include/unistd.h" 3 4 +extern int brk (void *__addr) __attribute__ ((__nothrow__)) ; + + + + + +extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__)); +# 1078 "/usr/include/unistd.h" 3 4 +extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__)); +# 1132 "/usr/include/unistd.h" 3 4 +extern int fdatasync (int __fildes); +# 1161 "/usr/include/unistd.h" 3 4 +extern char *ctermid (char *__s) __attribute__ ((__nothrow__)); +# 1170 "/usr/include/unistd.h" 3 4 + +# 90 "/usr/include/X11/Xos.h" 2 3 4 +# 119 "/usr/include/X11/Xos.h" 3 4 +# 1 "/usr/include/sys/time.h" 1 3 4 +# 27 "/usr/include/sys/time.h" 3 4 +# 1 "/usr/include/time.h" 1 3 4 +# 28 "/usr/include/sys/time.h" 2 3 4 + +# 1 "/usr/include/bits/time.h" 1 3 4 +# 30 "/usr/include/sys/time.h" 2 3 4 +# 39 "/usr/include/sys/time.h" 3 4 + +# 57 "/usr/include/sys/time.h" 3 4 +struct timezone + { + int tz_minuteswest; + int tz_dsttime; + }; + +typedef struct timezone *__restrict __timezone_ptr_t; +# 73 "/usr/include/sys/time.h" 3 4 +extern int gettimeofday (struct timeval *__restrict __tv, + __timezone_ptr_t __tz) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + + + +extern int settimeofday (__const struct timeval *__tv, + __const struct timezone *__tz) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + + + + +extern int adjtime (__const struct timeval *__delta, + struct timeval *__olddelta) __attribute__ ((__nothrow__)); + + + + +enum __itimer_which + { + + ITIMER_REAL = 0, + + + ITIMER_VIRTUAL = 1, + + + + ITIMER_PROF = 2 + + }; + + + +struct itimerval + { + + struct timeval it_interval; + + struct timeval it_value; + }; + + + + + + +typedef int __itimer_which_t; + + + + +extern int getitimer (__itimer_which_t __which, + struct itimerval *__value) __attribute__ ((__nothrow__)); + + + + +extern int setitimer (__itimer_which_t __which, + __const struct itimerval *__restrict __new, + struct itimerval *__restrict __old) __attribute__ ((__nothrow__)); + + + + +extern int utimes (__const char *__file, __const struct timeval __tvp[2]) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + + +extern int lutimes (__const char *__file, __const struct timeval __tvp[2]) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + +extern int futimes (int __fd, __const struct timeval __tvp[2]) __attribute__ ((__nothrow__)); +# 191 "/usr/include/sys/time.h" 3 4 + +# 120 "/usr/include/X11/Xos.h" 2 3 4 +# 1 "/usr/include/time.h" 1 3 4 +# 30 "/usr/include/time.h" 3 4 + + + + + + + + +# 1 "/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.2/include/stddef.h" 1 3 4 +# 39 "/usr/include/time.h" 2 3 4 + + + +# 1 "/usr/include/bits/time.h" 1 3 4 +# 43 "/usr/include/time.h" 2 3 4 +# 131 "/usr/include/time.h" 3 4 + + +struct tm +{ + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; + + + long int tm_gmtoff; + __const char *tm_zone; + + + + +}; + + + + + + + + +struct itimerspec + { + struct timespec it_interval; + struct timespec it_value; + }; + + +struct sigevent; +# 180 "/usr/include/time.h" 3 4 + + + +extern clock_t clock (void) __attribute__ ((__nothrow__)); + + +extern time_t time (time_t *__timer) __attribute__ ((__nothrow__)); + + +extern double difftime (time_t __time1, time_t __time0) + __attribute__ ((__nothrow__)) __attribute__ ((__const__)); + + +extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__)); + + + + + +extern size_t strftime (char *__restrict __s, size_t __maxsize, + __const char *__restrict __format, + __const struct tm *__restrict __tp) __attribute__ ((__nothrow__)); + +# 217 "/usr/include/time.h" 3 4 +extern size_t strftime_l (char *__restrict __s, size_t __maxsize, + __const char *__restrict __format, + __const struct tm *__restrict __tp, + __locale_t __loc) __attribute__ ((__nothrow__)); +# 230 "/usr/include/time.h" 3 4 + + + +extern struct tm *gmtime (__const time_t *__timer) __attribute__ ((__nothrow__)); + + + +extern struct tm *localtime (__const time_t *__timer) __attribute__ ((__nothrow__)); + + + + + +extern struct tm *gmtime_r (__const time_t *__restrict __timer, + struct tm *__restrict __tp) __attribute__ ((__nothrow__)); + + + +extern struct tm *localtime_r (__const time_t *__restrict __timer, + struct tm *__restrict __tp) __attribute__ ((__nothrow__)); + + + + + +extern char *asctime (__const struct tm *__tp) __attribute__ ((__nothrow__)); + + +extern char *ctime (__const time_t *__timer) __attribute__ ((__nothrow__)); + + + + + + + +extern char *asctime_r (__const struct tm *__restrict __tp, + char *__restrict __buf) __attribute__ ((__nothrow__)); + + +extern char *ctime_r (__const time_t *__restrict __timer, + char *__restrict __buf) __attribute__ ((__nothrow__)); + + + + +extern char *__tzname[2]; +extern int __daylight; +extern long int __timezone; + + + + +extern char *tzname[2]; + + + +extern void tzset (void) __attribute__ ((__nothrow__)); + + + +extern int daylight; +extern long int timezone; + + + + + +extern int stime (__const time_t *__when) __attribute__ ((__nothrow__)); +# 313 "/usr/include/time.h" 3 4 +extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__)); + + +extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__)); + + +extern int dysize (int __year) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); +# 328 "/usr/include/time.h" 3 4 +extern int nanosleep (__const struct timespec *__requested_time, + struct timespec *__remaining); + + + +extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__)); + + +extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__)); + + +extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp) + __attribute__ ((__nothrow__)); + + + + + + +extern int clock_nanosleep (clockid_t __clock_id, int __flags, + __const struct timespec *__req, + struct timespec *__rem); + + +extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__)); + + + + +extern int timer_create (clockid_t __clock_id, + struct sigevent *__restrict __evp, + timer_t *__restrict __timerid) __attribute__ ((__nothrow__)); + + +extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__)); + + +extern int timer_settime (timer_t __timerid, int __flags, + __const struct itimerspec *__restrict __value, + struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__)); + + +extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) + __attribute__ ((__nothrow__)); + + +extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__)); +# 417 "/usr/include/time.h" 3 4 + +# 121 "/usr/include/X11/Xos.h" 2 3 4 +# 146 "/usr/include/X11/Xos.h" 3 4 +# 1 "/usr/include/X11/Xarch.h" 1 3 4 +# 147 "/usr/include/X11/Xos.h" 2 3 4 +# 122 "std_defs.h" 2 +# 39 "basetype.h" 2 + + +typedef int Basetype; + +typedef struct +{ + Basetype width, + height; +} Size; + + +typedef struct +{ + Basetype left_x, + top_y, + right_x, + bottom_y; +} TWRectangle; + + +typedef enum +{ + Top, Bottom, Left, Right, + Top_Left, Top_Right, Bottom_Left, Bottom_Right, + NoSide +} Side; + + +typedef struct +{ + Basetype x, y; +} TWPoint; +# 31 "manage.c" 2 + +# 1 "userglobD.h" 1 +# 34 "userglobD.h" +# 1 "uservalsP.h" 1 +# 30 "uservalsP.h" +typedef enum +{ + Icon_None, + Icon_Top, Icon_Bottom, + Icon_Left, Icon_Right, + Icon_Middle +} Icon_Position; + + +typedef enum { + + ABS_MIN_WIDTH, + ABS_MIN_HEIGHT, + + RTL_LEFT_X, + RTL_TOP_Y, + + FULL_WIDTH, + FULL_HEIGHT, + + RTL_WIDTH, + RTL_HEIGHT, + + ICON_AREA_TOP, + ICON_AREA_BOTTOM, + ICON_AREA_LEFT, + ICON_AREA_RIGHT, + + BORDER_SIZE, + OUTER_BORDER_LINEWIDTH, + INNER_BORDER_LINEWIDTH, + + GADGET_WIDTH, + + GRAVITY, + + ICON_PLACEMENT, + SECONDARY_ICON_PLACEMENT, + + NEIGHBORHOOD_SHRINK_FACTOR, + + LENGTH_USER_GLOBAL_VALUES +} User_Global_Values; +# 35 "userglobD.h" 2 +# 1 "useroptsP.h" 1 +# 29 "useroptsP.h" +typedef enum { + + ACCEPT_NON_LISTENER_IN_BODY, + ACCEPT_NON_LISTENER_IN_BORDER, + ACCEPT_NON_LISTENER_IN_GADGET, + ACCEPT_NON_LISTENER_IN_HEADER, + + ALLOW_AGGRESSIVE_REPOPULATION, + + ALLOW_AUTO_SHRINK_ON_AUTO_REPOP, + ALLOW_AUTO_SHRINK_ON_EXPL_REPOP, + + ALLOW_AUTO_SHRINK_ON_EXCHANGE, + ALLOW_AUTO_CLOSE_ON_EXCHANGE, + + ALLOW_AUTOMATIC_SHRINK_BY_CLIENT, + ALLOW_AUTOMATIC_CLOSE_BY_CLIENT, + + ALLOW_LISTENER_TO_CLOSE, + ALLOW_LSNR_TO_CHANGE_BY_CLIENT, + ALLOW_LSNR_TO_CLOSE_BY_CLIENT, + + ALLOW_SHRINK_ON_AUTO_OPEN, + ALLOW_SHRINK_ON_CENTER_OPEN, + ALLOW_SHRINK_ON_CORNER_OPEN, + ALLOW_SHRINK_ON_RESIZE, + + AUTO_DESIRED_ENLARGE, + + AUTO_PLACE_ON_ICON_OPEN, + AUTO_PLACE_ON_MENU_OPEN, + AUTO_PLACE_ON_UNSIZED_OPEN, + + AUTO_PRORATE, + AUTO_PRORATE_LOCALLY, + + AUTO_REPOPULATE_LAST, + AUTO_REPOPULATE_ON_AUTO_UNZOOM, + AUTO_REPOPULATE_ON_CLOSE, + AUTO_REPOP_ON_DESKTOP_RESIZE, + AUTO_REPOP_ON_EXPLICIT_UNZOOM, + + BIASED_AUTO_PRORATE, + BIASED_EXPLICIT_PRORATE, + + BUTTON_MAKES_LISTENER_IN_BODY, + BUTTON_MAKES_LISTENER_IN_HEADER, + + CENTER_CURSOR_ON_MOVE, + CENTER_CURSOR_ON_RELOCATE, + + CLEAR_BODY_ON_REDRAW, + + CLOSE_IN_HEADER, + CLOSE_IN_CORNER_BORDER, + CLOSE_IN_SIDE_BORDER, + CLOSE_IN_MOVE_GADGET, + CLOSE_IN_ZOOM_GADGET, + + DESIRE_IN_HEADER, + DESIRE_IN_CORNER_BORDER, + DESIRE_IN_SIDE_BORDER, + DESIRE_IN_MOVE_GADGET, + DESIRE_IN_ZOOM_GADGET, + + DISTINGUISH_CORNER_BORDERS, + DISTNGSH_CORNER_BORDERS_BY_INV, + + DRAW_X_ON_MOVE, + DRAW_X_ON_OPEN, + DRAW_X_ON_RESIZE, + + ENABLE_AUTO_REPOP_DURING_LAYOUT, + ENABLE_AUTO_SIZING_DURING_LAYOUT, + + ENLARGE_IN_HEADER, + ENLARGE_IN_CORNER_BORDER, + ENLARGE_IN_SIDE_BORDER, + ENLARGE_IN_MOVE_GADGET, + ENLARGE_IN_ZOOM_GADGET, + + EXCHANGE_IN_HEADER, + EXCHANGE_IN_ICON, + EXCHANGE_IN_CORNER_BORDER, + EXCHANGE_IN_SIDE_BORDER, + EXCHANGE_IN_MOVE_GADGET, + EXCHANGE_IN_ZOOM_GADGET, + + FULL_SCREEN, + + INCL_BGRND_MENU_IN_WINDOW_MENU, + + KEY_MAKES_LISTENER_IN_BODY, + KEY_MAKES_LISTENER_IN_BORDER, + KEY_MAKES_LISTENER_IN_GADGET, + KEY_MAKES_LISTENER_IN_HEADER, + + FOCUS_FOLLOWS_CURSOR, + + MANAGER_MENU_IN_BODY, + MANAGER_MENU_IN_CORNER_BORDER, + MANAGER_MENU_IN_HEADER, + MANAGER_MENU_IN_ICON, + MANAGER_MENU_IN_SIDE_BORDER, + MANAGER_MENU_IN_MOVE_GADGET, + MANAGER_MENU_IN_ZOOM_GADGET, + + MIDDLE_MENU, + + MOVE_CURSOR_ON_CLIENT_OPEN, + MOVE_CURSOR_ON_MANUAL_OPEN, + MOVE_CURSOR_TO_ICON_ON_CLOSE, + + MOVE_IN_HEADER, + MOVE_IN_ICON, + MOVE_IN_CORNER_BORDER, + MOVE_IN_SIDE_BORDER, + MOVE_IN_MOVE_GADGET, + MOVE_IN_ZOOM_GADGET, + + ONLY_REPOP_SINCE_ON_AUTO_UNZOOM, + ONLY_REPOPULATE_SINCE_ON_CLOSE, + ONLY_REPOP_SINCE_ON_EXPL_UNZOOM, + + PLACE_CSR_IN_BODY_NOT_BORDER, + PLACE_CSR_IN_BODY_NOT_GADGET, + + PLACE_CSR_IN_BORDER_AFTER_RESIZE, + + PLACE_CSR_GDGT_AFT_CL_AUTO_OPEN, + PLACE_CSR_GDGT_AFT_US_AUTO_OPEN, + PLACE_CSR_IN_GADGET_AFT_MAN_OPEN, + + PLACE_CSR_IN_GADGET_AFT_EXCHANGE, + PLACE_CSR_IN_GADGET_AFT_MOVE, + + PLACE_CSR_IN_ICON_AFTER_CLOSE, + + PLACE_CSR_BACK_AFTER_MENU_OP, + PLACE_CSR_BACK_ON_CANCEL, + + PREFER_CL_TO_SHR_ON_AUTO_OPEN, + PREFER_CL_TO_SHR_ON_CENTER_OPEN, + PREFER_CL_TO_SHR_ON_CORNER_OPEN, + PREFER_CL_TO_SHR_ON_EXCHANGE, + PREFER_CL_TO_SHR_ON_RESIZE, + + PREFER_EXC_LOC_ON_ICONIZING, + PREFER_EXCHANGED_LOC_ON_OPENING, + + PREFER_PREV_POS_ON_AUTO_REPOP, + PREFER_PREV_POS_ON_EXPL_REPOP, + + PF_CTR_NBR_2_AUTO_CL_ON_OPEN, + PF_CTR_NBR_2_AUTO_SHR_ON_OPEN, + PF_CTR_NBR_2_SHRINK_ON_OPEN, + PF_EDGE_NBR_2_AUTO_CL_ON_OPEN, + PF_EDGE_NBR_2_AUTO_SHR_ON_OPEN, + PF_EDGE_NBR_2_SHRINK_ON_OPEN, + + PF_DTOP_2_AUTO_CL_ON_AUTO_OPEN, + PF_DTOP_2_AUTO_SHR_ON_AUTO_OPEN, + PF_DTOP_2_SHRINK_ON_AUTO_OPEN, + + PREF_SLD_TO_AUTO_CL_ON_RESIZE, + PREF_SLD_TO_AUTO_SHR_ON_RESIZE, + PREF_SLD_TO_SHRINK_ON_RESIZE, + PF_CTR_NBR_2_AUTO_CL_ON_RESIZE, + PF_CTR_NBR_2_AUTO_SHR_ON_RESIZE, + PF_CTR_NBR_2_SHRINK_ON_RESIZE, + PF_EDGE_NBR_2_AUTO_CL_ON_RESIZE, + PF_EDGE_NBR_2_AUTO_SHR_ON_RESIZE, + PF_EDGE_NBR_2_SHRINK_ON_RESIZE, + + PREFER_UNZOOM_TO_CLOSE, + + PRORATE_LOCALLY, + + REDRAW_IN_HEADER, + REDRAW_IN_ICON, + REDRAW_IN_CORNER_BORDER, + REDRAW_IN_SIDE_BORDER, + REDRAW_IN_MOVE_GADGET, + REDRAW_IN_ZOOM_GADGET, + + RELOCATE_IN_HEADER, + RELOCATE_IN_CORNER_BORDER, + RELOCATE_IN_SIDE_BORDER, + RELOCATE_IN_MOVE_GADGET, + RELOCATE_IN_ZOOM_GADGET, + + REPOPULATE_STRICTLY, + REPOPULATE_AUTO_CLOSED_ONLY, + + REQUIRE_PREV_POS_ON_AUTO_REPOP, + REQUIRE_PREV_POS_ON_EXPL_REPOP, + + RESET_MAX_ON_INCREASE, + RESET_MAX_ON_SHRINK, + + RESET_MIN_ON_DECREASE, + RESET_MIN_ON_ENLARGE, + RESET_MIN_MAX_ON_UNSZD_MAN_OPEN, + RESET_TIED_ZOOMED_MIN_ON_ENLARGE, + + RESET_ZOOM_MIN, + RESET_ZOOM_MIN_ALLOWS_DECREASE, + RESET_ZOOM_MIN_USES_DESIRE, + + RESIZE_IN_HEADER, + RESIZE_IN_CORNER_BORDER, + RESIZE_IN_SIDE_BORDER, + RESIZE_IN_MOVE_GADGET, + RESIZE_IN_ZOOM_GADGET, + + SHOW_LISTENER_IN_BORDERS, + SHOW_LISTENER_IN_HEADER, + SHOW_FOCUS_IN_BORDERS, + SHOW_FOCUS_IN_HEADER, + + TREAT_MOVE_LIKE_RELOCATE, + + TRY_CTR_NBRHD_ON_EXCHANGE, + + TRY_CTR_NBRHD_ON_OPEN, + TRY_EDGE_NEIGHBORHOOD_ON_OPEN, + + TRY_SLIDING_ON_RESIZE, + TRY_CTR_NBRHD_ON_RESIZE, + TRY_EDGE_NEIGHBORHOOD_ON_RESIZE, + + TRY_REPOP_AGAIN_AFT_AUTO_PRORATE, + + UNZOOM_TIED_LSNR_IF_NECESSARY, + + USE_CORNER_BORDERS, + + USE_ICON_AREA, + USE_ICONS, + USE_RTL_ICON, + + USER_MENU_IN_BODY, + USER_MENU_IN_HEADER, + USER_MENU_IN_SIDE_BORDER, + USER_MENU_IN_CORNER_BORDER, + USER_MENU_IN_ICON, + USER_MENU_IN_MOVE_GADGET, + USER_MENU_IN_ZOOM_GADGET, + + ZOOM_IN_HEADER, + ZOOM_IN_CORNER_BORDER, + ZOOM_IN_SIDE_BORDER, + ZOOM_IN_MOVE_GADGET, + ZOOM_IN_ZOOM_GADGET, + + ZOOM_ON_CREATE, + + LENGTH_USER_GLOBAL_OPTIONS +} User_Global_Options; +# 36 "userglobD.h" 2 +# 1 "exploptsP.h" 1 +# 29 "exploptsP.h" +typedef enum { + + EXPLICIT_AUTO_PRORATE, + EXPLICIT_ALLOW_AUTOMATIC_CLOSE, + + LENGTH_EXPLICIT_GLOBAL_OPTIONS +} Explicit_Global_Options; +# 37 "userglobD.h" 2 + + + +extern bool user_global_options[]; +# 50 "userglobD.h" +extern int user_global_values[]; +# 65 "userglobD.h" +extern bool explicit[]; +# 33 "manage.c" 2 +# 1 "twin.h" 1 +# 30 "twin.h" +# 1 "twinP.h" 1 +# 39 "twinP.h" +# 1 "twinoptsP.h" 1 +# 30 "twinoptsP.h" +typedef enum +{ + EXPENSIVE_TO_REDRAW, + FIXED_COMPLETELY, + FIXED_BOTTOM_EDGE, + FIXED_TOP_EDGE, + FIXED_LEFT_EDGE, + FIXED_RIGHT_EDGE, + FIXED_SIZE, + FIXED_HEIGHT, + FIXED_WIDTH, + REQUIRE_MANUAL_CLOSE, + SHRINK_BASED_ON_CURRENT_SIZE, + WEIGHTED_SHRINK, + LENGTH_WINDOW_OPTIONS +} Window_Options; +# 40 "twinP.h" 2 + +typedef long TimeStamp; +typedef int Priority; + +typedef pointer Tilwinp; +# 31 "twin.h" 2 + + +# 1 "state.h" 1 +# 30 "state.h" +# 1 "stateP.h" 1 +# 34 "stateP.h" +# 1 "twinI.h" 1 +# 36 "twinI.h" +typedef struct str_window Tilwin; + + + +struct str_window +{ + pointer id; + pointer data; + + + TWRectangle rect, + prev_rect, + modify_rect; + + Size min_size, + max_size, + size, + + modify_size, + open_size, + prev_size, + + desired_size; + + Side modify_side; + + TWPoint center, + prev_center; + + TWPoint position; + + bool options[ (int) LENGTH_WINDOW_OPTIONS ]; + + bool Am_I_Open; + bool prev_Am_I_Open; + + bool Was_Auto_Closed; + + long affect_stamp; + long modify_stamp; + + long timestamp, + prev_timestamp; + + long open_priority; + long size_priority; + + pointer tilep; + + Tilwin *openp; + Tilwin *closedp; + + Tilwin *justp; + + + Tilwin *potentmp; + Tilwin *potentcp; + + long height_stamp; + long width_stamp; + +}; +# 35 "stateP.h" 2 + + +typedef struct +{ + Tilwin *winp; + int offset; +} WinpHandle; +# 31 "state.h" 2 + + +extern int State_Transaction_Depth(); + +extern void State_Set_Window_Timestamp(); + + +extern void State_Note_Use(); + + +extern bool State_Was_Just_Modified(); + + +extern void State_Act_Modified(); + + +extern void State_Insert_Just_Modified(); + + +extern void State_Start_Operation(); + +extern void State_Start_Transaction(); +extern void State_Commit_Transaction(); +extern void State_Abort_Transaction(); +extern void State_Continue_Transaction(); + +extern void State_Create(); + + +extern void State_Destroy(); + + +extern void State_Manual_Close(); + + +extern void State_Auto_Close(); + + +extern void State_Open(); + + +extern TimeStamp State_Get_Timestamp(); + +extern WinpHandle State_Gen_Open_Windows(); + +extern WinpHandle State_Gen_Closed_Windows(); + +extern WinpHandle State_Gen_Just_Opened_Windows(); + +extern WinpHandle State_Gen_Just_Modified_Windows(); + +extern WinpHandle State_Gen_Just_Closed_Windows(); + +extern void State_Next_Window(); + + +extern void State_Undo(); + + + + + + +extern void State_Potential_Clear(); +extern WinpHandle State_Gen_Potentially_Modfd(); +extern WinpHandle State_Gen_Potentially_Closed(); +extern void State_Insert_Potentially_Modfd(); +extern void State_Insert_Potentially_Closed(); +extern void State_Remove_Potentially_Modfd(); +extern void State_Remove_Potentially_Closed(); +extern void State_Flip_Just_Lists(); +extern bool State_Currently_Transacting(); +extern void State_Swap(); +# 34 "twin.h" 2 + + + +extern Size desktop_size; +extern TWRectangle desktop_rect; +extern TWPoint desktop_center; + +extern Size absolute_mins; +extern int gravity; +# 53 "twin.h" +extern void Tilwin_Set_Desktop_Size(); + + + + + +extern Tilwinp Tilwin_Create_Window(); + +extern void Tilwin_Destroy_Window(); + + +extern Tilwinp Tilwin_Locate(); + + + + +extern bool Tilwin_Check_Center_Open(); + + + + +extern bool Tilwin_Check_Corner_Open(); + + + + + + + +extern bool Tilwin_Check_Resize(); +# 91 "twin.h" +extern bool Tilwin_Open(); + + + + +extern void Tilwin_Close(); + + +extern void Tilwin_Auto_Close(); + + + + +extern bool Tilwin_Set(); + + + + +extern bool Tilwin_Set_Size(); + + + + + +extern bool Tilwin_Is_Satisfied(); + + + + +extern bool Tilwin_Resize(); + + + + +extern bool Tilwin_Enlarge_Nearest(); + + + + +extern bool Tilwin_Enlarge_Farthest(); + + + + + + +extern void Tilwin_Enlarge_Nearest_In_Area(); + + + + + +extern void Tilwin_Enlarge_Farthest_In_Area(); + + + + + + + +extern bool Tilwin_Open_Nearest_In_Area(); + + + + + +extern bool Tilwin_Open_Farthest_In_Area(); + + + + + +extern bool Tilwin_Open_Best_In_Area(); + + + + + + +extern void Tilwin_Prorate(); + + + +extern void Tilwin_Gen_Open_Windows(); + +extern void Tilwin_Gen_Closed_Windows(); + +extern void Tilwin_Gen_Just_Opened_Windows(); + +extern void Tilwin_Gen_Just_Modified_Windows(); + +extern void Tilwin_Gen_Just_Closed_Windows(); + +extern Tilwinp Tilwin_Next_Window(); + +extern void Tilwin_Modify_Covered_Windows(); + +extern bool Tilwin_Is_Covered(); + + + +extern void Tilwin_Undo(); +extern void Tilwin_Abort_Transaction(); +# 241 "twin.h" +extern bool Tilwin_Slide_Nearest(); +extern bool Tilwin_Slide_Farthest(); +extern bool Tilwin_Slide_Nearest_In_Area(); +extern bool Tilwin_Slide_Farthest_In_Area(); + +extern void Tilwin_Slide_Horizly_Farthest(); +extern void Tilwin_Slide_Vertly_Farthest(); +extern void Tilwin_Slide_Horizly_Nearest(); +extern void Tilwin_Slide_Vertly_Nearest(); + +extern Tilwinp Tilwin_Thread_Nearest(); +extern Tilwinp Tilwin_Thread_Farthest(); +extern Tilwinp Tilwin_Reverse_Thread(); + +extern Tilwinp Tilwin_Thread_Nearest_Position(); + +extern Tilwinp Tilwin_Thread_Vertly_Nearest(); +extern Tilwinp Tilwin_Thread_Horizly_Nearest(); +extern Tilwinp Tilwin_Thread_Vertly_Farthest(); +extern Tilwinp Tilwin_Thread_Horizly_Farthest(); + + + +extern TWPoint Tilwin_Center_Of_Gravity(); +extern TWPoint Tilwin_Position_Ctr_Of_Gravity(); + +extern Size Tilwin_Good_Size(); +extern Size Tilwin_Checked_Size(); +extern Size Tilwin_Checked_Previous_Size(); +extern Size Tilwin_Checked_Min_Size(); +extern Size Tilwin_Checked_Desired_Size(); +extern Size Tilwin_Checked_Good_Desired_Size(); +extern Size Tilwin_Checked_Max_Size(); +extern Size Tilwin_Checked_Good_Max_Size(); + + + +extern Tilwinp Tilwin_Get_Latest_Height(); +extern Tilwinp Tilwin_Get_Latest_Width(); +# 34 "manage.c" 2 + + +# 1 "twinD.h" 1 +# 38 "twinD.h" +# 1 "tileoptsP.h" 1 +# 30 "tileoptsP.h" +typedef enum { + + ADJUST_PLACEMENT_FAIRLY, + ALLOW_AUTOMATIC_CLOSE, + ALLOW_AUTO_CLOSE_MORE_RECENT, + ALLOW_AUTOMATIC_SHRINK, + ALLOW_AUTO_SHRINK_MORE_RECENT, + BEST_FIT_IS_TIGHT, + BREAK_MINIMUMS_FAIRLY, + ENABLE_GRAVITY, + ENFORCE_MAXIMUMS, + ENFORCE_MINIMUMS, + FIRST_FIT, + PREFER_CLOSE_TO_SHRINK, + PREFER_AUTOMATIC_CLOSE_TO_SEARCH, + PREFER_AUTO_SHRINK_TO_SEARCH, + PREFER_SHRINK_TO_SEARCH, + PRORATE_VERTICALLY_FIRST, + + LENGTH_GLOBAL_OPTIONS +} Global_Options; +# 39 "twinD.h" 2 +# 138 "twinD.h" +extern bool globals[]; +# 37 "manage.c" 2 + + + +# 1 "uwinD.h" 1 +# 31 "uwinD.h" +# 1 "uwinP.h" 1 +# 35 "uwinP.h" +# 1 "regionP.h" 1 +# 39 "regionP.h" +# 1 "bodyregP.h" 1 +# 36 "bodyregP.h" +# 1 "listsP.h" 1 +# 36 "listsP.h" +typedef struct node Node; + +struct node +{ + struct node *prev, *next; + pointer info; + int id; + +}; + + + + +typedef struct { + Node *head, *tail; + } + List; +# 37 "bodyregP.h" 2 + + + +# 1 "tilemenuP.h" 1 +# 33 "tilemenuP.h" +typedef pointer TileMenu; +typedef pointer TileMenuItem; +# 41 "bodyregP.h" 2 + + + +# 1 "tilecrsrP.h" 1 +# 33 "tilecrsrP.h" +typedef long TileCursor; +# 45 "bodyregP.h" 2 + + +typedef struct { + TileMenu menu; + TileCursor cursor; + } MenuAndCurs; + + +typedef struct bodyregion { + int regionid; + int menucursor_regionid; + + struct bodyregion *menucursor_bodyregion; + TWRectangle *rect; + TileMenu menu; + TileCursor cursor; + char *regionname; + } *BodyRegion; +# 40 "regionP.h" 2 + + +typedef enum +{ + background, + body, header, + zoom_gadget, move_gadget, + edge, corner, + icon, + rtl +} Region_Enum; + +typedef union +{ + Side side; + BodyRegion bodyregion; +} Region_Info; + +typedef struct +{ + Region_Enum region_enum; + Region_Info region_info; +} TWRegion; +# 36 "uwinP.h" 2 + + + + + + +# 1 "uwinoptP.h" 1 +# 29 "uwinoptP.h" +typedef enum { + + ACCEPT_BUTTON_IN_BODY, + ACCEPT_BUTTON_IN_HEADER, + ACCEPT_BUTTON_IN_ICON, + + ACCEPT_KEY_IN_BODY, + ACCEPT_KEY_IN_HEADER, + ACCEPT_KEY_IN_GADGET, + ACCEPT_KEY_IN_BORDER, + ACCEPT_KEY_IN_ICON, + + AGGRESSIVELY_REPOPULATE, + + ALLOW_SHRINK_ON_UNZOOM, + ALLOW_SHRINK_ON_AUTO_UNZOOM, + + ALLOW_ZOOM_CLOSE, + + AUTO_OPEN_ON_CREATE, + AUTO_OPEN_ON_WRITE, + + AUTO_PLACE_ON_CLIENT_OPEN, + + AUTO_RESATISFY_ON_RESET_MINMAX, + + CLIENT_DRAWS_ICON, + CLIENT_PROVIDES_HEADER, + + CONSIDER_FOR_REPOPULATION, + + ENFORCE_CLIENT_MINIMUMS, + ENFORCE_CLIENT_MAXIMUMS, + + LISTENER_TIED_TO_ZOOM, + + FORCE_SHRINK_ON_UNZOOM, + FORCE_SHRINK_ON_AUTO_UNZOOM, + + GLASS_CLIENT, + + ICON_DRAWN_BY_CLIENT, + + IGNORE_INITIAL_POSITION_HINTS, + IGNORE_INITIAL_SIZE_HINTS, + IGNORE_POSITION_HINTS, + IGNORE_SIZE_HINTS, + + INCLUDE_RES_CLASS_IN_TITLE, + INCLUDE_RES_CLASS_IN_ICON_TITLE, + INCLUDE_RES_NAME_IN_TITLE, + INCLUDE_RES_NAME_IN_ICON_TITLE, + INCLUDE_NAME_IN_TITLE, + INCLUDE_NAME_IN_ICON_TITLE, + INCLUDE_HOST_IN_TITLE, + INCLUDE_HOST_IN_ICON_TITLE, + + INCLUDE_TITLE_IN_HEADER, + INCLUDE_TITLE_IN_PIXMAP_ICON, + INCLUDE_TITLE_IN_CLIENT_ICON, + + INVERT_ICON_WHEN_PENDING, + + NOTE_LISTENER, + NOTE_LISTENER_INPUT, + NOTE_CLOSED_INPUT, + NOTE_OPEN_INPUT, + NOTE_CLOSED_OUTPUT, + NOTE_OPEN_OUTPUT, + + PREFER_PREVIOUS_ICON_POSITION, + PREFER_PREV_POS, + REQUIRE_PREVIOUS_ICON_POSITION, + REQUIRE_PREV_POS, + + SAVE_IN_LAYOUT, + + SHOW_ICON, + + USE_BORDERS, + USE_GADGETS, + USE_HEADER, + USE_MOVE_GADGET, + + ZOOM_FULL_EXPLICIT, + ZOOM_FULL_HEIGHT, + ZOOM_FULL_WIDTH, + + ZOOM_ON_OPEN, + + ZOOM_TIED_TO_DESIRE, + + LENGTH_USER_WINDOW_OPTIONS + } User_Window_Options; +# 43 "uwinP.h" 2 +# 1 "explwoptsP.h" 1 +# 31 "explwoptsP.h" +typedef enum { + + EXPLICIT_LISTENER_TIED_TO_ZOOM, + EXPLICIT_FIXED_COMPLETELY, + EXPLICIT_FIXED_HEIGHT, + EXPLICIT_FIXED_WIDTH, + EXPLICIT_REQUIRE_MANUAL_CLOSE, + EXPLICIT_ZOOM_TIED_TO_DESIRE, + + LENGTH_EXPLICIT_WINDOW_OPTIONS + } Explicit_Window_Options; +# 44 "uwinP.h" 2 + +# 1 "platformP.h" 1 +# 31 "platformP.h" +# 1 "/usr/include/X11/X.h" 1 3 4 +# 66 "/usr/include/X11/X.h" 3 4 +typedef unsigned long XID; + + + +typedef unsigned long Mask; + + + +typedef unsigned long Atom; + +typedef unsigned long VisualID; +typedef unsigned long Time; +# 96 "/usr/include/X11/X.h" 3 4 +typedef XID Window; +typedef XID Drawable; + + +typedef XID Font; + +typedef XID Pixmap; +typedef XID Cursor; +typedef XID Colormap; +typedef XID GContext; +typedef XID KeySym; + +typedef unsigned char KeyCode; +# 32 "platformP.h" 2 + + +typedef struct +{ + Window parent; + Window top_border; + Window left_border; + Window right_border; + Window bottom_border; + Window top_left; + Window top_right; + Window bottom_left; + Window bottom_right; + Window header; + Window zoom_gadget; + Window move_gadget; + Window client; + Window icon; + Window client_icon; + Window transient_for; +} XFrame; +# 46 "uwinP.h" 2 + +typedef struct str_userwin Userwin; + + + +struct str_userwin { + + Tilwinp winp; + Tilwinp iconp; + + Region_Enum current_type; + + int winnum; + pointer data; + + char *hostname; + char *res_class; + char *res_name; + char *wmname; + char *iconname; + char *command; + char *identity; + char *title; + + bool options[(int)LENGTH_USER_WINDOW_OPTIONS]; + bool explicit[(int)LENGTH_EXPLICIT_WINDOW_OPTIONS]; + + bool prepared; + bool layout; + bool layout_found; + bool positioned; + bool ever_opened; + bool sized; + bool listener; + bool regular_manual_close; + + bool icon_positioned; + + bool focus; + int client_state; + int wm_state; + int startup_state; + int group_state; + + TimeStamp open_stamp; + TimeStamp zoom_stamp; + bool zoomed; + TWRectangle rezoom_rect; + Size regular_min; + Size regular_size; + Size zoom_min; + Size zoom_size; + + bool prev_positioned; + bool prev_sized; + bool prev_zoomed; + int prev_group_state; + TWRectangle prev_rezoom_rect; + Size prev_min; + Size prev_max; + Size prev_desire; + TimeStamp undo_stamp; + + Size body_min; + Size body_max; + + Size client_min; + Size client_max; + + int header_height; + + bool input_enabled; + bool output_sent; + bool saving_state; + bool soft_kill; + + int connection; + Userwin *group; + long messages; + + TWRectangle icon_res_rect; + TWRectangle icon_host_rect; + TWRectangle icon_name_rect; + TWRectangle icon_body_rect; + + bool initially_mapped; + bool initially_icon_mapped; + + + int border_width; Pixmap iconmask; Pixmap iconpix; Pixmap iconpix_pending; bool ignore_unmap; XFrame xframe; + +}; +# 32 "uwinD.h" 2 +# 42 "uwinD.h" +# 1 "twin.h" 1 +# 33 "twin.h" +# 1 "state.h" 1 +# 33 "state.h" +extern int State_Transaction_Depth(); + +extern void State_Set_Window_Timestamp(); + + +extern void State_Note_Use(); + + +extern bool State_Was_Just_Modified(); + + +extern void State_Act_Modified(); + + +extern void State_Insert_Just_Modified(); + + +extern void State_Start_Operation(); + +extern void State_Start_Transaction(); +extern void State_Commit_Transaction(); +extern void State_Abort_Transaction(); +extern void State_Continue_Transaction(); + +extern void State_Create(); + + +extern void State_Destroy(); + + +extern void State_Manual_Close(); + + +extern void State_Auto_Close(); + + +extern void State_Open(); + + +extern TimeStamp State_Get_Timestamp(); + +extern WinpHandle State_Gen_Open_Windows(); + +extern WinpHandle State_Gen_Closed_Windows(); + +extern WinpHandle State_Gen_Just_Opened_Windows(); + +extern WinpHandle State_Gen_Just_Modified_Windows(); + +extern WinpHandle State_Gen_Just_Closed_Windows(); + +extern void State_Next_Window(); + + +extern void State_Undo(); + + + + + + +extern void State_Potential_Clear(); +extern WinpHandle State_Gen_Potentially_Modfd(); +extern WinpHandle State_Gen_Potentially_Closed(); +extern void State_Insert_Potentially_Modfd(); +extern void State_Insert_Potentially_Closed(); +extern void State_Remove_Potentially_Modfd(); +extern void State_Remove_Potentially_Closed(); +extern void State_Flip_Just_Lists(); +extern bool State_Currently_Transacting(); +extern void State_Swap(); +# 34 "twin.h" 2 + + + +extern Size desktop_size; +extern TWRectangle desktop_rect; +extern TWPoint desktop_center; + +extern Size absolute_mins; +extern int gravity; +# 53 "twin.h" +extern void Tilwin_Set_Desktop_Size(); + + + + + +extern Tilwinp Tilwin_Create_Window(); + +extern void Tilwin_Destroy_Window(); + + +extern Tilwinp Tilwin_Locate(); + + + + +extern bool Tilwin_Check_Center_Open(); + + + + +extern bool Tilwin_Check_Corner_Open(); + + + + + + + +extern bool Tilwin_Check_Resize(); +# 91 "twin.h" +extern bool Tilwin_Open(); + + + + +extern void Tilwin_Close(); + + +extern void Tilwin_Auto_Close(); + + + + +extern bool Tilwin_Set(); + + + + +extern bool Tilwin_Set_Size(); + + + + + +extern bool Tilwin_Is_Satisfied(); + + + + +extern bool Tilwin_Resize(); + + + + +extern bool Tilwin_Enlarge_Nearest(); + + + + +extern bool Tilwin_Enlarge_Farthest(); + + + + + + +extern void Tilwin_Enlarge_Nearest_In_Area(); + + + + + +extern void Tilwin_Enlarge_Farthest_In_Area(); + + + + + + + +extern bool Tilwin_Open_Nearest_In_Area(); + + + + + +extern bool Tilwin_Open_Farthest_In_Area(); + + + + + +extern bool Tilwin_Open_Best_In_Area(); + + + + + + +extern void Tilwin_Prorate(); + + + +extern void Tilwin_Gen_Open_Windows(); + +extern void Tilwin_Gen_Closed_Windows(); + +extern void Tilwin_Gen_Just_Opened_Windows(); + +extern void Tilwin_Gen_Just_Modified_Windows(); + +extern void Tilwin_Gen_Just_Closed_Windows(); + +extern Tilwinp Tilwin_Next_Window(); + +extern void Tilwin_Modify_Covered_Windows(); + +extern bool Tilwin_Is_Covered(); + + + +extern void Tilwin_Undo(); +extern void Tilwin_Abort_Transaction(); +# 241 "twin.h" +extern bool Tilwin_Slide_Nearest(); +extern bool Tilwin_Slide_Farthest(); +extern bool Tilwin_Slide_Nearest_In_Area(); +extern bool Tilwin_Slide_Farthest_In_Area(); + +extern void Tilwin_Slide_Horizly_Farthest(); +extern void Tilwin_Slide_Vertly_Farthest(); +extern void Tilwin_Slide_Horizly_Nearest(); +extern void Tilwin_Slide_Vertly_Nearest(); + +extern Tilwinp Tilwin_Thread_Nearest(); +extern Tilwinp Tilwin_Thread_Farthest(); +extern Tilwinp Tilwin_Reverse_Thread(); + +extern Tilwinp Tilwin_Thread_Nearest_Position(); + +extern Tilwinp Tilwin_Thread_Vertly_Nearest(); +extern Tilwinp Tilwin_Thread_Horizly_Nearest(); +extern Tilwinp Tilwin_Thread_Vertly_Farthest(); +extern Tilwinp Tilwin_Thread_Horizly_Farthest(); + + + +extern TWPoint Tilwin_Center_Of_Gravity(); +extern TWPoint Tilwin_Position_Ctr_Of_Gravity(); + +extern Size Tilwin_Good_Size(); +extern Size Tilwin_Checked_Size(); +extern Size Tilwin_Checked_Previous_Size(); +extern Size Tilwin_Checked_Min_Size(); +extern Size Tilwin_Checked_Desired_Size(); +extern Size Tilwin_Checked_Good_Desired_Size(); +extern Size Tilwin_Checked_Max_Size(); +extern Size Tilwin_Checked_Good_Max_Size(); + + + +extern Tilwinp Tilwin_Get_Latest_Height(); +extern Tilwinp Tilwin_Get_Latest_Width(); +# 43 "uwinD.h" 2 +# 82 "uwinD.h" +extern Size abs_min_siz, abs_max_siz; +# 41 "manage.c" 2 + + +# 1 "uwinL.h" 1 +# 44 "manage.c" 2 +# 1 "uwinvalP.h" 1 +# 29 "uwinvalP.h" +typedef enum { + + HEADER_HEIGHT, + + ICON_WIDTH, + ICON_HEIGHT, + + ICON_BODY_TOP, + ICON_BODY_BOTTOM, + ICON_BODY_LEFT, + ICON_BODY_RIGHT, + + ICON_RES_TOP, + ICON_RES_BOTTOM, + ICON_RES_LEFT, + ICON_RES_RIGHT, + + ICON_HOST_TOP, + ICON_HOST_BOTTOM, + ICON_HOST_LEFT, + ICON_HOST_RIGHT, + + ICON_NAME_TOP, + ICON_NAME_BOTTOM, + ICON_NAME_LEFT, + ICON_NAME_RIGHT, + + CLIENT_MIN_WIDTH, + CLIENT_MIN_HEIGHT, + CLIENT_MAX_WIDTH, + CLIENT_MAX_HEIGHT, + + NORMAL_DESIRED_WIDTH, + NORMAL_DESIRED_HEIGHT, + ZOOM_DESIRED_WIDTH, + ZOOM_DESIRED_HEIGHT, + + USER_NORMAL_MIN_WIDTH, + USER_NORMAL_MIN_HEIGHT, + USER_ZOOM_MIN_WIDTH, + USER_ZOOM_MIN_HEIGHT, + + USER_MAX_WIDTH, + USER_MAX_HEIGHT, + + LENGTH_USER_WINDOW_VALUES +} User_Window_Values; +# 45 "manage.c" 2 + +# 1 "client.h" 1 +# 30 "client.h" +extern void Client_Enter(); + + +extern void Client_Send_Mouse(); + + +extern void Client_Send_Button(); + + +extern void Client_Send_Key(); + + +extern void Client_Ignore_Key(); +extern void Client_Ignore_Button(); + +extern void Client_Send_String(); + + + + +extern void Client_Menu_Button_Number(); + + + + +extern void Client_Kill(); + + +extern void Client_Redraw(); + + +extern void Client_Window_Create(); + + +extern void Client_Startup(); + + +extern void Client_Take_Focus(); + + +extern void Client_Bang(); + + +extern void Client_Set_State(); + + +extern void Client_Configure_Denied(); + + +extern void Client_Window_Moved(); + + +extern void Client_Delete_Window(); + + +extern void Client_Icon_Notify(); +# 47 "manage.c" 2 +# 1 "closed.h" 1 +# 37 "closed.h" +extern TileMenu Closed_Init(); + + +extern void Closed_Retitle(); + + +extern void Closed_Add(); + + +extern void Closed_Remove(); +# 48 "manage.c" 2 +# 1 "draw.h" 1 +# 30 "draw.h" +# 1 "drawP.h" 1 +# 35 "drawP.h" +typedef pointer DrawRegion; +# 31 "draw.h" 2 + + +extern void Draw_Init(); + +extern void Draw_Create(); + + + +extern void Draw_ConfigWin(); + + + + + +extern void Draw_Start(); + + +extern void Draw_Finish(); + +extern void Draw_Flash(); + +extern void Draw_Line(); + + +extern void Draw_Horizontal(); + + +extern void Draw_Vertical(); + + +extern void Draw_Xor_Line(); + + +extern void Draw_Xor_Horizontal(); + + +extern void Draw_Xor_Vertical(); + + +extern void Draw_Clear_Rectangle(); + +extern void Draw_Background_Rectangle(); + +extern void Draw_Fill_Rectangle(); + +extern void Draw_Fill_Xor_Rectangle(); + + +extern void Draw_Rectangle(); + + +extern void Draw_Xor_Rectangle(); + + +extern void Draw_Pixrect(); + + +extern int Draw_Open(); + + +extern int Draw_Font_Height(); + + +extern int Draw_Num_Drawables(); + + +extern void Draw_Centered_String(); + + +extern void Draw_Vert_Centered_String(); + + +extern int Draw_Get_Frame_Width(); + +extern int Draw_Get_Frame_Height(); +# 49 "manage.c" 2 +# 1 "drawicon.h" 1 +# 34 "drawicon.h" +extern void DrawIcon_Init(); + +extern void DrawIcon_Flash(); + +extern void DrawIcon_Init_Rtl(); + + +extern void DrawIcon_Initial_Size(); + + +extern void DrawIcon_Create(); + + +extern void DrawIcon_Destroy(); + + +extern void DrawIcon_Close(); + + +extern void DrawIcon_Open(); + + +extern void DrawIcon_Move_Open(); + + +extern void DrawIcon_Move_Close(); + + +extern void DrawIcon_Redraw(); + + +extern void DrawIcon_Draw(); + + +extern void DrawIcon_Retitle(); + + +extern void DrawIcon_Note_Output(); + + +extern void DrawIcon_Good_Move_Box(); + + +extern void DrawIcon_Bad_Move_Box(); + + +extern void DrawIcon_Undo_Move_Box(); + +extern void DrawIcon_Show_Moving(); + + +extern void DrawIcon_Unshow_Moving(); + + +extern void DrawIcon_Show_Opening(); + + +extern void DrawIcon_Unshow_Opening(); +# 50 "manage.c" 2 +# 1 "drawwin.h" 1 +# 34 "drawwin.h" +extern void Drawwin_Init(); + +extern void Drawwin_Flash(); + +extern void Drawwin_Initial_Size(); + + + +extern void Drawwin_Start(); + +extern void Drawwin_Finish(); + +extern void Drawwin_Create(); + + +extern void Drawwin_Prepare(); + + +extern void Drawwin_Insert(); + + +extern void Drawwin_Withdraw(); + + +extern void Drawwin_Destroy(); + + +extern void Drawwin_Draw_Background(); + + +extern bool Drawwin_Redraw_All(); + + +extern void Drawwin_Unmap(); + + +extern void Drawwin_Close(); + + +extern void Drawwin_Open(); + + +extern void Drawwin_Move_Open(); + + +extern void Drawwin_Move_Close(); + + +extern void Drawwin_Listener_Move_Open(); + + +extern void Drawwin_Listener_Move_Close(); + + +extern void Drawwin_Redraw(); + + +extern void Drawwin_Draw(); + + +extern void Drawwin_Display_Focus(); + + +extern void Drawwin_Display_Wrapping(); + + +extern void Drawwin_Retitle(); + + +extern void Drawwin_Show_Moving(); + + +extern void Drawwin_Unshow_Moving(); + + +extern void Drawwin_Good_Open_Box(); + + +extern void Drawwin_Bad_Open_Box(); + + +extern void Drawwin_Undo_Open_Box(); + +extern void Drawwin_Edge_Resize(); + + +extern void Drawwin_Undo_Edge_Resize(); + +extern void Drawwin_Corner_Resize(); + + +extern void Drawwin_Undo_Corner_Resize(); + +extern void Drawwin_Good_Move_Box(); + + +extern void Drawwin_Bad_Move_Box(); + + +extern void Drawwin_Undo_Move_Box(); +# 51 "manage.c" 2 +# 1 "layout.h" 1 +# 30 "layout.h" +typedef pointer Layoutp; + + +extern bool Layout_Save(); + + + + +extern int unmatched_layouts; + + + + + + + +extern Layoutp Layout_Find(); + + +extern void Layout_Set_Values(); + + +extern void Layout_Set_Options(); + + +extern char *Layout_Init(); + +extern void Layout_Read(); + +extern void Layout_Update(); +# 52 "manage.c" 2 +# 1 "profile.h" 1 +# 30 "profile.h" +extern void Profile_Init(); + +extern void Profile_Create(); + + +extern void Profile_Prepare(); + + +extern void Profile_Update(); + + +extern void Profile_Layout(); + + +extern bool Profile_Supplies_User_Value(); + + +extern bool Profile_Supplies_User_String(); + + +extern bool Profile_Supplies_Pixmap(); +# 53 "manage.c" 2 +# 1 "region.h" 1 +# 45 "region.h" +extern TWRegion back_region; + +extern TWRegion header_region; +extern TWRegion body_region; + +extern TWRegion left_region; +extern TWRegion right_region; +extern TWRegion top_region; +extern TWRegion bottom_region; + +extern TWRegion top_left_region; +extern TWRegion top_right_region; +extern TWRegion bottom_left_region; +extern TWRegion bottom_right_region; + +extern TWRegion zoom_gadget_region; +extern TWRegion move_gadget_region; + +extern TWRegion rtl_region; +extern TWRegion icon_region; + +extern void Region_Init(); + +extern Size Region_Minimum_Size(); + +extern TWPoint Region_Translate(); + + + + + +extern Size Region_Body_Size(); + + +extern Size Region_Icon_Body_Size(); + + +extern TWRectangle Region_Body_Rectangle(); + + +extern TWRectangle Region_Adjust_Rectangle(); + + + + +extern Size Region_Adjust_Size(); + + + + +extern Size Region_Unadjust_Size(); + + + + +extern TWRegion Region_Locate(); + + + + +extern TWRegion Region_Make_Edge(); + + + + +extern TWRegion Region_Make_Corner(); + + + + +extern TWRectangle Region_Header_Rect(); + + + +extern TWPoint Region_Get_Header_Pos(); + + + + +extern TWPoint Region_Gadget_Center(); + + + +extern TWPoint Region_Get_Edge_Pos(); + + + + + +extern TWPoint Region_Get_Corner_Pos(); + + + + +extern TWRegion Region_Nearest_Border(); + + + + +extern bool Region_Nearby(); + + + + +extern bool Region_Equal(); + + + +extern TileCursor Region_Get_Cursor(); + + + +extern TileMenu Region_Get_Menu(); +# 54 "manage.c" 2 +# 266 "manage.c" +static void Manage_Do_Unzoom(Userwin *uwinp, bool explicit); +static void Manage_Start_Trying(); +static void Manage_Finish_Trying(bool result); + + + +TimeStamp last_stamp; + +static int winnum = 0; + +Userwin *focus = (Userwin *)((void *)0); +Userwin *listener = (Userwin *)((void *)0); +Userwin *sublistener = (Userwin *)((void *)0); +Userwin *switch_listener = (Userwin *)((void *)0); +Userwin *prev_listener = (Userwin *)((void *)0); +Userwin *last_zoom = (Userwin *)((void *)0); +Userwin *touch = (Userwin *)((void *)0); +Userwin *prev_touch = (Userwin *)((void *)0); + +Userwin *rtl_uwinp; + + + +void Manage_Init() +{ + Draw_Init(); + Region_Init(); + Drawwin_Init(); + DrawIcon_Init(); + + last_stamp = 0; +} + + + +static Userwin *Manage_Init_Window() +{ + Userwin *uwinp; + uwinp = ( ( (Userwin *) malloc(sizeof(Userwin) * (1)) ) ); + + uwinp->prepared = 0; + uwinp->layout = 0; + uwinp->layout_found = 0; + uwinp->output_sent = 0; + uwinp->ever_opened = 0; + uwinp->soft_kill = 0; + uwinp->saving_state = 0; + uwinp->client_state = -1; + uwinp->wm_state = -2; + uwinp->group_state = -3; + uwinp->current_type = body; + + uwinp->group = (Userwin *)((void *)0); + uwinp->messages = 0; + + uwinp->hostname = ((void *)0); + uwinp->res_class = ((void *)0); + uwinp->res_name = ((void *)0); + uwinp->wmname = ((void *)0); + uwinp->iconname = ((void *)0); + uwinp->command = ((void *)0); + uwinp->identity = ((void *)0); + uwinp->title = ((void *)0); + + uwinp->positioned = 0; + uwinp->sized = 0; + + uwinp->focus = 0; + uwinp->listener = 0; + uwinp->zoomed = 0; + + uwinp->icon_positioned = 0; + + uwinp->winp = Tilwin_Create_Window( (pointer)uwinp ); + uwinp->iconp = Tilwin_Create_Window( (pointer)uwinp ); + + uwinp->open_stamp = 0; + uwinp->zoom_stamp = 0; + + ( ((Tilwin *)(uwinp->iconp)) -> options[ (int) FIXED_LEFT_EDGE ] ) = (0); + ( ((Tilwin *)(uwinp->iconp)) -> options[ (int) FIXED_RIGHT_EDGE ] ) = (0); + ( ((Tilwin *)(uwinp->iconp)) -> options[ (int) FIXED_TOP_EDGE ] ) = (0); + ( ((Tilwin *)(uwinp->iconp)) -> options[ (int) FIXED_BOTTOM_EDGE ] ) = (0); + + ( ((Tilwin *)(uwinp->iconp)) -> options[ (int) FIXED_SIZE ] ) = (1); + ( ((Tilwin *)(uwinp->iconp)) -> options[ (int) FIXED_COMPLETELY ] ) = (0); + + ( ((Tilwin *)(uwinp->iconp)) -> options[ (int) EXPENSIVE_TO_REDRAW ] ) = (0); + + ( ((Tilwin *)(uwinp->iconp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (1); + + Profile_Create( uwinp ); + + return uwinp; +} + + + +Userwin *Manage_Create_Window( ) +{ + Userwin *uwinp; + + uwinp = Manage_Init_Window(); + + uwinp->winnum = ++winnum; + + Drawwin_Create( uwinp ); + DrawIcon_Create( uwinp ); + + return uwinp; +} + + + +static void Manage_Untitle( uwinp ) + Userwin *uwinp; +{ + if ( (uwinp->hostname) != ((void *)0) ) + free( uwinp->hostname ); + if ( (uwinp->res_class) != ((void *)0) ) + free( uwinp->res_class ); + if ( (uwinp->res_name) != ((void *)0) ) + free( uwinp->res_name ); + if ( (uwinp->wmname) != ((void *)0) ) + free( uwinp->wmname ); + if ( (uwinp->iconname) != ((void *)0) ) + free( uwinp->iconname ); + if ( (uwinp->command) != ((void *)0) ) + free( uwinp->command ); + if ( (uwinp->identity) != ((void *)0) ) + free( uwinp->identity ); + if ( (uwinp->title) != ((void *)0) ) + free( uwinp->title ); +} + + + +static void Manage_Retitle( uwinp ) + Userwin *uwinp; +{ + int strsiz; + bool has_class, has_name; + + if ( (uwinp->title) != ((void *)0) ) + free( uwinp->title ); + + strsiz = 1; + + has_class = (uwinp->res_class != ((void *)0)) && + ( (uwinp)->options[(int)(INCLUDE_RES_CLASS_IN_TITLE)] ); + + has_name = (uwinp->res_name != ((void *)0)) && + ( (uwinp)->options[(int)(INCLUDE_RES_NAME_IN_TITLE)] ); + + if ( has_class || has_name ) + { + strsiz +=1; + + if ( has_class ) + strsiz += strlen(uwinp->res_class); + + if ( has_class && has_name ) + strsiz +=1; + + if ( has_name ) + strsiz += strlen(uwinp->res_name); + + strsiz +=2; + } + + if ( (uwinp->wmname != ((void *)0)) && + ( (uwinp)->options[(int)(INCLUDE_NAME_IN_TITLE)] ) ) + strsiz += strlen(uwinp->wmname); + + if ( (uwinp->hostname != ((void *)0)) && + ( (uwinp)->options[(int)(INCLUDE_HOST_IN_TITLE)] ) ) + strsiz += (3 + strlen(uwinp->hostname)); + + uwinp->title = ( (char *) malloc(sizeof(char) * (strsiz)) ); + uwinp->title[0] = '\0'; + + if ( has_class || has_name ) + { + (void)strcat( uwinp->title, "[" ); + + if ( has_class ) + (void)strcat( uwinp->title, uwinp->res_class ); + + if ( has_class && has_name ) + (void)strcat( uwinp->title, ":" ); + + if ( has_name ) + (void)strcat( uwinp->title, uwinp->res_name ); + + (void)strcat( uwinp->title, "] " ); + } + + if ( (uwinp->wmname != ((void *)0)) && + ( (uwinp)->options[(int)(INCLUDE_NAME_IN_TITLE)] ) ) + { + (void)strcat( uwinp->title, uwinp->wmname ); + } + + if ( (uwinp->hostname != ((void *)0)) && + ( (uwinp)->options[(int)(INCLUDE_HOST_IN_TITLE)] ) ) + { + (void)strcat( uwinp->title, " (" ); + (void)strcat( uwinp->title, uwinp->hostname ); + (void)strcat( uwinp->title, ")" ); + } + + if ( (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ) + Drawwin_Retitle( uwinp ); + else if ( uwinp->ever_opened ) + { + Closed_Retitle( uwinp ); + if ( (((Tilwin *)(uwinp->iconp)) -> Am_I_Open) ) + DrawIcon_Retitle(uwinp); + } +} + + + +void Manage_Set_Class( uwinp, res_class, res_name ) + Userwin *uwinp; + char *res_class; + char *res_name; +{ + if ( ( ( ( (uwinp->res_class) == ((void *)0) ) || ( uwinp->res_class[0] == ((void *)0) ) ) ? ( ( (res_class) == ((void *)0) ) || ( res_class[0] == ((void *)0) ) ) : ( ( (res_class) != ((void *)0) ) && ( strcmp(uwinp->res_class,res_class) == 0 ) ) ) && + ( ( ( (uwinp->res_name) == ((void *)0) ) || ( uwinp->res_name[0] == ((void *)0) ) ) ? ( ( (res_name) == ((void *)0) ) || ( res_name[0] == ((void *)0) ) ) : ( ( (res_name) != ((void *)0) ) && ( strcmp(uwinp->res_name,res_name) == 0 ) ) ) ) + return; + + if ( (uwinp->res_class) != ((void *)0) ) + free( uwinp->res_class ); + + if ( res_class == ((void *)0) ) + uwinp->res_class = ((void *)0); + else + { + uwinp->res_class = + ( (char *) malloc(sizeof(char) * (1 + strlen(res_class))) ); + (void)strcpy( uwinp->res_class, res_class ); + } + + if ( (uwinp->res_name) != ((void *)0) ) + free( uwinp->res_name ); + + if ( res_name == ((void *)0) ) + uwinp->res_name = ((void *)0); + else + { + uwinp->res_name = + ( (char *) malloc(sizeof(char) * (1 + strlen(res_name))) ); + (void)strcpy( uwinp->res_name, res_name ); + } + + Profile_Prepare( uwinp ); + uwinp->prepared = 1; + + Manage_Retitle( uwinp ); +} + + + +void Manage_Set_Name( uwinp, str ) + Userwin *uwinp; + char *str; +{ + if ( (uwinp->wmname) != ((void *)0) ) + free( uwinp->wmname ); + + uwinp->wmname = ( (char *) malloc(sizeof(char) * (1 + strlen(str))) ); + (void)strcpy( uwinp->wmname, str ); + + if ( uwinp->identity == ((void *)0) ) + { + uwinp->identity = ( (char *) malloc(sizeof(char) * (1 + strlen(str))) ); + (void)strcpy( uwinp->identity, str ); + } + + Manage_Retitle( uwinp ); +} + + + +void Manage_Set_Icon_Name( uwinp, str ) + Userwin *uwinp; + char *str; +{ + if ( (uwinp->iconname) != ((void *)0) ) + free( uwinp->iconname ); + + uwinp->iconname = ( (char *) malloc(sizeof(char) * (1 + strlen(str))) ); + (void)strcpy( uwinp->iconname, str ); + Manage_Retitle( uwinp ); +} + + + +void Manage_Set_Hostname( uwinp, str ) + Userwin *uwinp; + char *str; +{ + if ( (uwinp->hostname) != ((void *)0) ) + free( uwinp->hostname ); + + uwinp->hostname = ( (char *) malloc(sizeof(char) * (1 + strlen(str))) ); + (void)strcpy( uwinp->hostname, str ); + Manage_Retitle( uwinp ); +} + + + +void Manage_Set_Command( uwinp, str ) + Userwin *uwinp; + char *str; +{ + if ( uwinp->soft_kill ) + { + extern void Manage_Client_Destroy(); + Manage_Client_Destroy( uwinp ); + return; + } + uwinp->saving_state = 0; + + if ( (uwinp->command) != ((void *)0) ) + free( uwinp->command ); + + uwinp->command = ( (char *) malloc(sizeof(char) * (1 + strlen(str))) ); + (void)strcpy( uwinp->command, str ); + Manage_Retitle( uwinp ); +} + + + +static void Manage_Prepare( uwinp ) + Userwin *uwinp; +{ + if ( (uwinp->res_class == ((void *)0)) && (uwinp->res_name == ((void *)0)) && + (uwinp->wmname != ((void *)0)) ) + Manage_Set_Class( uwinp, uwinp->wmname, ((void *)0) ); +} + + + +void Manage_Layout( uwinp ) + Userwin *uwinp; +{ + if (! uwinp->prepared) + Manage_Prepare( uwinp ); + + Profile_Layout( uwinp ); + uwinp->layout = 1; +} + + + +Userwin *Manage_Locate(pos) + TWPoint pos; +{ + return ((Userwin *)(( ((Tilwin_Locate(pos)) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(Tilwin_Locate(pos)))->id) ))); +} + + + +void Manage_Set_Focus( uwinp ) + Userwin *uwinp; +{ + focus = uwinp; + if (focus != (Userwin *)((void *)0)) + { + focus->focus = 1; + if ( (((Tilwin *)(focus->winp)) -> Am_I_Open) ) + Drawwin_Display_Focus( focus ); + } +} + + + +void Manage_Unset_Focus() +{ + if (focus != (Userwin *)((void *)0)) + { + focus->focus = 0; + if ( (((Tilwin *)(focus->winp)) -> Am_I_Open) ) + Drawwin_Display_Focus( focus ); + focus = (Userwin *)((void *)0); + } +} + + + +void Manage_Switch_Focus( uwinp ) + Userwin *uwinp; +{ + if ( uwinp != focus ) + { + Manage_Unset_Focus(); + Manage_Set_Focus( uwinp ); + } +} +# 714 "manage.c" +void Manage_Set_Sublistener( uwinp ) + Userwin *uwinp; +{ + sublistener = uwinp; + + if ( ( (sublistener)->options[(int)(NOTE_LISTENER)] ) ) + State_Note_Use(sublistener->winp); + + if (! ( user_global_options[(int)(ALLOW_LISTENER_TO_CLOSE)] )) + { + sublistener->regular_manual_close = + ( ((Tilwin *)(sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); + ( ((Tilwin *)(sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (1); + } +} + + + +void Manage_Unset_Sublistener() +{ + if ( sublistener != (Userwin *)((void *)0) ) + { + if ( ( listener != (Userwin *)((void *)0) ) && + ( (listener)->options[(int)(NOTE_LISTENER)] ) ) + State_Note_Use(listener->winp); + + if (! ( user_global_options[(int)(ALLOW_LISTENER_TO_CLOSE)] )) + ( ((Tilwin *)(sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (sublistener->regular_manual_close) + ; + + sublistener = (Userwin *)((void *)0); + } +} + + + + +void Manage_Switch_Sublistener( uwinp ) + Userwin *uwinp; +{ + if ( uwinp != sublistener ) + { + Manage_Unset_Sublistener(); + if ( uwinp != (Userwin *)((void *)0) ) + Manage_Set_Sublistener( uwinp ); + } +} + + + +static void Manage_Set_Listener( uwinp ) + Userwin *uwinp; +{ + listener = uwinp; + + if ( listener != (Userwin *)((void *)0) ) + { + Manage_Unset_Sublistener(); + + listener->listener = 1; + State_Act_Modified(listener->winp); + + if ( ( (listener)->options[(int)(NOTE_LISTENER)] ) ) + State_Note_Use(listener->winp); + + if (! ( user_global_options[(int)(ALLOW_LISTENER_TO_CLOSE)] )) + { + listener->regular_manual_close = + ( ((Tilwin *)(listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); + ( ((Tilwin *)(listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (1) + ; + } + } +} + + + +static void Manage_Unset_Listener() +{ + listener->listener = 0; + State_Act_Modified(listener->winp); + + if (! ( user_global_options[(int)(ALLOW_LISTENER_TO_CLOSE)] )) + ( ((Tilwin *)(listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (listener->regular_manual_close) + ; + + listener = (Userwin *)((void *)0); +} + + + +static void Manage_Unset( uwinp ) + Userwin *uwinp; +{ + extern void Manage_Do_Unzoom(); + + if ( uwinp == focus ) + Manage_Unset_Focus(); + + if ( uwinp == listener ) + { + if ( ( (listener)->options[(int)(LISTENER_TIED_TO_ZOOM)] ) && + listener->zoomed ) + Manage_Do_Unzoom( listener, 0 ); + Manage_Unset_Listener(); + } + else if ( uwinp == sublistener ) + Manage_Unset_Sublistener(); +} + + + +TWRectangle Manage_Neighborhood_Rectangle( nbhd, center, siz ) + float nbhd; + TWPoint center; + Size siz; +{ + TWRectangle rect; + int horiz, vert; + int dhoriz, dvert; + int factor; + + factor = ( user_global_values[(int)(NEIGHBORHOOD_SHRINK_FACTOR)] ); + + dhoriz = 100 * ( desktop_size ).width; + dvert = 100 * ( desktop_size ).height; + + horiz = nbhd * siz.width * (dhoriz - (factor*siz.width)) / dhoriz; + horiz += (siz.width/2); + rect.left_x = center.x - horiz; + rect.right_x = center.x + horiz; + + vert = nbhd * siz.height * (dvert - (factor*siz.height)) / dvert; + vert += (siz.height/2); + rect.top_y = center.y - vert; + rect.bottom_y = center.y + vert; + + return rect; +} + + + +static bool Manage_Neighborhood_Icon_Open( uwinp, center ) + Userwin *uwinp; + TWPoint center; +{ + TWRectangle rect; + Size siz; + bool result; + + extern void Manage_Start_Trying(); + extern bool Manage_Can_Try_Listener_Unzoom(); + extern void Manage_Finish_Trying(); + + siz = (((Tilwin *)(uwinp->iconp)) -> size); + + Manage_Start_Trying(); + { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && 0)); { result = Tilwin_Open( uwinp->iconp, center, siz ); if ( (! result) && Manage_Can_Try_Listener_Unzoom() ) result = Tilwin_Open( uwinp->iconp, center, siz ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); } + + + + + + Manage_Finish_Trying( result ); + + if ( result ) return 1; + + rect = Manage_Neighborhood_Rectangle( 0.75, center, siz ); + return Tilwin_Open_Nearest_In_Area( uwinp->iconp, rect, center, siz ); +} + + + +bool Manage_Icon_Open( uwinp ) + Userwin *uwinp; +{ + TWRectangle desk,iconarea, rect, area, bigger_area; + TWPoint center; + Size siz; + bool first_none = 0; + bool second_none = 0; + bool icon_positioned; + bool result; + + if ( ( uwinp->client_state == 4 ) || + ( uwinp->client_state == 5 ) || + ( ( (uwinp)->group_state != -3 ) && + ( uwinp->group != uwinp ) ) || + ( ! ( (uwinp)->options[(int)(SHOW_ICON)] ) ) ) + return 0; + + if ( (uwinp->icon_positioned) && + ( (uwinp)->options[(int)(REQUIRE_PREVIOUS_ICON_POSITION)] ) + ) + { + if ( Manage_Neighborhood_Icon_Open( uwinp, + (((Tilwin *)(uwinp->iconp)) -> position) ) ) + return 1; + } + + icon_positioned = (uwinp->icon_positioned) && + ( ( (uwinp)->options[(int)(PREFER_PREVIOUS_ICON_POSITION)] ) + || + ( (uwinp)->options[(int)(REQUIRE_PREVIOUS_ICON_POSITION)] ) + ); + + siz = (((Tilwin *)(uwinp->iconp)) -> size); + + desk = ( desktop_rect ); + + if ( ( user_global_options[(int)(USE_ICON_AREA)] ) ) + { + iconarea.left_x = ( user_global_values[(int)(ICON_AREA_LEFT)] ); + iconarea.right_x = ( user_global_values[(int)(ICON_AREA_RIGHT)] ); + iconarea.top_y = ( user_global_values[(int)(ICON_AREA_TOP)] ); + iconarea.bottom_y = ( user_global_values[(int)(ICON_AREA_BOTTOM)] ); + } + else + iconarea = desk; + + bigger_area = area = rect = iconarea; + + switch ( (Icon_Position)( user_global_values[(int)(SECONDARY_ICON_PLACEMENT)] ) + ) + { + case Icon_Top: + rect.bottom_y = iconarea.top_y + siz.height - 1; + break; + case Icon_Bottom: + rect.top_y = iconarea.bottom_y - siz.height + 1; + break; + case Icon_Left: + rect.right_x = iconarea.left_x + siz.width - 1; + break; + case Icon_Right: + rect.left_x = iconarea.right_x - siz.width + 1; + break; + case Icon_None: + second_none = 1; + case Icon_Middle: + default: + break; + } + + switch ( (Icon_Position)( user_global_values[(int)(ICON_PLACEMENT)] ) ) + { + case Icon_None: + first_none = 1; + default: + break; + case Icon_Top: + rect.top_y = iconarea.top_y; + rect.bottom_y = iconarea.top_y + siz.height - 1; + area.bottom_y = iconarea.top_y + siz.height - 1; + bigger_area.bottom_y = iconarea.top_y + (2* siz.height) - 1; + break; + case Icon_Bottom: + rect.bottom_y = iconarea.bottom_y; + rect.top_y = iconarea.bottom_y - siz.height + 1; + area.top_y = iconarea.bottom_y - siz.height + 1; + bigger_area.top_y = iconarea.bottom_y - (2*siz.height) + 1; + break; + case Icon_Left: + rect.left_x = iconarea.left_x; + rect.right_x = iconarea.left_x + siz.width - 1; + area.right_x = iconarea.left_x + siz.width - 1; + bigger_area.right_x = iconarea.left_x + (2*siz.width) - 1; + break; + case Icon_Right: + rect.right_x = iconarea.right_x; + rect.left_x = iconarea.right_x - siz.width + 1; + area.left_x = iconarea.right_x - siz.width + 1; + bigger_area.left_x = iconarea.right_x - (2*siz.width) + 1; + break; + } + + { ((center)).x = 1 + (((rect)).left_x + ((rect)).right_x) / 2; ((center)).y = 1 + (((rect)).top_y + ((rect)).bottom_y) / 2; }; + + if ( icon_positioned ) + { + center = (((Tilwin *)(uwinp->iconp)) -> position); + if ( first_none ) + result = Manage_Neighborhood_Icon_Open( uwinp, center ); + else + result = Tilwin_Open_Nearest_In_Area( uwinp->iconp, + area, center, siz ); + if (! result) + result = Tilwin_Open_Nearest_In_Area( uwinp->iconp, + iconarea, center, siz ); + if (! result) + result = Tilwin_Open_Nearest_In_Area( uwinp->iconp, + desk, center, siz ); + + } + else if ( first_none ) + { + result = Tilwin_Open_Best_In_Area( uwinp->iconp, + iconarea, siz ); + if (! result) + result = Tilwin_Open_Best_In_Area( uwinp->iconp, + desk, siz ); + } + + else if (second_none) + { + result = Tilwin_Open_Best_In_Area( uwinp->iconp, + area, siz ); + if (! result) + result = Tilwin_Open_Best_In_Area( uwinp->iconp, + bigger_area, siz ); + if (! result) + result = Tilwin_Open_Nearest_In_Area( uwinp->iconp, + iconarea, center, siz ); + if (! result) + result = Tilwin_Open_Nearest_In_Area( uwinp->iconp, + desk, center, siz ); + } + else + { + result = Tilwin_Open_Nearest_In_Area( uwinp->iconp, + area, center, siz ); + if (! result) + result = Tilwin_Open_Nearest_In_Area( uwinp->iconp, + bigger_area, center, siz ); + if (! result) + result = Tilwin_Open_Nearest_In_Area( uwinp->iconp, + iconarea, center, siz ); + if (! result) + result = Tilwin_Open_Nearest_In_Area( uwinp->iconp, + desk, center, siz ); + } + + if ( result && !uwinp->icon_positioned ) + { + uwinp->icon_positioned = 1; + (((Tilwin *)(uwinp->iconp)) -> position = ((((Tilwin *)(uwinp->iconp))->center))) + ; + } + + return result; +} + + + +void Manage_Update_Icons() +{ + Tilwinp winp; + Userwin *uwinp; + bool keep_updating; + + if ( ( user_global_options[(int)(USE_ICONS)] ) ) + { + Tilwin_Gen_Just_Opened_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( ( uwinp->winp == winp ) && (((Tilwin *)(uwinp->iconp)) -> Am_I_Open) ) + Tilwin_Close( uwinp->iconp ); + } + + Tilwin_Gen_Just_Modified_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( ( uwinp->winp == winp ) && (((Tilwin *)(uwinp->iconp)) -> Am_I_Open) ) + Tilwin_Close( uwinp->iconp ); + } + + keep_updating = 1; + while ( keep_updating ) + { + keep_updating = 0; + Tilwin_Gen_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( ( uwinp->iconp == winp ) + && ( ! (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ) + && uwinp->ever_opened ) + keep_updating |= Manage_Icon_Open( uwinp ); + } + } + } +} + + + +static bool drawing = 0; +static bool redrawing = 0; + + + +static void Manage_Update_Desktop() +{ + Tilwinp winp; + Userwin *uwinp; + + Drawwin_Start(); + + Tilwin_Gen_Just_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( uwinp->current_type == body ) + { + Manage_Unset( uwinp ); + Drawwin_Close( uwinp, + (! Tilwin_Is_Covered( + (((Tilwin *)(winp)) -> prev_rect) ) ) ); + uwinp->output_sent = 0; + if ( ( uwinp->client_state != 5 ) && + ( uwinp->client_state != -2 ) ) + Closed_Add( uwinp ); + } + else + { + DrawIcon_Close( uwinp ); + } + + if (! ( (((Tilwin *)(uwinp->winp)) -> Am_I_Open) || + (((Tilwin *)(uwinp->iconp)) -> Am_I_Open) ) ) + { + if ( uwinp->client_state == 5 ) + uwinp->wm_state = 5; + else + uwinp->wm_state = 4; + + + + if ( uwinp->client_state != -2 ) + Client_Set_State( uwinp ); + } + } + + Tilwin_Gen_Just_Modified_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( ( ! uwinp->positioned ) && + ( uwinp->current_type == body ) ) + (((Tilwin *)(winp)) -> position = ((((Tilwin *)(winp))->center))) + ; + } + + if ( drawing ) + { + Tilwin_Gen_Just_Modified_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( uwinp->current_type == body ) + Drawwin_Draw( uwinp ); + else + DrawIcon_Draw( uwinp ); + } + } + else + { + Tilwin_Gen_Just_Modified_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + if ( (! ( ( (((Tilwin *)(winp))->rect).left_x == (((Tilwin *)(winp))->prev_rect).left_x ) && ( (((Tilwin *)(winp))->rect).right_x == (((Tilwin *)(winp))->prev_rect).right_x ) && ( (((Tilwin *)(winp))->rect).top_y == (((Tilwin *)(winp))->prev_rect).top_y ) && ( (((Tilwin *)(winp))->rect).bottom_y == (((Tilwin *)(winp))->prev_rect).bottom_y ) ) ) || redrawing ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( uwinp->current_type != body ) + DrawIcon_Move_Close( uwinp ); + else if ( uwinp == switch_listener ) + Drawwin_Listener_Move_Close( uwinp, + (! Tilwin_Is_Covered( + (((Tilwin *)(winp)) -> prev_rect) ) ) ); + else + Drawwin_Move_Close( uwinp, + (! Tilwin_Is_Covered( + (((Tilwin *)(winp)) -> prev_rect) ) ) ); + } + + Tilwin_Gen_Just_Modified_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( (! ( ( (((Tilwin *)(winp))->rect).left_x == (((Tilwin *)(winp))->prev_rect).left_x ) && ( (((Tilwin *)(winp))->rect).right_x == (((Tilwin *)(winp))->prev_rect).right_x ) && ( (((Tilwin *)(winp))->rect).top_y == (((Tilwin *)(winp))->prev_rect).top_y ) && ( (((Tilwin *)(winp))->rect).bottom_y == (((Tilwin *)(winp))->prev_rect).bottom_y ) ) ) || redrawing ) + { + if ( uwinp->current_type != body ) + { + DrawIcon_Move_Open( uwinp ); + if ( redrawing ) + DrawIcon_Redraw( uwinp ); + } + else if ( uwinp == switch_listener ) + Drawwin_Listener_Move_Open( uwinp ); + else + { + Drawwin_Move_Open( uwinp ); + if ( redrawing ) + Drawwin_Retitle( uwinp ); + } + } + } + + if ( listener != prev_listener ) + { + if ( ( listener != (Userwin *)((void *)0) ) && + State_Was_Just_Modified(listener->winp) && + (! (! ( ( (((Tilwin *)(listener->winp))->rect).left_x == (((Tilwin *)(listener->winp))->prev_rect).left_x ) && ( (((Tilwin *)(listener->winp))->rect).right_x == (((Tilwin *)(listener->winp))->prev_rect).right_x ) && ( (((Tilwin *)(listener->winp))->rect).top_y == (((Tilwin *)(listener->winp))->prev_rect).top_y ) && ( (((Tilwin *)(listener->winp))->rect).bottom_y == (((Tilwin *)(listener->winp))->prev_rect).bottom_y ) ) )) && + ( listener->current_type == body ) ) + Drawwin_Display_Wrapping( listener ); + + if ( ( prev_listener != (Userwin *)((void *)0) ) && + State_Was_Just_Modified(prev_listener->winp) && + (! (! ( ( (((Tilwin *)(prev_listener->winp))->rect).left_x == (((Tilwin *)(prev_listener->winp))->prev_rect).left_x ) && ( (((Tilwin *)(prev_listener->winp))->rect).right_x == (((Tilwin *)(prev_listener->winp))->prev_rect).right_x ) && ( (((Tilwin *)(prev_listener->winp))->rect).top_y == (((Tilwin *)(prev_listener->winp))->prev_rect).top_y ) && ( (((Tilwin *)(prev_listener->winp))->rect).bottom_y == (((Tilwin *)(prev_listener->winp))->prev_rect).bottom_y ) ) )) && + ( prev_listener->current_type == body ) ) + Drawwin_Display_Wrapping( prev_listener ); + } + else + { + if ( ( touch != (Userwin *)((void *)0) ) && + State_Was_Just_Modified(touch->winp) && + (! (! ( ( (((Tilwin *)(touch->winp))->rect).left_x == (((Tilwin *)(touch->winp))->prev_rect).left_x ) && ( (((Tilwin *)(touch->winp))->rect).right_x == (((Tilwin *)(touch->winp))->prev_rect).right_x ) && ( (((Tilwin *)(touch->winp))->rect).top_y == (((Tilwin *)(touch->winp))->prev_rect).top_y ) && ( (((Tilwin *)(touch->winp))->rect).bottom_y == (((Tilwin *)(touch->winp))->prev_rect).bottom_y ) ) )) && + ( touch->current_type == body ) ) + Drawwin_Display_Wrapping( touch ); + } + } + + Tilwin_Gen_Just_Opened_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( winp == uwinp->winp ) + { + uwinp->current_type = body; + uwinp->sized = 1; + if ( ! uwinp->positioned ) + (((Tilwin *)(winp)) -> position = ((((Tilwin *)(winp))->center))) + ; + Drawwin_Open( uwinp ); + Closed_Remove( uwinp ); + uwinp->wm_state = 1; + } + else + { + if ( uwinp != rtl_uwinp ) + uwinp->current_type = icon; + DrawIcon_Open( uwinp ); + if ( ( (uwinp)->options[(int)(CLIENT_DRAWS_ICON)] ) ) + uwinp->wm_state = 2; + else + uwinp->wm_state = 3; + } + if ( uwinp->current_type != rtl ) + Client_Set_State( uwinp ); + } + + if (! drawing ) + { + Tilwin_Gen_Just_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( uwinp->winp == winp ) + Drawwin_Unmap( uwinp ); + } + } + + Drawwin_Finish(); + + switch_listener = (Userwin *)((void *)0); + prev_touch = touch; + touch = (Userwin *)((void *)0); +} + + + +void Manage_Save_State( uwinp ) + Userwin *uwinp; +{ + uwinp->undo_stamp = State_Get_Timestamp(); + + uwinp->prev_positioned = uwinp->positioned; + uwinp->prev_sized = uwinp->sized; + uwinp->prev_zoomed = uwinp->zoomed; + + uwinp->prev_group_state = uwinp->group_state; + + uwinp->prev_desire = (((Tilwin *)(uwinp->winp)) -> desired_size); + uwinp->prev_min = (((Tilwin *)(uwinp->winp)) -> min_size); + uwinp->prev_max = (((Tilwin *)(uwinp->winp)) -> max_size); + + uwinp->prev_rezoom_rect = uwinp->rezoom_rect; +} + + + +static void Manage_Exchange_State( uwinp ) + Userwin *uwinp; +{ + Size temp_size; + + if ( last_stamp != uwinp->undo_stamp ) + return; + + { bool temp; temp = uwinp->prev_positioned; uwinp->prev_positioned = uwinp->positioned; uwinp->positioned = temp; } + { bool temp; temp = uwinp->prev_sized; uwinp->prev_sized = uwinp->sized; uwinp->sized = temp; } + { bool temp; temp = uwinp->prev_zoomed; uwinp->prev_zoomed = uwinp->zoomed; uwinp->zoomed = temp; } + + { int temp; temp = uwinp->prev_group_state; uwinp->prev_group_state = uwinp->group_state; uwinp->group_state = temp; } + + { TWRectangle temp; temp = uwinp->prev_rezoom_rect; uwinp->prev_rezoom_rect = uwinp->rezoom_rect; uwinp->rezoom_rect = temp; } + + temp_size = (((Tilwin *)(uwinp->winp)) -> desired_size); + { (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->prev_desire).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->prev_desire).width ) & (~1); }; + uwinp->prev_desire = temp_size; + + temp_size = (((Tilwin *)(uwinp->winp)) -> min_size); + { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->prev_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->prev_min).width ) & (~1); }; + uwinp->prev_min = temp_size; + + temp_size = (((Tilwin *)(uwinp->winp)) -> max_size); + { (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (uwinp->prev_max).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (uwinp->prev_max).width ) & (~1); }; + uwinp->prev_max = temp_size; +} + + + +static void Manage_Cant_Undo() +{ + prev_listener = listener; + State_Start_Transaction(); + State_Commit_Transaction(); + last_stamp = State_Get_Timestamp(); +} + + + +void Manage_Start() +{ + if ( State_Transaction_Depth() == 0 ) + prev_listener = listener; + State_Start_Transaction(); +} + + + +static void Manage_Restart() +{ + Tilwin_Abort_Transaction(); + State_Start_Transaction(); +} + + + +extern bool Manage_Repopulate_Since(); +extern bool Manage_Aggressive_Repopulation(); + + + +static bool Manage_Unzoom_Repopulation() +{ + TimeStamp repop_since; + Tilwinp winp; + Userwin *uwinp; + bool result = 0; + + repop_since = last_stamp; + + Tilwin_Gen_Just_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( ( uwinp->current_type == body ) && + ( ( uwinp->zoomed ) || + ( ( uwinp->undo_stamp == last_stamp ) && + ( uwinp->prev_zoomed ) ) ) ) + { + if (! ( user_global_options[(int)(ONLY_REPOP_SINCE_ON_AUTO_UNZOOM)] ) + ) + repop_since = (TimeStamp)0; + else if ( uwinp->zoom_stamp < repop_since ) + repop_since = uwinp->zoom_stamp; + } + } + + Tilwin_Gen_Just_Modified_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( ( uwinp->current_type == body ) && + (! uwinp->zoomed ) && + ( uwinp->undo_stamp == last_stamp ) && + ( uwinp->prev_zoomed ) ) + { + if (! ( user_global_options[(int)(ONLY_REPOP_SINCE_ON_AUTO_UNZOOM)] ) + ) + repop_since = (TimeStamp)0; + else if ( uwinp->zoom_stamp < repop_since ) + repop_since = uwinp->zoom_stamp; + } + } + + if ( repop_since < last_stamp ) + { + { bool temp_val; temp_val = ( user_global_options[(int)(REQUIRE_PREV_POS_ON_AUTO_REPOP)] ); user_global_options[(int)(REQUIRE_PREV_POS_ON_AUTO_REPOP)] = ((temp_val || 1)); { if ( Manage_Repopulate_Since( repop_since, 0, 0, 1 ) ) result = 1; }; user_global_options[(int)(REQUIRE_PREV_POS_ON_AUTO_REPOP)] = (temp_val); } + + + + + + + if ( Manage_Repopulate_Since( + repop_since, 0, 0, 1 ) ) + result = 1; + } + + return result; +} + + + +static bool Manage_Finish_Repopulation() +{ + bool result; + + result = 0; + + if ( ( user_global_options[(int)(AUTO_REPOPULATE_LAST)] ) ) + if ( Manage_Repopulate_Since( + last_stamp, 0, 0, 1 ) ) + result = 1; + + if ( ( user_global_options[(int)(ALLOW_AGGRESSIVE_REPOPULATION)] ) ) + if ( Manage_Aggressive_Repopulation() ) + result = 1; + + if ( ( user_global_options[(int)(AUTO_REPOPULATE_ON_AUTO_UNZOOM)] ) + ) + { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (0); { if ( Manage_Unzoom_Repopulation() ) result = 1; }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } + + + + + + + return result; +} + + + +extern void Manage_Auto_Prorate(); +extern void Manage_Ordered_Desire(); + +void Manage_Finish( result ) + bool result; +{ + extern void Manage_Ordered_Desire(); + bool allow_repop_shrink, can_repop, can_size; + + if ( State_Transaction_Depth() > 1 ) + State_Commit_Transaction(); + + else if (! result) + { + Tilwin_Abort_Transaction(); + Draw_Flash(); + } + + else + { + last_stamp = State_Get_Timestamp(); + + allow_repop_shrink = + ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ) && + ( globals[(int)(ALLOW_AUTO_SHRINK_MORE_RECENT)] ) && + ( user_global_options[(int)(ALLOW_AUTO_SHRINK_ON_AUTO_REPOP)] ) + ; + + can_repop = ( unmatched_layouts <= 0 ) || + ( user_global_options[(int)(ENABLE_AUTO_REPOP_DURING_LAYOUT)] ); + + can_size = ( unmatched_layouts <= 0 ) || + ( user_global_options[(int)(ENABLE_AUTO_SIZING_DURING_LAYOUT)] ); + + Manage_Update_Icons(); + + if ( allow_repop_shrink && can_size && + ( user_global_options[(int)(AUTO_DESIRED_ENLARGE)] ) ) + Manage_Ordered_Desire(); + + if ( can_repop && Manage_Finish_Repopulation() ) + Manage_Update_Icons(); + + if ( can_size && + ( user_global_options[(int)(AUTO_DESIRED_ENLARGE)] ) ) + Manage_Ordered_Desire(); + + if ( can_size && + ( user_global_options[(int)(AUTO_PRORATE)] ) ) + while ( 1 ) + { + Manage_Auto_Prorate(); + + if ( can_size && + ( user_global_options[(int)(TRY_REPOP_AGAIN_AFT_AUTO_PRORATE)] ) + && + Manage_Finish_Repopulation() ) + Manage_Update_Icons(); + else + break; + } + + Manage_Update_Desktop(); + State_Commit_Transaction(); + } + +} + + + +bool Manage_Finish_Fixed_Completely( uwinp, result ) + Userwin *uwinp; + bool result; +{ + if ( result && ( uwinp != (Userwin *)((void *)0) ) ) + window_excursion + + else + Manage_Finish( result ); + return result; +} + + + +bool Manage_Finish_Fixed_Size( uwinp, result ) + Userwin *uwinp; + bool result; +{ + if ( result && ( uwinp != (Userwin *)((void *)0) ) ) + window_excursion + + else + Manage_Finish( result ); + return result; +} + + + +bool Manage_Finish_Locked( uwinp, result ) + Userwin *uwinp; + bool result; +{ + if ( result && ( uwinp != (Userwin *)((void *)0) ) ) + window_excursion + + else + Manage_Finish( result ); + return result; +} + + + +bool Manage_Finish_Minned( uwinp, result ) + Userwin *uwinp; + bool result; +{ + if ( result && ( uwinp != (Userwin *)((void *)0) ) ) + { Size temp_min; temp_min = (((Tilwin *)(uwinp->winp)) -> min_size); { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ ((((Tilwin *)(uwinp->winp)) -> size)).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ ((((Tilwin *)(uwinp->winp)) -> size)).width ) & (~1); }; + window_excursion +# 1576 "manage.c" + ; { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (temp_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (temp_min).width ) & (~1); }; } + + + else + Manage_Finish( result ); + return result; +} +# 1595 "manage.c" +static void Manage_Undo_Start() +{ + Tilwinp winp; + Userwin *uwinp; + + Tilwin_Undo(); + + Tilwin_Gen_Just_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( uwinp->winp == winp ) + Manage_Exchange_State( uwinp ); + } + + Tilwin_Gen_Just_Modified_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( uwinp->winp == winp ) + Manage_Exchange_State( uwinp ); + } + + Tilwin_Gen_Just_Opened_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( uwinp->winp == winp ) + Manage_Exchange_State( uwinp ); + } + + State_Continue_Transaction(); + + if ( listener != prev_listener ) + { + if ( listener != (Userwin *)((void *)0) ) + { + listener->listener = 0; + State_Act_Modified(listener->winp); + } + + { Userwin *temp; temp = listener; listener = prev_listener; prev_listener = temp; } + + touch = prev_touch; + + if ( listener != (Userwin *)((void *)0) ) + { + listener->listener = 1; + State_Act_Modified(listener->winp); + } + } + +} + + + +void Manage_Undo() +{ + Tilwinp winp; + Userwin *uwinp; + + Manage_Undo_Start(); + + if ( ( user_global_options[(int)(USE_ICONS)] ) ) + { + Tilwin_Gen_Just_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if (! ( (((Tilwin *)(uwinp->winp)) -> Am_I_Open) || + (((Tilwin *)(uwinp->iconp)) -> Am_I_Open) ) ) + Manage_Icon_Open( uwinp ); + } + } + + { bool temp_val; temp_val = ( user_global_options[(int)(AUTO_PRORATE)] ); user_global_options[(int)(AUTO_PRORATE)] = (0); { bool temp_val; temp_val = ( user_global_options[(int)(AUTO_REPOPULATE_LAST)] ); user_global_options[(int)(AUTO_REPOPULATE_LAST)] = (0); { bool temp_val; temp_val = ( user_global_options[(int)(ALLOW_AGGRESSIVE_REPOPULATION)] ); user_global_options[(int)(ALLOW_AGGRESSIVE_REPOPULATION)] = (0); Manage_Finish( 1 ); user_global_options[(int)(ALLOW_AGGRESSIVE_REPOPULATION)] = (temp_val); }; user_global_options[(int)(AUTO_REPOPULATE_LAST)] = (temp_val); }; user_global_options[(int)(AUTO_PRORATE)] = (temp_val); } + + + + +} + + + +void Manage_Redraw( uwinp ) + Userwin *uwinp; +{ + if ( uwinp->current_type == body ) + Drawwin_Redraw(uwinp); + else + DrawIcon_Redraw(uwinp); +} + + + +void Manage_Redraw_All() +{ + Tilwinp winp; + + if ( Drawwin_Redraw_All( ( desktop_rect ) ) ) + return; + + Tilwin_Gen_Open_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + Manage_Redraw( ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))) ); +} + + + +void Manage_Finish_Layout() +{ + Manage_Start(); + ( unmatched_layouts = 0 ); + Manage_Finish( 1 ); +} + + + +void Manage_Initial_Icon_Open( uwinp ) + Userwin *uwinp; +{ + Manage_Start(); + State_Note_Use(uwinp->winp); + if ( uwinp->client_state != 5 ) + { + Closed_Add( uwinp ); + if ( ( user_global_options[(int)(USE_ICONS)] ) ) + { + if (! uwinp->layout_found ) + Manage_Icon_Open( uwinp ); + else + { bool temp_val; temp_val = ( globals[(int)(ENABLE_GRAVITY)] ); globals[(int)(ENABLE_GRAVITY)] = (0); { bool temp_val; temp_val = ( (uwinp)->options[(int)(REQUIRE_PREVIOUS_ICON_POSITION)] ); ((uwinp)->options[(int)(REQUIRE_PREVIOUS_ICON_POSITION)]) = (1); Manage_Icon_Open( uwinp ); ((uwinp)->options[(int)(REQUIRE_PREVIOUS_ICON_POSITION)]) = (temp_val); }; globals[(int)(ENABLE_GRAVITY)] = (temp_val); } + + + + } + } + Manage_Finish( 1 ); +} + + + +void Manage_Prepare_Open( uwinp ) + Userwin *uwinp; +{ + if (! uwinp->layout) + Manage_Layout( uwinp ); + + (((Tilwin *)(uwinp->winp)) -> position = ((((Tilwin *)(uwinp->winp))->center))) + ; + + (((Tilwin *)(uwinp->iconp)) -> position = ((((Tilwin *)(uwinp->iconp))->center))) + ; + + Drawwin_Insert( uwinp ); +} + + + +void Manage_Note_Output( uwinp ) + Userwin *uwinp; +{ + if (! uwinp->layout) + Manage_Layout( uwinp ); + + if ( (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ) + { + if ( ( (uwinp)->options[(int)(NOTE_OPEN_OUTPUT)] ) ) + State_Note_Use(uwinp->winp); + } + else if ( ( (uwinp)->options[(int)(NOTE_CLOSED_OUTPUT)] ) ) + State_Note_Use(uwinp->winp); + + if (! uwinp->output_sent) + { + uwinp->output_sent = 1; + if ( (((Tilwin *)(uwinp->iconp)) -> Am_I_Open) ) + DrawIcon_Note_Output( uwinp ); + } +} + + + +void Manage_Note_Input( uwinp ) + Userwin *uwinp; +{ + if ( (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ) + { + if ( ( (uwinp)->options[(int)(NOTE_OPEN_INPUT)] ) ) + State_Note_Use(uwinp->winp); + else if ( ( uwinp == listener ) && + ( (uwinp)->options[(int)(NOTE_LISTENER_INPUT)] ) ) + State_Note_Use(uwinp->winp); + } + else if ( ( (uwinp)->options[(int)(NOTE_CLOSED_INPUT)] ) ) + State_Note_Use(uwinp->winp); +} + + + +void Manage_Init_Rtl() +{ + Userwin *uwinp; + + Manage_Start(); + uwinp = Manage_Init_Window(); + rtl_uwinp = uwinp; + + uwinp->winnum = 0; + uwinp->connection = -1; + + uwinp->client_state = -2; + uwinp->current_type = rtl; + uwinp->layout = 1; + uwinp->layout_found = 1; + + ((uwinp)->options[(int)(SHOW_ICON)]) = (( user_global_options[(int)(USE_RTL_ICON)] )) + ; + + ( ((Tilwin *)(uwinp->iconp)) -> options[ (int) FIXED_SIZE ] ) = (1); + + ((uwinp)->options[(int)(SAVE_IN_LAYOUT)]) = (0); + ((uwinp)->options[(int)(CONSIDER_FOR_REPOPULATION)]) = (0); + + DrawIcon_Init_Rtl( uwinp ); + + if ( ( user_global_options[(int)(USE_ICONS)] ) ) + Manage_Icon_Open( uwinp ); + + Manage_Finish( 1 ); +} + + + +void Manage_Start_Repaint() +{ + State_Start_Transaction(); +} + + + +void Manage_Repaint_Rect( rect ) + TWRectangle rect; +{ + Tilwin_Modify_Covered_Windows( rect ); + Drawwin_Draw_Background( rect ); +} + + + +void Manage_Finish_Repaint() +{ + Tilwinp winp; + State_Commit_Transaction(); + + Tilwin_Gen_Just_Modified_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + { + Manage_Redraw( ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))) ); + } + + Manage_Cant_Undo(); +} + + + +void Manage_Set_Desktop_Size( desksiz ) + Size desksiz; +{ + Tilwin_Set_Desktop_Size( desksiz ); + Drawwin_Draw_Background( ( desktop_rect ) ); +} + + + +static void Manage_Reorganize_Desktop( desksiz ) + Size desksiz; +{ + Tilwinp winp, head, middle, tail; + Userwin *uwinp; + TWPoint center; + TWPoint pos; + TWRectangle rect; + Size siz; + Size old_desksiz; + TWRectangle old_deskrect, deskrect; + + head = middle = tail = (Tilwinp)((void *)0); + + Tilwin_Gen_Open_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( uwinp->current_type != body ) + { + if ( ( user_global_options[(int)(USE_ICONS)] ) && + ( uwinp != rtl_uwinp ) ) + { + if ( tail == (Tilwinp)((void *)0) ) tail = winp; + if ( middle == (Tilwinp)((void *)0) ) middle = winp; + (((Tilwin *)(winp))->data) = (pointer)(head); + head = winp; + } + } + else if ( ( ((Tilwin *)(winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) ) + { + if ( middle == (Tilwinp)((void *)0) ) + { + if ( tail == (Tilwinp)((void *)0) ) tail = winp; + (((Tilwin *)(winp))->data) = (pointer)(head); + head = winp; + middle = winp; + } + else if ( middle == tail ) + { + (((Tilwin *)(tail))->data) = (pointer)(winp); + (((Tilwin *)(winp))->data) = (pointer)((Tilwinp)((void *)0)); + tail = winp; + middle = winp; + } + else + { + (((Tilwin *)(winp))->data) = (pointer)((((Tilwin *)(middle))->data)); + (((Tilwin *)(middle))->data) = (pointer)(winp); + middle = winp; + } + } + else + { + if ( head == (Tilwinp)((void *)0) ) + head = winp; + else + (((Tilwin *)(tail))->data) = (pointer)(winp); + (((Tilwin *)(winp))->data) = (pointer)((Tilwinp)((void *)0)); + tail = winp; + } + + Tilwin_Auto_Close( winp ); + } + + old_desksiz = ( desktop_size ); + old_deskrect = ( desktop_rect ); + Tilwin_Set_Desktop_Size( desksiz ); + desksiz = ( desktop_size ); + deskrect = ( desktop_rect ); + + Tilwin_Gen_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + + if ( uwinp->winp == winp ) + Manage_Retitle( uwinp ); + + center = (((Tilwin *)(winp))->center); + pos = (((Tilwin *)(winp)) -> position); + rect = (((Tilwin *)(winp)) -> rect); + + siz = (((Tilwin *)(winp)) -> size); + + if ( desksiz.width < old_desksiz.width ) + { + siz.width = ( siz.width * desksiz.width ) / + old_desksiz.width; + center.x = ( center.x * desksiz.width ) / + old_desksiz.width; + pos.x = ( pos.x * desksiz.width ) / + old_desksiz.width; + } + else if ( rect.right_x == old_deskrect.right_x ) + { + center.x += ( desksiz.width - old_desksiz.width ); + pos.x += ( desksiz.width - old_desksiz.width ); + } + else if ( rect.left_x != 0 ) + { + center.x = ( center.x * desksiz.width ) / + old_desksiz.width; + pos.x = ( pos.x * desksiz.width ) / + old_desksiz.width; + } + + if ( desksiz.height < old_desksiz.height ) + { + siz.height = ( siz.height * desksiz.height ) / + old_desksiz.height; + center.y = ( center.y * desksiz.height ) / + old_desksiz.height; + pos.y = ( pos.y * desksiz.height ) / + old_desksiz.height; + } + else if ( rect.bottom_y == old_deskrect.bottom_y ) + { + center.y += ( desksiz.height - old_desksiz.height ); + pos.y += ( desksiz.height - old_desksiz.height ); + } + else if ( rect.top_y != 0 ) + { + center.y = ( center.y * desksiz.height ) / + old_desksiz.height; + pos.y = ( pos.y * desksiz.height ) / + old_desksiz.height; + } + + { if ((siz).width < ((((Tilwin *)(winp)) -> max_size)).width) (siz).width = (siz).width; else (siz).width = ((((Tilwin *)(winp)) -> max_size)).width; if ((siz).height < ((((Tilwin *)(winp)) -> max_size)).height) (siz).height = (siz).height; else (siz).height = ((((Tilwin *)(winp)) -> max_size)).height; } + { if ((siz).width > ((((Tilwin *)(winp)) -> min_size)).width) (siz).width = (siz).width; else (siz).width = ((((Tilwin *)(winp)) -> min_size)).width; if ((siz).height > ((((Tilwin *)(winp)) -> min_size)).height) (siz).height = (siz).height; else (siz).height = ((((Tilwin *)(winp)) -> min_size)).height; } + + Tilwin_Set( winp, center, siz ); + (((Tilwin *)(winp)) -> position = (pos)); + } + + if ( ( user_global_options[(int)(USE_ICONS)] ) ) + Manage_Icon_Open( rtl_uwinp ); + + for ( winp = head; winp != (Tilwinp)((void *)0); + winp = (Tilwinp)(((Tilwin *)(winp))->data) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( uwinp->current_type == body ) + Tilwin_Open_Nearest_In_Area( winp, deskrect, + (((Tilwin *)(winp))->center), (((Tilwin *)(winp)) -> size) ); + else if ( ( user_global_options[(int)(USE_ICONS)] ) ) + Manage_Icon_Open( uwinp ); + } + + if ( ( user_global_options[(int)(AUTO_REPOP_ON_DESKTOP_RESIZE)] ) ) + Manage_Repopulate_Since( (TimeStamp)0, 1, 0, 1 ); + +} + + + +void Manage_Resize_Desktop( desksiz ) + Size desksiz; +{ + drawing = 1; + Manage_Start(); + Manage_Reorganize_Desktop( desksiz ); + Drawwin_Draw_Background( ( desktop_rect ) ); + Manage_Finish( 1 ); + drawing = 0; + Manage_Cant_Undo(); +} + + + +void Manage_Profile( filnam ) + char *filnam; +{ + int primary, secondary; + Userwin *uwinp; + Tilwinp winp; + + Manage_Start(); + + secondary = ( user_global_values[(int)(SECONDARY_ICON_PLACEMENT)] ); + primary = ( user_global_values[(int)(ICON_PLACEMENT)] ); + + if (! ( user_global_options[(int)(ALLOW_LISTENER_TO_CLOSE)] )) + { + if ( listener != (Userwin *)((void *)0) ) + ( ((Tilwin *)(listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (listener->regular_manual_close) + ; + if ( sublistener != (Userwin *)((void *)0) ) + ( ((Tilwin *)(sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (sublistener->regular_manual_close) + ; + } + + Profile_Update( filnam ); + + ((rtl_uwinp)->options[(int)(SHOW_ICON)]) = (( user_global_options[(int)(USE_RTL_ICON)] )) + ; + + Manage_Reorganize_Desktop( ( desktop_size ) ); + + Tilwin_Gen_Open_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( uwinp->iconp == winp ) + { + if ( ( secondary != + ( user_global_values[(int)(SECONDARY_ICON_PLACEMENT)] ) ) || + ( primary != + ( user_global_values[(int)(ICON_PLACEMENT)] ) ) ) + (((Tilwin *)(winp)) -> position = ((((Tilwin *)(winp))->center))); + } + } + + if (! ( user_global_options[(int)(ALLOW_LISTENER_TO_CLOSE)] )) + { + if ( listener != (Userwin *)((void *)0) ) + ( ((Tilwin *)(listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (1) + ; + if ( sublistener != (Userwin *)((void *)0) ) + ( ((Tilwin *)(sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (1) + ; + } + + redrawing = 1; + Manage_Finish( 1 ); + redrawing = 0; +} +# 2137 "manage.c" +static bool Manage_Rezoom( uwinp, siz ) + Userwin *uwinp; + Size siz; +{ + bool result; + + { if ( (((Tilwin *)(uwinp->winp)) -> rect).top_y == 0 ) window_excursion else if ( (((Tilwin *)(uwinp->winp)) -> rect).bottom_y == ( ( desktop_size ).height - 1 ) ) window_excursion else if ( (((Tilwin *)(uwinp->winp)) -> rect).top_y == uwinp->rezoom_rect.top_y ) window_excursion else if ( (((Tilwin *)(uwinp->winp)) -> rect).bottom_y == uwinp->rezoom_rect.bottom_y ) window_excursion else { if ( (((Tilwin *)(uwinp->winp)) -> rect).left_x == 0 ) window_excursion else if ( (((Tilwin *)(uwinp->winp)) -> rect).right_x == ( ( desktop_size ).width - 1 ) ) window_excursion else if ( (((Tilwin *)(uwinp->winp)) -> rect).left_x == uwinp->rezoom_rect.left_x ) window_excursion else if ( (((Tilwin *)(uwinp->winp)) -> rect).right_x == uwinp->rezoom_rect.right_x ) window_excursion else result = Tilwin_Set_Size( uwinp->winp, siz ); }; } + + ; + return result; +} + + + +static bool Manage_Rezoom_In_Area( uwinp, rect, pt, siz ) + Userwin *uwinp; + TWRectangle rect; + TWPoint pt; + Size siz; +{ + bool result; + + { if ( (((Tilwin *)(uwinp->winp)) -> rect).top_y == 0 ) window_excursion else if ( (((Tilwin *)(uwinp->winp)) -> rect).bottom_y == ( ( desktop_size ).height - 1 ) ) window_excursion else if ( (((Tilwin *)(uwinp->winp)) -> rect).top_y == uwinp->rezoom_rect.top_y ) window_excursion else if ( (((Tilwin *)(uwinp->winp)) -> rect).bottom_y == uwinp->rezoom_rect.bottom_y ) window_excursion else { if ( (((Tilwin *)(uwinp->winp)) -> rect).left_x == 0 ) window_excursion else if ( (((Tilwin *)(uwinp->winp)) -> rect).right_x == ( ( desktop_size ).width - 1 ) ) window_excursion else if ( (((Tilwin *)(uwinp->winp)) -> rect).left_x == uwinp->rezoom_rect.left_x ) window_excursion else if ( (((Tilwin *)(uwinp->winp)) -> rect).right_x == uwinp->rezoom_rect.right_x ) window_excursion else result = Tilwin_Open_Nearest_In_Area( uwinp->winp, rect, pt, siz ); }; } + + + ; + return result; +} + + + +static bool Manage_Neighborhood_Rezoom( uwinp, siz ) + Userwin *uwinp; + Size siz; +{ + TWRectangle rect; + TWPoint pt; + bool result; + + pt = (((Tilwin *)(uwinp->winp))->center); + rect = Manage_Neighborhood_Rectangle( 0.5, pt, siz ); + + { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (0); { window_excursion }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); } + + + + + + ; + + if (! result) + result = Tilwin_Open_Nearest_In_Area( uwinp->winp, rect, pt, siz ); + + return result; +} + + + +static bool Manage_Neighborhood_Unzoom_Open( uwinp, siz ) + Userwin *uwinp; + Size siz; +{ + TWRectangle rect; + TWPoint pt; + bool result; + + pt = (((Tilwin *)(uwinp->winp))->center); + rect = (((Tilwin *)(uwinp->winp)) -> rect); + + result = Manage_Rezoom_In_Area( uwinp, rect, pt, siz ); + + if (! result) + result = Tilwin_Open_Nearest_In_Area( + uwinp->winp, rect, pt, siz ); + + if ( (! result) && + (! ( (uwinp)->options[(int)(REQUIRE_PREV_POS)] ) + ) ) + result = Tilwin_Open_Nearest_In_Area( + uwinp->winp, + ( desktop_rect ), + pt, siz ); + + return result; +} + + + +static void Manage_Setup_Zoom( uwinp, full ) + Userwin *uwinp; + bool full; +{ + Size siz; + + Manage_Save_State( uwinp ); + + uwinp->zoomed = 1; + + uwinp->regular_min = (((Tilwin *)(uwinp->winp)) -> min_size); + uwinp->regular_size = (((Tilwin *)(uwinp->winp)) -> desired_size); + + if ( full ) + { + if ( ( (uwinp)->options[(int)(ZOOM_FULL_HEIGHT)] ) ) + uwinp->zoom_size.height = ( desktop_size ).height; + if ( ( (uwinp)->options[(int)(ZOOM_FULL_WIDTH)] ) ) + uwinp->zoom_size.width = ( desktop_size ).width; + } + + if ( ( user_global_options[(int)(RESET_ZOOM_MIN)] ) ) + { + if ( ( user_global_options[(int)(RESET_ZOOM_MIN_USES_DESIRE)] ) ) + { if ((uwinp->regular_size).width < ((((Tilwin *)(uwinp->winp)) -> size)).width) (siz).width = (uwinp->regular_size).width; else (siz).width = ((((Tilwin *)(uwinp->winp)) -> size)).width; if ((uwinp->regular_size).height < ((((Tilwin *)(uwinp->winp)) -> size)).height) (siz).height = (uwinp->regular_size).height; else (siz).height = ((((Tilwin *)(uwinp->winp)) -> size)).height; } + + else + siz = (((Tilwin *)(uwinp->winp)) -> size); + + if ( ( user_global_options[(int)(RESET_ZOOM_MIN_ALLOWS_DECREASE)] ) ) + uwinp->zoom_min = siz; + else + { if ((uwinp->zoom_min).width > (siz).width) (uwinp->zoom_min).width = (uwinp->zoom_min).width; else (uwinp->zoom_min).width = (siz).width; if ((uwinp->zoom_min).height > (siz).height) (uwinp->zoom_min).height = (uwinp->zoom_min).height; else (uwinp->zoom_min).height = (siz).height; } + } + + if ( ( (uwinp)->options[(int)(ZOOM_TIED_TO_DESIRE)] ) ) + { + uwinp->zoom_min = uwinp->zoom_size = uwinp->regular_size; + } + + if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MINIMUMS)] ) ) + { + { if ((uwinp->zoom_min).width > (uwinp->client_min).width) (uwinp->zoom_min).width = (uwinp->zoom_min).width; else (uwinp->zoom_min).width = (uwinp->client_min).width; if ((uwinp->zoom_min).height > (uwinp->client_min).height) (uwinp->zoom_min).height = (uwinp->zoom_min).height; else (uwinp->zoom_min).height = (uwinp->client_min).height; } + + { if ((uwinp->zoom_size).width > (uwinp->client_min).width) (uwinp->zoom_size).width = (uwinp->zoom_size).width; else (uwinp->zoom_size).width = (uwinp->client_min).width; if ((uwinp->zoom_size).height > (uwinp->client_min).height) (uwinp->zoom_size).height = (uwinp->zoom_size).height; else (uwinp->zoom_size).height = (uwinp->client_min).height; } + + } + + { if ((uwinp->zoom_min).width > (uwinp->regular_min).width) (uwinp->zoom_min).width = (uwinp->zoom_min).width; else (uwinp->zoom_min).width = (uwinp->regular_min).width; if ((uwinp->zoom_min).height > (uwinp->regular_min).height) (uwinp->zoom_min).height = (uwinp->zoom_min).height; else (uwinp->zoom_min).height = (uwinp->regular_min).height; } + + { if ((uwinp->zoom_size).width > (uwinp->regular_size).width) (uwinp->zoom_size).width = (uwinp->zoom_size).width; else (uwinp->zoom_size).width = (uwinp->regular_size).width; if ((uwinp->zoom_size).height > (uwinp->regular_size).height) (uwinp->zoom_size).height = (uwinp->zoom_size).height; else (uwinp->zoom_size).height = (uwinp->regular_size).height; } + + + if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MAXIMUMS)] ) ) + { + { if ((uwinp->zoom_min).width < (uwinp->client_max).width) (uwinp->zoom_min).width = (uwinp->zoom_min).width; else (uwinp->zoom_min).width = (uwinp->client_max).width; if ((uwinp->zoom_min).height < (uwinp->client_max).height) (uwinp->zoom_min).height = (uwinp->zoom_min).height; else (uwinp->zoom_min).height = (uwinp->client_max).height; } + + { if ((uwinp->zoom_size).width < (uwinp->client_max).width) (uwinp->zoom_size).width = (uwinp->zoom_size).width; else (uwinp->zoom_size).width = (uwinp->client_max).width; if ((uwinp->zoom_size).height < (uwinp->client_max).height) (uwinp->zoom_size).height = (uwinp->zoom_size).height; else (uwinp->zoom_size).height = (uwinp->client_max).height; } + + } + + { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->zoom_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->zoom_min).width ) & (~1); }; + { (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->zoom_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->zoom_size).width ) & (~1); }; + +} + + + +static void Manage_Setup_Unzoom( uwinp ) + Userwin *uwinp; +{ + Manage_Save_State( uwinp ); + + uwinp->zoomed = 0; + + uwinp->zoom_min = (((Tilwin *)(uwinp->winp)) -> min_size); + uwinp->zoom_size = (((Tilwin *)(uwinp->winp)) -> desired_size); + + if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MAXIMUMS)] ) ) + { + { if ((uwinp->regular_min).width < (uwinp->client_max).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = (uwinp->client_max).width; if ((uwinp->regular_min).height < (uwinp->client_max).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = (uwinp->client_max).height; } + + { if ((uwinp->regular_size).width < (uwinp->client_max).width) (uwinp->regular_size).width = (uwinp->regular_size).width; else (uwinp->regular_size).width = (uwinp->client_max).width; if ((uwinp->regular_size).height < (uwinp->client_max).height) (uwinp->regular_size).height = (uwinp->regular_size).height; else (uwinp->regular_size).height = (uwinp->client_max).height; } + + } + + { if ((uwinp->regular_min).width < (uwinp->zoom_min).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = (uwinp->zoom_min).width; if ((uwinp->regular_min).height < (uwinp->zoom_min).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = (uwinp->zoom_min).height; } + + { if ((uwinp->regular_size).width < (uwinp->zoom_size).width) (uwinp->regular_size).width = (uwinp->regular_size).width; else (uwinp->regular_size).width = (uwinp->zoom_size).width; if ((uwinp->regular_size).height < (uwinp->zoom_size).height) (uwinp->regular_size).height = (uwinp->regular_size).height; else (uwinp->regular_size).height = (uwinp->zoom_size).height; } + + + if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MINIMUMS)] ) ) + { + { if ((uwinp->regular_min).width > (uwinp->client_min).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = (uwinp->client_min).width; if ((uwinp->regular_min).height > (uwinp->client_min).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = (uwinp->client_min).height; } + + { if ((uwinp->regular_size).width > (uwinp->client_min).width) (uwinp->regular_size).width = (uwinp->regular_size).width; else (uwinp->regular_size).width = (uwinp->client_min).width; if ((uwinp->regular_size).height > (uwinp->client_min).height) (uwinp->regular_size).height = (uwinp->regular_size).height; else (uwinp->regular_size).height = (uwinp->client_min).height; } + + } + + { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->regular_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->regular_min).width ) & (~1); }; + { (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->regular_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->regular_size).width ) & (~1); }; +} + + + +static Size Manage_Get_Zoom_Size( uwinp ) + Userwin *uwinp; +{ + Size cursiz, siz; + + cursiz = (((Tilwin *)(uwinp->winp)) -> size); + + { if ((uwinp->zoom_size).width > (uwinp->zoom_min).width) (siz).width = (uwinp->zoom_size).width; else (siz).width = (uwinp->zoom_min).width; if ((uwinp->zoom_size).height > (uwinp->zoom_min).height) (siz).height = (uwinp->zoom_size).height; else (siz).height = (uwinp->zoom_min).height; } + + if ( (((Tilwin *)(uwinp->winp)) -> Am_I_Open) && + ( siz.width < cursiz.width ) && + ( siz.height < cursiz.height ) ) + siz = cursiz; + + return Tilwin_Checked_Size( uwinp->winp, siz ); +} + + + +static Size Manage_Get_Unzoom_Open_Size( uwinp ) + Userwin *uwinp; +{ + Size siz; + + { if ((uwinp->zoom_size).width > (uwinp->regular_min).width) (siz).width = (uwinp->zoom_size).width; else (siz).width = (uwinp->regular_min).width; if ((uwinp->zoom_size).height > (uwinp->regular_min).height) (siz).height = (uwinp->zoom_size).height; else (siz).height = (uwinp->regular_min).height; } + + return Tilwin_Checked_Size( uwinp->winp, siz ); +} + + + +static Size Manage_Get_Closed_Unzoom_Size( uwinp ) + Userwin *uwinp; +{ + Size siz; + + { if ((uwinp->regular_size).width > (uwinp->regular_min).width) (siz).width = (uwinp->regular_size).width; else (siz).width = (uwinp->regular_min).width; if ((uwinp->regular_size).height > (uwinp->regular_min).height) (siz).height = (uwinp->regular_size).height; else (siz).height = (uwinp->regular_min).height; } + { if ((siz).width < ((((Tilwin *)(uwinp->winp)) -> size)).width) (siz).width = (siz).width; else (siz).width = ((((Tilwin *)(uwinp->winp)) -> size)).width; if ((siz).height < ((((Tilwin *)(uwinp->winp)) -> size)).height) (siz).height = (siz).height; else (siz).height = ((((Tilwin *)(uwinp->winp)) -> size)).height; } + + return Tilwin_Checked_Size( uwinp->winp, siz ); +} + + + +static Size Manage_Get_Open_Unzoom_Size( uwinp ) + Userwin *uwinp; +{ + Size siz; + + { (siz).width = (uwinp->rezoom_rect).right_x - (uwinp->rezoom_rect).left_x + 1; (siz).height = (uwinp->rezoom_rect).bottom_y - (uwinp->rezoom_rect).top_y + 1; }; + { if ((siz).width < (uwinp->regular_size).width) (siz).width = (siz).width; else (siz).width = (uwinp->regular_size).width; if ((siz).height < (uwinp->regular_size).height) (siz).height = (siz).height; else (siz).height = (uwinp->regular_size).height; } + { if ((siz).width < ((((Tilwin *)(uwinp->winp)) -> size)).width) (siz).width = (siz).width; else (siz).width = ((((Tilwin *)(uwinp->winp)) -> size)).width; if ((siz).height < ((((Tilwin *)(uwinp->winp)) -> size)).height) (siz).height = (siz).height; else (siz).height = ((((Tilwin *)(uwinp->winp)) -> size)).height; } + { if ((siz).width > (uwinp->regular_min).width) (siz).width = (siz).width; else (siz).width = (uwinp->regular_min).width; if ((siz).height > (uwinp->regular_min).height) (siz).height = (siz).height; else (siz).height = (uwinp->regular_min).height; } + + return Tilwin_Checked_Size( uwinp->winp, siz ); +} + + + +static bool Manage_Followup_Zoom( uwinp ) + Userwin *uwinp; +{ + Size siz; + bool result; + + siz = Manage_Get_Zoom_Size( uwinp ); + + if ( ( siz.width < uwinp->zoom_min.width ) || + ( siz.height < uwinp->zoom_min.height ) ) + result = 0; + else + { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( (uwinp)->options[(int)(ALLOW_ZOOM_CLOSE)] ))); { result = Manage_Neighborhood_Rezoom( uwinp, siz ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); } + + + + + + if ( result ) + { + { if ((siz).width > ((((Tilwin *)(uwinp->winp)) -> prev_size)).width) (siz).width = (siz).width; else (siz).width = ((((Tilwin *)(uwinp->winp)) -> prev_size)).width; if ((siz).height > ((((Tilwin *)(uwinp->winp)) -> prev_size)).height) (siz).height = (siz).height; else (siz).height = ((((Tilwin *)(uwinp->winp)) -> prev_size)).height; } + ; + + { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && 0)); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && 0)); Tilwin_Enlarge_Nearest( uwinp->winp, (((Tilwin *)(uwinp->winp)) -> prev_center), siz ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } + + + + + + State_Act_Modified(uwinp->winp); + uwinp->zoom_stamp = State_Get_Timestamp(); + uwinp->rezoom_rect = (((Tilwin *)(uwinp->winp)) -> prev_rect); + } + else + Manage_Setup_Unzoom( uwinp ); + + return result; +} + + + +static void Manage_Followup_Unzoom( uwinp, explicit ) + Userwin *uwinp; + bool explicit; +{ + bool force_repop; + bool force_shrink; + bool allow_shrink; + TimeStamp repop_since; + TWPoint pt; + Size siz; + + if (! (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ) + Manage_Rezoom( uwinp, Manage_Get_Closed_Unzoom_Size( uwinp ) ); + else + { + State_Act_Modified(uwinp->winp); + + if ( explicit ) + { + allow_shrink = + ( (uwinp)->options[(int)(ALLOW_SHRINK_ON_UNZOOM)] ); + force_shrink = + ( (uwinp)->options[(int)(FORCE_SHRINK_ON_UNZOOM)] ); + force_repop = ( user_global_options[(int)(AUTO_REPOP_ON_EXPLICIT_UNZOOM)] ) + ; + if ( ( user_global_options[(int)(ONLY_REPOP_SINCE_ON_EXPL_UNZOOM)] ) + ) + repop_since = uwinp->zoom_stamp; + else + repop_since = (TimeStamp)0; + } + else + { + allow_shrink = + ( (uwinp)->options[(int)(ALLOW_SHRINK_ON_UNZOOM)] ) && + ( (uwinp)->options[(int)(ALLOW_SHRINK_ON_AUTO_UNZOOM)] ); + force_shrink = + ( (uwinp)->options[(int)(FORCE_SHRINK_ON_UNZOOM)] ) && + ( (uwinp)->options[(int)(FORCE_SHRINK_ON_AUTO_UNZOOM)] ); + force_repop = ( user_global_options[(int)(AUTO_REPOPULATE_ON_AUTO_UNZOOM)] ) + ; + if ( ( user_global_options[(int)(ONLY_REPOP_SINCE_ON_AUTO_UNZOOM)] ) + ) + repop_since = uwinp->zoom_stamp; + else + repop_since = (TimeStamp)0; + } + + if ( allow_shrink || force_shrink ) + { + { ((pt)).x = 1 + (((uwinp->rezoom_rect)).left_x + ((uwinp->rezoom_rect)).right_x) / 2; ((pt)).y = 1 + (((uwinp->rezoom_rect)).top_y + ((uwinp->rezoom_rect)).bottom_y) / 2; }; + siz = Manage_Get_Open_Unzoom_Size( uwinp ); + { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (0); { if ( Tilwin_Set( uwinp->winp, pt, siz ) ) (((Tilwin *)(uwinp->winp)) -> position = (pt)); else Manage_Rezoom( uwinp, siz ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); } + + + + + + + } + + if ( force_repop ) + { + { bool temp_val; temp_val = ( user_global_options[(int)(REQUIRE_PREV_POS_ON_AUTO_REPOP)] ); user_global_options[(int)(REQUIRE_PREV_POS_ON_AUTO_REPOP)] = (1); Manage_Repopulate_Since( repop_since, 0, 0, 1 ); user_global_options[(int)(REQUIRE_PREV_POS_ON_AUTO_REPOP)] = (temp_val); } + + ; + } + + if ( ( user_global_options[(int)(AUTO_DESIRED_ENLARGE)] ) ) + window_excursion; + + + if ( allow_shrink && (! force_shrink) ) + { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (0); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (0); { if ( ( user_global_options[(int)(AUTO_DESIRED_ENLARGE)] ) ) Tilwin_Enlarge_Nearest( uwinp->winp, (((Tilwin *)(uwinp->winp)) -> prev_center), (((Tilwin *)(uwinp->winp)) -> prev_size) ); else Tilwin_Open_Nearest_In_Area( uwinp->winp, (((Tilwin *)(uwinp->winp)) -> prev_rect), (((Tilwin *)(uwinp->winp)) -> prev_center), (((Tilwin *)(uwinp->winp)) -> prev_size) ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } +# 2517 "manage.c" + if ( force_repop ) + { + Manage_Repopulate_Since( repop_since, + 0, 0, 1 ); + } + } + + uwinp->rezoom_rect = (((Tilwin *)(uwinp->winp)) -> prev_rect); +} + + + +static bool Manage_Followup_Unzoom_Open( uwinp ) + Userwin *uwinp; +{ + bool result; + + result = Manage_Neighborhood_Unzoom_Open( uwinp, + Manage_Get_Unzoom_Open_Size( uwinp ) ); + if ( result ) + uwinp->rezoom_rect = (((Tilwin *)(uwinp->winp)) -> prev_rect); + else + Manage_Setup_Zoom( uwinp, 0 ); + + return result; +} + + + +static bool Manage_Do_Zoom( uwinp, explicit ) + Userwin *uwinp; + bool explicit; +{ + bool full; + + full = + ( + ( ( (uwinp)->options[(int)(ZOOM_FULL_EXPLICIT)] ) && + explicit ) + && + ( + ( (uwinp)->options[(int)(ZOOM_FULL_WIDTH)] ) + || + ( (uwinp)->options[(int)(ZOOM_FULL_HEIGHT)] ) + ) + ); + + Manage_Setup_Zoom( uwinp, full ); + return Manage_Followup_Zoom( uwinp ); +} + + + +static void Manage_Do_Unzoom( uwinp, explicit ) + Userwin *uwinp; + bool explicit; +{ + Manage_Setup_Unzoom( uwinp ); + Manage_Followup_Unzoom( uwinp, explicit ); +} + + + +static Userwin *unzoomed_listener; + + + +static void Manage_Start_Trying() +{ + unzoomed_listener = (Userwin *)((void *)0); +} + + + +bool Manage_Can_Try_Listener_Unzoom() +{ + if ( ( user_global_options[(int)(UNZOOM_TIED_LSNR_IF_NECESSARY)] ) && + ( listener != (Userwin *)((void *)0) ) && + ( (listener)->options[(int)(LISTENER_TIED_TO_ZOOM)] ) && + listener->zoomed ) + { + Manage_Setup_Unzoom( listener ); + unzoomed_listener = listener; + return 1; + } + else + return 0; +} + + + +static void Manage_Finish_Trying( result ) + bool result; +{ + if ( unzoomed_listener != (Userwin *)((void *)0) ) + { + if ( result ) + Manage_Followup_Unzoom( unzoomed_listener, 0 ); + else + Manage_Setup_Zoom( unzoomed_listener, 0 ); + } +} + + + +bool Manage_Unzoom_Open( uwinp ) + Userwin *uwinp; +{ + bool iconized; + bool result; + + iconized = (((Tilwin *)(uwinp->iconp)) -> Am_I_Open); + if ( iconized ) + Tilwin_Close( uwinp->iconp ); + + Manage_Setup_Unzoom( uwinp ); + result = Manage_Followup_Unzoom_Open( uwinp ); + if ( (! result) && iconized ) + Tilwin_Open( uwinp->iconp, + (((Tilwin *)(uwinp->iconp))->center), + (((Tilwin *)(uwinp->iconp)) -> size) ); + + return result; +} + + + +void Manage_Zoom( uwinp ) + Userwin *uwinp; +{ + bool result; + + Manage_Start(); + Manage_Start_Trying(); + result = Manage_Do_Zoom( uwinp, 1 ); + if ( (! result) && Manage_Can_Try_Listener_Unzoom() ) + result = Manage_Do_Zoom( uwinp, 1 ); + Manage_Finish_Trying( result ); + ((Tilwin *)(uwinp->winp))->width_stamp = State_Get_Timestamp(); + ((Tilwin *)(uwinp->winp))->height_stamp = State_Get_Timestamp(); + last_zoom = uwinp; + touch = uwinp; + Manage_Finish_Minned( uwinp, result ); +} + + + +void Manage_Unzoom( uwinp ) + Userwin *uwinp; +{ + if ( ( uwinp == last_zoom ) && + ( uwinp->zoom_stamp == last_stamp ) ) + Manage_Undo_Start(); + else + { + Manage_Start(); + Manage_Do_Unzoom( uwinp, 1 ); + } + touch = uwinp; + Manage_Finish( 1 ); +} + + + +void Manage_Toggle_Zoom( uwinp ) + Userwin *uwinp; +{ + if ( uwinp->zoomed ) + Manage_Unzoom( uwinp ); + else + Manage_Zoom( uwinp ); +} + + + +void Manage_Toggle_Zoom_Lock( uwinp ) + Userwin *uwinp; +{ + if ( ( ( (uwinp)->options[(int)(LISTENER_TIED_TO_ZOOM)] ) ) ) + { + { ((uwinp)->options[(int)(LISTENER_TIED_TO_ZOOM)]) = (0); ((uwinp)->explicit[(int)(EXPLICIT_LISTENER_TIED_TO_ZOOM)]) = 1; }; + Manage_Start(); + State_Act_Modified(uwinp->winp); + touch = uwinp; + Manage_Finish( 1 ); + } + else + { + { ((uwinp)->options[(int)(LISTENER_TIED_TO_ZOOM)]) = (1); ((uwinp)->explicit[(int)(EXPLICIT_LISTENER_TIED_TO_ZOOM)]) = 1; }; + if ( ( uwinp == listener ) && (! uwinp->zoomed) ) + Manage_Zoom( uwinp ); + else if ( ( uwinp != listener ) && ( uwinp->zoomed ) ) + Manage_Unzoom( uwinp ); + else + { + Manage_Start(); + State_Act_Modified(uwinp->winp); + touch = uwinp; + Manage_Finish( 1 ); + } + } +} + + + +void Manage_Switch_Listener( uwinp ) + Userwin *uwinp; +{ + Userwin *old_listener; + bool unzoom_old; + bool zoom_new; + bool listener_zooming; + bool transact; + TimeStamp zoom_stamp = (TimeStamp)0; + + switch_listener = uwinp; + + unzoom_old = (listener != (Userwin *)((void *)0)) && (listener->zoomed) && + ( (listener)->options[(int)(LISTENER_TIED_TO_ZOOM)] ); + + zoom_new = (uwinp != (Userwin *)((void *)0)) && (!uwinp->zoomed) && + ( (uwinp)->options[(int)(LISTENER_TIED_TO_ZOOM)] ); + + listener_zooming = unzoom_old || zoom_new; + + transact = listener_zooming || + ( ( user_global_options[(int)(AUTO_PRORATE)] ) && + ( user_global_options[(int)(BIASED_AUTO_PRORATE)] ) ); + + old_listener = listener; + + if ( unzoom_old ) + zoom_stamp = listener->zoom_stamp; + + if ( unzoom_old && + ( user_global_options[(int)(AUTO_REPOPULATE_ON_AUTO_UNZOOM)] ) && + ( listener == last_zoom ) && + ( zoom_stamp == last_stamp ) ) + { + Manage_Undo_Start(); + unzoom_old = 0; + if ( zoom_new ) + last_zoom = (Userwin *)((void *)0); + } + else if ( listener_zooming ) + { + Manage_Start(); + if (! unzoom_old) + last_zoom = uwinp; + } + else if ( transact ) + Manage_Start(); + + if ( listener != (Userwin *)((void *)0) ) + { + Manage_Unset_Listener(); + if ( unzoom_old ) + Manage_Setup_Unzoom( old_listener ); + else if (! transact) + Drawwin_Display_Wrapping( old_listener ); + } + + Manage_Set_Listener(uwinp); + + if ( listener != (Userwin *)((void *)0) ) + { + if ( zoom_new ) + { + if ( Manage_Do_Zoom( listener, 0 ) && + ( zoom_stamp != (TimeStamp)0 ) ) + listener->zoom_stamp = zoom_stamp; + } + else if (! transact) + Drawwin_Display_Wrapping( listener ); + } + + if ( unzoom_old ) + { + if ( listener == (Userwin *)((void *)0) ) + Manage_Followup_Unzoom( old_listener, 0 ); + else + { Size temp_min; temp_min = (((Tilwin *)(listener->winp)) -> min_size); { (((Tilwin *)(listener->winp)) -> min_size).height = (1+ ((((Tilwin *)(listener->winp)) -> size)).height ) & (~1); (((Tilwin *)(listener->winp)) -> min_size).width = (1+ ((((Tilwin *)(listener->winp)) -> size)).width ) & (~1); }; Manage_Followup_Unzoom( old_listener, 0 ); { (((Tilwin *)(listener->winp)) -> min_size).height = (1+ (temp_min).height ) & (~1); (((Tilwin *)(listener->winp)) -> min_size).width = (1+ (temp_min).width ) & (~1); }; } + + } + + if ( transact ) + Manage_Finish_Minned( listener, 1 ); +} + + + +static bool Manage_Resatisfy( uwinp ) + Userwin *uwinp; +{ + bool result; + Size siz; + + Manage_Save_State( uwinp ); + result = Tilwin_Is_Satisfied( uwinp->winp ); + if (! result ) + { + siz = (((Tilwin *)(uwinp->winp)) -> size); + { if ((siz).width > ((((Tilwin *)(uwinp->winp)) -> min_size)).width) (siz).width = (siz).width; else (siz).width = ((((Tilwin *)(uwinp->winp)) -> min_size)).width; if ((siz).height > ((((Tilwin *)(uwinp->winp)) -> min_size)).height) (siz).height = (siz).height; else (siz).height = ((((Tilwin *)(uwinp->winp)) -> min_size)).height; } + { if ((siz).width < ((((Tilwin *)(uwinp->winp)) -> max_size)).width) (siz).width = (siz).width; else (siz).width = ((((Tilwin *)(uwinp->winp)) -> max_size)).width; if ((siz).height < ((((Tilwin *)(uwinp->winp)) -> max_size)).height) (siz).height = (siz).height; else (siz).height = ((((Tilwin *)(uwinp->winp)) -> max_size)).height; } + if ( (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ) + result = Manage_Neighborhood_Rezoom( uwinp, siz ); + else + result = Manage_Rezoom( uwinp, siz ); + } + return result; +} + + + +void Manage_Client_Reset_Min_Max( uwinp, min_size, max_size ) + Userwin *uwinp; + Size min_size; + Size max_size; +{ + Size siz; + bool has_min, has_max, result; + + if (! uwinp->prepared) + Manage_Prepare( uwinp ); + + has_max = ( max_size.width > 0 ) && ( max_size.height > 0 ); + has_min = ( min_size.width >= 0 ) && ( min_size.height >= 0 ); + + if ( Profile_Supplies_User_Value( uwinp, CLIENT_MAX_WIDTH ) ) + max_size.width = uwinp->body_max.width; + if ( Profile_Supplies_User_Value( uwinp, CLIENT_MAX_HEIGHT ) ) + max_size.height = uwinp->body_max.height; + + if ( Profile_Supplies_User_Value( uwinp, CLIENT_MIN_WIDTH ) ) + min_size.width = uwinp->body_min.width; + if ( Profile_Supplies_User_Value( uwinp, CLIENT_MIN_HEIGHT ) ) + min_size.height = uwinp->body_min.height; + + if ( has_min ) + { if ((max_size).width > (min_size).width) (max_size).width = (max_size).width; else (max_size).width = (min_size).width; if ((max_size).height > (min_size).height) (max_size).height = (max_size).height; else (max_size).height = (min_size).height; } + + if ( has_max ) + { + uwinp->body_max = max_size; + uwinp->client_max = Region_Adjust_Size( uwinp, max_size ); + if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MAXIMUMS)] ) ) + { + { if (((((Tilwin *)(uwinp->winp)) -> max_size)).width < (uwinp->client_max).width) (siz).width = ((((Tilwin *)(uwinp->winp)) -> max_size)).width; else (siz).width = (uwinp->client_max).width; if (((((Tilwin *)(uwinp->winp)) -> max_size)).height < (uwinp->client_max).height) (siz).height = ((((Tilwin *)(uwinp->winp)) -> max_size)).height; else (siz).height = (uwinp->client_max).height; } + + { (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (siz).width ) & (~1); }; + { if ((siz).width < ((((Tilwin *)(uwinp->winp)) -> desired_size)).width) (siz).width = (siz).width; else (siz).width = ((((Tilwin *)(uwinp->winp)) -> desired_size)).width; if ((siz).height < ((((Tilwin *)(uwinp->winp)) -> desired_size)).height) (siz).height = (siz).height; else (siz).height = ((((Tilwin *)(uwinp->winp)) -> desired_size)).height; } + { (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (siz).width ) & (~1); }; + } + } + + if ( has_min ) + { + uwinp->body_min = min_size; + uwinp->client_min = Region_Adjust_Size( uwinp, min_size ); + if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MINIMUMS)] ) ) + { + { if (((((Tilwin *)(uwinp->winp)) -> min_size)).width > (uwinp->client_min).width) (siz).width = ((((Tilwin *)(uwinp->winp)) -> min_size)).width; else (siz).width = (uwinp->client_min).width; if (((((Tilwin *)(uwinp->winp)) -> min_size)).height > (uwinp->client_min).height) (siz).height = ((((Tilwin *)(uwinp->winp)) -> min_size)).height; else (siz).height = (uwinp->client_min).height; } + + { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (siz).width ) & (~1); }; + { if ((siz).width > ((((Tilwin *)(uwinp->winp)) -> desired_size)).width) (siz).width = (siz).width; else (siz).width = ((((Tilwin *)(uwinp->winp)) -> desired_size)).width; if ((siz).height > ((((Tilwin *)(uwinp->winp)) -> desired_size)).height) (siz).height = (siz).height; else (siz).height = ((((Tilwin *)(uwinp->winp)) -> desired_size)).height; } + { (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (siz).width ) & (~1); }; + } + } + + if ( ( ( ((((Tilwin *)(uwinp->winp)) -> min_size)).width == ((((Tilwin *)(uwinp->winp)) -> max_size)).width ) && ( ((((Tilwin *)(uwinp->winp)) -> min_size)).height == ((((Tilwin *)(uwinp->winp)) -> max_size)).height ) ) + ) + uwinp->sized = 1; + + if (! uwinp->ever_opened) + return; + + if (! (((Tilwin *)(uwinp->winp)) -> Am_I_Open)) + Manage_Resatisfy( uwinp ); + else if ( ( (uwinp)->options[(int)(AUTO_RESATISFY_ON_RESET_MINMAX)] ) ) + { + Manage_Start(); + { Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { result = Manage_Resatisfy( uwinp ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { result = Manage_Resatisfy( uwinp ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { result = Manage_Resatisfy( uwinp ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { result = Manage_Resatisfy( uwinp ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } } + + + + Manage_Finish_Minned( uwinp, result ); + Manage_Cant_Undo(); + } +} + + + +static Size Manage_Calc_Size( siz, rect, side, pos ) + Size siz; + TWRectangle rect; + Side side; + TWPoint pos; +{ + + switch (side) + { + case Top: + case Top_Left: + case Top_Right: + siz.height = 1 + rect.bottom_y - pos.y; + break; + case Bottom: + case Bottom_Left: + case Bottom_Right: + siz.height = 1 + pos.y - rect.top_y; + break; + default: + break; + } + + switch (side) + { + case Left: + case Top_Left: + case Bottom_Left: + siz.width = 1 + rect.right_x - pos.x; + break; + case Right: + case Top_Right: + case Bottom_Right: + siz.width = 1 + pos.x - rect.left_x; + break; + default: + break; + } + + return siz; +} + + + +bool Manage_Set_Regular_Min_Size( uwinp, pos, side, force, ctrl ) + Userwin *uwinp; + TWPoint pos; + Side side; + bool force, ctrl; +{ + Size max_size; + TWRectangle rect; + rect = (((Tilwin *)(uwinp->winp)) -> rect); + + Manage_Start(); + + if (! uwinp->zoomed) + uwinp->regular_min = (((Tilwin *)(uwinp->winp)) -> min_size); + uwinp->regular_min = + Manage_Calc_Size( uwinp->regular_min, rect, side, pos ); + + if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MAXIMUMS)] ) ) + { if ((uwinp->regular_min).width < (uwinp->client_max).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = (uwinp->client_max).width; if ((uwinp->regular_min).height < (uwinp->client_max).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = (uwinp->client_max).height; } + + + { if ((uwinp->regular_min).width < ((((Tilwin *)(uwinp->winp)) -> max_size)).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = ((((Tilwin *)(uwinp->winp)) -> max_size)).width; if ((uwinp->regular_min).height < ((((Tilwin *)(uwinp->winp)) -> max_size)).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = ((((Tilwin *)(uwinp->winp)) -> max_size)).height; } + + + if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MINIMUMS)] ) ) + { if ((uwinp->regular_min).width > (uwinp->client_min).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = (uwinp->client_min).width; if ((uwinp->regular_min).height > (uwinp->client_min).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = (uwinp->client_min).height; } + + + max_size = (((Tilwin *)(uwinp->winp)) -> max_size); + if ( ( user_global_options[(int)(RESET_MAX_ON_INCREASE)] ) || force ) + { if ((max_size).width > (uwinp->regular_min).width) (max_size).width = (max_size).width; else (max_size).width = (uwinp->regular_min).width; if ((max_size).height > (uwinp->regular_min).height) (max_size).height = (max_size).height; else (max_size).height = (uwinp->regular_min).height; } + else + { if ((uwinp->regular_min).width < (max_size).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = (max_size).width; if ((uwinp->regular_min).height < (max_size).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = (max_size).height; } + { (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (max_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (max_size).width ) & (~1); }; + + if (! uwinp->zoomed) + { + { if ((uwinp->regular_min).width > ((((Tilwin *)(uwinp->winp)) -> desired_size)).width) (uwinp->regular_size).width = (uwinp->regular_min).width; else (uwinp->regular_size).width = ((((Tilwin *)(uwinp->winp)) -> desired_size)).width; if ((uwinp->regular_min).height > ((((Tilwin *)(uwinp->winp)) -> desired_size)).height) (uwinp->regular_size).height = (uwinp->regular_min).height; else (uwinp->regular_size).height = ((((Tilwin *)(uwinp->winp)) -> desired_size)).height; } + + { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->regular_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->regular_min).width ) & (~1); }; + { (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->regular_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->regular_size).width ) & (~1); }; + } + else + { + { if ((uwinp->regular_size).width > (uwinp->regular_min).width) (uwinp->regular_size).width = (uwinp->regular_size).width; else (uwinp->regular_size).width = (uwinp->regular_min).width; if ((uwinp->regular_size).height > (uwinp->regular_min).height) (uwinp->regular_size).height = (uwinp->regular_size).height; else (uwinp->regular_size).height = (uwinp->regular_min).height; } + + { if ((uwinp->regular_min).width > ((((Tilwin *)(uwinp->winp)) -> min_size)).width) (uwinp->zoom_min).width = (uwinp->regular_min).width; else (uwinp->zoom_min).width = ((((Tilwin *)(uwinp->winp)) -> min_size)).width; if ((uwinp->regular_min).height > ((((Tilwin *)(uwinp->winp)) -> min_size)).height) (uwinp->zoom_min).height = (uwinp->regular_min).height; else (uwinp->zoom_min).height = ((((Tilwin *)(uwinp->winp)) -> min_size)).height; } + + { if ((uwinp->zoom_min).width > ((((Tilwin *)(uwinp->winp)) -> desired_size)).width) (uwinp->zoom_size).width = (uwinp->zoom_min).width; else (uwinp->zoom_size).width = ((((Tilwin *)(uwinp->winp)) -> desired_size)).width; if ((uwinp->zoom_min).height > ((((Tilwin *)(uwinp->winp)) -> desired_size)).height) (uwinp->zoom_size).height = (uwinp->zoom_min).height; else (uwinp->zoom_size).height = ((((Tilwin *)(uwinp->winp)) -> desired_size)).height; } + + { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->zoom_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->zoom_min).width ) & (~1); }; + { (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->zoom_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->zoom_size).width ) & (~1); }; + } + + Manage_Resatisfy( uwinp ); + + Manage_Finish( 1 ); + return 1; +} + + + +bool Manage_Set_Zoom_Min_Size( uwinp, pos, side, force, ctrl ) + Userwin *uwinp; + TWPoint pos; + Side side; + bool force, ctrl; +{ + Size max_size; + TWRectangle rect; + rect = (((Tilwin *)(uwinp->winp)) -> rect); + + Manage_Start(); + + if ( uwinp->zoomed ) + uwinp->zoom_min = (((Tilwin *)(uwinp->winp)) -> min_size); + uwinp->zoom_min = + Manage_Calc_Size( uwinp->zoom_min, rect, side, pos ); + + if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MAXIMUMS)] ) ) + { if ((uwinp->zoom_min).width < (uwinp->client_max).width) (uwinp->zoom_min).width = (uwinp->zoom_min).width; else (uwinp->zoom_min).width = (uwinp->client_max).width; if ((uwinp->zoom_min).height < (uwinp->client_max).height) (uwinp->zoom_min).height = (uwinp->zoom_min).height; else (uwinp->zoom_min).height = (uwinp->client_max).height; } + + + { if ((uwinp->regular_min).width < ((((Tilwin *)(uwinp->winp)) -> max_size)).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = ((((Tilwin *)(uwinp->winp)) -> max_size)).width; if ((uwinp->regular_min).height < ((((Tilwin *)(uwinp->winp)) -> max_size)).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = ((((Tilwin *)(uwinp->winp)) -> max_size)).height; } + + + if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MINIMUMS)] ) ) + { if ((uwinp->zoom_min).width > (uwinp->client_min).width) (uwinp->zoom_min).width = (uwinp->zoom_min).width; else (uwinp->zoom_min).width = (uwinp->client_min).width; if ((uwinp->zoom_min).height > (uwinp->client_min).height) (uwinp->zoom_min).height = (uwinp->zoom_min).height; else (uwinp->zoom_min).height = (uwinp->client_min).height; } + + + max_size = (((Tilwin *)(uwinp->winp)) -> max_size); + if ( ( user_global_options[(int)(RESET_MAX_ON_INCREASE)] ) || force ) + { if ((max_size).width > (uwinp->zoom_min).width) (max_size).width = (max_size).width; else (max_size).width = (uwinp->zoom_min).width; if ((max_size).height > (uwinp->zoom_min).height) (max_size).height = (max_size).height; else (max_size).height = (uwinp->zoom_min).height; } + else + { if ((uwinp->zoom_min).width < (max_size).width) (uwinp->zoom_min).width = (uwinp->zoom_min).width; else (uwinp->zoom_min).width = (max_size).width; if ((uwinp->zoom_min).height < (max_size).height) (uwinp->zoom_min).height = (uwinp->zoom_min).height; else (uwinp->zoom_min).height = (max_size).height; } + { (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (max_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (max_size).width ) & (~1); }; + + if ( uwinp->zoomed ) + { + { if ((uwinp->zoom_min).width > ((((Tilwin *)(uwinp->winp)) -> desired_size)).width) (uwinp->zoom_size).width = (uwinp->zoom_min).width; else (uwinp->zoom_size).width = ((((Tilwin *)(uwinp->winp)) -> desired_size)).width; if ((uwinp->zoom_min).height > ((((Tilwin *)(uwinp->winp)) -> desired_size)).height) (uwinp->zoom_size).height = (uwinp->zoom_min).height; else (uwinp->zoom_size).height = ((((Tilwin *)(uwinp->winp)) -> desired_size)).height; } + + { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->zoom_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->zoom_min).width ) & (~1); }; + { (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->zoom_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->zoom_size).width ) & (~1); }; + } + else + { + { if ((uwinp->zoom_size).width > (uwinp->zoom_min).width) (uwinp->zoom_size).width = (uwinp->zoom_size).width; else (uwinp->zoom_size).width = (uwinp->zoom_min).width; if ((uwinp->zoom_size).height > (uwinp->zoom_min).height) (uwinp->zoom_size).height = (uwinp->zoom_size).height; else (uwinp->zoom_size).height = (uwinp->zoom_min).height; } + + { if ((uwinp->zoom_min).width < ((((Tilwin *)(uwinp->winp)) -> min_size)).width) (uwinp->regular_min).width = (uwinp->zoom_min).width; else (uwinp->regular_min).width = ((((Tilwin *)(uwinp->winp)) -> min_size)).width; if ((uwinp->zoom_min).height < ((((Tilwin *)(uwinp->winp)) -> min_size)).height) (uwinp->regular_min).height = (uwinp->zoom_min).height; else (uwinp->regular_min).height = ((((Tilwin *)(uwinp->winp)) -> min_size)).height; } + + { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->regular_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->regular_min).width ) & (~1); }; + } + + Manage_Resatisfy( uwinp ); + + Manage_Finish( 1 ); + return 1; +} + + + +bool Manage_Set_Regular_Desired_Size( uwinp, pos, side, force, ctrl ) + Userwin *uwinp; + TWPoint pos; + Side side; + bool force, ctrl; +{ + Size max_size; + TWRectangle rect; + rect = (((Tilwin *)(uwinp->winp)) -> rect); + + Manage_Start(); + + if (! uwinp->zoomed ) + { + uwinp->regular_size = (((Tilwin *)(uwinp->winp)) -> desired_size); + uwinp->regular_min = (((Tilwin *)(uwinp->winp)) -> min_size); + } + else + uwinp->zoom_min = (((Tilwin *)(uwinp->winp)) -> min_size); + + uwinp->regular_size = + Manage_Calc_Size( uwinp->regular_size, rect, side, pos ); + + if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MAXIMUMS)] ) ) + { if ((uwinp->regular_size).width < (uwinp->client_max).width) (uwinp->regular_size).width = (uwinp->regular_size).width; else (uwinp->regular_size).width = (uwinp->client_max).width; if ((uwinp->regular_size).height < (uwinp->client_max).height) (uwinp->regular_size).height = (uwinp->regular_size).height; else (uwinp->regular_size).height = (uwinp->client_max).height; } + + + if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MINIMUMS)] ) ) + { if ((uwinp->regular_size).width > (uwinp->client_min).width) (uwinp->regular_size).width = (uwinp->regular_size).width; else (uwinp->regular_size).width = (uwinp->client_min).width; if ((uwinp->regular_size).height > (uwinp->client_min).height) (uwinp->regular_size).height = (uwinp->regular_size).height; else (uwinp->regular_size).height = (uwinp->client_min).height; } + + + max_size = (((Tilwin *)(uwinp->winp)) -> max_size); + if ( ( user_global_options[(int)(RESET_MAX_ON_INCREASE)] ) || force ) + { if ((max_size).width > (uwinp->regular_size).width) (max_size).width = (max_size).width; else (max_size).width = (uwinp->regular_size).width; if ((max_size).height > (uwinp->regular_size).height) (max_size).height = (max_size).height; else (max_size).height = (uwinp->regular_size).height; } + else + { if ((uwinp->regular_size).width < (max_size).width) (uwinp->regular_size).width = (uwinp->regular_size).width; else (uwinp->regular_size).width = (max_size).width; if ((uwinp->regular_size).height < (max_size).height) (uwinp->regular_size).height = (uwinp->regular_size).height; else (uwinp->regular_size).height = (max_size).height; } + { (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (max_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (max_size).width ) & (~1); }; + + if ( ( user_global_options[(int)(RESET_MIN_ON_DECREASE)] ) || force ) + { if ((uwinp->regular_min).width < (uwinp->regular_size).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = (uwinp->regular_size).width; if ((uwinp->regular_min).height < (uwinp->regular_size).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = (uwinp->regular_size).height; } + + else + { if ((uwinp->regular_size).width > (uwinp->regular_min).width) (uwinp->regular_size).width = (uwinp->regular_size).width; else (uwinp->regular_size).width = (uwinp->regular_min).width; if ((uwinp->regular_size).height > (uwinp->regular_min).height) (uwinp->regular_size).height = (uwinp->regular_size).height; else (uwinp->regular_size).height = (uwinp->regular_min).height; } + + + if (! uwinp->zoomed) + { + { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->regular_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->regular_min).width ) & (~1); }; + { (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->regular_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->regular_size).width ) & (~1); }; + } + else + { + { if ((uwinp->regular_size).width > ((((Tilwin *)(uwinp->winp)) -> size)).width) (uwinp->zoom_size).width = (uwinp->regular_size).width; else (uwinp->zoom_size).width = ((((Tilwin *)(uwinp->winp)) -> size)).width; if ((uwinp->regular_size).height > ((((Tilwin *)(uwinp->winp)) -> size)).height) (uwinp->zoom_size).height = (uwinp->regular_size).height; else (uwinp->zoom_size).height = ((((Tilwin *)(uwinp->winp)) -> size)).height; } + + { (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->zoom_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->zoom_size).width ) & (~1); }; + } + + Manage_Finish( 1 ); + return 1; +} + + + +bool Manage_Set_Zoom_Desired_Size( uwinp, pos, side, force, ctrl ) + Userwin *uwinp; + TWPoint pos; + Side side; + bool force, ctrl; +{ + Size max_size; + TWRectangle rect; + rect = (((Tilwin *)(uwinp->winp)) -> rect); + + Manage_Start(); + + if ( uwinp->zoomed ) + { + uwinp->zoom_size = (((Tilwin *)(uwinp->winp)) -> desired_size); + uwinp->zoom_min = (((Tilwin *)(uwinp->winp)) -> min_size); + } + else + uwinp->regular_min = (((Tilwin *)(uwinp->winp)) -> min_size); + + uwinp->zoom_size = + Manage_Calc_Size( uwinp->zoom_size, rect, side, pos ); + + if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MAXIMUMS)] ) ) + { if ((uwinp->zoom_size).width < (uwinp->client_max).width) (uwinp->zoom_size).width = (uwinp->zoom_size).width; else (uwinp->zoom_size).width = (uwinp->client_max).width; if ((uwinp->zoom_size).height < (uwinp->client_max).height) (uwinp->zoom_size).height = (uwinp->zoom_size).height; else (uwinp->zoom_size).height = (uwinp->client_max).height; } + + + if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MINIMUMS)] ) ) + { if ((uwinp->zoom_size).width > (uwinp->client_min).width) (uwinp->zoom_size).width = (uwinp->zoom_size).width; else (uwinp->zoom_size).width = (uwinp->client_min).width; if ((uwinp->zoom_size).height > (uwinp->client_min).height) (uwinp->zoom_size).height = (uwinp->zoom_size).height; else (uwinp->zoom_size).height = (uwinp->client_min).height; } + + + max_size = (((Tilwin *)(uwinp->winp)) -> max_size); + if ( ( user_global_options[(int)(RESET_MAX_ON_INCREASE)] ) || force ) + { if ((max_size).width > (uwinp->zoom_size).width) (max_size).width = (max_size).width; else (max_size).width = (uwinp->zoom_size).width; if ((max_size).height > (uwinp->zoom_size).height) (max_size).height = (max_size).height; else (max_size).height = (uwinp->zoom_size).height; } + else + { if ((uwinp->zoom_size).width < (max_size).width) (uwinp->zoom_size).width = (uwinp->zoom_size).width; else (uwinp->zoom_size).width = (max_size).width; if ((uwinp->zoom_size).height < (max_size).height) (uwinp->zoom_size).height = (uwinp->zoom_size).height; else (uwinp->zoom_size).height = (max_size).height; } + { (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (max_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (max_size).width ) & (~1); }; + + if ( ( user_global_options[(int)(RESET_MIN_ON_DECREASE)] ) || force ) + { if ((uwinp->zoom_min).width < (uwinp->zoom_size).width) (uwinp->zoom_min).width = (uwinp->zoom_min).width; else (uwinp->zoom_min).width = (uwinp->zoom_size).width; if ((uwinp->zoom_min).height < (uwinp->zoom_size).height) (uwinp->zoom_min).height = (uwinp->zoom_min).height; else (uwinp->zoom_min).height = (uwinp->zoom_size).height; } + + else + { if ((uwinp->zoom_size).width > (uwinp->zoom_min).width) (uwinp->zoom_size).width = (uwinp->zoom_size).width; else (uwinp->zoom_size).width = (uwinp->zoom_min).width; if ((uwinp->zoom_size).height > (uwinp->zoom_min).height) (uwinp->zoom_size).height = (uwinp->zoom_size).height; else (uwinp->zoom_size).height = (uwinp->zoom_min).height; } + + + if (uwinp->zoomed) + { + { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->zoom_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->zoom_min).width ) & (~1); }; + { (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->zoom_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->zoom_size).width ) & (~1); }; + } + else + { + if ( ( user_global_options[(int)(RESET_MIN_ON_DECREASE)] ) || force ) + { + { if ((uwinp->regular_min).width < (uwinp->zoom_size).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = (uwinp->zoom_size).width; if ((uwinp->regular_min).height < (uwinp->zoom_size).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = (uwinp->zoom_size).height; } + + { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->regular_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->regular_min).width ) & (~1); }; + } + else + { + { if ((uwinp->zoom_size).width > (uwinp->regular_min).width) (uwinp->zoom_size).width = (uwinp->zoom_size).width; else (uwinp->zoom_size).width = (uwinp->regular_min).width; if ((uwinp->zoom_size).height > (uwinp->regular_min).height) (uwinp->zoom_size).height = (uwinp->zoom_size).height; else (uwinp->zoom_size).height = (uwinp->regular_min).height; } + + } + { if ((uwinp->zoom_size).width < ((((Tilwin *)(uwinp->winp)) -> size)).width) (uwinp->regular_size).width = (uwinp->zoom_size).width; else (uwinp->regular_size).width = ((((Tilwin *)(uwinp->winp)) -> size)).width; if ((uwinp->zoom_size).height < ((((Tilwin *)(uwinp->winp)) -> size)).height) (uwinp->regular_size).height = (uwinp->zoom_size).height; else (uwinp->regular_size).height = ((((Tilwin *)(uwinp->winp)) -> size)).height; } + + { (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->regular_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->regular_size).width ) & (~1); }; + } + + Manage_Finish( 1 ); + return 1; +} + + + +bool Manage_Set_Max_Size( uwinp, pos, side, force, ctrl ) + Userwin *uwinp; + TWPoint pos; + Side side; + bool force, ctrl; +{ + Size max_size; + TWRectangle rect; + rect = (((Tilwin *)(uwinp->winp)) -> rect); + + Manage_Start(); + + max_size = Manage_Calc_Size( + (((Tilwin *)(uwinp->winp)) -> max_size), rect, side, pos ); + + if (uwinp->zoomed) + uwinp->zoom_min = (((Tilwin *)(uwinp->winp)) -> min_size); + else + uwinp->regular_min = (((Tilwin *)(uwinp->winp)) -> min_size); + + if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MAXIMUMS)] ) ) + { if ((max_size).width < (uwinp->client_max).width) (max_size).width = (max_size).width; else (max_size).width = (uwinp->client_max).width; if ((max_size).height < (uwinp->client_max).height) (max_size).height = (max_size).height; else (max_size).height = (uwinp->client_max).height; } + + if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MINIMUMS)] ) ) + { if ((max_size).width > (uwinp->client_min).width) (max_size).width = (max_size).width; else (max_size).width = (uwinp->client_min).width; if ((max_size).height > (uwinp->client_min).height) (max_size).height = (max_size).height; else (max_size).height = (uwinp->client_min).height; } + + if ( ( user_global_options[(int)(RESET_MIN_ON_DECREASE)] ) || force ) + { + { if ((uwinp->regular_min).width < (max_size).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = (max_size).width; if ((uwinp->regular_min).height < (max_size).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = (max_size).height; } + + { if ((uwinp->zoom_min).width < (max_size).width) (uwinp->zoom_min).width = (uwinp->zoom_min).width; else (uwinp->zoom_min).width = (max_size).width; if ((uwinp->zoom_min).height < (max_size).height) (uwinp->zoom_min).height = (uwinp->zoom_min).height; else (uwinp->zoom_min).height = (max_size).height; } + + } + else + { + { if ((max_size).width > (uwinp->regular_min).width) (max_size).width = (max_size).width; else (max_size).width = (uwinp->regular_min).width; if ((max_size).height > (uwinp->regular_min).height) (max_size).height = (max_size).height; else (max_size).height = (uwinp->regular_min).height; } + { if ((max_size).width > (uwinp->zoom_min).width) (max_size).width = (max_size).width; else (max_size).width = (uwinp->zoom_min).width; if ((max_size).height > (uwinp->zoom_min).height) (max_size).height = (max_size).height; else (max_size).height = (uwinp->zoom_min).height; } + } + { (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (max_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (max_size).width ) & (~1); }; + + if ( uwinp->zoomed ) + { + { if ((max_size).width < ((((Tilwin *)(uwinp->winp)) -> desired_size)).width) (uwinp->zoom_size).width = (max_size).width; else (uwinp->zoom_size).width = ((((Tilwin *)(uwinp->winp)) -> desired_size)).width; if ((max_size).height < ((((Tilwin *)(uwinp->winp)) -> desired_size)).height) (uwinp->zoom_size).height = (max_size).height; else (uwinp->zoom_size).height = ((((Tilwin *)(uwinp->winp)) -> desired_size)).height; } + + { (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->zoom_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->zoom_size).width ) & (~1); }; + { if ((uwinp->regular_size).width < (max_size).width) (uwinp->regular_size).width = (uwinp->regular_size).width; else (uwinp->regular_size).width = (max_size).width; if ((uwinp->regular_size).height < (max_size).height) (uwinp->regular_size).height = (uwinp->regular_size).height; else (uwinp->regular_size).height = (max_size).height; } + { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->zoom_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->zoom_min).width ) & (~1); }; + } + else + { + { if ((max_size).width < ((((Tilwin *)(uwinp->winp)) -> desired_size)).width) (uwinp->regular_size).width = (max_size).width; else (uwinp->regular_size).width = ((((Tilwin *)(uwinp->winp)) -> desired_size)).width; if ((max_size).height < ((((Tilwin *)(uwinp->winp)) -> desired_size)).height) (uwinp->regular_size).height = (max_size).height; else (uwinp->regular_size).height = ((((Tilwin *)(uwinp->winp)) -> desired_size)).height; } + + { (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->regular_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->regular_size).width ) & (~1); }; + { if ((uwinp->zoom_size).width < (max_size).width) (uwinp->zoom_size).width = (uwinp->zoom_size).width; else (uwinp->zoom_size).width = (max_size).width; if ((uwinp->zoom_size).height < (max_size).height) (uwinp->zoom_size).height = (uwinp->zoom_size).height; else (uwinp->zoom_size).height = (max_size).height; } + { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->regular_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->regular_min).width ) & (~1); }; + } + + Manage_Resatisfy( uwinp ); + + Manage_Finish( 1 ); + return 1; +} + + + +void Manage_Min_Max_Resizing( uwinp, siz1, siz2 ) + Userwin *uwinp; + Size siz1, siz2; +{ + Size siz; + + { if ((siz1).width < (siz2).width) (siz).width = (siz1).width; else (siz).width = (siz2).width; if ((siz1).height < (siz2).height) (siz).height = (siz1).height; else (siz).height = (siz2).height; } + { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (siz).width ) & (~1); }; + { if ((siz1).width > (siz2).width) (siz).width = (siz1).width; else (siz).width = (siz2).width; if ((siz1).height > (siz2).height) (siz).height = (siz1).height; else (siz).height = (siz2).height; } + { (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (siz).width ) & (~1); }; +} + + + +void Manage_Cancel_Resizing( uwinp ) + Userwin *uwinp; +{ + { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->prev_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->prev_min).width ) & (~1); }; + { (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (uwinp->prev_max).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (uwinp->prev_max).width ) & (~1); }; +} + + + +void Manage_Finish_Resizing( uwinp, side, force, undesire ) + Userwin *uwinp; + Side side; + bool force, undesire; +{ + Size newmin, newmax; + Size siz, prevsiz, desired; + bool horiz, vert, enlarge; + + horiz = ( side != NoSide ) && ( side != Top ) && ( side != Bottom ); + vert = ( side != NoSide ) && ( side != Left ) && ( side != Right ); + + newmin = uwinp->prev_min; + newmax = uwinp->prev_max; + + if ( uwinp->sized ) + prevsiz = (((Tilwin *)(uwinp->winp)) -> prev_size); + else + { + prevsiz = newmin; + if ( ( user_global_options[(int)(RESET_MIN_MAX_ON_UNSZD_MAN_OPEN)] ) ) + { + force = 1; + horiz = 1; + vert = 1; + } + } + + siz = (((Tilwin *)(uwinp->winp)) -> size); + + if (! undesire) + { + desired = (((Tilwin *)(uwinp->winp)) -> desired_size); + + enlarge = (desired.width > prevsiz.width) || + (desired.height > prevsiz.height); + + if ( horiz ) + { + if ( desired.width >= prevsiz.width ) + { + if ( force || ( user_global_options[(int)(RESET_MIN_ON_ENLARGE)] ) || + ( ( user_global_options[(int)(RESET_TIED_ZOOMED_MIN_ON_ENLARGE)] ) && + (uwinp->zoomed) && + ( (uwinp)->options[(int)(LISTENER_TIED_TO_ZOOM)] ) ) ) + newmin.width = siz.width; + } + else + { + if ( (! enlarge) && + ( force || ( user_global_options[(int)(RESET_MAX_ON_SHRINK)] ) ) ) + newmax.width = siz.width; + } + } + + if ( vert ) + { + if ( desired.height >= prevsiz.height ) + { + if ( force || ( user_global_options[(int)(RESET_MIN_ON_ENLARGE)] ) || + ( ( user_global_options[(int)(RESET_TIED_ZOOMED_MIN_ON_ENLARGE)] ) + && + (uwinp->zoomed) && + ( (uwinp)->options[(int)(LISTENER_TIED_TO_ZOOM)] ) ) ) + newmin.height = siz.height; + } + else + { + if ( (! enlarge) && + ( force || ( user_global_options[(int)(RESET_MAX_ON_SHRINK)] ) ) ) + newmax.height = siz.height; + } + } + } + + if ( ( user_global_options[(int)(RESET_MIN_ON_DECREASE)] ) || force ) + { if ((newmin).width < (siz).width) (newmin).width = (newmin).width; else (newmin).width = (siz).width; if ((newmin).height < (siz).height) (newmin).height = (newmin).height; else (newmin).height = (siz).height; } + + if ( ( user_global_options[(int)(RESET_MAX_ON_INCREASE)] ) || force ) + { if ((newmax).width > (siz).width) (newmax).width = (newmax).width; else (newmax).width = (siz).width; if ((newmax).height > (siz).height) (newmax).height = (newmax).height; else (newmax).height = (siz).height; } + + { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (newmin).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (newmin).width ) & (~1); }; + { (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (newmax).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (newmax).width ) & (~1); }; + + { if ((newmax).width < ((((Tilwin *)(uwinp->winp)) -> desired_size)).width) (siz).width = (newmax).width; else (siz).width = ((((Tilwin *)(uwinp->winp)) -> desired_size)).width; if ((newmax).height < ((((Tilwin *)(uwinp->winp)) -> desired_size)).height) (siz).height = (newmax).height; else (siz).height = ((((Tilwin *)(uwinp->winp)) -> desired_size)).height; } + { if ((newmin).width > (siz).width) (siz).width = (newmin).width; else (siz).width = (siz).width; if ((newmin).height > (siz).height) (siz).height = (newmin).height; else (siz).height = (siz).height; } + { (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (siz).width ) & (~1); }; + +} + + + +static bool Manage_Slide_Resize( uwinp, center, siz, side ) + Userwin *uwinp; + TWPoint center; + Size siz; + Side side; +{ + bool result; + Size shrinksiz; + Side shrinkside = NoSide; + + if (! ( user_global_options[(int)(TRY_SLIDING_ON_RESIZE)] )) + return Tilwin_Resize( uwinp->winp, siz, side ); + + { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && (! ( user_global_options[(int)(PREF_SLD_TO_AUTO_CL_ON_RESIZE)] )))); { { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && (! ( user_global_options[(int)(PREF_SLD_TO_AUTO_SHR_ON_RESIZE)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(uwinp->winp)) -> options[ (int) FIXED_SIZE ] ); ( ((Tilwin *)(uwinp->winp)) -> options[ (int) FIXED_SIZE ] ) = ((temp_val || ( user_global_options[(int)(PREF_SLD_TO_SHRINK_ON_RESIZE)] ))); { result = Tilwin_Resize( uwinp->winp, siz, side ); }; ( ((Tilwin *)(uwinp->winp)) -> options[ (int) FIXED_SIZE ] ) = (temp_val); } }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); } +# 3414 "manage.c" + ; + + if ( result ) return 1; + + shrinksiz = (((Tilwin *)(uwinp->winp)) -> size); + + switch (side) + { + case Top: + case Top_Left: + case Top_Right: + if ( siz.height < shrinksiz.height ) + { + shrinkside = Top; + shrinksiz.height = siz.height; + } + break; + case Bottom: + case Bottom_Left: + case Bottom_Right: + if ( siz.height < shrinksiz.height ) + { + shrinkside = Bottom; + shrinksiz.height = siz.height; + } + break; + default: + break; + } + + switch (side) + { + case Left: + case Top_Left: + case Bottom_Left: + if ( siz.width < shrinksiz.width ) + { + shrinkside = Left; + shrinksiz.width = siz.width; + } + break; + case Right: + case Top_Right: + case Bottom_Right: + if ( siz.width < shrinksiz.width ) + { + shrinkside = Right; + shrinksiz.width = siz.width; + } + break; + default: + break; + } + + if ( shrinkside != NoSide ) + Tilwin_Resize( uwinp->winp, shrinksiz, shrinkside ); + + return Tilwin_Enlarge_Nearest( uwinp->winp, center, siz ); +} + + + +static bool Manage_Cntr_Neighborhood_Rsz( uwinp, center, siz, side ) + Userwin *uwinp; + TWPoint center; + Size siz; + Side side; +{ + bool result; + TWRectangle rect; + + if (! ( user_global_options[(int)(TRY_CTR_NBRHD_ON_RESIZE)] )) + return Manage_Slide_Resize( uwinp, center, siz, side ); + + { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && (! ( user_global_options[(int)(PF_CTR_NBR_2_AUTO_CL_ON_RESIZE)] ) ))); { { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && (! ( user_global_options[(int)(PF_CTR_NBR_2_AUTO_SHR_ON_RESIZE)] ) ))); { { bool temp_val; temp_val = ( ((Tilwin *)(uwinp->winp)) -> options[ (int) FIXED_SIZE ] ); ( ((Tilwin *)(uwinp->winp)) -> options[ (int) FIXED_SIZE ] ) = ((temp_val || ( user_global_options[(int)(PF_CTR_NBR_2_SHRINK_ON_RESIZE)] ))); { result = Manage_Slide_Resize( uwinp, center, siz, side ); }; ( ((Tilwin *)(uwinp->winp)) -> options[ (int) FIXED_SIZE ] ) = (temp_val); } }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); } +# 3499 "manage.c" + ; + + if ( result ) return 1; + + rect = Manage_Neighborhood_Rectangle( 0.5, center, siz ); + + return Tilwin_Open_Nearest_In_Area( uwinp->winp, rect, center, siz ); +} + + + +static bool Manage_Edge_Neighborhood_Resize( uwinp, center, siz, side ) + Userwin *uwinp; + TWPoint center; + Size siz; + Side side; +{ + bool result; + TWRectangle rect; + + if (! ( user_global_options[(int)(TRY_EDGE_NEIGHBORHOOD_ON_RESIZE)] )) + return Manage_Cntr_Neighborhood_Rsz( uwinp, center, siz, side ); + + { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && (! ( user_global_options[(int)(PF_EDGE_NBR_2_AUTO_CL_ON_RESIZE)] ) ))); { { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && (! ( user_global_options[(int)(PF_EDGE_NBR_2_AUTO_SHR_ON_RESIZE)] ) ))); { { bool temp_val; temp_val = ( ((Tilwin *)(uwinp->winp)) -> options[ (int) FIXED_SIZE ] ); ( ((Tilwin *)(uwinp->winp)) -> options[ (int) FIXED_SIZE ] ) = ((temp_val || ( user_global_options[(int)(PF_EDGE_NBR_2_SHRINK_ON_RESIZE)] ))); { result = Manage_Cntr_Neighborhood_Rsz( uwinp, center, siz, side ); }; ( ((Tilwin *)(uwinp->winp)) -> options[ (int) FIXED_SIZE ] ) = (temp_val); } }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); } +# 3532 "manage.c" + ; + + if ( result ) return 1; + + rect = Manage_Neighborhood_Rectangle( 1.0, center, siz ); + + return Tilwin_Open_Nearest_In_Area( uwinp->winp, rect, center, siz ); +} + + + +bool Manage_Resize( uwinp, pos, side, force, undesire ) + Userwin *uwinp; + Side side; + TWPoint pos; + bool force, undesire; +{ + Size siz, desired; + TWPoint center; + TWRectangle rect; + bool result; + + siz = (((Tilwin *)(uwinp->winp)) -> size); + rect = (((Tilwin *)(uwinp->winp)) -> rect); + siz = Manage_Calc_Size( siz, rect, side, pos ); + + if (! ( ( user_global_options[(int)(RESET_MIN_ON_DECREASE)] ) || force )) + { if ((siz).width > (uwinp->prev_min).width) (siz).width = (siz).width; else (siz).width = (uwinp->prev_min).width; if ((siz).height > (uwinp->prev_min).height) (siz).height = (siz).height; else (siz).height = (uwinp->prev_min).height; } + if (! ( ( user_global_options[(int)(RESET_MAX_ON_INCREASE)] ) || force )) + { if ((siz).width < (uwinp->prev_max).width) (siz).width = (siz).width; else (siz).width = (uwinp->prev_max).width; if ((siz).height < (uwinp->prev_max).height) (siz).height = (siz).height; else (siz).height = (uwinp->prev_max).height; } + + desired = (((Tilwin *)(uwinp->winp)) -> desired_size); + + switch (side) + { + case Top: + case Top_Left: + case Top_Right: + rect.top_y = rect.bottom_y - siz.height + 1; + desired.height = siz.height; + break; + case Bottom: + case Bottom_Left: + case Bottom_Right: + rect.bottom_y = rect.top_y + siz.height - 1; + desired.height = siz.height; + break; + default: + break; + } + + switch (side) + { + case Left: + case Top_Left: + case Bottom_Left: + rect.left_x = rect.right_x - siz.width + 1; + desired.width = siz.width; + break; + case Right: + case Top_Right: + case Bottom_Right: + rect.right_x = rect.left_x + siz.width - 1; + desired.width = siz.width; + break; + default: + break; + } + + { ((center)).x = 1 + (((rect)).left_x + ((rect)).right_x) / 2; ((center)).y = 1 + (((rect)).top_y + ((rect)).bottom_y) / 2; }; + + switch (side) + { + case Top: + case Bottom: + center.x = (((Tilwin *)(uwinp->winp)) -> position).x; + break; + case Left: + case Right: + center.y = (((Tilwin *)(uwinp->winp)) -> position).y; + break; + default: + break; + } + + Manage_Start(); + Manage_Save_State( uwinp ); + + if (! undesire) + { + { (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (desired).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (desired).width ) & (~1); }; + if ( ( side != Top ) && ( side != Bottom ) ) + ((Tilwin *)(uwinp->winp))->width_stamp = State_Get_Timestamp(); + if ( ( side != Left ) && ( side != Right ) ) + ((Tilwin *)(uwinp->winp))->height_stamp = State_Get_Timestamp(); + (((Tilwin *)(uwinp->winp)) -> position = (center)); + uwinp->positioned = 1; + } + + Manage_Min_Max_Resizing( uwinp, siz, (((Tilwin *)(uwinp->winp)) -> size) ); + + Manage_Start_Trying(); + { bool temp_val; temp_val = ( globals[(int)(PREFER_CLOSE_TO_SHRINK)] ); globals[(int)(PREFER_CLOSE_TO_SHRINK)] = (( user_global_options[(int)(PREFER_CL_TO_SHR_ON_RESIZE)] )); { { bool temp_val; temp_val = ( ((Tilwin *)(uwinp->winp)) -> options[ (int) FIXED_SIZE ] ); ( ((Tilwin *)(uwinp->winp)) -> options[ (int) FIXED_SIZE ] ) = ((temp_val || ! ( user_global_options[(int)(ALLOW_SHRINK_ON_RESIZE)] ))); { result = ( ( ((((Tilwin *)(uwinp->winp)) -> size)).width == (siz).width ) && ( ((((Tilwin *)(uwinp->winp)) -> size)).height == (siz).height ) ) || ( Manage_Edge_Neighborhood_Resize( uwinp, center, siz, side ) && State_Was_Just_Modified(uwinp->winp) ); if ( (! result) && ( listener != uwinp ) && Manage_Can_Try_Listener_Unzoom() ) result = Manage_Edge_Neighborhood_Resize( uwinp, center, siz, side ) && State_Was_Just_Modified(uwinp->winp); }; ( ((Tilwin *)(uwinp->winp)) -> options[ (int) FIXED_SIZE ] ) = (temp_val); } }; globals[(int)(PREFER_CLOSE_TO_SHRINK)] = (temp_val); } +# 3649 "manage.c" + Manage_Finish_Trying( result ); + + if ( result ) + Manage_Finish_Resizing( uwinp, side, force, undesire ); + else + Manage_Cancel_Resizing( uwinp ); + + { if ( (((Tilwin *)(uwinp->winp)) -> size).height < (((Tilwin *)(uwinp->winp)) -> prev_size).height ) { uwinp->winp; FIXED_HEIGHT; 1; { if ( (((Tilwin *)(uwinp->winp)) -> size).width < (((Tilwin *)(uwinp->winp)) -> prev_size).width ) window_excursion else { Size temp_min; temp_siz; temp_siz = temp_min = (((Tilwin *)(uwinp->winp)) -> min_size); temp_siz.width = (((Tilwin *)(uwinp->winp)) -> size).width; { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (temp_siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (temp_siz).width ) & (~1); }; window_excursion; { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (temp_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (temp_min).width ) & (~1); }; } }; } else { Size temp_min, temp_siz; temp_siz = temp_min = (((Tilwin *)(uwinp->winp)) -> min_size); temp_siz.height = (((Tilwin *)(uwinp->winp)) -> size).height; { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (temp_siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (temp_siz).width ) & (~1); }; { if ( (((Tilwin *)(uwinp->winp)) -> size).width < (((Tilwin *)(uwinp->winp)) -> prev_size).width ) window_excursion else { Size temp_min, temp_siz; temp_siz = temp_min = (((Tilwin *)(uwinp->winp)) -> min_size); temp_siz.width = (((Tilwin *)(uwinp->winp)) -> size).width; { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (temp_siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (temp_siz).width ) & (~1); }; + + window_excursion +# 3656 "manage.c" + ; { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (temp_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (temp_min).width ) & (~1); }; } }; { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (temp_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (temp_min).width ) & (~1); }; } } + + + ; + + + return result; +} + + + +static bool zoom_forced; + + + +void Manage_Start_Open( uwinp, force_zoom ) + Userwin *uwinp; + bool force_zoom; +{ + Manage_Start(); + Manage_Start_Trying(); + Manage_Save_State( uwinp ); + + zoom_forced = 0; + if (! (((Tilwin *)(uwinp->winp)) -> Am_I_Open)) + { + if ( (((Tilwin *)(uwinp->iconp)) -> Am_I_Open) ) + Tilwin_Close( uwinp->iconp ); + if ( ( (uwinp)->options[(int)(ZOOM_ON_OPEN)] ) || + ( (! uwinp->ever_opened ) && + ( user_global_options[(int)(ZOOM_ON_CREATE)] ) ) ) + force_zoom = 1; + if ( force_zoom && (! uwinp->zoomed) ) + { + zoom_forced = 1; + Manage_Do_Zoom( uwinp, 0 ); + } + } +} + + + +bool Manage_Can_Try_Self_Unzoom( uwinp ) + Userwin *uwinp; +{ + bool result; + result = ( user_global_options[(int)(PREFER_UNZOOM_TO_CLOSE)] ) + && (uwinp->zoomed) + && (! (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ); + if ( result ) + { + zoom_forced = 0; + Manage_Do_Unzoom( uwinp, 0 ); + } + return result; +} + + + +bool Manage_Finish_Unsized_Open( uwinp, result ) + Userwin *uwinp; + bool result; +{ + if ( result ) + { + uwinp->open_stamp = State_Get_Timestamp(); + uwinp->ever_opened = 1; + } + else if ( zoom_forced ) + Manage_Do_Unzoom( uwinp, 0 ); + Manage_Finish_Trying( result ); + return Manage_Finish_Locked( uwinp, result ); +} + + + +bool Manage_Finish_Sized_Open( uwinp, result ) + Userwin *uwinp; + bool result; +{ + if ( result ) + { + uwinp->open_stamp = State_Get_Timestamp(); + uwinp->ever_opened = 1; + } + else if ( zoom_forced ) + Manage_Do_Unzoom( uwinp, 0 ); + Manage_Finish_Trying( result ); + return Manage_Finish_Minned( uwinp, result ); +} + + + +bool Manage_Move( uwinp, pos ) + Userwin *uwinp; + TWPoint pos; +{ + bool result; + + Manage_Start(); + (((Tilwin *)(uwinp->winp)) -> position = (pos)); + uwinp->positioned = 1; + if ( (! uwinp->ever_opened ) || + ( user_global_options[(int)(TREAT_MOVE_LIKE_RELOCATE)] ) ) + { + uwinp->ever_opened = 1; + return Manage_Finish_Minned( uwinp, + Manage_Center_Open( uwinp, pos ) ); + } + else + { + Manage_Start_Trying(); + result = Tilwin_Open( uwinp->winp, pos, + (((Tilwin *)(uwinp->winp)) -> size) ); + if ( (! result) && ( listener != uwinp ) + && Manage_Can_Try_Listener_Unzoom() ) + result = Tilwin_Open( uwinp->winp, pos, + (((Tilwin *)(uwinp->winp)) -> size) ); + Manage_Finish_Trying( result ); + return Manage_Finish_Fixed_Completely( uwinp, result ); + } +} + + + +bool Manage_Icon_Move( uwinp, pos ) + Userwin *uwinp; + TWPoint pos; +{ + bool result; + + Manage_Start(); + (((Tilwin *)(uwinp->iconp)) -> position = (pos)); + if ( ( user_global_options[(int)(TREAT_MOVE_LIKE_RELOCATE)] ) ) + result = Manage_Neighborhood_Icon_Open( uwinp, pos ); + else + { + Manage_Start_Trying(); + result = Tilwin_Open( uwinp->iconp, pos, + (((Tilwin *)(uwinp->iconp)) -> size) ); + if ( (! result) && Manage_Can_Try_Listener_Unzoom() ) + result = Tilwin_Open( uwinp->iconp, pos, + (((Tilwin *)(uwinp->iconp)) -> size) ); + Manage_Finish_Trying( result ); + } + if ( result ) + window_excursion + + else + Manage_Finish( 0 ); + return result; +} +# 3827 "manage.c" +static void Manage_User_Open_Configure( uwinp, pos, siz, + pos_act, siz_act ) + Userwin *uwinp; + TWPoint pos; + Size siz; + bool pos_act, siz_act; +{ + bool result = 1; + + if ( pos_act && siz_act ) + { + result = Manage_Center_Neighborhood_Open( uwinp, pos, siz ); + } + + else if ( pos_act ) + { + result = Manage_Center_Neighborhood_Open( uwinp, pos, + (((Tilwin *)(uwinp->winp)) -> desired_size) ); + } + + else if ( siz_act ) + { + result = Manage_Center_Neighborhood_Open( uwinp, + (((Tilwin *)(uwinp->winp))->center), siz ); + } + + if (! result) + Draw_Flash(); +} + + + +void Manage_Client_Configure( uwinp, flags, top_left, bodsiz, detail ) + Userwin *uwinp; + unsigned long flags; + TWPoint top_left; + Size bodsiz; + int detail; +{ + TWPoint center; + Size tempsiz, siz, desired; + TWRectangle rect; + + Manage_Start(); + + rect = Region_Body_Rectangle( uwinp ); + + { (tempsiz).width = (rect).right_x - (rect).left_x + 1; (tempsiz).height = (rect).bottom_y - (rect).top_y + 1; }; + + if ( ( ( (flags) & (1L << 2) ) != 0 ) ) + tempsiz.width = bodsiz.width; + if ( ( ( (flags) & (1L << 3) ) != 0 ) ) + tempsiz.height = bodsiz.height; + + if ( ( ( (flags) & (1L << 0) ) != 0 ) ) + rect.left_x = top_left.x; + if ( ( ( (flags) & (1L << 1) ) != 0 ) ) + rect.top_y = top_left.y; + + rect.right_x = rect.left_x + tempsiz.width - 1; + rect.bottom_y = rect.top_y + tempsiz.height - 1; + + rect = Region_Adjust_Rectangle( uwinp, rect ); + + { ((center)).x = 1 + (((rect)).left_x + ((rect)).right_x) / 2; ((center)).y = 1 + (((rect)).top_y + ((rect)).bottom_y) / 2; }; + { (siz).width = (rect).right_x - (rect).left_x + 1; (siz).height = (rect).bottom_y - (rect).top_y + 1; }; + + if ( ( ( ( (flags) & (1L << 2) ) != 0 ) || ( ( (flags) & (1L << 3) ) != 0 ) ) ) + uwinp->sized = 1; + if ( ( ( ( (flags) & (1L << 0) ) != 0 ) || ( ( (flags) & (1L << 1) ) != 0 ) ) ) + { + uwinp->positioned = 1; + (((Tilwin *)(uwinp->winp)) -> position = (center)); + } + + if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MINIMUMS)] ) + ) + { if ((siz).width > (uwinp->client_min).width) (siz).width = (siz).width; else (siz).width = (uwinp->client_min).width; if ((siz).height > (uwinp->client_min).height) (siz).height = (siz).height; else (siz).height = (uwinp->client_min).height; }; + + if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MAXIMUMS)] ) + ) + { if ((siz).width < (uwinp->client_max).width) (siz).width = (siz).width; else (siz).width = (uwinp->client_max).width; if ((siz).height < (uwinp->client_max).height) (siz).height = (siz).height; else (siz).height = (uwinp->client_max).height; }; + + { if (((((Tilwin *)(uwinp->winp)) -> min_size)).width < (siz).width) (tempsiz).width = ((((Tilwin *)(uwinp->winp)) -> min_size)).width; else (tempsiz).width = (siz).width; if (((((Tilwin *)(uwinp->winp)) -> min_size)).height < (siz).height) (tempsiz).height = ((((Tilwin *)(uwinp->winp)) -> min_size)).height; else (tempsiz).height = (siz).height; } + ; + { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (tempsiz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (tempsiz).width ) & (~1); }; + { if (((((Tilwin *)(uwinp->winp)) -> max_size)).width > (siz).width) (tempsiz).width = ((((Tilwin *)(uwinp->winp)) -> max_size)).width; else (tempsiz).width = (siz).width; if (((((Tilwin *)(uwinp->winp)) -> max_size)).height > (siz).height) (tempsiz).height = ((((Tilwin *)(uwinp->winp)) -> max_size)).height; else (tempsiz).height = (siz).height; } + ; + { (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (tempsiz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (tempsiz).width ) & (~1); }; + + desired = (((Tilwin *)(uwinp->winp)) -> desired_size); + if ( ( ( (flags) & (1L << 2) ) != 0 ) ) + desired.width = siz.width; + if ( ( ( (flags) & (1L << 3) ) != 0 ) ) + desired.height = siz.height; + { (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (desired).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (desired).width ) & (~1); }; + + if (! (! ( ( (((Tilwin *)(uwinp->winp))->rect).left_x == (((Tilwin *)(uwinp->winp))->prev_rect).left_x ) && ( (((Tilwin *)(uwinp->winp))->rect).right_x == (((Tilwin *)(uwinp->winp))->prev_rect).right_x ) && ( (((Tilwin *)(uwinp->winp))->rect).top_y == (((Tilwin *)(uwinp->winp))->prev_rect).top_y ) && ( (((Tilwin *)(uwinp->winp))->rect).bottom_y == (((Tilwin *)(uwinp->winp))->prev_rect).bottom_y ) ) )) + Client_Configure_Denied( uwinp ); + + if (! (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ) + { + Tilwin_Set( uwinp->winp, center, siz ); + Manage_Finish_Minned( uwinp, 1 ); + Manage_Cant_Undo(); + } + else + { + Manage_User_Open_Configure( uwinp, center, siz, + ( ( ( (flags) & (1L << 0) ) != 0 ) || ( ( (flags) & (1L << 1) ) != 0 ) ), + ( ( ( (flags) & (1L << 2) ) != 0 ) || ( ( (flags) & (1L << 3) ) != 0 ) ) ); + Manage_Finish_Minned( uwinp, 1 ); + } +} + + + +void Manage_Client_Set_Icon_Size( uwinp, siz ) + Userwin *uwinp; + Size siz; +{ + { (((Tilwin *)(uwinp->iconp)) -> min_size).height = (1+ (siz).height ) & (~1); (((Tilwin *)(uwinp->iconp)) -> min_size).width = (1+ (siz).width ) & (~1); }; + { (((Tilwin *)(uwinp->iconp)) -> max_size).height = (1+ (siz).height ) & (~1); (((Tilwin *)(uwinp->iconp)) -> max_size).width = (1+ (siz).width ) & (~1); }; + { (((Tilwin *)(uwinp->iconp)) -> desired_size).height = ( (siz).height ) & (~1); (((Tilwin *)(uwinp->iconp)) -> desired_size).width = ( (siz).width ) & (~1); }; + + if ( (((Tilwin *)(uwinp->iconp)) -> Am_I_Open) ) + { + { Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { Manage_Start(); Tilwin_Set_Size( uwinp->iconp, siz ); Manage_Finish( 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { Manage_Start(); Tilwin_Set_Size( uwinp->iconp, siz ); Manage_Finish( 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { Manage_Start(); Tilwin_Set_Size( uwinp->iconp, siz ); Manage_Finish( 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { Manage_Start(); Tilwin_Set_Size( uwinp->iconp, siz ); Manage_Finish( 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } } + + + + + + Manage_Cant_Undo(); + } + else + Tilwin_Set_Size( uwinp->iconp, siz ); +} + + + +void Manage_Client_Set_Icon_Position( uwinp, pt ) + Userwin *uwinp; + TWPoint pt; +{ + uwinp->icon_positioned = 1; + (((Tilwin *)(uwinp->iconp)) -> position = (pt)); + + if ( (((Tilwin *)(uwinp->iconp)) -> Am_I_Open) ) + { + { Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { Manage_Start(); Manage_Icon_Open( uwinp ); Manage_Finish( 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { Manage_Start(); Manage_Icon_Open( uwinp ); Manage_Finish( 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { Manage_Start(); Manage_Icon_Open( uwinp ); Manage_Finish( 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { Manage_Start(); Manage_Icon_Open( uwinp ); Manage_Finish( 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } } + + + + + + Manage_Cant_Undo(); + } + else + Tilwin_Set( uwinp->iconp, pt, (((Tilwin *)(uwinp->iconp)) -> size) ); +} +# 4026 "manage.c" +static void Manage_Act_Hints_Open( uwinp, pos, siz, pos_act, siz_act ) + Userwin *uwinp; + TWPoint pos; + Size siz; + bool pos_act, siz_act; +{ + bool result; + + if ( pos_act ) + result = Manage_Center_Neighborhood_Open( + uwinp, pos, siz ); + + else if ( siz_act ) + result = Manage_Center_Neighborhood_Open( + uwinp, (((Tilwin *)(uwinp->winp))->center), siz ); + + if (! result) + Draw_Flash(); +} + + + +static void Manage_Act_Hints_Closed( uwinp, pos, siz, pos_act, siz_act ) + Userwin *uwinp; + TWPoint pos; + Size siz; + bool pos_act, siz_act; +{ + if ( pos_act && siz_act ) + Tilwin_Set( uwinp->winp, pos, siz ); + + else if ( pos_act ) + Tilwin_Set( uwinp->winp, pos, (((Tilwin *)(uwinp->winp))->center) ); + + else if ( siz_act ) + Tilwin_Set( uwinp->winp, (((Tilwin *)(uwinp->winp))->center), siz ); +} + + + +void Manage_Client_Set_Geometry_Hints( uwinp, flags, + top_left, size ) + Userwin *uwinp; + long flags; + TWPoint top_left; + Size size; +{ + Size siz; + TWRectangle rect; + TWPoint pos; + bool pos_act, siz_act; + bool by_user; + + if (! uwinp->prepared) + Manage_Prepare( uwinp ); + + Manage_Start(); + Manage_Save_State( uwinp ); + + if ( uwinp->zoomed ) + { + uwinp->zoom_min = (((Tilwin *)(uwinp->winp)) -> min_size); + uwinp->zoom_size = (((Tilwin *)(uwinp->winp)) -> desired_size); + } + else + { + uwinp->regular_min = (((Tilwin *)(uwinp->winp)) -> min_size); + uwinp->regular_size = (((Tilwin *)(uwinp->winp)) -> desired_size); + } + + by_user = + ( ( ( (flags) & (1L << 0) ) != 0 ) || + ( ( (flags) & (1L << 1) ) != 0 ) ); + + + + if (! ( ( ( (flags) & ((1L << 3) | (1L << 1)) ) != 0 ) && (! ( (uwinp)->options[(int)(IGNORE_SIZE_HINTS)] ) ) && ( uwinp->ever_opened || (! ( (uwinp)->options[(int)(IGNORE_INITIAL_SIZE_HINTS)] ) ) ) ) ) + size = Region_Unadjust_Size( uwinp, uwinp->regular_size ); + + rect = Region_Body_Rectangle( uwinp ); + if ( ( ( ( (flags) & ((1L << 2) | (1L << 0)) ) != 0 ) && (! ( (uwinp)->options[(int)(IGNORE_POSITION_HINTS)] ) ) && ( uwinp->ever_opened || (! ( (uwinp)->options[(int)(IGNORE_INITIAL_POSITION_HINTS)] ) ) ) ) ) + { + uwinp->positioned = 1; + rect.top_y = top_left.y; + rect.left_x = top_left.x; + } + rect.right_x = rect.left_x + size.width - 1; + rect.bottom_y = rect.top_y + size.height - 1; + + rect = Region_Adjust_Rectangle( uwinp, rect ); + + { ((pos)).x = 1 + (((rect)).left_x + ((rect)).right_x) / 2; ((pos)).y = 1 + (((rect)).top_y + ((rect)).bottom_y) / 2; }; + if ( ( ( ( (flags) & ((1L << 2) | (1L << 0)) ) != 0 ) && (! ( (uwinp)->options[(int)(IGNORE_POSITION_HINTS)] ) ) && ( uwinp->ever_opened || (! ( (uwinp)->options[(int)(IGNORE_INITIAL_POSITION_HINTS)] ) ) ) ) ) + (((Tilwin *)(uwinp->winp)) -> position = (pos)); + + { (size).width = (rect).right_x - (rect).left_x + 1; (size).height = (rect).bottom_y - (rect).top_y + 1; }; + if ( ! uwinp->ever_opened ) + { + if ( Profile_Supplies_User_Value( uwinp, NORMAL_DESIRED_WIDTH ) ) + size.width = uwinp->regular_size.width; + if ( Profile_Supplies_User_Value( uwinp, NORMAL_DESIRED_HEIGHT ) ) + size.height = uwinp->regular_size.height; + } + + + + siz_act = ( ( (flags) & (1L << 1) ) != 0 ); + + if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MINIMUMS)] ) + ) + { if ((size).width > (uwinp->client_min).width) (size).width = (size).width; else (size).width = (uwinp->client_min).width; if ((size).height > (uwinp->client_min).height) (size).height = (size).height; else (size).height = (uwinp->client_min).height; }; + + if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MAXIMUMS)] ) + ) + { if ((size).width < (uwinp->client_max).width) (size).width = (size).width; else (size).width = (uwinp->client_max).width; if ((size).height < (uwinp->client_max).height) (size).height = (size).height; else (size).height = (uwinp->client_max).height; }; + + if ( ( ( (flags) & (1L << 1) ) != 0 ) ) + { + if ( ( user_global_options[(int)(RESET_MIN_ON_DECREASE)] ) ) + { if ((uwinp->regular_min).width < (size).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = (size).width; if ((uwinp->regular_min).height < (size).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = (size).height; } + else + { if ((size).width > (uwinp->regular_min).width) (size).width = (size).width; else (size).width = (uwinp->regular_min).width; if ((size).height > (uwinp->regular_min).height) (size).height = (size).height; else (size).height = (uwinp->regular_min).height; }; + + if ( ( user_global_options[(int)(RESET_MAX_ON_INCREASE)] ) ) + { + { if (((((Tilwin *)(uwinp->winp)) -> max_size)).width > (size).width) (siz).width = ((((Tilwin *)(uwinp->winp)) -> max_size)).width; else (siz).width = (size).width; if (((((Tilwin *)(uwinp->winp)) -> max_size)).height > (size).height) (siz).height = ((((Tilwin *)(uwinp->winp)) -> max_size)).height; else (siz).height = (size).height; }; + { (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (siz).width ) & (~1); }; + } + else + { if ((size).width < ((((Tilwin *)(uwinp->winp)) -> max_size)).width) (size).width = (size).width; else (size).width = ((((Tilwin *)(uwinp->winp)) -> max_size)).width; if ((size).height < ((((Tilwin *)(uwinp->winp)) -> max_size)).height) (size).height = (size).height; else (size).height = ((((Tilwin *)(uwinp->winp)) -> max_size)).height; }; + } + else + { + { if ((size).width < ((((Tilwin *)(uwinp->winp)) -> max_size)).width) (size).width = (size).width; else (size).width = ((((Tilwin *)(uwinp->winp)) -> max_size)).width; if ((size).height < ((((Tilwin *)(uwinp->winp)) -> max_size)).height) (size).height = (size).height; else (size).height = ((((Tilwin *)(uwinp->winp)) -> max_size)).height; }; + { if ((size).width > (uwinp->regular_min).width) (size).width = (size).width; else (size).width = (uwinp->regular_min).width; if ((size).height > (uwinp->regular_min).height) (size).height = (size).height; else (size).height = (uwinp->regular_min).height; }; + } + + if ( ( ( ( (flags) & ((1L << 3) | (1L << 1)) ) != 0 ) && (! ( (uwinp)->options[(int)(IGNORE_SIZE_HINTS)] ) ) && ( uwinp->ever_opened || (! ( (uwinp)->options[(int)(IGNORE_INITIAL_SIZE_HINTS)] ) ) ) ) ) + { + uwinp->sized = 1; + uwinp->regular_size = size; + } + else + if ( uwinp->zoomed ) + siz_act = 0; + + + + pos_act = ( ( (flags) & (1L << 0) ) != 0 ); + + { if ((uwinp->zoom_size).width > (uwinp->regular_size).width) (uwinp->zoom_size).width = (uwinp->zoom_size).width; else (uwinp->zoom_size).width = (uwinp->regular_size).width; if ((uwinp->zoom_size).height > (uwinp->regular_size).height) (uwinp->zoom_size).height = (uwinp->zoom_size).height; else (uwinp->zoom_size).height = (uwinp->regular_size).height; } + ; + { if ((uwinp->zoom_min).width > (uwinp->regular_min).width) (uwinp->zoom_min).width = (uwinp->zoom_min).width; else (uwinp->zoom_min).width = (uwinp->regular_min).width; if ((uwinp->zoom_min).height > (uwinp->regular_min).height) (uwinp->zoom_min).height = (uwinp->zoom_min).height; else (uwinp->zoom_min).height = (uwinp->regular_min).height; } + ; + + if ( uwinp->zoomed ) + { + { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->zoom_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->zoom_min).width ) & (~1); }; + { (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->zoom_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->zoom_size).width ) & (~1); }; + } + else + { + { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->regular_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->regular_min).width ) & (~1); }; + { (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->regular_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->regular_size).width ) & (~1); }; + } + + if ( (! ( siz_act || pos_act ) ) || + ( (! uwinp->ever_opened) && uwinp->layout_found ) ) + { + Manage_Finish( 1 ); + if (! by_user) + Manage_Cant_Undo(); + } + else if (! (((Tilwin *)((uwinp)->winp)) -> Am_I_Open) ) + { + Manage_Act_Hints_Closed( uwinp, pos, size, + pos_act, siz_act ); + Manage_Finish( 1 ); + Manage_Cant_Undo(); + } + else if ( by_user ) + { + Manage_Act_Hints_Open( uwinp, pos, size, + pos_act, siz_act ); + Manage_Finish_Minned( uwinp, 1 ); + } + else + { Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { Manage_Act_Hints_Open( uwinp, pos, size, pos_act, siz_act ); Manage_Finish_Minned( uwinp, 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { Manage_Act_Hints_Open( uwinp, pos, size, pos_act, siz_act ); Manage_Finish_Minned( uwinp, 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { Manage_Act_Hints_Open( uwinp, pos, size, pos_act, siz_act ); Manage_Finish_Minned( uwinp, 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { Manage_Act_Hints_Open( uwinp, pos, size, pos_act, siz_act ); Manage_Finish_Minned( uwinp, 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } } + + ; +} + + + +void Manage_Initial_Geometry( uwinp, top_left, bodsiz ) + Userwin *uwinp; + TWPoint top_left; + Size bodsiz; +{ + TWPoint center; + Size siz; + TWRectangle rect; + + if (! uwinp->prepared) + Manage_Prepare( uwinp ); + + rect.left_x = top_left.x; + rect.top_y = top_left.y; + + rect.right_x = rect.left_x + bodsiz.width - 1; + rect.bottom_y = rect.top_y + bodsiz.height - 1; + + rect = Region_Adjust_Rectangle( uwinp, rect ); + + { ((center)).x = 1 + (((rect)).left_x + ((rect)).right_x) / 2; ((center)).y = 1 + (((rect)).top_y + ((rect)).bottom_y) / 2; }; + + { (siz).width = (rect).right_x - (rect).left_x + 1; (siz).height = (rect).bottom_y - (rect).top_y + 1; }; + if ( Profile_Supplies_User_Value( uwinp, NORMAL_DESIRED_WIDTH ) ) + siz.width = uwinp->regular_size.width; + if ( Profile_Supplies_User_Value( uwinp, NORMAL_DESIRED_HEIGHT ) ) + siz.height = uwinp->regular_size.height; + + { if ((siz).width < ((((Tilwin *)(uwinp->winp)) -> max_size)).width) (siz).width = (siz).width; else (siz).width = ((((Tilwin *)(uwinp->winp)) -> max_size)).width; if ((siz).height < ((((Tilwin *)(uwinp->winp)) -> max_size)).height) (siz).height = (siz).height; else (siz).height = ((((Tilwin *)(uwinp->winp)) -> max_size)).height; }; + { if ((siz).width > ((((Tilwin *)(uwinp->winp)) -> min_size)).width) (siz).width = (siz).width; else (siz).width = ((((Tilwin *)(uwinp->winp)) -> min_size)).width; if ((siz).height > ((((Tilwin *)(uwinp->winp)) -> min_size)).height) (siz).height = (siz).height; else (siz).height = ((((Tilwin *)(uwinp->winp)) -> min_size)).height; }; + + { (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (siz).width ) & (~1); }; + Tilwin_Set( uwinp->winp, center, siz ); +} + + + +void Manage_Client_Set_Normal_Hints( uwinp, flags, + min_size, max_size, incr_size, + min_aspect, max_aspect, base_size ) + Userwin *uwinp; + long flags; + Size min_size, max_size, incr_size, base_size; + TWPoint min_aspect, max_aspect; +{ + Size siz; + bool act = 0; + + if (! uwinp->prepared) + Manage_Prepare( uwinp ); + + Manage_Start(); + Manage_Save_State( uwinp ); + + if ( uwinp->zoomed ) + { + uwinp->zoom_min = (((Tilwin *)(uwinp->winp)) -> min_size); + uwinp->zoom_size = (((Tilwin *)(uwinp->winp)) -> desired_size); + } + else + { + uwinp->regular_min = (((Tilwin *)(uwinp->winp)) -> min_size); + uwinp->regular_size = (((Tilwin *)(uwinp->winp)) -> desired_size); + } + + if ( Profile_Supplies_User_Value( uwinp, CLIENT_MAX_WIDTH ) ) + max_size.width = uwinp->body_max.width; + if ( Profile_Supplies_User_Value( uwinp, CLIENT_MAX_HEIGHT ) ) + max_size.height = uwinp->body_max.height; + + if ( Profile_Supplies_User_Value( uwinp, CLIENT_MIN_WIDTH ) ) + min_size.width = uwinp->body_min.width; + if ( Profile_Supplies_User_Value( uwinp, CLIENT_MIN_HEIGHT ) ) + min_size.height = uwinp->body_min.height; + + + + if ( ( ( (flags) & (1L << 5) ) != 0 ) ) + { + if ( ( ( (flags) & (1L << 4) ) != 0 ) ) + { if ((max_size).width > (min_size).width) (max_size).width = (max_size).width; else (max_size).width = (min_size).width; if ((max_size).height > (min_size).height) (max_size).height = (max_size).height; else (max_size).height = (min_size).height; } + else if ( ( ( (flags) & (1L << 8) ) != 0 ) ) + { + min_size = base_size; + { if ((max_size).width > (min_size).width) (max_size).width = (max_size).width; else (max_size).width = (min_size).width; if ((max_size).height > (min_size).height) (max_size).height = (max_size).height; else (max_size).height = (min_size).height; } + } + + uwinp->client_max = Region_Adjust_Size( uwinp, max_size ); + if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MAXIMUMS)] ) ) + { + if ( ( (uwinp)->options[(int)(AUTO_RESATISFY_ON_RESET_MINMAX)] ) + ) + act = 1; + + { if (((((Tilwin *)(uwinp->winp)) -> max_size)).width < (uwinp->client_max).width) (siz).width = ((((Tilwin *)(uwinp->winp)) -> max_size)).width; else (siz).width = (uwinp->client_max).width; if (((((Tilwin *)(uwinp->winp)) -> max_size)).height < (uwinp->client_max).height) (siz).height = ((((Tilwin *)(uwinp->winp)) -> max_size)).height; else (siz).height = (uwinp->client_max).height; } + + { (((Tilwin *)(uwinp->winp)) -> max_size).height = (1+ (siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> max_size).width = (1+ (siz).width ) & (~1); }; + + { if ((uwinp->regular_min).width < (uwinp->client_max).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = (uwinp->client_max).width; if ((uwinp->regular_min).height < (uwinp->client_max).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = (uwinp->client_max).height; } + ; + + { if ((uwinp->regular_size).width < (uwinp->client_max).width) (uwinp->regular_size).width = (uwinp->regular_size).width; else (uwinp->regular_size).width = (uwinp->client_max).width; if ((uwinp->regular_size).height < (uwinp->client_max).height) (uwinp->regular_size).height = (uwinp->regular_size).height; else (uwinp->regular_size).height = (uwinp->client_max).height; } + + } + } + + if ( ( ( (flags) & (1L << 4) ) != 0 ) || ( ( (flags) & (1L << 8) ) != 0 ) ) + { + uwinp->body_min = min_size; + uwinp->client_min = Region_Adjust_Size( uwinp, min_size ); + if ( ( (uwinp)->options[(int)(ENFORCE_CLIENT_MINIMUMS)] ) ) + { + if ( ( (uwinp)->options[(int)(AUTO_RESATISFY_ON_RESET_MINMAX)] ) + ) + act = 1; + + { if (((((Tilwin *)(uwinp->winp)) -> min_size)).width > (uwinp->client_min).width) (siz).width = ((((Tilwin *)(uwinp->winp)) -> min_size)).width; else (siz).width = (uwinp->client_min).width; if (((((Tilwin *)(uwinp->winp)) -> min_size)).height > (uwinp->client_min).height) (siz).height = ((((Tilwin *)(uwinp->winp)) -> min_size)).height; else (siz).height = (uwinp->client_min).height; } + + { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (siz).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (siz).width ) & (~1); }; + + { if ((uwinp->regular_min).width > (uwinp->client_min).width) (uwinp->regular_min).width = (uwinp->regular_min).width; else (uwinp->regular_min).width = (uwinp->client_min).width; if ((uwinp->regular_min).height > (uwinp->client_min).height) (uwinp->regular_min).height = (uwinp->regular_min).height; else (uwinp->regular_min).height = (uwinp->client_min).height; } + ; + + { if ((uwinp->regular_size).width > (uwinp->client_min).width) (uwinp->regular_size).width = (uwinp->regular_size).width; else (uwinp->regular_size).width = (uwinp->client_min).width; if ((uwinp->regular_size).height > (uwinp->client_min).height) (uwinp->regular_size).height = (uwinp->regular_size).height; else (uwinp->regular_size).height = (uwinp->client_min).height; } + ; + } + } + + if ( ( ( ((((Tilwin *)(uwinp->winp)) -> min_size)).width == ((((Tilwin *)(uwinp->winp)) -> max_size)).width ) && ( ((((Tilwin *)(uwinp->winp)) -> min_size)).height == ((((Tilwin *)(uwinp->winp)) -> max_size)).height ) ) + ) + uwinp->sized = 1; + + { if ((uwinp->zoom_size).width > (uwinp->regular_size).width) (uwinp->zoom_size).width = (uwinp->zoom_size).width; else (uwinp->zoom_size).width = (uwinp->regular_size).width; if ((uwinp->zoom_size).height > (uwinp->regular_size).height) (uwinp->zoom_size).height = (uwinp->zoom_size).height; else (uwinp->zoom_size).height = (uwinp->regular_size).height; } + ; + { if ((uwinp->zoom_min).width > (uwinp->regular_min).width) (uwinp->zoom_min).width = (uwinp->zoom_min).width; else (uwinp->zoom_min).width = (uwinp->regular_min).width; if ((uwinp->zoom_min).height > (uwinp->regular_min).height) (uwinp->zoom_min).height = (uwinp->zoom_min).height; else (uwinp->zoom_min).height = (uwinp->regular_min).height; } + ; + + if ( uwinp->zoomed ) + { + { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->zoom_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->zoom_min).width ) & (~1); }; + { (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->zoom_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->zoom_size).width ) & (~1); }; + } + else + { + { (((Tilwin *)(uwinp->winp)) -> min_size).height = (1+ (uwinp->regular_min).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> min_size).width = (1+ (uwinp->regular_min).width ) & (~1); }; + { (((Tilwin *)(uwinp->winp)) -> desired_size).height = ( (uwinp->regular_size).height ) & (~1); (((Tilwin *)(uwinp->winp)) -> desired_size).width = ( (uwinp->regular_size).width ) & (~1); }; + } + + if ( !act || + ( (! uwinp->ever_opened) && uwinp->layout_found ) ) + { + Manage_Finish( 1 ); + Manage_Cant_Undo(); + } + else if (! (((Tilwin *)((uwinp)->winp)) -> Am_I_Open) ) + { + Manage_Resatisfy( uwinp ); + Manage_Finish( 1 ); + Manage_Cant_Undo(); + } + else + { Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { { if( ! Manage_Resatisfy( uwinp ) ) Draw_Flash(); }; Manage_Finish_Minned( uwinp, 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { { if( ! Manage_Resatisfy( uwinp ) ) Draw_Flash(); }; Manage_Finish_Minned( uwinp, 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { { if( ! Manage_Resatisfy( uwinp ) ) Draw_Flash(); }; Manage_Finish_Minned( uwinp, 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { { if( ! Manage_Resatisfy( uwinp ) ) Draw_Flash(); }; Manage_Finish_Minned( uwinp, 1 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } } + + + + +} + + + +extern bool Manage_Fixed_Open(); +extern bool Manage_User_Open_Automatically(); + + + +bool Manage_Client_Open_Automatically( uwinp ) + Userwin *uwinp; +{ + bool result = 0; + + if ( ! uwinp->ever_opened ) + { + Manage_Start(); + + if ( uwinp->sized && uwinp->positioned ) + { Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ENABLE_GRAVITY)] ); globals[(int)(ENABLE_GRAVITY)] = (0); { result = Manage_Fixed_Open( uwinp ); }; globals[(int)(ENABLE_GRAVITY)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ENABLE_GRAVITY)] ); globals[(int)(ENABLE_GRAVITY)] = (0); { result = Manage_Fixed_Open( uwinp ); }; globals[(int)(ENABLE_GRAVITY)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ENABLE_GRAVITY)] ); globals[(int)(ENABLE_GRAVITY)] = (0); { result = Manage_Fixed_Open( uwinp ); }; globals[(int)(ENABLE_GRAVITY)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ENABLE_GRAVITY)] ); globals[(int)(ENABLE_GRAVITY)] = (0); { result = Manage_Fixed_Open( uwinp ); }; globals[(int)(ENABLE_GRAVITY)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } } + + + + + + if (! result) + { Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { result = Manage_User_Open_Automatically( uwinp, 0, 0 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { result = Manage_User_Open_Automatically( uwinp, 0, 0 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { result = Manage_User_Open_Automatically( uwinp, 0, 0 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { result = Manage_User_Open_Automatically( uwinp, 0, 0 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } } + + + + + + if (! result) + { Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Initial_Icon_Open( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Initial_Icon_Open( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Initial_Icon_Open( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Initial_Icon_Open( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } } + ; + + uwinp->ever_opened = 1; + Manage_Finish( 1 ); + } + else + { Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { result = Manage_User_Open_Automatically( uwinp, 0, 0 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { result = Manage_User_Open_Automatically( uwinp, 0, 0 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { result = Manage_User_Open_Automatically( uwinp, 0, 0 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); { result = Manage_User_Open_Automatically( uwinp, 0, 0 ); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } } + + + + + + return result; +} + + + +static bool Manage_Exchange_Open( uwinp, pos, siz ) + Userwin *uwinp; + TWPoint pos; + Size siz; +{ + bool result; + + Manage_Start_Trying(); + + result = Manage_Center_Neighborhood_Open( uwinp, pos, siz ); + if ( (! result) && Manage_Can_Try_Listener_Unzoom() ) + result = Manage_Center_Neighborhood_Open( uwinp, pos, siz ); + + Manage_Finish_Trying( result ); + return result; +} + + + +static bool Manage_Icon_Exchange_Open( uwinp, pos ) + Userwin *uwinp; + TWPoint pos; +{ + bool result; + + result = Manage_Neighborhood_Icon_Open( uwinp, pos ); + if (! result) + result = Manage_Icon_Open( uwinp ); + + return result; +} + + + +static bool Manage_Icon_Exchange( uwinp1, uwinp2 ) + Userwin *uwinp1, *uwinp2; +{ + bool result; + TWPoint pt1, pt2; + pt1 = (((Tilwin *)(uwinp1->iconp))->center); + pt2 = (((Tilwin *)(uwinp2->iconp))->center); + + Tilwin_Close( uwinp1->iconp ); + + { bool temp_val; temp_val = ( globals[(int)(PREFER_CLOSE_TO_SHRINK)] ); globals[(int)(PREFER_CLOSE_TO_SHRINK)] = (( user_global_options[(int)(PREFER_CL_TO_SHR_ON_EXCHANGE)] )); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTO_CLOSE_ON_EXCHANGE)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTO_SHRINK_ON_EXCHANGE)] ))); { result = Manage_Icon_Exchange_Open( uwinp2, pt1 ); if ( result ) result = Manage_Icon_Exchange_Open( uwinp1, pt2 ); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(PREFER_CLOSE_TO_SHRINK)] = (temp_val); } +# 4495 "manage.c" + if ( result ) + { + (((Tilwin *)(uwinp1->iconp)) -> position = (pt2)); + (((Tilwin *)(uwinp2->iconp)) -> position = (pt1)); + } + + return result; +} + + + +static bool Manage_Open_Exchange( uwinp1, uwinp2 ) + Userwin *uwinp1, *uwinp2; +{ + TWPoint pt1, pt2; + Size siz; + bool result; + + Manage_Restart(); + + pt1 = (((Tilwin *)(uwinp1->winp))->center); + pt2 = (((Tilwin *)(uwinp2->winp))->center); + + Tilwin_Close( uwinp1->winp ); + + { bool temp_val; temp_val = ( user_global_options[(int)(UNZOOM_TIED_LSNR_IF_NECESSARY)] ); user_global_options[(int)(UNZOOM_TIED_LSNR_IF_NECESSARY)] = ((temp_val && ( ( listener != uwinp1 ) && ( listener != uwinp2 ) ))); { bool temp_val; temp_val = ( globals[(int)(PREFER_CLOSE_TO_SHRINK)] ); globals[(int)(PREFER_CLOSE_TO_SHRINK)] = (( user_global_options[(int)(PREFER_CL_TO_SHR_ON_EXCHANGE)] )); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTO_CLOSE_ON_EXCHANGE)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTO_SHRINK_ON_EXCHANGE)] ))); { siz = Tilwin_Checked_Desired_Size( uwinp2->winp ); result = Manage_Exchange_Open( uwinp2, pt1, siz ); if ( result ) window_excursion }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(PREFER_CLOSE_TO_SHRINK)] = (temp_val); }; user_global_options[(int)(UNZOOM_TIED_LSNR_IF_NECESSARY)] = (temp_val); } +# 4542 "manage.c" + if ( result ) + { + (((Tilwin *)(uwinp1->winp)) -> position = (pt2)); + uwinp1->positioned = 1; + (((Tilwin *)(uwinp2->winp)) -> position = (pt1)); + uwinp2->positioned = 1; + } + return result; +} + + + +static bool Manage_Different_Exchange( uwinp1, uwinp2 ) + Userwin *uwinp1, *uwinp2; +{ + TWPoint pt1, pt2; + Size siz; + bool result; + bool repos1 = 0; + bool repos2 = 0; + + if ( uwinp2 == rtl_uwinp ) return 0; + + Manage_Restart(); + + pt1 = (((Tilwin *)(uwinp1->winp))->center); + pt2 = (((Tilwin *)(uwinp2->iconp))->center); + + Tilwin_Close( uwinp1->winp ); + Tilwin_Close( uwinp2->iconp ); + + { bool temp_val; temp_val = ( user_global_options[(int)(UNZOOM_TIED_LSNR_IF_NECESSARY)] ); user_global_options[(int)(UNZOOM_TIED_LSNR_IF_NECESSARY)] = ((temp_val && ( listener != uwinp1 ))); { { bool temp_val; temp_val = ( globals[(int)(PREFER_CLOSE_TO_SHRINK)] ); globals[(int)(PREFER_CLOSE_TO_SHRINK)] = (( user_global_options[(int)(PREFER_CL_TO_SHR_ON_EXCHANGE)] )); { { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTO_CLOSE_ON_EXCHANGE)] ))); { { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTO_SHRINK_ON_EXCHANGE)] ))); { siz = Tilwin_Checked_Desired_Size( uwinp2->winp ); if ( ( user_global_options[(int)(PREFER_EXCHANGED_LOC_ON_OPENING)] ) && (! ( uwinp2->positioned && ( (uwinp2)->options[(int)(REQUIRE_PREV_POS)] ) ) ) ) { result = Manage_Exchange_Open( uwinp2, pt1, siz ); if ( result ) repos2 = 1; } if (! result) result = Manage_Desktop_Open( uwinp2, siz ); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } }; globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); } }; globals[(int)(PREFER_CLOSE_TO_SHRINK)] = (temp_val); } }; user_global_options[(int)(UNZOOM_TIED_LSNR_IF_NECESSARY)] = (temp_val); } +# 4598 "manage.c" + if (! result) + return 0; + window_excursion +# 4614 "manage.c" + if ( repos1 ) + (((Tilwin *)(uwinp1->iconp)) -> position = (pt2)); + if ( repos2 ) + { + (((Tilwin *)(uwinp2->winp)) -> position = (pt1)); + uwinp2->positioned = 1; + } + + return 1; +} + + + +bool Manage_Exchange( uwinp1, uwinp2 ) + Userwin *uwinp1, *uwinp2; +{ + bool open1, open2; + bool result; + + Manage_Start(); + + open1 = ( uwinp1->current_type == body ); + open2 = ( uwinp2->current_type == body ); + + if ( open1 && (! open2) ) + { + result = Manage_Different_Exchange( uwinp1, uwinp2 ); + Manage_Finish_Locked( uwinp2, result ); + } + + else if ( open2 && (! open1) ) + { + result = Manage_Different_Exchange( uwinp2, uwinp1 ); + Manage_Finish_Locked( uwinp1, result ); + } + + else if ( (! open1) && (! open2) ) + { + result = Manage_Icon_Exchange( uwinp1, uwinp2 ); + Manage_Finish( result ); + } + + else + { + result = 0; + + if ( ( user_global_options[(int)(TRY_CTR_NBRHD_ON_EXCHANGE)] ) + && + ( user_global_options[(int)(TRY_CTR_NBRHD_ON_OPEN)] ) + ) + { + result = Manage_Open_Exchange( uwinp1, uwinp2 ); + if (! result) + result = Manage_Open_Exchange( uwinp2, uwinp1 ); + } + + if (! result) + { bool temp_val; temp_val = ( user_global_options[(int)(TRY_CTR_NBRHD_ON_OPEN)] ); user_global_options[(int)(TRY_CTR_NBRHD_ON_OPEN)] = (0); { result = Manage_Open_Exchange( uwinp1, uwinp2 ); if (! result) result = Manage_Open_Exchange( uwinp2, uwinp1 ); }; user_global_options[(int)(TRY_CTR_NBRHD_ON_OPEN)] = (temp_val); } + + + + + + + + window_excursion; + + + + } + + return result; +} + + + +static void Manage_Remove_Window( uwinp ) + Userwin *uwinp; +{ + TimeStamp stamp; + + Manage_Start(); + + if ( (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ) + { + Tilwin_Close( uwinp->winp ); + + if ( ( user_global_options[(int)(AUTO_REPOPULATE_ON_CLOSE)] ) ) + { + if ( ( user_global_options[(int)(AUTO_DESIRED_ENLARGE)] ) ) + Manage_Ordered_Desire(); + + if ( ( user_global_options[(int)(ONLY_REPOPULATE_SINCE_ON_CLOSE)] ) ) + stamp = uwinp->open_stamp; + else + stamp = (TimeStamp)0; + Manage_Repopulate_Since( stamp, 0, 0, 1 ); + } + } + + Manage_Finish( 1 ); +} + + + +static void Manage_Remove( uwinp ) + Userwin *uwinp; +{ + if ( (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ) + Tilwin_Close( uwinp->winp ); + else if ( (((Tilwin *)(uwinp->iconp)) -> Am_I_Open) ) + Tilwin_Close( uwinp->iconp ); + + Closed_Remove( uwinp ); +} + + + +void Manage_Close( uwinp ) + Userwin *uwinp; +{ + extern void Manage_Contract(); + + if ( uwinp->client_state != 2 ) + Manage_Remove_Window( uwinp ); + else if ( ( ( ((((Tilwin *)(uwinp->winp)) -> min_size)).width == ((((Tilwin *)(uwinp->winp)) -> size)).width ) && ( ((((Tilwin *)(uwinp->winp)) -> min_size)).height == ((((Tilwin *)(uwinp->winp)) -> size)).height ) ) + ) + Manage_Remove_Window( uwinp ); + else + Manage_Contract( uwinp ); +} + + + +void Manage_Client_Close( uwinp ) + Userwin *uwinp; +{ + { Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Remove_Window( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Remove_Window( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Remove_Window( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Remove_Window( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } }; +} + + + +void Manage_Client_Open_Icon( uwinp ) + Userwin *uwinp; +{ + if ( uwinp->ever_opened ) + Manage_Client_Close( uwinp ); + else + { + uwinp->ever_opened = 1; + { Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Initial_Icon_Open( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Initial_Icon_Open( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Initial_Icon_Open( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Initial_Icon_Open( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } } + } +} + + + +static void Manage_Close_Icon( uwinp ) + Userwin *uwinp; +{ + Manage_Start(); + if ( (((Tilwin *)(uwinp->iconp)) -> Am_I_Open) ) + Tilwin_Close( uwinp->iconp ); + Manage_Finish( 1 ); +} + + + +static void Manage_Inactivate( uwinp ) + Userwin *uwinp; +{ + if ( (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ) + Manage_Remove_Window( uwinp ); + else + Manage_Close_Icon( uwinp ); +} + + + +void Manage_Client_Close_Icon( uwinp ) + Userwin *uwinp; +{ + { Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Inactivate( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Inactivate( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Inactivate( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Inactivate( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } } +} + + + +void Manage_Group_Close( uwinp ) + Userwin *uwinp; +{ + Tilwinp winp; + Userwin *group; + TimeStamp stamp; + + group = uwinp->group; + if ( group == (Userwin *)((void *)0) ) + { + Manage_Close( uwinp ); + return; + } + + Manage_Start(); + + group->group = group; + + Tilwin_Gen_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( (uwinp->group == group) && + (! (((Tilwin *)(uwinp->winp)) -> Am_I_Open)) && + (! (((Tilwin *)(uwinp->iconp)) -> Am_I_Open)) ) + { + Manage_Save_State( uwinp ); + Closed_Remove( uwinp ); + uwinp->group_state = uwinp->wm_state; + } + } + + stamp = last_stamp; + + Tilwin_Gen_Open_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( uwinp->group == group ) + { + if ( uwinp->winp == winp ) + stamp = ( ( (stamp) < (uwinp->open_stamp) ) ? (stamp) : (uwinp->open_stamp) ); + + Manage_Save_State( uwinp ); + Manage_Remove( uwinp ); + uwinp->group_state = uwinp->wm_state; + } + } + + if (! group->ever_opened) + Manage_Prepare_Open( group ); + + Closed_Add( uwinp ); + if ( ( user_global_options[(int)(USE_ICONS)] ) ) + Manage_Icon_Open( uwinp ); + + if ( ( user_global_options[(int)(AUTO_REPOPULATE_ON_CLOSE)] ) ) + { + if ( ( user_global_options[(int)(AUTO_DESIRED_ENLARGE)] ) ) + Manage_Ordered_Desire(); + + if (! ( user_global_options[(int)(ONLY_REPOPULATE_SINCE_ON_CLOSE)] ) ) + stamp = (TimeStamp)0; + Manage_Repopulate_Since( stamp, 0, 0, 1 ); + } + + Manage_Finish( 1 ); +} + + + +static void Manage_Group_Restore( uwinp ) + Userwin *uwinp; +{ + int state; + + state = uwinp->group_state; + uwinp->group_state = -3; + + switch ( state ) + { + case -2: + break; + + case -1: + case 0: + case 1: + Closed_Add( uwinp ); + Manage_User_Open_Automatically( uwinp, 0, 0 ); + break; + + case 2: + case 3: + case 4: + Closed_Add( uwinp ); + if ( uwinp->client_state == 2 ) + Manage_User_Open_Automatically( uwinp, 0, 0 ); + else + Manage_Icon_Open( uwinp ); + break; + + case 5: + break; + } +} + + + +void Manage_Group_Open( group ) + Userwin *group; +{ + bool found = 1; + Tilwinp winp; + Userwin *uwinp; + + Manage_Start(); + + Manage_Save_State( group ); + if ( (((Tilwin *)(group->iconp)) -> Am_I_Open) ) + Tilwin_Close( group->iconp ); + Closed_Remove( group ); + + while (found) + { + found = 0; + + Tilwin_Gen_Closed_Windows(); + while ( (! found) && + ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( ( (uwinp)->group_state != -3 ) && + (uwinp->group == group) ) + { + found = 1; + Manage_Group_Restore( uwinp ); + } + } + } + + Manage_Finish( 1 ); +} + + + +void Manage_Want_State( uwinp, state ) + Userwin *uwinp; + int state; +{ + uwinp->group_state = state; +} + + + +static void Manage_Set_Group( uwinp, group ) + Userwin *uwinp; + Userwin *group; +{ + Manage_Start(); + + uwinp->group = group; + if (! ( (uwinp)->group_state != -3 ) ) + { + if ( ( group != (Userwin *)((void *)0)) && ( (group)->group_state != -3 ) ) + { + Manage_Save_State( uwinp ); + Manage_Remove( uwinp ); + uwinp->group_state = uwinp->wm_state; + } + } + else if ( ( group == (Userwin *)((void *)0) ) || + (! ( (group)->group_state != -3 ) ) ) + Manage_Group_Restore( uwinp ); + + Manage_Finish( 1 ); +} + + + +void Manage_Client_Set_Group( uwinp, group ) + Userwin *uwinp; + Userwin *group; +{ + { Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Set_Group( uwinp, group ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Set_Group( uwinp, group ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Set_Group( uwinp, group ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Set_Group( uwinp, group ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } } +} + + + +void Manage_Client_Set_State( uwinp, state ) + Userwin *uwinp; + int state; +{ + uwinp->client_state = state; +} + + + +void Manage_Client_Change_State( uwinp, state ) + Userwin *uwinp; + int state; +{ + uwinp->client_state = state; + + if ( ( state != 5 ) && + ( uwinp->wm_state == 5 ) ) + Drawwin_Insert( uwinp ); + else if ( ( state == 5 ) && + ( uwinp->wm_state != 5 ) ) + Drawwin_Withdraw( uwinp ); + + if ( ( (uwinp)->group_state != -3 ) ) + { + if ( state == 5 ) + { + if ( (uwinp->wm_state != 5) && + (uwinp->group != uwinp) ) + { + uwinp->wm_state = 5; + Client_Set_State( uwinp ); + } + uwinp->group_state = 5; + } + else + { + if ( uwinp->wm_state == 5 ) + { + uwinp->wm_state = 4; + uwinp->group_state = state; + Client_Set_State( uwinp ); + } + + else if ( ( state != -1 ) && ( state != 0 ) ) + uwinp->group_state = state; + } + } + else + { + switch ( state ) + { + case -1: + case 0: + break; + + case 1: + case 2: + if (! (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ) + Manage_Client_Open_Automatically( uwinp ); + break; + + case 3: + { Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Remove_Window( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Remove_Window( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Remove_Window( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Remove_Window( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } }; + break; + + case 4: + if ( (((Tilwin *)(uwinp->winp)) -> Am_I_Open) || + (((Tilwin *)(uwinp->iconp)) -> Am_I_Open) ) + { Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Inactivate( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Inactivate( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Inactivate( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Inactivate( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } } + + uwinp->wm_state = 4; + Client_Set_State( uwinp ); + Closed_Add( uwinp ); + + break; + + case 5: + if ( (((Tilwin *)(uwinp->winp)) -> Am_I_Open) || + (((Tilwin *)(uwinp->iconp)) -> Am_I_Open) ) + { Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Inactivate( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Inactivate( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Inactivate( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Inactivate( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } } + + uwinp->wm_state = 5; + Client_Set_State( uwinp ); + + Closed_Remove( uwinp ); + break; + } + } +} + + + +void Manage_Repopulate_Last() +{ + Manage_Start(); + Manage_Repopulate_Since( last_stamp, 1, 0, 1 ); + Manage_Finish( 1 ); +} + + + +void Manage_Repopulate_All( strict, only_auto_close ) + bool strict; + bool only_auto_close; +{ + Manage_Start(); + Manage_Repopulate_Since( (TimeStamp)0, 1, strict, only_auto_close ); + Manage_Finish( 1 ); +} + + + +static void Manage_Cleanup_Window( uwinp ) + Userwin *uwinp; +{ + if ( uwinp == prev_touch ) prev_touch = (Userwin *)((void *)0); + if ( uwinp == prev_listener ) prev_listener = (Userwin *)((void *)0); + Manage_Unset( uwinp ); + + + uwinp->client_state = -2; + + Manage_Remove( uwinp ); +} + + + +void Manage_Eliminate_Window( uwinp ) + Userwin *uwinp; +{ + Manage_Untitle( uwinp ); + + Drawwin_Destroy( uwinp ); + DrawIcon_Destroy( uwinp ); + + Tilwin_Destroy_Window( uwinp->winp ); + Tilwin_Destroy_Window( uwinp->iconp ); + + free( uwinp ); +} + + + +static void Manage_Cleanup_Connection( connection ) + int connection; +{ + Tilwinp winp; + Userwin *uwinp; + + Tilwin_Gen_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( (uwinp->connection == connection ) && + ( (winp == uwinp->winp) || (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ) ) + { + Manage_Cleanup_Window( uwinp ); + } + } +} + + + +static void Manage_Eliminate_Connection( connection ) + int connection; +{ + Tilwinp winp; + Userwin *uwinp; + bool killed = 1; + + while (killed) + { + killed = 0; + Tilwin_Gen_Closed_Windows(); + while ( (! killed) && + ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( (uwinp->connection == connection ) && + ( (winp == uwinp->winp) || (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ) ) + { + Manage_Eliminate_Window( uwinp ); + killed = 1; + } + } + } +} + + + +static void Manage_Destroy_Window( uwinp ) + Userwin *uwinp; +{ + bool zoomed; + TimeStamp open_stamp, zoom_stamp; + + Manage_Start(); + + if ( ( user_global_options[(int)(ONLY_REPOPULATE_SINCE_ON_CLOSE)] ) ) + open_stamp = uwinp->open_stamp; + else + open_stamp = (TimeStamp)0; + + zoomed = uwinp->zoomed; + if ( ( user_global_options[(int)(ONLY_REPOP_SINCE_ON_AUTO_UNZOOM)] ) + || + ( user_global_options[(int)(ONLY_REPOP_SINCE_ON_EXPL_UNZOOM)] ) + ) + zoom_stamp = uwinp->zoom_stamp; + else + zoom_stamp = (TimeStamp)0; + + Manage_Cleanup_Window( uwinp ); + + Manage_Update_Desktop(); + + Manage_Eliminate_Window( uwinp ); + + if ( ( user_global_options[(int)(AUTO_DESIRED_ENLARGE)] ) ) + Manage_Ordered_Desire(); + + if ( ( user_global_options[(int)(AUTO_REPOPULATE_ON_CLOSE)] ) ) + Manage_Repopulate_Since( open_stamp, 0, 0, 1 ); + + if ( zoomed && + ( user_global_options[(int)(AUTO_REPOP_ON_EXPLICIT_UNZOOM)] ) ) + Manage_Repopulate_Since( zoom_stamp, 0, 0, 1 ); + + Manage_Finish( 1 ); +} + + + +void Manage_Client_Destroy( uwinp ) + Userwin *uwinp; +{ + Manage_Unset( uwinp ); + { Userwin *cur_listener; Userwin *cur_sublistener; cur_listener = listener; cur_sublistener = sublistener; if ( sublistener != (Userwin *)((void *)0) ) { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Destroy_Window( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_sublistener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Destroy_Window( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_sublistener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } } else { if ( listener != (Userwin *)((void *)0) ) { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = ((temp_val || (! ( user_global_options[(int)(ALLOW_LSNR_TO_CLOSE_BY_CLIENT)] )))); { { bool temp_val; temp_val = ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ); ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = ((temp_val || ( cur_listener->focus && (! ( user_global_options[(int)(ALLOW_LSNR_TO_CHANGE_BY_CLIENT)] ))))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Destroy_Window( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) FIXED_COMPLETELY ] ) = (temp_val); } }; ( ((Tilwin *)(cur_listener->winp)) -> options[ (int) REQUIRE_MANUAL_CLOSE ] ) = (temp_val); } else { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_SHRINK)] ); globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_SHRINK_BY_CLIENT)] ))); { bool temp_val; temp_val = ( globals[(int)(ALLOW_AUTOMATIC_CLOSE)] ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = ((temp_val && ( user_global_options[(int)(ALLOW_AUTOMATIC_CLOSE_BY_CLIENT)] ))); Manage_Destroy_Window( uwinp ); globals[(int)(ALLOW_AUTOMATIC_CLOSE)] = (temp_val); }; globals[(int)(ALLOW_AUTOMATIC_SHRINK)] = (temp_val); } } }; +} + + + +void Manage_Hard_Kill( uwinp ) + Userwin *uwinp; +{ + Client_Kill( uwinp ); + Manage_Destroy_Window( uwinp ); +} + + + +void Manage_Notify( uwinp ) + Userwin *uwinp; +{ + if ( ( ( ((uwinp)->messages) & (1L << 2) ) != 0 ) ) + { + uwinp->saving_state = 1; + Client_Bang( uwinp ); + } + else + Draw_Flash(); +} + + + +void Manage_Soft_Kill( uwinp ) + Userwin *uwinp; +{ + if ( ( ( ((uwinp)->messages) & (1L << 2) ) != 0 ) ) + { + uwinp->saving_state = 1; + uwinp->soft_kill = 1; + Client_Bang( uwinp ); + } + else + { + Client_Kill( uwinp ); + Manage_Destroy_Window( uwinp ); + } +} + + + +void Manage_Delete_Window( uwinp ) + Userwin *uwinp; +{ + if ( ( ( ((uwinp)->messages) & (1L << 4) ) != 0 ) ) + Client_Delete_Window( uwinp ); + else + Manage_Soft_Kill( uwinp ); +} + + + +void Manage_Notify_All() +{ + Tilwinp winp; + Userwin *uwinp; + + Tilwin_Gen_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( (uwinp != rtl_uwinp) && + ( (winp == uwinp->winp) || (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ) ) + { + if ( ( ( ((uwinp)->messages) & (1L << 2) ) != 0 ) ) + Manage_Notify( uwinp ); + } + } +} + + + +void Manage_Soft_Kill_All() +{ + Tilwinp winp; + Userwin *uwinp; + bool killed = 1; + + while (killed) + { + killed = 0; + Tilwin_Gen_Closed_Windows(); + while ( (! killed) && + ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( (uwinp != rtl_uwinp) && + ( (winp == uwinp->winp) || (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ) ) + { + Manage_Soft_Kill( uwinp ); + killed = 1; + } + } + } +} + + + +void Manage_Exit() +{ + Tilwinp winp; + Userwin *uwinp; + + Tilwin_Gen_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != (Tilwinp)((void *)0) ) + { + uwinp = ((Userwin *)(( ((winp) == (Tilwinp)((void *)0)) ? (pointer)((void *)0) : (((Tilwin *)(winp))->id) ))); + if ( (uwinp != rtl_uwinp) && + ( (winp == uwinp->winp) || (((Tilwin *)(uwinp->winp)) -> Am_I_Open) ) ) + Client_Kill( uwinp ); + } +} + + + +void Manage_Client_Set_Messages( uwinp, messages ) + Userwin *uwinp; + long messages; +{ + uwinp->messages = messages; +} diff --git a/manage_op.c b/manage_op.c new file mode 100644 index 0000000..9c08736 --- /dev/null +++ b/manage_op.c @@ -0,0 +1,674 @@ +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" + +#include "userglobD.h" +#include "twin.h" + +#ifndef USERWIN_DEFINE +#include "uwinD.h" +#endif + +#ifndef TILWIN_DEFINE +#include "twinD.h" +#endif + +#include "client.h" +#include "closed.h" +#include "draw.h" +#include "drawicon.h" +#include "drawwin.h" +#include "layout.h" +#include "profile.h" +#include "region.h" +#include "tool.h" + +/* ------------------------------------------------------------ */ + +#define COMPUTE_DISTANCE(pt1, pt2) \ + (((Get_PtX(pt1) - Get_PtX(pt2)) * (Get_PtX(pt1) - Get_PtX(pt2))) + \ + ((Get_PtY(pt1) - Get_PtY(pt2)) * (Get_PtY(pt1) - Get_PtY(pt2)))) + + +#define window_excursion(win,opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = Tilwin_Get_Window_Option(win,opt); \ + Tilwin_Set_Window_Option(win,opt,val); \ + code; \ + Tilwin_Set_Window_Option(win,opt,temp_val); \ +} + +#define window_restrict_excursion(win,opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = Tilwin_Get_Window_Option(win,opt); \ + Tilwin_Set_Window_Option( win, opt, (temp_val && val) ); \ + code; \ + Tilwin_Set_Window_Option(win,opt,temp_val); \ +} + +#define window_join_excursion(win,opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = Tilwin_Get_Window_Option(win,opt); \ + Tilwin_Set_Window_Option( win, opt, (temp_val || val) ); \ + code; \ + Tilwin_Set_Window_Option(win,opt,temp_val); \ +} + +#define global_excursion(opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = Tilwin_Get_Global_Option(opt); \ + Tilwin_Set_Global_Option(opt,val); \ + code; \ + Tilwin_Set_Global_Option(opt,temp_val); \ +} + +#define global_restrict_excursion(opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = Tilwin_Get_Global_Option(opt); \ + Tilwin_Set_Global_Option( opt, (temp_val && val) ); \ + code; \ + Tilwin_Set_Global_Option(opt,temp_val); \ +} + +#define user_window_excursion(uwin,opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = Userwin_Get_Window_Option(uwin,opt); \ + Userwin_Set_Window_Option( uwin, opt, val ); \ + code; \ + Userwin_Set_Window_Option(uwin,opt,temp_val); \ +} + +#define user_window_join_excursion(uwin,opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = Userwin_Get_Window_Option(uwin,opt); \ + Userwin_Set_Window_Option( uwin, opt, (temp_val || val) ); \ + code; \ + Userwin_Set_Window_Option(uwin,opt,temp_val); \ +} + +#define user_global_excursion(opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = UserGlobals_Get_Option(opt); \ + UserGlobals_Set_Option( opt, val ); \ + code; \ + UserGlobals_Set_Option(opt,temp_val); \ +} + +#define user_global_restrict_excursion(opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = UserGlobals_Get_Option(opt); \ + UserGlobals_Set_Option( opt, (temp_val && val) ); \ + code; \ + UserGlobals_Set_Option(opt,temp_val); \ +} + +#define user_global_join_excursion(opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = UserGlobals_Get_Option(opt); \ + UserGlobals_Set_Option( opt, (temp_val || val) ); \ + code; \ + UserGlobals_Set_Option(opt,temp_val); \ +} + +#define min_excursion(win,code) \ +{ \ + Size temp_min; \ + temp_min = Tilwin_Get_Min(win); \ + Tilwin_Set_Min( win, Tilwin_Get_Size(win) ); \ + code; \ + Tilwin_Set_Min( win, temp_min ); \ +} + +/* ------------------------------------------------------------ */ + +#define height_excursion(winp,code) \ +{ \ + if ( Tilwin_Get_Size(winp).height < \ + Tilwin_Get_Previous_Size(winp).height ) \ + window_excursion( winp, FIXED_HEIGHT, TRUE, code ) \ + else \ + { \ + Size temp_min, temp_siz; \ + temp_siz = temp_min = Tilwin_Get_Min(winp); \ + temp_siz.height = Tilwin_Get_Size(winp).height; \ + Tilwin_Set_Min( winp, temp_siz ); \ + code; \ + Tilwin_Set_Min( winp, temp_min ); \ + } \ +} + +/* ------------------------------------------------------------ */ + +#define width_excursion(winp,code) \ +{ \ + if ( Tilwin_Get_Size(winp).width < \ + Tilwin_Get_Previous_Size(winp).width ) \ + window_excursion( winp, FIXED_WIDTH, TRUE, code ) \ + else \ + { \ + Size temp_min, temp_siz; \ + temp_siz = temp_min = Tilwin_Get_Min(winp); \ + temp_siz.width = Tilwin_Get_Size(winp).width; \ + Tilwin_Set_Min( winp, temp_siz ); \ + code; \ + Tilwin_Set_Min( winp, temp_min ); \ + } \ +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +extern TimeStamp last_stamp; +extern Userwin *listener; + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +extern TWRectangle Manage_Neighborhood_Rectangle(); +extern void Manage_Start_Open(); +extern bool Manage_Finish_Sized_Open(); +extern bool Manage_Finish_Unsized_Open(); +extern bool Manage_Can_Try_Listener_Unzoom(); +extern bool Manage_Can_Try_Self_Unzoom(); +extern void Manage_Min_Max_Resizing(); +extern void Manage_Finish_Resizing(); +extern void Manage_Cancel_Resizing(); +extern void Manage_Switch_Listener(); +extern bool Manage_Unzoom_Open(); + + +/* ------------------------------------------------------------ */ + +static bool Manage_Basic_Open( uwinp, center, siz ) + Userwin *uwinp; + TWPoint center; + Size siz; +{ + if ( Tilwin_Get_Window_Option( uwinp->winp, FIXED_SIZE ) || + ( Tilwin_Get_Window_Option( uwinp->winp, FIXED_WIDTH ) && + Tilwin_Get_Window_Option( uwinp->winp, FIXED_HEIGHT ) ) ) + return Tilwin_Open( uwinp->winp, center, siz ); + else + { + TWRectangle rect; + MAKE_RECTANGLE( center, siz, rect ); + return Tilwin_Open_Nearest_In_Area( uwinp->winp, rect, center, siz ); + } +} + +/* ------------------------------------------------------------ */ + +bool Manage_Center_Neighborhood_Open( uwinp, center, siz ) + Userwin *uwinp; + TWPoint center; + Size siz; +{ + TWRectangle rect; + bool result; + + if (! UserGlobals_Get_Option(TRY_CTR_NBRHD_ON_OPEN)) + return Manage_Basic_Open( uwinp, center, siz ); + + global_restrict_excursion( ALLOW_AUTOMATIC_CLOSE, + (! UserGlobals_Get_Option( + PF_CTR_NBR_2_AUTO_CL_ON_OPEN)), + { global_restrict_excursion( ALLOW_AUTOMATIC_SHRINK, + (! UserGlobals_Get_Option( + PF_CTR_NBR_2_AUTO_SHR_ON_OPEN)), + { window_join_excursion( uwinp->winp, FIXED_SIZE, + UserGlobals_Get_Option(PF_CTR_NBR_2_SHRINK_ON_OPEN), + { + result = Manage_Basic_Open( uwinp, center, siz ); + } ) } ) } ); + + if (! result ) + { + rect = Manage_Neighborhood_Rectangle( 0.5, center, siz ); + result = Tilwin_Open_Nearest_In_Area( uwinp->winp, + rect, center, siz ); + } + + return result; +} + +/* ------------------------------------------------------------ */ + +static bool Manage_Edge_Neighborhood_Open( uwinp, center, siz ) + Userwin *uwinp; + TWPoint center; + Size siz; +{ + TWRectangle rect; + bool result; + + if (! UserGlobals_Get_Option(TRY_EDGE_NEIGHBORHOOD_ON_OPEN)) + return Manage_Center_Neighborhood_Open( uwinp, center, siz ); + + global_restrict_excursion( ALLOW_AUTOMATIC_CLOSE, + (! UserGlobals_Get_Option( + PF_EDGE_NBR_2_AUTO_CL_ON_OPEN) ), + { global_restrict_excursion( ALLOW_AUTOMATIC_SHRINK, + (! UserGlobals_Get_Option( + PF_EDGE_NBR_2_AUTO_SHR_ON_OPEN) ), + { window_join_excursion( uwinp->winp, FIXED_SIZE, + UserGlobals_Get_Option(PF_EDGE_NBR_2_SHRINK_ON_OPEN), + { + result = Manage_Center_Neighborhood_Open( uwinp, center, siz ); + } ) } ) } ); + + if ( result ) return TRUE; + + rect = Manage_Neighborhood_Rectangle( 1.0, center, siz ); + + return Tilwin_Open_Nearest_In_Area( uwinp->winp, rect, center, siz ); +} + +/* ------------------------------------------------------------ */ + +bool Manage_Center_Open( uwinp, pos ) + Userwin *uwinp; + TWPoint pos; +{ + bool result; + Size siz; + + Manage_Start_Open( uwinp, FALSE ); + + Tilwin_Set_Position( uwinp->winp, pos ); + uwinp->positioned = TRUE; + + siz = Tilwin_Get_Size( uwinp->winp ); + + global_excursion( PREFER_CLOSE_TO_SHRINK, + UserGlobals_Get_Option(PREFER_CL_TO_SHR_ON_CENTER_OPEN), + { window_join_excursion( uwinp->winp, FIXED_SIZE, + ! UserGlobals_Get_Option(ALLOW_SHRINK_ON_CENTER_OPEN), + { + result = Manage_Edge_Neighborhood_Open( uwinp, pos, siz ); + if ( (! result) && ( listener != uwinp ) + && Manage_Can_Try_Listener_Unzoom() ) + result = Manage_Edge_Neighborhood_Open( uwinp, pos, siz ); + if ( (! result) && Manage_Can_Try_Self_Unzoom(uwinp) ) + result = Manage_Edge_Neighborhood_Open( + uwinp, pos, Tilwin_Get_Size( uwinp->winp ) ); + } ) } ) + + return Manage_Finish_Unsized_Open( uwinp, result ); +} + +/* ------------------------------------------------------------ */ + +bool Manage_Corner_Open( uwinp, start_pos, pos, force, undesire ) + Userwin *uwinp; + TWPoint start_pos; + TWPoint pos; + bool force, undesire; +{ + TWPoint center; + Size siz; + bool result; + TWRectangle rect; + + Manage_Start_Open( uwinp, FALSE ); + + rect.left_x = start_pos.x; + rect.top_y = start_pos.y; + rect.right_x = pos.x; + rect.bottom_y = pos.y; + COMPUTE_SIZE( rect, siz ); + COMPUTE_CENTER( rect, center ); + + if (! ( UserGlobals_Get_Option(RESET_MIN_ON_DECREASE) || force )) + Set_Max_Size( siz, siz, uwinp->prev_min ) + if( ! ( UserGlobals_Get_Option(RESET_MAX_ON_INCREASE) || force )) + Set_Min_Size( siz, siz, uwinp->prev_max ) + + if (! undesire ) + { + Tilwin_Set_Position( uwinp->winp, center ); + uwinp->positioned = TRUE; + Tilwin_Set_Desired( uwinp->winp, siz ); + Tilwin_Note_Desired_Height( uwinp->winp ); + Tilwin_Note_Desired_Width( uwinp->winp ); + } + + Manage_Min_Max_Resizing( uwinp, siz, Tilwin_Get_Min( uwinp->winp ) ); + + global_excursion( PREFER_CLOSE_TO_SHRINK, + UserGlobals_Get_Option(PREFER_CL_TO_SHR_ON_CORNER_OPEN), + { window_join_excursion( uwinp->winp, FIXED_SIZE, + ! UserGlobals_Get_Option(ALLOW_SHRINK_ON_CORNER_OPEN), + { + result = Manage_Edge_Neighborhood_Open( uwinp, center, siz ); + if ( (! result) && ( listener != uwinp ) + && Manage_Can_Try_Listener_Unzoom() ) + result = Manage_Edge_Neighborhood_Open( uwinp, center, siz ); + if ( (! result) && Manage_Can_Try_Self_Unzoom(uwinp) ) + result = Manage_Edge_Neighborhood_Open( + uwinp, pos, Tilwin_Get_Size( uwinp->winp ) ); + } ) } ) + + if ( result ) + Manage_Finish_Resizing( uwinp, NoSide, force, undesire ); + else + Manage_Cancel_Resizing( uwinp ); + return Manage_Finish_Sized_Open( uwinp, result ); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +bool Manage_Desktop_Open( uwinp, siz ) + Userwin *uwinp; + Size siz; +{ + TWPoint center; + bool result; + + center = Tilwin_Get_Center( uwinp->winp ); + + if ( Tilwin_Get_Window_Option( uwinp->winp, FIXED_COMPLETELY ) ) + result = Tilwin_Open( uwinp->winp, center, siz ); + + else if (! uwinp->positioned ) + { + result = Tilwin_Open_Best_In_Area( uwinp->winp, + Tilwin_Get_Desktop_Rectangle(), siz ); + } + + else if ( Userwin_Get_Window_Option( uwinp, + REQUIRE_PREV_POS ) ) + return Manage_Basic_Open( uwinp, center, siz ); + + else if ( Userwin_Get_Window_Option( uwinp, + PREFER_PREV_POS ) ) + { + center = Tilwin_Get_Position( uwinp->winp ); + global_restrict_excursion( ALLOW_AUTOMATIC_CLOSE, + (! UserGlobals_Get_Option( + PF_DTOP_2_AUTO_CL_ON_AUTO_OPEN)), + { global_restrict_excursion( ALLOW_AUTOMATIC_SHRINK, + (! UserGlobals_Get_Option( + PF_DTOP_2_AUTO_SHR_ON_AUTO_OPEN)), + { window_join_excursion( uwinp->winp, FIXED_SIZE, + UserGlobals_Get_Option(PF_DTOP_2_SHRINK_ON_AUTO_OPEN), + { + result = Manage_Edge_Neighborhood_Open( uwinp, center, siz ); + } ) } ) } ); + + if (! result ) + result = Tilwin_Open_Nearest_In_Area( uwinp->winp, + Tilwin_Get_Desktop_Rectangle(), center, siz ); + } + + else + result = Tilwin_Open_Best_In_Area( uwinp->winp, + Tilwin_Get_Desktop_Rectangle(), siz ); + + return result; + +} + +/* ------------------------------------------------------------ */ + +static bool Manage_Open_Automatically( uwinp ) + Userwin *uwinp; +{ + bool result; + + global_excursion( PREFER_CLOSE_TO_SHRINK, + UserGlobals_Get_Option(PREFER_CL_TO_SHR_ON_AUTO_OPEN), + { window_join_excursion( uwinp->winp, FIXED_SIZE, + ! UserGlobals_Get_Option(ALLOW_SHRINK_ON_AUTO_OPEN), + result = Manage_Desktop_Open( uwinp, + Tilwin_Checked_Desired_Size( uwinp->winp ) ); + ) } ) + + return result; +} + +/* ------------------------------------------------------------ */ + +bool Manage_Auto_Open_Automatically( uwinp ) + Userwin *uwinp; +{ + bool iconized; + bool result; + Size siz; + + iconized = Tilwin_Is_Open( uwinp->iconp ); + if ( iconized ) + Tilwin_Close( uwinp->iconp ); + + Set_Min_Size( siz, Tilwin_Get_Size( uwinp->winp ), + Tilwin_Get_Desired( uwinp->winp ) ) + + window_join_excursion( uwinp->winp, FIXED_SIZE, + (! UserGlobals_Get_Option(ALLOW_SHRINK_ON_AUTO_OPEN)), + { + result = Manage_Desktop_Open( uwinp, siz ); + } ) + + if ( (! result) && iconized ) + Tilwin_Open( uwinp->iconp, + Tilwin_Get_Center( uwinp->iconp ), + Tilwin_Get_Size( uwinp->iconp ) ); + + return result; +} + +/* ------------------------------------------------------------ */ + +bool Manage_User_Open_Automatically( uwinp, force_listener, force_zoom ) + Userwin *uwinp; + bool force_listener; + bool force_zoom; +{ + bool result; + + if ( force_listener && Userwin_Get_Window_Option(uwinp,LISTENER_TIED_TO_ZOOM) ) + force_zoom = TRUE; + Manage_Start_Open( uwinp, force_zoom ); + + result = Manage_Open_Automatically( uwinp ); + if (! result) + user_global_join_excursion( UNZOOM_TIED_LSNR_IF_NECESSARY, force_listener, + { + if ( Manage_Can_Try_Listener_Unzoom() ) + result = Manage_Open_Automatically( uwinp ); + } ) + if ( (! result) && Manage_Can_Try_Self_Unzoom(uwinp) ) + result = Manage_Open_Automatically( uwinp ); + + if (! result) + Tilwin_Auto_Close( uwinp->winp ); + else if ( force_listener ) + Manage_Switch_Listener( uwinp ); + + return Manage_Finish_Unsized_Open( uwinp, result ); +} + +/* ------------------------------------------------------------ */ + +bool Manage_Fixed_Open( uwinp ) + Userwin *uwinp; +{ + bool result; + + Manage_Start_Open( uwinp, FALSE ); + + result = Tilwin_Open( uwinp->winp, + Tilwin_Get_Center( uwinp->winp ), + Tilwin_Get_Size( uwinp->winp ) ); + + if ( (! result) && Manage_Can_Try_Listener_Unzoom() ) + { + result = Tilwin_Open( uwinp->winp, + Tilwin_Get_Center( uwinp->winp ), + Tilwin_Get_Size( uwinp->winp ) ); + } + + return Manage_Finish_Sized_Open( uwinp, result ); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + + /* Returns true if any repopulation occurred */ + +bool Manage_Repopulate_Since( stamp, explicit, strict, only_auto_close ) + TimeStamp stamp; + bool explicit; + bool strict; + bool only_auto_close; +{ + Tilwinp winp; + Userwin *uwinp; + bool prev_prefer, prev_require, allow_shrink; + TimeStamp cur_stamp; + bool result; + + strict = strict || + UserGlobals_Get_Option( REPOPULATE_STRICTLY ); + + result = FALSE; + + if ( explicit ) + { + prev_prefer = UserGlobals_Get_Option( + PREFER_PREV_POS_ON_EXPL_REPOP); + prev_require = UserGlobals_Get_Option( + REQUIRE_PREV_POS_ON_EXPL_REPOP); + allow_shrink = UserGlobals_Get_Option( + ALLOW_AUTO_SHRINK_ON_EXPL_REPOP); + } + else + { + prev_prefer = UserGlobals_Get_Option( + PREFER_PREV_POS_ON_AUTO_REPOP); + prev_require = UserGlobals_Get_Option( + REQUIRE_PREV_POS_ON_AUTO_REPOP); + allow_shrink = UserGlobals_Get_Option( + ALLOW_AUTO_SHRINK_ON_AUTO_REPOP); + } + + Tilwin_Gen_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + cur_stamp = Tilwin_Get_Window_Timestamp(winp); + if ( cur_stamp < stamp ) break; + uwinp = Userwin_Get(winp); + if ( ( uwinp->winp == winp ) + && Userwin_Get_Window_Option(uwinp,CONSIDER_FOR_REPOPULATION) + && ( uwinp->ever_opened ) + && ( (! only_auto_close) || + Tilwin_Was_Automatically_Closed(winp) ) ) + { + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + { global_restrict_excursion( + ALLOW_SHRINK_ON_AUTO_OPEN, + UserGlobals_Get_Option(ALLOW_AUTOMATIC_SHRINK) + || explicit, + { global_restrict_excursion( + ALLOW_AUTOMATIC_SHRINK, allow_shrink, + { user_window_join_excursion( uwinp, + PREFER_PREV_POS, prev_prefer, + { user_window_join_excursion( uwinp, + REQUIRE_PREV_POS, prev_require, + { + if ( Manage_Auto_Open_Automatically( uwinp ) ) + result = TRUE; + else if ( UserGlobals_Get_Option(PREFER_UNZOOM_TO_CLOSE) && + (uwinp->zoomed) && + Manage_Unzoom_Open( uwinp ) ) + result = TRUE; + else if ( strict ) + stamp = cur_stamp; + } ) } ) } ) } ) } ) + } + } + + return result; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +bool Manage_Aggressive_Repopulation() +{ + Tilwinp winp; + Userwin *uwinp; + bool prev_prefer, prev_require, allow_shrink; + bool result; + + result = FALSE; + + prev_prefer = UserGlobals_Get_Option( + PREFER_PREV_POS_ON_AUTO_REPOP); + prev_require = UserGlobals_Get_Option( + REQUIRE_PREV_POS_ON_AUTO_REPOP); + allow_shrink = UserGlobals_Get_Option( + ALLOW_AUTO_SHRINK_ON_AUTO_REPOP); + + Tilwin_Gen_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( ( uwinp->winp == winp ) + && Userwin_Get_Window_Option(uwinp,CONSIDER_FOR_REPOPULATION) + && Userwin_Get_Window_Option(uwinp,AGGRESSIVELY_REPOPULATE) + && Tilwin_Was_Automatically_Closed(winp) + && uwinp->ever_opened ) + { + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + { global_restrict_excursion( + ALLOW_SHRINK_ON_AUTO_OPEN, + UserGlobals_Get_Option(ALLOW_AUTOMATIC_SHRINK), + { global_restrict_excursion( + ALLOW_AUTOMATIC_SHRINK, allow_shrink, + { user_window_join_excursion( uwinp, + PREFER_PREV_POS, prev_prefer, + { user_window_join_excursion( uwinp, + REQUIRE_PREV_POS, prev_require, + { + if ( Manage_Auto_Open_Automatically( uwinp ) ) + result = TRUE; + else if ( UserGlobals_Get_Option(PREFER_UNZOOM_TO_CLOSE) && + (uwinp->zoomed) && + Manage_Unzoom_Open( uwinp ) ) + result = TRUE; + } ) } ) } ) } ) } ) + } + } + + return result; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ diff --git a/manage_pro.c b/manage_pro.c new file mode 100644 index 0000000..4578016 --- /dev/null +++ b/manage_pro.c @@ -0,0 +1,1140 @@ +#ifndef lint +static char sccs_id[] = "@(#)manage_pro.c 5.6 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + + +#include "basetype.h" + +#include "userglobD.h" +#include "twin.h" + +#ifndef USERWIN_DEFINE +#include "uwinD.h" +#endif + +#ifndef TILWIN_DEFINE +#include "twinD.h" +#endif + +#define global_excursion(opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = Tilwin_Get_Global_Option(opt); \ + Tilwin_Set_Global_Option(opt,val); \ + code; \ + Tilwin_Set_Global_Option(opt,temp_val); \ +} + +#define window_excursion(win,opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = Tilwin_Get_Window_Option(win,opt); \ + Tilwin_Set_Window_Option(win,opt,val); \ + code; \ + Tilwin_Set_Window_Option(win,opt,temp_val); \ +} + +#define min_excursion(win,code) \ +{ \ + Size temp_min; \ + temp_min = Tilwin_Get_Min(win); \ + Tilwin_Set_Min( win, Tilwin_Get_Size(win) ); \ + code; \ + Tilwin_Set_Min( win, temp_min ); \ +} + +#define min_size_excursion(win,siz,code) \ +{ \ + Size temp_min; \ + temp_min = Tilwin_Get_Min(win); \ + Tilwin_Set_Min( win, siz ); \ + code; \ + Tilwin_Set_Min( win, temp_min ); \ +} + +#define user_global_excursion(opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = UserGlobals_Get_Option(opt); \ + UserGlobals_Set_Option( opt, val ); \ + code; \ + UserGlobals_Set_Option(opt,temp_val); \ +} + +#define DESIRE_ITERS 5 +#define MAXIMIZE_ITERS 2 +#define PRORATE_ITERS 4 +#define FILL_ITERS 1 + +extern Userwin *listener; + +static bool auto_prorate = TRUE; + +extern bool Manage_Icon_Open(); +extern void Manage_Start(); +extern void Manage_Save_State(); +extern void Manage_Finish(); +extern bool Manage_Finish_Fixed_Size(); +extern bool Manage_Finish_Minned(); + +/* ------------------------------------------------------------ */ + +static TWRectangle Manage_Farthest_Area( pt, rect ) + TWPoint pt; + TWRectangle rect; +{ + TWPoint center; + TWRectangle area; + + COMPUTE_CENTER( rect, center ); + area = Tilwin_Get_Desktop_Rectangle(); + + if ( center.x > pt.x ) + area.left_x = rect.left_x; + else if ( center.x < pt.x ) + area.right_x = rect.right_x; + + if ( center.y > pt.y ) + area.top_y = rect.top_y; + else if ( center.y < pt.y ) + area.bottom_y = rect.bottom_y; + + return area; +} + +/* ------------------------------------------------------------ */ + +static TWRectangle Manage_Nearest_Area( pt, rect ) + TWPoint pt; + TWRectangle rect; +{ + TWPoint center; + TWRectangle area; + + COMPUTE_CENTER( rect, center ); + area = Tilwin_Get_Desktop_Rectangle(); + + if ( center.x > pt.x ) + area.right_x = rect.right_x; + else if ( center.x < pt.x ) + area.left_x = rect.left_x; + + if ( center.y > pt.y ) + area.bottom_y = rect.bottom_y; + else if ( center.y < pt.y ) + area.top_y = rect.top_y; + + return area; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static void Manage_Slide_Nearest() +{ + Tilwinp winp; + Tilwinp thread_head; + + thread_head = Tilwin_Thread_Nearest_Position(); + + for ( winp = thread_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + Tilwin_Slide_Nearest( winp, + Tilwin_Get_Position( winp ) ); + } +} + +/* ------------------------------------------------------------ */ + +static void Manage_All_Desire() +{ + Tilwinp winp; + Tilwinp thread_head; + TWPoint center; + Size siz; + + center = Tilwin_Position_Ctr_Of_Gravity(); + thread_head = Tilwin_Thread_Nearest( center ); + + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + global_excursion( ALLOW_AUTOMATIC_SHRINK, FALSE, + for ( winp = thread_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if ( (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + && (! Tilwin_Get_Window_Option( winp, FIXED_SIZE ) ) ) + { + siz = Tilwin_Checked_Desired_Size( winp ); + Set_Max_Size( siz, siz, Tilwin_Get_Size(winp) ); + Tilwin_Enlarge_Nearest( winp, + Tilwin_Get_Position(winp), siz ); + } + } ) ) +} + +/* ------------------------------------------------------------ */ + +static void Manage_All_Maximize() +{ + Tilwinp winp; + Tilwinp thread_head; + TWPoint center; + Size siz; + + center = Tilwin_Position_Ctr_Of_Gravity(); + thread_head = Tilwin_Thread_Nearest( center ); + + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + global_excursion( ALLOW_AUTOMATIC_SHRINK, FALSE, + for ( winp = thread_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if ( (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + && (! Tilwin_Get_Window_Option( winp, FIXED_SIZE ) ) ) + { + siz = Tilwin_Checked_Max_Size( winp ); + Set_Max_Size( siz, siz, Tilwin_Get_Size(winp) ); + Tilwin_Enlarge_Nearest( winp, + Tilwin_Get_Position(winp), siz ); + } + } ) ) +} + +/* ------------------------------------------------------------ */ + +static void Manage_All_Previous() +{ + Tilwinp winp; + Tilwinp thread_head; + TWPoint center; + Size siz; + + center = Tilwin_Position_Ctr_Of_Gravity(); + thread_head = Tilwin_Thread_Nearest( center ); + + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + global_excursion( ALLOW_AUTOMATIC_SHRINK, FALSE, + for ( winp = thread_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if ( (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + && (! Tilwin_Get_Window_Option( winp, FIXED_SIZE ) ) ) + { + siz = Tilwin_Checked_Previous_Size( winp ); + Set_Max_Size( siz, siz, Tilwin_Get_Size(winp) ); + Tilwin_Enlarge_Nearest( winp, + Tilwin_Get_Position(winp), siz ); + } + } ) ) +} + +/* ------------------------------------------------------------ */ + +static void Manage_Slide_Desire() +{ + Manage_Slide_Nearest(); + Manage_Slide_Nearest(); + Manage_All_Desire(); +} + +/* ------------------------------------------------------------ */ + +static void Manage_Slide_Maximize() +{ + Manage_Slide_Nearest(); + Manage_Slide_Nearest(); + Manage_All_Maximize(); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static Tilwinp plow_head; + +static void Manage_Start_Plow( rect, pt ) + TWRectangle rect; + TWPoint pt; +{ + TWPoint center; + Tilwinp winp; + + COMPUTE_CENTER( rect, center ); + + plow_head = Tilwin_Thread_Farthest( center ); + + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + global_excursion( ALLOW_AUTOMATIC_SHRINK, FALSE, + { + for ( winp = plow_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY) ) + { + Tilwin_Act_Modified( winp ); + Tilwin_Set_Size( winp, Tilwin_Checked_Min_Size( winp ) ); + Tilwin_Slide_Farthest_In_Area( winp, + Manage_Farthest_Area( pt, + Tilwin_Get_Rectangle( winp ) ), + pt ); + } + } + } ) ) +} + +/* ------------------------------------------------------------ */ + +static void Manage_Plow_Back() +{ + Tilwinp winp; + TWRectangle rect; + Size siz; + TWPoint pt; + + plow_head = Tilwin_Reverse_Thread( plow_head ); + + for ( winp = plow_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if ( Tilwin_Is_Open( winp ) && + (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY) ) ) + { + siz = Tilwin_Get_Size(winp); + pt = Tilwin_Get_Previous_Center(winp); + + if (! Tilwin_Open( winp, pt, siz ) ) + { + MAKE_RECTANGLE( pt, siz, rect ) + + Tilwin_Open_Nearest_In_Area( winp, + Manage_Nearest_Area( + Tilwin_Get_Center(winp), rect ), + pt, siz ); + } + } + } +} + +/* ------------------------------------------------------------ */ + +static void Manage_Plow_Restore() +{ + Tilwinp winp; + TWRectangle rect; + Size siz; + TWPoint pt; + Size minsiz; + + plow_head = Tilwin_Reverse_Thread( plow_head ); + + for ( winp = plow_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if ( Tilwin_Is_Open( winp ) && + (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY) ) ) + { + siz = Tilwin_Get_Previous_Size(winp); + pt = Tilwin_Get_Previous_Center(winp); + + if (! Tilwin_Open( winp, pt, siz ) ) + { + MAKE_RECTANGLE( pt, siz, rect ) + rect = Manage_Nearest_Area( + Tilwin_Get_Center(winp), rect ); + + Tilwin_Enlarge_Nearest_In_Area( winp, rect, pt, siz ); + + minsiz = Tilwin_Good_Size( winp, + Tilwin_Get_Size( winp ) ); + + min_size_excursion( winp, minsiz, + Tilwin_Open_Nearest_In_Area( winp, rect, pt, siz ) ) + } + } + } +} + +/* ------------------------------------------------------------ */ + +static void Manage_Finish_Plow() +{ + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + global_excursion( ALLOW_AUTOMATIC_SHRINK, FALSE, + { + Manage_Plow_Back(); + Manage_Plow_Restore(); + Manage_Slide_Nearest(); + Manage_Slide_Nearest(); + Manage_All_Previous(); + Manage_All_Desire(); + } ) ) +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void Manage_Ordered_Desire() +{ + Tilwinp winp; + Tilwinp thread_head; + Size siz; + TWPoint center; + float good; + int i; + + center = Tilwin_Position_Ctr_Of_Gravity(); + thread_head = Tilwin_Thread_Nearest( center ); + + for ( i = 1; i <= DESIRE_ITERS; i++ ) + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + global_excursion( ALLOW_AUTOMATIC_SHRINK, FALSE, + { + good = (float)(i) / (float)DESIRE_ITERS; + + for ( winp = thread_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if ( (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + || (! Tilwin_Get_Window_Option( winp, FIXED_SIZE ) ) ) + { + siz = Tilwin_Checked_Good_Desired_Size( winp, good ); + Set_Max_Size( siz, siz, Tilwin_Get_Size(winp) ); + Tilwin_Enlarge_Nearest( winp, + Tilwin_Get_Previous_Center(winp), siz ); + } + } + } ) ) +} + +/* ------------------------------------------------------------ */ + +static void Manage_Local_Prorate() +{ + Manage_Ordered_Desire(); + Manage_Slide_Desire(); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static void Manage_Fair_Vertical_Desire() +{ + Tilwinp thread_head; + Size siz; + TWPoint center; + Tilwinp winp; + Tilwinp latest; + float good; + int iter; + int prorate_iters; + + Tilwin_Gen_Open_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + siz = Tilwin_Checked_Min_Size( winp ); + siz.width = Tilwin_Get_Size(winp).width; + Tilwin_Set_Size( winp, siz ); + } + + center.x = Tilwin_Get_Desktop_Center().x; + center.y = Tilwin_Get_Desktop_Rectangle().top_y; + thread_head = Tilwin_Thread_Vertly_Nearest( center ); + + for ( winp = thread_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + Tilwin_Slide_Vertly_Nearest( winp, center ); + } + + if (auto_prorate) + { + prorate_iters = PRORATE_ITERS - 2; + for ( iter = 1; iter <= 2; iter++ ) + { + if (iter == 1) + center.y = Tilwin_Get_Desktop_Rectangle().bottom_y; + else + center.y = Tilwin_Get_Desktop_Rectangle().top_y; + thread_head = Tilwin_Thread_Vertly_Nearest( center ); + + latest = Tilwin_Get_Latest_Height( iter ); + for ( winp = thread_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + { + Tilwin_Slide_Vertly_Nearest( winp, center ); + + if (winp == latest) + { + siz = Tilwin_Checked_Desired_Size( winp ); + siz.width = Tilwin_Get_Size(winp).width; + Tilwin_Enlarge_Nearest( winp, center, siz ); + } + } + } + } + } + else + prorate_iters = PRORATE_ITERS; + + for ( iter = 1; iter <= prorate_iters; iter++ ) + { + good = (float)(2*iter-1) / (float)(2*prorate_iters); + + center.y = Tilwin_Get_Desktop_Rectangle().bottom_y; + thread_head = Tilwin_Thread_Vertly_Nearest( center ); + + for ( winp = thread_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + { + Tilwin_Slide_Vertly_Nearest( winp, center ); + + if (! Tilwin_Get_Window_Option( winp, FIXED_SIZE ) ) + { + siz = Tilwin_Checked_Good_Desired_Size( winp, good ); + Set_Max_Size( siz, siz, Tilwin_Get_Size(winp) ); + siz.width = Tilwin_Get_Size(winp).width; + Tilwin_Enlarge_Nearest( winp, center, siz ); + } + } + } + + center.y = Tilwin_Get_Desktop_Rectangle().top_y; + thread_head = Tilwin_Thread_Vertly_Nearest( center ); + + good = (float)(iter) / (float)(prorate_iters); + + for ( winp = thread_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + Tilwin_Slide_Vertly_Nearest( winp, center ); + { + if (! Tilwin_Get_Window_Option( winp, FIXED_SIZE ) ) + { + siz = Tilwin_Checked_Good_Desired_Size( winp, good ); + Set_Max_Size( siz, siz, Tilwin_Get_Size(winp) ); + siz.width = Tilwin_Get_Size(winp).width; + Tilwin_Enlarge_Nearest( winp, center, siz ); + } + } + } + } + + center.y = Tilwin_Get_Desktop_Rectangle().bottom_y; + thread_head = Tilwin_Thread_Vertly_Nearest( center ); + + for ( winp = thread_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + Tilwin_Slide_Vertly_Nearest( winp, + Tilwin_Get_Position( winp ) ); + } +} + +/* ------------------------------------------------------------ */ + +static void Manage_Fair_Horizontal_Desire() +{ + Tilwinp thread_head; + Size siz; + TWPoint center; + Tilwinp winp; + Tilwinp latest; + float good; + int iter; + int prorate_iters; + + Tilwin_Gen_Open_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + siz = Tilwin_Checked_Min_Size( winp ); + siz.height = Tilwin_Get_Size(winp).height; + Tilwin_Set_Size( winp, siz ); + } + + center.y = Tilwin_Get_Desktop_Center().y; + center.x = Tilwin_Get_Desktop_Rectangle().left_x; + thread_head = Tilwin_Thread_Horizly_Nearest( center ); + + for ( winp = thread_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + Tilwin_Slide_Horizly_Nearest( winp, center ); + } + + if ( auto_prorate ) + { + prorate_iters = PRORATE_ITERS - 2; + for ( iter = 1; iter <= 2; iter++ ) + { + if (iter == 1) + center.x = Tilwin_Get_Desktop_Rectangle().right_x; + else + center.x = Tilwin_Get_Desktop_Rectangle().left_x; + thread_head = Tilwin_Thread_Horizly_Nearest( center ); + + latest = Tilwin_Get_Latest_Width( iter ); + for ( winp = thread_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + { + Tilwin_Slide_Horizly_Nearest( winp, center ); + + if (winp == latest) + { + siz = Tilwin_Checked_Desired_Size( winp ); + siz.height = Tilwin_Get_Size(winp).height; + Tilwin_Enlarge_Nearest( winp, center, siz ); + } + } + } + } + } + else + prorate_iters = PRORATE_ITERS; + + for ( iter = 1; iter <= prorate_iters; iter++ ) + { + good = (float)(2*iter-1) / (float)(2*prorate_iters); + + center.x = Tilwin_Get_Desktop_Rectangle().right_x; + thread_head = Tilwin_Thread_Horizly_Nearest( center ); + + for ( winp = thread_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + { + Tilwin_Slide_Horizly_Nearest( winp, center ); + + if (! Tilwin_Get_Window_Option( winp, FIXED_SIZE ) ) + { + siz = Tilwin_Checked_Good_Desired_Size( winp, good ); + Set_Max_Size( siz, siz, Tilwin_Get_Size(winp) ); + siz.height = Tilwin_Get_Size(winp).height; + Tilwin_Enlarge_Nearest( winp, center, siz ); + } + } + } + + center.x = Tilwin_Get_Desktop_Rectangle().left_x; + thread_head = Tilwin_Thread_Horizly_Nearest( center ); + + good = (float)(iter) / (float)(prorate_iters); + + for ( winp = thread_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + Tilwin_Slide_Horizly_Nearest( winp, center ); + { + if (! Tilwin_Get_Window_Option( winp, FIXED_SIZE ) ) + { + siz = Tilwin_Checked_Good_Desired_Size( winp, good ); + Set_Max_Size( siz, siz, Tilwin_Get_Size(winp) ); + siz.height = Tilwin_Get_Size(winp).height; + Tilwin_Enlarge_Nearest( winp, center, siz ); + } + } + } + } + + center.x = Tilwin_Get_Desktop_Rectangle().right_x; + thread_head = Tilwin_Thread_Horizly_Nearest( center ); + + for ( winp = thread_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + Tilwin_Slide_Horizly_Nearest( winp, + Tilwin_Get_Position( winp ) ); + } +} + +/* ------------------------------------------------------------ */ + +static void Manage_Fair_Vertical_Maximize() +{ + Tilwinp thread_head; + Size siz; + TWPoint center; + Tilwinp winp; + float good; + int iter; + + center.x = Tilwin_Get_Desktop_Center().x; + center.y = Tilwin_Get_Desktop_Rectangle().top_y; + thread_head = Tilwin_Thread_Vertly_Nearest( center ); + + for ( winp = thread_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + Tilwin_Slide_Vertly_Nearest( winp, center ); + } + + for ( iter = 1; iter <= FILL_ITERS; iter++ ) + { + good = (float)(2*iter-1) / (float)(2*FILL_ITERS); + + center.y = Tilwin_Get_Desktop_Rectangle().bottom_y; + thread_head = Tilwin_Thread_Vertly_Nearest( center ); + + for ( winp = thread_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + { + Tilwin_Slide_Vertly_Nearest( winp, center ); + + if (! Tilwin_Get_Window_Option( winp, FIXED_SIZE ) ) + { + siz = Tilwin_Checked_Good_Max_Size( winp, good ); + Set_Max_Size( siz, siz, Tilwin_Get_Size(winp) ); + siz.width = Tilwin_Get_Size(winp).width; + Tilwin_Enlarge_Nearest( winp, center, siz ); + } + } + } + + center.y = Tilwin_Get_Desktop_Rectangle().top_y; + thread_head = Tilwin_Thread_Vertly_Nearest( center ); + + good = (float)(iter) / (float)(FILL_ITERS); + + for ( winp = thread_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + Tilwin_Slide_Vertly_Nearest( winp, center ); + { + if (! Tilwin_Get_Window_Option( winp, FIXED_SIZE ) ) + { + siz = Tilwin_Checked_Good_Max_Size( winp, good ); + Set_Max_Size( siz, siz, Tilwin_Get_Size(winp) ); + siz.width = Tilwin_Get_Size(winp).width; + Tilwin_Enlarge_Nearest( winp, center, siz ); + } + } + } + } + + center.y = Tilwin_Get_Desktop_Rectangle().bottom_y; + thread_head = Tilwin_Thread_Vertly_Nearest( center ); + + for ( winp = thread_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + Tilwin_Slide_Vertly_Nearest( winp, + Tilwin_Get_Position( winp ) ); + } +} + +/* ------------------------------------------------------------ */ + +static void Manage_Fair_Horizontal_Maximize() +{ + Tilwinp thread_head; + Size siz; + TWPoint center; + Tilwinp winp; + float good; + int iter; + + center.y = Tilwin_Get_Desktop_Center().y; + center.x = Tilwin_Get_Desktop_Rectangle().left_x; + thread_head = Tilwin_Thread_Horizly_Nearest( center ); + + for ( winp = thread_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + Tilwin_Slide_Horizly_Nearest( winp, center ); + } + + for ( iter = 1; iter <= FILL_ITERS; iter++ ) + { + good = (float)(2*iter-1) / (float)(2*FILL_ITERS); + + center.x = Tilwin_Get_Desktop_Rectangle().right_x; + thread_head = Tilwin_Thread_Horizly_Nearest( center ); + + for ( winp = thread_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + { + Tilwin_Slide_Horizly_Nearest( winp, center ); + + if (! Tilwin_Get_Window_Option( winp, FIXED_SIZE ) ) + { + siz = Tilwin_Checked_Good_Max_Size( winp, good ); + Set_Max_Size( siz, siz, Tilwin_Get_Size(winp) ); + siz.height = Tilwin_Get_Size(winp).height; + Tilwin_Enlarge_Nearest( winp, center, siz ); + } + } + } + + center.x = Tilwin_Get_Desktop_Rectangle().left_x; + thread_head = Tilwin_Thread_Horizly_Nearest( center ); + + good = (float)(iter) / (float)(FILL_ITERS); + + for ( winp = thread_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + Tilwin_Slide_Horizly_Nearest( winp, center ); + { + if (! Tilwin_Get_Window_Option( winp, FIXED_SIZE ) ) + { + siz = Tilwin_Checked_Good_Max_Size( winp, good ); + Set_Max_Size( siz, siz, Tilwin_Get_Size(winp) ); + siz.height = Tilwin_Get_Size(winp).height; + Tilwin_Enlarge_Nearest( winp, center, siz ); + } + } + } + } + + center.x = Tilwin_Get_Desktop_Rectangle().right_x; + thread_head = Tilwin_Thread_Horizly_Nearest( center ); + + for ( winp = thread_head; winp != WIN_NULL; + winp = (Tilwinp)Tilwin_Get_Data(winp) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + Tilwin_Slide_Horizly_Nearest( winp, + Tilwin_Get_Position( winp ) ); + } +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static void Manage_Fair_Desire() +{ + Manage_Fair_Vertical_Desire(); + Manage_Fair_Horizontal_Desire(); + Manage_All_Previous(); + Manage_Slide_Desire(); + Manage_All_Previous(); +} + +/* ------------------------------------------------------------ */ + +static void Manage_Fair_Maximize() +{ + Manage_Fair_Vertical_Maximize(); + Manage_Fair_Horizontal_Maximize(); + Manage_Slide_Maximize(); +} + +/* ------------------------------------------------------------ */ + +static void Manage_Fair_Prorate() +{ + Manage_Slide_Nearest(); + + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + global_excursion( ALLOW_AUTOMATIC_SHRINK, FALSE, + global_excursion( ENABLE_GRAVITY, FALSE, + { + Manage_Fair_Desire(); + } ) ) ) +} + +/* ------------------------------------------------------------ */ + +static void Manage_Fair_Fill() +{ + Manage_Slide_Nearest(); + + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + global_excursion( ALLOW_AUTOMATIC_SHRINK, FALSE, + global_excursion( ENABLE_GRAVITY, FALSE, + { + Manage_Fair_Maximize(); + } ) ) ) +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static void Manage_Careful_Desire( uwinp ) + Userwin *uwinp; +{ + Size siz; + float good; + int i; + + for ( i = 1; i <= DESIRE_ITERS; i++ ) + { + good = (float)(i) / (float)DESIRE_ITERS; + + if ( (! Tilwin_Get_Window_Option( uwinp->winp, + FIXED_COMPLETELY ) ) + || (! Tilwin_Get_Window_Option( uwinp->winp, + FIXED_SIZE ) ) ) + { + siz = Tilwin_Checked_Good_Desired_Size( uwinp->winp, good ); + Set_Max_Size( siz, siz, Tilwin_Get_Size(uwinp->winp) ); + Tilwin_Enlarge_Nearest( uwinp->winp, + Tilwin_Get_Position(uwinp->winp), siz ); + } + } +} + +/* ------------------------------------------------------------ */ + +static void Manage_Plow_Desire( uwinp ) + Userwin *uwinp; +{ + TWPoint pt; + + if ( Tilwin_Get_Window_Option( uwinp->winp, FIXED_COMPLETELY ) || + Tilwin_Get_Window_Option( uwinp->winp, FIXED_SIZE ) ) + return; + + pt = Tilwin_Get_Center( uwinp->winp ); + Tilwin_Close( uwinp->winp ); + + Manage_Start_Plow( Tilwin_Get_Rectangle( uwinp->winp ), + pt ); + + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + global_excursion( ALLOW_AUTOMATIC_SHRINK, FALSE, + { + Tilwin_Open( uwinp->winp, pt, Tilwin_Get_Size(uwinp->winp) ); + Manage_Careful_Desire( uwinp ); + } ) ) + + Manage_Finish_Plow(); + +} + +/* ------------------------------------------------------------ */ + +static void Manage_Careful_Maximize( uwinp ) + Userwin *uwinp; +{ + Size siz; + float good; + int i; + + for ( i = 1; i <= MAXIMIZE_ITERS; i++ ) + { + good = (float)(i) / (float)MAXIMIZE_ITERS; + + if ( (! Tilwin_Get_Window_Option( uwinp->winp, + FIXED_COMPLETELY ) ) + || (! Tilwin_Get_Window_Option( uwinp->winp, + FIXED_SIZE ) ) ) + { + siz = Tilwin_Checked_Good_Max_Size( uwinp->winp, good ); + Set_Max_Size( siz, siz, Tilwin_Get_Size(uwinp->winp) ); + Tilwin_Enlarge_Nearest( uwinp->winp, + Tilwin_Get_Position(uwinp->winp), siz ); + } + } +} + +/* ------------------------------------------------------------ */ + +static void Manage_Plow_Maximize( uwinp ) + Userwin *uwinp; +{ + TWPoint pt; + + if ( Tilwin_Get_Window_Option( uwinp->winp, FIXED_COMPLETELY ) || + Tilwin_Get_Window_Option( uwinp->winp, FIXED_SIZE ) ) + return; + + pt = Tilwin_Get_Center( uwinp->winp ); + Tilwin_Close( uwinp->winp ); + + Manage_Start_Plow( Tilwin_Get_Rectangle( uwinp->winp ), + pt ); + + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + global_excursion( ALLOW_AUTOMATIC_SHRINK, FALSE, + { + Tilwin_Open( uwinp->winp, pt, Tilwin_Get_Size(uwinp->winp) ); + Manage_Careful_Desire( uwinp ); + Manage_Careful_Maximize( uwinp ); + } ) ) + + Manage_Finish_Plow(); + +} + +/* ------------------------------------------------------------ */ + +void Manage_Shrink( uwinp ) + Userwin *uwinp; +{ + if ( Tilwin_Get_Window_Option( uwinp->winp, FIXED_COMPLETELY ) || + Tilwin_Get_Window_Option( uwinp->winp, FIXED_SIZE ) ) + return; + + Manage_Start(); + + Tilwin_Set_Size( uwinp->winp, + Tilwin_Checked_Min_Size( uwinp->winp ) ); + + Manage_Finish_Fixed_Size( uwinp, TRUE ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Contract( uwinp ) + Userwin *uwinp; +{ + if ( Tilwin_Get_Window_Option( uwinp->winp, FIXED_COMPLETELY ) || + Tilwin_Get_Window_Option( uwinp->winp, FIXED_SIZE ) ) + return; + + Manage_Start(); + Manage_Save_State( uwinp ); + + Tilwin_Set_Size( uwinp->winp, + Tilwin_Checked_Min_Size( uwinp->winp ) ); + + Tilwin_Set_Desired( uwinp->winp, Tilwin_Get_Size( uwinp->winp ) ); + Tilwin_Note_Desired_Width( uwinp->winp ); + Tilwin_Note_Desired_Height( uwinp->winp ); + + Manage_Finish_Fixed_Size( uwinp, TRUE ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Expand( uwinp ) + Userwin *uwinp; +{ + if ( Tilwin_Get_Window_Option( uwinp->winp, FIXED_COMPLETELY ) || + Tilwin_Get_Window_Option( uwinp->winp, FIXED_SIZE ) ) + return; + + Manage_Start(); + Manage_Save_State( uwinp ); + + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + global_excursion( ALLOW_AUTOMATIC_SHRINK, FALSE, + Tilwin_Enlarge_Nearest( uwinp->winp, + Tilwin_Get_Position(uwinp->winp), + Tilwin_Checked_Max_Size(uwinp->winp) ) ) ) + + Tilwin_Set_Desired( uwinp->winp, Tilwin_Get_Size( uwinp->winp ) ); + Tilwin_Note_Desired_Width( uwinp->winp ); + Tilwin_Note_Desired_Height( uwinp->winp ); + + Manage_Finish_Fixed_Size( uwinp, TRUE ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Enlarge( uwinp ) + Userwin *uwinp; +{ + Manage_Start(); + + Manage_Plow_Maximize( uwinp ); + + Manage_Finish_Minned( uwinp, TRUE ); +} + +/* ------------------------------------------------------------ */ + +void Manage_Desire( uwinp ) + Userwin *uwinp; +{ + Manage_Start(); + + Manage_Plow_Desire( uwinp ); + + Tilwin_Note_Desired_Width( uwinp->winp ); + Tilwin_Note_Desired_Height( uwinp->winp ); + + Manage_Finish_Minned( uwinp, TRUE ); +} + +/* ------------------------------------------------------------ */ + +static void Manage_Biased_Prorate() +{ + if ( (listener != UWIN_NULL) && Userwin_Is_Open(listener) ) + { + Manage_Plow_Maximize( listener ); + window_excursion( listener->winp, FIXED_COMPLETELY, TRUE, + Manage_Local_Prorate() ) + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + global_excursion( ALLOW_AUTOMATIC_SHRINK, FALSE, + Manage_Careful_Maximize( listener ) ) ) + } + else + Manage_Fair_Prorate(); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void Manage_Fill() +{ + auto_prorate = FALSE; + Manage_Start(); + Manage_Fair_Fill(); + user_global_excursion( AUTO_PRORATE, FALSE, + Manage_Finish( TRUE ) ) + auto_prorate = TRUE; +} + +/* ------------------------------------------------------------ */ + +void Manage_Prorate() +{ + auto_prorate = FALSE; + Manage_Start(); + Manage_Fair_Prorate(); + user_global_excursion( AUTO_PRORATE, FALSE, + Manage_Finish( TRUE ) ) + auto_prorate = TRUE; +} + +/* ------------------------------------------------------------ */ + +void Manage_Auto_Prorate() +{ + if ( UserGlobals_Get_Option(BIASED_AUTO_PRORATE) ) + Manage_Biased_Prorate(); + else + Manage_Fair_Prorate(); +} diff --git a/manage_st.c b/manage_st.c new file mode 100644 index 0000000..d877c97 --- /dev/null +++ b/manage_st.c @@ -0,0 +1,701 @@ +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include +#include "basetype.h" + +#ifndef TILWIN_DEFINE +#include "twinD.h" +#endif + +#ifndef USERWIN_DEFINE +#include "uwinD.h" +#endif + +#include "twin.h" +#include "region.h" + +extern void Manage_Init_Rtl(); + +extern void Manage_Start(); +extern void Manage_Update_Icons(); +extern void Manage_Finish(); + +extern void Manage_Prepare_Open(); +extern bool Manage_Client_Open_Automatically(); +extern void Manage_Client_Open_Icon(); + +/* ------------------------------------------------------------ */ + +/* distance between two points */ +#define Dist(pt1,pt2) \ + ( ( ((pt1).x - (pt2).x)*((pt1).x - (pt2).x) ) + \ + ( ((pt1).y - (pt2).y)*((pt1).y - (pt2).y) ) ) + +/* ------------------------------------------------------------ */ + +#ifdef WM_DEBUG +static void Manage_Walk_ThreadedDataList(lhead, func) + pointer lhead; + void (*func) (); +{ + Tilwinp winp; + + for (winp = (Tilwinp) lhead; winp != WIN_NULL; + winp = (Tilwinp) Tilwin_Get_Data(winp)) + { + (*func)(winp); + } +} + +TWPoint print_center; +int de_bug = 100; + +static void Manage_Print_Position(winp) + Tilwinp winp; +{ + printf("position = %d\n", Dist(Tilwin_Get_Position(winp), print_center)); +} + +#endif + +/* ------------------------------------------------------------ */ + +/* delete the item after element from the linked list */ +#define DELETE_AFTER(element) { \ + if (Tilwin_Get_Data(element) != (pointer) NULL) { \ + pointer p; \ + p = Tilwin_Get_Data((Tilwinp) Tilwin_Get_Data(element)); \ + Tilwin_Put_Data(element, p); \ + } \ + } + +/* insert the item insertee after the item element */ +#define INSERT_AFTER(element, insertee) { \ + Tilwin_Put_Data(insertee, Tilwin_Get_Data(element)); \ + Tilwin_Put_Data(element, (pointer) insertee); \ + } + +/* move the item after element1 to after element2 */ +#define MOVE_NEXT(element1, element2) { \ + pointer q; \ + q = Tilwin_Get_Data(element1); \ + DELETE_AFTER(element1); \ + INSERT_AFTER(element2, q); \ + } + +/* ------------------------------------------------------------ */ + +static pointer nonlayout_head = WIN_NULL; +static pointer nonlayout_tail = WIN_NULL; +static pointer layout_head = WIN_NULL; +static pointer layout_tail = WIN_NULL; + +pointer Manage_Sort_ThreadedDataList(); + +/* ------------------------------------------------------------ */ + +void Manage_Startup_Open(uwinp) + Userwin *uwinp; +{ + TWRectangle rect; + Size size; + TWPoint center; + + Manage_Prepare_Open(uwinp); + + if (uwinp->layout_found == TRUE) + { + /* place it on the list of windows which are laid out */ + if (layout_head == (pointer) NULL) + layout_head = layout_tail = uwinp->winp; + else { + Tilwin_Put_Data(layout_tail, uwinp->winp); + layout_tail = uwinp->winp; + } + Tilwin_Put_Data(layout_tail, WIN_NULL); + } + else { + rect = Tilwin_Get_Rectangle(uwinp->winp); + + COMPUTE_CENTER(rect, center); + Tilwin_Set_Position(uwinp->winp, center); + + COMPUTE_SIZE(rect, size); + Set_Min_Size(size, size, Tilwin_Get_Max(uwinp->winp)); + Set_Max_Size(size, size, Tilwin_Get_Min(uwinp->winp)); + + /* this is hack which tell us that the desired size has not been + set for this class of window + */ + if (Same_Size(Tilwin_Get_Desired(uwinp->winp), + Tilwin_Get_Absolute_Minimums())) + { + uwinp->regular_size = size; + Tilwin_Set_Desired(uwinp->winp, size); + } + + if (Tilwin_Set (uwinp->winp, center, size) != TRUE) + (void) Tilwin_Set (uwinp->winp, center, + Tilwin_Get_Min(uwinp->winp)); + + /* place it on the list of windows which are not layed out */ + if (nonlayout_head == (pointer) NULL) + nonlayout_head = nonlayout_tail = uwinp->winp; + else { + Tilwin_Put_Data(nonlayout_tail, uwinp->winp); + nonlayout_tail = uwinp->winp; + } + Tilwin_Put_Data(nonlayout_tail, WIN_NULL); + } +} + +/* ------------------------------------------------------------ */ + +#define global_excursion(opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = Tilwin_Get_Global_Option(opt); \ + Tilwin_Set_Global_Option(opt,val); \ + code; \ + Tilwin_Set_Global_Option(opt,temp_val); \ +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static void Manage_Place_Laid_Out() +{ + Userwin *uwinp; + Tilwinp winp; + + for (winp = (Tilwinp) layout_head; winp != WIN_NULL; + winp = Tilwin_Get_Data(winp)) + { + uwinp = Userwin_Get(winp); + if ( Userwin_Get_Window_Option( uwinp, AUTO_OPEN_ON_CREATE ) ) + Manage_Client_Open_Automatically( uwinp ); + else + Manage_Client_Open_Icon( uwinp ); + } +} + +/* ------------------------------------------------------------ */ + +static TWRectangle deskrect; + +static TWPoint Manage_Farthest_Icon_Point() +{ + TWPoint furthest_point; + + /* find out point farthest from the icons */ + furthest_point = Tilwin_Get_Desktop_Center(); + + switch ((Icon_Position) UserGlobals_Get_Value(SECONDARY_ICON_PLACEMENT)) { + case Icon_Top: + Get_PtY(furthest_point) = Get_BottomY(deskrect); + break; + case Icon_Bottom: + Get_PtY(furthest_point) = Get_TopY(deskrect); + break; + case Icon_Left: + Get_PtX(furthest_point) = Get_RightX(deskrect); + break; + case Icon_Right: + Get_PtX(furthest_point) = Get_LeftX(deskrect); + break; + case Icon_Middle: + Get_PtX(furthest_point) = Get_LeftX(deskrect); + Get_PtY(furthest_point) = Get_TopY(deskrect); + break; + } + + switch ((Icon_Position) UserGlobals_Get_Value(ICON_PLACEMENT)) { + case Icon_Top: + Get_PtY(furthest_point) = Get_BottomY(deskrect); + break; + case Icon_Bottom: + Get_PtY(furthest_point) = Get_TopY(deskrect); + break; + case Icon_Left: + Get_PtX(furthest_point) = Get_RightX(deskrect); + break; + case Icon_Right: + Get_PtX(furthest_point) = Get_LeftX(deskrect); + break; + } + return furthest_point; +} + +/* ------------------------------------------------------------ */ + +void Manage_Startup_Finish() +{ + Userwin *uwinp; + Tilwinp winp; + TWPoint center, + window_center, + furthest_point, + quadrant_corner; + int number_of_windows = 0; + Size size; + bool result; + + Manage_Init_Rtl(); + + Manage_Start(); + + /* place all windows which have layouts */ + Manage_Place_Laid_Out(); + + if (nonlayout_head == (pointer) NULL) + { + Manage_Finish(TRUE); + return; + } + + /* make sure all icons get opened */ + Manage_Update_Icons(); + + deskrect = Tilwin_Get_Desktop_Rectangle(); + + /* find out point farthest from the icons */ + furthest_point = Manage_Farthest_Icon_Point(); + + /* sort the list in decreasing distance from furthest_point + (the point furthest from furthest_point first,...) + (NOTE: the tilwinp furthest from furthest_point is the one + closest to the icons) + */ + nonlayout_head = + Manage_Sort_ThreadedDataList(nonlayout_head, furthest_point); + + /* switch the list so that the tilwinp closest to furthest_point + is first (this is the tilwinp furthest from the icons). + */ + nonlayout_head = (pointer) Tilwin_Reverse_Thread(nonlayout_head); + + /* open all windows at their minumum size at the point furthest + * away from the icons (closest to the furthest point first...) + */ + for (winp = (Tilwinp) nonlayout_head; winp != WIN_NULL; + winp = Tilwin_Get_Data(winp)) + { + uwinp = Userwin_Get(winp); + + if ((Userwin_Get_Window_Option(uwinp, AUTO_OPEN_ON_CREATE) != + TRUE) || + (Userwin_Startup_State(uwinp) == IconicState) || + (Userwin_Startup_State(uwinp) == InactiveState)) + Manage_Client_Open_Icon( uwinp ); + else + { + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + { result = Tilwin_Open_Nearest_In_Area(winp, deskrect, + furthest_point, + Tilwin_Get_Min(winp)); + } ); + + if ( result ) + uwinp->ever_opened = TRUE; + else + { + Manage_Client_Open_Icon( uwinp ); + uwinp->output_sent = TRUE; + Tilwin_Auto_Close(winp); + } + } + } + + /* make sure all icons get opened */ + Manage_Update_Icons(); + + /* switch the list so that the tilwinp farthest from + furthest_point is first (this is the tilwinp closest to the + icons) + */ + nonlayout_head = (pointer) Tilwin_Reverse_Thread(nonlayout_head); + + /* reopen all windows at minimum size at their desired point + (furthest from the furthest_point first) + */ + for (winp = (Tilwinp) nonlayout_head; winp != WIN_NULL; + winp = Tilwin_Get_Data(winp)) + { + /* only reopen open windows! */ + if (Tilwin_Is_Open(winp) != TRUE) + continue; + + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + Tilwin_Open_Nearest_In_Area(winp, deskrect, + Tilwin_Get_Position(winp), + Tilwin_Get_Min(winp)); + ); + } + + /* try to open windows which were automatically closed */ + Tilwin_Gen_Closed_Windows(); + while ((winp = Tilwin_Next_Window()) != WIN_NULL) + { + uwinp = Userwin_Get(winp); + if ((uwinp->winp == winp) && + (Tilwin_Was_Automatically_Closed(winp) == TRUE)) + { + if (uwinp->layout_found == TRUE) + { + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + Tilwin_Open_Nearest_In_Area(winp, deskrect, + Tilwin_Get_Center(winp), + Tilwin_Get_Size(winp)) + ); + } + else + { + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + Tilwin_Open_Nearest_In_Area(winp, deskrect, + Tilwin_Get_Position(winp), + Tilwin_Get_Min(winp)) + ); + } + } + } + + /* find the "center of gravity" of all windows on the screen */ + Get_PtX(center) = 0; + Get_PtY(center) = 0; + + for (winp = (Tilwinp) nonlayout_head; winp != WIN_NULL; + winp = (Tilwinp) Tilwin_Get_Data(winp)) { + if (Tilwin_Is_Open(winp) == TRUE) + { + Get_PtX(center) += Get_PtX(Tilwin_Get_Position(winp)); + Get_PtY(center) += Get_PtY(Tilwin_Get_Position(winp)); + number_of_windows++; + } + } + + /* if there are no open windows, return */ + if(number_of_windows == 0) + { + Manage_Finish(TRUE); + return; + } + + Get_PtX(center) = Get_PtX(center) / number_of_windows; + Get_PtY(center) = Get_PtY(center) / number_of_windows; + + /* sort the list in decreasing distance from the center of gravity + (the point furthest from the center of gravity first,...) + */ + nonlayout_head = + Manage_Sort_ThreadedDataList(nonlayout_head, center); + + /* open all windows, farthest first, at its minimum size + at the point in its quadrant farthest from the c.o.g. + */ + for (winp = (Tilwinp) nonlayout_head; winp != WIN_NULL; + winp = Tilwin_Get_Data(winp)) { + + if (Tilwin_Is_Open(winp) == FALSE) + continue; + + window_center = Tilwin_Get_Position(winp); + Get_PtX(quadrant_corner) = (Get_PtX(window_center) < Get_PtX(center))? + Get_LeftX(deskrect) : Get_RightX(deskrect); + Get_PtY(quadrant_corner) = (Get_PtY(window_center) < Get_PtY(center))? + Get_TopY(deskrect) : Get_BottomY(deskrect); + + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + global_excursion(ALLOW_AUTOMATIC_SHRINK, FALSE, + Tilwin_Open_Nearest_In_Area(winp, deskrect, quadrant_corner, + Tilwin_Get_Min(winp)); + ) + ); + } + + /* switch the list so that the tilwinp closest to the center of + gravity is first + */ + nonlayout_head = (pointer) Tilwin_Reverse_Thread(nonlayout_head); + + /* open all windows, closest first, at its the average of minimum + and MIN(desired size, preferred size) size at its preferred position + */ + for (winp = (Tilwinp) nonlayout_head; winp != WIN_NULL; + winp = Tilwin_Get_Data(winp)) { + + Size new_size; + + if (Tilwin_Is_Open(winp) == FALSE) + continue; + + Set_Min_Size(new_size, Tilwin_Get_Desired(winp), + Tilwin_Get_Previous_Size(winp)); + + Get_Width(size) = + (Get_Width(new_size) + + Get_Width(Tilwin_Get_Min(winp))) / 2; + Get_Height(size) = + (Get_Height(new_size) + + Get_Height(Tilwin_Get_Min(winp))) / 2; + + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + global_excursion(ALLOW_AUTOMATIC_SHRINK, FALSE, + Tilwin_Open_Nearest_In_Area(winp, deskrect, + Tilwin_Get_Position(winp), size))); + } + + /* switch the list so that the tilwinp farthest from the center of + gravity is first + */ + nonlayout_head = (pointer) Tilwin_Reverse_Thread(nonlayout_head); + + /* open all windows, farthest first, at MIN(desired, preferred) + size + */ + for (winp = (Tilwinp) nonlayout_head; winp != WIN_NULL; + winp = Tilwin_Get_Data(winp)) { + + Size new_size; + + if (Tilwin_Is_Open(winp) == FALSE) + continue; + + Set_Min_Size(new_size, Tilwin_Get_Desired(winp), + Tilwin_Get_Previous_Size(winp)); + + window_center = Tilwin_Get_Position(winp); + Get_PtX(quadrant_corner) = (Get_PtX(window_center) < Get_PtX(center))? + Get_LeftX(deskrect) : Get_RightX(deskrect); + Get_PtY(quadrant_corner) = (Get_PtY(window_center) < Get_PtY(center))? + Get_TopY(deskrect) : Get_BottomY(deskrect); + + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + global_excursion(ALLOW_AUTOMATIC_SHRINK, FALSE, + Tilwin_Open_Nearest_In_Area(winp, deskrect, quadrant_corner, + new_size))); + } + + /* switch the list so that the tilwinp closest to the center of + gravity is first + */ + nonlayout_head = (pointer) Tilwin_Reverse_Thread(nonlayout_head); + + /* open all windows, closest first, at MAX(desired, preferred) + size + */ + for (winp = (Tilwinp) nonlayout_head; winp != WIN_NULL; + winp = Tilwin_Get_Data(winp)) { + + Size new_size; + + if (Tilwin_Is_Open(winp) == FALSE) + continue; + + Set_Max_Size(new_size, Tilwin_Get_Desired(winp), + Tilwin_Get_Previous_Size(winp)); + + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + global_excursion(ALLOW_AUTOMATIC_SHRINK, FALSE, + Tilwin_Open_Nearest_In_Area(winp, deskrect, + Tilwin_Get_Position(winp), new_size))); + } + + Manage_Finish(TRUE); +} + +/* ------------------------------------------------------------ */ + +/* sort a list of tilwinps threaded by the data field. + the order of the list is non-increasing in terms of the + euclidean distance from the point pt to the value returned by + Tilwin_Get_Position for each tilwinp (i.e. the tilwinp whose + position is furthest from point is first, ..., the tilwinp whose + position is closest to point is last) + */ +pointer Manage_Sort_ThreadedDataList(lhead, pt) + pointer lhead; + TWPoint pt; +{ + pointer ptr; + pointer max; + pointer max_prev; + pointer sorted; + pointer unsorted; + pointer prev; + int max_distance; + + if (lhead == (pointer) NULL) + return((pointer) NULL); + + /* the window farthest from the pt */ + max = lhead; + max_prev = (pointer) NULL; + max_distance = Dist(Tilwin_Get_Position(max), pt); + + for (ptr = Tilwin_Get_Data(lhead), prev = lhead; + ptr != (pointer) NULL; + prev = ptr, ptr = Tilwin_Get_Data(ptr)) { + + if (Dist(Tilwin_Get_Position(ptr), pt) > max_distance) { + max_distance = Dist(Tilwin_Get_Position(ptr), pt); + max = ptr; + max_prev = prev; + } + } + + /* if the window farthest from the pt is not at the lhead of the list, + * put it there + */ + if (max_prev != (pointer) NULL) { + DELETE_AFTER(max_prev); + Tilwin_Put_Data(max, lhead); + lhead = max; + } + + /* sort the rest of the list (using an insertion sort) */ + for (sorted = lhead, unsorted = Tilwin_Get_Data(lhead); + unsorted != (pointer) NULL;) { + + max = unsorted; + max_prev = (pointer) NULL; + max_distance = Dist(Tilwin_Get_Position(max), pt); + + for (ptr = Tilwin_Get_Data(unsorted), prev = unsorted; + ptr != (pointer) NULL; + prev = ptr, ptr = Tilwin_Get_Data(ptr)) { + + if (Dist(Tilwin_Get_Position(ptr), pt) > max_distance) { + max_distance = Dist(Tilwin_Get_Position(ptr), pt); + max = ptr; + max_prev = prev; + } + } + + if (max_prev == (pointer) NULL) { + sorted = unsorted; + unsorted = Tilwin_Get_Data(unsorted); + } + else { + MOVE_NEXT(max_prev, sorted); + sorted = Tilwin_Get_Data(sorted); + } + } + + return(lhead); +} + +/* ------------------------------------------------------------ */ + +void +Manage_Determine_Startup_State(uwinp) + Userwin *uwinp; +{ + if(Userwin_Initially_Mapped(uwinp) == TRUE) + { + if(Userwin_Wm_State(uwinp) == NeverState || + Userwin_Wm_State(uwinp) == IgnoreState) + { + switch(Userwin_State(uwinp)) + { + case IconicState: + Userwin_Startup_State(uwinp) = IconicState; + break; + case InactiveState: + Userwin_Startup_State(uwinp) = InactiveState; + break; + case IgnoreState: + Userwin_Startup_State(uwinp) = IgnoreState; + break; + default: + Userwin_Startup_State(uwinp) = NormalState; + break; + } + } + else + { + if(Userwin_State(uwinp) == IgnoreState) + { + Userwin_Startup_State(uwinp) = IgnoreState; + } + else + { + switch(Userwin_Wm_State(uwinp)) + { + case IconicState: + Userwin_Startup_State(uwinp) = IconicState; + break; + case InactiveState: + Userwin_Startup_State(uwinp) = InactiveState; + break; + case IgnoreState: + Userwin_Startup_State(uwinp) = IgnoreState; + break; + default: + Userwin_Startup_State(uwinp) = NormalState; + break; + } + } + } + } + else if(Userwin_Initially_Icon_Mapped(uwinp) == TRUE) + { + switch(Userwin_State(uwinp)) + { + case ClientIconState: + Userwin_Startup_State(uwinp) = NormalState; + break; + case InactiveState: + Userwin_Startup_State(uwinp) = InactiveState; + break; + case IgnoreState: + Userwin_Startup_State(uwinp) = IgnoreState; + break; + default: + Userwin_Startup_State(uwinp) = IconicState; + break; + } + } + else + { + if(Userwin_Wm_State(uwinp) == NeverState || + Userwin_Wm_State(uwinp) == IgnoreState) + { + Userwin_Startup_State(uwinp) = IgnoreState; + } + else + { + switch(Userwin_State(uwinp)) + { + case ClientIconState: + Userwin_Startup_State(uwinp) = ClientIconState; + break; + case InactiveState: + Userwin_Startup_State(uwinp) = InactiveState; + break; + default: + Userwin_Startup_State(uwinp) = IconicState; + } + } + } +} diff --git a/mem.c b/mem.c new file mode 100644 index 0000000..5b9090f --- /dev/null +++ b/mem.c @@ -0,0 +1,57 @@ +#ifndef lint +static char sccs_id[] = "@(#)mem.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "twinI.h" +#include "tileP.h" + +static Tilwin *tilwin_freelist = (Tilwin *)NULL; + +Tilwin * +Mem_Allocate() +{ + Tilwin *tilwinp; + + if (tilwin_freelist == (Tilwin *)NULL) + tilwinp = (Tilwin *) malloc(sizeof(Tilwin)); + else{ + tilwinp = tilwin_freelist; + tilwin_freelist = (Tilwin *) tilwin_freelist -> tilep; + } + + return(tilwinp); +} + +void +Mem_Deallocate(winp) + Tilwin *winp; +{ + winp -> tilep = (pointer) tilwin_freelist; + tilwin_freelist = (Tilwin *) winp; + winp = (Tilwin *) NULL; +} + diff --git a/mem.h b/mem.h new file mode 100644 index 0000000..7bc48c6 --- /dev/null +++ b/mem.h @@ -0,0 +1,30 @@ +/* +static char sccs_id[] = "@(#)mem.h 5.6 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +extern Tilwin* Mem_Allocate(); +extern void Mem_Deallocate(); diff --git a/menu.c b/menu.c new file mode 100644 index 0000000..1aa424b --- /dev/null +++ b/menu.c @@ -0,0 +1,1134 @@ +#ifndef lint +static char sccs_id[] = "@(#)menu.c 5.2 6/5/89"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include +#include "copyright.h" + +/* + RTL Menu Package Version 1.2 + by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1988 + + menu.c: menu utility and support functions. + + Originally hacked by Adam J. Richter, based on the menu package for xterm. + ( misc.c X10/6.6 ) + +*/ + +/* + +Copyright 1985, 1986, 1987 by the Massachusetts Institute of Technology + +Permission to use, copy, modify, and distribute this +software and its documentation for any purpose and without +fee is hereby granted, provided that the above copyright +notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting +documentation, and that the name of M.I.T. not be used in +advertising or publicity pertaining to distribution of the +software without specific, written prior permission. +M.I.T. makes no representations about the suitability of +this software for any purpose. It is provided "as is" +without express or implied warranty. + +*/ + +/* + * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital Equipment + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#include "rtlmenuP.h" +#include +#include "gray1_32.h" /* filled out to 32x32 pixels (works on color) */ +#include "arrow_icon.h" +#include "arrow_ic32.h" /* filled out to 32x32 pixels (works on color) */ +#include "check_ic32.h" +#define MakeEven(x) ((x%2 == 0)? x : x-1) +#define InvertPlane 1 + +static char def_menu_font[] = "8x13"; +Menu MenuDefault; +char *MenuDefaultFont; +static XAssocTable *menu_table; +static XAssocTable *item_table; +static bool tables_initialized = FALSE; +RTLMenuItem AddMenuItem(), Display_Menu(), MenuGetItem(), + MenuItemByName(), MenuItemByData(), GetInitialItem(); +bool DisposeItem(), SetItemCheck(), SetItemDisable(), + SetItemText(); +void DisposeMenu(), InitMenu(), Undisplay_Menu(), MenuInvert(), + PlacePointer(), Draw_Menu(), Draw_Item(), SetInitialItem(), + ClearInitialItem(); +RTLMenu NewMenu(), MenuGetMenu(); +int ItemGetMiddleY(); + +static bool Recalc_Menu(RTLMenu menu); +static RTLMenuItem MoveMenu(RTLMenu menu, int ev_x, int ev_y); +static bool MapMenu(RTLMenu menu); +static void Generate_Menu_Entries(RTLMenu menu); +static void UnmapMenu(RTLMenu menu); +static bool SetupMenuWindow(RTLMenu menu); +static bool SetupItems(RTLMenu menu); +static void SetInputMask(RTLMenu menu, Mask mask); + + +/* + * AddMenuItem() adds a menu item to an existing menu, at the end of the + * list, which are number sequentially from zero. The menuitem index is + * return, or NULL if failed. + */ + +RTLMenuItem +AddMenuItem(menu) + RTLMenu menu; +{ + RTLMenuItem menuitem, *next; + + if(!menu || ItemIsNull(menuitem = (RTLMenuItem)allocate(MenuItem, 1))) + return(NULLITEM); + bzero((char *)menuitem, sizeof(MenuItem)); + ItemText(menuitem) = NULL; + ItemTextLength(menuitem) = 0; + + for(next = MenuItemsPtr(menu) ; + *next; next = ItemNextPtr(*next)); + + *next = menuitem; + + SetMenuFlag(menu, menuChanged); + + return(menuitem); +} + +/* + * DisposeItem() releases the memory allocated for the given indexed + * menuitem. Nonzero is returned if an item was actual disposed of. + * It also checks to see whether the item we're disposing is the + * initial item for the menu -- if so, null out the initial item. + */ +bool +DisposeItem(menu, item) + RTLMenu menu; + RTLMenuItem item; +{ + RTLMenuItem *next, *last, menuitem; + + if (MenuIsNull(menu) || ItemIsNull(item)) + return(FALSE); + next = MenuItemsPtr(menu); + do + { + if(ItemIsNull(*next)) + return(FALSE); + last = next; + next = ItemNextPtr(*next); + } + while((*last != item) && !ItemIsNull(*next)); + menuitem = *last; + *last = *next; + if (ItemWindow(menuitem)) { + XDeleteAssoc(MenuDisplay((Menu *)menu), + item_table, ItemWindow(menuitem)); + XDestroyWindow(MenuDisplay((Menu *)menu), ItemWindow(menuitem)); + } + if (ItemIsInitialItem(menu, menuitem)) + ClearInitialItem(menu); + + str_free(ItemText(menuitem)); + free((char*)menuitem); + + SetMenuFlag(menu, menuChanged); + return(TRUE); +} + +/* + * DisposeMenu() releases the memory allocated for the given menu. + */ +void +DisposeMenu(menu) + RTLMenu menu; +{ + if(!menu) + return; + if (TestMenuFlag(menu, menuMapped)) + UnmapMenu(menu); + while(DisposeItem(menu, MenuItems(menu))); + if(MenuWindow(menu)) { + XDeleteAssoc(MenuDisplay(menu), menu_table, MenuWindow((Menu *)menu)); + XDestroyWindow(MenuDisplay(menu), MenuWindow(menu)); + } + XFreePixmap (MenuDisplay(menu), MenuGreyPixmap(menu)); + XFreePixmap (MenuDisplay(menu), MenuArrowPixmap(menu)); + XFreePixmap (MenuDisplay(menu), MenuCheckmarkPixmap(menu)); + XFreeGC (MenuDisplay(menu), MenuNormalGC(menu)); + XFreeGC (MenuDisplay(menu), MenuInvertGC(menu)); + XFreeGC (MenuDisplay(menu), MenuHighlightedGC(menu)); + + if (MenuHasInitialItem(menu)) + ClearInitialItem(menu); + free((char*) menu); +} + +void +InitMenu(name, options, display) + char *name; + RTLMenuOptionsMask options; + Display *display; +{ + char *cp; + + MenuDefault.display = display; + MenuDefault.menuFlags = menuChanged; + + MenuDefault.menuInitialItemText = (char *) NULL; + MenuDefault.menuBorderWidth = + (cp = XGetDefault(MenuDefault.display, name, "MenuBorder")) ? + atoi(cp) : 1; + MenuDefault.menuItemPad = + (cp = XGetDefault(MenuDefault.display, name, "MenuPad")) ? atoi(cp) : 3; + MenuDefault.delta = Default_Delta; + /* Find a font to use -- check for defaults */ + cp = XGetDefault(MenuDefault.display, name, "MenuFont"); + if (cp == NULL) + cp = XGetDefault(MenuDefault.display, name, "Font"); + MenuDefaultFont = (cp == NULL)? def_menu_font : cp; + + MenuDefault.menuOptions = options; +} + +/* + * ItemText changes the text of item of the menu. + */ +bool +SetItemText(menu, item, text) + RTLMenu menu; + RTLMenuItem item; + char *text; +{ + if (streql(ItemText(item), text)) + return (TRUE); + + str_replace(ItemText(item), text); + + ItemTextLength(item) = str_length(text); + SetMenuFlag(menu, menuChanged); + + (void) Recalc_Menu (menu); + return(TRUE); +} + +/* + * NewMenu() returns a pointer to an initialized new Menu structure, or NULL + * if failed. The Menu structure MenuDefault contains the default menu settings. + */ +RTLMenu +NewMenu(display, screen, reverse) + Display *display; + int screen; + int reverse; +{ + extern Pixmap MakeGreyStipple (); + RTLMenu menu; + + XGCValues gcValues, invertGCValues; + static unsigned long gcMask = + GCFunction | GCForeground | GCBackground | GCFont | GCStipple; + static unsigned long invertgcMask = GCFont | GCFunction | GCForeground; + + /* Allocate the memory for the menu structure. */ + if(MenuIsNull((menu = (RTLMenu)allocate(Menu, 1)))) + return(NULLMENU); + + /* Initialize to default values. */ + *(Menu *)menu = MenuDefault; + + /* set options mask */ + MenuDisplay(menu) = display; + MenuScreen(menu) = screen; + + /* If the menu font hasn't yet been gotten, go get it. */ + /* Try to open selected default font. If that failes, check to see */ + /* if the one we#re opening is the "fall back" default, def_menu_font-- */ + /* if it is, exit. Otherwise, try def_menu_font -- if that fails, exit */ + if ((MenuFontInfo(menu) = XLoadQueryFont (display, MenuDefaultFont)) + == NULL) + { + if (!strcmp(MenuDefaultFont,def_menu_font)) + { + fprintf(stderr, "rtl: couldn't open font \"%s\"\n", + MenuDefaultFont); + exit(1); + } + else + { + if ((MenuFontInfo(menu) = XLoadQueryFont (display, def_menu_font)) + == NULL) + { + fprintf(stderr, "rtl: couldn't open font \"%s\" or \"%s\"\n", + MenuDefaultFont, def_menu_font); + exit(1); + } + } + } + gcValues.font = MenuFontInfo(menu)->fid; + + /* If the menu cursor hasn't been given, make a default one. */ + MenuCursor(menu) = XCreateFontCursor (MenuDisplay(menu), XC_right_ptr); + + /* Make miscellaneous pixmaps */ + MenuArrowPixmap(menu) = XCreateBitmapFromData (MenuDisplay(menu), + RootWindow (display, screen), + arrow_32_bits, + arrow_32_width, + arrow_32_height); + MenuGreyPixmap(menu) = XCreateBitmapFromData (display, + RootWindow (display, screen), + gray1_32_bits, + gray1_32_width, + gray1_32_height); + MenuCheckmarkPixmap(menu) = XCreateBitmapFromData (MenuDisplay(menu), + RootWindow (display, screen), + check_32_bits, + check_32_width, + check_32_height); + /* + * Initialize the default background and border pixmaps and foreground + * and background colors (black and white). + */ + if(reverse) { + gcValues.foreground = WhitePixel (display, screen); + gcValues.background = BlackPixel (display, screen); + } else { + gcValues.foreground = BlackPixel (display, screen); + gcValues.background = WhitePixel (display, screen); + } + gcValues.stipple = MenuGreyPixmap(menu); + gcValues.function = GXcopy; + gcValues.subwindow_mode = IncludeInferiors; + gcValues.graphics_exposures = False; + MenuNormalGC(menu) = + XCreateGC (display, RootWindow (display, screen), + gcMask | GCSubwindowMode | GCGraphicsExposures, &gcValues); + invertGCValues = gcValues; + invertGCValues.foreground = gcValues.background; + invertGCValues.background = gcValues.foreground; + MenuHighlightedGC(menu) = XCreateGC (display, RootWindow (display, screen), + gcMask, &invertGCValues); + + gcValues.function = GXxor; + gcValues.foreground = BlackPixel(MenuDisplay(menu), MenuScreen(menu)) ^ + WhitePixel(MenuDisplay(menu),MenuScreen(menu)); + MenuInvertGC(menu) = XCreateGC (display, RootWindow (display, screen), + invertgcMask, &gcValues); + + return(menu); +} + +/* + * SetItemCheck sets the check state of item of the menu to "state". + */ +bool +SetItemCheck(menu, item, state) + RTLMenu menu; + RTLMenuItem item; + int state; +{ + if (TestItemFlag(item,itemChecked) + == state) /* Exit if unchanged */ + return (True); + + if (state) + SetItemFlag(item, itemChecked); + else + ResetItemFlag(item, itemChecked); + + SetItemFlag(item, itemChanged); + SetMenuFlag(menu, menuItemChanged); + + return(TRUE); +} + +/* + * SetItemDisable sets the disable state of item "n" of the menu to "state". + */ +bool +SetItemDisable(menu, item, state) + RTLMenu menu; + RTLMenuItem item; + int state; +{ + if (TestItemFlag(item,itemDisabled) == state) /* Exit if unchanged */ + return (True); + + if(state) + { + SetItemFlag(item, itemDisabled); + /* if disabled item is currently initial item, null initial item */ + if (ItemIsInitialItem(menu, item)) + ClearInitialItem(menu); + } + else + ResetItemFlag(item, itemDisabled); + + SetItemFlag(item, itemChanged); + SetMenuFlag(menu, menuItemChanged); + + return(TRUE); +} + +RTLMenuItem +Display_Menu(menu, parent, x, y) + RTLMenu menu; + RTLMenu parent; + int x; + int y; +{ + RTLMenuItem item; + + if (MenuIsNull(menu)) + return(FALSE); + + SetMenuParent(menu, parent); + + if (MenuIsNull(parent)) + MenuNested(menu) = 0; + else + MenuNested(menu) = MenuNested(parent) + 1; + + if (!SetupMenuWindow(menu)) + return NULL; + if (TestOptionFlag(menu,savebits) && + (MenuSavedPixmap(menu) != (Pixmap) 0)) + SetInputMask(menu, MenuIgnoreMask); + else + SetInputMask(menu, MenuExposureMask); + + Generate_Menu_Entries(menu); + if (!(item = MoveMenu(menu, x, y)) || !MapMenu(menu)) + return FALSE; + + Draw_Menu(menu); + + return(item); +} + +void +Undisplay_Menu(menu) + RTLMenu menu; +{ + if (MenuIsNull(menu)) + return; + + SetMenuParent(menu, NULLMENU); + MenuNested(menu) = 0; + + UnmapMenu(menu); +} + +void +MenuInvert(menu, w) + RTLMenu menu; + Window w; +{ + XFillRectangle (MenuDisplay(menu), + w, + MenuInvertGC(menu), + 0, 0, + MenuWidth(menu), + MenuItemHeight(menu)); +} + +/* + * Recalculate all of the various menu and item variables. + */ +static bool +Recalc_Menu(menu) + RTLMenu menu; +{ + RTLMenuItem item; + int max, height, fontheight; + + /* + * We must have already gotten the menu font. + */ + if(!MenuFontInfo(menu)) + return(FALSE); + /* + * Initialize the various max width variables. + */ + fontheight = MenuFontInfo(menu)->ascent + MenuFontInfo(menu)->descent + 2; + height = 0; + MenuMaxTextWidth(menu) = 0; + /* + * The item height is the maximum of the font height and the + * checkbox height. + */ + max = fontheight; + if(checkMarkHeight > max) + max = checkMarkHeight; + + max += 2*ItemBorder; + max = MakeEven(max); + MenuItemHeight(menu) = max; + + /* + * Go through the menu item list. + */ + for(item = MenuItems(menu) ; item ; + item = ItemNext(item)) + { + height += max; + /* + * Check the text width with the max value stored in + * menu. + */ + if((ItemTextWidth(item) = + XTextWidth(MenuFontInfo(menu), + ItemText(item), + str_length (ItemText(item)))) + > MenuMaxTextWidth(menu)) + MenuMaxTextWidth(menu) = ItemTextWidth(item); + } + /* + * Set the menu height and then set the menu width. + */ + MenuHeight(menu) = height; + MenuWidth(menu) = 4 * MenuItemPad(menu) + MenuMaxTextWidth(menu) + + checkMarkWidth + arrow_width + (2 * ItemBorder); + MenuItemWidth(menu) = MenuWidth(menu) - (2 * ItemBorder); + return(TRUE); +} + +/* + * Figure out where to popup the menu, relative to the where the button was + * pressed. + * Returns pointer to initial item to warp to. + */ +static RTLMenuItem +MoveMenu(menu, ev_x, ev_y) + RTLMenu menu; + int ev_x, ev_y; +{ + int x, y; + int total_width, total_height; + int offset; + RTLMenuItem item; + + /* + * Get the coordinates of the mouse when the button was pressed. + */ + total_width = MenuWidth(menu) + 2 * MenuBorderWidth(menu); + total_height = MenuHeight(menu) + 2 * MenuBorderWidth(menu); + x = ev_x - MenuItemPad(menu); + y = ev_y - MenuItemHeight(menu)/2; + if (x < 0) + x = 0; + else if (TestOptionFlag(menu, rightoffset) && + !MenuIsNull(MenuParent(menu))) + { + /* check whether parent is close to right edge... */ + /* "too close" means that child would leave < delta of its parent */ + /* visible to its left. */ + if (TestOptionFlag(menu, bigoffset)) + { + if (MenuX(MenuParent(menu)) + MenuWidth(MenuParent(menu)) > + DisplayWidth(MenuDisplay(menu), MenuScreen(menu)) - total_width) + x = MenuX(MenuParent(menu)) + - total_width + 2*MenuBorderWidth(menu); + } + else + { + if (MenuX(MenuParent(menu)) + MenuDelta(MenuParent(menu)) > + DisplayWidth(MenuDisplay(menu), MenuScreen(menu)) - total_width) + { + x = (MenuX(MenuParent(menu)) + MenuWidth(MenuParent(menu)) + + 2 * MenuBorderWidth(MenuParent(menu)) + - total_width - MenuDelta(menu)); + } + } + } + if (x + total_width > DisplayWidth(MenuDisplay(menu), MenuScreen(menu))) + x = DisplayWidth(MenuDisplay(menu), MenuScreen(menu)) + - total_width; + + /* + * If we have an initial item, try to popup the menu centered + * vertically within this item. + */ + if(MenuHasInitialItem(menu)) { + /* + * Look through the item list. "y" is the vertical position + * of the top of the current item and "n" is the item number. + */ + y = ev_y; + offset = MenuBorderWidth(menu); + for(item = MenuItems(menu) ; ;) { + /* + * On finding the intial item, center within this item. + */ + if(ItemIsInitialItem(menu, item)) { + offset += MenuItemHeight(menu) / 2; + y -= offset; + break; + } + offset += MenuItemHeight(menu); + /* + * If we run out of items, turn off the initial item + * and treat this as if no initial item. + */ + if(!(item = ItemNext(item))) { + ClearInitialItem(menu); + y = ev_y - MenuItemHeight(menu)/2; + goto noInitial; + } + } + } +noInitial: + if (y < 0) + y = 0; + else if (y + total_height > + DisplayHeight(MenuDisplay(menu), MenuScreen(menu))) + { + y = DisplayHeight(MenuDisplay(menu), MenuScreen(menu)) + - (total_height + 1); + } + y = MakeEven(y) + 1; + if ((x != ev_x) || (y != ev_y)) + XMoveWindow(MenuDisplay(menu), MenuWindow(menu), x, y); + MenuX(menu) = x; + MenuY(menu) = y; + + if (!ItemIsInitialItem(menu, item)) + item = MenuItems(menu); + return(item); +} + +static +bool MapMenu(menu) + RTLMenu menu; +{ + if (! TestMenuFlag(menu, menuMapped)) + ResetMenuItemHighlighted(menu); + if (TestOptionFlag(menu,savebits)) + { + if ((MenuSavedPixmap(menu) == (Pixmap) 0) || + (MenuOldWidth(menu) != MenuWidth(menu)) || + (MenuOldHeight(menu) != MenuHeight(menu)) || + (MenuOldBorderWidth(menu) != MenuBorderWidth(menu))) + { + if (MenuSavedPixmap(menu) != (Pixmap) 0) + XFreePixmap(MenuDisplay(menu), MenuSavedPixmap(menu)); + MenuSavedPixmap(menu) = + XCreatePixmap(MenuDisplay(menu), + RootWindow(MenuDisplay(menu), MenuScreen(menu)), + MenuWidth(menu) + 2*MenuBorderWidth(menu), + MenuHeight(menu) + 2*MenuBorderWidth(menu), + DefaultDepth(MenuDisplay(menu), MenuScreen(menu))); + MenuOldWidth(menu) = MenuWidth(menu); + MenuOldHeight(menu) = MenuHeight(menu); + MenuOldBorderWidth(menu) = MenuBorderWidth(menu); + } + else + SetInputMask(menu, MenuExposureMask); + + if (MenuSavedPixmap(menu) != (Pixmap) 0) { + SetInputMask(menu, MenuIgnoreMask); + XCopyArea(MenuDisplay(menu), + RootWindow(MenuDisplay(menu), MenuScreen(menu)), + MenuSavedPixmap(menu), + MenuNormalGC(menu), + MenuX(menu), + MenuY(menu), + (unsigned int) (MenuWidth(menu) + 2*MenuBorderWidth(menu)), + (unsigned int) (MenuHeight(menu) + 2*MenuBorderWidth(menu)), + 0, 0); + } + else + SetInputMask(menu, MenuExposureMask); + } + XRaiseWindow(MenuDisplay(menu), MenuWindow(menu)); + XMapWindow(MenuDisplay(menu), MenuWindow(menu)); + SetMenuFlag(menu, menuMapped); + return(TRUE); +} + +void +PlacePointer(menu, item) + RTLMenu menu; + RTLMenuItem item; +{ + int y; + + y = ItemGetMiddleY(item); + XWarpPointer(MenuDisplay(menu), None, + RootWindow(MenuDisplay(menu), MenuScreen(menu)), + 0, 0, 0, 0, + MenuX(menu) + MenuItemPad(menu), y); +} + +void AdjustPointer(menu, x, y) + RTLMenu menu; + int x, y; +{ + if (y == 0) + XWarpPointer(MenuDisplay(menu), None, + RootWindow(MenuDisplay(menu), MenuScreen(menu)), + 0, 0, 0, 0, x, 1); + else if (y == (DisplayHeight(MenuDisplay(menu), + MenuScreen(menu)) - 1)) + XWarpPointer(MenuDisplay(menu), None, + RootWindow(MenuDisplay(menu), MenuScreen(menu)), + 0, 0, 0, 0, + x, DisplayHeight(MenuDisplay(menu), + MenuScreen(menu)) - 2); +} + + + +static void +Generate_Menu_Entries (menu) + RTLMenu menu; +{ + RTLMenuItem item; + for (item = MenuItems(menu); item; (item = ItemNext(item))) { + if (ItemGenerator(item)) { + char *newText; + + (ItemGenerator(item)) (&newText, &ItemCallback(item)); + SetItemText (menu, item, newText); + } + + if (ItemCheckproc(item)) + SetItemCheck (menu, item, (ItemCheckproc(item))(menu,item)); + } + (void) SetupMenuWindow (menu); +} + +/* Draw the entire menu in the blank window. */ +void +Draw_Menu(menu) + RTLMenu menu; +{ + RTLMenuItem item; + + ResetMenuFlag(menu, menuChanged); + /* For each item in the list, first draw any check mark and then + draw the rest of it. */ + for(item = MenuItems(menu) ; item ; item = ItemNext(item)) { + if (TestOptionFlag(menu, savebits)) + { + /* go ahead and draw it, don't wait for exposes */ + Draw_Item(menu, item, 0, 0, (int)MenuWidth(menu),(int)MenuItemHeight(menu)); + } + } +} + +/* + * Draw the item at vertical position y. + */ +void +Draw_Item(menu, item, fill_x, fill_y, fill_width, fill_height) + RTLMenu menu; + RTLMenuItem item; + int fill_x, fill_y, fill_width, fill_height; +{ + int y; /* baseline */ + int x = MenuItemPad(menu); + int x1 = 2 * MenuItemPad(menu) + checkMarkWidth; + int pad; + int high; + XGCValues gcValues; + + if (TestItemFlag(item, itemDisabled)) + { + gcValues.fill_style = FillOpaqueStippled; + XChangeGC(MenuDisplay(menu), MenuNormalGC(menu), + (GCFillStyle), &gcValues); + } + + high = (MenuItemHighlighted(menu) == item); + + if (high) + { + XSetFunction(MenuDisplay(menu), MenuNormalGC(menu), GXset); + XFillRectangle(MenuDisplay(menu), ItemWindow(item), + MenuNormalGC(menu), fill_x, fill_y, + fill_width, fill_height); + XSetFunction(MenuDisplay(menu), MenuNormalGC(menu), GXcopyInverted); + } + else + XClearArea(MenuDisplay(menu), ItemWindow(item), + fill_x, fill_y, fill_width, fill_height, False); + + /* + * Draw the check mark, possibly dimmed, wherever is necessary. + */ + if(TestItemFlag(item, itemChecked)){ + XCopyPlane (MenuDisplay(menu), MenuCheckmarkPixmap(menu), + ItemWindow(item), + MenuNormalGC(menu), + 0, 0, check_32_width, check_32_height, + (int) x, (MenuItemHeight(menu) - checkMarkHeight) / 2, + (unsigned long) 1); + } + + /* Draw submenu indicator arrow */ + if(ItemSubmenu(item)) { + XCopyPlane (MenuDisplay(menu), MenuArrowPixmap(menu), + ItemWindow(item), + MenuNormalGC(menu), + 0, 0, + arrow_32_width, arrow_32_height, + (int) (x + MenuItemWidth(menu) - + arrow_width - MenuItemPad(menu)), + (MenuItemHeight(menu) - arrow_height) / 2 - 1, + (unsigned long) 1); + } + /* + * Draw the text, centered vertically. + */ + pad = (MenuItemHeight(menu) - + (MenuFontInfo(menu)->ascent + MenuFontInfo(menu)->descent)) / 2; + y = MenuItemHeight(menu) - pad - MenuFontInfo(menu)->descent; + + XDrawString (MenuDisplay(menu), ItemWindow(item), + (high? MenuHighlightedGC(menu) : MenuNormalGC(menu)), + x1, y, ItemText(item), ItemTextLength(item)); + if (high) + XSetFunction(MenuDisplay(menu), MenuNormalGC(menu), GXcopy); + if (TestItemFlag(item, itemDisabled)) + { + gcValues.fill_style = FillSolid; + XChangeGC(MenuDisplay(menu), MenuNormalGC(menu), + (GCFillStyle), &gcValues); + } + +} + +/* + * UnmapMenu() unmaps a menu, if it is currently mapped. + */ +static void +UnmapMenu(menu) + RTLMenu menu; +{ + if(!menu || !(TestMenuFlag(menu, menuMapped))) + return; + XUnmapWindow(MenuDisplay(menu), MenuWindow(menu)); +/* XClearWindow (MenuDisplay(menu), MenuWindow(menu));*/ + + if (TestOptionFlag(menu, savebits)) + { + if (MenuSavedPixmap(menu)) + XCopyArea (MenuDisplay(menu), + MenuSavedPixmap(menu), + RootWindow (MenuDisplay(menu), MenuScreen(menu)), + MenuNormalGC(menu), + 0, 0, + MenuWidth(menu) + 2*MenuBorderWidth(menu), + MenuHeight(menu) + 2*MenuBorderWidth(menu), + MenuX(menu), MenuY(menu)); + + } + + ResetMenuFlag(menu, menuMapped); +} + +static bool +SetupMenuWindow (menu) + RTLMenu menu; +{ + int changed = TestMenuFlag(menu, (menuChanged | menuItemChanged)); + + if (tables_initialized == FALSE) { + tables_initialized = TRUE; + if ((menu_table = XCreateAssocTable(Menu_Table_Size)) + == (XAssocTable *) NULL) + return FALSE; + if ((item_table = XCreateAssocTable(Item_Table_Size)) + == (XAssocTable *) NULL) + return FALSE; + } + + /* + * If the entire menu has changed, throw away any saved pixmap and + * then call RecalcMenu(). + */ + + if(changed & menuChanged) { + if(!Recalc_Menu(menu)) + return FALSE; + changed &= ~menuItemChanged; + } + + if(!MenuWindow(menu)) { + static unsigned long valuemask = + CWOverrideRedirect | CWBorderPixel | CWBackPixel; + XSetWindowAttributes attributes; + + attributes.override_redirect = True; + attributes.border_pixel = + XBlackPixel (MenuDisplay(menu), MenuScreen(menu)); + attributes.background_pixel = + XWhitePixel (MenuDisplay(menu), MenuScreen(menu)); + + if((MenuWindow(menu) = + XCreateWindow(MenuDisplay(menu), + RootWindow (MenuDisplay(menu), + MenuScreen(menu)), + 0, 0, + MenuWidth(menu), MenuHeight(menu), + MenuBorderWidth(menu), + DefaultDepth(MenuDisplay(menu), + MenuScreen(menu)), + InputOutput, + DefaultVisual(MenuDisplay(menu), + MenuScreen(menu)), + valuemask, &attributes) + ) == (Window)0) + return FALSE; + else if (SetupItems(menu) == FALSE) + return FALSE; + + XMakeAssoc(MenuDisplay(menu), menu_table, MenuWindow(menu), + (char *) menu); + XMapSubwindows(MenuDisplay(menu), MenuWindow(menu)); + + XDefineCursor(MenuDisplay(menu), MenuWindow(menu), + MenuCursor(menu)); + } + else if(changed & menuChanged) { + XResizeWindow(MenuDisplay(menu), MenuWindow(menu), + MenuWidth(menu), MenuHeight(menu)); + if (SetupItems(menu) == FALSE) + return FALSE; + XMapSubwindows(MenuDisplay(menu), MenuWindow(menu)); + } + + return TRUE; +} + +static bool +SetupItems(menu) + RTLMenu menu; +{ + int y; + RTLMenuItem item; + int changed = TestMenuFlag(menu, (menuChanged | menuItemChanged)); + + for (item = MenuItems(menu), y = 0; + item; + y += MenuItemHeight(menu), item = ItemNext(item)) { + if (!ItemWindow(item)) { + static unsigned long valuemask = + CWOverrideRedirect | CWBorderPixel | CWBackPixel; + XSetWindowAttributes attributes; + attributes.override_redirect = True; + attributes.border_pixel = + XBlackPixel (MenuDisplay(menu), MenuScreen(menu)); + attributes.background_pixel = + XWhitePixel (MenuDisplay(menu), MenuScreen(menu)); + + if((ItemWindow(item) = + XCreateWindow(MenuDisplay(menu), + MenuWindow(menu), + 0, y, + MenuItemWidth(menu), + MenuItemHeight(menu)-(2 * ItemBorder), + ItemBorder, + DefaultDepth(MenuDisplay(menu), + MenuScreen(menu)), + InputOutput, + DefaultVisual(MenuDisplay(menu), + MenuScreen(menu)), + valuemask, &attributes) + ) == (Window) 0) + return FALSE; + SetItemMenu(item, menu); + XMakeAssoc(MenuDisplay(menu), item_table, ItemWindow(item), + (char *) item); + XDefineCursor(MenuDisplay(menu), ItemWindow(item), + MenuCursor(menu)); + } + else if(changed & menuChanged) { + XResizeWindow(MenuDisplay(menu), ItemWindow(item), + MenuItemWidth(menu), + MenuItemHeight(menu) - (2 * ItemBorder)); + XMoveWindow(MenuDisplay(menu), ItemWindow(item), 0, y); + } + } + return TRUE; +} + +static void +SetInputMask(menu, mask) + RTLMenu menu; + Mask mask; +{ + RTLMenuItem item; + + XSelectInput(MenuDisplay(menu), MenuWindow(menu), + (mask | MenuEventMask)); + for(item = MenuItems(menu) ; item ; item = ItemNext(item)) + { + if (TestItemFlag(item, itemDisabled)) + XSelectInput(MenuDisplay(menu), ItemWindow(item), + (mask | NormalItemEventMask)); + else if (ItemIsLeaf(item)) + XSelectInput(MenuDisplay(menu), ItemWindow(item), + (mask | NormalItemEventMask)); + else + XSelectInput(MenuDisplay(menu), ItemWindow(item), + (mask | SubmenuItemEventMask)); + } +} + +RTLMenuItem +MenuItemByData(menu, data) + RTLMenu menu; + generic data; +{ + RTLMenuItem item; + + for (item = MenuItems(menu); + !ItemIsNull(item) && !EqualGen(ItemData(item), data); + item = ItemNext(item)); + + return item; +} + +RTLMenuItem +MenuItemByName (menu, name) + RTLMenu menu; + char *name; +{ + RTLMenuItem item; + + for (item = MenuItems(menu); item; item = ItemNext(item)) + if (streql (name, ItemText(item))) + return item; + return NULLITEM; +} + +RTLMenuItem +MenuGetItem(menu, window) + RTLMenu menu; + Window window; +{ + return (RTLMenuItem)(XLookUpAssoc(MenuDisplay(menu), item_table, window)); +} + +RTLMenu +MenuGetMenu(menu, window) + RTLMenu menu; + Window window; +{ + return (RTLMenu )(XLookUpAssoc(MenuDisplay(menu), menu_table, window)); +} + +int +ItemGetMiddleY(item) + RTLMenuItem item; +{ + Window child; + XWindowAttributes attributes; + int x, y; + + XGetWindowAttributes(MenuDisplay(ItemMenu(item)), ItemWindow(item), + &attributes); + XTranslateCoordinates(MenuDisplay(ItemMenu(item)), + MenuWindow(ItemMenu(item)), + RootWindow(MenuDisplay(ItemMenu(item)), + MenuScreen(ItemMenu(item))), + attributes.x, attributes.y, + &x, &y, &child); + return MakeEven(y + (MenuItemHeight(ItemMenu(item))/2)); +} + +void +SetInitialItem(menu, item) + RTLMenu menu; + RTLMenuItem item; +{ + + if (MenuHasInitialItem(menu)) { + if (str_length(MenuInitialItemText(menu)) < str_length(ItemText(item))) + MenuInitialItemText(menu) = + realloc(MenuInitialItemText(menu), + str_length(ItemText(item)) + 1); + } + else + MenuInitialItemText(menu) = + allocate(char,(str_length(ItemText(item)) + 1)); + str_copy(MenuInitialItemText(menu), ItemText(item)); +} + +void +ClearInitialItem(menu) + RTLMenu menu; +{ + if (MenuHasInitialItem(menu)) { + free(MenuInitialItemText(menu)); + MenuInitialItemText(menu) = (char *) NULL; + } +} + +RTLMenuItem +GetInitialItem(menu) + RTLMenu menu; +{ + RTLMenuItem item; + + if (MenuHasInitialItem(menu)) { + for(item = MenuItems(menu) ; item ; item = ItemNext(item)) { + if (ItemIsInitialItem(menu, item)) + return(item); + } + } + return((RTLMenuItem) NULL); +} + + + diff --git a/menu.h b/menu.h new file mode 100644 index 0000000..bb22e2a --- /dev/null +++ b/menu.h @@ -0,0 +1,48 @@ +/* +#ifndef lint +static char sccs_id[] = "@(#)menu.h 5.5 9/1/88 Siemens Corporate Research and Support, Inc."; +#endif +*/ + +/* + RTL Menu Package Version 1.0 + by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1987 + + menu.h: external function declarations for menu package +*/ + +extern MenuItem *AddMenuItem(); +extern bool DisposeItem(); +extern void DisposeMenu(); +extern void InitMenu(); +extern bool SetItemText(); +extern Menu *NewMenu(); +extern bool SetItemCheck(); +extern bool SetItemDisable(); +extern MenuItem *Display_Menu(); +extern void Undisplay_Menu(); +extern void MenuInvert(); +extern void PlacePointer(); +extern void Draw_Menu(); +extern void Draw_Item(); + +extern MenuItem *MenuGetItem(); +extern MenuItem *MenuItemByName(); +extern MenuItem *MenuItemByData(); +extern Menu *MenuGetMenu(); +extern int ItemGetMiddleY(); +extern void SetInitialItem(); +extern void ClearInitialItem(); +extern MenuItem *GetInitialItem(); + +extern MenuItem *TrackMenu(); + + + + + + + + + + diff --git a/menuD.h b/menuD.h new file mode 100644 index 0000000..8fc1781 --- /dev/null +++ b/menuD.h @@ -0,0 +1,167 @@ +/* +#ifndef lint +static char sccs_id[] = "@(#)menuD.h 5.5 9/1/88 Siemens Corporate Research and Support, Inc."; +#endif +*/ + +/* + RTL Menu Package Version 1.0 + by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1987 + + menuP.h: macros for menu package +/* + +Copyright 1987 by + Siemens Corporate Research and Support, Inc., Princeton, New Jersey + +Permission to use, copy, modify, and distribute this software +and its documentation for any purpose and without fee is +hereby granted, provided that the above copyright notice +appear in all copies and that both that copyright notice and +this permission notice appear in supporting documentation, and +that the name of Siemens not be used in advertising or +publicity pertaining to distribution of the software without +specific, written prior permission. Siemens makes no +representations about the suitability of this software for any +purpose. It is provided "as is" without express or implied +warranty. + +*/ + +#ifndef bool +#define bool unsigned +#endif + +#ifndef FALSE +#define FALSE 0 +#define TRUE 1 +#endif + +/* Menu data structure access macros */ + +#define MenuWidth(menu) (menu)->menuWidth +#define MenuHeight(menu) (menu)->menuHeight +#define MenuOldWidth(menu) (menu)->menuOldWidth +#define MenuOldHeight(menu) (menu)->menuOldHeight +#define MenuItemWidth(menu) (menu)->menuItemWidth +#define MenuItemHeight(menu) (menu)->menuItemHeight +#define MenuFlags(menu) (menu)->menuFlags +#define MenuMaxTextWidth(menu) (menu)->menuMaxTextWidth +#define MenuBorderWidth(menu) ((menu)->menuBorderWidth) +#define MenuOldBorderWidth(menu) (menu)->menuOldBorderWidth +#define MenuItemPad(menu) (menu)->menuItemPad +#define MenuDisplay(menu) (menu)->display +#define MenuScreen(menu) (menu)->screen +#define MenuWindow(menu) (menu)->menuWindow +#define MenuCursor(menu) (menu)->menuCursor +#define MenuSavedPixmap(menu) (menu)->savedPixmap +#define MenuSavedImage(menu) ((menu)->savedImage) +#define MenuSavedImageX(menu) (menu)->menuSavedImageX +#define MenuSavedImageY(menu) (menu)->menuSavedImageY +#define MenuItems(menu) (menu)->menuItems +#define MenuFontInfo(menu) (menu)->menuFontInfo +#define MenuNormalGC(menu) (menu)->normalGC +#define MenuInvertGC(menu) (menu)->invertGC +#define MenuHighlightedGC(menu) (menu)->highlightedGC +#define MenuGreyGC(menu) (menu)->greyGC +#define MenuGreyPixmap(menu) (menu)->greyPixmap +#define MenuCheckmarkPixmap(menu) (menu)->checkmarkPixmap +#define MenuArrowPixmap(menu) (menu)->arrowPixmap +#define MenuInitialItemText(menu) (menu)->menuInitialItemText +#define MenuItemHighlighted(menu) (menu)->highlightedItem +#define MenuNested(menu) (menu)->menuNested +#define MenuX(menu) (menu)->menuX +#define MenuY(menu) (menu)->menuY +#define MenuParent(menu) (menu)->parentMenu +#define MenuDelta(menu) (menu)->delta +#define MenuOptions(menu) (menu)->menuOptions +#define NULLMENU ((Menu *) NULL) + +/* Menu predicates */ + +#define MenuIsNull(menu) (menu == NULLMENU) +#define MenuIsDisplayed(menu) (menu->menuFlags & menuMapped) +#define MenuHasInitialItem(menu) (menu->menuInitialItemText != (char *) NULL) + +/* Menu modifiers */ + +#define SetHighlightItem(menu, item) (menu->highlightedItem = item) +#define ResetHighlightItem(menu) (menu->highlightedItem = NULLITEM) +#define SetMenuEventHandler(menu,f) menu->menuEventHandler = f +#define SetMenuFlag(menu, flag) MenuFlags(menu) |= flag +#define ResetMenuFlag(menu,flag) MenuFlags(menu) &= ~flag +#define TestMenuFlag(menu,flag) (MenuFlags(menu) & flag) +#define TestOptionFlag(menu,option) (MenuOptions(menu) & option) + +/* Item data structure access macros */ + +#define ItemFlags(item) (item)->itemFlags +#define ItemText(item) (item)->itemText +#define ItemTextLength(item) (item)->itemTextLength +#define ItemTextWidth(item) (item)->itemTextWidth +#define ItemNext(item) (item)->nextItem +#define ItemSubmenu(item) (item)->itemSubmenu +#define ItemTag(item) (item)->itemTag +#define ItemGenerator(item) (item)->generator +#define ItemGeneratorParamPointer(item) (item)->genParamPointer +#define ItemCheckproc(item) (item)->checkproc +#define ItemCallback(item) (item)->itemCallback +#define ItemData(item) (item)->itemData +#define ItemWindow(item) (item)->itemWindow +#define ItemMenu(item) (item)->itemMenu +#define NULLITEM ((MenuItem *) NULL) +#define ItemGetArrowPosition(item) (item->itemMenu->menuWidth - arrow_width) + +/* Item predicates */ +#define ItemIsNull(item) (item == NULLITEM) +#define ItemIsInitialItem(menu, item) \ + (MenuInitialItemText(menu) && \ + (strcmp(MenuInitialItemText(menu), ItemText(item)) == 0)) +#define ItemIsLeaf(item) ((item->itemSubmenu == (Menu *) 0) ? TRUE : FALSE) +#define ItemIsDisabled(item) (ItemFlags(item) & itemDisabled) + +/* Item modifiers */ + +#define CheckItem(menu,item) SetItemCheck(menu,item,1) +#define DisableItem(menu,item) SetItemDisable(menu,item,1) +#define EnableItem(menu,item) SetItemDisable(menu,item,0) +#define UncheckItem(menu,item) SetItemCheck(menu,item,0) +#define SetItemFlag(item, flag) ItemFlags(item) |= flag +#define ResetItemFlag(item,flag) ItemFlags(item) &= ~flag +#define TestItemFlag(item,flag) (ItemFlags(item) & flag) +#define MoveItemFlag(item,flag1,flag2) \ + if (TestItemFlag(item,flag1))\ + SetItemFlag(item,flag2);\ + else\ + ResetItemFlag(item,flag2);\ + ResetItemFlag(item,flag1); + +/* Masks */ + +#define MenuEventMask (LeaveWindowMask | EnterWindowMask | ButtonReleaseMask) +#define NormalItemEventMask MenuEventMask +#define SubmenuItemEventMask (MenuEventMask | PointerMotionMask) +#define MenuIgnoreMask (unsigned long) 0 + +/* Magic numbers */ + +#define checkMarkWidth 9 +#define checkMarkHeight 8 +#define defaultCursorWidth 16 +#define defaultCursorHeight 16 +#define defaultCursorX 1 +#define defaultCursorY 1 +#define lineSeparatorHeight 9 +#define ItemBorder 1 +#define Default_Delta 20 /* # pixels pulled right to get submenu */ +#define Menu_Table_Size 8 +#define Item_Table_Size 32 + +/* external declarations */ + +extern Menu *NewMenu(); +extern MenuItem *TrackMenu (); +extern MenuItem *MenuItemByName (), *Display_Menu(); +extern void InitMenu (); +extern void DisposeMenu (); +extern void Draw_Menu(); diff --git a/menuP.h b/menuP.h new file mode 100644 index 0000000..78d5804 --- /dev/null +++ b/menuP.h @@ -0,0 +1,137 @@ +/* +#ifndef lint +static char sccs_id[] = "@(#)menuP.h 5.4 9/1/88 Siemens Corporate Research and Support, Inc."; +#endif +*/ + +/* + RTL Menu Package Version 1.0 + by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1987 + + menuP.h: menus header file + based on: menuP.h X10/6.6 11/3/86 +*/ + +/* + +Copyright 1985, 1986, 1987 by the Massachusetts Institute of Technology + +Permission to use, copy, modify, and distribute this +software and its documentation for any purpose and without +fee is hereby granted, provided that the above copyright +notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting +documentation, and that the name of M.I.T. not be used in +advertising or publicity pertaining to distribution of the +software without specific, written prior permission. +M.I.T. makes no representations about the suitability of +this software for any purpose. It is provided "as is" +without express or implied warranty. + +*/ + +/* + +Copyright 1987 by + Siemens Corporate Research and Support, Inc., Princeton, New Jersey + +Permission to use, copy, modify, and distribute this +software and its documentation for any purpose and without +fee is hereby granted, provided that the above copyright +notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting +documentation, and that the name of Siemens not be used in +advertising or publicity pertaining to distribution of the +software without specific, written prior permission. +Siemens makes no representations about the suitability of +this software for any purpose. It is provided "as is" +without express or implied warranty. + +*/ + +/* + * Menu items are constructed as follows, starting from the left side: + * + * menuItemPad + * space for check mark + * menuItemPad + * text + padding + * menuItemPad + * + * The padding for the text is that amount that this text is narrower than the + * widest text. + */ + + +#ifndef STD_DEFS +#include "std_defs.h" +#endif + +#ifndef OPTION_FLAGS +#include "rtlmenuO.h" +#endif + +typedef void (*Callback) (); +typedef struct _menuItem MenuItem; +typedef struct _menu Menu; + +struct _menuItem { + int itemFlags; /* flags of item */ + +#define itemDisabled 0x0001 /* item is disabled */ +#define itemChecked 0x0002 /* item has check mark */ +#define itemChanged 0x0010 /* item desires change */ + char *itemText; /* text of item */ + unsigned int itemTextWidth; /* width of text */ + unsigned int itemTextLength; /* length of text */ + struct _menuItem *nextItem; /* next item in chain */ + struct _menu *itemSubmenu; /* For pull-right menus */ + Callback generator; /* Change string and data */ + caddr_t genParamPointer; /* Address for generated parameter */ + bool (*checkproc) (); /* Checkmark callback generator */ + Callback itemCallback; /* user callback for item */ + pointer itemData; /* user data associated with menu */ + Window itemWindow; /* window of item */ + Menu *itemMenu; /* menu this item belongs to */ +}; + +struct _menu { + unsigned int menuWidth; /* full width of menu */ + unsigned int menuHeight; /* full height of menu */ + unsigned int menuOldWidth; + unsigned int menuOldHeight; + unsigned int menuItemWidth; /* width of a menu item */ + unsigned int menuItemHeight; /* height of a menu item */ + int menuFlags; /* flags of this menu */ + +# define menuChanged 0x0001 /* menu changed, must redraw */ +# define menuItemChanged 0x0002 /* item changed, must redraw */ +# define menuMapped 0x0004 /* menu is now mapped */ + + unsigned int menuMaxTextWidth; /* width of widest text */ + unsigned int menuBorderWidth; /* width of border */ + unsigned int menuOldBorderWidth; + int menuItemPad; /* pad amount */ + Display *display; /* display of menu */ + int screen; /* screen on which to display menu */ + Window menuWindow; /* window of menu */ + Cursor menuCursor; /* cursor used in menu */ + Pixmap savedPixmap; /* for saving image under menu */ + MenuItem *menuItems; /* head of menu item chain */ + XFontStruct *menuFontInfo; /* Font info */ + GC normalGC; /* Graphics contexts */ + GC invertGC; /* Used for inverting entries */ + GC highlightedGC; /* Highlighted text. */ + Pixmap greyPixmap; /* Need to know what to free */ + Pixmap checkmarkPixmap; /* Pixmap for drawing check mark. */ + Pixmap arrowPixmap; /* Pixmap for drawing arrow. */ + char *menuInitialItemText; /* != NULL, initial item */ + MenuItem *highlightedItem; /* highlighted menu item */ + int menuNested; /* depth you are nested */ + int menuX, menuY; /* Menu position */ + struct _menu *parentMenu; /* menu to which you are a submenu + * (NULL if you are the root) + */ + int delta; /* pull-right delta */ + MenuOptionsMask menuOptions; /* option values for this menu */ + }; diff --git a/message.c b/message.c new file mode 100644 index 0000000..79b9638 --- /dev/null +++ b/message.c @@ -0,0 +1,41 @@ +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + + +#ifndef BASETYPE +#include "basetype.h" +#endif + +#ifndef MESSAGE +#include "messageP.h" +#endif + +void Message_Pop_Up( pos, msg ) + TWPoint pos; + Message msg; +{} + +void Message_Put_Down() +{} + diff --git a/message.h b/message.h new file mode 100644 index 0000000..2018fb1 --- /dev/null +++ b/message.h @@ -0,0 +1,44 @@ +/* +static char sccs_id[] = "@(#)message.h 5.6 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +#ifndef BASETYPE +#include "basetype.h" +#endif + +#ifndef MESSAGE +#include "messageP.h" +#endif + +extern void Message_Pop_Up(); +/* TWPoint pos */ +/* Message msg */ +/* Pops up Message msg at pos */ + +extern void Message_Put_Down(); +/* Puts down popped up Message */ diff --git a/messageP.h b/messageP.h new file mode 100644 index 0000000..e4e7c0b --- /dev/null +++ b/messageP.h @@ -0,0 +1,34 @@ +/* +static char sccs_id[] = "@(#)messageP.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +#ifndef MESSAGE +#define MESSAGE +#endif + +typedef int Message; diff --git a/null_icon.h b/null_icon.h new file mode 100644 index 0000000..12f8ae5 --- /dev/null +++ b/null_icon.h @@ -0,0 +1,35 @@ +/* +static char sccs_id[] = "%W% %H%"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#define null_icon_width 1 +#define null_icon_height 1 +static char null_icon_bits[] = +{ + 0x00 +}; + + + diff --git a/open.c b/open.c new file mode 100644 index 0000000..f3c9523 --- /dev/null +++ b/open.c @@ -0,0 +1,227 @@ +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include +#include "std_defs.h" + +static char *homenv; +static char *basenv; +static char *rtlenv; + +extern char *getenv(); + +/* ------------------------------------------------------------ */ + +static void pathify( str, str1, str2 ) + char *str, *str1, *str2; +{ + strcpy( str, str1 ); + strcat( str, "/" ); + strcat( str, str2 ); +} + +/* ------------------------------------------------------------ */ + +void Open_Init() +{ + char *cur; + char path[256]; + + homenv = getenv("HOME"); + + str_copy( basenv, homenv ); + cur = basenv + strlen(basenv); + while ( *cur != '/' ) + cur--; + *cur = '\0'; + + rtlenv = getenv("RTLENV"); + if ( rtlenv != NULL ) + { + if ( rtlenv[0] == '~' ) + { + if ( rtlenv[1] == '/' ) + pathify( path, homenv, rtlenv + 2 ); + else + pathify( path, basenv, rtlenv + 1 ); + str_copy( rtlenv, path ); + } + else if ( rtlenv[0] != '/' ) + { + pathify( path, homenv, rtlenv ); + str_copy( rtlenv, path ); + } + } +} + +/* ------------------------------------------------------------ */ + +FILE* Open_Read( filnam ) + char *filnam; +{ + char path[256]; + FILE *stream; + + if ( filnam == NULL ) + return (FILE *)NULL; + + if ( filnam[0] == '/' ) + return fopen( filnam, "r" ); + + if ( filnam[0] == '~' ) + { + if ( filnam[1] == '/' ) + pathify( path, homenv, filnam + 2 ); + else + pathify( path, basenv, filnam + 1 ); + return fopen( path, "r" ); + } + + if ( rtlenv != NULL ) + { + pathify( path, rtlenv, filnam ); + stream = fopen( path, "r" ); + if ( stream != NULL ) + return stream; + } + + pathify( path, homenv, filnam ); + return fopen( path, "r" ); +} + +/* ------------------------------------------------------------ */ + +typedef bool (*BoolFunc)(); + +bool Open_Read_With( filnam, fn ) + char *filnam; + BoolFunc fn; +{ + char path[256]; + + if ( filnam == NULL ) + return FALSE; + + if ( filnam[0] == '/' ) + return fn( filnam ); + + if ( filnam[0] == '~' ) + { + if ( filnam[1] == '/' ) + pathify( path, homenv, filnam + 2 ); + else + pathify( path, basenv, filnam + 1 ); + return fn( path ); + } + + if ( rtlenv != NULL ) + { + pathify( path, rtlenv, filnam ); + if ( fn(path) ) + return TRUE; + } + + pathify( path, homenv, filnam ); + return fn( path ); +} + +/* ------------------------------------------------------------ */ + +FILE* Open_Write( filnam ) + char *filnam; +{ + char path[256]; + + if ( filnam == NULL ) + return (FILE *)NULL; + + if ( filnam[0] == '/' ) + return fopen( filnam, "w" ); + + if ( filnam[0] == '~' ) + { + if ( filnam[1] == '/' ) + pathify( path, homenv, filnam + 2 ); + else + pathify( path, basenv, filnam + 1 ); + return fopen( path, "w" ); + } + + if ( rtlenv != NULL ) + { + pathify( path, rtlenv, filnam ); + return fopen( path, "w" ); + } + + pathify( path, homenv, filnam ); + return fopen( path, "w" ); +} + +/* ------------------------------------------------------------ */ + +void Open_Execvp( filnam ) + char *filnam; +{ + char path[256]; + + if ( filnam[0] == '/' ) + execl( filnam, filnam, 0 ); + + else if ( filnam[0] == '~' ) + { + if ( filnam[1] == '/' ) + pathify( path, homenv, filnam + 2 ); + else + pathify( path, basenv, filnam + 1 ); + execl( path, path, 0 ); + } + + else + { + Open_Init(); + if ( rtlenv != NULL ) + { + pathify( path, rtlenv, filnam ); + execl( path, path, 0 ); + } + + pathify( path, homenv, filnam ); + execl( path, path, 0 ); + + execl( filnam, filnam, 0 ); + } +} + +/* ------------------------------------------------------------ */ + +void Open_Exec( cmd ) + char *cmd; +{ + char cmdbuf[256]; + + strcpy(cmdbuf, "exec "); + strcat(cmdbuf, cmd); + execl( "/bin/sh", "sh", "-c", cmdbuf, 0 ); +} + diff --git a/patchlevel.h b/patchlevel.h new file mode 100644 index 0000000..e562a34 --- /dev/null +++ b/patchlevel.h @@ -0,0 +1,2 @@ +/* @(#)patchlevel.h 5.2 6/2/89 */ +#define PATCHLEVEL 1 diff --git a/pause.c b/pause.c new file mode 100644 index 0000000..a07b44b --- /dev/null +++ b/pause.c @@ -0,0 +1,101 @@ +#ifndef lint +static char sccs_id[] = "%W% %H%"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + + +#include +#include +#include +#include "xio.h" +#include "twin.h" +#include "uwinD.h" +#include "uwinXD.h" + +/* Cleanup and exit the Rtl Manager. Called from menus or signal. + */ + +void Pause_RTL() +{ + Userwin *uwinp; + Tilwinp winp; + XWindowChanges wc; + + Draw_Reset_Background(); + + XDefineCursor(dpy, root, (XID) XC_X_cursor); + Draw_Set_Mouse_Control(-2, 0); /* reset mouse vals */ + + XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime); + + Tilwin_Gen_Open_Windows(); + while ((winp = Tilwin_Next_Window()) != WIN_NULL) + { + uwinp = Userwin_Get(winp); + + if (uwinp->current_type == rtl) + continue; + + if (Userwin_Border_Width(uwinp) > 0) + { + wc.border_width = Userwin_Border_Width(uwinp); + XConfigureWindow(dpy, Userwin_XClient(uwinp), + CWBorderWidth, &wc); + } + } + + Tilwin_Gen_Closed_Windows(); + while ((winp = Tilwin_Next_Window()) != WIN_NULL) + { + uwinp = Userwin_Get(winp); + + if (uwinp->current_type == rtl) + continue; + + if (Userwin_Border_Width(uwinp) > 0) + { + wc.border_width = Userwin_Border_Width(uwinp); + XConfigureWindow(dpy, Userwin_XClient(uwinp), + CWBorderWidth, &wc); + } + } + + XCloseDisplay(dpy); + + fprintf(stderr, "\nHope you enjoyed using RTL Tiled Windows under X!\n"); + exit(0); +} + + +/*ARGSUSED*/ +void +Exit(sig, code, scp) + int sig, code; + struct sigcontext *scp; +{ + + Pause_RTL(); +} diff --git a/pcs_enum.c b/pcs_enum.c new file mode 100644 index 0000000..c8b0ac0 --- /dev/null +++ b/pcs_enum.c @@ -0,0 +1,112 @@ +#ifndef lint +static char sccs_id[] = "@(#)pcs_enum.c 5.3 9/7/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#include "copyright.h" + +#include "tileD.h" +#include "tile-listP.h" +#include "tile.h" + +/* Visit all Tiles within the specified area. + */ +int +Tiles_In_Area(left_x, top_y, right_x, bottom_y, enum_func) + Basetype left_x, top_y, right_x, bottom_y; + void (*enum_func)(); +{ + extern void enumerate(); + Tile *tilep; + + /* find top-leftmost tile in area + */ + tilep = (Tile *) Tile_at_Point(left_x, top_y); + + /* while the current tile is still in the area + */ + while (tilep != NULL_TILE && Top_Y(tilep) <= bottom_y) + { + enumerate(tilep, left_x, top_y, right_x, bottom_y, enum_func); + tilep = (Tile *) Tile_at_Point(left_x, Bottom_Y(tilep) + 1); + } +} + + +void +enumerate(tilep, left_x, top_y, right_x, bottom_y, enum_func) + Tile *tilep; + Basetype left_x, top_y, right_x, bottom_y; + void (*enum_func)(); +{ + extern Tile_List Tile_Right_Neighbors(); + Tile_List neighbors; + Tile *nbr_tile; + + /* R1 - enumerate the tile + */ + (*enum_func)((Tilep)tilep); + + /* R2 - if the right edge of the tile is outside of the + * search area, return + */ + if (right_x <= Right_X(tilep)) + return; + + /* otherwise, use the neighbor finding algorithm + */ + neighbors = Tile_Right_Neighbors(tilep); + TL_NEXT(nbr_tile, neighbors); + + while (nbr_tile != NULL_TILE) + { + /* R3 - if the neighbor intersects the search area... + */ + if (top_y <= Bottom_Y(nbr_tile) && Top_Y(nbr_tile) <= bottom_y) + + /* R4 - if the bottom left corner of a + * neighbor touches the current tile, + * then enumerate that neighbor + */ + if (bl_stitch(nbr_tile) == tilep) + + enumerate(nbr_tile, left_x, top_y, + right_x, bottom_y, enum_func); + + /* R5 - or, if the bottom edge of the search + * area cuts both the current tile and the + * neighbor, then enumerate the neighbor + */ + else if (bottom_y <= Bottom_Y(tilep) + && bottom_y <= Bottom_Y(nbr_tile)) + + enumerate(nbr_tile, left_x, top_y, + right_x, bottom_y, enum_func); + + TL_NEXT(nbr_tile, neighbors); + } + TL_FREE(neighbors); +} + diff --git a/pcs_merge.c b/pcs_merge.c new file mode 100644 index 0000000..abe3c52 --- /dev/null +++ b/pcs_merge.c @@ -0,0 +1,136 @@ +#ifndef lint +static char sccs_id[] = "@(#)pcs_merge.c 5.3 9/7/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#include "copyright.h" + +#include "tileD.h" +#include "tile-listP.h" + +extern Tile_List Tile_Top_Neighbors(), + Tile_Bottom_Neighbors(), + Tile_Left_Neighbors(), + Tile_Right_Neighbors(); + +extern Tile *Tile_at_CP; + +extern void Update_Split_Side(); + +#ifdef WM_DEBUG +extern void Tile_Panic(); +#endif + + +/* Merge adjacent Space Tiles, 'merge_tile' and 'old_tile', along + * the specified side of 'merge_tile' ('old_tile' is destroyed). + */ +void +Tile_Merge(merge_tile, old_tile, side) + Tile *merge_tile, + *old_tile; + Side side; +{ + Tile_List list_1, /* lists of neighbors for 3 sides of a Tile */ + list_2, + list_3; + +#ifdef WM_DEBUG + /* Check to see if the tiles being merged are of + * the same type. If not, panic */ + if (Tile_Get_Type(merge_tile) != Tile_Get_Type(old_tile)) { + Tile_Panic("trying to merge tiles of different type"); + } +#endif + + switch (side) /* Get lists of neighbors for 3 sides */ + /* and update coordinates to reflect the merge */ + { + case Top: + list_1 = Tile_Top_Neighbors(old_tile); + list_2 = Tile_Left_Neighbors(old_tile); + list_3 = Tile_Right_Neighbors(old_tile); + + Top_Y(merge_tile) = Top_Y(old_tile); + rt_stitch(merge_tile) = rt_stitch(old_tile); + tr_stitch(merge_tile) = tr_stitch(old_tile); + + Update_Split_Side(list_1, Top, old_tile, merge_tile); + Update_Split_Side(list_2, Left, old_tile, merge_tile); + Update_Split_Side(list_3, Right, old_tile, merge_tile); + break; + + case Left: + list_1 = Tile_Top_Neighbors(old_tile); + list_2 = Tile_Left_Neighbors(old_tile); + list_3 = Tile_Bottom_Neighbors(old_tile); + + Left_X(merge_tile) = Left_X(old_tile); + lb_stitch(merge_tile) = lb_stitch(old_tile); + bl_stitch(merge_tile) = bl_stitch(old_tile); + + Update_Split_Side(list_1, Top, old_tile, merge_tile); + Update_Split_Side(list_2, Left, old_tile, merge_tile); + Update_Split_Side(list_3, Bottom, old_tile, merge_tile); + break; + + case Right: + list_1 = Tile_Top_Neighbors(old_tile); + list_2 = Tile_Right_Neighbors(old_tile); + list_3 = Tile_Bottom_Neighbors(old_tile); + + Right_X(merge_tile) = Right_X(old_tile); + rt_stitch(merge_tile) = rt_stitch(old_tile); + tr_stitch(merge_tile) = tr_stitch(old_tile); + + Update_Split_Side(list_1, Top, old_tile, merge_tile); + Update_Split_Side(list_2, Right, old_tile, merge_tile); + Update_Split_Side(list_3, Bottom, old_tile, merge_tile); + break; + + case Bottom: + list_1 = Tile_Left_Neighbors(old_tile); + list_2 = Tile_Right_Neighbors(old_tile); + list_3 = Tile_Bottom_Neighbors(old_tile); + + Bottom_Y(merge_tile) = Bottom_Y(old_tile); + lb_stitch(merge_tile) = lb_stitch(old_tile); + bl_stitch(merge_tile) = bl_stitch(old_tile); + + Update_Split_Side(list_1, Left, old_tile, merge_tile); + Update_Split_Side(list_2, Right, old_tile, merge_tile); + Update_Split_Side(list_3, Bottom, old_tile, merge_tile); + break; + } + + TL_FREE(list_1); + TL_FREE(list_2); + TL_FREE(list_3); + + Tile_at_CP = merge_tile; + free( (char *) old_tile ); + old_tile = NULL_TILE; +} + diff --git a/pcs_split.c b/pcs_split.c new file mode 100644 index 0000000..43c7b5c --- /dev/null +++ b/pcs_split.c @@ -0,0 +1,288 @@ +#ifndef lint +static char sccs_id[] = "@(#)pcs_split.c 5.3 9/7/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#include "copyright.h" + +/* Split Tile 'old_tile' on the specified side along 'new_coord'. + * 'old_tile' can be either a Solid or Space tile; however + * the resulting 'new_tile' is ALWAYS a Space tile. + * + * Returns a pointer to a new Space tile. + */ +#include "tileD.h" +#include "tile-listP.h" +#include "tile.h" + +extern Tile_List Tile_Top_Neighbors(), + Tile_Bottom_Neighbors(), + Tile_Left_Neighbors(), + Tile_Right_Neighbors(); + +extern void Update_Split_Side(), + Update_Adjacent_Sides(); + +#ifdef WM_DEBUG +extern void Tile_Panic(); +#endif + + +Tile * +Tile_Split_Top(old_tile, new_coord) + Tile *old_tile; + Basetype new_coord; +{ + Tile *new_tile; + Tile *old_bl, /* temp for old tile's new stitch value */ + *new_tr; /* temp for new tile's stitch */ + Tile_List split_list, /* neighbors of side parallel to split */ + adj_list_1, /* neighbors of adjacent 2 sides */ + adj_list_2; + +#ifdef WM_DEBUG + /* If new_coord is equal to the bottom or top of the + * old_tile, we will create a space of zero height. */ + if(((new_coord - 1) == Top_Y(old_tile)) || + (new_coord == Bottom_Y(old_tile))) + Tile_Panic("creating a tile of zero height"); +#endif + + /* Get neighbor lists, split old_tile along + * 'side', update corner stitches so 'old' & 'new' + * refer to each other + */ + split_list = Tile_Top_Neighbors(old_tile); + adj_list_1 = Tile_Left_Neighbors(old_tile); + adj_list_2 = Tile_Right_Neighbors(old_tile); + + + /* ... = Tile_at_Point(Left_X(new_tile) - 1, Bottom_Y(new_tile)) */ + old_bl = (Tile *) Tile_at_Point(Left_X(old_tile) - 1, (new_coord - 1) ); + + new_tr = (Tile *) Tile_at_Point(Right_X(old_tile) + 1, new_coord); + + new_tile = allocate(Tile, 1); + Tile_Set_Name(new_tile, tile_name++); + Tile_Set_Type(new_tile, Space); + Tile_Set_Win(new_tile, (pointer) NULL); + + Top_Y(new_tile) = Top_Y(old_tile); + Top_Y(old_tile) = new_coord; + Bottom_Y(new_tile) = new_coord - 1; + Left_X(new_tile) = Left_X(old_tile); + Right_X(new_tile) = Right_X(old_tile); + + tr_stitch(new_tile) = tr_stitch(old_tile); + rt_stitch(new_tile) = rt_stitch(old_tile); + + lb_stitch(new_tile) = old_tile; /* refer to one another */ + rt_stitch(old_tile) = new_tile; + + /* Update stitches along split - CONSISTENTLY + */ + bl_stitch(new_tile) = old_bl; + tr_stitch(old_tile) = new_tr; + + Update_Split_Side(split_list, Top, old_tile, new_tile); + Update_Adjacent_Sides(adj_list_1, Top, old_tile, new_tile); + Update_Adjacent_Sides(adj_list_2, Top, old_tile, new_tile); + + TL_FREE(split_list); + TL_FREE(adj_list_1); + TL_FREE(adj_list_2); + + return(new_tile); +} + + +Tile * +Tile_Split_Bottom(old_tile, new_coord) + Tile *old_tile; + Basetype new_coord; +{ + Tile *new_tile; + Tile *old_bl, *new_tr; + Tile_List split_list, adj_list_1, adj_list_2; + +#ifdef WM_DEBUG + if(((new_coord + 1) == Bottom_Y(old_tile)) || + (new_coord == Top_Y(old_tile))) + Tile_Panic("creating a tile of zero height"); +#endif + split_list = Tile_Bottom_Neighbors(old_tile); + adj_list_1 = Tile_Left_Neighbors(old_tile); + adj_list_2 = Tile_Right_Neighbors(old_tile); + + old_bl = (Tile *) Tile_at_Point(Left_X(old_tile) - 1, new_coord); + + /* ... = Tile_at_Point(Right_X(new_tile) + 1, Top_Y(new_tile)) */ + new_tr = (Tile *) Tile_at_Point(Right_X(old_tile) + 1, (new_coord + 1) ); + + new_tile = allocate(Tile, 1); + Tile_Set_Name(new_tile, tile_name++); + Tile_Set_Type(new_tile, Space); + Tile_Set_Win(new_tile, (pointer) NULL); + + Bottom_Y(new_tile) = Bottom_Y(old_tile); + Bottom_Y(old_tile) = new_coord; + Top_Y(new_tile) = new_coord + 1; + Left_X(new_tile) = Left_X(old_tile); + Right_X(new_tile) = Right_X(old_tile); + + bl_stitch(new_tile) = bl_stitch(old_tile); + lb_stitch(new_tile) = lb_stitch(old_tile); + + rt_stitch(new_tile) = old_tile; + lb_stitch(old_tile) = new_tile; + + bl_stitch(old_tile) = old_bl; + tr_stitch(new_tile) = new_tr; + + Update_Split_Side(split_list, Bottom, old_tile, new_tile); + Update_Adjacent_Sides(adj_list_1, Bottom, old_tile, new_tile); + Update_Adjacent_Sides(adj_list_2, Bottom, old_tile, new_tile); + + TL_FREE(split_list); + TL_FREE(adj_list_1); + TL_FREE(adj_list_2); + + return(new_tile); +} + + +Tile * +Tile_Split_Left(old_tile, new_coord) + Tile *old_tile; + Basetype new_coord; +{ + Tile *new_tile; + Tile *old_lb, *new_rt; + Tile_List split_list, adj_list_1, adj_list_2; + +#ifdef WM_DEBUG + if(((new_coord - 1) == Left_X(old_tile)) || + (new_coord == Right_X(old_tile))) + Tile_Panic("creating a tile of zero width"); +#endif + split_list = Tile_Left_Neighbors(old_tile); + adj_list_1 = Tile_Top_Neighbors(old_tile); + adj_list_2 = Tile_Bottom_Neighbors(old_tile); + + + old_lb = (Tile *) Tile_at_Point(new_coord, Bottom_Y(old_tile) + 1); + + /* ... = Tile_at_Point(Right_X(new_tile), Top_Y(new_tile) - 1) */ + new_rt = (Tile *) Tile_at_Point( (new_coord - 1), Top_Y(old_tile) - 1); + + + new_tile = allocate(Tile, 1); + Tile_Set_Name(new_tile, tile_name++); + Tile_Set_Type(new_tile, Space); + Tile_Set_Win(new_tile, (pointer) NULL); + + Left_X(new_tile) = Left_X(old_tile); + Left_X(old_tile) = new_coord; + Right_X(new_tile) = new_coord - 1; + Bottom_Y(new_tile) = Bottom_Y(old_tile); + Top_Y(new_tile) = Top_Y(old_tile); + + bl_stitch(new_tile) = bl_stitch(old_tile); + lb_stitch(new_tile) = lb_stitch(old_tile); + + tr_stitch(new_tile) = old_tile; + bl_stitch(old_tile) = new_tile; + + rt_stitch(new_tile) = new_rt; + lb_stitch(old_tile) = old_lb; + + Update_Split_Side(split_list, Left, old_tile, new_tile); + Update_Adjacent_Sides(adj_list_1, Left, old_tile, new_tile); + Update_Adjacent_Sides(adj_list_2, Left, old_tile, new_tile); + + TL_FREE(split_list); + TL_FREE(adj_list_1); + TL_FREE(adj_list_2); + + return(new_tile); +} + + +Tile * +Tile_Split_Right(old_tile, new_coord) + Tile *old_tile; + Basetype new_coord; +{ + Tile *new_tile; + Tile *old_lb, *new_rt; + Tile_List split_list, adj_list_1, adj_list_2; + +#ifdef WM_DEBUG + if(((new_coord + 1) == Right_X(old_tile)) || + (new_coord == Left_X(old_tile))) + Tile_Panic("creating a tile of zero height"); +#endif + split_list = Tile_Right_Neighbors(old_tile); + adj_list_1 = Tile_Top_Neighbors(old_tile); + adj_list_2 = Tile_Bottom_Neighbors(old_tile); + + + /* ... = Tile_at_Point(Left_X(new_tile), Bottom_Y(new_tile) + 1) */ + old_lb = (Tile *) Tile_at_Point( (new_coord + 1), Bottom_Y(old_tile) + 1); + + new_rt = (Tile *) Tile_at_Point(new_coord, Top_Y(old_tile) - 1); + + + new_tile = allocate(Tile, 1); + Tile_Set_Name(new_tile, tile_name++); + Tile_Set_Type(new_tile, Space); + Tile_Set_Win(new_tile, (pointer) NULL); + + Right_X(new_tile) = Right_X(old_tile); + Right_X(old_tile) = new_coord; + Left_X(new_tile) = new_coord + 1; + Bottom_Y(new_tile) = Bottom_Y(old_tile); + Top_Y(new_tile) = Top_Y(old_tile); + + tr_stitch(new_tile) = tr_stitch(old_tile); + rt_stitch(new_tile) = rt_stitch(old_tile); + + bl_stitch(new_tile) = old_tile; + tr_stitch(old_tile) = new_tile; + + rt_stitch(old_tile) = new_rt; + lb_stitch(new_tile) = old_lb; + + Update_Split_Side(split_list, Right, old_tile, new_tile); + Update_Adjacent_Sides(adj_list_1, Right, old_tile, new_tile); + Update_Adjacent_Sides(adj_list_2, Right, old_tile, new_tile); + + TL_FREE(split_list); + TL_FREE(adj_list_1); + TL_FREE(adj_list_2); + + return(new_tile); +} + diff --git a/pcs_updt.c b/pcs_updt.c new file mode 100644 index 0000000..57e4c6a --- /dev/null +++ b/pcs_updt.c @@ -0,0 +1,151 @@ +#ifndef lint +static char sccs_id[] = "@(#)pcs_updt.c 5.3 9/7/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#include "copyright.h" + +/* functions for updating a Tile's neighbors + */ + +#include "tileD.h" +#include "tile-listP.h" + +/* Neighbors (on 'split_list') of 'old_tile' on 'side' + * facing 'new_tile' are set to refer to 'new_tile', if + * they refer to 'old_tile'. + */ +void +Update_Split_Side(split_list, side, old_tile, new_tile) + Tile_List split_list; + Side side; + Tile *old_tile, + *new_tile; +{ + Tile *next_tile; + + TL_NEXT(next_tile, split_list); + + while (next_tile != NULL_TILE) + { + switch (side) + { + case Top: + if (lb_stitch(next_tile) == old_tile) + lb_stitch(next_tile) = new_tile; + break; + + case Bottom: + if (rt_stitch(next_tile) == old_tile) + rt_stitch(next_tile) = new_tile; + break; + + case Left: + if (tr_stitch(next_tile) == old_tile) + tr_stitch(next_tile) = new_tile; + break; + + case Right: + if (bl_stitch(next_tile) == old_tile) + bl_stitch(next_tile) = new_tile; + break; + } + + TL_NEXT(next_tile, split_list); + } +} + +/* Neighbors (on 'adj_list') of adjacent sides to 'side' which + * was split, are conditionally updated to refer to 'new_tile' + * if they previously referred to 'old_tile'. + */ +void +Update_Adjacent_Sides(adj_list, side, old_tile, new_tile) + Tile_List adj_list; + Side side; + Tile *old_tile, + *new_tile; +{ + Tile *next_tile; + + TL_NEXT(next_tile, adj_list); + + while (next_tile != NULL_TILE) + { + switch (side) + { + case Top: + if (tr_stitch(next_tile) == old_tile + && Top_Y(next_tile) < Top_Y(old_tile)) + + tr_stitch(next_tile) = new_tile; + + if (bl_stitch(next_tile) == old_tile + && Bottom_Y(next_tile) < Top_Y(old_tile)) + + bl_stitch(next_tile) = new_tile; + break; + + case Bottom: + if (tr_stitch(next_tile) == old_tile + && Bottom_Y(old_tile) < Top_Y(next_tile)) + + tr_stitch(next_tile) = new_tile; + + if (bl_stitch(next_tile) == old_tile + && Bottom_Y(old_tile) < Bottom_Y(next_tile)) + + bl_stitch(next_tile) = new_tile; + break; + + case Left: + if (rt_stitch(next_tile) == old_tile + && Right_X(next_tile) < Left_X(old_tile)) + + rt_stitch(next_tile) = new_tile; + + if (lb_stitch(next_tile) == old_tile + && Left_X(next_tile) < Left_X(old_tile)) + + lb_stitch(next_tile) = new_tile; + break; + + case Right: + if (rt_stitch(next_tile) == old_tile + && Right_X(old_tile) < Right_X(next_tile)) + + rt_stitch(next_tile) = new_tile; + + if (lb_stitch(next_tile) == old_tile + && Right_X(old_tile) < Left_X(next_tile)) + + lb_stitch(next_tile) = new_tile; + break; + } + + TL_NEXT(next_tile, adj_list); + } +} + diff --git a/platformP.h b/platformP.h new file mode 100644 index 0000000..8fcb1f6 --- /dev/null +++ b/platformP.h @@ -0,0 +1,63 @@ +/* +static char sccs_id[] = "@(#)platformP.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#define PLATFORM + +#ifndef X_H +#include +#endif + +typedef struct +{ + Window parent; /* parent "root" of Decorated X-RTL window */ + Window top_border; /* ...and the decorations */ + Window left_border; + Window right_border; + Window bottom_border; + Window top_left; /* the corner border windows (4) */ + Window top_right; + Window bottom_left; + Window bottom_right; + Window header; + Window zoom_gadget; + Window move_gadget; + Window client; /* the client's X window */ + Window icon; /* icon X window */ + Window client_icon; /* client's icon window - a property */ + Window transient_for; +} XFrame; + +#define platform_fields \ + int border_width; \ + Pixmap iconmask; \ + Pixmap iconpix; \ + Pixmap iconpix_pending; \ + bool ignore_unmap; /* ignore Unmap on X-reparent of client */ \ + XFrame xframe; /* the decorated X-client window */ + + + diff --git a/pr.c b/pr.c new file mode 100644 index 0000000..204c9dc --- /dev/null +++ b/pr.c @@ -0,0 +1,256 @@ +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" +#include + + +#include "basetype.h" +#include "twinD.h" +#include "state.h" +#include "uwinD.h" + +/* ------------------------------------------------------------ */ + +static int prtitle( uwinp ) + Userwin *uwinp; +{ + char *uresclass, *uresname, *uhostname, *uname; + + uresclass = uwinp->res_class; + uresname = uwinp->res_name; + uhostname = uwinp->hostname; + uname = uwinp->wmname; + + if ( (uresclass == NULL) && (uname == NULL) ) + printf( "\n#0 RTL "); + else + { + if ( uresclass == NULL ) + uresclass = ""; + + if ( uresname == NULL ) + uresname = ""; + + if ( uhostname == NULL ) + uhostname = ""; + + if ( uname == NULL ) + uname = ""; + + printf( "\n#%d (%d) %s: %s [%s]\n %s\n", + uwinp->winnum, (int)uwinp, + uresclass, uresname, uhostname, uname ); + } +} + +/* ------------------------------------------------------------ */ + +static int pricon( uwinp ) + Userwin *uwinp; +{ + Tilwin *winp; + winp = (Tilwin *)(uwinp->iconp); + if ( Tilwin_Is_Open(winp) ) + printf( " [ ICON ] (%d,%d)->(%d,%d) @ (%d,%d) => (%d,%d)\n", + winp->rect.left_x, + winp->rect.top_y, + winp->rect.right_x, + winp->rect.bottom_y, + winp->center.x, + winp->center.y, + winp->position.x, + winp->position.y ); + return 0; +} + +/* ------------------------------------------------------------ */ + +static int prwin( uwinp ) + Userwin *uwinp; +{ + Tilwin *winp; + winp = (Tilwin *)(uwinp->winp); + printf( " [ %s ] %s (%d,%d)->(%d,%d) @ (%d,%d) => (%d,%d)\n", + (Tilwin_Is_Open(winp) ? "OPEN" : "CLOSED" ), + (uwinp->zoomed ? " *ZOOMED* " : "" ), + winp->rect.left_x, + winp->rect.top_y, + winp->rect.right_x, + winp->rect.bottom_y, + winp->center.x, + winp->center.y, + winp->position.x, + winp->position.y ); + return 0; +} + +/* ------------------------------------------------------------ */ + +static int prinfo( uwinp ) + Userwin *uwinp; +{ + Tilwin *winp; + winp = (Tilwin *)(uwinp->winp); + + printf( " size: [%d,%d] max: [%d,%d]\n", + winp->size.width, + winp->size.height, + winp->max_size.width, + winp->max_size.height ); + + printf( " min: [%d,%d] desire: [%d,%d]\n", + winp->min_size.width, + winp->min_size.height, + winp->desired_size.width, + winp->desired_size.height ); + + if ( uwinp->zoomed) + printf( " regular min: [%d,%d] desire: [%d,%d]\n", + uwinp->regular_min.width, + uwinp->regular_min.height, + uwinp->regular_size.width, + uwinp->regular_size.height ); + else + printf( " ZOOM min: [%d,%d] desire: [%d,%d]\n", + uwinp->zoom_min.width, + uwinp->zoom_min.height, + uwinp->zoom_size.width, + uwinp->zoom_size.height ); + + return 0; +} + +/* ------------------------------------------------------------ */ + +int pru( uwinp ) + Userwin *uwinp; +{ + prtitle( uwinp ); + if ( uwinp->winp == WIN_NULL ) + pricon( uwinp ); + else if ( Tilwin_Is_Open( uwinp->winp ) ) + { + prwin( uwinp ); + prinfo( uwinp ); + pricon( uwinp ); + } + else + { + pricon( uwinp ); + prwin( uwinp ); + prinfo( uwinp ); + } + return 0; +} + +/* ------------------------------------------------------------ */ + +int prw( winp ) + Tilwinp winp; +{ + return pru( Userwin_Get(winp) ); +} + +/* ------------------------------------------------------------ */ + +int prn( num ) +{ + Tilwinp winp; + WinpHandle handle; + handle = State_Gen_Closed_Windows(); + while ( (winp = (Tilwinp)State_Coerce(handle)) != WIN_NULL ) + { + if ( Userwin_Get(winp)->winnum == num ) + { + prw(winp); + return 0; + } + State_Next_Window(&handle); + } + printf( "No such number\n" ); + return 0; +} + +/* ------------------------------------------------------------ */ + +int pro() +{ + Tilwinp winp; + WinpHandle handle; + Userwin *uwinp; + handle = State_Gen_Open_Windows(); + while ( (winp = (Tilwinp)State_Coerce(handle)) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( uwinp->winp == winp ) + { + prtitle( uwinp ); + prwin( uwinp ); + prinfo( uwinp ); + } + State_Next_Window(&handle); + } + return 0; +} + +/* ------------------------------------------------------------ */ + +int pri() +{ + Tilwinp winp; + WinpHandle handle; + Userwin *uwinp; + handle = State_Gen_Open_Windows(); + while ( (winp = (Tilwinp)State_Coerce(handle)) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( uwinp->iconp == winp ) + { + prtitle( uwinp ); + pricon( uwinp ); + } + State_Next_Window(&handle); + } + return 0; +} + +/* ------------------------------------------------------------ */ + +int prc() +{ + Tilwinp winp; + WinpHandle handle; + Userwin *uwinp; + handle = State_Gen_Closed_Windows(); + while ( (winp = (Tilwinp)State_Coerce(handle)) != WIN_NULL ) + { + uwinp = Userwin_Get(winp); + if ( uwinp->winp == winp ) + { + prtitle( uwinp ); + pricon( uwinp ); + } + State_Next_Window(&handle); + } + return 0; +} diff --git a/profile.c b/profile.c new file mode 100644 index 0000000..aacfc0b --- /dev/null +++ b/profile.c @@ -0,0 +1,1306 @@ +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + + +#include + +#include "basetype.h" + +#include "layout.h" +#include "region.h" +#include "twinD.h" +#include "uwinD.h" +#include "uwin.h" +#include "tilemenu.h" + +#include "tileoptsS.h" +#include "twinoptsS.h" +#include "useroptsS.h" +#include "uwinoptS.h" + +#include "uwinstrP.h" +#include "uwinstrS.h" + +#include "uservalsS.h" +#include "uwinvalP.h" +#include "uwinvalS.h" + +#include "synonymsS.h" + +extern Size Icons_Set(); + +Size abs_min_siz, abs_max_siz; + +extern FILE *Open_Read(); + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ +/* PROFILE_MENU */ +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static TileMenu profiles; +static VoidFunc callproc; + +/* ------------------------------------------------------------ */ + +static void Profile_Menu_Init( menu, proc ) + TileMenu menu; + VoidFunc proc; +{ + callproc = proc; + profiles = TileMenu_Create(); + TileMenu_Append_Call( profiles, "Preferences", callproc, NULL ); + TileMenu_Append_Submenu( menu, "Read Profile", profiles ); +} + +/* ------------------------------------------------------------ */ + +static void Profile_Menu_Read() +{ + FILE *stream; + char filnams[256], menustr[128]; + char *filnamx, *menustrx; + + TileMenu_Delete_Entries( profiles ); + TileMenu_Append_Call( profiles, "Preferences", callproc, NULL ); + + stream = Open_Read( ".rtl.profiles" ); + if ( stream != NULL ) + { + while ( fgets( menustr, 128, stream ) != NULL ) + { + if ( fgets( filnams, 256, stream ) != NULL ) + { + menustr[ strlen(menustr) - 1 ] = '\0'; + str_copy( menustrx, menustr ); + + filnams[ strlen(filnams) - 1 ] = '\0'; + str_copy( filnamx, filnams ); + + TileMenu_Append_Call( profiles, menustrx, callproc, filnamx ); + } + } + fclose ( stream ); + } +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ +/* CLASSES */ +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +typedef struct class Class; + +struct class +{ + Class *next; + char *name; + Class *super; + char *super_name; + int prefnum; + bool options[(int)LENGTH_WINDOW_OPTIONS]; + bool user_options[(int)LENGTH_USER_WINDOW_OPTIONS]; + int user_values[(int)LENGTH_USER_WINDOW_VALUES]; + char *user_strings[(int)LENGTH_USER_WINDOW_STRINGS]; + bool has_options[(int)LENGTH_WINDOW_OPTIONS]; + bool has_user_options[(int)LENGTH_USER_WINDOW_OPTIONS]; + bool has_user_values[(int)LENGTH_USER_WINDOW_VALUES]; + bool has_user_strings[(int)LENGTH_USER_WINDOW_STRINGS]; +}; + +#define CLASS_NULL ((Class *)NULL) + +static Class default_class; +static Class *default_classp = &default_class; +static Class *class_head = CLASS_NULL; + +static int prefnum; + +/* ------------------------------------------------------------ */ + +#define Tilwin_Set_Class_Option(classp,opt,val) \ +{ \ + (classp)->options[(int)(opt)] = (val); \ + (classp)->has_options[(int)(opt)] = TRUE; \ +} + +#define Tilwin_Set_Default_Option(opt,val) \ + Tilwin_Set_Class_Option(default_classp,opt,val) + +/* ------------------------------------------------------------ */ + +#define Userwin_Set_Class_Option(classp,opt,val) \ +{ \ + (classp)->user_options[(int)(opt)] = (val); \ + (classp)->has_user_options[(int)(opt)] = TRUE; \ +} + +#define Userwin_Set_Default_Option(opt,val) \ + Userwin_Set_Class_Option(default_classp,opt,val) + +/* ------------------------------------------------------------ */ + +#define Userwin_Set_Class_Value(classp,opt,val) \ +{ \ + (classp)->user_values[(int)(opt)] = (val); \ + (classp)->has_user_values[(int)(opt)] = TRUE; \ +} + +#define Userwin_Set_Default_Value(opt,val) \ + Userwin_Set_Class_Value(default_classp,opt,val) + +#define Userwin_Cond_Set_Default_Value(opt,val) \ +{ \ + if (! default_classp->has_user_values[(int)(opt)] ) \ + Userwin_Set_Default_Value(opt,val) \ +} + +/* ------------------------------------------------------------ */ + +#define Userwin_Set_Class_String(classp,opt,val) \ +{ \ + str_copy( (classp)->user_strings[(int)(opt)], val ); \ + (classp)->has_user_strings[(int)(opt)] = TRUE; \ +} + +#define Userwin_Set_Default_String(opt,val) \ + Userwin_Set_Class_String(default_classp,opt,val) + +/* ------------------------------------------------------------ */ + +static void Profile_Class_Reset( classp ) + Class *classp; +{ + int i; + + for ( i = 0; i < (int)LENGTH_WINDOW_OPTIONS; i++ ) + classp->has_options[i] = FALSE; + + for ( i = 0; i < (int)LENGTH_USER_WINDOW_OPTIONS; i++ ) + classp->has_user_options[i] = FALSE; + + for ( i = 0; i < (int)LENGTH_USER_WINDOW_VALUES; i++ ) + classp->has_user_values[i] = FALSE; + + for ( i = 0; i < (int)LENGTH_USER_WINDOW_STRINGS; i++ ) + { + classp->has_user_strings[i] = FALSE; + classp->user_strings[i] = NULL; + } + + classp->super = CLASS_NULL; + classp->super_name = NULL; + classp->prefnum = 0; +} + +/* ------------------------------------------------------------ */ + +#define Profile_Default_Class_Reset() \ + Profile_Class_Reset( default_classp ); + +/* ------------------------------------------------------------ */ + +bool Profile_Get_Class_Option( classp, namep, opt ) + Class *classp; + Class *namep; + Window_Options opt; +{ + while ( namep != CLASS_NULL ) + { + if ( namep->has_options[(int)opt] ) + return namep->options[(int)opt]; + namep = namep->super; + } + + while ( classp != CLASS_NULL ) + { + if ( classp->has_options[(int)opt] ) + return classp->options[(int)opt]; + classp = classp->super; + } + + return default_classp->options[(int)opt]; +} + +/* ------------------------------------------------------------ */ + +bool Profile_Get_User_Class_Option( classp, namep, opt ) + Class *classp; + Class *namep; + User_Window_Options opt; +{ + while ( namep != CLASS_NULL ) + { + if ( namep->has_user_options[(int)opt] ) + return namep->user_options[(int)opt]; + namep = namep->super; + } + + while ( classp != CLASS_NULL ) + { + if ( classp->has_user_options[(int)opt] ) + return classp->user_options[(int)opt]; + classp = classp->super; + } + + return default_classp->user_options[(int)opt]; +} + +/* ------------------------------------------------------------ */ + +bool Profile_Has_User_Class_Value( classp, namep, opt ) + Class *classp; + Class *namep; + User_Window_Values opt; +{ + while ( namep != CLASS_NULL ) + { + if ( namep->has_user_values[(int)opt] ) + return TRUE; + namep = namep->super; + } + + while ( classp != CLASS_NULL ) + { + if ( classp->has_user_values[(int)opt] ) + return TRUE; + classp = classp->super; + } + + return FALSE; +} + +/* ------------------------------------------------------------ */ + +int Profile_Get_User_Class_Value( classp, namep, opt ) + Class *classp; + Class *namep; + User_Window_Values opt; +{ + while ( namep != CLASS_NULL ) + { + if ( namep->has_user_values[(int)opt] ) + return namep->user_values[(int)opt]; + namep = namep->super; + } + + while ( classp != CLASS_NULL ) + { + if ( classp->has_user_values[(int)opt] ) + return classp->user_values[(int)opt]; + classp = classp->super; + } + + return default_classp->user_values[(int)opt]; +} + +/* ------------------------------------------------------------ */ + +bool Profile_Has_User_Class_String( classp, namep, opt ) + Class *classp; + Class *namep; + User_Window_Strings opt; +{ + while ( namep != CLASS_NULL ) + { + if ( namep->has_user_strings[(int)opt] ) + return TRUE; + namep = namep->super; + } + + while ( classp != CLASS_NULL ) + { + if ( classp->has_user_strings[(int)opt] ) + return TRUE; + classp = classp->super; + } + + return FALSE; +} + +/* ------------------------------------------------------------ */ + +char *Profile_Get_User_Class_String( classp, namep, opt ) + Class *classp; + Class *namep; + User_Window_Strings opt; +{ + while ( namep != CLASS_NULL ) + { + if ( namep->has_user_strings[(int)opt] ) + return namep->user_strings[(int)opt]; + namep = namep->super; + } + + while ( classp != CLASS_NULL ) + { + if ( classp->has_user_strings[(int)opt] ) + return classp->user_strings[(int)opt]; + classp = classp->super; + } + + return default_classp->user_strings[(int)opt]; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ +/* SETTING UP A WINDOW */ +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static void Profile_Set_Info( classp, namep, uwinp ) + Class *classp; + Class *namep; + Userwin *uwinp; +{ + uwinp->header_height = + Profile_Get_User_Class_Value( classp, namep, HEADER_HEIGHT ); + + uwinp->icon_body_rect.left_x = + Profile_Get_User_Class_Value( classp, namep, ICON_BODY_LEFT ); + uwinp->icon_body_rect.right_x = + Profile_Get_User_Class_Value( classp, namep, ICON_BODY_RIGHT ); + uwinp->icon_body_rect.top_y = + Profile_Get_User_Class_Value( classp, namep, ICON_BODY_TOP ); + uwinp->icon_body_rect.bottom_y = + Profile_Get_User_Class_Value( classp, namep, ICON_BODY_BOTTOM ); + + uwinp->icon_res_rect.left_x = + Profile_Get_User_Class_Value( classp, namep, ICON_RES_LEFT ); + uwinp->icon_res_rect.right_x = + Profile_Get_User_Class_Value( classp, namep, ICON_RES_RIGHT ); + uwinp->icon_res_rect.top_y = + Profile_Get_User_Class_Value( classp, namep, ICON_RES_TOP ); + uwinp->icon_res_rect.bottom_y = + Profile_Get_User_Class_Value( classp, namep, ICON_RES_BOTTOM ); + + uwinp->icon_host_rect.left_x = + Profile_Get_User_Class_Value( classp, namep, ICON_HOST_LEFT ); + uwinp->icon_host_rect.right_x = + Profile_Get_User_Class_Value( classp, namep, ICON_HOST_RIGHT ); + uwinp->icon_host_rect.top_y = + Profile_Get_User_Class_Value( classp, namep, ICON_HOST_TOP ); + uwinp->icon_host_rect.bottom_y = + Profile_Get_User_Class_Value( classp, namep, ICON_HOST_BOTTOM ); + + uwinp->icon_name_rect.left_x = + Profile_Get_User_Class_Value( classp, namep, ICON_NAME_LEFT ); + uwinp->icon_name_rect.right_x = + Profile_Get_User_Class_Value( classp, namep, ICON_NAME_RIGHT ); + uwinp->icon_name_rect.top_y = + Profile_Get_User_Class_Value( classp, namep, ICON_NAME_TOP ); + uwinp->icon_name_rect.bottom_y = + Profile_Get_User_Class_Value( classp, namep, ICON_NAME_BOTTOM ); + +} + +/* ------------------------------------------------------------ */ + +static void Profile_Set_Sizes( classp, namep, uwinp ) + Class *classp; + Class *namep; + Userwin *uwinp; +{ + Size size; + + size.width = + Profile_Get_User_Class_Value( classp, namep, + CLIENT_MIN_WIDTH ); + size.height = + Profile_Get_User_Class_Value( classp, namep, + CLIENT_MIN_HEIGHT ); + + uwinp->body_min = Region_Unadjust_Size( uwinp, size ); + + size.width = + Profile_Get_User_Class_Value( classp, namep, + CLIENT_MAX_WIDTH ); + size.height = + Profile_Get_User_Class_Value( classp, namep, + CLIENT_MAX_HEIGHT ); + uwinp->body_max = Region_Unadjust_Size( uwinp, size ); + + uwinp->regular_min.width = + Profile_Get_User_Class_Value( classp, namep, + USER_NORMAL_MIN_WIDTH ); + uwinp->regular_min.height = + Profile_Get_User_Class_Value( classp, namep, + USER_NORMAL_MIN_HEIGHT ); + + uwinp->zoom_min.width = + Profile_Get_User_Class_Value( classp, namep, + USER_ZOOM_MIN_WIDTH ); + uwinp->zoom_min.height = + Profile_Get_User_Class_Value( classp, namep, + USER_ZOOM_MIN_HEIGHT ); + + size.width = + Profile_Get_User_Class_Value( classp, namep, + USER_MAX_WIDTH ); + size.height = + Profile_Get_User_Class_Value( classp, namep, + USER_MAX_HEIGHT ); + + Tilwin_Set_Max( uwinp->winp, size ); +} + +/* ------------------------------------------------------------ */ + +static void Profile_Update_Sizes( classp, namep, uwinp ) + Class *classp; + Class *namep; + Userwin *uwinp; +{ + bool sized = TRUE; + + if ( Profile_Has_User_Class_Value( classp, namep, + NORMAL_DESIRED_WIDTH ) ) + uwinp->regular_size.width = + Profile_Get_User_Class_Value( classp, namep, + NORMAL_DESIRED_WIDTH ); + else + sized = FALSE; + + if ( Profile_Has_User_Class_Value( classp, namep, + NORMAL_DESIRED_HEIGHT ) ) + uwinp->regular_size.height = + Profile_Get_User_Class_Value( classp, namep, + NORMAL_DESIRED_HEIGHT ); + else + sized = FALSE; + + if ( sized ) + uwinp->sized = TRUE; + + if ( Profile_Has_User_Class_Value( classp, namep, + ZOOM_DESIRED_WIDTH ) ) + uwinp->zoom_size.width = + Profile_Get_User_Class_Value( classp, namep, + ZOOM_DESIRED_WIDTH ); + + if ( Profile_Has_User_Class_Value( classp, namep, + ZOOM_DESIRED_HEIGHT ) ) + uwinp->zoom_size.height = + Profile_Get_User_Class_Value( classp, namep, + ZOOM_DESIRED_HEIGHT ); +} + +/* ------------------------------------------------------------ */ + +static void Profile_Update_Icon_Sizes( classp, namep, uwinp ) + Class *classp; + Class *namep; + Userwin *uwinp; +{ + Size size; + + size = Tilwin_Get_Size( uwinp->iconp ); + + if ( Profile_Has_User_Class_Value( classp, namep, + ICON_WIDTH ) ) + size.width = MAX( 1, + Profile_Get_User_Class_Value( classp, namep, + ICON_WIDTH ) ); + + if ( Profile_Has_User_Class_Value( classp, namep, + ICON_HEIGHT ) ) + size.height = MAX( 1, + Profile_Get_User_Class_Value( classp, namep, + ICON_HEIGHT ) ); + + size = Icons_Set( uwinp, size, + Profile_Get_User_Class_String( + classp, namep, ICON_PIXMAP_FILE ) ); + + Tilwin_Set_Min( uwinp->iconp, size ); + Tilwin_Set_Max( uwinp->iconp, size ); + Tilwin_Set_Size( uwinp->iconp, size ); + Tilwin_Set_Desired( uwinp->iconp, size ); +} + +/* ------------------------------------------------------------ */ + +static void Profile_Create_Sizes( uwinp ) + Userwin *uwinp; +{ + TWRectangle rect; + TWPoint center; + Size siz; + + uwinp->regular_size.width = + Profile_Get_User_Class_Value( CLASS_NULL, CLASS_NULL, + NORMAL_DESIRED_WIDTH ); + uwinp->regular_size.height = + Profile_Get_User_Class_Value( CLASS_NULL, CLASS_NULL, + NORMAL_DESIRED_HEIGHT ); + uwinp->zoom_size.width = + Profile_Get_User_Class_Value( CLASS_NULL, CLASS_NULL, + ZOOM_DESIRED_WIDTH ); + uwinp->zoom_size.height = + Profile_Get_User_Class_Value( CLASS_NULL, CLASS_NULL, + ZOOM_DESIRED_HEIGHT ); + + rect.left_x = 0; + rect.top_y = 0; + + Tilwin_Set_Min( uwinp->winp, uwinp->regular_min ); + rect.right_x = uwinp->regular_min.width - 1; + rect.bottom_y = uwinp->regular_min.height - 1; + COMPUTE_SIZE( rect, siz ); + COMPUTE_CENTER( rect, center ); + Tilwin_Set( uwinp->winp, center, siz ); + Tilwin_Set_Size( uwinp->winp, uwinp->regular_size ); + + siz.width = + Profile_Get_User_Class_Value( CLASS_NULL, CLASS_NULL, + ICON_WIDTH ); + siz.height = + Profile_Get_User_Class_Value( CLASS_NULL, CLASS_NULL, + ICON_HEIGHT ); + + rect.right_x = siz.width - 1; + rect.bottom_y = siz.height - 1; + COMPUTE_SIZE( rect, siz ); + COMPUTE_CENTER( rect, center ); + + Tilwin_Set_Min( uwinp->iconp, siz ); + Tilwin_Set_Max( uwinp->iconp, siz ); + Tilwin_Set( uwinp->iconp, center, siz ); + + uwinp->rezoom_rect = Tilwin_Get_Desktop_Rectangle(); +} + +/* ------------------------------------------------------------ */ + +static void Profile_Default_Sizes() +{ + Size siz; + + abs_max_siz.width = UserGlobals_Get_Value( FULL_WIDTH ); + abs_max_siz.height = UserGlobals_Get_Value( FULL_HEIGHT ); + + siz = Region_Minimum_Size(); + abs_min_siz.width = UserGlobals_Get_Value( ABS_MIN_WIDTH ); + abs_min_siz.height = UserGlobals_Get_Value( ABS_MIN_HEIGHT ); + Set_Max_Size( abs_min_siz, abs_min_siz, siz ); + UserGlobals_Set_Value( ABS_MIN_WIDTH, abs_min_siz.width ); + UserGlobals_Set_Value( ABS_MIN_HEIGHT, abs_min_siz.height ); + + Userwin_Cond_Set_Default_Value( CLIENT_MIN_WIDTH, + abs_min_siz.width ); + Userwin_Cond_Set_Default_Value( CLIENT_MIN_HEIGHT, + abs_min_siz.height ); + + Userwin_Cond_Set_Default_Value( CLIENT_MAX_WIDTH, + abs_max_siz.width ); + Userwin_Cond_Set_Default_Value( CLIENT_MAX_HEIGHT, + abs_max_siz.height ); + + Userwin_Cond_Set_Default_Value( NORMAL_DESIRED_WIDTH, + abs_min_siz.width ); + Userwin_Cond_Set_Default_Value( NORMAL_DESIRED_HEIGHT, + abs_min_siz.height ); + + Userwin_Cond_Set_Default_Value( USER_NORMAL_MIN_WIDTH, + abs_min_siz.width ); + Userwin_Cond_Set_Default_Value( USER_NORMAL_MIN_HEIGHT, + abs_min_siz.height ); + + Userwin_Cond_Set_Default_Value( ZOOM_DESIRED_WIDTH, + abs_min_siz.width ); + Userwin_Cond_Set_Default_Value( ZOOM_DESIRED_HEIGHT, + abs_min_siz.height ); + + Userwin_Cond_Set_Default_Value( USER_ZOOM_MIN_WIDTH, + abs_min_siz.width ); + Userwin_Cond_Set_Default_Value( USER_ZOOM_MIN_HEIGHT, + abs_min_siz.height ); + + Userwin_Cond_Set_Default_Value( USER_MAX_WIDTH, + abs_max_siz.width ); + Userwin_Cond_Set_Default_Value( USER_MAX_HEIGHT, + abs_max_siz.height ); + +} + +/* ------------------------------------------------------------ */ + +static void Profile_Set_Global_Values() +{ + Size siz; + + siz.width = siz.height = 2; + Tilwin_Set_Absolute_Minimums( siz ); + Tilwin_Set_Gravity( UserGlobals_Get_Value( GRAVITY ) ); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ +/* SETTING OPTIONS BY NAME */ +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static void Profile_Set_Global_Option( opt, val ) + char *opt, *val; +{ + int i; + int num; + + for ( i = 0; i < (int)LENGTH_GLOBAL_OPTIONS; i++ ) + if ( streql( opt, global_strs[i] ) ) + { + if ( streql( val, "on" ) ) + Tilwin_Set_Global_Option( (Global_Options)i, TRUE ); + else + Tilwin_Set_Global_Option( (Global_Options)i, FALSE ); + return; + } + + for ( i = 0; i < (int)LENGTH_WINDOW_OPTIONS; i++ ) + if ( streql( opt, window_strs[i] ) ) + { + if ( streql( val, "on" ) ) + Tilwin_Set_Default_Option( (Window_Options)i, TRUE ) + else + Tilwin_Set_Default_Option( (Window_Options)i, FALSE ) + return; + } + + for ( i = 0; i < (int)LENGTH_USER_GLOBAL_OPTIONS; i++ ) + if ( streql( opt, user_global_strs[i] ) ) + { + if ( streql( val, "on" ) ) + UserGlobals_Set_Option( (User_Global_Options)i, TRUE ); + else + UserGlobals_Set_Option( (User_Global_Options)i, FALSE ); + return; + } + + for ( i = 0; i < (int)LENGTH_USER_WINDOW_OPTIONS; i++ ) + if ( streql( opt, user_window_strs[i] ) ) + { + if ( streql( val, "on" ) ) + Userwin_Set_Default_Option( (User_Window_Options)i, TRUE ) + else + Userwin_Set_Default_Option( (User_Window_Options)i, FALSE ) + return; + } + + for ( i = 0; i < (int)LENGTH_USER_GLOBAL_VALUES; i++ ) + if ( streql( opt, user_global_value_strs[i] ) ) + { + if ( sscanf( val, "%d", &num ) == 1 ) + UserGlobals_Set_Value( (User_Global_Values)i, num ); + return; + } + + for ( i = 0; i < (int)LENGTH_USER_WINDOW_VALUES; i++ ) + if ( streql( opt, user_window_value_strs[i] ) ) + { + if ( sscanf( val, "%d", &num ) == 1 ) + Userwin_Set_Default_Value( (User_Window_Values)i, num ); + return; + } + + for ( i = 0; i < (int)LENGTH_USER_WINDOW_STRINGS; i++ ) + if ( streql( opt, user_window_string_strs[i] ) ) + { + Userwin_Set_Default_String( (User_Window_Values)i, val ); + return; + } + + for ( i = 0; i < (int)LENGTH_SYNONYMS; i += 2 ) + if ( streql( opt, synonym_strs[i] ) ) + Profile_Set_Global_Option( synonym_strs[i+1], val ); + +} + +/* ------------------------------------------------------------ */ + +static void Profile_Class_Set_Option( classp, opt, val ) + Class *classp; + char *opt, *val; +{ + int i; + int num; + + for ( i = 0; i < (int)LENGTH_WINDOW_OPTIONS; i++ ) + if ( streql( opt, window_strs[i] ) ) + { + if ( streql( val, "on" ) ) + Tilwin_Set_Class_Option( classp, (Window_Options)i, TRUE ) + else + Tilwin_Set_Class_Option( classp, (Window_Options)i, FALSE ) + return; + } + + for ( i = 0; i < (int)LENGTH_USER_WINDOW_OPTIONS; i++ ) + if ( streql( opt, user_window_strs[i] ) ) + { + if ( streql( val, "on" ) ) + Userwin_Set_Class_Option( classp, + (User_Window_Options)i, TRUE ) + else + Userwin_Set_Class_Option( classp, + (User_Window_Options)i, FALSE ) + return; + } + + for ( i = 0; i < (int)LENGTH_USER_WINDOW_VALUES; i++ ) + if ( streql( opt, user_window_value_strs[i] ) ) + { + if ( sscanf( val, "%d", &num ) == 1 ) + Userwin_Set_Class_Value( + classp, (User_Window_Values)i, num ); + return; + } + + for ( i = 0; i < (int)LENGTH_USER_WINDOW_STRINGS; i++ ) + if ( streql( opt, user_window_string_strs[i] ) ) + { + Userwin_Set_Class_String( + classp, (User_Window_Values)i, val ); + return; + } + + if ( streql( opt, "superClass" ) ) + str_copy( classp->super_name, val ); + + for ( i = 0; i < (int)LENGTH_SYNONYMS; i += 2 ) + if ( streql( opt, synonym_strs[i] ) ) + Profile_Class_Set_Option( classp, synonym_strs[i+1], val ); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ +/* ALL CLASSES */ +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static Class *Profile_Classes_Find_Name( nam ) + char *nam; +{ + Class *classp; + + if ( nam == NULL ) + return CLASS_NULL; + + for ( classp = class_head; classp != CLASS_NULL; + classp = classp->next ) + { + if ( streql( nam, classp->name ) ) + return classp; + } + return CLASS_NULL; +} + +/* ------------------------------------------------------------ */ + +static Class *Profile_Classes_Add( nam ) + char *nam; +{ + Class *classp; + classp = allocate( Class, 1 ); + + classp->next = class_head; + class_head = classp; + + str_copy( classp->name, nam ); + + Profile_Class_Reset( classp ); + + return classp; +} + +/* ------------------------------------------------------------ */ + +static Class *Profile_Classes_Get_Name( nam ) + char *nam; +{ + Class *classp; + + classp = Profile_Classes_Find_Name( nam ); + if ( (classp == CLASS_NULL) && (nam != NULL) ) + classp = Profile_Classes_Add( nam ); + return classp; +} + +/* ------------------------------------------------------------ */ + +static void Profile_Classes_Reset() +{ + Class *classp; + + for ( classp = class_head; classp != CLASS_NULL; + classp = classp->next ) + Profile_Class_Reset( classp ); + + Profile_Default_Class_Reset(); + + UserGlobals_Set_Value( ABS_MIN_WIDTH, 2 ); + UserGlobals_Set_Value( ABS_MIN_HEIGHT, 2 ); + + prefnum = 0; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ +/* READING THE PROFILE */ +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static void Profile_Read_File( filnam ) + char *filnam; +{ + char str[256]; + char wmnam[128], nam[128], opt[128], val[128]; + FILE *stream; + Class *classp; + + stream = Open_Read( filnam ); + if ( stream == NULL ) return; + while ( fgets( str, 256, stream ) != NULL ) + { + /* rtl.nam.opt: */ + + if ( sscanf( str, "%[^.]%*c%[^.]%*c%[^:]%*c%s", + wmnam, nam, opt, val ) == 4 ) + { + if ( streql( wmnam, "rtl" ) || + streql( wmnam, "Wm" ) || + streql( wmnam, "*" ) ) + { + classp = Profile_Classes_Get_Name( nam ); + Profile_Class_Set_Option( classp, opt, val ); + } + } + + /* *nam.opt: */ + + else if ( sscanf( str, "*%[^.]%*c%[^:]%*c%s", + nam, opt, val ) == 3 ) + { + classp = Profile_Classes_Get_Name( nam ); + Profile_Class_Set_Option( classp, opt, val ); + } + + /* rtl.opt: or nam.opt: */ + + else if ( sscanf( str, "%[^.]%*c%[^:]%*c%s", + nam, opt, val ) == 3 ) + { + if ( streql( nam, "rtl" ) || + streql( nam, "Wm" ) || + streql( nam, "*" ) ) + Profile_Set_Global_Option( opt, val ); + else + { + classp = Profile_Classes_Get_Name( nam ); + Profile_Class_Set_Option( classp, opt, val ); + } + } + + /* *opt: */ + + else if ( sscanf( str, "*%[^:]%*c%s", + opt, val ) == 2 ) + { + Profile_Set_Global_Option( opt, val ); + } + + /* rtl*opt: */ + + else if ( sscanf( str, "%[^*]%*c%[^:]%*c%s", + wmnam, opt, val ) == 3 ) + { + if ( streql( wmnam, "rtl" ) || streql( wmnam, "Wm" ) ) + Profile_Set_Global_Option( opt, val ); + } + + /* opt: */ + + else if ( sscanf( str, "%[^:]%*c%s", + opt, val ) == 2 ) + { + Profile_Set_Global_Option( opt, val ); + } + } + fclose( stream ); +} + +/* ------------------------------------------------------------ */ + +static void Profile_Read_Files( filnams ) + char *filnams; +{ + char *startp, *curp; + char lastchar; + + startp = filnams; + + while ( *startp != '\0' ) + { + while ( ( *startp != '\0' ) && + ( ( *startp == ' ' ) || ( *startp == '\t' ) ) ) + startp++; + + curp = startp; + + while ( ( *curp != 0 ) && ( *curp != ' ' ) && ( *curp != '\t' ) ) + curp++; + + if ( startp != curp ) + { + lastchar = *curp; + *curp = '\0'; + Profile_Read_File( startp ); + *curp = lastchar; + } + + startp = curp; + } +} + +/* ------------------------------------------------------------ */ + +#include "defaults.i" + +void Profile_Read( filnams ) + char *filnams; +{ + Profile_Classes_Reset(); + + Profile_Defaults(); + + Profile_Read_File( ".Xdefaults" ); + Profile_Read_File( ".rtl.preferences" ); + if ( filnams != NULL ) + Profile_Read_Files( filnams ); + + Profile_Default_Sizes(); + Profile_Set_Global_Values(); +} + +/* ------------------------------------------------------------ */ + +static void Profile_Super_Preference( classp ) + Class *classp; +{ + char filnam[128]; + + prefnum++; + + while ( (classp != CLASS_NULL) && (classp->prefnum == 0) ) + { + classp->prefnum = prefnum; + + strcpy( filnam, "." ); + strcat( filnam, classp->name ); + strcat( filnam, ".preferences" ); + + Profile_Read_File( filnam ); + + if (! classp->super_name == NULL ) + { + classp->super = + Profile_Classes_Get_Name( classp->super_name ); + + if ( classp->super->prefnum == prefnum ) + classp->super = CLASS_NULL; + } + classp = classp->super; + } +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ +/* EXPLICITLY SET WINDOW OPTIONS */ +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static bool explopts[(int)LENGTH_EXPLICIT_WINDOW_OPTIONS]; + +/* ------------------------------------------------------------ */ + +static void Profile_Explicit_Clear( uwinp ) + Userwin *uwinp; +{ + int i; + + for ( i = 0; i < (int)LENGTH_EXPLICIT_WINDOW_OPTIONS; i++ ) + Explicit_Window_Clear( uwinp, + ((Explicit_Window_Options)(i)) ); +} + +/* ------------------------------------------------------------ */ + +static void Profile_Explicit_Save( uwinp ) + Userwin *uwinp; +{ + if ( Explicit_Window_Get( uwinp, EXPLICIT_REQUIRE_MANUAL_CLOSE ) ) + explopts[(int)EXPLICIT_REQUIRE_MANUAL_CLOSE] = + Tilwin_Get_Window_Option( uwinp->winp, REQUIRE_MANUAL_CLOSE ); + if ( Explicit_Window_Get( uwinp, EXPLICIT_FIXED_WIDTH ) ) + explopts[(int)EXPLICIT_FIXED_WIDTH] = + Tilwin_Get_Window_Option( uwinp->winp, FIXED_WIDTH ); + if ( Explicit_Window_Get( uwinp, EXPLICIT_FIXED_HEIGHT ) ) + explopts[(int)EXPLICIT_FIXED_HEIGHT] = + Tilwin_Get_Window_Option( uwinp->winp, FIXED_HEIGHT ); + if ( Explicit_Window_Get( uwinp, EXPLICIT_FIXED_COMPLETELY ) ) + explopts[(int)EXPLICIT_FIXED_COMPLETELY] = + Tilwin_Get_Window_Option( uwinp->winp, FIXED_COMPLETELY ); + if ( Explicit_Window_Get( uwinp, EXPLICIT_LISTENER_TIED_TO_ZOOM ) ) + explopts[(int)EXPLICIT_LISTENER_TIED_TO_ZOOM] = + Userwin_Get_Window_Option( uwinp, LISTENER_TIED_TO_ZOOM ); + if ( Explicit_Window_Get( uwinp, EXPLICIT_ZOOM_TIED_TO_DESIRE ) ) + explopts[(int)EXPLICIT_ZOOM_TIED_TO_DESIRE] = + Userwin_Get_Window_Option( uwinp, ZOOM_TIED_TO_DESIRE ); +} + +/* ------------------------------------------------------------ */ + +static void Profile_Explicit_Restore( uwinp ) + Userwin *uwinp; +{ + if ( Explicit_Window_Get( uwinp, EXPLICIT_REQUIRE_MANUAL_CLOSE ) ) + Tilwin_Set_Window_Option( uwinp->winp, REQUIRE_MANUAL_CLOSE, + explopts[(int) EXPLICIT_REQUIRE_MANUAL_CLOSE ] ); + if ( Explicit_Window_Get( uwinp, EXPLICIT_FIXED_WIDTH ) ) + Tilwin_Set_Window_Option( uwinp->winp, FIXED_WIDTH, + explopts[(int) EXPLICIT_FIXED_WIDTH ] ); + if ( Explicit_Window_Get( uwinp, EXPLICIT_FIXED_HEIGHT ) ) + Tilwin_Set_Window_Option( uwinp->winp, FIXED_HEIGHT, + explopts[(int) EXPLICIT_FIXED_HEIGHT ] ); + if ( Explicit_Window_Get( uwinp, EXPLICIT_FIXED_COMPLETELY ) ) + Tilwin_Set_Window_Option( uwinp->winp, FIXED_COMPLETELY, + explopts[(int) EXPLICIT_FIXED_COMPLETELY ] ); + if ( Explicit_Window_Get( uwinp, EXPLICIT_LISTENER_TIED_TO_ZOOM ) ) + Userwin_Set_Window_Option( uwinp, LISTENER_TIED_TO_ZOOM, + explopts[(int) EXPLICIT_LISTENER_TIED_TO_ZOOM ] ); + if ( Explicit_Window_Get( uwinp, EXPLICIT_ZOOM_TIED_TO_DESIRE ) ) + Userwin_Set_Window_Option( uwinp, ZOOM_TIED_TO_DESIRE, + explopts[(int) EXPLICIT_ZOOM_TIED_TO_DESIRE ] ); +} + +/* ------------------------------------------------------------ */ + +static void Profile_Set_Options( classp, namep, uwinp ) + Class *classp; + Class *namep; + Userwin *uwinp; +{ + int i; + + Profile_Explicit_Save( uwinp ); + + for ( i = 0; i < (int)LENGTH_WINDOW_OPTIONS; i++ ) + Tilwin_Set_Window_Option( uwinp->winp, ((Window_Options)(i)), + Profile_Get_Class_Option( + classp, namep, (Window_Options)(i)) ); + + for ( i = 0; i < (int)LENGTH_USER_WINDOW_OPTIONS; i++ ) + Userwin_Set_Window_Option( uwinp, ((User_Window_Options)(i)), + Profile_Get_User_Class_Option( + classp, namep, (User_Window_Options)(i)) ); + + Profile_Explicit_Restore( uwinp ); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +bool Profile_Supplies_User_Value( uwinp, opt ) + Userwin *uwinp; + User_Window_Values opt; +{ + Class *classp; + Class *namep; + + classp = Profile_Classes_Get_Name( uwinp->res_class ); + namep = Profile_Classes_Get_Name( uwinp->identity ); + return Profile_Has_User_Class_Value( classp, namep, opt ); +} + +/* ------------------------------------------------------------ */ + +bool Profile_Supplies_User_String( uwinp, opt ) + Userwin *uwinp; + User_Window_Strings opt; +{ + Class *classp; + Class *namep; + + classp = Profile_Classes_Get_Name( uwinp->res_class ); + namep = Profile_Classes_Get_Name( uwinp->res_name ); + return Profile_Has_User_Class_String( classp, namep, opt ); +} + +/* ------------------------------------------------------------ */ + +bool Profile_Supplies_Pixmap( uwinp ) + Userwin *uwinp; +{ + return Profile_Supplies_User_String( uwinp, ICON_PIXMAP_FILE ); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ +/* PREPARE & LAYOUT */ +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static void Profile_Preferences( classp, namep, uwinp ) + Class *classp; + Class *namep; + Userwin *uwinp; +{ + Profile_Super_Preference( classp ); + Profile_Super_Preference( namep ); + + Profile_Set_Options( classp, namep, uwinp ); + Profile_Set_Info( classp, namep, uwinp ); +} + +/* ------------------------------------------------------------ */ + +void Profile_Create( uwinp ) + Userwin *uwinp; +{ + Profile_Explicit_Clear( uwinp ); + + Profile_Set_Options( CLASS_NULL, CLASS_NULL, uwinp ); + Profile_Set_Info( CLASS_NULL, CLASS_NULL, uwinp ); + + Profile_Set_Sizes( CLASS_NULL, CLASS_NULL, uwinp ); + Profile_Create_Sizes( uwinp ); + + Userwin_Body_Min_Max( uwinp ); + Userwin_Enforce_Client_Sizes( uwinp ); + Userwin_Check_Sizes( uwinp ); + Userwin_Followup_Sizes( uwinp ); +} + +/* ------------------------------------------------------------ */ + +void Profile_Prepare( uwinp ) + Userwin *uwinp; +{ + Class *classp; + Class *namep; + + classp = Profile_Classes_Get_Name( uwinp->res_class ); + namep = Profile_Classes_Get_Name( uwinp->res_name ); + + Profile_Preferences( classp, namep, uwinp ); + Profile_Update_Icon_Sizes( classp, namep, uwinp ); + + Userwin_Setup_Sizes( uwinp ); + + Profile_Set_Sizes( classp, namep, uwinp ); + Profile_Update_Sizes( classp, namep, uwinp ); + + Userwin_Body_Min_Max( uwinp ); + Userwin_Enforce_Client_Sizes( uwinp ); + Userwin_Check_Sizes( uwinp ); + Userwin_Followup_Sizes( uwinp ); + + if ( Same_Size( Tilwin_Get_Min( uwinp->winp ), + Tilwin_Get_Max( uwinp->winp ) ) ) + uwinp->sized = TRUE; +} + +/* ------------------------------------------------------------ */ + +void Profile_Layout( uwinp ) + Userwin *uwinp; +{ + Layoutp layoutp = LAYOUT_NULL; + + if ( (uwinp->res_class != NULL) || (uwinp->res_name != NULL ) ) + layoutp = Layout_Find( uwinp ); + else + Profile_Prepare( uwinp ); + + if ( layoutp != LAYOUT_NULL ) + uwinp->layout_found = TRUE; + + Userwin_Setup_Sizes( uwinp ); + Layout_Set_Values( layoutp, uwinp ); + Userwin_Enforce_Client_Sizes( uwinp ); + Userwin_Check_Sizes( uwinp ); + Userwin_Followup_Sizes( uwinp ); + Userwin_Bound_Size( uwinp ); + + Layout_Set_Options( layoutp, uwinp ); +} + +/* ------------------------------------------------------------ */ + +static void Profile_Update_Window( uwinp ) + Userwin *uwinp; +{ + Class *classp; + Class *namep; + + classp = Profile_Classes_Get_Name( uwinp->res_class ); + namep = Profile_Classes_Get_Name( uwinp->res_name ); + + Profile_Preferences( classp, namep, uwinp ); + Profile_Update_Icon_Sizes( classp, namep, uwinp ); + + Userwin_Setup_Sizes( uwinp ); + Userwin_Body_Min_Max( uwinp ); + Userwin_Enforce_Client_Sizes( uwinp ); + Userwin_Followup_Sizes( uwinp ); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ +/* INIT & REINIT */ +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void Profile_Update( filnams ) + char *filnams; +{ + Tilwinp winp; + Userwin *uwinp; + + Profile_Menu_Read(); + Profile_Read( filnams ); + Layout_Update( filnams ); + + Tilwin_Gen_Open_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get( winp ); + if ( uwinp->winp == winp ) + Profile_Update_Window( uwinp ); + } + + Tilwin_Gen_Closed_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + uwinp = Userwin_Get( winp ); + if ( (uwinp->winp == winp) && (uwinp->current_type != rtl) ) + Profile_Update_Window( uwinp ); + } +} + +/* ------------------------------------------------------------ */ + +void Profile_Init( menu, proc ) + TileMenu menu; + VoidFunc proc; +{ + Profile_Menu_Init( menu, proc ); + Profile_Menu_Read(); + + Profile_Read( Layout_Init() ); + Layout_Read(); +} + diff --git a/profile.h b/profile.h new file mode 100644 index 0000000..33e766a --- /dev/null +++ b/profile.h @@ -0,0 +1,52 @@ +/* +static char sccs_id[] = "@(#)profile.h 5.6 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +extern void Profile_Init(); + +extern void Profile_Create(); +/* uwinp */ + +extern void Profile_Prepare(); +/* uwinp */ + +extern void Profile_Update(); +/* filnam */ + +extern void Profile_Layout(); +/* filnam */ + +extern bool Profile_Supplies_User_Value(); +/* uwinp, opt */ + +extern bool Profile_Supplies_User_String(); +/* uwinp, opt */ + +extern bool Profile_Supplies_Pixmap(); +/* uwinp */ + diff --git a/property.c b/property.c new file mode 100644 index 0000000..7d349ca --- /dev/null +++ b/property.c @@ -0,0 +1,498 @@ +#ifndef lint +static char sccs_id[] = "%W% %H%"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + + +/* Property package. Parses and directs action on properties + * attached to X client-windows. + */ + +#include "uwinD.h" +#include "uwinXD.h" +#include "manage.h" +#include "profile.h" +#include "interf.h" + +#include +#include +#include +#include "assoc.h" +#include "xio.h" + +#define ARGSLEN (long) 200 /* max command line length */ +#define HOSTLEN (long) 50 /* max header title length */ +#define FAILED (Status) 0 + +/* ------------------------------------------------------------ */ + +/* Get the main window with which the transient is + * associated. + * Returns the window, or None. + */ +int +Property_Get_Dialogue_Parent(uwinp) + Userwin *uwinp; +{ + Window parent; + + parent = None; + if (XGetTransientForHint(dpy, Userwin_XClient(uwinp), &parent)) + { + /* it's possible to set the transient for hint, with no */ + /* parent (toolkit does this) -- so make the transient */ + /* for be the root (since we use 0 to mean not transient */ + Userwin_XTransient_For(uwinp) = (parent == None)? root : parent; + } + else + Userwin_XTransient_For(uwinp) = None; + +} + +/* ------------------------------------------------------------ */ + +/* Get the class of the Client window. + */ +int +Property_Get_Window_Class(uwinp) + Userwin *uwinp; +{ +/* Status status; */ + XClassHint class_hint; + + + class_hint.res_class = class_hint.res_name = ""; /* for workaround */ + +/* status = */ (void)XGetClassHint(dpy, Userwin_XClient(uwinp), &class_hint); + + /* Workaround for Xlib bug --- should be removed eventually */ +/* if (status != FAILED) -- this line will replace next line */ + if (!((class_hint.res_class == "") && (class_hint.res_name == ""))) + { + Manage_Set_Class(uwinp, class_hint.res_class, + class_hint.res_name); + + if (class_hint.res_class != "") + XFree(class_hint.res_class); + if (class_hint.res_name != "") + XFree(class_hint.res_name); + + } +} + +/* ------------------------------------------------------------ */ + +/* Get the Client window's title, to appear in its header. + */ +int +Property_Get_Title(uwinp) + Userwin *uwinp; +{ + Status status; + char *s = (char *) NULL; + + + status = XFetchName(dpy, Userwin_XClient(uwinp), &s); + + if (status != FAILED && s != (char *) NULL) + { + Manage_Set_Name(uwinp, s); +/* + fprintf(stderr, "prop: got title <%s> for client <%d>\n", + s, Userwin_XClient(uwinp)); +*/ + XFree(s); + } +} + +/* ------------------------------------------------------------ */ + +/* Get the command line which invoked the Client. + */ +int +Property_Get_Command_Line(uwinp) + Userwin *uwinp; +{ + Status status; + Atom actual_type; + int actual_format; + unsigned long nitems; + long bytes_after; + unsigned char *prop; + + + status = XGetWindowProperty(dpy, Userwin_XClient(uwinp), + XA_WM_COMMAND, + (long) 0, ARGSLEN, False, + XA_STRING, + &actual_type, &actual_format, + &nitems, &bytes_after, &prop); + + if (status == Success && actual_type != None) + { + char command[ARGSLEN]; + int len; + + + switch (actual_format) + { + case 8: + strncpy(command, (char *) prop, + (len = (ARGSLEN <= nitems) ? ARGSLEN - 1 : nitems )); + + command[len] = '\0'; + Interf_Client_Set_Command(uwinp, command); + +/* + fprintf(stderr, "prop: got command <%s> for client <%d>\n", + command, Userwin_XClient(uwinp)); +*/ + break; + + + default: + break; + } + + XFree ( (char *) prop ); + } +} + +/* ------------------------------------------------------------ */ + +/* Get the host machine that a Client is running on. + */ +int +Property_Get_Hostname(uwinp) + Userwin *uwinp; +{ + Status status; + Atom actual_type; + int actual_format; + unsigned long nitems; + long bytes_after; + unsigned char *prop; + +/*XXXX + if (UserGlobals_Get_Option(WM_CLIENT_MACHINE) == FALSE) + return; +*/ + status = XGetWindowProperty(dpy, Userwin_XClient(uwinp), + XA_WM_CLIENT_MACHINE, + (long) 0, HOSTLEN, False, + XA_STRING, + &actual_type, &actual_format, + &nitems, &bytes_after, &prop); + + if (status == Success && actual_type != None) + { + char hostname[HOSTLEN]; + int len; + + + switch (actual_format) + { + case 8: + strncpy(hostname, (char *) prop, + (len = (HOSTLEN <= nitems) ? HOSTLEN - 1 : nitems )); + + hostname[len] = '\0'; + Manage_Set_Hostname(uwinp, hostname); + +/* + fprintf(stderr, "prop: got hostname <%s> for client <%d>\n", + hostname, Userwin_XClient(uwinp)); +*/ + break; + + + default: + break; + } + + XFree ( (char *) prop ); + } +} + +/* ------------------------------------------------------------ */ + +/* Set the icon title for a Client. + */ +int +Property_Get_Icon_Title(uwinp) + Userwin *uwinp; +{ + Status status; + char *s = (char *) NULL; + + + status = XGetIconName(dpy, Userwin_XClient(uwinp), &s); + + if (status != FAILED && s != (char *) NULL) + { + Manage_Set_Icon_Name(uwinp, s); +/* + fprintf(stderr, "prop: got Icon title <%s> for client <%d>\n", + s, Userwin_XClient(uwinp)); +*/ + XFree(s); + } +} + +/* ------------------------------------------------------------ */ + +/* Get size hints for a Client Tiled window in its Normal state. + */ +int +Property_Get_Normal_Size_Hints(uwinp) + Userwin *uwinp; +{ + XSizeHints hints; /* RETURNed by GetNormalHints */ + Status status; + + + status = XGetNormalHints(dpy, Userwin_XClient(uwinp), &hints); + + if (status != FAILED) + { + Size min_size, max_size, incr_size, base_size; + + min_size.width = hints.min_width; + min_size.height = hints.min_height; + max_size.width = hints.max_width; + max_size.height = hints.max_height; + incr_size.width = hints.width_inc; + incr_size.height = hints.height_inc; + base_size = min_size; + + Interf_Client_Set_Normal_Hints(uwinp, + hints.flags, + min_size, + max_size, + incr_size, + hints.min_aspect, + hints.max_aspect, + base_size); + } +} + +int +Property_Get_Geometry_Hints(uwinp) + Userwin *uwinp; +{ + XSizeHints hints; /* RETURNed by GetNormalHints */ + Status status; + + + status = XGetNormalHints(dpy, Userwin_XClient(uwinp), &hints); + + if (status != FAILED) + { + TWPoint pt; + Size size; + + pt.x = hints.x; + pt.y = hints.y; + size.width = hints.width; + size.height = hints.height; + + Interf_Client_Set_Geometry_Hints(uwinp, + hints.flags, + pt, size); + } +} + +/* ------------------------------------------------------------ */ + +Size Property_Pixmap_Size( pix ) + Pixmap pix; +{ + Window w; + int x, y; + unsigned int width, height; + unsigned int border_width; + unsigned int depth; + Size siz; + + XGetGeometry( dpy, pix, &w, &x, &y, + &width, &height, + &border_width, &depth ); + + siz.width = width; + siz.height = height; + + return siz; +} + +/* ------------------------------------------------------------ */ + +/* Get the Window Manager hints to Rtl for a Client. + */ +int +Property_Get_Wm_Hints(uwinp) + Userwin *uwinp; +{ + XWMHints *ph; + + + if ( (ph = XGetWMHints(dpy, Userwin_XClient(uwinp))) != (XWMHints *) NULL ) + { + if (ph->flags & InputHint) + { + if (ph->input == True) + Userwin_Enable_Input( uwinp ); + else + Userwin_Disable_Input( uwinp ); + } + + if (ph->flags & StateHint) + { + Interf_Client_Set_State(uwinp, ph->initial_state); + } + + if (ph->flags & IconPixmapHint) + { + if (! Profile_Supplies_Pixmap( uwinp ) ) + { + uwinp->iconpix = ph->icon_pixmap; + Interf_Client_Set_Icon_Size( uwinp, + Property_Pixmap_Size( ph->icon_pixmap ) ); + } + } + + if (ph->flags & IconWindowHint) + { + if(Userwin_XClient_Icon(uwinp) == (Window) NULL) + { + Assoc_Xid_Put((XID)Userwin_XClient(uwinp), + (XID) ph->icon_window); + } + else + { + Assoc_Xid_Remove((XID)Userwin_XClient_Icon(uwinp)); + Assoc_Xid_Put((XID)Userwin_XClient(uwinp), + (XID) ph->icon_window); + } + Userwin_XClient_Icon(uwinp) = ph->icon_window; + } + + if (ph->flags & IconPositionHint) + { + TWPoint pt;; + + pt.x = ph->icon_x; + pt.y = ph->icon_y; + Interf_Client_Set_Icon_Position( uwinp, pt ); + } + + if (ph->flags & IconMaskHint) + { +/* uwinp->iconmask = ph->icon_mask; */ + } + + if (ph->flags & WindowGroupHint) + { + Userwin *group; + group = (Userwin *)Assoc_Get( ph->window_group ); + Interf_Client_Set_Group( uwinp, group ); + } + + XFree( (char *) ph ); + } +} + +/* ------------------------------------------------------------ */ + +#define WM_STATE "XA_WM_STATE" +#define WM_STATE_FORMAT 32 +#define WM_STATE_LEN (long) 2 /* window state length */ + +typedef struct + { + int state; + Window icon; + } Xwmstate; + +static Atom wm_state = (Atom) 0; + +/* ------------------------------------------------------------ */ + +int +Property_Get_Wm_State(uwinp) + Userwin *uwinp; +{ + Status status; + Atom actual_type; + int actual_format; + unsigned long nitems; + unsigned long bytes_after; + Xwmstate *wms; + + if (wm_state == (Atom) 0) + wm_state = XInternAtom(dpy, WM_STATE, False); + + status = XGetWindowProperty(dpy, Userwin_XClient(uwinp), + wm_state, + (long) 0, (long) WM_STATE_LEN, + False, + wm_state, + &actual_type, &actual_format, + &nitems, &bytes_after, + (unsigned char **) &wms); + + if (status == Success && actual_type != None) + { + Userwin_Wm_State(uwinp) = wms->state; + XFree((char *) wms); + } + else + Userwin_Wm_State(uwinp) = NeverState; +} + +/* ------------------------------------------------------------ */ + +void +Property_Set_Wm_State(uwinp, state) + Userwin *uwinp; + int state; +{ + Xwmstate wms; + + wms.state = state; + wms.icon = Userwin_XIcon(uwinp); + + if (wm_state == (Atom) 0) + wm_state = XInternAtom(dpy, WM_STATE, False); + + XChangeProperty(dpy, Userwin_XClient(uwinp), + wm_state, wm_state, WM_STATE_FORMAT, + PropModeReplace, + (unsigned char *) &wms, WM_STATE_LEN); + + Userwin_Wm_State(uwinp) = state; +} + + diff --git a/redirect.c b/redirect.c new file mode 100644 index 0000000..b40dd26 --- /dev/null +++ b/redirect.c @@ -0,0 +1,392 @@ + +#ifndef lint +static char sccs_id[] = "%W% %H%"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include +#include "uwinD.h" +#include "uwinXD.h" + +#include +#include +#include "assoc.h" +#include "xio.h" +#include "tilecrsr.h" +#include "interf.h" + + +Userwin *Redirect_Get_Client_Uwinp( w ) + Window w; +{ + Userwin *uwinp; + + uwinp = (Userwin *) Assoc_Get( w ); + return ((uwinp != (Userwin *)NULL) && (w == Userwin_XClient(uwinp)))? + uwinp : (Userwin *)NULL; +} + + +/* ------------------------------------------------------------ */ + +/* FIND out if a DestroyNotify or ReparentNotify is in the queue. + * An UnmapNotify is a result of such Destroy or Reparent events. + */ +/*ARGSUSED*/ +Bool IsDestroyResult(display, pev, args) + Display *display; + XEvent *pev; + char *args; +{ + Window client; + + if (pev->type == DestroyNotify || + pev->type == ReparentNotify || + pev->type == MapNotify) + { + client = *( (unsigned int *) args ); + return (Bool) ( client == ((XDestroyWindowEvent *) pev)->window ); + } + else + { + return False; + } +} + +/* ------------------------------------------------------------ */ + +static void Redirect_Configure( w, cev ) + Window w; + XConfigureRequestEvent cev; +{ + XWindowChanges xwc; + + xwc.x = cev.x; + xwc.y = cev.y; + xwc.width = cev.width; + xwc.height = cev.height; + xwc.border_width = cev.border_width; + xwc.sibling = cev.above; + xwc.stack_mode = cev.detail; + + XConfigureWindow(dpy, w, (unsigned int) cev.value_mask, &xwc); +} + +/* ------------------------------------------------------------ */ + +static void Redirect_Client_Configure( uwinp, cev ) + Userwin *uwinp; + XConfigureRequestEvent cev; +{ + TWPoint pt; + Size size; + + pt.x = cev.x; + pt.y = cev.y; + size.width = cev.width; + size.height = cev.height; + + Interf_Client_Configure( uwinp, cev.value_mask, + pt, size, cev.detail ); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static void Redirect_Handle_Create_Notify( ev ) + XEvent *ev; +{ + /* Do nothing -- create stuff gets handled on first request */ +} + +static void Redirect_Create_New_Window( w ) + Window w; +{ + XWindowAttributes attrs; + + (void)XGetWindowAttributes(dpy, w, &attrs); + Wsys_Create(w, attrs); +} + +/* ------------------------------------------------------------ */ + +static void Redirect_Handle_Map_Request( ev ) + XEvent *ev; +{ + Window w; + Userwin *uwinp; + + w = ev->xmaprequest.window; + uwinp = (Userwin *) Assoc_Get(w); + + if (uwinp == (Userwin *)NULL) + { + Redirect_Create_New_Window( w ); + uwinp = (Userwin *) Assoc_Get(w); + } + + if (Userwin_XClient(uwinp) == w) + { + if (Userwin_XTransient_For(uwinp) == None ) + Wsys_Map(uwinp); + else + XMapRaised(dpy, w); /* always put new transient on top */ + } +} + +/* ------------------------------------------------------------ */ + +static void Redirect_Handle_Unmap_Notify( ev ) + XEvent *ev; +{ + Window w; + Userwin *uwinp; + + w = ev->xunmap.window; + + if ( (uwinp = Redirect_Get_Client_Uwinp( w )) != (Userwin *)NULL ) + { + if (ev->xunmap.from_configure == False && + Userwin_Is_Open(uwinp) ) + { + /* ignore UnmapNotifys resulting */ + /* from Destroy or Reparent */ + XEvent next_ev; + + XSync(dpy, 0); + if ( XCheckIfEvent(dpy, &next_ev, IsDestroyResult, + (char *) &w) ) + { + XPutBackEvent(dpy, &next_ev); + } + else + Interf_Client_Close(uwinp); + } + } + else + { + } +} + +/* ------------------------------------------------------------ */ + +static void Redirect_Handle_Destroy_Notify( ev ) + XEvent *ev; +{ + Userwin *uwinp; + + if ((uwinp = Redirect_Get_Client_Uwinp( ev->xdestroywindow.window )) + != (Userwin *)NULL ) + { + Interf_Client_Destroy(uwinp); + } + else + { + } +} + +/* ------------------------------------------------------------ */ + +static void Redirect_Handle_Reparent_Notify( ev ) + XEvent *ev; +{ + Window w; + Userwin *uwinp; + + w = ev->xreparent.window; + + if ((uwinp = Redirect_Get_Client_Uwinp( w )) != (Userwin *)NULL) + if (ev->xreparent.parent == root) /* if reparented to root */ + { + int x, y; + unsigned int width, height; + + Drawwin_Client_Position(uwinp, &x, &y, &width, &height); + + XReparentWindow(dpy, w, Userwin_XParentWin(uwinp), x, y); + } + else + { /* not to root and is Tiled */ + if (ev->xreparent.parent != Userwin_XParentWin(uwinp)) + Interf_Client_Destroy(uwinp); + } +} + +/* ------------------------------------------------------------ */ + +static void Redirect_Handle_Config_Request( ev ) + XEvent *ev; +{ + Window w; + Userwin *uwinp, *above_uwinp; + XConfigureRequestEvent cev; + + + cev = ev->xconfigurerequest; + w = cev.window; + + if ((uwinp = Redirect_Get_Client_Uwinp( w )) != (Userwin *)NULL) + if ( Userwin_XTransient_For(uwinp) == None ) + { + /* note that stacking requests are ignored for tiled windows */ + Redirect_Client_Configure( uwinp, cev ); + } + else /* handle a transient window -- fiddle stacking requests */ + { + if (cev.value_mask & CWStackMode) + { + if (cev.above == None) + { + /* wants to be on the bottom -- so */ + /* put it above the transient plane. */ + cev.above = transient_plane; + } + else + { + /* only move relative to windows that we either don't */ + /* know, or that we know to be transient --- otherwise, */ + /* just put it above the transient plane */ + + above_uwinp = (Userwin *)Assoc_Get(cev.above); + if ((above_uwinp != (Userwin *)NULL) && + (Userwin_XTransient_For(above_uwinp) == None)) + { + cev.above = transient_plane; + } + } + cev.detail = Above; + } + Redirect_Configure(w, cev); + } + else /* it's never been mapped --- go ahead and configure it */ + Redirect_Configure(w, cev); + +} + +/* ------------------------------------------------------------ */ + +static void Redirect_Handle_Property_Notify( ev ) + XEvent *ev; +{ + Userwin *uwinp; + + if ((uwinp = Redirect_Get_Client_Uwinp( ev->xproperty.window )) + != (Userwin *)NULL) + { + switch ( (int) ev->xproperty.atom ) + { + case XA_WM_CLASS: + Property_Get_Window_Class(uwinp); + return; + + case XA_WM_TRANSIENT_FOR: + /* do naught */ + return; + + case XA_WM_COMMAND: + Property_Get_Command_Line(uwinp); + return; + + case XA_WM_CLIENT_MACHINE: + Property_Get_Hostname(uwinp); + return; + + case XA_WM_NAME: + Property_Get_Title(uwinp); + return; + + case XA_WM_ICON_NAME: + Property_Get_Icon_Title(uwinp); + return; + + case XA_WM_NORMAL_HINTS: + Property_Get_Normal_Size_Hints(uwinp); + Property_Get_Geometry_Hints(uwinp); + return; + + case XA_WM_HINTS: + Property_Get_Wm_Hints(uwinp); + return; + + default: + return; + } + } +} + +/* ------------------------------------------------------------ */ + +/* Handle redirected window/output requests from X clients + */ +int Redirect_Handle_Event(ev) + XEvent *ev; +{ + switch (ev->type) + { + case CreateNotify: + Redirect_Handle_Create_Notify( ev ); + break; + + case MapRequest: + Redirect_Handle_Map_Request( ev ); + break; + + case UnmapNotify: + Redirect_Handle_Unmap_Notify( ev ); + break; + + case DestroyNotify: + Redirect_Handle_Destroy_Notify( ev ); + break; + + case ReparentNotify: + Redirect_Handle_Reparent_Notify( ev ); + break; + + case ConfigureRequest: + Redirect_Handle_Config_Request( ev ); + break; + + case ConfigureNotify: + break; + + case PropertyNotify: + Redirect_Handle_Property_Notify( ev ); + break; + + case MapNotify: + break; + + default: + break; + } + + return(0); +} + + +int dump_frame() +{ +} diff --git a/region.c b/region.c new file mode 100644 index 0000000..fab4668 --- /dev/null +++ b/region.c @@ -0,0 +1,708 @@ +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + + +#include "basetype.h" + +#ifndef TILEMENU +#include "tilemenuP.h" +#endif + +#ifndef REGION +#include "regionP.h" +#endif + +#include "userglobD.h" + +#include "bodyreg.h" +#include "tilecrsr.h" + +#include "uwinD.h" + +/* ------------------------------------------------------------ */ + +TWRegion back_region; + +TWRegion header_region; +TWRegion body_region; + +TWRegion left_region; +TWRegion right_region; +TWRegion top_region; +TWRegion bottom_region; + +TWRegion top_left_region; +TWRegion top_right_region; +TWRegion bottom_left_region; +TWRegion bottom_right_region; + +TWRegion zoom_gadget_region; +TWRegion move_gadget_region; + +TWRegion rtl_region; +TWRegion icon_region; + +/* ------------------------------------------------------------ */ + +void Region_Init() +{ + back_region.region_enum = background; + + header_region.region_enum = header; + + body_region.region_enum = body; + + + left_region.region_enum = edge; + left_region.region_info.side = Left; + + right_region.region_enum = edge; + right_region.region_info.side = Right; + + top_region.region_enum = edge; + top_region.region_info.side = Top; + + bottom_region.region_enum = edge; + bottom_region.region_info.side = Bottom; + + top_left_region.region_enum = corner; + top_left_region.region_info.side = Top_Left; + + top_right_region.region_enum = corner; + top_right_region.region_info.side = Top_Right; + + bottom_left_region.region_enum = corner; + bottom_left_region.region_info.side = Bottom_Left; + + bottom_right_region.region_enum = corner; + bottom_right_region.region_info.side = Bottom_Right; + + zoom_gadget_region.region_enum = zoom_gadget; + move_gadget_region.region_enum = move_gadget; + + + icon_region.region_enum = icon; + + rtl_region.region_enum = rtl; +} + +/* ------------------------------------------------------------ */ + +TWRegion Region_Make_Edge( side ) + Side side; +{ + TWRegion region; + + region.region_enum = edge; + region.region_info.side = side; + return region; +} + +/* ------------------------------------------------------------ */ + +TWRegion Region_Make_Corner( side ) + Side side; +{ + TWRegion region; + + region.region_enum = corner; + region.region_info.side = side; + return region; +} + +/* ------------------------------------------------------------ */ + +Size Region_Minimum_Size() +{ + Size siz; + siz.width = (5 + 2*BORDER_SIZE_VAL + 2*GADGET_WIDTH_VAL) & (~1); + siz.height = (5 + 2*BORDER_SIZE_VAL + 20) & (~1); + return siz; +} + +/* ------------------------------------------------------------ */ + + /* Given a point on the desktop, returns that point translated */ + /* to the body of the icon */ + +static TWPoint Region_Icon_Translate( uwinp, pt ) + Userwin *uwinp; + TWPoint pt; +{ + TWPoint result; + + result.x = pt.x - uwinp->icon_body_rect.left_x; + result.y = pt.y - uwinp->icon_body_rect.top_y; + + return result; +} + +/* ------------------------------------------------------------ */ + + /* Given a point on the desktop, returns that point translated */ + /* to the body of the window */ + +TWPoint Region_Translate( uwinp, pt ) + Userwin *uwinp; + TWPoint pt; +{ + TWPoint result; + + result.x = pt.x - Userwin_Get_Rectangle(uwinp).left_x; + result.y = pt.y - Userwin_Get_Rectangle(uwinp).top_y; + + if ( Userwin_Get_Window_Option( uwinp, USE_BORDERS ) ) + { + result.x -= BORDER_SIZE_VAL; + result.y -= BORDER_SIZE_VAL; + } + + if ( Userwin_Get_Window_Option( uwinp, USE_HEADER ) ) + { + result.y -= uwinp->header_height; + result.y -= INNER_BORDER_LINEWIDTH_VAL; + } + + return result; +} + +/* ------------------------------------------------------------ */ + +TWRectangle Region_Body_Rectangle( uwinp ) + Userwin *uwinp; +{ + TWRectangle rect; + + rect = Userwin_Get_Rectangle(uwinp); + if ( Userwin_Get_Window_Option( uwinp, USE_BORDERS ) ) + { + rect.left_x += BORDER_SIZE_VAL; + rect.top_y += BORDER_SIZE_VAL; + rect.right_x -= BORDER_SIZE_VAL; + rect.bottom_y -= BORDER_SIZE_VAL; + } + + if ( Userwin_Get_Window_Option( uwinp, USE_HEADER ) ) + { + rect.top_y += uwinp->header_height; + rect.top_y += INNER_BORDER_LINEWIDTH_VAL; + } + + return rect; +} + +/* ------------------------------------------------------------ */ + +Size Region_Body_Size( uwinp ) + Userwin *uwinp; +{ + Size siz; + TWRectangle rect; + + rect = Region_Body_Rectangle(uwinp); + COMPUTE_SIZE( rect, siz ); + return siz; +} + +/* ------------------------------------------------------------ */ + +Size Region_Icon_Body_Size( uwinp ) + Userwin *uwinp; +{ + Size siz; + TWRectangle rect; + + rect = uwinp->icon_body_rect; + COMPUTE_SIZE( rect, siz ); + return siz; +} + +/* ------------------------------------------------------------ */ + + /* Given a body rectangle, return the corresponding window rect */ + +TWRectangle Region_Adjust_Rectangle( uwinp, rect ) + Userwin *uwinp; + TWRectangle rect; +{ + TWRectangle result; + result = rect; + + if ( Userwin_Get_Window_Option( uwinp, USE_BORDERS ) ) + { + result.left_x -= BORDER_SIZE_VAL; + result.right_x += BORDER_SIZE_VAL; + result.top_y -= BORDER_SIZE_VAL; + result.bottom_y += BORDER_SIZE_VAL; + } + + if ( Userwin_Get_Window_Option( uwinp, USE_HEADER ) ) + { + result.top_y -= uwinp->header_height; + result.top_y -= INNER_BORDER_LINEWIDTH_VAL; + } + + return result; +} + +/* ------------------------------------------------------------ */ + + /* Given a body size, return the corresponding window size */ + +Size Region_Adjust_Size( uwinp, siz ) + Userwin *uwinp; + Size siz; +{ + Size result; + + if ( Userwin_Get_Window_Option( uwinp, USE_BORDERS ) ) + { + result.width = siz.width + 2 * BORDER_SIZE_VAL; + result.height = siz.height + 2 * BORDER_SIZE_VAL; + } + else + result = siz; + + if ( Userwin_Get_Window_Option( uwinp, USE_HEADER ) ) + { + result.height += uwinp->header_height; + result.height += INNER_BORDER_LINEWIDTH_VAL; + } + + return result; +} + +/* ------------------------------------------------------------ */ + + /* Given a window size, return the corresponding body size */ + +Size Region_Unadjust_Size( uwinp, siz ) + Userwin *uwinp; + Size siz; +{ + Size result; + + if ( Userwin_Get_Window_Option( uwinp, USE_BORDERS ) ) + { + result.width = siz.width - 2 * BORDER_SIZE_VAL; + result.height = siz.height - 2 * BORDER_SIZE_VAL; + } + else + result = siz; + + if ( Userwin_Get_Window_Option( uwinp, USE_HEADER ) ) + { + result.height -= uwinp->header_height; + result.height -= INNER_BORDER_LINEWIDTH_VAL; + } + + return result; +} + +/* ------------------------------------------------------------ */ + +TWRegion Region_Locate( uwinp, pt ) + Userwin *uwinp; + TWPoint pt; +{ + int win_height, win_width; + int offset_x, offset_y; + int offset; + + if ( uwinp == UWIN_NULL ) return back_region; + + if ( uwinp->current_type == rtl ) return rtl_region; + if ( uwinp->current_type == icon ) + { + icon_region.region_info.bodyregion = + Bodyreg_Locate( uwinp, Region_Icon_Translate(uwinp, pt) ); + return icon_region; + } + + win_height = Userwin_Get_Size(uwinp).height; + win_width = Userwin_Get_Size(uwinp).width; + + offset_x = pt.x - Userwin_Get_Rectangle(uwinp).left_x; + offset_y = pt.y - Userwin_Get_Rectangle(uwinp).top_y; + + if ( Userwin_Get_Window_Option( uwinp, USE_BORDERS ) ) + { + if ( offset_x < BORDER_SIZE_VAL ) + { + if ( UserGlobals_Get_Option(USE_CORNER_BORDERS) ) + { + if ( offset_y < (2 * BORDER_SIZE_VAL) ) + return top_left_region; + else if ( offset_y >= (win_height - 2 * BORDER_SIZE_VAL) ) + return bottom_left_region; + else + return left_region; + } + else + return left_region; + } + else if ( offset_x >= (win_width - BORDER_SIZE_VAL) ) + { + if ( UserGlobals_Get_Option(USE_CORNER_BORDERS) ) + { + if ( offset_y < (2 * BORDER_SIZE_VAL) ) + return top_right_region; + else if ( offset_y >= (win_height - 2 * BORDER_SIZE_VAL) ) + return bottom_right_region; + else + return right_region; + } + else + return right_region; + } + else if ( offset_y < BORDER_SIZE_VAL ) + { + if ( UserGlobals_Get_Option(USE_CORNER_BORDERS) ) + { + if ( offset_x < (2 * BORDER_SIZE_VAL) ) + return top_left_region; + else if ( offset_x >= (win_width - 2 * BORDER_SIZE_VAL) ) + return top_right_region; + else + return top_region; + } + else + return top_region; + } + else if ( offset_y >= (win_height - BORDER_SIZE_VAL) ) + { + if ( UserGlobals_Get_Option(USE_CORNER_BORDERS) ) + { + if ( offset_x < (2 * BORDER_SIZE_VAL) ) + return bottom_left_region; + else if ( offset_x >= (win_width - 2 * BORDER_SIZE_VAL) ) + return bottom_right_region; + else + return bottom_region; + } + else + return bottom_region; + } + else + offset = BORDER_SIZE_VAL + INNER_BORDER_LINEWIDTH_VAL; + } + else + offset = INNER_BORDER_LINEWIDTH_VAL; + + if ( Userwin_Get_Window_Option( uwinp, USE_HEADER ) && + ( offset_y < (offset + uwinp->header_height) ) ) + { + if ( Userwin_Get_Window_Option( uwinp, USE_GADGETS ) ) + { + if ( offset_x < (offset + GADGET_WIDTH_VAL) ) + return zoom_gadget_region; + else if ( ( Userwin_Get_Window_Option( uwinp, USE_MOVE_GADGET ) ) && + ( offset_x >= ( win_width - ( offset + GADGET_WIDTH_VAL ) ) ) ) + return move_gadget_region; + else + return header_region; + } + else + return header_region; + } + else + { + body_region.region_info.bodyregion = + Bodyreg_Locate( uwinp, Region_Translate(uwinp, pt) ); + return body_region; + } +} + +/* ------------------------------------------------------------ */ + +TWRectangle Region_Header_Rect( uwinp ) + Userwin *uwinp; +{ + TWRectangle rect; + rect = Userwin_Get_Rectangle(uwinp); + + if ( Userwin_Get_Window_Option( uwinp,USE_BORDERS ) ) + { + rect.top_y += BORDER_SIZE_VAL; + rect.left_x += BORDER_SIZE_VAL; + rect.right_x -= BORDER_SIZE_VAL; + } + + rect.bottom_y = rect.top_y; + if ( Userwin_Get_Window_Option( uwinp, USE_HEADER ) ) + { + rect.bottom_y += uwinp->header_height; + rect.bottom_y += INNER_BORDER_LINEWIDTH_VAL; + } + + + if ( Userwin_Get_Window_Option( uwinp, USE_GADGETS ) ) + { + rect.left_x += GADGET_WIDTH_VAL; + if ( Userwin_Get_Window_Option( uwinp, USE_MOVE_GADGET ) ) + rect.right_x -= GADGET_WIDTH_VAL; + } + return rect; +} + +/* ------------------------------------------------------------ */ + +TWPoint Region_Get_Header_Pos( uwinp, pos ) + Userwin *uwinp; + TWPoint pos; +{ + TWRectangle rect; + + rect = Region_Header_Rect( uwinp ); + + if ( pos.x < rect.left_x ) + pos.x = rect.left_x; + else if ( pos.x > rect.right_x ) + pos.x = rect.right_x; + + if ( pos.y < rect.top_y ) + pos.y = rect.top_y; + else if ( pos.y > rect.bottom_y ) + pos.y = rect.bottom_y; + + return pos; +} + +/* ------------------------------------------------------------ */ + +TWPoint Region_Get_Edge_Pos( uwinp, side, pos ) + Userwin *uwinp; + Side side; + TWPoint pos; +{ + switch ( side ) + { + case Left: + pos.x = Userwin_Get_Rectangle(uwinp).left_x; + break; + case Right: + pos.x = Userwin_Get_Rectangle(uwinp).right_x; + break; + case Top: + pos.y = Userwin_Get_Rectangle(uwinp).top_y; + break; + case Bottom: + pos.y = Userwin_Get_Rectangle(uwinp).bottom_y; + break; + } + return pos; +} + +/* ------------------------------------------------------------ */ + +TWPoint Region_Get_Corner_Pos( uwinp, side ) + Userwin *uwinp; + Side side; +{ + TWPoint pos; + switch ( side ) + { + case Top_Left: + pos.y = Userwin_Get_Rectangle(uwinp).top_y; + pos.x = Userwin_Get_Rectangle(uwinp).left_x; + break; + case Top_Right: + pos.y = Userwin_Get_Rectangle(uwinp).top_y; + pos.x = Userwin_Get_Rectangle(uwinp).right_x; + break; + case Bottom_Left: + pos.y = Userwin_Get_Rectangle(uwinp).bottom_y; + pos.x = Userwin_Get_Rectangle(uwinp).left_x; + break; + case Bottom_Right: + pos.y = Userwin_Get_Rectangle(uwinp).bottom_y; + pos.x = Userwin_Get_Rectangle(uwinp).right_x; + break; + } + return pos; +} + +/* ------------------------------------------------------------ */ + + /* Given a window and a point, returns the border region + of the window nearest the point */ + +TWRegion Region_Nearest_Border( uwinp, pos ) + Userwin *uwinp; + TWPoint pos; +{ + int lx, rx, ty, by; + lx = Userwin_Get_Rectangle(uwinp).left_x + 2 * BORDER_SIZE_VAL; + rx = Userwin_Get_Rectangle(uwinp).right_x - 2 * BORDER_SIZE_VAL; + ty = Userwin_Get_Rectangle(uwinp).top_y + 2 * BORDER_SIZE_VAL; + by = Userwin_Get_Rectangle(uwinp).bottom_y - 2 * BORDER_SIZE_VAL; + /* Check for corner regions */ + if ( UserGlobals_Get_Option(USE_CORNER_BORDERS) ) + { + if (pos.x <= lx ) + { + if (pos.y <= ty) return top_left_region; + else if (pos.y >= by) return bottom_left_region; + } + else if (pos.x >= rx) + { + if (pos.y <= ty) return top_right_region; + else if (pos.y >= by) return bottom_right_region; + } + } + /* Figure out which edge */ + if ( (pos.y - by)*(rx - lx) > (pos.x - lx)*(ty - by) ) + { + if ( (pos.y - by)*(lx - rx) > (pos.x - rx)*(ty - by) ) + return right_region; + else return bottom_region; + } + else + { + if ( (pos.y - by)*(lx - rx) > (pos.x - rx)*(ty - by) ) + return top_region; + else return left_region; + } +} + +/* ------------------------------------------------------------ */ + + /* Given a window, returns the center of the MOVE_GADGET, + or, if none, the ZOOM_GADGET, of that window. + If neither, the HEADER. + If PLACE_CSR_IN_BODY_NOT_GADGET, return a + point in the body just below instead. */ + +TWPoint Region_Gadget_Center( uwinp ) + Userwin *uwinp; +{ + TWPoint pt; + + if ( Userwin_Get_Window_Option( uwinp, USE_MOVE_GADGET ) ) + pt.x = Userwin_Get_Rectangle(uwinp).right_x + - BORDER_SIZE_VAL - ( GADGET_WIDTH_VAL / 2 ); + else + pt.x = Userwin_Get_Rectangle(uwinp).left_x + + BORDER_SIZE_VAL + ( GADGET_WIDTH_VAL / 2 ); + + if ( UserGlobals_Get_Option(PLACE_CSR_IN_BODY_NOT_GADGET) ) + pt.y = Userwin_Get_Rectangle(uwinp).top_y + + BORDER_SIZE_VAL + uwinp->header_height + + INNER_BORDER_LINEWIDTH_VAL + 2; + else + pt.y = Userwin_Get_Rectangle(uwinp).top_y + + BORDER_SIZE_VAL + ( uwinp->header_height / 2 ); + + return pt; +} + +/* ------------------------------------------------------------ */ + +bool Region_Nearby( pos1, pos2 ) + TWPoint pos1; + TWPoint pos2; +{ + return + ( + ( abs(pos1.x - pos2.x) < 20 ) && + ( abs(pos1.y - pos2.y) < 20 ) + ); +} + +/* ------------------------------------------------------------ */ + +bool Region_Equal( rgn1, rgn2 ) + TWRegion rgn1; + TWRegion rgn2; +{ + return + ( + (rgn1.region_enum == rgn2.region_enum) && + (rgn1.region_info.side == rgn2.region_info.side) + ); +} + +/* ------------------------------------------------------------ */ + +TileCursor Region_Get_Cursor( uwinp, regn ) + Userwin *uwinp; + TWRegion regn; +{ + switch ( regn.region_enum ) + { + case background: + return background_tilecursor; + case header: + return header_tilecursor; + case body: + return Bodyreg_Get_Cursor(uwinp,regn.region_info.bodyregion); + case edge: + switch ( regn.region_info.side ) + { + case Left: + return left_tilecursor; + case Right: + return right_tilecursor; + case Top: + return top_tilecursor; + case Bottom: + return bottom_tilecursor; + } + case corner: + switch ( regn.region_info.side ) + { + case Top_Left: + return top_left_tilecursor; + case Top_Right: + return top_right_tilecursor; + case Bottom_Left: + return bottom_left_tilecursor; + case Bottom_Right: + return bottom_right_tilecursor; + } + case zoom_gadget: + return zoom_gadget_tilecursor; + case move_gadget: + return move_gadget_tilecursor; + case icon: + case rtl: + return icon_tilecursor; + } + return background_tilecursor; +} + +TileMenu Region_Get_Menu( uwinp, regn ) + Userwin *uwinp; + TWRegion regn; +{ + switch ( regn.region_enum ) + { + case body: + case icon: + return Bodyreg_Get_Menu(uwinp,regn.region_info.bodyregion); + default: + return Bodyreg_Get_Menu(uwinp,NULL); + } + +} diff --git a/region.h b/region.h new file mode 100644 index 0000000..02cb194 --- /dev/null +++ b/region.h @@ -0,0 +1,163 @@ +/* +static char sccs_id[] = "@(#)region.h 5.6 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +#ifndef BASETYPE +#include "basetype.h" +#endif + +#ifndef REGION +#include "regionP.h" +#endif + +#ifndef TILECURSOR +#include "tilecrsrP.h" +#endif + +#ifndef TILEMENU +#include "tilemenuP.h" +#endif + +extern TWRegion back_region; + +extern TWRegion header_region; +extern TWRegion body_region; + +extern TWRegion left_region; +extern TWRegion right_region; +extern TWRegion top_region; +extern TWRegion bottom_region; + +extern TWRegion top_left_region; +extern TWRegion top_right_region; +extern TWRegion bottom_left_region; +extern TWRegion bottom_right_region; + +extern TWRegion zoom_gadget_region; +extern TWRegion move_gadget_region; + +extern TWRegion rtl_region; +extern TWRegion icon_region; + +extern void Region_Init(); + +extern Size Region_Minimum_Size(); + +extern TWPoint Region_Translate(); +/* Userwin *uwinp */ +/* TWPoint pt */ + /* Given a point on the desktop, returns that point translated */ + /* to the body of the window */ + +extern Size Region_Body_Size(); +/* Userwin *uwinp */ + +extern Size Region_Icon_Body_Size(); +/* Userwin *uwinp */ + +extern TWRectangle Region_Body_Rectangle(); +/* Userwin *uwinp */ + +extern TWRectangle Region_Adjust_Rectangle(); +/* Userwin *uwinp */ +/* TWRectangle rect */ + /* Given a body rect, return the corresponding window rect */ + +extern Size Region_Adjust_Size(); +/* Userwin *uwinp */ +/* Size siz */ + /* Given a body size, return the corresponding window size */ + +extern Size Region_Unadjust_Size(); +/* Userwin *uwinp */ +/* Size siz */ + /* Given a window size, return the corresponding body size */ + +extern TWRegion Region_Locate(); +/* Userwin *uwinp */ +/* TWPoint pt */ +/* Returns the region of the window in which the point is located */ + +extern TWRegion Region_Make_Edge(); +/* Userwin *uwinp */ +/* Side side */ +/* Returns the region of the window with the given edge */ + +extern TWRegion Region_Make_Corner(); +/* Userwin *uwinp */ +/* Side side */ +/* Returns the region of the window with the given corner */ + +extern TWRectangle Region_Header_Rect(); +/* Userwin *uwinp */ +/* Returns rectangle of uwinp's header */ + +extern TWPoint Region_Get_Header_Pos(); +/* Userwin *uwinp */ +/* TWPoint pos */ +/* Returns pos warped to be inside header */ + +extern TWPoint Region_Gadget_Center(); +/* Userwin *uwinp */ +/* Returns center of MOVE (or ZOOM) gadget */ + +extern TWPoint Region_Get_Edge_Pos(); +/* Userwin *uwinp */ +/* Side side */ +/* TWPoint pt */ +/* Returns point with edge adjusted to far edge of side */ + +extern TWPoint Region_Get_Corner_Pos(); +/* Userwin *uwinp */ +/* Side side */ +/* Returns end point of corner */ + +extern TWRegion Region_Nearest_Border(); +/* Userwin *uwinp */ +/* TWPoint pos */ +/* Returns the region in win nearest pos */ + +extern bool Region_Nearby(); +/* TWPoint pos1 */ +/* TWPoint pos2 */ +/* Indicates if pos1 is nearby pos2 */ + +extern bool Region_Equal(); +/* Region rgn1 */ +/* Region rgn2 */ + +extern TileCursor Region_Get_Cursor(); +/* Userwin *uwinp */ +/* Region regn */ + +extern TileMenu Region_Get_Menu(); +/* Userwin *uwinp */ +/* Region regn */ + +#define Region_Is_Iconic(rgn) \ + ( ( (rgn).region_enum == icon ) || ( (rgn).region_enum == rtl ) ) + diff --git a/regionP.h b/regionP.h new file mode 100644 index 0000000..0994736 --- /dev/null +++ b/regionP.h @@ -0,0 +1,68 @@ +/* +static char sccs_id[] = "@(#)regionP.h 5.5 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +#ifndef REGION +#define REGION +#endif + +#ifndef BASETYPE +#include "basetype.h" +#endif + +#ifndef BODYREGION +#include "bodyregP.h" +#endif + +typedef enum +{ + background, + body, header, + zoom_gadget, move_gadget, + edge, corner, + icon, + rtl +} Region_Enum; + +typedef union +{ + Side side; + BodyRegion bodyregion; +} Region_Info; + +typedef struct +{ + Region_Enum region_enum; + Region_Info region_info; +} TWRegion; + +#define Region_Get_Type(regn) (regn.region_enum) + +#define Region_Get_Border(regn) (regn.region_info.side) + +#define Region_Get_BodyRegion(regn) (regn.region_info.bodyregion) diff --git a/rtlmenu.c b/rtlmenu.c new file mode 100644 index 0000000..0753b27 --- /dev/null +++ b/rtlmenu.c @@ -0,0 +1,351 @@ +#ifndef lint +static char sccs_id[] = "%W% %H%"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +/* + RTL Menu Package Version 1.2 + by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1988 + + rtlmenu.c: interface level for menu package +*/ + +#include +#include + +#include "rtlmenuP.h" + +static Display *dpy; +static int scrn; + +static RTLPoint menu_pos; +static int initialized = 0; + +extern bool SetItemText(); +extern void InitMenu(); +extern void DisposeMenu(); +extern RTLMenu NewMenu(); +extern RTLMenuItem MenuItemByName(); +extern RTLMenuItem AddMenuItem(); +extern RTLMenuItem MenuItemByData(); +extern RTLMenuItem TrackMenu(); + +void +RTLMenu_Initialize (display, screen, options_mask) + Display *display; + int screen; + RTLMenuOptionsMask options_mask; +{ + + if (initialized) return; + dpy = display; + scrn = screen; + initialized = 1; + InitMenu ("rtl", options_mask, display); +} + +RTLMenu +RTLMenu_Create() +{ + return (RTLMenu) NewMenu (dpy, scrn, FALSE); +} + +void +RTLMenu_Destroy( menu ) + RTLMenu menu; +{ + DisposeMenu (menu); +} + +generic +RTLMenu_Data( item ) + RTLMenuItem item; +{ + return ItemData(item); +} + +RTLMenu +RTLMenu_Get_Submenu( menu, str ) + RTLMenu menu; + char *str; +{ + RTLMenuItem item = MenuItemByName (menu, str); + + if (!ItemIsNull(item)) + return (RTLMenu) ItemSubmenu(item); + else + return (RTLMenu)NULLMENU; +} + +static void +RTLMenu_Client_Send( item ) + RTLMenuItem item; +{ + printf ("RTLMenu_Client_Send not yet implemented for X, string = \"%s\"\n", + (char *) item); +} + +RTLMenuItem +RTLMenu_Append_String( menu, str, strval ) + RTLMenu menu; + char *str; + generic strval; +{ + RTLMenuItem item = AddMenuItem(menu); + + if (!ItemIsNull(item)) + { + SetItemText(menu,item,str); + ItemCallback(item) = (Callback)RTLMenu_Client_Send; + ItemData(item) = strval; + } + return (RTLMenuItem)item; +} + +RTLMenuItem +RTLMenu_Append_Callback( menu, backproc ) + RTLMenu menu; + VoidFunc backproc; +{ + RTLMenuItem item = AddMenuItem(menu); + + if (!ItemIsNull(item)) + { + ItemGenerator(item) = (Callback)backproc; + } + return (RTLMenuItem)item; +} + +RTLMenuItem +RTLMenu_Append_Call( menu, str, proc, data ) + RTLMenu menu; + char *str; + VoidFunc proc; + generic data; +{ + RTLMenuItem item = AddMenuItem(menu); + + if (!ItemIsNull(item)) + { + if (SetItemText(menu, item, str) == FALSE) + return NULLITEM; + ItemCallback(item) = proc; + ItemData(item) = data; + } + return (RTLMenuItem)item; +} + +RTLMenuItem +RTLMenu_Append_Checkback( menu, str, checkproc, proc, data ) + RTLMenu menu; + char *str; /* Menu string */ + BoolFunc checkproc; /* Boolean function called when menu entry + is about to be displayed. If true, then + the item appears checked; else no check */ + VoidFunc proc; /* function to be called when the item selected */ + generic data; /* data associated with this item */ +{ + RTLMenuItem item = AddMenuItem(menu); + + if (!ItemIsNull(item)) + { + if (SetItemText(menu, item, str) == FALSE) + return(NULLITEM); + ItemCallback(item) = proc; + ItemData(item) = data; + ItemCheckproc(item) = checkproc; + } + return (RTLMenuItem)item; +} + +RTLMenuItem +RTLMenu_Append_Submenu( menu, str, submenu ) + RTLMenu menu; + char *str; + RTLMenu submenu; +{ + RTLMenuItem item = AddMenuItem(menu); + + if (!ItemIsNull(item)) + { + if (SetItemText(menu, item, str) == FALSE) + return(NULLITEM); + SetItemSubmenu(item, submenu); + } + return (RTLMenuItem)item; +} + +void +RTLMenu_Replace_Data_By_String( menu, data, str ) + RTLMenu menu; + generic data; + char *str; +{ + RTLMenuItem item = MenuItemByName(menu, str); + + if (!ItemIsNull(item)) + ItemData(item) = data; +} + +void +RTLMenu_Activate_Entry( menu, item ) + RTLMenu menu; + RTLMenuItem item; +{ + (void)SetItemDisable(menu, item, FALSE); +} + +void +RTLMenu_Inactivate_Entry( menu, item ) + RTLMenu menu; + RTLMenuItem item; +{ + (void)SetItemDisable(menu, item, TRUE); +} + +bool +RTLMenu_Has_Data( menu, val ) + RTLMenu menu; + generic val; +{ + RTLMenuItem item = MenuItemByData(menu, val); + + return (!ItemIsNull(item)); +} + +void +RTLMenu_Delete_Entries( menu ) + RTLMenu menu; +{ + while (DisposeItem(menu, MenuItems(menu))); +} + +void +RTLMenu_Delete_String( menu, str ) + RTLMenu menu; + char *str; +{ + RTLMenuItem item = MenuItemByName(menu, str); + + if (!ItemIsNull(item)) + (void) DisposeItem (menu, item); +} + +void +RTLMenu_Delete_Data( menu, val ) + RTLMenu menu; + generic val; +{ + RTLMenuItem item = MenuItemByData(menu, val); + + if (!ItemIsNull(item)) + (void) DisposeItem(menu, item); + +} + +void +RTLMenu_Enter( menu, butnum, buttime, base_window, pos ) + RTLMenu menu; + unsigned int butnum; + Time buttime; + Window base_window; + RTLPoint pos; +{ + RTLMenuItem selected; + + menu_pos = pos; + if (TestOptionFlag(menu, savebits)) + XGrabServer(dpy); + selected = TrackMenu (menu, menu_pos.x, menu_pos.y, + (int)butnum, base_window, buttime); + if (TestOptionFlag(menu, savebits)) + XUngrabServer(dpy); + if (!ItemIsNull(selected)) + (ItemCallback(selected)) (menu, selected); +} + +RTLPoint +RTLMenu_Entry_Pos() +{ + /* menu_pos is a global static that gets set by the call to */ + /* XQueryPointer that is used by the TrackMenu call. */ + + return menu_pos; +} + +void +RTLMenu_Generate_Items(menu, proc) + /* apply VoidFunc proc to each item in the menu, with */ + /* arguments menu and menuItem */ + RTLMenu menu; + VoidFunc proc; +{ + RTLMenuItem item; + + for (item = MenuItems(menu); + !ItemIsNull(item); item = ItemNext(item)) + { + (proc)(menu, item); + } + return; +} + +RTLMenuItem +RTLMenu_Append_Item(menu) + RTLMenu menu; +{ + return (RTLMenuItem)AddMenuItem(menu); +} + +void +RTLMenu_Set_String(menu, item, menu_str) + RTLMenu menu; + RTLMenuItem item; + char *menu_str; +{ + if (!ItemIsNull(item)) + (void) SetItemText(menu, item, menu_str); +} + +void +RTLMenu_Set_Generator(item, generator) + RTLMenuItem item; + VoidFunc generator; +{ + if (!ItemIsNull(item)) + ItemGenerator(item) = generator; +} + +void +RTLMenu_Set_Data(item, data) + RTLMenuItem item; + generic data; +{ + if (!ItemIsNull(item)) + ItemData(item) = data; +} + + diff --git a/rtlmenu.h b/rtlmenu.h new file mode 100644 index 0000000..f4d7809 --- /dev/null +++ b/rtlmenu.h @@ -0,0 +1,67 @@ +/* +#ifndef lint +static char sccs_id[] = "@(#)rtlmenu.h 5.5 9/1/88 Siemens Corporate Research and Support, Inc."; +#endif +*/ + +/* + RTL Menu Package Version 1.2 + by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1988 + + rtlmenu.h: external definitions for rtlmenu user +*/ + +/* + +Copyright 1988 by + Siemens Corporate Research and Support, Inc., Princeton, New Jersey + +Permission to use, copy, modify, and distribute this software +and its documentation for any purpose and without fee is +hereby granted, provided that the above copyright notice +appear in all copies and that both that copyright notice and +this permission notice appear in supporting documentation, and +that the name of Siemens not be used in advertising or +publicity pertaining to distribution of the software without +specific, written prior permission. Siemens makes no +representations about the suitability of this software for any +purpose. It is provided "as is" without express or implied +warranty. + +*/ + +extern void RTLMenu_Initialize(/* Display *, int, RTLMenuOptionsMask */ ); +extern void RTLMenu_Destroy(/* */); +extern void RTLMenu_Replace_Data_By_String(/* RTLMenu, generic, char * */); +extern void RTLMenu_Activate_Entry(/* RTLMenu, RTLMenuItem */); +extern void RTLMenu_Inactivate_Entry(/* RTLMenu, RTLMenuItem */); +extern void RTLMenu_Delete_Entries(/* RTLMenu */); +extern void RTLMenu_Delete_String(/* RTLMenu, char * */); +extern void RTLMenu_Delete_Data(/* RTLMenu, generic */); +extern void RTLMenu_Enter(/* RTLMenu, int, Time, Window, RTLPoint */); +extern void RTLMenu_Generate_Items(/* RTLMenu, VoidFunc */); +extern void RTLMenu_Set_String(/* RTLMenu, RTLMenuItem, char * */); +extern void RTLMenu_Set_Generator(/* RTLMenuItem, VoidFunc */); +extern void RTLMenu_Set_Callback(/* RTLMenuItem, VoidFunc */); +extern void RTLMenu_Set_Submenu(/* RTLMenuItem, VoidFunc, RTLMenu */); +extern void RTLMenu_Set_Data(/* RTLMenuItem, generic */); +extern bool RTLMenu_Has_Data(/* RTLMenu, generic */); +extern RTLMenu RTLMenu_Create(/* */); +extern RTLMenu RTLMenu_Get_Submenu(/* RTLMenu, char * */); +extern generic RTLMenu_Data(/* RTLMenu, RTLMenuItem */); +extern RTLPoint RTLMenu_Entry_Pos(/* */); +extern RTLMenuItem RTLMenu_Append_Item(/* RTLMenu */); + +/* Old append calls --- for compatibility (and convenience) */ + +extern RTLMenuItem RTLMenu_Append_String(/* RTLMenu, char *, generic */); +extern RTLMenuItem RTLMenu_Append_Call(/* RTLMenu, char *, VoidFunc, + generic */); +extern RTLMenuItem RTLMenu_Append_Checkback(/* RTLMenu, char *, BoolFunc, + VoidFunc, generic */); +extern RTLMenuItem RTLMenu_Append_Submenu(/* RTLMenu, char *, RTLMenu */); +extern RTLMenuItem RTLMenu_Append_Callback(/* RTLMenu, VoidFunc */); + + + + diff --git a/rtlmenuD.h b/rtlmenuD.h new file mode 100644 index 0000000..070870d --- /dev/null +++ b/rtlmenuD.h @@ -0,0 +1,158 @@ +/* +#ifndef lint +static char sccs_id[] = "@(#)rtlmenuD.h 5.6 9/1/88 Siemens Corporate Research and Support, Inc."; +#endif +*/ + +/* + RTL Menu Package Version 1.2 + by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1988 + + rtlmenuD.h: macro definitions for RTLMenus package +*/ +/* + +Copyright 1988 by + Siemens Corporate Research and Support, Inc., Princeton, New Jersey + +Permission to use, copy, modify, and distribute this software +and its documentation for any purpose and without fee is +hereby granted, provided that the above copyright notice +appear in all copies and that both that copyright notice and +this permission notice appear in supporting documentation, and +that the name of Siemens not be used in advertising or +publicity pertaining to distribution of the software without +specific, written prior permission. Siemens makes no +representations about the suitability of this software for any +purpose. It is provided "as is" without express or implied +warranty. + +*/ + +/* Menu data structure access macros */ + +#define TheMenu(menu) (*(Menu *)menu) +#define MenuWidth(menu) ((Menu *)menu)->menuWidth +#define MenuHeight(menu) ((Menu *)menu)->menuHeight +#define MenuOldWidth(menu) ((Menu *)menu)->menuOldWidth +#define MenuOldHeight(menu) ((Menu *)menu)->menuOldHeight +#define MenuItemWidth(menu) ((Menu *)menu)->menuItemWidth +#define MenuItemHeight(menu) ((Menu *)menu)->menuItemHeight +#define MenuFlags(menu) ((Menu *)menu)->menuFlags +#define MenuMaxTextWidth(menu) ((Menu *)menu)->menuMaxTextWidth +#define MenuBorderWidth(menu) ((Menu *)menu)->menuBorderWidth +#define MenuOldBorderWidth(menu) ((Menu *)menu)->menuOldBorderWidth +#define MenuItemPad(menu) ((Menu *)menu)->menuItemPad +#define MenuDisplay(menu) ((Menu *)menu)->display +#define MenuScreen(menu) ((Menu *)menu)->screen +#define MenuWindow(menu) ((Menu *)menu)->menuWindow +#define MenuCursor(menu) ((Menu *)menu)->menuCursor +#define MenuSavedPixmap(menu) ((Menu *)menu)->savedPixmap +#define MenuSavedImage(menu) ((Menu *)->savedImage +#define MenuSavedImageX(menu) ((Menu *)menu)->menuSavedImageX +#define MenuSavedImageY(menu) ((Menu *)menu)->menuSavedImageY +#define MenuItems(menu) ((RTLMenuItem)((Menu *)menu)->menuItems) +#define MenuItemsPtr(menu) ((RTLMenuItem *)&((Menu *)menu)->menuItems) +#define MenuFontInfo(menu) ((Menu *)menu)->menuFontInfo +#define MenuNormalGC(menu) ((Menu *)menu)->normalGC +#define MenuInvertGC(menu) ((Menu *)menu)->invertGC +#define MenuHighlightedGC(menu) ((Menu *)menu)->highlightedGC +#define MenuGreyGC(menu) ((Menu *)menu)->greyGC +#define MenuGreyPixmap(menu) ((Menu *)menu)->greyPixmap +#define MenuCheckmarkPixmap(menu) ((Menu *)menu)->checkmarkPixmap +#define MenuArrowPixmap(menu) ((Menu *)menu)->arrowPixmap +#define MenuInitialItemText(menu) ((Menu *)menu)->menuInitialItemText +#define MenuItemHighlighted(menu) ((RTLMenuItem)((Menu *)menu)->highlightedItem) +#define ResetMenuItemHighlighted(menu) (((Menu *)menu)->highlightedItem = (MenuItem *)NULL) +#define MenuNested(menu) ((Menu *)menu)->menuNested +#define MenuX(menu) ((Menu *)menu)->menuX +#define MenuY(menu) ((Menu *)menu)->menuY +#define MenuParent(menu) ((RTLMenu)((Menu *)menu)->parentMenu) +#define SetMenuParent(menu, parent) (((Menu *)menu)->parentMenu = (Menu *)parent) +#define MenuDelta(menu) ((Menu *)menu)->delta +#define MenuOptions(menu) ((Menu *)menu)->menuOptions +#define NULLMENU ((RTLMenu) NULL) + +/* Menu predicates */ +#define MenuIsNull(menu) (menu == NULLMENU) +#define MenuIsDisplayed(menu) (MenuFlags(menu) & menuMapped) +#define MenuHasInitialItem(menu) (MenuInitialItemText(menu) != (char *) NULL) + +/* Menu modifiers */ +#define SetHighlightItem(menu, item) ((Menu *)menu)->highlightedItem = (MenuItem *) item +#define ResetHighlightItem(menu) ((Menu *)menu)->highlightedItem = (MenuItem *) NULL +#define SetMenuFlag(menu, flag) MenuFlags(menu) |= flag +#define ResetMenuFlag(menu,flag) MenuFlags(menu) &= ~flag +#define TestMenuFlag(menu,flag) (MenuFlags(menu) & flag) +#define TestOptionFlag(menu,option) (MenuOptions(menu) & option) + +/* Item data structure access macros */ + +#define TheItem(item) (*(MenuItem *)item) +#define ItemFlags(item) ((MenuItem *)item)->itemFlags +#define ItemText(item) ((MenuItem *)item)->itemText +#define ItemTextLength(item) ((MenuItem *)item)->itemTextLength +#define ItemTextWidth(item) ((MenuItem *)item)->itemTextWidth +#define ItemNext(item) ((RTLMenuItem)((MenuItem *)item)->nextItem) +#define ItemNextPtr(item) ((RTLMenuItem *)&((MenuItem *)item)->nextItem) +#define ItemSubmenu(item) ((RTLMenu)((MenuItem *)item)->itemSubmenu) +#define SetItemSubmenu(item, submenu) (((MenuItem *)item)->itemSubmenu = (Menu *) submenu) +#define ItemTag(item) ((MenuItem *)item)->itemTag +#define ItemGenerator(item) ((MenuItem *)item)->generator +#define ItemCheckproc(item) ((MenuItem *)item)->checkproc +#define ItemCallback(item) ((MenuItem *)item)->itemCallback +#define ItemData(item) ((MenuItem *)item)->itemData +#define ItemWindow(item) ((MenuItem *)item)->itemWindow +#define ItemMenu(item) ((RTLMenu)((MenuItem *)item)->itemMenu) +#define SetItemMenu(item, menu) (((MenuItem *)item)->itemMenu = (Menu *)menu) +#define NULLITEM ((RTLMenuItem) NULL) +#define ItemGetArrowPosition(item) \ + (((MenuItem *)item)->itemMenu->menuWidth - arrow_width) + +/* Item predicates */ +#define ItemIsNull(item) ((item) == NULLITEM) +#define ItemIsInitialItem(menu, item) \ + (MenuInitialItemText(menu) && \ + (streql(MenuInitialItemText(menu), ItemText(item)))) +#define ItemIsLeaf(item) ((ItemSubmenu(item) == NULLMENU)? TRUE : FALSE) +#define ItemIsDisabled(item) (ItemFlags(item) & itemDisabled) + +/* Item modifiers */ + +#define CheckItem(menu,item) SetItemCheck(menu,item,1) +#define DisableItem(menu,item) SetItemDisable(menu,item,1) +#define EnableItem(menu,item) SetItemDisable(menu,item,0) +#define UncheckItem(menu,item) SetItemCheck(menu,item,0) +#define SetItemFlag(item, flag) ItemFlags(item) |= flag +#define ResetItemFlag(item,flag) ItemFlags(item) &= ~flag +#define TestItemFlag(item,flag) (ItemFlags(item) & flag) +#define MoveItemFlag(item,flag1,flag2) \ + if (TestItemFlag(item,flag1))\ + SetItemFlag(item,flag2);\ + else\ + ResetItemFlag(item,flag2);\ + ResetItemFlag(item,flag1); + +/* Masks */ + +#define MenuEventMask \ + ((Mask)(LeaveWindowMask | EnterWindowMask | ButtonReleaseMask)) +#define NormalItemEventMask MenuEventMask +#define SubmenuItemEventMask ((Mask) (MenuEventMask | PointerMotionMask)) +#define MenuIgnoreMask ((Mask) 0) +#define MenuExposureMask ((Mask) ExposureMask) + +/* Magic numbers */ + +#define checkMarkWidth 9 +#define checkMarkHeight 8 +#define defaultCursorWidth 16 +#define defaultCursorHeight 16 +#define defaultCursorX 1 +#define defaultCursorY 1 +#define lineSeparatorHeight 9 +#define ItemBorder 1 +#define Default_Delta 20 /* # pixels pulled right to get submenu */ +#define Menu_Table_Size 8 +#define Item_Table_Size 32 + diff --git a/rtlmenuO.h b/rtlmenuO.h new file mode 100644 index 0000000..9cf8b65 --- /dev/null +++ b/rtlmenuO.h @@ -0,0 +1,48 @@ +/* +#ifndef lint +static char sccs_id[] = "@(#)rtlmenuO.h 5.4 9/1/88 Siemens Corporate Research and Support, Inc."; +#endif +*/ + +/* + RTL Menu Package Version 1.0 + by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1987 + + rtlmenuO.h: option flags for rtlmenu user +*/ + +/* + +Copyright 1987 by + Siemens Corporate Research and Support, Inc., Princeton, New Jersey + +Permission to use, copy, modify, and distribute this software +and its documentation for any purpose and without fee is +hereby granted, provided that the above copyright notice +appear in all copies and that both that copyright notice and +this permission notice appear in supporting documentation, and +that the name of Siemens not be used in advertising or +publicity pertaining to distribution of the software without +specific, written prior permission. Siemens makes no +representations about the suitability of this software for any +purpose. It is provided "as is" without express or implied +warranty. + +*/ + +#define OPTION_FLAGS + +/* flags for menu operation */ + +typedef unsigned int MenuOptionsMask; + +#define clickokay (1L<<0) /* accept click-click as equivalent to press-release */ +#define savebits (1L<<1) /* attempt to save/restore area under menu */ +#define fixedchild (1L<<2) /* pull up child in fixed position relative to parent */ +#define rightoffset (1L<<3) /* when pulling up on right edge, should child be */ + /* offset to left, allowing parent to remain visible */ +#define bigoffset (1L<<4) /* valid only when rightoffset=1. if bigoffset=1, */ + /* offset child far enough to see most of parent; */ + /* else, just far enough to get back to parent. */ + +#define RTLMenu_Option_Set(mask, option) (mask |= option) diff --git a/rtlmenuP.h b/rtlmenuP.h new file mode 100644 index 0000000..9e031a6 --- /dev/null +++ b/rtlmenuP.h @@ -0,0 +1,138 @@ +/* +#ifndef lint +static char sccs_id[] = "@(#)rtlmenuP.h 5.4 9/1/88 Siemens Corporate Research and Support, Inc."; +#endif +*/ + +/* + RTL Menu Package Version 1.2 + by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1988 + + rtlmenuP.h: definitions for rtlmenu user +*/ + +/* + +Copyright 1988 by + Siemens Corporate Research and Support, Inc., Princeton, New Jersey + +Permission to use, copy, modify, and distribute this software +and its documentation for any purpose and without fee is +hereby granted, provided that the above copyright notice +appear in all copies and that both that copyright notice and +this permission notice appear in supporting documentation, and +that the name of Siemens not be used in advertising or +publicity pertaining to distribution of the software without +specific, written prior permission. Siemens makes no +representations about the suitability of this software for any +purpose. It is provided "as is" without express or implied +warranty. + +*/ + +/* + based on: menu.h X10/6.6 11/3/86 +*/ + +/* +Copyright 1985, 1986, 1987 by the Massachusetts Institute of Technology + +Permission to use, copy, modify, and distribute this +software and its documentation for any purpose and without +fee is hereby granted, provided that the above copyright +notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting +documentation, and that the name of M.I.T. not be used in +advertising or publicity pertaining to distribution of the +software without specific, written prior permission. +M.I.T. makes no representations about the suitability of +this software for any purpose. It is provided "as is" +without express or implied warranty. + +*/ + +/* + * Menu items are constructed as follows, starting from the left side: + * + * menuItemPad + * space for check mark + * menuItemPad + * text + padding + * menuItemPad + * + * The padding for the text is that amount that this text is narrower than the + * widest text. + */ + +#include "rtlmenuSH.h" + +typedef void (*Callback) (); +typedef struct _menuItem MenuItem; +typedef struct _menu Menu; + +struct _menuItem { + int itemFlags; /* flags of item */ +#define itemDisabled 0x0001 /* item is disabled */ +#define itemChecked 0x0002 /* item has check mark */ +#define itemChanged 0x0010 /* item desires change */ + char *itemText; /* text of item */ + unsigned int itemTextWidth; /* width of text */ + unsigned int itemTextLength; /* length of text */ + struct _menuItem *nextItem; /* next item in chain */ + struct _menu *itemSubmenu; /* For pull-right menus */ + Callback generator; /* Change string and data */ + bool (*checkproc) (); /* Checkmark callback generator */ + Callback itemCallback; /* user callback for item */ + generic itemData; /* user data associated with menu */ + Window itemWindow; /* window of item */ + Menu *itemMenu; /* menu this item belongs to */ +}; + +struct _menu { + unsigned int menuWidth; /* full width of menu */ + unsigned int menuHeight; /* full height of menu */ + unsigned int menuOldWidth; + unsigned int menuOldHeight; + unsigned int menuItemWidth; /* width of a menu item */ + unsigned int menuItemHeight; /* height of a menu item */ + int menuFlags; /* flags of this menu */ + +# define menuChanged 0x0001 /* menu changed, must redraw */ +# define menuItemChanged 0x0002 /* item changed, must redraw */ +# define menuMapped 0x0004 /* menu is now mapped */ + + unsigned int menuMaxTextWidth; /* width of widest text */ + unsigned int menuBorderWidth; /* width of border */ + unsigned int menuOldBorderWidth; + int menuItemPad; /* pad amount */ + Display *display; /* display of menu */ + int screen; /* screen on which to display menu */ + Window menuWindow; /* window of menu */ + Cursor menuCursor; /* cursor used in menu */ + Pixmap savedPixmap; /* for saving image under menu */ + MenuItem *menuItems; /* head of menu item chain */ + XFontStruct *menuFontInfo; /* Font info */ + GC normalGC; /* Graphics contexts */ + GC invertGC; /* Used for inverting entries */ + GC highlightedGC; /* Highlighted text. */ + Pixmap greyPixmap; /* Need to know what to free */ + Pixmap checkmarkPixmap; /* Pixmap for drawing check mark. */ + Pixmap arrowPixmap; /* Pixmap for drawing arrow. */ + char *menuInitialItemText; /* != NULL, initial item */ + MenuItem *highlightedItem; /* highlighted menu item */ + int menuNested; /* depth you are nested */ + int menuX, menuY; /* Menu position */ + struct _menu *parentMenu; /* menu to which you are a submenu + * (NULL if you are the root) + */ + int delta; /* pull-right delta */ + RTLMenuOptionsMask menuOptions; /* option values for this menu */ + }; + + +#include +#include "rtlmenuD.h" + + + + diff --git a/rtlmenuSH.h b/rtlmenuSH.h new file mode 100644 index 0000000..85ecf10 --- /dev/null +++ b/rtlmenuSH.h @@ -0,0 +1,100 @@ +/* +#ifndef lint +static char sccs_id[] = "@(#)rtlmenuSH.h 5.5 9/1/88 Siemens Corporate Research and Support, Inc."; +#endif +*/ + +/* + RTL Menu Package Version 1.2 + by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1988 + + rtlmenuSH.h: shared declarations for RTLMenu package +*/ + +/* + +Copyright 1988 by + Siemens Corporate Research and Support, Inc., Princeton, New Jersey + +Permission to use, copy, modify, and distribute this software +and its documentation for any purpose and without fee is +hereby granted, provided that the above copyright notice +appear in all copies and that both that copyright notice and +this permission notice appear in supporting documentation, and +that the name of Siemens not be used in advertising or +publicity pertaining to distribution of the software without +specific, written prior permission. Siemens makes no +representations about the suitability of this software for any +purpose. It is provided "as is" without express or implied +warranty. + +*/ + +#include + +#ifndef STD_DEFS +#include "std_defs.h" +#endif + +#include + +/* flags for menu operation */ + +typedef unsigned int RTLMenuOptionsMask; + +#define clickokay (1L<<0) /* click-click equivalent to press-release */ +#define savebits (1L<<1) /* attempt to save/restore area under menu */ +#define fixedchild (1L<<2) /* pull up child in fixed (horizontal) */ + /* position relative to parent */ +#define rightoffset (1L<<3) /* when pulling up on right edge, should */ + /* child be offset to left, allowing parent */ + /* to remain visible */ +#define bigoffset (1L<<4) /* valid only when rightoffset=1. Offset */ + /* child far enough to see most of parent; */ + /* else, just enough to get back to parent. */ +#define forgetlast (1L<<5) /* ordinarily, last menu selection is */ + /* recalled and returned to; if this set, */ + /* don't do this. */ + +enum generic_tag {long_gen, pointer_gen}; + +typedef struct _gen +{ + enum generic_tag tag; + union + { + long l; + pointer p; + } + val; +} +generic; + +/* Generic type manipulation */ + +#define SetGenLong(g,i) (g.tag = long_gen, g.val.l = i) +#define GetGenLong(g) ((g.tag == long_gen)? g.val.l: 0) +#define CastGenLong(g,i) (SetGenLong(g,i), g) +#define GenLongP(g) (g.tag == long_gen) + +#define SetGenPointer(g,pt) (g.tag = pointer_gen, g.val.p = pt) +#define GetGenPointer(g) ((g.tag == pointer_gen)? g.val.p: (pointer)NULL) +#define CastGenPointer(g,pt) (SetGenPointer(g,pt), g) +#define GenPointerP(g) (g.tag == pointer_gen) + +#define EqualGen(a,b) \ + ((a.tag != b.tag)? FALSE : \ + ((a.tag == long_gen)? (a.val.l == b.val.l) : (a.val.p == b.val.p))) + +typedef pointer RTLMenu; +typedef pointer RTLMenuItem; +typedef struct _RTLPoint +{ + int x, y; +} +RTLPoint; + +typedef bool (*BoolFunc)(); + + + diff --git a/rtlmenuX.h b/rtlmenuX.h new file mode 100644 index 0000000..1361fd7 --- /dev/null +++ b/rtlmenuX.h @@ -0,0 +1,36 @@ +/* +#ifndef lint +static char sccs_id[] = "@(#)rtlmenuX.h 5.5 9/1/88 Siemens Corporate Research and Support, Inc."; +#endif +*/ + +/* + RTL Menu Package Version 1.2 + by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1988 + + rtlmenuX.h: exported functions and data for RTLMenus package +*/ + +/* + +Copyright 1988 by + Siemens Corporate Research and Support, Inc., Princeton, New Jersey + +Permission to use, copy, modify, and distribute this software +and its documentation for any purpose and without fee is +hereby granted, provided that the above copyright notice +appear in all copies and that both that copyright notice and +this permission notice appear in supporting documentation, and +that the name of Siemens not be used in advertising or +publicity pertaining to distribution of the software without +specific, written prior permission. Siemens makes no +representations about the suitability of this software for any +purpose. It is provided "as is" without express or implied +warranty. + +*/ + +#include "rtlmenuSH.h" +#define RTLMenu_Option_Set(mask, option) (mask |= option) +#include "rtlmenu.h" + diff --git a/screenshots/rtl-example.png b/screenshots/rtl-example.png new file mode 100644 index 0000000000000000000000000000000000000000..6e17ae13e76865be153e3a39044ca4bced2b95bc GIT binary patch literal 4839 zcmeG=YgAKbwh0O0C16ECUPjARq)31P41@#{QByzx#S1D#UQ$6OK_w`JM-q9&2f}C( zd_XvqB3cD?M5*DCDY=3Lfm2av)r2Aj4j@F$iAWHblc?3{npx}KJFDydx!EiGeCK=Y z=lAWszjHJsh;D3XWr#wdjQzh{zZHejtw5nL4p_vO~jC=_QE3dPGs zq0~qh4?>|*T~Mg8XcUTc28FWNS0>s*Mh2FIY}&Q~c@7V&=jZ29+J9su(n1w~XGlQ? z(6NE^^*Ub}WojrdjEf06h_D0@mR}(6+Mj1)u`LR<$kTs4ZCl!-2`O{yW04LorYLNm z!o>aXLG*6DO=0`?i1>5S^MT)&JnLC#XuP=nmGYK-E;hl)loYV$N?k_He89}8FXPMb zV@i(-JG2wpDa!!**$IWIZO-Wy^TPaq&0Y`8p);{ZT=O4PgHc%EW)v82BF!+Fcw7jQJJ$Y)MUcC z-Y!pP=R2TcoPcU?Ocn*W844=(Z41CpM^*wF&~^XVIb&mx@D4PRGW8$z-Q8;lt3tcq zydM~4g448USxR*i#0$d!-oV2J(A#H>Fq?cwsu8ku6wf1ky$8^(XA2O;u=Ut_SPG2C z_-Ry^ViJyjt?eqJic5P=9@Kp_LZt?3L9_NFV-0h(lU6#dgb0~;z$!ii$CI2ffj@_fH;s*VJKlpxJ(a zgv|07fRlBt5&*u;68cM>)tj86A_pBSh)F%fcpf{S;Sudj*;O#)Id`W`j+zSirTD{jK(gOvka`~N=p!%EspNV{vn5>MfnU`(qjIsk)eDpzTvVo|zRx+`O?LivY zCG)vs0AKOs)=wWq1YFE6QxT|w#9SfGVovp^pd7YExa6(8z$O6@o3Vu|ld9*2>?5gH zPOPYe)OZ2L%YchB+h5mi>dT7^jfh`O^c=wOi>)IQQa5}?jB zW|ul=zf~h9%0M$#*Svi71qAydvM+=$3Cg(TLDTBdZ3)9SyLDgQUeGz)nKB=>R@y^S zk59kyI&DqwQqiy7tK`ef*}i-N5In2sb%`9o8{8W|pV5*k{7Ia-hSL-OXF|dF#7N@s z7O^f5$B6?IZ7M5XsSbYUWpZ~Oadi- z5)bHY+)gT{nF7U_WOZQRP~pa_)S~R3)V`BfUzd)M%Z1btys*oxFyt!-WSSFH;8i}B z(<<1+NekId>rYR~3fW%gTN18}PiLQ@S+q@4$g8oOBruA)+rrHl;IrI5SdU`{Iy)z4 zPx$%J;xbb#N<4ci?Lg{)9#kRb&IMgvZ!U2)2OUhN@{^E#bGxcNk4p4eSEEB>V9KL% zJ!4G!Wfysc8xsJ9F5KCv_!IL;rLfnl;yadW*J?nSNbkH}Lf+fo+qYy~V+cAx~3F*#RAj%*Y+IK0KFh!0~Ea zJ*03sZX$X1xwF|sTO)yLkGRVg;^-lgdPAhZI=7L*%f9@=^zO2bFvqGH&+hBv3iae@ zcj+`HOCL0o*KJ=`+GV_Vyy|ZUb}2_6{=~U0v|phrNmB#|V5DmyRlhnki7+0s5{ zS~M~H;rS<^F=WSE)@^DVw&x%##g7P>x~}VIN?Z3nV`|^fBG$Nh+q9p=T7=HRf~gS= z{(B+|?$9gV%>M<0z9i zJdd5Nn@h9>sZqMNQT&$F%KKx>V>2=A@2Qse)jK9$Js6B-{)kn_j_~!}!T3wiH~Wm? z%|@rg=y!T6HbU3tvX8~6>|1>HnOWE&){Ht_*Rxu%e{hRc={~lcW5J5N_#p3xSR2}* z#5bWA?3>1We?C4U?gXqa_>p_%hU{M)>YKu?hSy1ya(VJn0k_kAv(+3wwTlRz$RRkM z*m!V1sg1JqT%oz_T1et++adCO6USPMT|;{VB58X7>24y!=I8?Xy&zSygq&;2oftGN z6QlFROztmSEMTo?yQ)z>&M+}5v}50vrB>{?xQ#U#TOJh--ic-CdbrebJ7Qa!-tN26 zKOL9vZd+s8Tk+R7**5dVj&A0FDOSWOw@59po3JP_xL#rA06o(uy+az>zdD$8=B_^s!YrVxjgnXqsnDzoNAIJYz@+0-56 z`g6#)rUWhVmZ31&9h}h9Z1m;`P&zZ;i?f2faaq@&t=2JSV>CV^>WBg*W8a7}?FkjV zQt8ogBwR)^wv{R#Nd6;()PvJ{mENcvghWB&%SlDZa1UT%wD##`c-ZJ=h zx0|}OXoKQ*L08`X=2>zVd8`42B-90@6LxTD%dU`8)wfGv{f5@M;+_#pSg9{U45BXl zC;1^We?21gGT24nBS)(pf~&#-x_E>%em8ukGesB_48(=o+f-V2Ct)>FwEIl&C7;!q zcfS?r*zPHXzAa2Q=Vjb=SYXxeC$q{3kI5iR;!;Z(^Iv z%3cpsq=-0;G}H6_;yU4%nUAhKyP)lQOow1|Nd3^1I5~=Q2OsmY)2A70eU8U~q_X5y zYud-e1HHzG`OveEuQqo5&slD?+pwNwq=L_HZD1y9lvL1kWTXZO{rjUqV3K?5o4*UnD>6FL6C7KROdW zW!^aSO<`Rmp7rG6{gudRW`tYaNq21ceray$R1m#cKs;ZFpG+EEgv5$E$LFiSPU(}@ z-NXT52fuZHE}_4X#SJXwvGD92cemvKeC<&e(?HZhDg-aF&U;MiHPloGQt>EuB(Jb@ zgRK$xpL@4IpD}OC3uxRa!Xig&M35udI3QgFvlZ}O=~Qj2Yyc7BF>bc})MPBelgcfx zejjHUh$e_(tU*mO@X}!QMSwYugPU_S*}_SiE#Bn}r$X%{11)ya;uT0m@L#uBRH7~? z3XRmCTEm^^WhX^6z{CvEL_(}FlI;XcDIxpFw@c@aQ>3y!6L)aHdtH>YulDfV3yoK@ zh(PBpmYi%YUqhFsiK@~cz2uwORZrV91x028{7q5g2^o)Nt;tQEr)iW~>h?eLRoBhz zjB9Fs^tL4g-EbHF`fJNt4n~v;`a08`_gLV`u3MX3OZ*DVpue7jCtu$|s@LS!@63S#86NZ!fzd@?wib?k9ocOdv5;_4L>QY|Ao{a3dBze?N7t$f0w}T zZTH70`;Y$lCp?_~J$2>|fKoK=(5EJywFCtVpb{EBsi08X@2$D8X;}YX+<6y$y!!v! m*XRGg%zyGlLY)oH>#Qd$a literal 0 HcmV?d00001 diff --git a/smdebug.h b/smdebug.h new file mode 100644 index 0000000..e00db04 --- /dev/null +++ b/smdebug.h @@ -0,0 +1,5 @@ +#ifdef SMDEBUG +#define SMTRANS(T) {printf("T->"); (*T)();} +#else +#define SMTRANS(T) (*T)(); +#endif diff --git a/state.c b/state.c new file mode 100644 index 0000000..a256edf --- /dev/null +++ b/state.c @@ -0,0 +1,701 @@ +#ifndef lint +static char sccs_id[] = "@(#)state.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" +#include "stateP.h" + +#ifndef TILWIN_INTERN +#include "twinI.h" +#endif + +static Tilwin *Openp, *Closedp, + *Just_Openp, *Just_Modifiedp, *Just_Closedp; + +static TimeStamp timestamp = 1; +static TimeStamp nextstamp = 1; + +static int transacting = 0; + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +bool State_Was_Just_Modified( winp ) + Tilwin *winp; +{ + return ( (winp->modify_stamp) == timestamp ); +} + +/* ------------------------------------------------------------ */ + +bool State_Was_Just_Changed( winp ) + Tilwin *winp; +{ + return ( (winp->affect_stamp) == timestamp ); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void State_Start_Operation() +{ + if (transacting == 0) + { + nextstamp++; + timestamp = nextstamp; + Just_Modifiedp = WINP_NULL; + Just_Openp = WINP_NULL; + Just_Closedp = WINP_NULL; + } +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static void State_Save( winp ) + Tilwin *winp; +{ + if ( (winp->affect_stamp) != timestamp ) + { + winp->prev_center = winp->center; + winp->prev_size = winp->size; + winp->prev_rect = winp->rect; + + winp->prev_timestamp = winp->timestamp; + winp->affect_stamp = timestamp; + winp->prev_Am_I_Open = winp->Am_I_Open; + } +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static void State_Insert_Closed( winp ) + Tilwin *winp; +{ + winp->closedp = Closedp; + Closedp = winp; +} + +/* ------------------------------------------------------------ */ + +static void State_Insert_Closed_Ordered( winp ) + Tilwin *winp; +{ + Tilwin *lookwin, *prevwin; + + lookwin = Closedp; + + prevwin = WINP_NULL; + while ( (lookwin != WINP_NULL) && + ( (winp->timestamp) < (lookwin->timestamp) ) ) + { + prevwin = lookwin; + lookwin = lookwin->closedp; + } + if (prevwin == WINP_NULL) + Closedp = winp; + else + prevwin->closedp = winp; + winp->closedp = lookwin; +} + +/* ------------------------------------------------------------ */ + +static void State_Remove_Closed(winp) + Tilwin *winp; +{ + Tilwin *lookwin, *prevwin; + + lookwin = Closedp; + + prevwin = WINP_NULL; + while (lookwin != winp) + { + prevwin = lookwin; + lookwin = lookwin->closedp; + } + if (prevwin == WINP_NULL) + Closedp = lookwin->closedp; + else + prevwin->closedp = lookwin->closedp; +} + +/* ------------------------------------------------------------ */ + +static void State_Insert_Open( winp ) + Tilwin *winp; +{ + winp->openp = Openp; + Openp = winp; +} + +/* ------------------------------------------------------------ */ + +static void State_Insert_Open_Ordered( winp ) + Tilwin *winp; +{ + Tilwin *lookwin, *prevwin; + + lookwin = Openp; + + prevwin = WINP_NULL; + while ( (lookwin != WINP_NULL) && + ( (winp->timestamp) < (lookwin->timestamp) ) ) + { + prevwin = lookwin; + lookwin = lookwin->openp; + } + if (prevwin == WINP_NULL) + Openp = winp; + else + prevwin->openp = winp; + winp->openp = lookwin; +} + +/* ------------------------------------------------------------ */ + +static void State_Remove_Open( winp ) + Tilwin *winp; +{ + Tilwin *lookwin, *prevwin; + + lookwin = Openp; + + prevwin = WINP_NULL; + while (lookwin != winp) + { + prevwin = lookwin; + lookwin = lookwin->openp; + } + if (prevwin == WINP_NULL) + Openp = lookwin->openp; + else + prevwin->openp = lookwin->openp; +} + +/* ------------------------------------------------------------ */ + +static void State_Insert_Just_Closed( winp ) + Tilwin *winp; +{ + winp->modify_stamp = 0; + winp->justp = Just_Closedp; + Just_Closedp = winp; +} + +/* ------------------------------------------------------------ */ + +static void State_Remove_Just_Closed( winp ) + Tilwin *winp; +{ + Tilwin *lookwin, *prevwin; + + lookwin = Just_Closedp; + + prevwin = WINP_NULL; + while (lookwin != winp) + { + prevwin = lookwin; + lookwin = lookwin->justp; + } + if (prevwin == WINP_NULL) + Just_Closedp = lookwin->justp; + else + prevwin->justp = lookwin->justp; +} + +/* ------------------------------------------------------------ */ + +static void State_Insert_Just_Open( winp ) + Tilwin *winp; +{ + winp->justp = Just_Openp; + Just_Openp = winp; +} + +/* ------------------------------------------------------------ */ + +static void State_Remove_Just_Open( winp ) + Tilwin *winp; +{ + Tilwin *lookwin, *prevwin; + + lookwin = Just_Openp; + + prevwin = WINP_NULL; + while (lookwin != winp) + { + prevwin = lookwin; + lookwin = lookwin->justp; + } + if (prevwin == WINP_NULL) + Just_Openp = lookwin->justp; + else + prevwin->justp = lookwin->justp; +} + +/* ------------------------------------------------------------ */ + +void State_Insert_Just_Modified( winp ) + Tilwin *winp; +{ + if ( (winp->modify_stamp) != timestamp ) + { + winp->modify_stamp = timestamp; + winp->justp = Just_Modifiedp; + Just_Modifiedp = winp; + } +} + +/* ------------------------------------------------------------ */ + +static void State_Remove_Just_Modified( winp ) + Tilwin *winp; +{ + Tilwin *lookwin, *prevwin; + + winp->modify_stamp = 0; + + lookwin = Just_Modifiedp; + + prevwin = WINP_NULL; + while (lookwin != winp) + { + prevwin = lookwin; + lookwin = lookwin->justp; + } + if (prevwin == WINP_NULL) + Just_Modifiedp = lookwin->justp; + else + prevwin->justp = lookwin->justp; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void State_Set_Window_Timestamp( winp, stamp ) + Tilwin *winp; + TimeStamp stamp; +{ + if ( (stamp > timestamp) || (stamp <= 0) ) return; + winp->timestamp = stamp; + if ( winp->Am_I_Open ) + { + State_Remove_Open( winp ); + State_Insert_Open_Ordered( winp ); + } + else + { + State_Remove_Closed( winp ); + State_Insert_Closed_Ordered( winp ); + } +} + +/* ------------------------------------------------------------ */ + +void State_Note_Use( winp ) + Tilwin *winp; +{ + if (transacting == 0) + nextstamp++; + State_Set_Window_Timestamp( winp, nextstamp ); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void State_Create(winp) + Tilwin *winp; +{ + winp->timestamp = 0; + winp->affect_stamp = 0; + winp->modify_stamp = 0; + winp->Am_I_Open = FALSE; + winp->Was_Auto_Closed = FALSE; + State_Insert_Closed_Ordered(winp); +} + +/* ------------------------------------------------------------ */ + +void State_Destroy(winp) + Tilwin *winp; +{ + winp->timestamp = (long) 0; + State_Remove_Closed(winp); + if ( (winp->affect_stamp) == timestamp ) + { + if (winp->prev_Am_I_Open) + State_Remove_Just_Closed(winp); + } +} + +/* ------------------------------------------------------------ */ + +void State_Manual_Close( winp ) + Tilwin *winp; +{ + State_Save(winp); + State_Remove_Open(winp); + winp->Am_I_Open = FALSE; + winp->Was_Auto_Closed = FALSE; + if (! winp->prev_Am_I_Open) + { + State_Remove_Just_Open(winp); + winp->timestamp = winp->prev_timestamp; + State_Insert_Closed_Ordered(winp); + } + else + { + if ( State_Was_Just_Modified(winp) ) + State_Remove_Just_Modified(winp); + State_Insert_Just_Closed(winp); + winp->timestamp = timestamp; + State_Insert_Closed(winp); + } +} + +/* ------------------------------------------------------------ */ + +void State_Auto_Close( winp ) + Tilwin *winp; +{ + State_Manual_Close( winp ); + winp->Was_Auto_Closed = TRUE; + winp->center = winp->prev_center; + winp->size = winp->prev_size; + winp->rect = winp->prev_rect; +} + +/* ------------------------------------------------------------ */ + +void State_Open( winp ) + Tilwin *winp; +{ + State_Save(winp); + if (winp->Am_I_Open) + { + if (winp->prev_Am_I_Open) + { + State_Insert_Just_Modified(winp); + } + } + else + { + State_Remove_Closed(winp); + winp->Am_I_Open = TRUE; + if (winp->prev_Am_I_Open) + { + State_Remove_Just_Closed(winp); + State_Insert_Just_Modified(winp); + winp->timestamp = winp->prev_timestamp; + State_Insert_Open_Ordered(winp); + } + else + { + State_Insert_Just_Open(winp); + winp->timestamp = timestamp; + State_Insert_Open(winp); + } + } +} + +/* ------------------------------------------------------------ */ + +void State_Act_Modified( winp ) + Tilwin *winp; +{ + if ( (transacting > 0) && (winp->Am_I_Open) ) + { + State_Save(winp); + if (winp->prev_Am_I_Open) + { + State_Insert_Just_Modified(winp); + } + } +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +TimeStamp State_Get_Timestamp() +{ + + return timestamp; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +WinpHandle State_Gen_Open_Windows() +{ + Tilwin window; + WinpHandle handle; + handle.winp = Openp; + handle.offset = (int) &window.openp - (int) &window; + return handle; +} + +/* ------------------------------------------------------------ */ + +WinpHandle State_Gen_Closed_Windows() +{ + Tilwin window; + WinpHandle handle; + handle.winp = Closedp; + handle.offset = (int) &window.closedp - (int) &window; + return handle; +} + +/* ------------------------------------------------------------ */ + +WinpHandle State_Gen_Just_Opened_Windows() +{ + Tilwin window; + WinpHandle handle; + handle.winp = Just_Openp; + handle.offset = (int) &window.justp - (int) &window; + return handle; +} + +/* ------------------------------------------------------------ */ + +WinpHandle State_Gen_Just_Modified_Windows() +{ + Tilwin window; + WinpHandle handle; + handle.winp = Just_Modifiedp; + handle.offset = (int) &window.justp - (int) &window; + return handle; +} + +/* ------------------------------------------------------------ */ + +WinpHandle State_Gen_Just_Closed_Windows() +{ + Tilwin window; + WinpHandle handle; + handle.winp = Just_Closedp; + handle.offset = (int) &window.justp - (int) &window; + return handle; +} + +/* ------------------------------------------------------------ */ +void +State_Next_Window( handlep ) + WinpHandle *handlep; +{ + if ( (handlep->winp) != WINP_NULL) + handlep->winp = + *( (Tilwin **)( ((char *)(handlep->winp)) + (handlep->offset) ) ); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static void State_Swap( winp ) + Tilwin *winp; +{ + TWPoint temp_center; + Size temp_size; + TWRectangle temp_rect; + TimeStamp temp_stamp; + bool temp_open; + + temp_stamp = winp->prev_timestamp; + temp_center = winp->prev_center; + temp_size = winp->prev_size; + temp_rect = winp->prev_rect; + temp_open = winp->prev_Am_I_Open; + + winp->prev_timestamp = winp->timestamp; + winp->prev_center = winp->center; + winp->prev_size = winp->size; + winp->prev_rect = winp->rect; + winp->prev_Am_I_Open = winp->Am_I_Open; + + winp->timestamp = temp_stamp; + winp->center = temp_center; + winp->size = temp_size; + winp->rect = temp_rect; + winp->Am_I_Open = temp_open; +} + +/* ------------------------------------------------------------ */ + +void State_Undo() +{ + Tilwin *winp; + WinpHandle handle; + + handle = State_Gen_Just_Opened_Windows(); + while ( ( winp = State_Coerce(handle) ) != WINP_NULL ) + { + State_Swap(winp); + State_Remove_Open(winp); + State_Insert_Closed_Ordered(winp); + State_Next_Window(&handle); + } + + handle = State_Gen_Just_Modified_Windows(); + while ( ( winp = State_Coerce(handle) ) != WINP_NULL ) + { + State_Swap(winp); + State_Next_Window(&handle); + } + + handle = State_Gen_Just_Closed_Windows(); + while ( ( winp = State_Coerce(handle) ) != WINP_NULL ) + { + State_Swap(winp); + State_Remove_Closed(winp); + State_Insert_Open_Ordered(winp); + State_Next_Window(&handle); + } + + winp = Just_Openp; + Just_Openp = Just_Closedp; + Just_Closedp = winp; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +int State_Transaction_Depth() +{ + return transacting; +} + +/* ------------------------------------------------------------ */ + +void State_Start_Transaction() +{ + State_Start_Operation(); + transacting++; +} + +/* ------------------------------------------------------------ */ + +void State_Commit_Transaction() +{ + --transacting; +} + +/* ------------------------------------------------------------ */ + +void State_Continue_Transaction() +{ + transacting++; +} + +/* ------------------------------------------------------------ */ + +void State_Abort_Transaction() +{ + Just_Modifiedp = WINP_NULL; + Just_Openp = WINP_NULL; + Just_Closedp = WINP_NULL; + --transacting; +} + +/**************************************************************************** + * appended to original state.c + **************************************************************************** + */ +static Tilwin *Potentially_Modfdp, *Potentially_Closedp; + +void +State_Potential_Clear() +{ + Potentially_Modfdp = WINP_NULL; + Potentially_Closedp = WINP_NULL; +} + +WinpHandle +State_Gen_Potentially_Modfd() +{ + Tilwin window; + WinpHandle handle; + handle.winp = Potentially_Modfdp; + handle.offset = (int) &window.potentmp - (int) &window; + return handle; +} + +WinpHandle +State_Gen_Potentially_Closed() +{ + Tilwin window; + WinpHandle handle; + handle.winp = Potentially_Closedp; + handle.offset = (int) &window.potentcp - (int) &window; + return handle; +} + +void +State_Insert_Potentially_Modfd(winp) + Tilwin *winp; +{ + winp->potentmp = Potentially_Modfdp; + Potentially_Modfdp = winp; +} + +void +State_Insert_Potentially_Closed(winp) + Tilwin *winp; +{ + winp->potentcp = Potentially_Closedp; + Potentially_Closedp = winp; +} + + +void +State_Remove_Potentially_Modfd(winp) + Tilwin *winp; +{ + Tilwin *lookwin, *prevwin; + + lookwin = Potentially_Modfdp; + + prevwin = WINP_NULL; + while (lookwin != winp) { + prevwin = lookwin; + lookwin = lookwin -> potentmp; + } + if (prevwin == WINP_NULL) + Potentially_Modfdp = lookwin->potentmp; + else + prevwin->potentmp = lookwin->potentmp; +} + +void +State_Remove_Potentially_Closed(winp) + Tilwin *winp; +{ + Tilwin *lookwin, *prevwin; + + lookwin = Potentially_Closedp; + + prevwin = WINP_NULL; + while (lookwin != winp) { + prevwin = lookwin; + lookwin = lookwin -> potentcp; + } + if (prevwin == WINP_NULL) + Potentially_Closedp = lookwin->potentcp; + else + prevwin->potentcp = lookwin->potentcp; +} diff --git a/state.h b/state.h new file mode 100644 index 0000000..ef6f7b0 --- /dev/null +++ b/state.h @@ -0,0 +1,103 @@ +/* +static char sccs_id[] = "@(#)state.h 5.7 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +#ifndef STATE +#include "stateP.h" +#endif + +extern int State_Transaction_Depth(); + +extern void State_Set_Window_Timestamp(); +/* winp, stamp */ + +extern void State_Note_Use(); +/* winp */ + +extern bool State_Was_Just_Modified(); +/* Tilwin *winp; */ + +extern void State_Act_Modified(); +/* Tilwin *winp; */ + +extern void State_Insert_Just_Modified(); +/* Tilwin *winp; */ + +extern void State_Start_Operation(); + +extern void State_Start_Transaction(); +extern void State_Commit_Transaction(); +extern void State_Abort_Transaction(); +extern void State_Continue_Transaction(); + +extern void State_Create(); +/* Tilwin *winp; */ + +extern void State_Destroy(); +/* Tilwin *winp; */ + +extern void State_Manual_Close(); +/* Tilwin *winp; */ + +extern void State_Auto_Close(); +/* Tilwin *winp; */ + +extern void State_Open(); +/* Tilwin *winp; */ + +extern TimeStamp State_Get_Timestamp(); + +extern WinpHandle State_Gen_Open_Windows(); + +extern WinpHandle State_Gen_Closed_Windows(); + +extern WinpHandle State_Gen_Just_Opened_Windows(); + +extern WinpHandle State_Gen_Just_Modified_Windows(); + +extern WinpHandle State_Gen_Just_Closed_Windows(); + +extern void State_Next_Window(); + /* WinpHandle *handle */ + +extern void State_Undo(); + +/**************************************************************************** + * appended to original state.h + **************************************************************************** + */ + +extern void State_Potential_Clear(); +extern WinpHandle State_Gen_Potentially_Modfd(); +extern WinpHandle State_Gen_Potentially_Closed(); +extern void State_Insert_Potentially_Modfd(); +extern void State_Insert_Potentially_Closed(); +extern void State_Remove_Potentially_Modfd(); +extern void State_Remove_Potentially_Closed(); +extern void State_Flip_Just_Lists(); +extern bool State_Currently_Transacting(); +extern void State_Swap(); diff --git a/stateP.h b/stateP.h new file mode 100644 index 0000000..f62960c --- /dev/null +++ b/stateP.h @@ -0,0 +1,48 @@ +/* +static char sccs_id[] = "@(#)stateP.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +#ifndef STATE +#define STATE +#endif + +#ifndef TILWIN_INTERN +#include "twinI.h" +#endif + +typedef struct +{ + Tilwin *winp; + int offset; +} WinpHandle; + + +#define State_Coerce(handle) \ + ( (handle).winp ) + +#define State_Ever_Opened(winp) \ + ( ((winp)->timestamp) != 0 ) diff --git a/std_defs.h b/std_defs.h new file mode 100644 index 0000000..161bc88 --- /dev/null +++ b/std_defs.h @@ -0,0 +1,123 @@ +/* +static char sccs_id[] = "@(#)std_defs.h 5.5 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +/* Base macro definitions for the Tiling Window Manager. + * + * ONLY general macros go here - general type definitions go in basetype.h! + */ + +#ifndef STD_DEFS + +#define STD_DEFS + + +#ifdef bool +#undef bool +#endif + +typedef int bool; + +typedef char *pointer; +typedef void (*VoidFunc)(); + +/* initial pointer value + */ +#ifndef NULL +#define NULL 0 +#endif + +/* values for "bool" type + */ +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + +#define allocate(type, quan) ( (type *) malloc(sizeof(type) * (quan)) ) + +#define FOREVER for (;;) + + +/* string comparison macros + */ +#define streql(str1,str2) \ + ( ( ( (str1) == NULL ) || ( str1[0] == NULL ) ) ? \ + ( ( (str2) == NULL ) || ( str2[0] == NULL ) ) : \ + ( ( (str2) != NULL ) && ( strcmp(str1,str2) == 0 ) ) ) + +#define str_copy(str1,str2) \ +{ \ + if ( (str2) == NULL ) \ + (str1) = NULL; \ + else \ + { \ + (str1) = allocate( char, 1 + strlen(str2) ); \ + strcpy( str1, str2 ); \ + } \ +} + +#define str_replace(str1,str2) \ +{ \ + if ( (str1) != NULL ) \ + free( str1 ); \ + str_copy( str1, str2 ) \ +} + +#define str_length(str) ((str)? strlen(str):0) + +#define str_free(str) \ +{ \ + if (str) \ + free((char *) str); \ +} + +/* minimal error status return values + */ +#define SUCCESS 0 +#define FAILURE -1 + + +/* value comparison macros + */ +#define ABS(val) \ + ( ( (val) < 0 ) ? -(val) : (val) ) + +#define MIN(val1,val2) \ + ( ( (val1) < (val2) ) ? (val1) : (val2) ) + +#define MAX(val1,val2) \ + ( ( (val1) > (val2) ) ? (val1) : (val2) ) + +#define Is_Even_Number(number) ( ((number % 2) == 0) ? TRUE : FALSE ) +#define Is_Odd_Number(number) ( ((number % 2) == 0) ? FALSE : TRUE ) + +#include + +#endif /* STD_DEFS */ diff --git a/synonymsS.h b/synonymsS.h new file mode 100644 index 0000000..f827e5c --- /dev/null +++ b/synonymsS.h @@ -0,0 +1,64 @@ +/* +static char sccs_id[] = "@(#)synonymsS.h 5.5 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +#define LENGTH_SYNONYMS 30 + +char *(synonym_strs[LENGTH_SYNONYMS]) = { + + "focusFollowsPointer", + "focusFollowsCursor", + "centerPointerOnMove", + "centerCursorOnMove", + "centerPointerOnRelocate", + "centerCursorOnRelocate", + "placePointerInBodyInsteadOfBorder", + "placeCursorInBodyInsteadOfBorder", + "placePointerInBodyInsteadOfGadget", + "placeCursorInBodyInsteadOfGadget", + "placePointerInBorderAfterResize", + "placeCursorInBorderAfterResize", + "placePointerInGadgetAfterClientAutoOpen", + "placeCursorInGadgetAfterClientAutoOpen", + "placePointerInGadgetAfterUserAutoOpen", + "placeCursorInGadgetAfterUserAutoOpen", + "placePointerInGadgetAfterManualOpen", + "placeCursorInGadgetAfterManualOpen", + "placePointerInGadgetAfterExchange", + "placeCursorInGadgetAfterExchange", + "placePointerInGadgetAfterMove", + "placeCursorInGadgetAfterMove", + "placePointerInIconAfterClose", + "placeCursorInIconAfterClose", + "placePointerBackAfterMenuOperation", + "placeCursorBackAfterMenuOperation", + "placePointerBackOnCancel", + "placeCursorBackOnCancel", + "lockedOpen", + "requireManualClose" + }; diff --git a/til_create.c b/til_create.c new file mode 100644 index 0000000..ebd2e3e --- /dev/null +++ b/til_create.c @@ -0,0 +1,179 @@ +#ifndef lint +static char sccs_id[] = "@(#)til_create.c 5.3 9/7/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#include "copyright.h" + +/* Create a new Tile defined by the rectangular area. + * + * Returns pointer to new "Tilep". + */ +#include "tileD.h" +#include "tile.h" + +extern Tile *Tile_Split_Top(), + *Tile_Split_Bottom(), + *Tile_Split_Left(), + *Tile_Split_Right(); + +extern void Tile_Merge(); +#ifdef WM_DEBUG +extern void Tile_Panic(); +#endif + +Tilep +Tile_Create(area_left_x, area_top_y, area_right_x, area_bottom_y) + Basetype area_left_x, area_top_y, area_right_x, area_bottom_y; +{ + Tile *center_tile, + *edge_tile, /* left or right edge */ + *prev_left_tile = NULL_TILE, + *prev_right_tile = NULL_TILE; + + Tile *growing_tile = NULL_TILE; /* growing Solid tile */ + +#ifdef WM_DEBUG + /* make sure values past to us make sense */ + if (area_left_x >= area_right_x || + area_top_y >= area_bottom_y) + Tile_Panic("trying to create a nonsense tile"); +#endif + + /* If the Top edge of 'area' does NOT lie on the top edge of + * a Space tile, then split that Space tile vertically + */ + center_tile = (Tile *) Tile_at_Point(area_left_x, area_top_y); +#ifdef WM_DEBUG + if (center_tile == NULL_TILE) + Tile_Panic("trying to create a tile off of the desktop"); +#endif + + if (area_top_y != Top_Y(center_tile)) + (void) Tile_Split_Top(center_tile, area_top_y); + + /* If the Bottom edge of 'area' does NOT lie on the bottom edge of + * another Space tile... + */ + edge_tile = (Tile *) Tile_at_Point(area_right_x, area_bottom_y); +#ifdef WM_DEBUG + if (edge_tile == NULL_TILE) + Tile_Panic("trying to create a tile off of the desktop"); +#endif + + if (area_bottom_y != Bottom_Y(edge_tile)) + (void) Tile_Split_Bottom(edge_tile, area_bottom_y); + + do + { + /* Split Space tile into Left, Center and Right Space + * tiles, merging with previous left (right) tiles if + * possible... + */ + if (area_left_x != Left_X(center_tile)) + { + edge_tile = Tile_Split_Left(center_tile, + area_left_x); + + /* if the rightmost top tile is not + * the NULL_TILE AND is a Space + * tile AND has its left and right + * edges equal to the left and + * right edges of edge tile, merge + * the two tiles for reform maximal + * horizontal stips. + */ + if (rt_stitch(edge_tile) != NULL_TILE && + Tile_Get_Type(rt_stitch(edge_tile)) == Space && + Left_X(edge_tile) == Left_X(rt_stitch(edge_tile)) && + Right_X(edge_tile) == Right_X(rt_stitch(edge_tile))) + Tile_Merge(edge_tile, rt_stitch(edge_tile), Top); + + prev_left_tile = edge_tile; + } + else + prev_left_tile = NULL_TILE; + + if (area_right_x != Right_X(center_tile)) + { + edge_tile = Tile_Split_Right(center_tile, + area_right_x); + + /* See comment above for explanation */ + if (rt_stitch(edge_tile) != NULL_TILE && + Tile_Get_Type(rt_stitch(edge_tile)) == Space && + Left_X(edge_tile) == Left_X(rt_stitch(edge_tile)) && + Right_X(edge_tile) == Right_X(rt_stitch(edge_tile))) + Tile_Merge(edge_tile, rt_stitch(edge_tile), Top); + + prev_right_tile = edge_tile; + } + else + prev_right_tile = NULL_TILE; + + if (growing_tile == NULL_TILE) + growing_tile = center_tile; + else + Tile_Merge(growing_tile, center_tile, Bottom); + + + center_tile = (Tile *) Tile_at_Point(Left_X(growing_tile), + (Bottom_Y(growing_tile) + 1)); + + } + while ( center_tile != NULL_TILE && + Top_Y(center_tile) < area_bottom_y ); + + /* see if we can merge along the bottom of the space + * tiles on the left and right sides of the newly + * created solid tile */ + + if (prev_left_tile != NULL_TILE) { + edge_tile = lb_stitch(prev_left_tile); + + /* merge only Space tiles */ + if(edge_tile != NULL_TILE && + Tile_Get_Type(edge_tile) == Space) + if (Left_X(edge_tile) == Left_X(prev_left_tile) + && Right_X(edge_tile) == Right_X(prev_left_tile)) + Tile_Merge(edge_tile, prev_left_tile, Top); + } + + if (prev_right_tile != NULL_TILE) { + edge_tile = lb_stitch(prev_right_tile); + + if(edge_tile != NULL_TILE && + Tile_Get_Type(edge_tile) == Space) + if (Left_X(edge_tile) == Left_X(prev_right_tile) + && Right_X(edge_tile) == Right_X(prev_right_tile)) + Tile_Merge(edge_tile, prev_right_tile, Top); + } + + Tile_Set_Name(growing_tile, tile_name++); + Tile_Set_Type(growing_tile, Solid); + + return ( (Tilep) growing_tile ); +} + diff --git a/til_delete.c b/til_delete.c new file mode 100644 index 0000000..1204c8d --- /dev/null +++ b/til_delete.c @@ -0,0 +1,200 @@ +#ifndef lint +static char sccs_id[] = "@(#)til_delete.c 5.3 9/7/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#include "copyright.h" + +/**************************************************************************** + *The purpose of Tile_Delete is to "delete" the given tile. Note + *that the tile is never really deleted, it is marked as a space + *tile and the area that was contained inside the tile is returned + *to maximal horizontal strips with respect to the rest of the + *screen + ****************************************************************************/ +#include "tileD.h" +#include "tile-listP.h" +#include "tile.h" + +extern Tile *Tile_at_CP; +extern Tile *Tile_Split_Top (), *Tile_Split_Bottom (); +extern void Tile_Merge(); +extern Tile_List Tile_Right_Neighbors (), Tile_Left_Neighbors (); +extern Tile *Marry_Neighbors(); + +void +Tile_Delete(genericp) +Tilep genericp; +{ + Tile_List Rneighbors, Lneighbors; + Tile *next_nbr; + Tile *top_tile, *bottom_tile; + Tile *stitch; + TWRectangle old_area; + Tile *tilep = (Tile *) genericp; + + /* set the current tile pointer (used by Tile_at_Point) + * to a VALID neighbor tile + */ + if ( bl_stitch(tilep) != NULL_TILE ) + Tile_at_CP = bl_stitch(tilep); + else if ( lb_stitch(tilep) != NULL_TILE ) + Tile_at_CP = lb_stitch(tilep); + else if ( tr_stitch(tilep) != NULL_TILE ) + Tile_at_CP = tr_stitch(tilep); + else if ( rt_stitch(tilep) != NULL_TILE ) + Tile_at_CP = rt_stitch(tilep); + + Tile_Set_Type (tilep, Space); + + if (Tile_at_CP == tilep) /* then only 1 tile exists */ + return; + + /* Need to keep around the upper-left and lower-right + * corners of the original area + */ + old_area.left_x = Left_X (tilep); + old_area.top_y = Top_Y (tilep); + old_area.right_x = Right_X (tilep); + old_area.bottom_y = Bottom_Y (tilep); + + + /* for each right neighbor of the original tile, + * split the tile and/or the neighbor (if it is + * a Space tile) so that the maximal horizontal + * strip property is regained + */ + Rneighbors = Tile_Right_Neighbors(tilep); + Lneighbors = Tile_Left_Neighbors(tilep); + + TL_NEXT(next_nbr, Rneighbors); + + while (next_nbr != NULL_TILE) + { + if (Tile_Get_Type(next_nbr) == Space) + tilep = Marry_Neighbors(tilep, next_nbr); + + TL_NEXT(next_nbr, Rneighbors); + } + TL_FREE(Rneighbors) + + + /* for each left neighbor of the original tile, + * if that left neighbor is a space tile, treat it + * as the original tile above + */ + TL_NEXT(tilep, Lneighbors); + + while (tilep != NULL_TILE) + { + if (Tile_Get_Type(tilep) == Space) + { + Rneighbors = Tile_Right_Neighbors(tilep); + TL_NEXT(next_nbr, Rneighbors); + + while (next_nbr != NULL_TILE) + { + if (Tile_Get_Type(next_nbr) == Space) + tilep = Marry_Neighbors(tilep, next_nbr); + + TL_NEXT(next_nbr, Rneighbors); + } + TL_FREE(Rneighbors) + } + TL_NEXT(tilep, Lneighbors); + } + TL_FREE (Lneighbors) + + + /* see if the top and bottom strips of the original + * tile can be merged + */ + bottom_tile = (Tile *) Tile_at_Point(old_area.left_x, old_area.bottom_y); + + if ( (stitch = lb_stitch(bottom_tile)) != NULL_TILE && + Tile_Get_Type(stitch) == Space ) + { + if (Left_X(bottom_tile) == Left_X(stitch) && + Right_X(bottom_tile) == Right_X(stitch)) + + Tile_Merge(bottom_tile, stitch, Bottom); + } + + top_tile = (Tile *) Tile_at_Point(old_area.left_x, old_area.top_y); + + if ( (stitch = rt_stitch(top_tile)) != NULL_TILE && + Tile_Get_Type(stitch) == Space ) + { + if (Left_X(top_tile) == Left_X(stitch) && + Right_X(top_tile) == Right_X(stitch)) + + Tile_Merge(top_tile, stitch, Top); + } +} + + +/**************************************************************************** + * Marry_Neighbors takes a space tile and its neighbor (which should + * also be a space tile, OR ELSE!) and does vertical splits and + * horizontal merges to regain the maximal horizontal strip property. + * It returns either 'tile' or the space tile split off of the bottom of + * 'tile' (note: the size of the returned tile may (most probably) will differ + * from the size of 'tile') + **************************************************************************** + */ +Tile * +Marry_Neighbors(tile, neighbor) +Tile *tile; +Tile *neighbor; +{ + Tile *return_tile; + Basetype top; + Basetype bottom; + + return_tile = tile; + + if(Top_Y(tile) > Top_Y(neighbor)) + top = Top_Y(tile); + else + top = Top_Y(neighbor); + + if(Bottom_Y(tile) < Bottom_Y(neighbor)) + bottom = Bottom_Y(tile); + else + bottom = Bottom_Y(neighbor); + + if(Top_Y(tile) != top) + Tile_Split_Top(tile, top); + else if(Top_Y(neighbor) != top) + Tile_Split_Top(neighbor, top); + + if(Bottom_Y(tile) != bottom) + return_tile = Tile_Split_Bottom(tile, bottom); + else if(Bottom_Y(neighbor) != bottom) + Tile_Split_Bottom(neighbor, bottom); + + (void) Tile_Merge(tile, neighbor, Right); + return(return_tile); +} diff --git a/til_enlrg.c b/til_enlrg.c new file mode 100644 index 0000000..9bd1f5c --- /dev/null +++ b/til_enlrg.c @@ -0,0 +1,93 @@ +#ifndef lint +static char sccs_id[] = "@(#)til_enlrg.c 5.3 9/7/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#include "copyright.h" + +/* Enlarge 'tile' on its 'side' to 'coord' position. NOTE: + * assumes that area in which enlargement is done is a + * space tile + */ +#include "tileD.h" +#include "tile.h" + +extern void Tile_Merge(); + +#ifdef WM_DEBUG +extern void Tile_Panic(); +#endif + +void +Tile_Enlarge(genericp, side, coord) + Tilep genericp; + Side side; + Basetype coord; +{ + Tile *new_tile, + *tile = (Tile *) genericp; + + switch (side) { + case Left: +#ifdef WM_DEBUG + if(coord >= Left_X(tile)) + Tile_Panic("enlarge out of horizontal range"); +#endif + new_tile = (Tile *) Tile_Create(coord, Top_Y(tile), + Left_X(tile)-1, Bottom_Y(tile)); + Tile_Merge(tile, new_tile, Left); + break; + + case Right: +#ifdef WM_DEBUG + if(coord <= Right_X(tile)) + Tile_Panic("enlarge out of horizontal range"); +#endif + new_tile = (Tile *) Tile_Create(Right_X(tile)+1, Top_Y(tile), + coord, Bottom_Y(tile)); + Tile_Merge(tile, new_tile, Right); + break; + + case Top: +#ifdef WM_DEBUG + if(coord >= Top_Y(tile)) + Tile_Panic("enlarge out of vertical range"); +#endif + new_tile = (Tile *) Tile_Create(Left_X(tile), coord, + Right_X(tile), Top_Y(tile)-1); + Tile_Merge(tile, new_tile, Top); + break; + + case Bottom: +#ifdef WM_DEBUG + if(coord <= Bottom_Y(tile)) + Tile_Panic("enlarge out of vertical range"); +#endif + new_tile = (Tile *) Tile_Create(Left_X(tile), Bottom_Y(tile)+1, + Right_X(tile), coord); + Tile_Merge(tile, new_tile, Bottom); + break; + } +} diff --git a/til_find.c b/til_find.c new file mode 100644 index 0000000..2bbda51 --- /dev/null +++ b/til_find.c @@ -0,0 +1,92 @@ +#ifndef lint +static char sccs_id[] = "@(#)til_find.c 5.3 9/7/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#include "copyright.h" + +/* Return (pointer to) Tile containing + * the point (x , y) -- actually a Tilep. + * + * MODIFIES: Tile_at_CP + */ +#include "tileD.h" +#include "twin.h" + +extern Tile *Tile_at_CP; + +#ifdef WM_DEBUG +extern void Tile_Panic(); +#endif + + +Tilep +Tile_at_Point(x, y) + Basetype x, y; +{ + Tile *tilep = Tile_at_CP; + + if ( x < 0 || Get_Width(Tilwin_Get_Desktop_Size()) - 1 < x || + y < 0 || Get_Height(Tilwin_Get_Desktop_Size()) - 1 < y ) + return ( (Tilep) NULL_TILE ); + + FOREVER + { + if (Top_Y(tilep) <= y) + + if (y <= Bottom_Y(tilep)) + + /* tile is within vertical range, check horizontal + */ + if (Left_X(tilep) <= x) + + if (x <= Right_X(tilep)) + + /* then tile contains (x, y) - done + */ + break; + + else /* move "right" in X */ + tilep = tr_stitch(tilep); + + else /* move "left" in X */ + tilep = bl_stitch(tilep); + + else /* move "down" in Y */ + tilep = lb_stitch(tilep); + + else /* move "up" in Y */ + tilep = rt_stitch(tilep); + } + + if (tilep != NULL_TILE) + Tile_at_CP = tilep; +#ifdef WM_DEBUG + else + Tile_Panic("tile at Current Position is null tile"); +#endif + return ( (Tilep) tilep ); +} + diff --git a/til_nbrs.c b/til_nbrs.c new file mode 100644 index 0000000..75e9293 --- /dev/null +++ b/til_nbrs.c @@ -0,0 +1,116 @@ +#ifndef lint +static char sccs_id[] = "@(#)til_nbrs.c 5.3 9/7/88"; +#endif + + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +/* neighbor-finding functions + * for cross-stitched tile management + */ +#include "tileD.h" +#include "tile.h" +#include "tile-listP.h" + +#ifdef WM_DEBUG +extern void Tile_Panic(); +#endif + +Tile_List +Tile_Right_Neighbors(tilep) + Tile *tilep; +{ + Tile_List tile_list; + Tile *next_neighbor = tr_stitch(tilep); + + tile_list.first = tile_list.last = tile_list.current = TENULL; + + while (next_neighbor != NULL_TILE + && Bottom_Y(tilep) >= Top_Y(next_neighbor)) + { + TL_ADD(next_neighbor, tile_list); + next_neighbor = lb_stitch(next_neighbor); + } + + return(tile_list); +} + + +Tile_List +Tile_Left_Neighbors(tilep) + Tile *tilep; +{ + Tile_List tile_list; + Tile *next_neighbor = bl_stitch(tilep); + + tile_list.first = tile_list.last = tile_list.current = TENULL; + while (next_neighbor != NULL_TILE + && Top_Y(tilep) <= Bottom_Y(next_neighbor)) + { + TL_ADD(next_neighbor, tile_list); + next_neighbor = rt_stitch(next_neighbor); + } + + return(tile_list); +} + + +Tile_List +Tile_Top_Neighbors(tilep) + Tile *tilep; +{ + Tile_List tile_list; + Tile *next_neighbor = rt_stitch(tilep); + + tile_list.first = tile_list.last = tile_list.current = TENULL; + while (next_neighbor != NULL_TILE + && Left_X(tilep) <= Right_X(next_neighbor)) + { + TL_ADD(next_neighbor, tile_list); + next_neighbor = bl_stitch(next_neighbor); + } + + return(tile_list); +} + + +Tile_List +Tile_Bottom_Neighbors(tilep) + Tile *tilep; +{ + Tile_List tile_list; + Tile *next_neighbor = lb_stitch(tilep); + + tile_list.first = tile_list.last = tile_list.current = TENULL; + while (next_neighbor != NULL_TILE + && Left_X(next_neighbor) <= Right_X(tilep)) + { + TL_ADD(next_neighbor, tile_list); + next_neighbor = tr_stitch(next_neighbor); + } + + return(tile_list); +} + diff --git a/til_panic.c b/til_panic.c new file mode 100644 index 0000000..444b179 --- /dev/null +++ b/til_panic.c @@ -0,0 +1,48 @@ +#ifndef lint +static char sccs_id[] = "@(#)til_panic.c 5.4 9/7/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#include "copyright.h" + + + +#include + +void +Tile_Panic(str) +char *str; +{ + fprintf(stderr, "Tiling System panic: %s\n", str); +#ifdef WM_DEBUG + fprintf(stderr, " (going into an infinite loop)\n"); + fflush(stderr); + for (;;) + { + } +#else + exit(1); +#endif +} diff --git a/til_shrink.c b/til_shrink.c new file mode 100644 index 0000000..9a84222 --- /dev/null +++ b/til_shrink.c @@ -0,0 +1,95 @@ +#ifndef lint +static char sccs_id[] = "@(#)til_shrink.c 5.3 9/7/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#include "copyright.h" + +/* shrink 'tile' on its 'side' at 'coord' position + */ +#include +#include "tileD.h" + +extern Tile *Tile_Split_Left(), + *Tile_Split_Right(), + *Tile_Split_Top(), + *Tile_Split_Bottom(); + +extern void Tile_Delete(); + +#ifdef WM_DEBUG +extern void Tile_Panic(); +#endif + + +void +Tile_Shrink(genericp, side, coord) + Tilep genericp; + Side side; + Basetype coord; +{ + Tile *Sp, + *tile = (Tile *) genericp; + + /* Split off a new Space Tile (Sp) along the + * shrunken side of the old tile... + */ + switch (side) + { + case Left: +#ifdef WM_DEBUG + if(coord <= Left_X(tile) || coord >= Right_X(tile)) + Tile_Panic("shrink out of horizontal range"); +#endif + Sp = Tile_Split_Left(tile, coord); + break; + + case Right: +#ifdef WM_DEBUG + if(coord <= Left_X(tile) || coord >= Right_X(tile)) + Tile_Panic("shrink out of horizontal range"); +#endif + Sp = Tile_Split_Right(tile, coord); + break; + + case Top: +#ifdef WM_DEBUG + if(coord <= Top_Y(tile) || coord >= Bottom_Y(tile)) + Tile_Panic("shrink out of vertical range"); +#endif + Sp = Tile_Split_Top(tile, coord); + break; + + case Bottom: +#ifdef WM_DEBUG + if(coord <= Top_Y(tile) || coord >= Bottom_Y(tile)) + Tile_Panic("shrink out of vertical range"); +#endif + Sp = Tile_Split_Bottom(tile, coord); + break; + } + + Tile_Delete( (Tilep) Sp ); +} diff --git a/tile-listP.h b/tile-listP.h new file mode 100644 index 0000000..5bd32ba --- /dev/null +++ b/tile-listP.h @@ -0,0 +1,129 @@ +/* +static char sccs_id[] = "@(#)tile-listP.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +/* + * Tile list manipulation routines + */ + +typedef struct tile_element Tile_Element; +struct tile_element{ + Tile *tptr; + Tile_Element *next; +}; + +typedef struct tile_list Tile_List; +struct tile_list{ + Tile_Element *first; + Tile_Element *last; + Tile_Element *current; +}; + +#define TENULL ((Tile_Element *) 0) + +/* The variables in the macro definition refer to the + * following types: + * + * Tile *tile + * Tile_List list + * Tile_Element *element + */ + +/* add a tile to a list */ +#define TL_ADD(tile, list) \ +{ \ + register Tile_Element *TE; \ + TE_ALLOC(TE); \ + TE->tptr = tile; \ + TE->next = TENULL; \ + if(list.first == TENULL) \ + list.first = list.last = TE; \ + else{ \ + list.last->next = TE; \ + list.last = TE; \ + } \ +} + +/* free all elements on the list */ +#define TL_FREE(list) \ +{ \ + register Tile_Element *TE; \ + while (list.first != TENULL) { \ + TE = list.first; \ + list.first = TE->next; \ + TE_FREE(TE); \ + } \ + list.first = list.last = list.current = TENULL; \ +} + +/* get the next tile on a list */ +#define TL_NEXT(tile, list) \ +{ \ + if (list.first != TENULL) { \ + if(list.current == TENULL){ \ + tile = list.first->tptr; \ + list.current = list.first->next; \ + if(list.current == TENULL){ \ + list.current = list.first; \ + } \ + } \ + else if (list.current == list.first) { \ + tile = NULL_TILE; \ + } \ + else{ \ + tile = list.current->tptr; \ + list.current = list.current->next; \ + if (list.current == TENULL) { \ + list.current = list.first; \ + } \ + } \ + } \ + else{ \ + tile = NULL_TILE; \ + } \ +} + +#define TE_ALLOC(element) \ +{ \ + if (te_freelist == TENULL) { \ + if ((element = (Tile_Element *) malloc(sizeof(Tile_Element))) == TENULL) \ + Tile_Panic("tl_alloc malloc failed."); \ + } \ + else{ \ + element = te_freelist; \ + te_freelist = te_freelist->next; \ + } \ +} + +#define TE_FREE(element) \ +{ \ + element->next = te_freelist; \ + te_freelist = element; \ + element = TENULL; \ +} + +extern Tile_Element *te_freelist; diff --git a/tile.h b/tile.h new file mode 100644 index 0000000..56449d6 --- /dev/null +++ b/tile.h @@ -0,0 +1,81 @@ +/* +static char sccs_id[] = "@(#)tile.h 5.6 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +#ifndef TILE +#include "tileP.h" +#endif + +#define TILE_EXTERN + +extern void Tile_Init_Tws(); + + /* Basetype left_x, right_x, bottom_y, top_y */ + +extern int Tiles_In_Area(); + /* Basetype left_x, top_y, right_x, bottom_y + * int (*enum_func)() + */ + +extern Tilep Tile_Create(); + /* Basetype area_left_x, area_top_y, area_right_x, area_bottom_y */ + +extern void Tile_Delete(); + /* Tilep tilep */ + +extern void Tile_Enlarge(); + /* Tilep tilep; + * Side side; + * Basetype coord; + */ + +extern Tilep Tile_at_Point(); + /* Basetype x, y */ + +extern void Tile_Shrink(); + /* Tilep tilep; + * Side side; + * Basetype coord; + */ + +extern void Tile_Shrink_Desktop(); + /* Side side; + * Basetype coord; + */ + +extern void Tile_Enlarge_Desktop(); + /* Side side; + * Basetype coord; + */ + +extern void Tile_Update_Max_Hor_Strips(); +extern void Tile_Update_Max_Ver_Strips(); +extern void Tile_Create_Max_Hor_Strips(); +extern void Tile_Create_Max_Ver_Strips(); +extern void Tile_Create_Hor_Prorate_Graph(); +extern void Tile_Create_Ver_Prorate_Graph(); diff --git a/tileD.h b/tileD.h new file mode 100644 index 0000000..1e931d9 --- /dev/null +++ b/tileD.h @@ -0,0 +1,91 @@ +/* +static char sccs_id[] = "@(#)tileD.h 5.5 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +#ifndef TILE_INTERN +#include "tileI.h" +#endif + +#define TILE_DEFINE + + +#define NULL_TILE Null_Tile + +#define Tile_Get_Name(tilep) ((tilep) -> name) +#define Tile_Set_Name(tilep, a_name) ((tilep) -> name = (a_name)) + +#define Tile_Get_Corners(tilep) ((tilep) -> corners) +#define Tile_Set_Corners(tilep, rect) ((tilep) -> corners = (rect)) + +#define Tile_Get_Type(tilep) ((tilep) -> tile_type) +#define Tile_Set_Type(tilep, type) ((tilep) -> tile_type = (type)) + +#define Tile_Get_Win(tilep) ((Tile *) (tilep) -> my_win) +#define Tile_Set_Win(tilep, winp) ((tilep) -> my_win = (char *) (winp)) + +#define Tile_Get_Hor_Edge(tilep) ((tilep) -> hor) +#define Tile_Set_Hor_Edge(tilep, edge) ((tilep) -> hor = (char *) (edge)) + +#define Tile_Get_Ver_Edge(tilep) ((tilep) -> ver) +#define Tile_Set_Ver_Edge(tilep, edge) ((tilep) -> ver = (char *) (edge)) + + +/* tile system Coordinate manipulation macros + */ + +/* tile coordinate macros + */ +#define Left_X(tile_ptr) ((tile_ptr) -> corners.left_x) +#define Right_X(tile_ptr) ((tile_ptr) -> corners.right_x) +#define Bottom_Y(tile_ptr) ((tile_ptr) -> corners.bottom_y) +#define Top_Y(tile_ptr) ((tile_ptr) -> corners.top_y) + +/* is tile enclosed within area? + * +#define Tile_In_Area(tile_ptr, area) \ + ( area -> left_x <= Left_X(tile_ptr) \ + && Right_X(tile_ptr) <= area -> right_x \ + && area -> bottom_y <= Bottom_Y(tile_ptr) \ + && Top_Y(tile_ptr) <= area -> top_y ) +*/ + + +/* tile system Stitch manipulation macros + */ +#define bl_stitch(tilep) ((tilep) -> bl) /* Bottom-most Left neighbor */ + +#define lb_stitch(tilep) ((tilep) -> lb) /* Left-most Bottom neighbor */ + +#define tr_stitch(tilep) ((tilep) -> tr) /* Top-most Right neighbor */ + +#define rt_stitch(tilep) ((tilep) -> rt) /* Right-most Top neighbor */ + +#ifdef WM_DEBUG +extern Tile *t_global; +#endif + diff --git a/tileI.h b/tileI.h new file mode 100644 index 0000000..cc51786 --- /dev/null +++ b/tileI.h @@ -0,0 +1,67 @@ +/* +static char sccs_id[] = "@(#)tileI.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +/* Tile data structure definition. + */ + +#ifndef TILE +#include "tileP.h" +#endif + +#define TILE_INTERN + + +typedef struct str_tile Tile; +struct str_tile +{ + int name; /* 'name' for this tile */ + + Tile_Type tile_type; + + TWRectangle corners; /* corners of this tile */ + + Tile *tr, /* Top-most right neighbor */ + *rt, /* Right-most top neighbor */ + *bl, /* Bottom-most left neighbor */ + *lb; /* Left-most bottom neighbor */ + + pointer my_win; /* Tilwin info associated with */ + /* this tile (NULL if Space Tile) */ + + pointer hor, /* Horizontal and vertical edges */ + ver; /* for prorating graphs */ +}; + + +#ifndef NULL_DEFN + + extern Tile *Null_Tile; + extern int tile_name; + +#endif diff --git a/tileP.h b/tileP.h new file mode 100644 index 0000000..f3c1eb8 --- /dev/null +++ b/tileP.h @@ -0,0 +1,40 @@ +/* +static char sccs_id[] = "@(#)tileP.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#include "basetype.h" + +#define TILE + + +typedef enum +{ + Solid, Space +} Tile_Type; + + +typedef pointer Tilep; + diff --git a/tilecrsr.c b/tilecrsr.c new file mode 100644 index 0000000..177172c --- /dev/null +++ b/tilecrsr.c @@ -0,0 +1,141 @@ +#ifndef lint +static char sccs_id[] = "%W% %H%"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "std_defs.h" +#include "tilecrsrP.h" +#include "control.h" +#include +#include +#include "xio.h" +/* +#define XDefineCursor(a, b, c) +#define XLoadQueryFont(a, b) 1024 +#define XCreateFontCursor(a, b) 1 +#define XSetFont(a, b, c) +*/ +/* ------------------------------------------------------------ */ + +TileCursor standard_tilecursor; +TileCursor background_tilecursor; +TileCursor body_tilecursor; + +TileCursor menu_tilecursor; + +TileCursor question_tilecursor; +TileCursor confirmation_tilecursor; + +TileCursor header_tilecursor; +TileCursor icon_tilecursor; + +TileCursor gadget_tilecursor; +TileCursor move_gadget_tilecursor; +TileCursor zoom_gadget_tilecursor; + +TileCursor left_tilecursor; +TileCursor right_tilecursor; +TileCursor top_tilecursor; +TileCursor bottom_tilecursor; + +TileCursor top_left_tilecursor; +TileCursor bottom_left_tilecursor; +TileCursor top_right_tilecursor; +TileCursor bottom_right_tilecursor; + +TileCursor track_open_tilecursor; +TileCursor corner_open_tilecursor; +TileCursor center_open_tilecursor; +TileCursor open_in_icon_tilecursor; + +TileCursor move_tilecursor; +TileCursor move_icon_tilecursor; + +TileCursor good_exchange_tilecursor; +TileCursor bad_exchange_tilecursor; + +TileCursor watch_tilecursor; + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void TileCursor_Init() +{ + XFontStruct *font; + GC gc; + + + font = (XFontStruct *) XLoadQueryFont(dpy, "cursor"); + gc = DefaultGC(dpy, scrn); + XSetFont(dpy, gc, font->fid); + + standard_tilecursor = XCreateFontCursor(dpy, XC_top_left_arrow); + background_tilecursor = standard_tilecursor; + body_tilecursor = standard_tilecursor; + menu_tilecursor = standard_tilecursor; + + question_tilecursor = XCreateFontCursor(dpy, XC_question_arrow); + confirmation_tilecursor = question_tilecursor; + + header_tilecursor = XCreateFontCursor(dpy, XC_rtl_logo); + icon_tilecursor = header_tilecursor; + + gadget_tilecursor = XCreateFontCursor(dpy, XC_iron_cross); + zoom_gadget_tilecursor = gadget_tilecursor; + + move_gadget_tilecursor = XCreateFontCursor(dpy, XC_draped_box); + open_in_icon_tilecursor = move_gadget_tilecursor; + + left_tilecursor = XCreateFontCursor(dpy, XC_left_side); + right_tilecursor = XCreateFontCursor(dpy, XC_right_side); + top_tilecursor = XCreateFontCursor(dpy, XC_top_side); + bottom_tilecursor = XCreateFontCursor(dpy, XC_bottom_side); + + top_left_tilecursor = XCreateFontCursor(dpy, XC_top_left_corner); + bottom_left_tilecursor = XCreateFontCursor(dpy, XC_bottom_left_corner); + top_right_tilecursor = XCreateFontCursor(dpy, XC_top_right_corner); + bottom_right_tilecursor = XCreateFontCursor(dpy, XC_bottom_right_corner); + + track_open_tilecursor = XCreateFontCursor(dpy, XC_dotbox); + corner_open_tilecursor = bottom_right_tilecursor; + center_open_tilecursor = XCreateFontCursor(dpy, XC_sizing); + + move_tilecursor = XCreateFontCursor(dpy, XC_hand2); + move_icon_tilecursor = move_tilecursor; + + good_exchange_tilecursor = XCreateFontCursor(dpy, XC_exchange); + bad_exchange_tilecursor = good_exchange_tilecursor; + + watch_tilecursor = XCreateFontCursor(dpy, XC_watch); + +} + +/* ---------------------------------------------------------------------- */ + +/*ARGSUSED*/ +TileCursor +TileCursor_Make(fi, c) + int fi, c; +{} diff --git a/tilecrsr.h b/tilecrsr.h new file mode 100644 index 0000000..d5ce2cd --- /dev/null +++ b/tilecrsr.h @@ -0,0 +1,79 @@ +/* +static char sccs_id[] = "@(#)tilecrsr.h 5.3 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#ifndef TILECURSOR +#include "tilecrsrP.h" +#endif + +extern TileCursor standard_tilecursor; +extern TileCursor background_tilecursor; +extern TileCursor body_tilecursor; + +extern TileCursor menu_tilecursor; + +extern TileCursor question_tilecursor; +extern TileCursor confirmation_tilecursor; + +extern TileCursor header_tilecursor; +extern TileCursor icon_tilecursor; + +extern TileCursor gadget_tilecursor; +extern TileCursor move_gadget_tilecursor; +extern TileCursor zoom_gadget_tilecursor; + +extern TileCursor left_tilecursor; +extern TileCursor right_tilecursor; +extern TileCursor top_tilecursor; +extern TileCursor bottom_tilecursor; + +extern TileCursor top_left_tilecursor; +extern TileCursor bottom_left_tilecursor; +extern TileCursor top_right_tilecursor; +extern TileCursor bottom_right_tilecursor; + +extern TileCursor track_open_tilecursor; +extern TileCursor corner_open_tilecursor; +extern TileCursor center_open_tilecursor; +extern TileCursor open_in_icon_tilecursor; + +extern TileCursor move_tilecursor; +extern TileCursor move_icon_tilecursor; + +extern TileCursor good_exchange_tilecursor; +extern TileCursor bad_exchange_tilecursor; + +extern TileCursor watch_tilecursor; + +/* ------------------------------------------------------------ */ + +extern void TileCursor_Init(); + +extern void TileCursor_Set(); + /* tilecursor */ + +extern TileCursor TileCursor_Make(); + diff --git a/tilecrsrP.h b/tilecrsrP.h new file mode 100644 index 0000000..8bde848 --- /dev/null +++ b/tilecrsrP.h @@ -0,0 +1,33 @@ +/* +static char sccs_id[] = "@(#)tilecrsrP.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +#ifndef TILECURSOR +#define TILECURSOR +#endif + +typedef long TileCursor; diff --git a/tileicon.h b/tileicon.h new file mode 100644 index 0000000..75e50d9 --- /dev/null +++ b/tileicon.h @@ -0,0 +1,75 @@ +/* +static char sccs_id[] = "@(#)tileicon.h 5.6 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +#ifndef TILEICON +#include "tileiconP.h" +#endif + +#ifndef BASETYPE +#include "basetype.h" +#endif + +#ifndef TILEMENU +#include "tilemenuP.h" +#endif + +extern TileIcon_Init(); + /* tilemenu, proc */ + +extern void TileIcon_Create(); + /* uwinp */ + +extern void TileIcon_Destroy(); + /* uwinp */ + +extern void TileIcon_Retitle(); + /* uwinp */ + +extern char *TileIcon_Get_Title(); + /* uwinp */ + +extern TWPoint TileIcon_Position(); + /* TWPoint pos */ + +extern void TileIcon_Move(); + /* Userwin *uwinp */ + /* TWPoint pos */ + +extern void TileIcon_Redraw(); + /* Userwin *uwinp */ + +extern void TileIcon_Compact(); + +extern void TileIcon_Add(); + /* uwinp */ + +extern void TileIcon_Remove(); + /* uwinp */ + + diff --git a/tileiconP.h b/tileiconP.h new file mode 100644 index 0000000..48b031d --- /dev/null +++ b/tileiconP.h @@ -0,0 +1,36 @@ +/* +static char sccs_id[] = "@(#)tileiconP.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#define TILEICON + + +typedef struct +{ + bool ever_iconized; + bool iconized; + char *iconstr; +} TileIcon; diff --git a/tilemenu.c b/tilemenu.c new file mode 100644 index 0000000..5334b5b --- /dev/null +++ b/tilemenu.c @@ -0,0 +1,268 @@ +#ifndef lint +static char sccs_id[] = "@(#)tilemenu.c 5.2 6/5/89"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + + +#include + +#include "basetype.h" +#include "buttonsP.h" +#include "rtlmenuX.h" + +#include "current.h" + +#include + +#define DEFAULT_MENU_MASK (RTLMenuOptionsMask)0x0b /* clockokay, savebits, rightoffset */ + +extern Display *dpy; +extern int scrn; + +static bool initialized = FALSE; + + +/* ------------------------------------------------------------ */ +TileMenu TileMenu_Create() +{ + if (!initialized) + { + initialized = TRUE; + RTLMenu_Initialize(dpy, scrn, DEFAULT_MENU_MASK); + } + return (TileMenu) RTLMenu_Create(); + +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +/*ARGSUSED*/ +pointer TileMenu_Data( menu, item ) + TileMenu menu; + TileMenuItem item; +{ + generic g; + + g = RTLMenu_Data((RTLMenuItem)item); + return GetGenPointer(g); +} + +/* ------------------------------------------------------------ */ + +TileMenu TileMenu_Get_Submenu( menu, str ) + TileMenu menu; + char *str; +{ + return RTLMenu_Get_Submenu((RTLMenu)menu, str); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +TileMenuItem TileMenu_Append_String( menu, str, strval ) + TileMenu menu; + char *str; + char *strval; +{ + generic g; + + SetGenPointer(g,strval); + + return (TileMenuItem) + RTLMenu_Append_String((RTLMenu)menu, str, g); +} + +/* ------------------------------------------------------------ */ + +TileMenuItem TileMenu_Append_Callback( menu, backproc ) + TileMenu menu; + VoidFunc backproc; +{ + return (TileMenuItem) + RTLMenu_Append_Callback((RTLMenu)menu, backproc); +} + +/* ------------------------------------------------------------ */ + +TileMenuItem TileMenu_Append_Call( menu, str, proc, ptrval ) + TileMenu menu; + char *str; + VoidFunc proc; + pointer ptrval; +{ + generic g; + + SetGenPointer(g,ptrval); + + return (TileMenuItem) + RTLMenu_Append_Call((RTLMenu)menu, str, proc, g); +} + +/* ------------------------------------------------------------ */ + +TileMenuItem TileMenu_Append_Checkback( menu, str, checkproc, proc ) + TileMenu menu; + char *str; /* Menu string */ + BoolFunc checkproc; /* Boolean function called when menu entry + is about to be displayed. If true, then + the item appears checked; if false, then + it does not */ + VoidFunc proc; /* function to be called when the item + is selected */ +{ + generic g; + + SetGenPointer(g,NULL); + + return (TileMenuItem) + RTLMenu_Append_Checkback((RTLMenu)menu, str, checkproc, proc, g); + +} +/* ------------------------------------------------------------ */ + +TileMenuItem TileMenu_Append_Submenu( menu, str, submenu ) + TileMenu menu; + char *str; + TileMenu submenu; +{ + return (TileMenuItem) + RTLMenu_Append_Submenu((RTLMenu)menu, str, (RTLMenu)submenu); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void TileMenu_Replace_Data_By_String( menu, data, str ) + TileMenu menu; + pointer data; + char *str; +{ + generic g; + + SetGenPointer(g, data); + + RTLMenu_Replace_Data_By_String((RTLMenu)menu, g, str); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void TileMenu_Activate_Entry( menu, item ) + TileMenu menu; + TileMenuItem item; +{ + RTLMenu_Activate_Entry((RTLMenu)menu, (RTLMenuItem)item); +} + +/* ------------------------------------------------------------ */ + +void TileMenu_Inactivate_Entry( menu, item ) + TileMenu menu; + TileMenuItem item; +{ + RTLMenu_Inactivate_Entry((RTLMenu)menu, (RTLMenuItem)item); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +bool TileMenu_Has_Data( menu, val ) + TileMenu menu; + pointer val; +{ + generic g; + + SetGenPointer(g,val); + + return RTLMenu_Has_Data((RTLMenu)menu, g); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void TileMenu_Delete_Entries( menu ) + TileMenu menu; +{ + RTLMenu_Delete_Entries((RTLMenu)menu); +} + +/* ------------------------------------------------------------ */ + +void TileMenu_Delete_String( menu, str ) + TileMenu menu; + char *str; +{ + RTLMenu_Delete_String((RTLMenu)menu, str); +} + +/* ------------------------------------------------------------ */ + +void TileMenu_Delete_Data( menu, val ) + TileMenu menu; + pointer val; +{ + generic g; + + SetGenPointer(g, val); + + RTLMenu_Delete_Data((RTLMenu)menu, g); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +/*ARGSUSED*/ +void TileMenu_Box( menu ) + TileMenu menu; +{ + /* Commented out */ +} + +/* ------------------------------------------------------------ */ + +/*ARGSUSED*/ +void TileMenu_Enter( menu, butnum, kind, buttime ) + TileMenu menu; + int butnum; + enum ButKind kind; + Time buttime; +{ + RTLPoint pos; + + pos.x = current_pos.x; + pos.y = current_pos.y; + RTLMenu_Enter((RTLMenu)menu, (unsigned int)butnum, buttime, + RootWindow(dpy, scrn), pos); + XSync(dpy,0); +} +/* ------------------------------------------------------------ */ + +TWPoint TileMenu_Entry_Pos() +{ + RTLPoint pos; + TWPoint return_pos; + + pos = RTLMenu_Entry_Pos(); + return_pos.x = pos.x; + return_pos.y = pos.y; + + return return_pos; +} + diff --git a/tilemenu.h b/tilemenu.h new file mode 100644 index 0000000..44c0249 --- /dev/null +++ b/tilemenu.h @@ -0,0 +1,102 @@ +/* +static char sccs_id[] = "@(#)tilemenu.h 5.6 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +#ifndef TILEMENU +#include "tilemenuP.h" +#endif + +extern TileMenu TileMenu_Create(); + +extern void TileMenu_Destroy(); + /* menu */ + +/* ------------------------------------------------------------ */ + +extern pointer TileMenu_Data(); + /* menu, item */ + +extern TileMenu TileMenu_Get_Submenu(); + /* menu, str */ + +/* ------------------------------------------------------------ */ + +extern TileMenuItem TileMenu_Append_String(); + /* menu, str, strval */ + +extern TileMenuItem TileMenu_Append_Callback(); + /* menu, backproc */ + +extern TileMenuItem TileMenu_Append_Checkback(); + /* menu, str, checkproc, proc */ + +extern TileMenuItem TileMenu_Append_Call(); + /* menu, str, proc, ptrval */ + +extern TileMenuItem TileMenu_Append_Submenu(); + /* menu, str, submenu */ + +/* ------------------------------------------------------------ */ + +extern void TileMenu_Replace_Data_By_String(); + /* menu, data, str */ + +/* ------------------------------------------------------------ */ + +extern void TileMenu_Activate_Entry(); + /* menu, item */ + +extern void TileMenu_Inactivate_Entry(); + /* menu, item */ + +/* ------------------------------------------------------------ */ + +extern bool TileMenu_Has_Data(); + /* menu, val */ + +/* ------------------------------------------------------------ */ + +extern void TileMenu_Delete_Entries(); + /* menu */ + +extern void TileMenu_Delete_String(); + /* menu, str */ + +extern void TileMenu_Delete_Data(); + /* menu, val */ + +/* ------------------------------------------------------------ */ + +extern void TileMenu_Box(); + /* menu */ + +extern void TileMenu_Enter(); + /* menu, butnum, kind */ + +extern TWPoint TileMenu_Entry_Pos(); + diff --git a/tilemenuP.h b/tilemenuP.h new file mode 100644 index 0000000..2635e3b --- /dev/null +++ b/tilemenuP.h @@ -0,0 +1,36 @@ +/* +static char sccs_id[] = "@(#)tilemenuP.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +#ifndef TILEMENU +#define TILEMENU + +typedef pointer TileMenu; +typedef pointer TileMenuItem; + +#endif diff --git a/tileopts.c b/tileopts.c new file mode 100644 index 0000000..b275edb --- /dev/null +++ b/tileopts.c @@ -0,0 +1,34 @@ +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include +#include "basetype.h" +#include "tileoptsP.h" + +bool globals[(int)LENGTH_GLOBAL_OPTIONS]; + +void +tileopts_nil() +{ +} diff --git a/tileopts.h b/tileopts.h new file mode 100644 index 0000000..6583db8 --- /dev/null +++ b/tileopts.h @@ -0,0 +1,50 @@ +/* +static char sccs_id[] = "@(#)tileopts.h 5.6 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +extern bool ADJUST_PLACEMENT_FAIRLY; +extern bool ALLOW_AUTOMATIC_CLOSE; +extern bool ALLOW_AUTO_CLOSE_MORE_RECENT; +extern bool ALLOW_AUTOMATIC_SHRINK; +extern bool ALLOW_AUTO_SHRINK_MORE_RECENT; +extern bool BEST_FIT_IS_TIGHT; +extern bool BREAK_MINIMUMS_FAIRLY; +extern bool ENABLE_GRAVITY; +extern bool ENFORCE_MAXIMUMS; +extern bool ENFORCE_MINIMUMS; +extern bool FIRST_FIT; +extern bool PREFER_CLOSE_TO_SEARCH; +extern bool PREFER_CLOSE_TO_SHRINK; +extern bool PREFER_SHRINK_TO_SEARCH; +extern bool PRORATE_VERTICALLY_FIRST; + +#define Tilwin_Get_Global_Option(opt) \ + (opt) + +#define Tilwin_Set_Global_Option(opt,val) \ + (opt) = (val) diff --git a/tileoptsP.h b/tileoptsP.h new file mode 100644 index 0000000..6c8be59 --- /dev/null +++ b/tileoptsP.h @@ -0,0 +1,51 @@ +/* +static char sccs_id[] = "@(#)tileoptsP.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +typedef enum { + + ADJUST_PLACEMENT_FAIRLY, + ALLOW_AUTOMATIC_CLOSE, + ALLOW_AUTO_CLOSE_MORE_RECENT, + ALLOW_AUTOMATIC_SHRINK, + ALLOW_AUTO_SHRINK_MORE_RECENT, + BEST_FIT_IS_TIGHT, + BREAK_MINIMUMS_FAIRLY, + ENABLE_GRAVITY, + ENFORCE_MAXIMUMS, + ENFORCE_MINIMUMS, + FIRST_FIT, + PREFER_CLOSE_TO_SHRINK, + PREFER_AUTOMATIC_CLOSE_TO_SEARCH, + PREFER_AUTO_SHRINK_TO_SEARCH, + PREFER_SHRINK_TO_SEARCH, + PRORATE_VERTICALLY_FIRST, + + LENGTH_GLOBAL_OPTIONS +} Global_Options; + diff --git a/tileoptsS.h b/tileoptsS.h new file mode 100644 index 0000000..d236347 --- /dev/null +++ b/tileoptsS.h @@ -0,0 +1,50 @@ +/* +static char sccs_id[] = "@(#)tileoptsS.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + + +char *(global_strs[LENGTH_GLOBAL_OPTIONS]) = { + + "adjustPlacementFairly", + "allowAutomaticClose", + "allowAutomaticCloseMoreRecent", + "allowAutomaticShrink", + "allowAutomaticShrinkMoreRecent", + "bestFitIsTight", + "breakMinimumsFairly", + "enableGravity", + "enforceMaximums", + "enforceMinimums", + "firstFit", + "preferCloseToShrink", + "preferAutomaticCloseToSearch", + "preferAutomaticShrinkToSearch", + "preferShrinkToSearch", + "prorateVerticallyFirst" }; + + diff --git a/tool.c b/tool.c new file mode 100644 index 0000000..13cfa29 --- /dev/null +++ b/tool.c @@ -0,0 +1,104 @@ +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + + +#include + +#include "basetype.h" + +#include "client.h" +#include "tilemenu.h" + +extern FILE* Open_Read(); + +/* ------------------------------------------------------------ */ + +typedef struct { + + char *menu_name; + char *cmd_line; + +} Tool; + +#define ToolMax 60 + +static int numtools = 0; + +Tool tool[ToolMax]; + +/* ------------------------------------------------------------ */ + +bool Tool_Init( manager_tool_menu, invoker ) + TileMenu manager_tool_menu; + VoidFunc invoker; +{ + FILE *stream; + char cmdstr[256], menustr[128]; + char *cmdlin; + + stream = Open_Read( ".rtl.tools" ); + if ( stream != NULL ) + { + while ( fgets( menustr, 128, stream ) != NULL ) + { + cmdlin = cmdstr; + if ( fgets( cmdlin, 256, stream ) != NULL ) + { + menustr[ strlen(menustr) - 1 ] = '\0'; + str_copy( tool[numtools].menu_name, menustr ); + + TileMenu_Append_Call( manager_tool_menu, + tool[numtools].menu_name, invoker, + (pointer)numtools ); + + while ( (*cmdlin != '\0') && + ( (*cmdlin == ' ') || (*cmdlin == '\t') ) ) + cmdlin++; + cmdlin[ strlen(cmdlin) - 1 ] = '\0'; + str_copy( tool[numtools].cmd_line, cmdlin ); + + numtools++; + } + } + fclose ( stream ); + } + return (numtools > 0); +} + +/* ------------------------------------------------------------ */ + +void Tool_Invoke( num ) + int num; +{ + if ( num < numtools ) + Client_Window_Create( tool[num].cmd_line ); +} + +/* ------------------------------------------------------------ */ + +void Tool_Initiate() +{ + Client_Startup( ".rtl.startup" ); +} + diff --git a/tool.h b/tool.h new file mode 100644 index 0000000..75ef571 --- /dev/null +++ b/tool.h @@ -0,0 +1,37 @@ +/* +static char sccs_id[] = "@(#)tool.h 5.6 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +extern bool Tool_Init(); +/* menu */ + +extern void Tool_Invoke(); +/* &tool */ + +extern void Tool_Initiate(); +/* str */ diff --git a/track_menu.c b/track_menu.c new file mode 100644 index 0000000..ba64519 --- /dev/null +++ b/track_menu.c @@ -0,0 +1,821 @@ +#ifndef lint +static char sccs_id[] = "@(#)track_menu.c 5.2 6/2/89"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +/* + RTL Menu Package Version 1.2 + by Joe Camaratta and Mike Berman, Siemens RTL, Princeton NJ, 1988 + + track_menu.c: bring up menus and track the mouse +*/ + +#include "arrow_icon.h" +#include "null_icon.h" +#include "rtlmenuP.h" +#include "evsaveX.h" + +#define CLICK_TIME 360 /* in milliseconds */ +#define CursorLockMask (ButtonReleaseMask) + +/* Event macros */ + +#define EventGetXCoord(rep) ((rep).xmotion.x) +#define EventGetYCoord(rep) ((rep).xmotion.y) +#define EventType(rep) ((rep).type) +#define EventXWindow(rep) ((rep).xcrossing.window) +#define EventXTime(rep) ((rep).xcrossing.time) +#define EventXMode(rep) ((rep).xcrossing.mode) +#define EventXRootX(rep) ((rep).xcrossing.x_root) +#define EventXRootY(rep) ((rep).xcrossing.y_root) +#define EventXDetail(rep) ((rep).xcrossing.detail) +#define EventMWindow(rep) ((rep).xmotion.window) +#define EventMTime(rep) ((rep).xmotion.time) +#define EventButton(rep) ((rep).xbutton.button) +#define EventBWindow(rep) ((rep).xbutton.window) +#define EventBTime(rep) ((rep).xbutton.time) +#define EventEX(rep) ((rep).xexpose.x) +#define EventEY(rep) ((rep).xexpose.y) +#define EventEWidth(rep) ((rep).xexpose.width) +#define EventEHeight(rep) ((rep).xexpose.height) +#define PointerEvent(rep) \ + ((EventType(rep) == ButtonPress) || \ + (EventType(rep) == ButtonRelease) || \ + (EventType(rep) == MotionNotify) || \ + (EventType(rep) == EnterNotify) || \ + (EventType(rep) == LeaveNotify) || \ + (EventType(rep) == FocusIn) || \ + (EventType(rep) == FocusOut)) +#define KeyEvent(rep) \ + ((EventType(rep) == KeyPress) || (EventType(rep) == KeyRelease)) +#define SelectChildX(menu, item, rep) \ + (TestOptionFlag(menu, fixedchild)? \ + (MenuX(menu) + ItemGetArrowPosition(item)): \ + MIN(MenuX(menu) + ItemGetArrowPosition(item),EventXRootX(rep))) + +/* Possible states for the state machine */ +typedef enum +{ + Initial, /* Inside a submenu, but not any item */ + CheckTrigger, /* Inside an item that has submenu, checking for pullright */ + Leaf, /* Inside an item with no submenu */ + Exit, /* Preparing to exit */ + LevelControl /* Not in any submenu, waiting to enter something */ +} State; + +/* functions in the menu.c module */ + +extern RTLMenu NewMenu(); +extern void DisposeMenu (); +extern void Draw_Menu(); +extern void ClearInitialItem(); +extern void PlacePointer(); +extern void AdjustPointer(); +extern void SetInitialItem(); +extern void Undisplay_Menu(); +extern void MenuInvert(); +extern void Draw_Item(); + +extern RTLMenuItem MenuItemByName (); +extern RTLMenuItem Display_Menu(); +extern RTLMenuItem MenuGetItem(); +extern RTLMenuItem GetInitialItem(); +extern RTLMenu MenuGetMenu(); + +void LockCursor(); +void UnlockCursor(); +void GetNextSignificantEvent(); +void PopSubmenu(); +void Highlight(); +void Unhighlight(); +void TossExtraMoves(); +void ProcessExposeEvents(); + +bool GrabPointer(); + +State LevelControlState(); +State GetItemState(); +State InitialState(); +State CheckTriggerState(); +State LeafState(); + +static RTLMenu current_item; +static RTLMenu current_menu; +static Window root_window; +static Display *display; +static int level; /* submenu level */ +static Time button_time; /* time button press invoked */ +static Cursor wait_cursor = None; /* empty cursor for lock state */ +static bool click_allowed; +static EventStore ev_save; +static bool locked = FALSE; + +RTLMenuItem TrackMenu(root_menu, root_x, root_y, init_button, root, buttime) + RTLMenu root_menu; /* Pointer to root menu requested to pop up */ + int root_x, root_y; /* Position to start menu */ + int init_button; /* The # of button used to pop up menu */ + Window root; /* Window label for parent of menu */ + Time buttime; /* timestamp for button (or 0, if CLICK == 0) */ +{ + State CurrentState = LevelControl; + XEvent Event_Reply; + int open_x; + bool selected = FALSE; + RTLMenuItem selected_item; + + /* Initialize globals */ + + button_time = buttime; + root_window = root; + level = 0; + current_menu = root_menu; + display = MenuDisplay(current_menu); + click_allowed = (TestOptionFlag(current_menu, clickokay))? TRUE : FALSE; + + /* If not already done, set up the null cursor for lock state */ + if (wait_cursor == None) + { + Pixmap wc_pixmap; + XColor fg, bg; + + wc_pixmap = XCreateBitmapFromData (display, root_window, + null_icon_bits, + null_icon_width, null_icon_height); + wait_cursor = XCreatePixmapCursor (display, wc_pixmap, wc_pixmap, + &fg, &bg, 1, 1); + } + + + /* *** Put up initial menus, and get into correct state *** */ + + AdjustPointer(current_menu, root_x, root_y); + + /* Get the present state, so it can be restored later */ + /* Any events on the queue when we start get saved now, restored later */ + SaveEvents (display, &ev_save, ~(unsigned long) ButtonReleaseMask); + + if (!GrabPointer() || + !(current_item = Display_Menu(current_menu, NULLMENU, root_x, root_y))) + { + CurrentState = Exit; + } + else + { + LockCursor(ItemWindow(current_item)); + open_x = root_x; + } + + /* Push to appropriate previous item, if any */ + while (MenuHasInitialItem(current_menu) && (CurrentState != Exit)) + { + ProcessExposeEvents(); + current_item = GetInitialItem(current_menu); + ClearInitialItem(current_menu); + + /* if the initial item can't be selected, take first in list */ + if (ItemIsNull(current_item) || ItemIsDisabled(current_item)) + { + current_item = MenuItems(current_menu); + break; + } + else if (ItemIsLeaf(current_item)) /* then we're done */ + break; + else + { + open_x += ItemGetArrowPosition(current_item); + Highlight(current_item); + TossExtraMoves(ItemWindow(current_item)); + (void)PushSubmenu(open_x); + } + } + ProcessExposeEvents(); + if (CurrentState != Exit) + { + CurrentState = (ItemIsLeaf(current_item))? Leaf: CheckTrigger; + if (!TestItemFlag(current_item, itemDisabled)) + Highlight(current_item); + } + LockCursor(ItemWindow(current_item)); + PlacePointer(current_menu,current_item); + DisposeEvents(display, (Mask)(PointerMotionMask | EnterWindowMask | + LeaveWindowMask | ExposureMask)); + UnlockCursor(); + + /* State Machine */ + + while (CurrentState != Exit) + { + GetNextSignificantEvent(display, &Event_Reply, init_button); + + switch (CurrentState) + { + case LevelControl: + CurrentState = LevelControlState(Event_Reply); + break; + case Initial: + CurrentState = InitialState(Event_Reply); + break; + case CheckTrigger: + CurrentState = CheckTriggerState(Event_Reply); + break; + case Leaf: + CurrentState = LeafState(Event_Reply, &selected); + break; + default: + CurrentState = Exit; + break; + } + } + + /* Clean up and exit */ + selected_item = (selected)? current_item : NULLITEM; + while (level) + { + if (selected && !TestOptionFlag(current_menu, forgetlast)) + SetInitialItem(current_menu, current_item); + PopSubmenu(); + } + if (selected && !TestOptionFlag(current_menu, forgetlast)) + { + SetInitialItem(current_menu, current_item); + } + Undisplay_Menu(current_menu); + UnlockCursor(); + XUngrabPointer(display, CurrentTime); + + /* Push back any events that were lying around when menus started */ + XFlush(display); + DisposeEvents(display, + (Mask) (PointerMotionMask | EnterWindowMask | + LeaveWindowMask)); + RestoreEvents(display, &ev_save); + return(selected_item); +} + +bool GrabPointer() +{ + int tries = 10; + + while((XGrabPointer(display, + RootWindow(display, MenuScreen(current_menu)), + True, CursorLockMask, GrabModeAsync, + GrabModeAsync, None, + wait_cursor, CurrentTime) != GrabSuccess) + && tries--) + sleep(1); + if (tries) + return(TRUE); + else + return(FALSE); +} + +/* Lock the cursor: make it disappear, and ignore events it generates. */ +/* Optionally, confine it to a single window. */ +/* (Using "None" for confine_window doesn't confine it. ) */ +void LockCursor(confine_window) + Window confine_window; +{ + int result; + + locked = TRUE; + result = XGrabPointer(display, + RootWindow(display, MenuScreen(current_menu)), + True, CursorLockMask, GrabModeAsync, + GrabModeAsync, confine_window, + wait_cursor, CurrentTime); + return; +} + +/* Unlock (and unconfine) the cursor. */ +void UnlockCursor() +{ + int result; + + if (locked) + { + locked = FALSE; + result = XGrabPointer(display, + RootWindow(display, MenuScreen(current_menu)), + True, MenuEventMask, + GrabModeAsync, GrabModeAsync, None, + MenuCursor(current_menu), CurrentTime); + } + return; + +} + +/* Keep getting the X events, until finding one that may be interesting */ +/* to the operation of the state machine. */ +void GetNextSignificantEvent(displ,Event_Reply,init_button) + Display *displ; + XEvent *Event_Reply; + int init_button; /* the button that initiated the menu */ +{ + XEvent Next_Event_Reply; + bool InsignificantEvent = True; + + /* Loop as long as any of a number of "insignificant" events */ + /* are found; when the event no longer matches one of the tests, */ + /* it is assumed to be "significant" and returned.*/ + do + { + XNextEvent(displ, Event_Reply); + + /* If this event is an "enter", check whether there is a */ + /* "leave" for the same window already in the queue, */ + /* immediately following it; if so, throw them both out */ + /* and get the next event */ + /* NOTE: might try to look further ahead, but this is */ + /* tricky because other events might intervene. */ + if ((EventType(*Event_Reply) == EnterNotify) && + (EventXMode(*Event_Reply) == NotifyNormal) && + (QLength(displ) > 0) && + (MenuGetMenu(current_menu, EventXWindow(*Event_Reply)) + != current_menu)) + { + XPeekEvent(displ,&Next_Event_Reply); + if ((EventType(Next_Event_Reply) == LeaveNotify) && + (EventXMode(Next_Event_Reply) == NotifyNormal) && + (EventXWindow(Next_Event_Reply) == EventXWindow(*Event_Reply))) + { + XNextEvent(displ, Event_Reply); + XNextEvent(displ, Event_Reply); + } + } + if (EventNotSignificant(*Event_Reply, init_button)) + { + if (!(PointerEvent(*Event_Reply) || KeyEvent(*Event_Reply) + || EventType(*Event_Reply) == Expose)) + { + /* might be significant elsewhere -- save it for later */ + AddEventToStore(&ev_save, *Event_Reply); + } + } + else + InsignificantEvent = FALSE; + } + while (InsignificantEvent); + return; + +} + +/* Check whether the event matches one of the events considered */ +/* "not significant".*/ +bool EventNotSignificant(Event_Reply, init_button) + XEvent Event_Reply; + int init_button; +{ + /* Insignificant if not in following list */ + return (!((EventType(Event_Reply) == ButtonRelease) || + (EventType(Event_Reply) == MotionNotify) || + (EventType(Event_Reply) == EnterNotify) || + (EventType(Event_Reply) == Expose) || + (EventType(Event_Reply) == LeaveNotify)) + || + /* Insignificant if leave or enter is not "Normal" */ + (((EventType(Event_Reply) == LeaveNotify) || + (EventType(Event_Reply) == EnterNotify)) && + (EventXMode(Event_Reply) != NotifyNormal)) + || + /* Insignificant if hit button other than initial one */ + ((EventType(Event_Reply) == ButtonRelease) && + (EventButton(Event_Reply) != init_button)) + || + /* Insignificant if it's an expose and we're in savebits mode */ + ((EventType(Event_Reply) == Expose) && + TestOptionFlag(current_menu, savebits)) + || + /* Insignificant if tail end of a click -- and clicks allowed */ + (click_allowed && + (EventType(Event_Reply) == ButtonRelease) && + (EventBTime(Event_Reply) - button_time < CLICK_TIME)) + ); +} + +State LevelControlState(rep) + XEvent rep; +{ + State next_state; + RTLMenu entered_menu; + RTLMenuItem entered_item; + + switch (EventType(rep)) + { + case MotionNotify: + case LeaveNotify: + next_state = LevelControl; /* loop back to this state */ + break; + case EnterNotify: + /* Decide whether we've entered a menu window or item window */ + entered_menu = MenuGetMenu(current_menu, EventXWindow(rep)); + entered_item = MenuGetItem(current_menu,EventXWindow(rep)); + + if ((MenuIsNull(entered_menu)) && (ItemIsNull(entered_item))) + /* Must be some other window; carry on */ + next_state = LevelControl; + else if (!ItemIsNull(entered_item) && + MenuIsDisplayed(ItemMenu(entered_item))) + { + /* we entered an item, but not a window. This should only happen */ + /* when we stayed in the parent of the current submenu. So, */ + /* Pop that submenu and get to the item. */ + if (level) + { + LockCursor(ItemWindow(entered_item)); + PopSubmenu(); + ProcessExposeEvents(); + UnlockCursor(); + current_item = entered_item; + Highlight(current_item); + next_state = GetItemState(rep); + } + else /* I must be very confused... */ + { + next_state = Exit; + } + } + + else if (!MenuIsNull(entered_menu)&& + MenuIsDisplayed(entered_menu)) + { + /* entered a menu that is displayed */ + while ((current_menu != entered_menu) && level) + /* drop down the menu that was entered */ + PopSubmenu(); + ProcessExposeEvents(); + UnlockCursor(); + if (current_menu == entered_menu) + next_state = Initial; + else + { + next_state = Exit; + } + } + else + next_state = LevelControl; + break; + case ButtonRelease: + next_state = Exit; + break; + default: + next_state = Exit; + break; + } + return next_state; +} + +/* Figure out the status of the item we've just entered */ +State GetItemState(rep) + XEvent rep; +{ + int open_x; + State next_state; + + if (ItemIsNull(current_item)) + { + next_state = Exit; + } + else if (MenuIsNull(current_menu)) + { + next_state = Exit; + } + else if (ItemIsLeaf(current_item) || + (TestItemFlag(current_item, itemDisabled))) + { + if (MenuHasInitialItem(current_menu)) + ClearInitialItem(current_menu); + next_state = Leaf; + } + else if (EventGetXCoord(rep) >= (int) ItemGetArrowPosition(current_item)) + { + /* entered item in "auto pop-up zone", i.e., over pull-right arrow. */ + LockCursor(ItemWindow(current_item)); + TossExtraMoves(ItemWindow(current_item)); + if (PushSubmenu(SelectChildX(current_menu, current_item, rep))) + { + LockCursor(ItemWindow(current_item)); + PlacePointer(current_menu, current_item); + next_state = LevelControl; + ProcessExposeEvents(); + } + else + next_state = CheckTrigger; + UnlockCursor(); + } + + else if (MenuHasInitialItem(current_menu)) + { + /* Entered menu has initial item -- move to it */ + current_item = GetInitialItem(current_menu); + open_x = ItemGetArrowPosition(current_item) + + EventXRootX(rep); + ClearInitialItem(current_menu); + LockCursor(ItemWindow(current_item)); + if (PushSubmenu(open_x)) + { + ProcessExposeEvents(); + LockCursor(ItemWindow(current_item)); + PlacePointer(current_menu, current_item); + next_state = Initial; + } + UnlockCursor(); + } + else /* parent pull */ + next_state = CheckTrigger; + return next_state; + +} + +State InitialState( rep) + XEvent rep; +{ + State next_state; + + switch (EventType(rep)) + { + case EnterNotify: + if (MenuIsNull(current_menu)) + { + next_state = Exit; + } + else if (EventXDetail(rep) == NotifyInferior) + next_state = Initial; + else + { + current_item = MenuGetItem(current_menu, EventXWindow(rep)); + if (ItemIsNull(current_item)) + { + next_state = Exit; + } + else + { + Highlight(current_item); + next_state = GetItemState(rep); + } + } + break; + case LeaveNotify: + /* Decide whether we're actually leaving */ + /* this menu for another submenu or the root, */ + /* or going into an item. */ + next_state = (EventXDetail(rep) == NotifyInferior)? + Initial : LevelControl; + break; + case ButtonRelease: + next_state = Exit; + break; + case MotionNotify: + next_state = Initial; + break; + default: + next_state = Exit; + break; + } + return next_state; + +} + +#define NotSet -1 +/* Look to see if pull-right is requested */ +State CheckTriggerState(rep) + XEvent rep; +{ + State next_state = CheckTrigger; + static int Trigger = NotSet; + static int OldX, NewX, childX; + + if (MenuIsNull(current_menu) || ItemIsNull(current_item)) + { + next_state = Exit; + goto exit; + } + if (Trigger == NotSet) /* set it */ + { + Trigger = MIN(EventGetXCoord(rep) + MenuDelta(current_menu), + ItemGetArrowPosition(current_item)); + NewX = NotSet; + } + switch (EventType(rep)) + { + case LeaveNotify: + next_state = Initial; + Unhighlight(MenuGetItem(current_menu, EventXWindow(rep))); + Trigger = NotSet; + break; + case EnterNotify: /* Shouldn't really happen, but ... */ + next_state = CheckTrigger; + break; + case ButtonRelease: + next_state = Exit; + Trigger = NotSet; + break; + + case MotionNotify: + next_state = CheckTrigger; + OldX = NewX; + NewX = EventGetXCoord(rep); + if (NewX >= Trigger) + { + LockCursor(ItemWindow(current_item)); + childX = SelectChildX(current_menu, current_item, rep); + Trigger = NotSet; + if (PushSubmenu(childX)) + { + next_state = LevelControl; + ProcessExposeEvents(); + LockCursor(ItemWindow(current_item)); + PlacePointer(current_menu, current_item); + } + UnlockCursor(); + } + else if (NewX < OldX) /* reverse motion */ + Trigger = MIN(Trigger, NewX + MenuDelta(current_menu)); + break; + default: + next_state = Exit; + break; + } + exit: + return next_state; +} + +State LeafState(rep,selected) + XEvent rep; + bool *selected; +{ + State next_state; + + switch(EventType(rep)) + { + case LeaveNotify: + Unhighlight(MenuGetItem(current_menu, EventXWindow(rep))); + next_state = Initial; + break; + case ButtonRelease: + if (!TestItemFlag(current_item, itemDisabled)) + *selected = TRUE; + next_state = Exit; + break; + case EnterNotify: + case MotionNotify: /* if events set right, this never happens */ + next_state = Leaf; + break; + default: + next_state = Exit; + break; + } + return next_state; +} + +bool PushSubmenu(x) + int x; +{ + int y; + bool pushed; + RTLMenuItem new_current_item; + + if (ItemIsNull(current_item)) + { + pushed = FALSE; + } + else if (MenuIsNull(ItemSubmenu(current_item))) + { + pushed = FALSE; + } + else if (ItemIsNull(MenuItems(ItemSubmenu(current_item)))) + /* submenu has no items -- don't push, but not an error */ + pushed = FALSE; + else + { + y = ItemGetMiddleY(current_item); + ++level; + + if (new_current_item = + Display_Menu(ItemSubmenu(current_item), current_menu, x, y)) + { + XFlush(display); + current_menu = ItemSubmenu(current_item); + current_item = new_current_item; + pushed = TRUE; + } + else + { + pushed = FALSE; + } + } + return pushed; +} + +void PopSubmenu() +{ + RTLMenu parent; + RTLMenuItem item; + + --level; + parent = MenuParent(current_menu); + Undisplay_Menu(current_menu); + current_menu = parent; + if (!MenuIsNull(current_menu)) + { + item = MenuItemHighlighted(current_menu); + if (!ItemIsNull(item)) + { + current_item = item; + } + } + + return; + +} + +void Highlight(item) + RTLMenuItem item; +{ + RTLMenuItem old_highlight; + + + old_highlight = MenuItemHighlighted(current_menu); + if ((item != old_highlight) && /* else, already highlighted */ + (!ItemIsNull(item))) + { + if (!ItemIsNull(old_highlight)) + Unhighlight(old_highlight); + if (!TestItemFlag(current_item, itemDisabled)) + { + MenuInvert(ItemMenu(item), ItemWindow(item)); + SetHighlightItem(ItemMenu(item), item); + } + } + return; + +} + +void Unhighlight(item) + RTLMenuItem item; +{ + if (!ItemIsNull(item)) + { + if (MenuItemHighlighted(current_menu) == item) + { + MenuInvert(ItemMenu(item), ItemWindow(item)); + ResetHighlightItem(ItemMenu(item)); + } + } + return; + +} + +void TossExtraMoves(window) + Window window; +{ + XEvent ev; + + + while (XCheckTypedWindowEvent(display, window, MotionNotify, &ev)); + + return; + +} + +void ProcessExposeEvents() +{ + RTLMenuItem item; + XEvent ev; + + if (!TestOptionFlag(current_menu, savebits)) + { + XSync(display,0); + + while (XCheckTypedEvent(display, Expose, &ev)) + { + item = MenuGetItem(current_menu, EventXWindow(ev)); + if (!ItemIsNull(item)) + Draw_Item(ItemMenu(item), item, EventEX(ev), EventEY(ev), + EventEWidth(ev), EventEHeight(ev)); + } + } + return; +} diff --git a/trial.h b/trial.h new file mode 100644 index 0000000..c33641f --- /dev/null +++ b/trial.h @@ -0,0 +1,38 @@ +/* +static char sccs_id[] = "@(#)trial.h 5.7 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +#include "trialP.h" + +extern bool Trial_Satisfied(); +extern bool Trial_Place(); +extern bool Trial_Improve_Grow(); +extern bool Trial_Edge_Sweep(); +extern TWPoint Trial_Slide_Nearest_In_Area(); +extern TWPoint Trial_Slide_Nearest_Horizontal(); +extern TWPoint Trial_Slide_Nearest_Vertical(); + diff --git a/trialP.h b/trialP.h new file mode 100644 index 0000000..20e5c59 --- /dev/null +++ b/trialP.h @@ -0,0 +1,35 @@ +/* +static char sccs_id[] = "@(#)trialP.h 5.5 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#define MUCHO_WINDOWS 1000 + +#define Trial_Improve_Open(winp, rect, stamp, better, nclosed, nexpensive, naffected) \ + Trial_Improve_Grow(winp, rect, NoSide, (TWPoint *) NULL, stamp, \ + better, nclosed, nexpensive, naffected) + + + diff --git a/try_grow.c b/try_grow.c new file mode 100644 index 0000000..0c704d8 --- /dev/null +++ b/try_grow.c @@ -0,0 +1,197 @@ +#ifndef lint +static char sccs_id[] = "@(#)try_grow.c 5.4 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" +#include "twinD.h" +#include "twin.h" +#include "gravity.h" +#include "check.h" +#include "trialP.h" + +extern bool Check_Grow(); +extern bool Trial_Place(); + + +/* NOTE: Trial_Grow does NOT check to make sure that the rect + * satisfies the min/max/FIXED requirements of the window + */ + +bool +Trial_Improve_Grow(winp, rect, side, ptp, stamp, + better, nclosed, nexpensive, naffected) + Tilwin *winp; + TWRectangle rect; + Side side; + TWPoint *ptp; + TimeStamp stamp; + bool better; + int *nclosed; + int *nexpensive; + int *naffected; +{ + TWRectangle extension_rect, + crect, + desk_rect; + + switch (side) { + case Left: + if (Is_Odd_Number(Get_PtX(*ptp)) == TRUE) + Get_PtX(*ptp)++; + Get_LeftX(extension_rect) = Get_PtX(*ptp); + Get_RightX(extension_rect) = Get_LeftX(rect) - 1; + Get_TopY(extension_rect) = Get_TopY(rect); + Get_BottomY(extension_rect) = Get_BottomY(rect); + break; + case Right: + if (Is_Even_Number(Get_PtX(*ptp)) == TRUE) + Get_PtX(*ptp)--; + Get_LeftX(extension_rect) = Get_RightX(rect) + 1; + Get_RightX(extension_rect) = Get_PtX(*ptp); + Get_TopY(extension_rect) = Get_TopY(rect); + Get_BottomY(extension_rect) = Get_BottomY(rect); + break; + case Top: + if (Is_Odd_Number(Get_PtY(*ptp)) == TRUE) + Get_PtY(*ptp)++; + Get_LeftX(extension_rect) = Get_LeftX(rect); + Get_RightX(extension_rect) = Get_RightX(rect); + Get_TopY(extension_rect) = Get_PtY(*ptp); + Get_BottomY(extension_rect) = Get_TopY(rect) - 1; + break; + case Bottom: + if (Is_Even_Number(Get_PtY(*ptp)) == TRUE) + Get_PtY(*ptp)--; + Get_LeftX(extension_rect) = Get_LeftX(rect); + Get_RightX(extension_rect) = Get_RightX(rect); + Get_TopY(extension_rect) = Get_BottomY(rect) + 1; + Get_BottomY(extension_rect) = Get_PtY(*ptp); + break; + case NoSide: + extension_rect = rect; + break; + default: + /* stop right here if we have a bad side */ + return(FALSE); + /* break; */ + } + + /* check to make sure rectangle is on the desktop */ + desk_rect = Tilwin_Get_Desktop_Rectangle(); + if (Get_LeftX(extension_rect) < Get_LeftX(desk_rect)) + Get_LeftX(extension_rect) = Get_LeftX(desk_rect); + if (Get_RightX(extension_rect) > Get_RightX(desk_rect)) + Get_RightX(extension_rect) = Get_RightX(desk_rect); + if (Get_TopY(extension_rect) < Get_TopY(desk_rect)) + Get_TopY(extension_rect) = Get_TopY(desk_rect); + if (Get_BottomY(extension_rect) > Get_BottomY(desk_rect)) + Get_BottomY(extension_rect) = Get_BottomY(desk_rect); + + if (Check_Grow(winp, extension_rect, side, ptp, stamp, + better, nclosed, nexpensive, naffected) == FALSE) + return(FALSE); + + switch (side) { + case Left: + Get_LeftX(rect) = Get_PtX(*ptp); + break; + case Right: + Get_RightX(rect) = Get_PtX(*ptp); + break; + case Top: + Get_TopY(rect) = Get_PtY(*ptp); + break; + case Bottom: + Get_BottomY(rect) = Get_PtY(*ptp); + break; + case NoSide: + /* do nothing! */ + break; + } + + /* check to make sure we are doing work, as of now we have + * no modify side */ + Tilwin_Set_Modify_Side(winp, NoSide); + Tilwin_Set_Modify_Rectangle(winp, rect); + crect = Tilwin_Get_Rectangle(winp); + switch (side) { + case Left: + if (Get_LeftX(rect) == Get_LeftX(crect)) + return(TRUE); + break; + case Right: + if (Get_RightX(rect) == Get_RightX(crect)) + return(TRUE); + break; + case Top: + if (Get_TopY(rect) == Get_TopY(crect)) + return(TRUE); + break; + case Bottom: + if (Get_BottomY(rect) == Get_BottomY(crect)) + return(TRUE); + break; + case NoSide: + if (Get_LeftX(rect) == Get_LeftX(crect) && + Get_RightX(rect) == Get_RightX(crect) && + Get_TopY(rect) == Get_TopY(crect) && + Get_BottomY(rect) == Get_BottomY(crect) && + Tilwin_Is_Open(winp) == TRUE) + return(TRUE); + break; + } + + Tilwin_Set_Modify_Side(winp, side); + Tilwin_Set_Modify_Rectangle(winp, rect); + return(TRUE); +} + +bool +Trial_Grow(winp, rect, side, ptp, stamp) + Tilwin *winp; + TWRectangle rect; + Side side; + TWPoint *ptp; + TimeStamp stamp; +{ + int big = MUCHO_WINDOWS; + + return(Trial_Improve_Grow(winp, rect, side, ptp, stamp, FALSE, + &big, &big, &big)); +} + +bool +Trial_Open(winp, rect, stamp) + Tilwin *winp; + TWRectangle rect; + TimeStamp stamp; +{ + int big = MUCHO_WINDOWS; + + return(Trial_Improve_Grow(winp, rect, NoSide, (TWPoint *) NULL, + stamp, FALSE, &big, &big, &big)); +} diff --git a/try_place.c b/try_place.c new file mode 100644 index 0000000..f0d9154 --- /dev/null +++ b/try_place.c @@ -0,0 +1,461 @@ +#ifndef lint +static char sccs_id[] = "@(#)try_place.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" +#include "twinD.h" +#include "twin.h" +#include "gravity.h" +#include "check.h" + +/* Checks to see if the given rectangle meets the global and window-specific + * (if appropriate) minimum and maximum requirements. Adjusts the rectangle + * with respect to gravity (if appropriate). Checks adjusted rectangle to make + * sure min-max criteria are still meet. Return TRUE if the rectangle has been + * changed, otherwise return FALSE. + * NOTE: This routine assumes the following partial ordering on the elements + * abs_min (absolute minimums), win_min, win_max, and abs_max (absolute + * maximums): + * abs_min <= win_max, abs_min <= abs_max, + * win_min <= win_max, win_min <= abs_max + * However if this ordering does not hold (e.g. win_max < win_min), the maximum + * constraints are satisfied at the expense of violating the minimum + * constraints. + */ + +bool +Trial_Place(rectp, side, win_min, win_max) + TWRectangle *rectp; + Side side; + Size win_min, + win_max; +{ + Size size, + original_size, + abs_min, abs_max; + TWPoint location; + TWRectangle rect, + original_rect; + Basetype left_diff, right_diff, + top_diff, bottom_diff; + bool changed = FALSE; + + rect = *rectp; + original_rect = *rectp; + + COMPUTE_SIZE(rect, size); + COMPUTE_CENTER(rect, location); + + /* check rectangle against absolute minimums */ + abs_min = Tilwin_Get_Absolute_Minimums(); + if (Get_Width(size) < Get_Width(abs_min)){ + switch (side) { + case Left: + case Top_Left: + case Bottom_Left: + Get_LeftX(rect) = Get_RightX(rect) - (Get_Width(abs_min) - 1); + COMPUTE_SIZE(rect, size); + break; + case Right: + case Top_Right: + case Bottom_Right: + Get_RightX(rect) = Get_LeftX(rect) + (Get_Width(abs_min) - 1); + COMPUTE_SIZE(rect, size); + break; + case NoSide: + Get_Width(size) = Get_Width(abs_min); + MAKE_RECTANGLE(location, size, rect); + break; + } + changed = TRUE; + } + if (Get_Height(size) < Get_Height(abs_min)){ + switch (side){ + case Top: + case Top_Left: + case Top_Right: + Get_TopY(rect) = Get_BottomY(rect) - (Get_Height(abs_min) - 1); + COMPUTE_SIZE(rect, size); + break; + case Bottom: + case Bottom_Left: + case Bottom_Right: + Get_BottomY(rect) = Get_TopY(rect) + (Get_Height(abs_min) - 1); + COMPUTE_SIZE(rect, size); + break; + case NoSide: + Get_Height(size) = Get_Height(abs_min); + MAKE_RECTANGLE(location, size, rect); + break; + } + changed = TRUE; + } + + /* check rectangle against window minimums (if appropriate) */ + if (Tilwin_Get_Global_Option(ENFORCE_MINIMUMS) == TRUE){ + if (Get_Width(size) < Get_Width(win_min)){ + switch (side) { + case Left: + case Top_Left: + case Bottom_Left: + Get_LeftX(rect) = Get_RightX(rect) - (Get_Width(win_min) - 1); + COMPUTE_SIZE(rect, size); + break; + case Right: + case Top_Right: + case Bottom_Right: + Get_RightX(rect) = Get_LeftX(rect) + (Get_Width(win_min) - 1); + COMPUTE_SIZE(rect, size); + break; + case NoSide: + Get_Width(size) = Get_Width(win_min); + MAKE_RECTANGLE(location, size, rect); + break; + } + changed = TRUE; + } + if (Get_Height(size) < Get_Height(win_min)){ + switch (side){ + case Top: + case Top_Left: + case Top_Right: + Get_TopY(rect) = Get_BottomY(rect) - (Get_Height(win_min) - 1); + COMPUTE_SIZE(rect, size); + break; + case Bottom: + case Bottom_Left: + case Bottom_Right: + Get_BottomY(rect) = Get_TopY(rect) + (Get_Height(win_min) - 1); + COMPUTE_SIZE(rect, size); + break; + case NoSide: + Get_Height(size) = Get_Height(win_min); + MAKE_RECTANGLE(location, size, rect); + break; + } + changed = TRUE; + } + } + + /* check rectangle against the desktop size */ + abs_max = Tilwin_Get_Desktop_Size(); + if (Get_Width(size) > Get_Width(abs_max)){ + switch (side) { + case Left: + case Top_Left: + case Bottom_Left: + Get_LeftX(rect) = Get_RightX(rect) - (Get_Width(abs_max) - 1); + COMPUTE_SIZE(rect, size); + break; + case Right: + case Top_Right: + case Bottom_Right: + Get_RightX(rect) = Get_LeftX(rect) + (Get_Width(abs_max) - 1); + COMPUTE_SIZE(rect, size); + break; + case NoSide: + Get_Width(size) = Get_Width(abs_max); + MAKE_RECTANGLE(location, size, rect); + break; + } + changed = TRUE; + } + if (Get_Height(size) > Get_Height(abs_max)){ + switch (side){ + case Top: + case Top_Left: + case Top_Right: + Get_TopY(rect) = Get_BottomY(rect) - (Get_Height(abs_max) - 1); + COMPUTE_SIZE(rect, size); + break; + case Bottom: + case Bottom_Left: + case Bottom_Right: + Get_BottomY(rect) = Get_TopY(rect) + (Get_Height(abs_max) - 1); + COMPUTE_SIZE(rect, size); + break; + case NoSide: + Get_Height(size) = Get_Height(abs_max); + MAKE_RECTANGLE(location, size, rect); + break; + } + changed = TRUE; + } + + /* check the rectangle against window max (if appropriate) */ + if (Tilwin_Get_Global_Option(ENFORCE_MAXIMUMS) == TRUE){ + if (Get_Width(size) > Get_Width(win_max)){ + switch (side) { + case Left: + case Top_Left: + case Bottom_Left: + Get_LeftX(rect) = Get_RightX(rect) - (Get_Width(win_max) - 1); + COMPUTE_SIZE(rect, size); + break; + case Right: + case Top_Right: + case Bottom_Right: + Get_RightX(rect) = Get_LeftX(rect) + (Get_Width(win_max) - 1); + COMPUTE_SIZE(rect, size); + break; + case NoSide: + Get_Width(size) = Get_Width(win_max); + MAKE_RECTANGLE(location, size, rect); + break; + } + changed = TRUE; + } + if (Get_Height(size) > Get_Height(win_max)){ + switch (side){ + case Top: + case Top_Left: + case Top_Right: + Get_TopY(rect) = Get_BottomY(rect) - (Get_Height(win_max) - 1); + COMPUTE_SIZE(rect, size); + break; + case Bottom: + case Bottom_Left: + case Bottom_Right: + Get_BottomY(rect) = Get_TopY(rect) + (Get_Height(win_max) - 1); + COMPUTE_SIZE(rect, size); + break; + case NoSide: + Get_Height(size) = Get_Height(win_max); + MAKE_RECTANGLE(location, size, rect); + break; + } + changed = TRUE; + } + } + + /* adjust the rectangle for gravity */ + if (side == Left || side == Top_Left || side == Bottom_Left) + Get_LeftX(rect) = Gravity_Adjust_Edge(Get_LeftX(rect), Left); + else if (side == Right || side == Top_Right || side == Bottom_Right) + Get_RightX(rect) = Gravity_Adjust_Edge(Get_RightX(rect), Right); + + if (side == Top || side == Top_Left || side == Top_Right) + Get_TopY(rect) = Gravity_Adjust_Edge(Get_TopY(rect), Top); + else if (side == Bottom || side == Bottom_Left || side == Bottom_Right) + Get_BottomY(rect) = Gravity_Adjust_Edge(Get_BottomY(rect), Bottom); + + if (side == NoSide) { + /* original_size is the size the obeys mins and maxes */ + COMPUTE_SIZE(rect, original_size); + Gravity_Adjust(&rect); + + /* if the size has changed, restore the original size by + finding the edge which is furthest from the nearest gravity + point and changing that edge. + */ + COMPUTE_SIZE(rect, size); + if (Get_Width(size) != Get_Width(original_size)) { + left_diff = Gravity_Difference(Get_LeftX(original_rect), Left); + right_diff = Gravity_Difference(Get_RightX(original_rect), Right); + if (left_diff <= right_diff) + Get_RightX(rect) = Get_LeftX(rect) + (Get_Width(original_size) - 1); + else + Get_LeftX(rect) = Get_RightX(rect) - (Get_Width(original_size) - 1); + } + if (Get_Height(size) != Get_Height(original_size)) { + top_diff = Gravity_Difference(Get_TopY(original_rect), Top); + bottom_diff = Gravity_Difference(Get_BottomY(original_rect), Bottom); + if (top_diff <= bottom_diff) + Get_BottomY(rect) = Get_TopY(rect) + (Get_Height(original_size) - 1); + else + Get_TopY(rect) = Get_BottomY(rect) - (Get_Height(original_size) - 1); + } + } + + /* changes due to gravity may have caused mins or maxs to be violated. + * Check appropriate mins and maxs again. This is the same code as above + * except when side == NoSide. + */ + + COMPUTE_SIZE(rect, size); + + abs_min = Tilwin_Get_Absolute_Minimums(); + if (Get_Width(size) < Get_Width(abs_min)){ + switch (side) { + case Left: + case Top_Left: + case Bottom_Left: + Get_LeftX(rect) = Get_RightX(rect) - (Get_Width(abs_min) - 1); + break; + case Right: + case Top_Right: + case Bottom_Right: + Get_RightX(rect) = Get_LeftX(rect) + (Get_Width(abs_min) - 1); + break; + case NoSide: + break; + } + COMPUTE_SIZE(rect, size); + changed = TRUE; + } + if (Get_Height(size) < Get_Height(abs_min)){ + switch (side){ + case Top: + case Top_Left: + case Top_Right: + Get_TopY(rect) = Get_BottomY(rect) - (Get_Height(abs_min) - 1); + break; + case Bottom: + case Bottom_Left: + case Bottom_Right: + Get_BottomY(rect) = Get_TopY(rect) + (Get_Height(abs_min) - 1); + break; + case NoSide: + break; + } + COMPUTE_SIZE(rect, size); + changed = TRUE; + } + + + if (Tilwin_Get_Global_Option(ENFORCE_MINIMUMS) == TRUE){ + if (Get_Width(size) < Get_Width(win_min)){ + switch (side) { + case Left: + case Top_Left: + case Bottom_Left: + Get_LeftX(rect) = Get_RightX(rect) - (Get_Width(win_min) - 1); + break; + case Right: + case Top_Right: + case Bottom_Right: + Get_RightX(rect) = Get_LeftX(rect) + (Get_Width(win_min) - 1); + break; + case NoSide: + break; + } + COMPUTE_SIZE(rect, size); + changed = TRUE; + } + if (Get_Height(size) < Get_Height(win_min)){ + switch (side){ + case Top: + case Top_Left: + case Top_Right: + Get_TopY(rect) = Get_BottomY(rect) - (Get_Height(win_min) - 1); + break; + case Bottom: + case Bottom_Left: + case Bottom_Right: + Get_BottomY(rect) = Get_TopY(rect) + (Get_Height(win_min) - 1); + break; + case NoSide: + break; + } + COMPUTE_SIZE(rect, size); + changed = TRUE; + } + } + + abs_max = Tilwin_Get_Desktop_Size(); + if (Get_Width(size) > Get_Width(abs_max)){ + switch (side) { + case Left: + case Top_Left: + case Bottom_Left: + Get_LeftX(rect) = Get_RightX(rect) - (Get_Width(abs_max) - 1); + break; + case Right: + case Top_Right: + case Bottom_Right: + Get_RightX(rect) = Get_LeftX(rect) + (Get_Width(abs_max) - 1); + break; + case NoSide: + break; + } + COMPUTE_SIZE(rect, size); + changed = TRUE; + } + if (Get_Height(size) > Get_Height(abs_max)){ + switch (side){ + case Top: + case Top_Left: + case Top_Right: + Get_TopY(rect) = Get_BottomY(rect) - (Get_Height(abs_max) - 1); + break; + case Bottom: + case Bottom_Left: + case Bottom_Right: + Get_BottomY(rect) = Get_TopY(rect) + (Get_Height(abs_max) - 1); + break; + case NoSide: + break; + } + COMPUTE_SIZE(rect, size); + changed = TRUE; + } + + if (Tilwin_Get_Global_Option(ENFORCE_MAXIMUMS) == TRUE){ + if (Get_Width(size) > Get_Width(win_max)){ + switch (side) { + case Left: + case Top_Left: + case Bottom_Left: + Get_LeftX(rect) = Get_RightX(rect) - (Get_Width(win_max) - 1); + break; + case Right: + case Top_Right: + case Bottom_Right: + Get_RightX(rect) = Get_LeftX(rect) + (Get_Width(win_max) - 1); + break; + case NoSide: + break; + } + changed = TRUE; + } + if (Get_Height(size) > Get_Height(win_max)){ + switch (side){ + case Top: + case Top_Left: + case Top_Right: + Get_TopY(rect) = Get_BottomY(rect) - (Get_Height(win_max) - 1); + break; + case Bottom: + case Bottom_Left: + case Bottom_Right: + Get_BottomY(rect) = Get_TopY(rect) + (Get_Height(win_max) - 1); + break; + case NoSide: + break; + } + changed = TRUE; + } + } + +#ifdef WM_DEBUG + COMPUTE_SIZE(rect, size); +#endif + + /* return the "new" rectangle */ + *rectp = rect; + return(changed); +} diff --git a/try_sat.c b/try_sat.c new file mode 100644 index 0000000..de855ed --- /dev/null +++ b/try_sat.c @@ -0,0 +1,82 @@ +#ifndef lint +static char sccs_id[] = "@(#)try_sat.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" +#include "twinD.h" +#include "twin.h" +#include "gravity.h" +#include "check.h" + +bool +Trial_Satisfied(winp, sizep) + Tilwin *winp; + Size *sizep; +{ + Size min_size, + max_size, + original_size; + bool not_changed = TRUE; + + original_size = *sizep; + + /* check global mins */ + min_size = Tilwin_Get_Absolute_Minimums(); + if (Get_Width(*sizep) < Get_Width(min_size)) + Get_Width(*sizep) = Get_Width(min_size); + if (Get_Height(*sizep) < Get_Height(min_size)) + Get_Height(*sizep) = Get_Height(min_size); + + /* check minimums */ + if (Tilwin_Get_Global_Option(ENFORCE_MINIMUMS) == TRUE) { + min_size = Tilwin_Get_Min(winp); + if (Get_Width(*sizep) < Get_Width(min_size)) + Get_Width(*sizep) = Get_Width(min_size); + if (Get_Height(*sizep) < Get_Height(min_size)) + Get_Height(*sizep) = Get_Height(min_size); + } + + max_size = Tilwin_Get_Desktop_Size(); + if (Get_Width(*sizep) > Get_Width(max_size)) + Get_Width(*sizep) = Get_Width(max_size); + if (Get_Height(*sizep) > Get_Height(max_size)) + Get_Height(*sizep) = Get_Height(max_size); + + if (Tilwin_Get_Global_Option(ENFORCE_MAXIMUMS) == TRUE) { + min_size = Tilwin_Get_Max(winp); + if (Get_Width(*sizep) > Get_Width(min_size)) + Get_Width(*sizep) = Get_Width(min_size); + if (Get_Height(*sizep) > Get_Height(min_size)) + Get_Height(*sizep) = Get_Height(min_size); + } + + if (Get_Width(original_size) != Get_Width(*sizep) || + Get_Height(original_size) != Get_Height(*sizep)) + not_changed = FALSE; + + return(not_changed); +} diff --git a/try_slide.c b/try_slide.c new file mode 100644 index 0000000..bc9d597 --- /dev/null +++ b/try_slide.c @@ -0,0 +1,187 @@ +#ifndef lint +static char sccs_id[] = "@(#)try_slide.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +/**************************************************************************** + try_slide.c: by Michael Berman + RTL Windows System + last modified: April 24, 1987 + most of this used to be in twin_slide.c + version: 0.1 + ****************************************************************************/ + +#include "basetype.h" +#include "twinD.h" +#include "twin.h" +#include "trial.h" + +#define MAX_TRIES 5 +#define MAX_EQ(x,y) (((x) >= (y))? x:y) +#define MIN_EQ(x,y) (((x) <= (y))? x:y) +#define EqualPoints(a,b) \ + ((Get_PtX(a) == Get_PtX(b)) && (Get_PtY(a) == Get_PtY(b))) + +TWPoint Trial_Slide_Nearest_Horizontal(), Trial_Slide_Nearest_Vertical(); + +/**************************************************************************** + TRIAL SLIDE NEAREST IN AREA + + Problem: Given a rectangle (representing a window), an area, the center + of the rectangle, a prefered point, and the size of the rectangle, + slide the center of the rectangle as close to the prefered point as + is possible without leaving the area. The center of the rectangle + after the slide is returned. + + Arguments: + try: The rectangle to slide. + area: Slide within this area. + cntr: Center of the rectangle. + pt: Point to slide towards. (PRECONDITION: pt is in area) + sz: The size of the try rectangle. + + Description: + By successively sliding + horizontally (either left or right) then vertically (either up + or down) attempt to slide closer to pt. Sliding means a move + of the window that crosses space tiles only. This is + a heuristic and won't always get to the best possible + position. Slide until either 1) we reach the goal position, + or 2) we're stuck in one position. + + ****************************************************************************/ + +TWPoint Trial_Slide_Nearest_In_Area(try, area, cntr, pt, sz) + TWRectangle try, area; + TWPoint cntr, pt; + Size sz; +{ + bool stuck = FALSE, found = FALSE; + TWPoint new_cntr; + TWRectangle new_try; + + while (!found && !stuck) + { + new_cntr = Trial_Slide_Nearest_Horizontal(try, area, cntr, pt, sz); + MAKE_RECTANGLE(new_cntr, sz, new_try); + new_cntr = Trial_Slide_Nearest_Vertical(new_try, area, new_cntr, pt, sz); + stuck = EqualPoints(cntr, new_cntr); + found = EqualPoints(new_cntr, pt); + cntr = new_cntr; + MAKE_RECTANGLE(cntr, sz, try); + } + return cntr; +} + +TWPoint Trial_Slide_Nearest_Horizontal(try, area, cntr, pt, sz) + TWRectangle try, area; + TWPoint cntr, pt; + Size sz; +{ + Basetype extent; + TWPoint p1, p2; + + if (Get_PtX(pt) < Get_PtX(cntr)) /* Left */ + { + Get_PtX(p1) = Get_PtX(p2) = Get_LeftX(try); + Get_PtY(p1) = Get_TopY(try); + Get_PtY(p2) = Get_BottomY(try); + Trial_Edge_Sweep(p1,p2,Left,&extent); + if (extent != Get_PtX(p1)) + { + /* check whether still in open area -- if not, pull back */ + Get_LeftX(try) = MAX_EQ(extent, Get_LeftX(area)); + Get_RightX(try) = Get_LeftX(try) + (Get_Width(sz) - 1); + /* check if past pt... */ + COMPUTE_CENTER(try, cntr); + Get_PtX(cntr) = MAX_EQ(Get_PtX(cntr), Get_PtX(pt)); + MAKE_RECTANGLE(cntr, sz, try); + } + } + else if (Get_PtX(pt) > Get_PtX(cntr)) /* Right */ + { + Get_PtX(p1) = Get_PtX(p2) = Get_RightX(try); + Get_PtY(p1) = Get_TopY(try); + Get_PtY(p2) = Get_BottomY(try); + Trial_Edge_Sweep(p1,p2,Right,&extent); + if (extent != Get_PtX(p1)) + { + /* check whether still in open area -- if not, pull back */ + Get_RightX(try) = MIN_EQ(extent, Get_RightX(area)); + Get_LeftX(try) = Get_RightX(try) - (Get_Width(sz) - 1); + /* check if past pt... */ + COMPUTE_CENTER(try, cntr); + Get_PtX(cntr) = MIN_EQ(Get_PtX(cntr), Get_PtX(pt)); + MAKE_RECTANGLE(cntr, sz, try); + } + } + return cntr; +} + +TWPoint Trial_Slide_Nearest_Vertical(try, area, cntr, pt, sz) + TWRectangle try, area; + TWPoint cntr, pt; + Size sz; +{ + Basetype extent; + TWPoint p1, p2; + + if (Get_PtY(pt) < Get_PtY(cntr)) /* Top */ + { + Get_PtY(p1) = Get_PtY(p2) = Get_TopY(try); + Get_PtX(p1) = Get_LeftX(try); + Get_PtX(p2) = Get_RightX(try); + Trial_Edge_Sweep(p1,p2,Top,&extent); + if (extent != Get_PtY(p1)) + { + /* check whether still in open area -- if not, pull back */ + Get_TopY(try) = MAX_EQ(extent, Get_TopY(area)); + Get_BottomY(try) = Get_TopY(try) + (Get_Height(sz) - 1); + /* check if past pt... */ + COMPUTE_CENTER(try, cntr); + Get_PtY(cntr) = MAX_EQ(Get_PtY(cntr), Get_PtY(pt)); + MAKE_RECTANGLE(cntr, sz, try); + } + } + else if (Get_PtY(pt) > Get_PtY(cntr)) /* Bottom */ + { + Get_PtY(p1) = Get_PtY(p2) = Get_BottomY(try); + Get_PtX(p1) = Get_LeftX(try); + Get_PtX(p2) = Get_RightX(try); + Trial_Edge_Sweep(p1,p2,Bottom,&extent); + if (extent != Get_PtY(p1)) + { + /* check whether still in open area -- if not, pull back */ + Get_BottomY(try) = MIN_EQ(extent, Get_BottomY(area)); + Get_TopY(try) = Get_BottomY(try) - (Get_Height(sz) - 1); + /* check if past pt... */ + COMPUTE_CENTER(try, cntr); + Get_PtY(cntr) = MIN_EQ(Get_PtY(cntr), Get_PtY(pt)); + MAKE_RECTANGLE(cntr, sz, try); + } + } + return cntr; +} diff --git a/try_sweep.c b/try_sweep.c new file mode 100644 index 0000000..48b2c47 --- /dev/null +++ b/try_sweep.c @@ -0,0 +1,342 @@ +#ifndef lint +static char sccs_id[] = "@(#)try_sweep.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" +#include + +/**************************************************************************** + try_edge_sweep.c: by Michael Berman + RTL Windows System + last modified: March 27, 1987 + version: 0.4 + ****************************************************************************/ + +#include "tileD.h" +#include "tile.h" +#include "twin.h" + +#define SPLIT_RECT(r) r.left_x,r.top_y,r.right_x,r.bottom_y + +/**************************************************************************** + EDGE SWEEPING + + Problem: Given a line segment which is parallel with one of the + sides of the desktop, and which is contained within one or + more tiles, 'sweep' it perpendicularly until it touches a new + tile or the desktop edge. The value returned represents the + pixel position, on the desktop, of the furthest extent of the + sweep. (Note that this is NOT the same as the distance the + edge moved; you can derive that by subtracting/adding the + extent from/to the original edge position.) + + Due to the asymmetry of corner stitching, there are two quite + different versions of this, namely horizontal (which sweeps a + vertical segment either to the Left or R) and vertical (sweeps + a horizontal segment up or Down). + + This will be implemented as two boolean funtions, returning + TRUE if the sweep was successful, and FALSE if there is a + logical inconsistency in the arguments. The "extent" argument + will be a pointer to a location to give the answer, which is + the x (in the case of horizontal) or y (in the case of + vertical) marking the extent of the sweep. + + The external entry point for edge sweeping is: Trial_Edge_Sweep + + ****************************************************************************/ + +/* variables with scope over all functions in this file */ + +Basetype current_extent; /* best current guess at extent */ +Side global_dir; /* direction of sweep, used by enumeration fcn */ +bool touched_solid_tile; /* flag set if the enumeration fcn finds solid */ + +#define ASSERT(a,m) \ +{ \ + if (!(a)) \ + printf("YOW! %s \n",m);\ +} + +void Enum_Horiz_Extent(); +bool Vert_Sweep(), Horiz_Sweep(); + +bool +Trial_Edge_Sweep(p1,p2,dir,extent) + TWPoint p1, p2; + Side dir; + Basetype *extent; +{ + if ((dir == Top) || (dir == Bottom)) + return(Vert_Sweep(p1,p2,dir,extent)); + else if ((dir == Left) || (dir == Right)) + return(Horiz_Sweep(p1,p2,dir,extent)); + else + return(FALSE); +} + bool +Horiz_Sweep(p1, p2, dir, extent) + TWPoint p1, p2; + Side dir; + Basetype *extent; +/**************************************************************************** + Arguments: + p1, p2: The points defining the line segment. Since this is a + horizontal sweep, p1.x must equal p2.x. p1 must be above p2; + hence p1.y <= p2.y. + dir: The direction to sweep-- must be Left or Right. + extent: Pointer to Basetype in which result is returned. + + Returns: Boolean flag indicating success/failure of sweep. + + Modifies: *extent (parameter) + + Description: Horiz_Sweep performs a horizontal line sweep, that is, + it simulates moving a vertical line segment in the horizontal + direction indicated by "dir" (= Left or Right) as far as it will go + until it first touches a solid tile. The assumption made is + that the line segment you start from is at the edge of a solid + tile; therefore, it is moved one pixel in the appropriate + direction before the sweep begins. If after moving it is + still on a solid tile, the original position is returned. The + value of the Boolean function indicates whether the sweep was + performed; a return of "false" indicates that the arguments + were incorrect or contradictory. The pixel location of the + furthest position of the sweep is returned in the Basetype + pointed to by "extent". Because all left tile edges are even + and right edges odd, a left-hand sweep always returns an even + number, while a right-hand sweep returns an odd number. + + Logic: First, the arguments are checked for consistency; if an error + is found, return(FALSE). Before the call, the value of + current_extent is initialized to point to the appropriate + desktop edge (left for a left sweep, right for a right sweep.) + current_extent is used to store the position of the "closest" + edge found so far. Because the horizontal space tiles are + required to be maximal, we simply examine each tile that the + line segment crosses and find the tile that ends "closest" to + the line segment, which is equivalent to the maximum extent of + a sweep before touching a new tile. Tiles_In_Area is used to + enumerate the set of tiles crossed by the line segment, which + actually is passed as a rectangle of width 2. The + call to Tiles_In_Area uses the enumeration function + Enum_Horiz_Tiles which is defined above; the result is stored + in current_extent. The enumeration also checks for solid tiles; + if found, then a flag "touched_solid_tile" is set, so that the + unchanged edge can be returned. + ****************************************************************************/ + +{ + TWRectangle Desktop_View, r; + + if (p1.x != p2.x) + return(FALSE); + r.top_y = p1.y; + r.bottom_y = p2.y; + if (r.top_y > r.bottom_y) + return(FALSE); + Desktop_View = Tilwin_Get_Desktop_Rectangle(); + switch(dir) + { + case Left: + if (!Is_Even_Number(p1.x)) + return(FALSE); + else + { + current_extent = Desktop_View.left_x; + r.left_x = p1.x - 2; + r.right_x = r.left_x + 1; + } + break; + case Right: + if (Is_Even_Number(p1.x)) + return(FALSE); + else + { + current_extent = Desktop_View.right_x; + r.right_x = p1.x + 2; + r.left_x = r.right_x - 1; + } + break; + default: + return(FALSE); + } + global_dir = dir; + touched_solid_tile = FALSE; + Tiles_In_Area(SPLIT_RECT(r), Enum_Horiz_Extent); + *extent = (touched_solid_tile)? p1.x : current_extent; + ASSERT((Is_Even_Number(current_extent) && dir == Left) || + (!(Is_Even_Number(current_extent)) && dir == Right), + "Parity error in current_extent -- Horiz_Sweep"); + return(TRUE); +} + +bool +Vert_Sweep(p1, p2, dir, extent) + TWPoint p1, p2; + Side dir; + Basetype *extent; + +/**************************************************************************** + Arguments: + p1, p2: The points defining the line segment. Since this is a + vertical sweep, p1.y must equal p2.y. p1 must be to the left + of p2; hence, p1.x <= p2.x; + dir: The direction to sweep-- must be Top or Bottom. + extent: pointer to Basetype in which result is returned. + + Returns: Boolean flag indicating success/failure of sweep. + + Modifies: *extent (parameter) + + Description: Vert_Sweep performs a vertical line sweep, that is, it + simulates moving a horizontal line segment in the vertical + direction indicated by "dir" (= Top or Bottom) as far as it will + go until it first touches a solid tile. The assumption made is + that the line segment you start from is at the edge of a solid + tile; therefore it is moved one pixel in the appropriate direction + before the sweep begins. If, after moving it is still on a solid + tile, the original position is returned. The values for the + function and the return value *extent are the same as for + Horiz_Sweep. Because all top tile edges are even and bottom + edges odd, a sweep Up will always return an even number, while + a sweep down returns an odd number. + + Logic: A little more complicated than the horizontal case due to the + asymetry of corner stitching. After checking for consistency, + we find the initial line segment, which is one pixel above or + below the line segment passed (depending on the direction of + the sweep. We find the tile(s) which + contain the initial line segment. If the initial line is not + entirely within a single space tile, then the original edge is + returned without change. If the segment is contained + entirely within a single space tile, then we move to the edge + of the tile, and advance the line segment just one pixel + further, beyond the original space tile. This process is + iterated until at least part of the line segment is not in a + space tile. (Note that if the two points of the segment are + in different space tiles, there MUST be a solid tile somewhere + in between.) This process may lead to the segment crossing + solid tiles, or to the edge of the desktop. Once this is + done, the y value is "backed up" by 1. + ****************************************************************************/ + +{ + Tile *tpl, *tpr; + TWRectangle r; + Basetype y_extent; + + if (p1.y != p2.y) + return(FALSE); + r.left_x = p1.x; + r.right_x = p2.x; + if (r.left_x > r.right_x) + return(FALSE); + if (dir == Top) + { + if (!Is_Even_Number(p1.y)) + return(FALSE); + } + else if (dir == Bottom) + { + if (Is_Even_Number(p1.y)) + return(FALSE); + } + else + return(FALSE); + y_extent = (dir == Top)? p1.y - 1: p1.y + 1; + tpl = (Tile *)Tile_at_Point(p1.x,y_extent); + tpr = (Tile *)Tile_at_Point(p2.x,y_extent); + + while ((tpl == tpr) && + (tpl != NULL_TILE) && + (Tile_Get_Type(tpl) == Space)) + { + y_extent = (dir == Top)? Tile_Get_Corners(tpl).top_y - 1: + Tile_Get_Corners(tpl).bottom_y + 1; + tpl = (Tile *)Tile_at_Point(p1.x,y_extent); + tpr = (Tile *)Tile_at_Point(p2.x,y_extent); + } + y_extent = (dir == Top)? y_extent + 1 : y_extent - 1; + ASSERT((Is_Even_Number(y_extent) && dir == Top) || + (!(Is_Even_Number(y_extent)) && dir == Bottom), + "Parity error in y_extent -- Vert_Sweep"); + *extent = y_extent; + return(TRUE); +} + +void +Enum_Horiz_Extent(tp) + Tile *tp; + +/**************************************************************************** + + Arguments: + tp: Pointer to tile to be examined. + + Modifies: + current_extent (as a side effect) + touched_solid_tile (as a side effect) + + Description: Enum_Horiz_Extent is used by Horiz_Sweep only. It + looks at a tile and checks whether the left (or right, + depending on sweep direction) edge of the tile is more + constraining than the previous best, which is current_extent. + We also set a flag if we hit a solid tile -- once this is + set TRUE, any additional enums do nothing. + This function is passed as a parameter to Tiles_In_Area, and + executed once for each tile (tp) in the specified range. + + Logic: The operation of the function is controlled by the variable + current_extent, which is global to this file. Each time + Enum_Horiz_Extent is called (for a particular tile) it checks + whether that tile represents a greater "extent" than the + previous best. That is, is this tile further to the left (or + right) than the previous best. The choice of left or + right is determined by the value of global_dir, which is + of scope external to Enum_Horiz_Extent. + ****************************************************************************/ +{ + if (!touched_solid_tile) /* otherwise, don't bother */ + if (Tile_Get_Type(tp) == Space) + { + if (global_dir == Left) + { + if (Left_X(tp) > current_extent) + { + current_extent = Left_X(tp); + } + } + else /* global_dir == Right */ + { + if (Right_X(tp) < current_extent) + { + current_extent = Right_X(tp); + } + } + } + else + touched_solid_tile = TRUE; +} diff --git a/twin.h b/twin.h new file mode 100644 index 0000000..0fd722c --- /dev/null +++ b/twin.h @@ -0,0 +1,280 @@ +/* +static char sccs_id[] = "@(#)twin.h 5.6 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +#ifndef TILWIN +#include "twinP.h" +#endif + +#include "state.h" + +/* ------------------------------------------------------------ */ + +extern Size desktop_size; +extern TWRectangle desktop_rect; +extern TWPoint desktop_center; + +extern Size absolute_mins; +extern int gravity; + +/* ------------------------------------------------------------ */ + +#define Tilwin_Get_Desktop_Size() \ + ( desktop_size ) +#define Tilwin_Get_Desktop_Rectangle() \ + ( desktop_rect ) +#define Tilwin_Get_Desktop_Center() \ + ( desktop_center ) + +extern void Tilwin_Set_Desktop_Size(); +/* siz */ + + +/* ------------------------------------------------------------ */ + +extern Tilwinp Tilwin_Create_Window(); + +extern void Tilwin_Destroy_Window(); +/* Tilwinp winp; */ + +extern Tilwinp Tilwin_Locate(); +/* TWPoint pt; */ + +/* ------------------------------------------------------------ */ + +extern bool Tilwin_Check_Center_Open(); +/* Tilwinp winp; */ +/* TWPoint *adr_pt; */ +/* Size *adr_siz; */ + +extern bool Tilwin_Check_Corner_Open(); +/* Tilwinp winp; */ +/* TWPoint *start_pt; */ +/* TWPoint *adr_pt; */ +/* Side side; */ +/* Size min_size; */ +/* Size max_size; */ + +extern bool Tilwin_Check_Resize(); +/* Tilwinp winp; */ +/* TWPoint *adr_pt; */ +/* Side side; */ +/* Size min_size; */ +/* Size max_size; */ + +/* ------------------------------------------------------------ */ + +extern bool Tilwin_Open(); +/* Tilwinp winp; */ +/* TWPoint center; */ +/* Size siz; */ + +extern void Tilwin_Close(); +/* Tilwinp winp; */ + +extern void Tilwin_Auto_Close(); +/* Tilwinp winp; */ + +/* ------------------------------------------------------------ */ + +extern bool Tilwin_Set(); +/* Tilwinp winp; */ +/* TWPoint center; */ +/* Size siz; */ + +extern bool Tilwin_Set_Size(); +/* Tilwinp winp; */ +/* Size siz; */ + +/* ------------------------------------------------------------ */ + +extern bool Tilwin_Is_Satisfied(); +/* Tilwinp winp; */ + +/* ------------------------------------------------------------ */ + +extern bool Tilwin_Resize(); +/* Tilwinp winp; */ +/* TWPoint pt; */ +/* Side side; */ + +extern bool Tilwin_Enlarge_Nearest(); +/* Tilwinp winp; */ +/* TWPoint pt; */ +/* Size siz; */ + +extern bool Tilwin_Enlarge_Farthest(); +/* Tilwinp winp; */ +/* TWPoint pt; */ +/* Size siz; */ + +/* ------------------------------------------------------------ */ + +extern void Tilwin_Enlarge_Nearest_In_Area(); +/* Tilwinp winp; */ +/* TWRectangle rect; */ +/* TWPoint pt; */ +/* Size siz; */ + +extern void Tilwin_Enlarge_Farthest_In_Area(); +/* Tilwinp winp; */ +/* TWRectangle rect; */ +/* TWPoint pt; */ +/* Size siz; */ + +/* ------------------------------------------------------------ */ + +extern bool Tilwin_Open_Nearest_In_Area(); +/* Tilwinp winp; */ +/* TWRectangle rect; */ +/* TWPoint pt; */ +/* Size siz; */ + +extern bool Tilwin_Open_Farthest_In_Area(); +/* Tilwinp winp; */ +/* TWRectangle rect; */ +/* TWPoint pt; */ +/* Size siz; */ + +extern bool Tilwin_Open_Best_In_Area(); +/* Tilwinp winp; */ +/* TWRectangle rect; */ +/* Size siz; */ + +/* ------------------------------------------------------------ */ + +extern void Tilwin_Prorate(); + +/* ------------------------------------------------------------ */ + +extern void Tilwin_Gen_Open_Windows(); + +extern void Tilwin_Gen_Closed_Windows(); + +extern void Tilwin_Gen_Just_Opened_Windows(); + +extern void Tilwin_Gen_Just_Modified_Windows(); + +extern void Tilwin_Gen_Just_Closed_Windows(); + +extern Tilwinp Tilwin_Next_Window(); + +extern void Tilwin_Modify_Covered_Windows(); + +extern bool Tilwin_Is_Covered(); + +/* ------------------------------------------------------------ */ + +extern void Tilwin_Undo(); +extern void Tilwin_Abort_Transaction(); + +#define Tilwin_Start_Transaction() \ + State_Start_Transaction() + +#define Tilwin_Commit_Transaction() \ + State_Commit_Transaction() + +#define Tilwin_Continue_Transaction() \ + State_Continue_Transaction() + +#define Tilwin_Transaction_Depth() \ + State_Transaction_Depth() + +/* ------------------------------------------------------------ */ + +#define Tilwin_Get_Timestamp() \ + State_Get_Timestamp() + +#define Tilwin_Set_Window_Timestamp(winp,stamp) \ + State_Set_Window_Timestamp(winp,stamp) + +#define Tilwin_Note_Use(winp) \ + State_Note_Use(winp) + +#define Tilwin_Act_Modified(winp) \ + State_Act_Modified(winp) + +/* ------------------------------------------------------------ */ + +#define Tilwin_Was_Just_Modified(winp) \ + State_Was_Just_Modified(winp) + +#define Tilwin_Was_Just_Changed(winp) \ + State_Was_Just_Changed(winp) + +/* ------------------------------------------------------------ */ + +#define Tilwin_Get_Absolute_Minimums() \ + ( absolute_mins ) +#define Tilwin_Set_Absolute_Minimums(siz) \ + absolute_mins = (siz) + +#define Tilwin_Get_Gravity() \ + ( gravity ) +#define Tilwin_Set_Gravity(grav) \ + ( gravity = (grav) ) + +extern bool Tilwin_Slide_Nearest(); +extern bool Tilwin_Slide_Farthest(); +extern bool Tilwin_Slide_Nearest_In_Area(); +extern bool Tilwin_Slide_Farthest_In_Area(); + +extern void Tilwin_Slide_Horizly_Farthest(); +extern void Tilwin_Slide_Vertly_Farthest(); +extern void Tilwin_Slide_Horizly_Nearest(); +extern void Tilwin_Slide_Vertly_Nearest(); + +extern Tilwinp Tilwin_Thread_Nearest(); +extern Tilwinp Tilwin_Thread_Farthest(); +extern Tilwinp Tilwin_Reverse_Thread(); + +extern Tilwinp Tilwin_Thread_Nearest_Position(); + +extern Tilwinp Tilwin_Thread_Vertly_Nearest(); +extern Tilwinp Tilwin_Thread_Horizly_Nearest(); +extern Tilwinp Tilwin_Thread_Vertly_Farthest(); +extern Tilwinp Tilwin_Thread_Horizly_Farthest(); + +/* ------------------------------------------------------------ */ + +extern TWPoint Tilwin_Center_Of_Gravity(); +extern TWPoint Tilwin_Position_Ctr_Of_Gravity(); + +extern Size Tilwin_Good_Size(); +extern Size Tilwin_Checked_Size(); +extern Size Tilwin_Checked_Previous_Size(); +extern Size Tilwin_Checked_Min_Size(); +extern Size Tilwin_Checked_Desired_Size(); +extern Size Tilwin_Checked_Good_Desired_Size(); +extern Size Tilwin_Checked_Max_Size(); +extern Size Tilwin_Checked_Good_Max_Size(); + +/* ------------------------------------------------------------ */ + +extern Tilwinp Tilwin_Get_Latest_Height(); +extern Tilwinp Tilwin_Get_Latest_Width(); + diff --git a/twinD.h b/twinD.h new file mode 100644 index 0000000..bc7d92d --- /dev/null +++ b/twinD.h @@ -0,0 +1,174 @@ +/* +static char sccs_id[] = "@(#)twinD.h 5.5 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +#ifndef TILWIN_DEFINE +#define TILWIN_DEFINE +#endif + +#ifndef TILWIN_INTERN +#include "twinI.h" +#endif + +#include "tileoptsP.h" + +#define Tilwin_Get_Window_Id(winp) \ + ( ((winp) == WIN_NULL) ? (pointer)NULL : (((Tilwin *)(winp))->id) ) +#define Tilwin_Set_Window_Id(winp, id) \ + (((Tilwin *) (winp)) -> id) = (pointer) (id) + +#define Tilwin_Get_Data(winp) \ + (((Tilwin *)(winp))->data) +#define Tilwin_Put_Data(winp,val) \ + (((Tilwin *)(winp))->data) = (pointer)(val) + +#define Tilwin_Get_Window_Option(winp,opt) \ + ( ((Tilwin *)(winp)) -> options[ (int) opt ] ) + +#define Tilwin_Set_Window_Option(winp,opt,val) \ + ( ((Tilwin *)(winp)) -> options[ (int) opt ] ) = (val) + +#define Tilwin_Get_Rectangle(winp) \ + (((Tilwin *)(winp)) -> rect) + +#define Tilwin_Get_Modify_Side(winp) \ + (((Tilwin *)(winp)) -> modify_side) +#define Tilwin_Set_Modify_Side(winp, side) \ + (((Tilwin *) (winp)) -> modify_side) = (side) + +#define Tilwin_Get_Modify_Rectangle(winp) \ + (((Tilwin *)(winp)) -> modify_rect) +#define Tilwin_Set_Modify_Rectangle(winp, rect) \ + (((Tilwin *)(winp)) -> modify_rect) = (rect) + +#define Tilwin_Get_Size(winp) \ + (((Tilwin *)(winp)) -> size) +#define Tilwin_Get_Center(winp) \ + (((Tilwin *)(winp))->center) + +#define Tilwin_Get_Min(winp) \ + (((Tilwin *)(winp)) -> min_size) +#define Tilwin_Set_Min(winp, size) \ + { \ + (((Tilwin *)(winp)) -> min_size).height = (1+ (size).height ) & (~1); \ + (((Tilwin *)(winp)) -> min_size).width = (1+ (size).width ) & (~1); \ + } + +#define Tilwin_Get_Max(winp) \ + (((Tilwin *)(winp)) -> max_size) +#define Tilwin_Set_Max(winp, size) \ + { \ + (((Tilwin *)(winp)) -> max_size).height = (1+ (size).height ) & (~1); \ + (((Tilwin *)(winp)) -> max_size).width = (1+ (size).width ) & (~1); \ + } + +#define Tilwin_Get_Desired(winp) \ + (((Tilwin *)(winp)) -> desired_size) +#define Tilwin_Set_Desired(winp, size) \ + { \ + (((Tilwin *)(winp)) -> desired_size).height = ( (size).height ) & (~1); \ + (((Tilwin *)(winp)) -> desired_size).width = ( (size).width ) & (~1); \ + } + + +#define Tilwin_Is_Open(winp) \ + (((Tilwin *)(winp)) -> Am_I_Open) +#define Tilwin_Was_Previously_Open(winp) \ + (((Tilwin *)(winp)) -> prev_Am_I_Open) + +#define Tilwin_Was_Automatically_Closed(winp) \ + (((Tilwin *)(winp)) -> Was_Auto_Closed) + +#define Tilwin_Get_Previous_Rectangle(winp) \ + (((Tilwin *)(winp)) -> prev_rect) +#define Tilwin_Get_Previous_Size(winp) \ + (((Tilwin *)(winp)) -> prev_size) +#define Tilwin_Get_Previous_Center(winp) \ + (((Tilwin *)(winp)) -> prev_center) + +#define Tilwin_Get_Window_Timestamp(winp) \ + (((Tilwin *)(winp)) -> timestamp) + +#define Tilwin_Just_Created(winp) \ + ( Tilwin_Get_Window_Timestamp(winp) == 0 ) + +#define Tilwin_Was_Actually_Modified(winp) \ + (! Same_Rect( ((Tilwin *)(winp))->rect, ((Tilwin *)(winp))->prev_rect ) ) + +#define Tilwin_Size_Changed(winp) \ + ( ( ((Tilwin *)winp)->size.width != \ + ((Tilwin *)winp)->prev_size.width ) \ + || \ + ( ((Tilwin *)winp)->size.height != \ + ((Tilwin *)winp)->prev_size.height ) ) + +/* ------------------------------------------------------------ */ + +#define Tilwin_Get_Window_Option(winp,opt) \ + ( ((Tilwin *)(winp)) -> options[ (int) opt ] ) + +#define Tilwin_Set_Window_Option(winp,opt,val) \ + ( ((Tilwin *)(winp)) -> options[ (int) opt ] ) = (val) + +extern bool globals[]; + +#define Tilwin_Set_Global_Option(opt,val) \ + globals[(int)(opt)] = (val) + +#define Tilwin_Get_Global_Option(opt) \ + ( globals[(int)(opt)] ) + +#define Tilwin_Get_Tile(winp) \ + (((Tilwin *)(winp)) -> tilep) + +#define Tilwin_Get_Position(winp) \ + (((Tilwin *)(winp)) -> position) + +#define Tilwin_Set_Position(winp, pt) \ + (((Tilwin *)(winp)) -> position = (pt)) + +#define Tilwin_Get_Open_Priority(winp) \ + (((Tilwin *)(winp)) -> open_priority) + +#define Tilwin_Set_Open_Priority(winp, pri) \ + (((Tilwin *) (winp)) -> open_priority = (pri)) + +#define Tilwin_Get_Size_Priority(winp) \ + (((Tilwin *)(winp)) -> size_priority) + +#define Tilwin_Set_Size_Priority(winp, pri) \ + (((Tilwin *) (winp)) -> size_priority = (pri)) + +#define Tilwin_Note_Desired_Height(winp) \ + ((Tilwin *)(winp))->height_stamp = Tilwin_Get_Timestamp() +#define Tilwin_Note_Desired_Width(winp) \ + ((Tilwin *)(winp))->width_stamp = Tilwin_Get_Timestamp() + +#ifdef WM_DEBUG +extern Tilwin *tw_global; +#endif diff --git a/twinI.h b/twinI.h new file mode 100644 index 0000000..3ff2107 --- /dev/null +++ b/twinI.h @@ -0,0 +1,98 @@ +/* +static char sccs_id[] = "@(#)twinI.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#define TILWIN_INTERN + +#include "basetype.h" + +#ifndef TILWIN +#include "twinP.h" +#endif + +typedef struct str_window Tilwin; + +#define WINP_NULL (Tilwin *)NULL + +struct str_window +{ + pointer id; /* window ID */ + pointer data; /* for the user */ + + + TWRectangle rect, /* current rectangle position */ + prev_rect, /* previous "rect" */ + modify_rect; /* potential modification rect */ + + Size min_size, + max_size, + size, + + modify_size, /* potential modification size */ + open_size, + prev_size, /* previous open_size */ + + desired_size; + + Side modify_side; + + TWPoint center, + prev_center; + + TWPoint position; + + bool options[ (int) LENGTH_WINDOW_OPTIONS ]; + + bool Am_I_Open; + bool prev_Am_I_Open; + + bool Was_Auto_Closed; + + long affect_stamp; /* was just affected */ + long modify_stamp; /* was just modified */ + + long timestamp, /* Use or Close relative timestamp */ + prev_timestamp; /* for Undo operation*/ + + long open_priority; + long size_priority; + + pointer tilep; /* pointer to associated Tile */ + + Tilwin *openp; /* Open Lists thread */ + Tilwin *closedp; /* Closed Lists thread */ + + Tilwin *justp; /* Just Opened/Modified thread(s) */ + /* or Just Closed thread */ + + Tilwin *potentmp; /* Potentially Modified thread */ + Tilwin *potentcp; /* Potentially Closed thread */ + + long height_stamp; /* When desired height set */ + long width_stamp; /* When desired width set */ + +}; + diff --git a/twinP.h b/twinP.h new file mode 100644 index 0000000..9080a0c --- /dev/null +++ b/twinP.h @@ -0,0 +1,46 @@ +/* +static char sccs_id[] = "@(#)twinP.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + + +#ifndef TILWIN +#define TILWIN +#endif + +#ifndef BASETYPE +#include "basetype.h" +#endif + +#include "twinoptsP.h" + +typedef long TimeStamp; +typedef int Priority; + +typedef pointer Tilwinp; + +#define WIN_NULL (Tilwinp)NULL diff --git a/twin_close.c b/twin_close.c new file mode 100644 index 0000000..b3a65f4 --- /dev/null +++ b/twin_close.c @@ -0,0 +1,64 @@ +#ifndef lint +static char sccs_id[] = "@(#)twin_close.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" +#include "twinD.h" +#include "win.h" +#include "state.h" + +void Tilwin_Close(winp) + Tilwinp winp; +{ + Tilwin *twinp = (Tilwin *)winp; + + State_Start_Operation(); + + if (Tilwin_Is_Open(twinp) != TRUE) + return; + + State_Manual_Close(twinp); + Win_Close(twinp); +} + + +void Tilwin_Auto_Close(winp) + Tilwinp winp; +{ + Tilwin *twinp = (Tilwin *)winp; + + State_Start_Operation(); + + if (Tilwin_Is_Open(twinp) != TRUE) + { + Tilwin_Was_Automatically_Closed(twinp) = TRUE; + return; + } + + State_Auto_Close(twinp); + Win_Close(twinp); +} diff --git a/twin_creat.c b/twin_creat.c new file mode 100644 index 0000000..67bec00 --- /dev/null +++ b/twin_creat.c @@ -0,0 +1,59 @@ +#ifndef lint +static char sccs_id[] = "@(#)twin_creat.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" +#include "twinD.h" +#include "state.h" +#include "mem.h" + +Tilwinp +Tilwin_Create_Window(id) + pointer id; +{ + Tilwin *winp; + + winp = Mem_Allocate(); + Tilwin_Set_Window_Id(winp, id); + State_Create((Tilwin *)winp); + + winp->width_stamp = 0; + winp->height_stamp = 0; + winp->Was_Auto_Closed = FALSE; + + return ((Tilwinp) winp); +} + +void +Tilwin_Destroy_Window(winp) + Tilwinp winp; +{ + if (Tilwin_Is_Open(winp) != TRUE) { + State_Destroy((Tilwin *) winp); + Mem_Deallocate((Tilwin *) winp); + } +} diff --git a/twin_desk.c b/twin_desk.c new file mode 100644 index 0000000..bbe6f3b --- /dev/null +++ b/twin_desk.c @@ -0,0 +1,78 @@ +#ifndef lint +static char sccs_id[] = "@(#)twin_desk.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" +#include "twin.h" +#include "tile.h" +#include "gravity.h" + +static bool desktop_initialized = FALSE; + +void +Tilwin_Set_Desktop_Size(size) + Size size; +{ + TWRectangle old_desktop_rect; + + if (Is_Odd_Number(Get_Width(size)) == TRUE) + Get_Width(size)++; + if (Is_Odd_Number(Get_Height(size)) == TRUE) + Get_Height(size)++; + + desktop_size = size; + + old_desktop_rect = desktop_rect; + Get_RightX(desktop_rect) = Get_Width(desktop_size) - 1; + Get_BottomY(desktop_rect) = Get_Height(desktop_size) - 1; + + if (desktop_initialized == FALSE){ + desktop_initialized = TRUE; + + Get_LeftX(desktop_rect) = (Basetype) 0; + Get_TopY(desktop_rect) = (Basetype) 0; + + Gravity_Init(); + Gravity_Insert_Edge(Get_LeftX(desktop_rect), Left); + Gravity_Insert_Edge(Get_TopY(desktop_rect), Top); + Gravity_Insert_Edge(Get_RightX(desktop_rect), Right); + Gravity_Insert_Edge(Get_BottomY(desktop_rect), Bottom); + } + else{ + Gravity_Delete_Edge(Get_RightX(old_desktop_rect), Right); + Gravity_Delete_Edge(Get_BottomY(old_desktop_rect), Bottom); + Gravity_Insert_Edge(Get_RightX(desktop_rect), Right); + Gravity_Insert_Edge(Get_BottomY(desktop_rect), Bottom); + } + + COMPUTE_CENTER(desktop_rect, desktop_center); + + Tile_Init_Tws(Get_LeftX(desktop_rect), Get_RightX(desktop_rect), + Get_BottomY(desktop_rect), Get_TopY(desktop_rect)); + + +} diff --git a/twin_dump.c b/twin_dump.c new file mode 100644 index 0000000..57df73d --- /dev/null +++ b/twin_dump.c @@ -0,0 +1,117 @@ +#ifndef lint +static char sccs_id[] = "@(#)twin_dump.c 5.4 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include +#include "tileD.h" +#include "tile.h" +#include "twinD.h" +#include "twin.h" +#include "win.h" + +#define TAG_TILE -1 /* separator tile in tile-dump file */ + +FILE *dump_file = (FILE *) NULL; + +static Tile dumpee; +static Tile *dumper = &dumpee; + + +/* Output "appropriate" information about + * a tile to a file. + * An enumeration function... + */ +void +Tilwin_Tile_Dump(a_tile) + Tile *a_tile; +{ + if (Tile_Get_Name(a_tile) != TAG_TILE) + { + Tile_Set_Name(dumper, Tile_Get_Name(a_tile)); + Tile_Set_Type(dumper, Tile_Get_Type(a_tile)); + + Left_X(dumper) = Left_X(a_tile); + Right_X(dumper) = Right_X(a_tile); + Top_Y(dumper) = Top_Y(a_tile); + Bottom_Y(dumper) = Bottom_Y(a_tile); + + /* this assumes null pointers are == to NULL_TILE + * (a valid "sentinel" tile) + */ + bl_stitch(dumper) = (Tile *)Tile_Get_Name(bl_stitch(a_tile)); + lb_stitch(dumper) = (Tile *)Tile_Get_Name(lb_stitch(a_tile)); + tr_stitch(dumper) = (Tile *)Tile_Get_Name(tr_stitch(a_tile)); + rt_stitch(dumper) = (Tile *)Tile_Get_Name(rt_stitch(a_tile)); + + (void) fwrite((char *) dumper, sizeof(Tile), 1, dump_file); + } + else + { + (void) fwrite((char *) a_tile, sizeof(Tile), 1, dump_file); + } +} +/* "dump" signal signal-handler + */ + +void +Tilwin_Dump() +{ + extern void Tilwin_Tile_Dump(); + extern char *mktemp(); + extern FILE *fopen(); + extern Tile *Tile_at_CP; + Tile *CP_pointer; + static char *dump_name = (char *) NULL; + Tile tag; /* marker for beginning of a dump */ + + /* save the current place of Tile_at_CP so we can + * restore it after the dump */ + CP_pointer = Tile_at_CP; + + if (dump_name == (char *) NULL) + { + dump_name = mktemp("DumpXXXXXX"); + + if ( (dump_file = fopen(dump_name, "a")) == (FILE *) NULL ) + { + perror("Onquit"); + return; + } + } + + tag.name = TAG_TILE; + + Tilwin_Tile_Dump(&tag); + Tiles_In_Area(0, 0, desktop_size.width-1, + desktop_size.height-1, Tilwin_Tile_Dump); + + (void) fflush(dump_file); + + /* restore Tile_at_CP */ + Tile_at_CP = CP_pointer; + +} diff --git a/twin_init.c b/twin_init.c new file mode 100644 index 0000000..b5aaee0 --- /dev/null +++ b/twin_init.c @@ -0,0 +1,44 @@ +#ifndef lint +static char sccs_id[] = "@(#)twin_init.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" +#include "twinP.h" + +TWPoint desktop_center; +Size desktop_size; +TWRectangle desktop_rect; + +Size absolute_mins; +int gravity = 10; + +#ifdef WM_DEBUG +#include "twinI.h" +#include "tileI.h" +Tilwin *tw_global; +Tile *t_global; +#endif diff --git a/twin_list.c b/twin_list.c new file mode 100644 index 0000000..4c05fa0 --- /dev/null +++ b/twin_list.c @@ -0,0 +1,68 @@ +#ifndef lint +static char sccs_id[] = "@(#)twin_list.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" +#include "twinD.h" +#include "state.h" + +static WinpHandle curhandle; + +void Tilwin_Gen_Open_Windows() +{ + curhandle = State_Gen_Open_Windows(); +} + +void Tilwin_Gen_Closed_Windows() +{ + curhandle = State_Gen_Closed_Windows(); +} + +void Tilwin_Gen_Just_Opened_Windows() +{ + curhandle = State_Gen_Just_Opened_Windows(); +} + +void Tilwin_Gen_Just_Modified_Windows() +{ + curhandle = State_Gen_Just_Modified_Windows(); +} + +void Tilwin_Gen_Just_Closed_Windows() +{ + curhandle = State_Gen_Just_Closed_Windows(); +} + +Tilwinp Tilwin_Next_Window() +{ + Tilwin *winp; + + winp = State_Coerce(curhandle); + State_Next_Window(&curhandle); + return (Tilwinp) winp; +} + diff --git a/twin_ltst.c b/twin_ltst.c new file mode 100644 index 0000000..5e373d5 --- /dev/null +++ b/twin_ltst.c @@ -0,0 +1,117 @@ +#ifndef lint +static char sccs_id[] = "@(#)twin_ltst.c 5.5 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" +#include "state.h" +#include "twinD.h" + +#define MAXKTH 20 + +/* ------------------------------------------------------------ */ + +Tilwinp Tilwin_Get_Latest_Height( kth ) + int kth; +{ + WinpHandle handle; + Tilwin *winp; + int curkth = 0; + Tilwin *(winps[MAXKTH+1]); + int i; + + if ( kth > MAXKTH ) + kth = MAXKTH; + + handle = State_Gen_Open_Windows(); + while ((winp = State_Coerce(handle)) != WINP_NULL) + { + i = curkth; + while ( ( i > 0 ) && + ( winps[i-1]->height_stamp < + winp->height_stamp ) ) + { + winps[i] = winps[i-1]; + i--; + } + + if ( i < kth ) + { + winps[i] = winp; + if ( curkth < kth ) + curkth++; + } + + State_Next_Window(&handle); + } + + if ( ( curkth == kth ) && ( winps[kth-1]->height_stamp > 0 ) ) + return (Tilwinp)(winps[kth-1]); + else + return WIN_NULL; +} + +/* ------------------------------------------------------------ */ + +Tilwinp Tilwin_Get_Latest_Width( kth ) + int kth; +{ + WinpHandle handle; + Tilwin *winp; + int curkth = 0; + Tilwin *(winps[MAXKTH+1]); + int i; + + if ( kth > MAXKTH ) + kth = MAXKTH; + + handle = State_Gen_Open_Windows(); + while ((winp = State_Coerce(handle)) != WINP_NULL) + { + i = curkth; + while ( ( i > 0 ) && + ( winps[i-1]->width_stamp < + winp->width_stamp ) ) + { + winps[i] = winps[i-1]; + i--; + } + + if ( i < kth ) + { + winps[i] = winp; + if ( curkth < kth ) + curkth++; + } + + State_Next_Window(&handle); + } + + if ( ( curkth == kth ) && ( winps[kth-1]->width_stamp > 0 ) ) + return (Tilwinp)(winps[kth-1]); + else + return WIN_NULL; +} diff --git a/twin_misc.c b/twin_misc.c new file mode 100644 index 0000000..5ff641c --- /dev/null +++ b/twin_misc.c @@ -0,0 +1,116 @@ +#ifndef lint +static char sccs_id[] = "@(#)twin_misc.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "twinD.h" +#include "state.h" +#include "tileD.h" +#include "tile.h" +#include "win.h" + +Tilwinp +Tilwin_Locate(pt) + TWPoint pt; +{ + Tilep tilep; + + tilep = Tile_at_Point(Get_PtX(pt), Get_PtY(pt)); + +#ifdef WM_DEBUG + t_global = (Tile *) tilep; + if (tilep != (Tilep) NULL) + tw_global = (Tilwin *) Tile_Get_Win((Tile *) tilep); + else + tw_global = (Tilwin *) NULL; +#endif + + if (tilep == (Tilep) NULL_TILE || + Tile_Get_Type((Tile *) tilep) == Space) + return(WIN_NULL); + else + return( (Tilwinp) Tile_Get_Win((Tile *) tilep)); +} + +Tilwinp +Tilwin_Locate_Window(id) + pointer id; +{ + Tilwin *winp; + WinpHandle handle; + + handle = State_Gen_Open_Windows(); + while ((winp = State_Coerce(handle)) != WINP_NULL) { + if (Tilwin_Get_Window_Id(((Tilwinp) winp)) == id) + return((Tilwinp)winp); + State_Next_Window(&handle); + } + + handle = State_Gen_Closed_Windows(); + while ((winp = State_Coerce(handle)) != WINP_NULL) { + if (Tilwin_Get_Window_Id(((Tilwinp)winp)) == id) + return((Tilwinp)winp); + State_Next_Window(&handle); + } + + return(WIN_NULL); +} + +void +Tilwin_Modify_Covered_Windows(rect) + TWRectangle rect; +{ + + Tiles_In_Area(Get_LeftX(rect), Get_TopY(rect), + Get_RightX(rect), Get_BottomY(rect), + Win_Add_Modified); +} + +/* Returns FALSE if any tile in the area defined by rect is + * a space tile. Communication with Win_Is_Covered is accomplished through + * the use of the global variable no_space_tile_in_area. + */ + +bool no_space_tile_in_area; + +bool +Tilwin_Is_Covered(rect) + TWRectangle rect; +{ + + no_space_tile_in_area = TRUE; + Tiles_In_Area(Get_LeftX(rect), Get_TopY(rect), + Get_RightX(rect), Get_BottomY(rect), + Win_Is_Covered); + + return(no_space_tile_in_area); + +} + +void +Tilwin_Prorate() +{ +} diff --git a/twin_open.c b/twin_open.c new file mode 100644 index 0000000..1ecc5cf --- /dev/null +++ b/twin_open.c @@ -0,0 +1,355 @@ +#ifndef lint +static char sccs_id[] = "@(#)twin_open.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" +#include "twinD.h" +#include "state.h" +#include "trial.h" +#include "commit.h" +#include "gravity.h" +#include "win.h" + +extern TWRectangle desktop_rect; + +bool +Tilwin_Open(winp, location, size) + Tilwinp winp; + TWPoint location; + Size size; +{ + Tilwin *twinp = (Tilwin *)winp; + TWRectangle rect, + current_rect, + grect, + arect; + + State_Start_Operation(); + + /* if the window is open, remove it's edges from the gravity list + so they don't interfere with the placement + */ + if (Tilwin_Is_Open(twinp) == TRUE){ + grect = Tilwin_Get_Rectangle(twinp); + Gravity_Delete_Edge(Get_LeftX(grect), Left); + Gravity_Delete_Edge(Get_RightX(grect), Right); + Gravity_Delete_Edge(Get_TopY(grect), Top); + Gravity_Delete_Edge(Get_BottomY(grect), Bottom); + } + + /* check to make sure size width and height are even */ + if (Is_Odd_Number(Get_Width(size)) == TRUE) + Get_Width(size)--; + if (Is_Odd_Number(Get_Height(size)) == TRUE) + Get_Height(size)--; + + MAKE_RECTANGLE(location, size, rect); + current_rect = Tilwin_Get_Rectangle(twinp); + + /* check to see if the rectangle given us (implicitly by the location and + * size) satisfied fixed edge options + */ + if (Tilwin_Get_Window_Option(twinp, FIXED_LEFT_EDGE) == TRUE){ + Get_LeftX(rect) = Get_LeftX(current_rect); + Get_RightX(rect) = Get_LeftX(rect) + (Get_Width(size) - 1); + /* adjust for gravity (preserving min/max requirements) */ + (void) Trial_Place(&rect, Right, Tilwin_Get_Min(twinp), + Tilwin_Get_Max(twinp)); + } + else if (Tilwin_Get_Window_Option(twinp, FIXED_RIGHT_EDGE) == TRUE){ + Get_RightX(rect) = Get_RightX(current_rect); + Get_LeftX(rect) = Get_RightX(rect) - (Get_Width(size) - 1); + (void) Trial_Place(&rect, Left, Tilwin_Get_Min(twinp), + Tilwin_Get_Max(twinp)); + } + else{ + /* NOTE: Trail_Place adjusts both the width and the height of the + * rectangle when given a side of NoSide, + * we are only interested in adjusting the width here + */ + arect = rect; + (void) Trial_Place(&arect, NoSide, Tilwin_Get_Min(twinp), + Tilwin_Get_Max(twinp)); + Get_LeftX(rect) = Get_LeftX(arect); + Get_RightX(rect) = Get_RightX(arect); + } + + if (Tilwin_Get_Window_Option(twinp, FIXED_TOP_EDGE) == TRUE) { + Get_TopY(rect) = Get_TopY(current_rect); + Get_BottomY(rect) = Get_TopY(rect) + (Get_Height(size) - 1); + (void) Trial_Place(&rect, Bottom, Tilwin_Get_Min(twinp), + Tilwin_Get_Max(twinp)); + } + else if (Tilwin_Get_Window_Option(twinp, FIXED_BOTTOM_EDGE) == TRUE) { + Get_BottomY(rect) = Get_BottomY(current_rect); + Get_TopY(rect) = Get_BottomY(rect) - (Get_Height(size) - 1); + (void) Trial_Place(&rect, Top, Tilwin_Get_Min(twinp), + Tilwin_Get_Max(twinp)); + } + else{ + /* NOTE: Trail_Place adjusts both the width and the height of the + * rectangle when given a side of NoSide, + * we are only interested in adjusting the height here + */ + arect = rect; + (void) Trial_Place(&arect, NoSide, Tilwin_Get_Min(twinp), + Tilwin_Get_Max(twinp)); + Get_TopY(rect) = Get_TopY(arect); + Get_BottomY(rect) = Get_BottomY(arect); + } + + /* if the window is open, restore the edges to the gravity list */ + if (Tilwin_Is_Open(twinp) == TRUE) { + Gravity_Insert_Edge(Get_LeftX(grect), Left); + Gravity_Insert_Edge(Get_RightX(grect), Right); + Gravity_Insert_Edge(Get_TopY(grect), Top); + Gravity_Insert_Edge(Get_BottomY(grect), Bottom); + } + + /* check to make sure rectangle is on the desktop, if not fail */ + if (Get_LeftX(rect) < Get_LeftX(desktop_rect) || + Get_RightX(rect) > Get_RightX(desktop_rect) || + Get_TopY(rect) < Get_TopY(desktop_rect) || + Get_BottomY(rect) > Get_BottomY(desktop_rect)) { + return(FALSE); + } + + /* try to open the window */ + if (Trial_Open(twinp, rect, State_Get_Timestamp()) == TRUE) { + Commit_Operation(twinp); + return(TRUE); + } + else { + return(FALSE); + } +} + +bool +Tilwin_Check_Corner_Open(winp, start_pt, adr_pt, corner, min_size, max_size) + Tilwinp winp; + TWPoint *start_pt; + TWPoint *adr_pt; + Side corner; + Size min_size, + max_size; +{ + Tilwin *twinp = (Tilwin *)winp; + TWRectangle rect, + grect; + Side opp_corner; + + /* check incoming sizes (the points are check when adjusted + * for gravity) + */ + if (Is_Odd_Number(Get_Width(min_size)) == TRUE) + Get_Width(min_size)++; + if (Is_Odd_Number(Get_Height(min_size)) == TRUE) + Get_Height(min_size)++; + if (Is_Odd_Number(Get_Width(max_size)) == TRUE) + Get_Width(max_size)++; + if (Is_Odd_Number(Get_Height(max_size)) == TRUE) + Get_Height(max_size)++; + + + /* if the window is open, remove it's edges from the gravity lists so they + * don't interfere with the placement + */ + if (Tilwin_Is_Open(twinp) == TRUE){ + grect = Tilwin_Get_Rectangle(twinp); + Gravity_Delete_Edge(Get_LeftX(grect), Left); + Gravity_Delete_Edge(Get_RightX(grect), Right); + Gravity_Delete_Edge(Get_TopY(grect), Top); + Gravity_Delete_Edge(Get_BottomY(grect), Bottom); + } + + switch (corner) { + case Top_Left: + if (Tilwin_Get_Window_Option(twinp, FIXED_LEFT_EDGE) == TRUE) + Get_PtX(*start_pt) = Get_LeftX(Tilwin_Get_Rectangle(twinp)); + else + Get_PtX(*start_pt) = Gravity_Adjust_Edge(Get_PtX(*start_pt), Left); + if (Tilwin_Get_Window_Option(twinp, FIXED_TOP_EDGE) == TRUE) + Get_PtY(*start_pt) = Get_TopY(Tilwin_Get_Rectangle(twinp)); + else + Get_PtY(*start_pt) = Gravity_Adjust_Edge(Get_PtY(*start_pt), Top); + + Get_LeftX(rect) = Get_PtX(*start_pt); + Get_TopY(rect) = Get_PtY(*start_pt); + Get_RightX(rect) = Get_PtX(*adr_pt); + Get_BottomY(rect) = Get_PtY(*adr_pt); + opp_corner = Bottom_Right; + break; + case Top_Right: + if (Tilwin_Get_Window_Option(twinp, FIXED_RIGHT_EDGE) == TRUE) + Get_PtX(*start_pt) = Get_RightX(Tilwin_Get_Rectangle(twinp)); + else + Get_PtX(*start_pt) = Gravity_Adjust_Edge(Get_PtX(*start_pt), Right); + if (Tilwin_Get_Window_Option(twinp, FIXED_TOP_EDGE) == TRUE) + Get_PtY(*start_pt) = Get_TopY(Tilwin_Get_Rectangle(twinp)); + else + Get_PtY(*start_pt) = Gravity_Adjust_Edge(Get_PtY(*start_pt), Top); + + Get_LeftX(rect) = Get_PtX(*adr_pt); + Get_TopY(rect) = Get_PtY(*start_pt); + Get_RightX(rect) = Get_PtX(*start_pt); + Get_BottomY(rect) = Get_PtY(*adr_pt); + opp_corner = Bottom_Left; + break; + case Bottom_Left: + if (Tilwin_Get_Window_Option(twinp, FIXED_LEFT_EDGE) == TRUE) + Get_PtX(*start_pt) = Get_LeftX(Tilwin_Get_Rectangle(twinp)); + else + Get_PtX(*start_pt) = Gravity_Adjust_Edge(Get_PtX(*start_pt), Left); + if (Tilwin_Get_Window_Option(twinp, FIXED_BOTTOM_EDGE) == TRUE) + Get_PtY(*start_pt) = Get_BottomY(Tilwin_Get_Rectangle(twinp)); + else + Get_PtY(*start_pt) = Gravity_Adjust_Edge(Get_PtY(*start_pt), Bottom); + + Get_LeftX(rect) = Get_PtX(*start_pt); + Get_TopY(rect) = Get_PtY(*adr_pt); + Get_RightX(rect) = Get_PtX(*adr_pt); + Get_BottomY(rect) = Get_PtY(*start_pt); + opp_corner = Top_Right; + break; + case Bottom_Right: + if (Tilwin_Get_Window_Option(twinp, FIXED_RIGHT_EDGE) == TRUE) + Get_PtX(*start_pt) = Get_RightX(Tilwin_Get_Rectangle(twinp)); + else + Get_PtX(*start_pt) = Gravity_Adjust_Edge(Get_PtX(*start_pt), Left); + if (Tilwin_Get_Window_Option(twinp, FIXED_BOTTOM_EDGE) == TRUE) + Get_PtY(*start_pt) = Get_BottomY(Tilwin_Get_Rectangle(twinp)); + else + Get_PtY(*start_pt) = Gravity_Adjust_Edge(Get_PtY(*start_pt), Bottom); + + Get_LeftX(rect) = Get_PtX(*adr_pt); + Get_TopY(rect) = Get_PtY(*adr_pt); + Get_RightX(rect) = Get_PtX(*start_pt); + Get_BottomY(rect) = Get_PtY(*start_pt); + opp_corner = Top_Left; + break; + } + + /* if the rectangle is changed by gravity and/or min/max adjustments, + * reflect the changes in the given points. + */ + (void) Trial_Place(&rect, opp_corner, min_size, max_size); + switch (corner) { + case Top_Left: + Get_PtX(*start_pt) = Get_LeftX(rect); + Get_PtY(*start_pt) = Get_TopY(rect); + Get_PtX(*adr_pt) = Get_RightX(rect); + Get_PtY(*adr_pt) = Get_BottomY(rect); + break; + case Top_Right: + Get_PtX(*start_pt) = Get_RightX(rect); + Get_PtY(*start_pt) = Get_TopY(rect); + Get_PtX(*adr_pt) = Get_LeftX(rect); + Get_PtY(*adr_pt) = Get_BottomY(rect); + break; + case Bottom_Left: + Get_PtX(*start_pt) = Get_LeftX(rect); + Get_PtY(*start_pt) = Get_BottomY(rect); + Get_PtX(*adr_pt) = Get_RightX(rect); + Get_PtY(*adr_pt) = Get_TopY(rect); + break; + case Bottom_Right: + Get_PtX(*start_pt) = Get_RightX(rect); + Get_PtY(*start_pt) = Get_BottomY(rect); + Get_PtX(*adr_pt) = Get_LeftX(rect); + Get_PtY(*adr_pt) = Get_TopY(rect); + break; + } + + if (Tilwin_Is_Open(twinp) == TRUE){ + Gravity_Insert_Edge(Get_LeftX(grect), Left); + Gravity_Insert_Edge(Get_RightX(grect), Right); + Gravity_Insert_Edge(Get_TopY(grect), Top); + Gravity_Insert_Edge(Get_BottomY(grect), Bottom); + } + + return(TRUE); +} + +bool +Tilwin_Check_Center_Open(winp, adr_pt, sizep) + Tilwinp winp; + TWPoint *adr_pt; + Size *sizep; +{ + Tilwin *twinp = (Tilwin *) winp; + TWRectangle rect, + grect; + + /* if the window is open, remove it's edges from the gravity lists so they + * don't interfere with the placement + */ + if (Tilwin_Is_Open(twinp) == TRUE){ + grect = Tilwin_Get_Rectangle(twinp); + Gravity_Delete_Edge(Get_LeftX(grect), Left); + Gravity_Delete_Edge(Get_RightX(grect), Right); + Gravity_Delete_Edge(Get_TopY(grect), Top); + Gravity_Delete_Edge(Get_BottomY(grect), Bottom); + } + + *sizep = Tilwin_Get_Size(twinp); + (void) Trial_Satisfied(twinp, sizep); + MAKE_RECTANGLE(*adr_pt, *sizep, rect); + + if (Tilwin_Get_Window_Option(twinp, FIXED_LEFT_EDGE) == TRUE){ + Get_LeftX(rect) = Get_LeftX(Tilwin_Get_Rectangle(twinp)); + Get_RightX(rect) = Get_LeftX(rect) + (Get_Width(*sizep) - 1); + } + else if (Tilwin_Get_Window_Option(twinp, FIXED_RIGHT_EDGE) == TRUE){ + Get_RightX(rect) = Get_RightX(Tilwin_Get_Rectangle(twinp)); + Get_LeftX(rect) = Get_RightX(rect) - (Get_Width(*sizep) - 1); + } + + if (Tilwin_Get_Window_Option(twinp, FIXED_TOP_EDGE) == TRUE){ + Get_TopY(rect) = Get_TopY(Tilwin_Get_Rectangle(twinp)); + Get_BottomY(rect) = Get_TopY(rect) + (Get_Height(*sizep) - 1); + } + else if (Tilwin_Get_Window_Option(twinp, FIXED_BOTTOM_EDGE) == TRUE){ + Get_BottomY(rect) = Get_BottomY(Tilwin_Get_Rectangle(twinp)); + Get_TopY(rect) = Get_BottomY(rect) - (Get_Height(*sizep) - 1); + } + + /* by using *sizep as both the min and the max we can adjust the rectangle + * for gravity while holding the size fixed + */ + (void) Trial_Place(&rect, NoSide, *sizep, *sizep); + + COMPUTE_CENTER(rect, *adr_pt); + + if (Tilwin_Is_Open(twinp) == TRUE){ + Gravity_Insert_Edge(Get_LeftX(grect), Left); + Gravity_Insert_Edge(Get_RightX(grect), Right); + Gravity_Insert_Edge(Get_TopY(grect), Top); + Gravity_Insert_Edge(Get_BottomY(grect), Bottom); + } + + return(TRUE); +} diff --git a/twin_resat.c b/twin_resat.c new file mode 100644 index 0000000..9fc2d7a --- /dev/null +++ b/twin_resat.c @@ -0,0 +1,54 @@ +#ifndef lint +static char sccs_id[] = "@(#)twin_resat.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" +#include "twinD.h" +#include "state.h" +#include "trial.h" +#include "commit.h" +#include "win.h" + +bool +Tilwin_Is_Satisfied(winp) + Tilwinp winp; +{ + Tilwin *twinp = (Tilwin *)winp; + Size size; + + size = Tilwin_Get_Size(twinp); + return(Trial_Satisfied(twinp, &size)); +} + +bool Tilwin_Satisfied_By_Size(winp, size) + Tilwinp winp; + Size size; +{ + Tilwin *twinp = (Tilwin *)winp; + + return(Trial_Satisfied(twinp, &size)); +} diff --git a/twin_rsz.c b/twin_rsz.c new file mode 100644 index 0000000..669407c --- /dev/null +++ b/twin_rsz.c @@ -0,0 +1,547 @@ +#ifndef lint +static char sccs_id[] = "@(#)twin_rsz.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" +#include "twinD.h" +#include "state.h" +#include "trial.h" +#include "commit.h" +#include "win.h" +#include "gravity.h" + +extern bool Tilwin_Open_Best_In_Area(); +extern TWRectangle desktop_rect; + +bool +Tilwin_Check_Resize(winp, adr_pt, dir, min_size, max_size) + Tilwinp winp; + TWPoint *adr_pt; + Side dir; + Size min_size, + max_size; +{ + Tilwin *twinp = (Tilwin *)winp; + TWRectangle rect, + grect; + + /* check incoming sizes (the points are check when adjusted + * for gravity) + */ + if (Is_Odd_Number(Get_Width(min_size)) == TRUE) + Get_Width(min_size)++; + if (Is_Odd_Number(Get_Height(min_size)) == TRUE) + Get_Height(min_size)++; + if (Is_Odd_Number(Get_Width(max_size)) == TRUE) + Get_Width(max_size)++; + if (Is_Odd_Number(Get_Height(max_size)) == TRUE) + Get_Height(max_size)++; + + /* if the window is open, remove it's edges from the gravity lists so they + * don't interfere with the placement + */ + if (Tilwin_Is_Open(twinp) == TRUE){ + grect = Tilwin_Get_Rectangle(twinp); + Gravity_Delete_Edge(Get_LeftX(grect), Left); + Gravity_Delete_Edge(Get_RightX(grect), Right); + Gravity_Delete_Edge(Get_TopY(grect), Top); + Gravity_Delete_Edge(Get_BottomY(grect), Bottom); + } + + rect = Tilwin_Get_Rectangle(twinp); + + if (dir == Left || dir == Top_Left || dir == Bottom_Left) + Get_LeftX(rect) = Get_PtX(*adr_pt); + else if (dir == Right || dir == Top_Right || dir == Bottom_Right) + Get_RightX(rect) = Get_PtX(*adr_pt); + if (dir == Top || dir == Top_Left || dir == Top_Right) + Get_TopY(rect) = Get_PtY(*adr_pt); + else if (dir == Bottom || dir == Bottom_Left || dir == Bottom_Right) + Get_BottomY(rect) = Get_PtY(*adr_pt); + + (void) Trial_Place(&rect, dir, min_size, max_size); + + if (dir == Left || dir == Top_Left || dir == Bottom_Left) + Get_PtX(*adr_pt) = Get_LeftX(rect); + else if (dir == Right || dir == Top_Right || dir == Bottom_Right) + Get_PtX(*adr_pt) = Get_RightX(rect); + if (dir == Top || dir == Top_Left || dir == Top_Right) + Get_PtY(*adr_pt) = Get_TopY(rect); + else if (dir == Bottom || dir == Bottom_Left || dir == Bottom_Right) + Get_PtY(*adr_pt) = Get_BottomY(rect); + + + if (Tilwin_Is_Open(twinp) == TRUE){ + Gravity_Insert_Edge(Get_LeftX(grect), Left); + Gravity_Insert_Edge(Get_RightX(grect), Right); + Gravity_Insert_Edge(Get_TopY(grect), Top); + Gravity_Insert_Edge(Get_BottomY(grect), Bottom); + } + + return(TRUE); + +} + +#define SWAP_VALUE(option, value, hold)\ + {\ + hold = Tilwin_Get_Window_Option(winp, option);\ + Tilwin_Set_Window_Option(winp, option, value);\ + } + +bool +Tilwin_Resize(winp, siz, dir) + Tilwinp winp; + Size siz; + Side dir; +{ + Tilwin *twinp = (Tilwin *)winp; + TWRectangle rect, + desired_rect, + current_rect; + TWPoint best_pt, + pt; + Side width_side, + height_side; + bool fixed_width, fixed_height, + old_left, old_right, old_top, old_bottom, + ret_val; + Size size, + org_size; + + + /* check to make sure siz width and height are even */ + if (Is_Odd_Number(Get_Width(siz)) == TRUE) + Get_Width(siz)--; + if (Is_Odd_Number(Get_Height(siz)) == TRUE) + Get_Height(siz)--; + + rect = Tilwin_Get_Rectangle(twinp); + + switch (dir){ + case Left: + Get_LeftX(rect) = Get_RightX(rect) - (Get_Width(siz) - 1); + break; + case Right: + Get_RightX(rect) = Get_LeftX(rect) + (Get_Width(siz) - 1); + break; + case Top: + Get_TopY(rect) = Get_BottomY(rect) - (Get_Height(siz) - 1); + break; + case Bottom: + Get_BottomY(rect) = Get_TopY(rect) + (Get_Height(siz) - 1); + break; + case Top_Left: + Get_TopY(rect) = Get_BottomY(rect) - (Get_Height(siz) - 1); + Get_LeftX(rect) = Get_RightX(rect) - (Get_Width(siz) - 1); + break; + case Top_Right: + Get_TopY(rect) = Get_BottomY(rect) - (Get_Height(siz) - 1); + Get_RightX(rect) = Get_LeftX(rect) + (Get_Width(siz) - 1); + break; + case Bottom_Left: + Get_BottomY(rect) = Get_TopY(rect) + (Get_Height(siz) - 1); + Get_LeftX(rect) = Get_RightX(rect) - (Get_Width(siz) - 1); + break; + case Bottom_Right: + Get_BottomY(rect) = Get_TopY(rect) + (Get_Height(siz) - 1); + Get_RightX(rect) = Get_LeftX(rect) + (Get_Width(siz) - 1); + break; + default: + return(FALSE); + } + + width_side = height_side = NoSide; + + /* check horizontal rectangle */ + if (dir != Top && dir != Bottom){ + fixed_width = Tilwin_Get_Window_Option(twinp, FIXED_SIZE) || + Tilwin_Get_Window_Option(twinp, FIXED_WIDTH); + + /* check to make sure the point is on the desktop */ + if (Get_LeftX(rect) < Get_LeftX(desktop_rect)){ + if (fixed_width) + return(FALSE); + else + Get_LeftX(rect) = Get_LeftX(desktop_rect); + } + else if (Get_RightX(rect) > Get_RightX(desktop_rect)){ + if (fixed_width) + return(FALSE); + else + Get_RightX(rect) = Get_RightX(desktop_rect); + } + + /* compute the horizontal rectangle of the resized window */ + if (dir == Left || dir == Top_Left || dir == Bottom_Left){ + width_side = Left; + } + else if (dir == Right || dir == Top_Right || dir == Bottom_Right){ + width_side = Right; + } + + /* if the width is fixed and that width does not satisfy min/max + * requirements, fail + */ + if (fixed_width == TRUE){ + COMPUTE_SIZE(rect, size); + org_size = size; + if (Trial_Satisfied(twinp, &size) == FALSE) + if (Get_Width(size) != Get_Width(org_size)) + return(FALSE); + } + /* else call Trial_Place to adjust the new point wrt gravity and make + * sure the windows min/max are satisfied + */ + else{ + (void) Trial_Place(&rect, width_side, Tilwin_Get_Min(twinp), + Tilwin_Get_Max(twinp)); + /* make sure that adjustments did not push the rectangle off of the + * desktop + */ + if (Get_LeftX(rect) < Get_LeftX(desktop_rect) || + Get_RightX(rect) > Get_RightX(desktop_rect)) + return(FALSE); + + if (width_side == Left) + Get_PtX(pt) = Get_LeftX(rect); + else + Get_PtX(pt) = Get_RightX(rect); + } + } + + /* check vertical rectangle */ + if (dir != Left && dir != Right){ + fixed_height = Tilwin_Get_Window_Option(twinp, FIXED_SIZE) || + Tilwin_Get_Window_Option(twinp, FIXED_HEIGHT); + /* check to make sure the point is on the desktop */ + if (Get_TopY(rect) < Get_TopY(desktop_rect)){ + if (fixed_height) + return(FALSE); + else + Get_TopY(rect) = Get_TopY(desktop_rect); + } + else if (Get_BottomY(rect) > Get_BottomY(desktop_rect)){ + if (fixed_height) + return(FALSE); + else + Get_BottomY(rect) = Get_BottomY(desktop_rect); + } + + /* compute the vertical rectangle of the resized window */ + if (dir == Top || dir == Top_Left || dir == Top_Right){ + height_side = Top; + } + else if (dir == Bottom || dir == Bottom_Left || dir == Bottom_Right){ + height_side = Bottom; + } + + /* if the height is fixed and that height does not satisfy min/max + * requirements, fail + */ + if (fixed_height == TRUE){ + COMPUTE_SIZE(rect, size); + org_size = size; + if (Trial_Satisfied(twinp, &size) == FALSE) + if (Get_Height(size) != Get_Height(org_size)) + return(FALSE); + } + /* else call Trial_Place to adjust the new point wrt gravity and make + * sure the windows min/max are satisfied + */ + else{ + (void) Trial_Place(&rect, height_side, Tilwin_Get_Min(twinp), + Tilwin_Get_Max(twinp)); + /* make sure that adjustments did not push the rectangle off of the + * desktop + */ + if (Get_TopY(rect) < Get_TopY(desktop_rect) || + Get_BottomY(rect) > Get_BottomY(desktop_rect)) + return(FALSE); + + if (height_side == Top) + Get_PtY(pt) = Get_TopY(rect); + else + Get_PtY(pt) = Get_BottomY(rect); + } + } + + desired_rect = rect; /* rectangle to be used if we are to an open */ + current_rect = Tilwin_Get_Rectangle(twinp); /* rectangle for resizes */ + best_pt = pt; + + switch (dir) { + case Left: + /* if the size or width is fixed, we are in an "all or nothing" case, + * therefore just do an open + */ + if (fixed_width == TRUE) + ret_val = Trial_Open(twinp, desired_rect, State_Get_Timestamp()); + /* else try to resize in the specified direction the window as much + * as possible + */ + else{ + (void) Trial_Grow(twinp, current_rect, dir, &best_pt, State_Get_Timestamp()); + Get_LeftX(current_rect) = Get_PtX(best_pt); + (void) Trial_Open(twinp, current_rect, State_Get_Timestamp()); + ret_val = TRUE; + } + /* if we were successful, commit the operation */ + if (ret_val == TRUE) + Commit_Operation(twinp); + break; + case Right: + if (fixed_width == TRUE) + ret_val = Trial_Open(twinp, desired_rect, State_Get_Timestamp()); + else{ + (void) Trial_Grow(twinp, current_rect, dir, &best_pt, State_Get_Timestamp()); + Get_RightX(current_rect) = Get_PtX(best_pt); + (void) Trial_Open(twinp, current_rect, State_Get_Timestamp()); + ret_val = TRUE; + } + if (ret_val == TRUE) + Commit_Operation(twinp); + break; + case Top: + if (fixed_height == TRUE) + ret_val = Trial_Open(twinp, desired_rect, State_Get_Timestamp()); + else{ + (void) Trial_Grow(twinp, current_rect, dir, &best_pt, State_Get_Timestamp()); + Get_TopY(current_rect) = Get_PtY(best_pt); + (void) Trial_Open(twinp, current_rect, State_Get_Timestamp()); + ret_val = TRUE; + } + if (ret_val == TRUE) + Commit_Operation(twinp); + break; + case Bottom: + if (fixed_height == TRUE) + ret_val = Trial_Open(twinp, desired_rect, State_Get_Timestamp()); + else{ + (void) Trial_Grow(twinp, current_rect, dir, &best_pt, State_Get_Timestamp()); + Get_BottomY(current_rect) = Get_PtY(best_pt); + (void) Trial_Open(twinp, current_rect, State_Get_Timestamp()); + ret_val = TRUE; + } + if (ret_val == TRUE) + Commit_Operation(twinp); + break; + case Top_Left: + /* if the width and height are both TRUE, do an open */ + if (fixed_width == TRUE && fixed_height == TRUE){ + if ((ret_val = Trial_Open(twinp, desired_rect, State_Get_Timestamp())) == TRUE) + Commit_Operation(twinp); + } + /* else if just the width is fixed, do an open on the width and, if + * this succeeds, do a resize on the height */ + else if (fixed_width == TRUE){ + Get_LeftX(current_rect) = Get_LeftX(desired_rect); + if ((ret_val = Trial_Open(twinp, current_rect, State_Get_Timestamp())) == TRUE){ + (void) Trial_Grow(twinp, current_rect, Top, &best_pt, State_Get_Timestamp()); + Get_TopY(current_rect) = Get_PtY(best_pt); + (void) Trial_Open(twinp, current_rect, State_Get_Timestamp()); + Commit_Operation(twinp); + } + } + /* else if just the height is fixed, do an open on the height and, if + * this succeeds, do a resize on the width */ + else if (fixed_height == TRUE){ + Get_TopY(current_rect) = Get_TopY(desired_rect); + if ((ret_val = Trial_Open(twinp, current_rect, State_Get_Timestamp())) == TRUE){ + (void) Trial_Grow(twinp, current_rect, Left, &best_pt, State_Get_Timestamp()); + Get_LeftX(current_rect) = Get_PtX(best_pt); + (void) Trial_Open(twinp, current_rect, State_Get_Timestamp()); + Commit_Operation(twinp); + } + } + /* else neither direction is fixed, so try to do an open to resize the + * window, if this fails use Open_Best_In_Area */ + else{ + if ((ret_val = Trial_Open(twinp, desired_rect, State_Get_Timestamp())) == TRUE) + Commit_Operation(twinp); + else{ + SWAP_VALUE(FIXED_LEFT_EDGE, FALSE, old_left); + SWAP_VALUE(FIXED_RIGHT_EDGE, TRUE, old_right); + SWAP_VALUE(FIXED_TOP_EDGE, FALSE, old_top); + SWAP_VALUE(FIXED_BOTTOM_EDGE, TRUE, old_bottom); + COMPUTE_SIZE(rect, size); + if ((ret_val = Tilwin_Open_Best_In_Area(winp, desired_rect, size)) == TRUE) + Commit_Operation(twinp); + SWAP_VALUE(FIXED_LEFT_EDGE, old_left, old_left); + SWAP_VALUE(FIXED_RIGHT_EDGE, old_right, old_right); + SWAP_VALUE(FIXED_TOP_EDGE, old_top, old_top); + SWAP_VALUE(FIXED_BOTTOM_EDGE, old_bottom, old_bottom); + } + } + break; + case Top_Right: + /* if the width and height are both TRUE, do an open */ + if (fixed_width == TRUE && fixed_height == TRUE){ + if ((ret_val = Trial_Open(twinp, desired_rect, State_Get_Timestamp())) == TRUE) + Commit_Operation(twinp); + } + /* else if just the width is fixed, do an open on the width and, if + * this succeeds, do a resize on the height */ + else if (fixed_width == TRUE){ + Get_RightX(current_rect) = Get_RightX(desired_rect); + if ((ret_val = Trial_Open(twinp, current_rect, State_Get_Timestamp())) == TRUE){ + (void) Trial_Grow(twinp, current_rect, Top, &best_pt, State_Get_Timestamp()); + Get_TopY(current_rect) = Get_PtY(best_pt); + (void) Trial_Open(twinp, current_rect, State_Get_Timestamp()); + Commit_Operation(twinp); + } + } + /* else if just the height is fixed, do an open on the height and, if + * this succeeds, do a resize on the width */ + else if (fixed_height == TRUE){ + Get_TopY(current_rect) = Get_TopY(desired_rect); + if ((ret_val = Trial_Open(twinp, current_rect, State_Get_Timestamp())) == TRUE){ + (void) Trial_Grow(twinp, current_rect, Right, &best_pt, State_Get_Timestamp()); + Get_RightX(current_rect) = Get_PtX(best_pt); + (void) Trial_Open(twinp, current_rect, State_Get_Timestamp()); + Commit_Operation(twinp); + } + } + /* else neither direction is fixed, so try to do an open to resize the + * window, if this fails use Open_Best_In_Area */ + else{ + if ((ret_val = Trial_Open(twinp, desired_rect, State_Get_Timestamp())) == TRUE) + Commit_Operation(twinp); + else{ + SWAP_VALUE(FIXED_LEFT_EDGE, TRUE, old_left); + SWAP_VALUE(FIXED_RIGHT_EDGE, FALSE, old_right); + SWAP_VALUE(FIXED_TOP_EDGE, FALSE, old_top); + SWAP_VALUE(FIXED_BOTTOM_EDGE, TRUE, old_bottom); + COMPUTE_SIZE(rect, size); + if ((ret_val = Tilwin_Open_Best_In_Area(winp, desired_rect, size)) == TRUE) + Commit_Operation(twinp); + SWAP_VALUE(FIXED_LEFT_EDGE, old_left, old_left); + SWAP_VALUE(FIXED_RIGHT_EDGE, old_right, old_right); + SWAP_VALUE(FIXED_TOP_EDGE, old_top, old_top); + SWAP_VALUE(FIXED_BOTTOM_EDGE, old_bottom, old_bottom); + } + } + break; + case Bottom_Left: + /* if the width and height are both TRUE, do an open */ + if (fixed_width == TRUE && fixed_height == TRUE){ + if ((ret_val = Trial_Open(twinp, desired_rect, State_Get_Timestamp())) == TRUE) + Commit_Operation(twinp); + } + /* else if just the width is fixed, do an open on the width and, if + * this succeeds, do a resize on the height */ + else if (fixed_width == TRUE){ + Get_LeftX(current_rect) = Get_LeftX(desired_rect); + if ((ret_val = Trial_Open(twinp, current_rect, State_Get_Timestamp())) == TRUE){ + (void) Trial_Grow(twinp, current_rect, Bottom, &best_pt, State_Get_Timestamp()); + Get_BottomY(current_rect) = Get_PtY(best_pt); + (void) Trial_Open(twinp, current_rect, State_Get_Timestamp()); + Commit_Operation(twinp); + } + } + /* else if just the height is fixed, do an open on the height and, if + * this succeeds, do a resize on the width */ + else if (fixed_height == TRUE){ + Get_BottomY(current_rect) = Get_BottomY(desired_rect); + if ((ret_val = Trial_Open(twinp, current_rect, State_Get_Timestamp())) == TRUE){ + (void) Trial_Grow(twinp, current_rect, Left, &best_pt, State_Get_Timestamp()); + Get_LeftX(current_rect) = Get_PtX(best_pt); + (void) Trial_Open(twinp, current_rect, State_Get_Timestamp()); + Commit_Operation(twinp); + } + } + /* else neither direction is fixed, so try to do an open to resize the + * window, if this fails use Open_Best_In_Area */ + else{ + if ((ret_val = Trial_Open(twinp, desired_rect, State_Get_Timestamp())) == TRUE) + Commit_Operation(twinp); + else{ + SWAP_VALUE(FIXED_LEFT_EDGE, FALSE, old_left); + SWAP_VALUE(FIXED_RIGHT_EDGE, TRUE, old_right); + SWAP_VALUE(FIXED_TOP_EDGE, TRUE, old_top); + SWAP_VALUE(FIXED_BOTTOM_EDGE, FALSE, old_bottom); + COMPUTE_SIZE(rect, size); + if ((ret_val = Tilwin_Open_Best_In_Area(winp, desired_rect, size)) == TRUE) + Commit_Operation(twinp); + SWAP_VALUE(FIXED_LEFT_EDGE, old_left, old_left); + SWAP_VALUE(FIXED_RIGHT_EDGE, old_right, old_right); + SWAP_VALUE(FIXED_TOP_EDGE, old_top, old_top); + SWAP_VALUE(FIXED_BOTTOM_EDGE, old_bottom, old_bottom); + } + } + break; + case Bottom_Right: + /* if the width and height are both TRUE, do an open */ + if (fixed_width == TRUE && fixed_height == TRUE){ + if ((ret_val = Trial_Open(twinp, desired_rect, State_Get_Timestamp())) == TRUE) + Commit_Operation(twinp); + } + /* else if just the width is fixed, do an open on the width and, if + * this succeeds, do a resize on the height */ + else if (fixed_width == TRUE){ + Get_RightX(current_rect) = Get_RightX(desired_rect); + if ((ret_val = Trial_Open(twinp, current_rect, State_Get_Timestamp())) == TRUE){ + (void) Trial_Grow(twinp, current_rect, Bottom, &best_pt, State_Get_Timestamp()); + Get_BottomY(current_rect) = Get_PtY(best_pt); + (void) Trial_Open(twinp, current_rect, State_Get_Timestamp()); + Commit_Operation(twinp); + } + } + /* else if just the height is fixed, do an open on the height and, if + * this succeeds, do a resize on the width */ + else if (fixed_height == TRUE){ + Get_BottomY(current_rect) = Get_BottomY(desired_rect); + if ((ret_val = Trial_Open(twinp, current_rect, State_Get_Timestamp())) == TRUE){ + (void) Trial_Grow(twinp, current_rect, Right, &best_pt, State_Get_Timestamp()); + Get_RightX(current_rect) = Get_PtX(best_pt); + (void) Trial_Open(twinp, current_rect, State_Get_Timestamp()); + Commit_Operation(twinp); + } + } + /* else neither direction is fixed, so try to do an open to resize the + * window, if this fails use Open_Best_In_Area */ + else{ + if ((ret_val = Trial_Open(twinp, desired_rect, State_Get_Timestamp())) == TRUE) + Commit_Operation(twinp); + else{ + SWAP_VALUE(FIXED_LEFT_EDGE, TRUE, old_left); + SWAP_VALUE(FIXED_RIGHT_EDGE, FALSE, old_right); + SWAP_VALUE(FIXED_TOP_EDGE, TRUE, old_top); + SWAP_VALUE(FIXED_BOTTOM_EDGE, FALSE, old_bottom); + COMPUTE_SIZE(rect, size); + if ((ret_val = Tilwin_Open_Best_In_Area(winp, desired_rect, size)) == TRUE) + Commit_Operation(twinp); + SWAP_VALUE(FIXED_LEFT_EDGE, old_left, old_left); + SWAP_VALUE(FIXED_RIGHT_EDGE, old_right, old_right); + SWAP_VALUE(FIXED_TOP_EDGE, old_top, old_top); + SWAP_VALUE(FIXED_BOTTOM_EDGE, old_bottom, old_bottom); + } + } + break; + } + + return(ret_val); +} diff --git a/twin_set.c b/twin_set.c new file mode 100644 index 0000000..51f5d47 --- /dev/null +++ b/twin_set.c @@ -0,0 +1,142 @@ +#ifndef lint +static char sccs_id[] = "@(#)twin_set.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" +#include "twinD.h" +#include "state.h" +#include "trial.h" + +extern bool Tilwin_Open(); + +bool +Tilwin_Set(winp, location, size) + Tilwinp winp; + TWPoint location; + Size size; +{ + Tilwin *twinp = (Tilwin *)winp; + TWRectangle rect, + current_rect; + + if (Is_Odd_Number(Get_Width(size)) == TRUE) + Get_Width(size)--; + if (Is_Odd_Number(Get_Height(size)) == TRUE) + Get_Height(size)--; + + if (Tilwin_Is_Open(twinp) == TRUE) + return(Tilwin_Open(winp, location, size)); + else{ + State_Start_Operation(); + + /* if the size does not meet the min/max criteria, fail */ + if (Trial_Satisfied(twinp, &size) == FALSE) + return(FALSE); + + MAKE_RECTANGLE(location, size, rect); + current_rect = Tilwin_Get_Rectangle(twinp); + + /* check to see if the rectangle given us (implicitly by the location and + * size) satisfied fixed edge options + */ + if (Tilwin_Get_Window_Option(twinp, FIXED_LEFT_EDGE) == TRUE){ + Get_LeftX(rect) = Get_LeftX(current_rect); + Get_RightX(rect) = Get_LeftX(rect) + (Get_Width(size) - 1); + } + else if (Tilwin_Get_Window_Option(twinp, FIXED_RIGHT_EDGE) == TRUE){ + Get_RightX(rect) = Get_RightX(current_rect); + Get_LeftX(rect) = Get_RightX(rect) - (Get_Width(size) - 1); + } + + if (Tilwin_Get_Window_Option(twinp, FIXED_TOP_EDGE) == TRUE) { + Get_TopY(rect) = Get_TopY(current_rect); + Get_BottomY(rect) = Get_TopY(rect) + (Get_Height(size) - 1); + } + else if (Tilwin_Get_Window_Option(twinp, FIXED_BOTTOM_EDGE) == TRUE) { + Get_BottomY(rect) = Get_BottomY(current_rect); + Get_TopY(rect) = Get_BottomY(rect) - (Get_Height(size) - 1); + } + + COMPUTE_CENTER(rect, Tilwin_Get_Center(winp)); + Tilwin_Get_Size(winp) = size; + Tilwin_Get_Rectangle(winp) = rect; + return(TRUE); + } +} + +bool +Tilwin_Set_Size(winp, size) + Tilwinp winp; + Size size; +{ + Tilwin *twinp = (Tilwin *)winp; + TWRectangle rect, + current_rect, + arect; + TWPoint location; + + if (Is_Odd_Number(Get_Width(size)) == TRUE) Get_Width(size)--; + if (Is_Odd_Number(Get_Height(size)) == TRUE) Get_Height(size)--; + + if (Trial_Satisfied(twinp, &size) == FALSE) + return(FALSE); + + current_rect = Tilwin_Get_Rectangle(twinp); + location = Tilwin_Get_Center(twinp); + + if (Tilwin_Get_Window_Option(twinp, FIXED_LEFT_EDGE) == TRUE){ + Get_LeftX(rect) = Get_LeftX(current_rect); + Get_RightX(rect) = Get_LeftX(rect) + (Get_Width(size) - 1); + } + else if (Tilwin_Get_Window_Option(twinp, FIXED_RIGHT_EDGE) == TRUE){ + Get_RightX(rect) = Get_RightX(current_rect); + Get_LeftX(rect) = Get_RightX(rect) - (Get_Width(size) - 1); + } + else{ + MAKE_RECTANGLE(location, size, arect); + Get_LeftX(rect) = Get_LeftX(arect); + Get_RightX(rect) = Get_RightX(arect); + } + + if (Tilwin_Get_Window_Option(twinp, FIXED_RIGHT_EDGE) == TRUE){ + Get_TopY(rect) = Get_TopY(current_rect); + Get_BottomY(rect) = Get_TopY(rect) + (Get_Height(size) - 1); + } + else if (Tilwin_Get_Window_Option(twinp, FIXED_BOTTOM_EDGE) == TRUE){ + Get_BottomY(rect) = Get_BottomY(current_rect); + Get_TopY(rect) = Get_BottomY(rect) - (Get_Height(size) - 1); + } + else{ + MAKE_RECTANGLE(location, size, arect); + Get_TopY(rect) = Get_TopY(arect); + Get_BottomY(rect) = Get_BottomY(arect); + } + + COMPUTE_CENTER(rect, location); + + return(Tilwin_Set(winp, location, size)); +} diff --git a/twin_slide.c b/twin_slide.c new file mode 100644 index 0000000..cf4b0d0 --- /dev/null +++ b/twin_slide.c @@ -0,0 +1,312 @@ +#ifndef lint +static char sccs_id[] = "@(#)twin_slide.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" +#include + + + +/**************************************************************************** + twin_slide.c: by Michael Berman + RTL Windows System + last modified: August 12, 1987 + reorganized; much of the guts moved to Trial_Slide_Nearest_In_Area. + also, fixed bug where tile could slide outside area. + version: 0.3 + + ****************************************************************************/ + +#include "basetype.h" +#include "twinD.h" +#include "twin.h" +#include "trial.h" + +#define SPLIT_RECT(r) r.left_x,r.top_y,r.right_x,r.bottom_y + +#define ASSERT(a,m) \ +{ \ + if (!(a)) \ + {\ + printf("YOW! %s \n",m);\ + }\ +} + +#define Is_XY_In_Rectangle(rect, x, y) \ + ((x <= Get_RightX(rect)) && (x >= Get_LeftX(rect)) && \ + (y <= Get_BottomY(rect)) && (y >= Get_TopY(rect))) + +#define Is_Rectangle_In_Rectangle(rect1, rect2) \ +(Is_XY_In_Rectangle(rect2, Get_LeftX(rect1), Get_TopY(rect1)) && \ + Is_XY_In_Rectangle(rect2, Get_LeftX(rect1), Get_BottomY(rect1)) && \ + Is_XY_In_Rectangle(rect2, Get_RightX(rect1), Get_TopY(rect1)) && \ + Is_XY_In_Rectangle(rect2, Get_RightX(rect1), Get_BottomY(rect1))) + +bool Tilwin_Slide_Farthest_In_Area(); + + +/**************************************************************************** + TILWIN SLIDE NEAREST + + Versions: + Tilwin_Slide_Nearest + Tilwin_Slide_Nearest_In_Area + Tilwin_Slide_Vert_Near_In_Area + Tilwin_Slide_Horiz_Near_In_Area + Tilwin_Slide_Farthest + Tilwin_Slide_Farthest_In_Area + + Problem: Given a pointer to a window, and a point in an area, + attempt to slide the window as close to the point as possible. + The point passed may be outside the area; if so, map it into the + area. Then open the window. + + Arguments: + winp: pointer to open window that will slide + rect: area within which to slide + pt: point to slide towards + + Modifies: + This routine changes the center and the rectangle for the + sliding window to reflect its final position, and opens the window. + + Description: + First, adjust the pt to make it within the area. + Then, call Trial_Slide_Nearest_In_Area to do the actual sliding. + Finally, open the window. + + ****************************************************************************/ + +bool Tilwin_Slide_Farthest(winp, pt) + Tilwin *winp; + TWPoint pt; +{ + TWRectangle Desktop; + + Desktop = Tilwin_Get_Desktop_Rectangle(); + return Tilwin_Slide_Farthest_In_Area(winp, Desktop, pt); +} + + +bool Tilwin_Slide_Farthest_In_Area(winp, rect, pt) + Tilwin *winp; + TWRectangle rect; + TWPoint pt; + /* PRECONDITIONS: 1. winp must be in rect + 2. pt must be in rect. + 3. pt, winp, and rect must be on the Desktop. + Given a winp and a point, slide the window as far from + point as possible, in area rect. + Note that if the point is equal to the center of the + window, it doesn't really slide to the farthest, but + instead always slides down and to the right. This + could be fixed by adding a special case. + + In order to make this do a better job of "clearing out" an + area, the following heuristic was added: always slide first + in the direction that the rectangle is already farthest from + pt. Since Tilwin_Slide_Nearest always tries to slide + horizontally first, do an explicit vertical slide if required + by this heuristic, then call Slide_Nearest. */ + +{ + TWPoint corner, WindowCenter; + + /* Determine the quadrant in which the window is contained, + select corner farthest away, then slide near it. */ + COMPUTE_CENTER(Tilwin_Get_Rectangle(winp), WindowCenter); + Get_PtX(corner) = (Get_PtX(WindowCenter) < Get_PtX(pt))? + Get_LeftX(rect) : Get_RightX(rect); + Get_PtY(corner) = (Get_PtY(WindowCenter) < Get_PtY(pt))? + Get_TopY(rect) : Get_BottomY(rect); + if (ABS(Get_PtY(WindowCenter) - Get_PtY(pt)) > + ABS(Get_PtX(WindowCenter) - Get_PtX(pt))) + Tilwin_Slide_Vert_Near_In_Area(winp, rect, corner); + return Tilwin_Slide_Nearest_In_Area(winp, rect, corner); +} + + + + +bool +Tilwin_Slide_Nearest(winp, pt) + Tilwin *winp; + TWPoint pt; +{ + TWRectangle Desktop; + + Desktop = Tilwin_Get_Desktop_Rectangle(); + return Tilwin_Slide_Nearest_In_Area(winp, Desktop, pt); +} + +bool +Tilwin_Slide_Nearest_In_Area(winp, rect, pt) + Tilwin *winp; + TWRectangle rect; + TWPoint pt; +{ + TWRectangle try, check_rect; + TWPoint cntr, slide_to_pt, open_cntr; + Size sz; + + sz = Tilwin_Get_Size(winp); + + /* decide where we *really* want to slide to -- has to be within */ + /* rect area. */ + /* make a rectangle of the appropriate size, centered on the pt, */ + /* and check whether it lies within the area. */ + MAKE_RECTANGLE(pt, sz, check_rect); + if (!Is_Rectangle_In_Rectangle(check_rect,rect)) + { + if (Get_LeftX(check_rect) < Get_LeftX(rect)) + { + Get_LeftX(check_rect) = Get_LeftX(rect); + Get_RightX(check_rect) = + Get_LeftX(check_rect) + (Get_Width(sz) - 1); + } + else if (Get_RightX(check_rect) > Get_RightX(rect)) + { + Get_RightX(check_rect) = Get_RightX(rect); + Get_LeftX(check_rect) = + Get_RightX(check_rect) - (Get_Width(sz) - 1); + } + if (Get_TopY(check_rect) < Get_TopY(rect)) + { + Get_TopY(check_rect) = Get_TopY(rect); + Get_BottomY(check_rect) = + Get_TopY(check_rect) + (Get_Height(sz) - 1); + } + else if (Get_BottomY(check_rect) > Get_BottomY(rect)) + { + Get_BottomY(check_rect) = Get_BottomY(rect); + Get_TopY(check_rect) = + Get_BottomY(check_rect) - (Get_Height(sz) - 1); + } + ASSERT(!((Get_LeftX(check_rect) < Get_LeftX(rect)) && + (Get_RightX(check_rect) > Get_RightX(rect))), + "rectangle can't fit (horiz) in area!"); + ASSERT(!((Get_TopY(check_rect) < Get_TopY(rect)) && + (Get_BottomY(check_rect) > Get_BottomY(rect))), + "rectangle can't fit (vert) in area!"); + COMPUTE_CENTER(check_rect, slide_to_pt); + } + else + slide_to_pt = pt; + try = Tilwin_Get_Rectangle(winp); + cntr = Tilwin_Get_Center(winp); + + open_cntr = Trial_Slide_Nearest_In_Area(try, rect, cntr, slide_to_pt, sz); + return Tilwin_Open((Tilwinp)winp, open_cntr, Tilwin_Get_Size(winp)); +} + +bool +Tilwin_Slide_Horiz_Near_In_Area(winp, rect, pt) + Tilwin *winp; + TWRectangle rect; + TWPoint pt; +{ + TWRectangle try, check_rect; + TWPoint cntr, slide_to_pt, open_cntr; + Size sz; + + sz = Tilwin_Get_Size(winp); + + /* decide where we *really* want to slide to -- has to be within */ + /* rect area. */ + /* make a rectangle of the appropriate size, centered on the pt, */ + /* and check whether it lies within the area. */ + MAKE_RECTANGLE(pt, sz, check_rect); + if (!Is_Rectangle_In_Rectangle(check_rect,rect)) + { + if (Get_LeftX(check_rect) < Get_LeftX(rect)) + { + Get_LeftX(check_rect) = Get_LeftX(rect); + Get_RightX(check_rect) = + Get_LeftX(check_rect) + (Get_Width(sz) - 1); + } + else if (Get_RightX(check_rect) > Get_RightX(rect)) + { + Get_RightX(check_rect) = Get_RightX(rect); + Get_LeftX(check_rect) = + Get_RightX(check_rect) - (Get_Width(sz) - 1); + } + ASSERT(!((Get_LeftX(check_rect) < Get_LeftX(rect)) && + (Get_RightX(check_rect) > Get_RightX(rect))), + "rectangle can't fit (horiz) in area!"); + COMPUTE_CENTER(check_rect, slide_to_pt); + } + else + slide_to_pt = pt; + try = Tilwin_Get_Rectangle(winp); + cntr = Tilwin_Get_Center(winp); + + open_cntr = + Trial_Slide_Nearest_Horizontal(try, rect, cntr, slide_to_pt, sz); + return Tilwin_Open((Tilwinp)winp, open_cntr, Tilwin_Get_Size(winp)); +} +bool +Tilwin_Slide_Vert_Near_In_Area(winp, rect, pt) + Tilwin *winp; + TWRectangle rect; + TWPoint pt; +{ + TWRectangle try, check_rect; + TWPoint cntr, slide_to_pt, open_cntr; + Size sz; + + sz = Tilwin_Get_Size(winp); + + /* decide where we *really* want to slide to -- has to be within */ + /* rect area. */ + /* make a rectangle of the appropriate size, centered on the pt, */ + /* and check whether it lies within the area. */ + MAKE_RECTANGLE(pt, sz, check_rect); + if (!Is_Rectangle_In_Rectangle(check_rect,rect)) + { + if (Get_TopY(check_rect) < Get_TopY(rect)) + { + Get_TopY(check_rect) = Get_TopY(rect); + Get_BottomY(check_rect) = + Get_TopY(check_rect) + (Get_Height(sz) - 1); + } + else if (Get_BottomY(check_rect) > Get_BottomY(rect)) + { + Get_BottomY(check_rect) = Get_BottomY(rect); + Get_TopY(check_rect) = + Get_BottomY(check_rect) - (Get_Height(sz) - 1); + } + ASSERT(!((Get_TopY(check_rect) < Get_TopY(rect)) && + (Get_BottomY(check_rect) > Get_BottomY(rect))), + "rectangle can't fit (vert) in area!"); + COMPUTE_CENTER(check_rect, slide_to_pt); + } + else + slide_to_pt = pt; + try = Tilwin_Get_Rectangle(winp); + cntr = Tilwin_Get_Center(winp); + + open_cntr = Trial_Slide_Nearest_Vertical(try, rect, cntr, slide_to_pt, sz); + return Tilwin_Open((Tilwinp)winp, open_cntr, Tilwin_Get_Size(winp)); +} diff --git a/twin_thrd.c b/twin_thrd.c new file mode 100644 index 0000000..9598fb6 --- /dev/null +++ b/twin_thrd.c @@ -0,0 +1,316 @@ +#ifndef lint +static char sccs_id[] = "@(#)twin_thrd.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" +#include "twinD.h" + +#include "state.h" + +/* ------------------------------------------------------------ */ + +#define Dist(pt1,pt2) \ + ( ( ((pt1).x - (pt2).x)*((pt1).x - (pt2).x) ) + \ + ( ((pt1).y - (pt2).y)*((pt1).y - (pt2).y) ) ) + +/* ------------------------------------------------------------ */ + +Tilwinp Tilwin_Thread_Nearest( pt ) + TWPoint pt; +{ + Tilwin *head, *winp, *prev, *cur; + WinpHandle handle; + int dist; + + head = WINP_NULL; + + handle = State_Gen_Open_Windows(); + while ( (winp = State_Coerce(handle)) != WINP_NULL ) + { + dist = Dist( pt, winp->center ); + + prev = WINP_NULL; + cur = head; + while ( ( cur != WINP_NULL ) && + ( dist > Dist( pt, cur->center ) ) ) + { + prev = cur; + cur = (Tilwin *)Tilwin_Get_Data(cur); + } + + Tilwin_Put_Data( winp, cur ); + if ( prev == WINP_NULL ) + head = winp; + else + Tilwin_Put_Data( prev, winp ); + + State_Next_Window(&handle); + } + return (Tilwinp)head; + +} + +/* ------------------------------------------------------------ */ + +Tilwinp Tilwin_Thread_Vertly_Nearest( pt ) + TWPoint pt; +{ + Tilwin *head, *winp, *prev, *cur; + WinpHandle handle; + int dist; + + head = WINP_NULL; + + handle = State_Gen_Open_Windows(); + while ( (winp = State_Coerce(handle)) != WINP_NULL ) + { + dist = ABS( pt.y - winp->center.y ); + + prev = WINP_NULL; + cur = head; + while ( ( cur != WINP_NULL ) && + ( dist > ABS( pt.y - cur->center.y ) ) ) + { + prev = cur; + cur = (Tilwin *)Tilwin_Get_Data(cur); + } + + Tilwin_Put_Data( winp, cur ); + if ( prev == WINP_NULL ) + head = winp; + else + Tilwin_Put_Data( prev, winp ); + + State_Next_Window(&handle); + } + return (Tilwinp)head; + +} + +/* ------------------------------------------------------------ */ + +Tilwinp Tilwin_Thread_Horizly_Nearest( pt ) + TWPoint pt; +{ + Tilwin *head, *winp, *prev, *cur; + WinpHandle handle; + int dist; + + head = WINP_NULL; + + handle = State_Gen_Open_Windows(); + while ( (winp = State_Coerce(handle)) != WINP_NULL ) + { + dist = ABS( pt.x - winp->center.x ); + + prev = WINP_NULL; + cur = head; + while ( ( cur != WINP_NULL ) && + ( dist > ABS( pt.x - cur->center.x ) ) ) + { + prev = cur; + cur = (Tilwin *)Tilwin_Get_Data(cur); + } + + Tilwin_Put_Data( winp, cur ); + if ( prev == WINP_NULL ) + head = winp; + else + Tilwin_Put_Data( prev, winp ); + + State_Next_Window(&handle); + } + return (Tilwinp)head; + +} + +/* ------------------------------------------------------------ */ + +Tilwinp Tilwin_Thread_Farthest( pt ) + TWPoint pt; +{ + Tilwin *head, *winp, *prev, *cur; + WinpHandle handle; + int dist; + + head = WINP_NULL; + + handle = State_Gen_Open_Windows(); + while ( (winp = State_Coerce(handle)) != WINP_NULL ) + { + dist = Dist( pt, winp->center ); + + prev = WINP_NULL; + cur = head; + while ( ( cur != WINP_NULL ) && + ( dist < Dist( pt, cur->center ) ) ) + { + prev = cur; + cur = (Tilwin *)Tilwin_Get_Data(cur); + } + + Tilwin_Put_Data( winp, cur ); + if ( prev == WINP_NULL ) + head = winp; + else + Tilwin_Put_Data( prev, winp ); + + State_Next_Window(&handle); + } + return (Tilwinp)head; + +} + +/* ------------------------------------------------------------ */ + +Tilwinp Tilwin_Thread_Vertly_Farthest( pt ) + TWPoint pt; +{ + Tilwin *head, *winp, *prev, *cur; + WinpHandle handle; + int dist; + + head = WINP_NULL; + + handle = State_Gen_Open_Windows(); + while ( (winp = State_Coerce(handle)) != WINP_NULL ) + { + dist = ABS( pt.y - winp->center.y ); + + prev = WINP_NULL; + cur = head; + while ( ( cur != WINP_NULL ) && + ( dist < ABS( pt.y - cur->center.y ) ) ) + { + prev = cur; + cur = (Tilwin *)Tilwin_Get_Data(cur); + } + + Tilwin_Put_Data( winp, cur ); + if ( prev == WINP_NULL ) + head = winp; + else + Tilwin_Put_Data( prev, winp ); + + State_Next_Window(&handle); + } + return (Tilwinp)head; + +} + +/* ------------------------------------------------------------ */ + +Tilwinp Tilwin_Thread_Horizly_Farthest( pt ) + TWPoint pt; +{ + Tilwin *head, *winp, *prev, *cur; + WinpHandle handle; + int dist; + + head = WINP_NULL; + + handle = State_Gen_Open_Windows(); + while ( (winp = State_Coerce(handle)) != WINP_NULL ) + { + dist = ABS( pt.x - winp->center.x ); + + prev = WINP_NULL; + cur = head; + while ( ( cur != WINP_NULL ) && + ( dist < ABS( pt.x - cur->center.x ) ) ) + { + prev = cur; + cur = (Tilwin *)Tilwin_Get_Data(cur); + } + + Tilwin_Put_Data( winp, cur ); + if ( prev == WINP_NULL ) + head = winp; + else + Tilwin_Put_Data( prev, winp ); + + State_Next_Window(&handle); + } + return (Tilwinp)head; + +} + +/* ------------------------------------------------------------ */ + +Tilwinp Tilwin_Thread_Nearest_Position() +{ + Tilwin *head, *winp, *prev, *cur; + WinpHandle handle; + int dist; + + head = WINP_NULL; + + handle = State_Gen_Open_Windows(); + while ( (winp = State_Coerce(handle)) != WINP_NULL ) + { + dist = Dist( winp->position, winp->center ); + + prev = WINP_NULL; + cur = head; + while ( ( cur != WINP_NULL ) && + ( dist > Dist( cur->position, cur->center ) ) ) + { + prev = cur; + cur = (Tilwin *)Tilwin_Get_Data(cur); + } + + Tilwin_Put_Data( winp, cur ); + if ( prev == WINP_NULL ) + head = winp; + else + Tilwin_Put_Data( prev, winp ); + + State_Next_Window(&handle); + } + return (Tilwinp)head; + +} + +/* ------------------------------------------------------------ */ + +Tilwinp Tilwin_Reverse_Thread( head ) + Tilwinp head; +{ + Tilwin *prev, *cur, *next; + + prev = WINP_NULL; + cur = (Tilwin *)head; + while ( cur != WINP_NULL ) + { + next = (Tilwin *)Tilwin_Get_Data( cur ); + Tilwin_Put_Data( cur, prev ); + prev = cur; + cur = next; + } + return (Tilwinp)prev; +} + diff --git a/twin_tmp.c b/twin_tmp.c new file mode 100644 index 0000000..a6912d7 --- /dev/null +++ b/twin_tmp.c @@ -0,0 +1,1200 @@ +#ifndef lint +static char sccs_id[] = "@(#)twin_tmp.c 5.4 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" +#include "twinD.h" +#include "trial.h" +#include "state.h" + +extern TWPoint desktop_center; + +#define global_excursion(opt,val,code) \ +{ \ + bool temp_val; \ + temp_val = Tilwin_Get_Global_Option(opt); \ + Tilwin_Set_Global_Option(opt,val); \ + code; \ + Tilwin_Set_Global_Option(opt,temp_val); \ +} + +#define Tilwin_Calc_Location_Size(location, size, rect) \ +{ \ + TWRectangle rct; \ + rct.left_x = ((rect).left_x + 1) & (~1); \ + rct.right_x = ((rect).right_x - 1) | 1; \ + rct.top_y = ((rect).top_y + 1) & (~1); \ + rct.bottom_y = ((rect).bottom_y - 1) | 1; \ + COMPUTE_CENTER(rect, location); \ + COMPUTE_SIZE(rect, size); \ +} + +extern TWRectangle desktop_rect; +extern bool Tilwin_Resize(); +extern bool Tilwin_Open(); +bool Tilwin_Can_Open(); + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static TWRectangle +Tilwin_Stretch(win, rect, side) + Tilwin *win; + TWRectangle rect; + Side side; +{ + /* don't ask. */ + Tilwin *twinp = win; + TWPoint pt; + TWRectangle current_rect; + + if ( rect.top_y < desktop_rect.top_y ) + rect.top_y = desktop_rect.top_y; + if ( rect.bottom_y > desktop_rect.bottom_y ) + rect.bottom_y = desktop_rect.bottom_y; + if ( rect.left_x < desktop_rect.left_x ) + rect.left_x = desktop_rect.left_x; + if ( rect.right_x > desktop_rect.right_x ) + rect.right_x = desktop_rect.right_x; + + current_rect = Tilwin_Get_Rectangle(twinp); + + switch (side){ + case Left: + Get_PtX(pt) = Get_LeftX(rect); + Get_LeftX(rect) = Get_LeftX(current_rect); + break; + case Right: + Get_PtX(pt) = Get_RightX(rect); + Get_RightX(rect) = Get_RightX(current_rect); + break; + case Top: + Get_PtY(pt) = Get_TopY(rect); + Get_TopY(rect) = Get_TopY(current_rect); + break; + case Bottom: + Get_PtY(pt) = Get_BottomY(rect); + Get_BottomY(rect) = Get_BottomY(current_rect); + break; + } + + (void) Trial_Grow(twinp, rect, side, &pt, State_Get_Timestamp()); + + switch (side){ + case Left: + Get_LeftX(rect) = Get_PtX(pt); + break; + case Right: + Get_RightX(rect) = Get_PtX(pt); + break; + case Top: + Get_TopY(rect) = Get_PtY(pt); + break; + case Bottom: + Get_BottomY(rect) = Get_PtY(pt); + break; + } + + return(rect); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static TWRectangle Tilwin_Stretch_Top_Bottom( win, rect, siz ) + Tilwin *win; + TWRectangle rect; + Size siz; +{ + if (! Tilwin_Get_Window_Option(win,FIXED_TOP_EDGE)) + { + rect.top_y = rect.bottom_y - (siz.height - 1); + rect = Tilwin_Stretch( win, rect, Top ); + } + if (! Tilwin_Get_Window_Option(win,FIXED_BOTTOM_EDGE)) + { + rect.bottom_y = rect.top_y + (siz.height - 1); + rect = Tilwin_Stretch( win, rect, Bottom ); + } + return rect; +} + +/* ------------------------------------------------------------ */ + +static TWRectangle Tilwin_Stretch_Bottom_Top( win, rect, siz ) + Tilwin *win; + TWRectangle rect; + Size siz; +{ + if (! Tilwin_Get_Window_Option(win,FIXED_BOTTOM_EDGE)) + { + rect.bottom_y = rect.top_y + (siz.height - 1); + rect = Tilwin_Stretch( win, rect, Bottom ); + } + if (! Tilwin_Get_Window_Option(win,FIXED_TOP_EDGE)) + { + rect.top_y = rect.bottom_y - (siz.height - 1); + rect = Tilwin_Stretch( win, rect, Top ); + } + return rect; +} + +/* ------------------------------------------------------------ */ + +static TWRectangle Tilwin_Stretch_Left_Right( win, rect, siz ) + Tilwin *win; + TWRectangle rect; + Size siz; +{ + if (! Tilwin_Get_Window_Option(win,FIXED_LEFT_EDGE)) + { + rect.left_x = rect.right_x - (siz.width - 1); + rect = Tilwin_Stretch( win, rect, Left ); + } + if (! Tilwin_Get_Window_Option(win,FIXED_RIGHT_EDGE)) + { + rect.right_x = rect.left_x + (siz.width - 1); + rect = Tilwin_Stretch( win, rect, Right ); + } + return rect; +} + +/* ------------------------------------------------------------ */ + +static TWRectangle Tilwin_Stretch_Right_Left( win, rect, siz ) + Tilwin *win; + TWRectangle rect; + Size siz; +{ + if (! Tilwin_Get_Window_Option(win,FIXED_RIGHT_EDGE)) + { + rect.right_x = rect.left_x + (siz.width - 1); + rect = Tilwin_Stretch( win, rect, Right ); + } + if (! Tilwin_Get_Window_Option(win,FIXED_LEFT_EDGE)) + { + rect.left_x = rect.right_x - (siz.width - 1); + rect = Tilwin_Stretch( win, rect, Left ); + } + return rect; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static TWRectangle Tilwin_Stretch_Nearest( winp, rect, siz, pt ) + Tilwin *winp; + TWRectangle rect; + Size siz; + TWPoint pt; +{ + TWPoint center; + bool vert_first; + Size try_siz, rect_siz; + + Tilwin_Calc_Location_Size( center, rect_siz, rect); + + if ( siz.height <= rect_siz.height ) + vert_first = TRUE; + else if ( siz.width <= rect_siz.width ) + vert_first = FALSE; + else if ( Tilwin_Get_Window_Option( winp, FIXED_HEIGHT ) && + (! Tilwin_Get_Window_Option( winp, FIXED_WIDTH ) ) ) + vert_first = TRUE; + else if ( Tilwin_Get_Window_Option( winp, FIXED_WIDTH ) && + (! Tilwin_Get_Window_Option( winp, FIXED_HEIGHT ) ) ) + vert_first = FALSE; + else + vert_first = Tilwin_Get_Global_Option(PRORATE_VERTICALLY_FIRST); + + if ( vert_first ) + { + try_siz = siz; + if ( pt.y < center.y ) + { + try_siz.height = ( (siz.height + rect_siz.height)/2 + center.y - pt.y ) & (~1); + if ( try_siz.height > siz.height ) + try_siz.height = siz.height; + rect = Tilwin_Stretch_Top_Bottom( winp, rect, try_siz ); + rect = Tilwin_Stretch_Bottom_Top( winp, rect, siz ); + } + else + { + try_siz.height = ( (siz.height + rect_siz.height)/2 + pt.y - center.y ) & (~1); + if ( try_siz.height > siz.height ) + try_siz.height = siz.height; + rect = Tilwin_Stretch_Bottom_Top( winp, rect, try_siz ); + rect = Tilwin_Stretch_Top_Bottom( winp, rect, siz ); + } + + try_siz = siz; + if ( pt.x < center.x ) + { + try_siz.width = ( (siz.width + rect_siz.width)/2 + center.x - pt.x ) & (~1); + if ( try_siz.width > siz.width ) + try_siz.width = siz.width; + rect = Tilwin_Stretch_Left_Right( winp, rect, try_siz ); + rect = Tilwin_Stretch_Right_Left( winp, rect, siz ); + } + else + { + try_siz.width = ( (siz.width + rect_siz.width)/2 + pt.x - center.x ) & (~1); + if ( try_siz.width > siz.width ) + try_siz.width = siz.width; + rect = Tilwin_Stretch_Right_Left( winp, rect, try_siz ); + rect = Tilwin_Stretch_Left_Right( winp, rect, siz ); + } + } + else + { + try_siz = siz; + if ( pt.x < center.x ) + { + try_siz.width = ( (siz.width + rect_siz.width)/2 + center.x - pt.x ) & (~1); + if ( try_siz.width > siz.width ) + try_siz.width = siz.width; + rect = Tilwin_Stretch_Left_Right( winp, rect, try_siz ); + rect = Tilwin_Stretch_Right_Left( winp, rect, siz ); + } + else + { + try_siz.width = ( (siz.width + rect_siz.width)/2 + pt.x - center.x ) & (~1); + if ( try_siz.width > siz.width ) + try_siz.width = siz.width; + rect = Tilwin_Stretch_Right_Left( winp, rect, try_siz ); + rect = Tilwin_Stretch_Left_Right( winp, rect, siz ); + } + + try_siz = siz; + if ( pt.y < center.y ) + { + try_siz.height = ( (siz.height + rect_siz.height)/2 + center.y - pt.y ) & (~1); + if ( try_siz.height > siz.height ) + try_siz.height = siz.height; + rect = Tilwin_Stretch_Top_Bottom( winp, rect, try_siz ); + rect = Tilwin_Stretch_Bottom_Top( winp, rect, siz ); + } + else + { + try_siz.height = ( (siz.height + rect_siz.height)/2 + pt.y - center.y ) & (~1); + if ( try_siz.height > siz.height ) + try_siz.height = siz.height; + rect = Tilwin_Stretch_Bottom_Top( winp, rect, try_siz ); + rect = Tilwin_Stretch_Top_Bottom( winp, rect, siz ); + } + } + + return rect; +} + +/* ------------------------------------------------------------ */ + +static TWRectangle Tilwin_Stretch_Farthest( winp, rect, siz, pt ) + Tilwin *winp; + TWRectangle rect; + Size siz; + TWPoint pt; +{ + TWPoint center; + bool vert_first; + + if ( siz.height <= Tilwin_Get_Size(winp).height ) + vert_first = TRUE; + else if ( siz.width <= Tilwin_Get_Size(winp).width ) + vert_first = FALSE; + else if ( Tilwin_Get_Window_Option( winp, FIXED_HEIGHT ) && + (! Tilwin_Get_Window_Option( winp, FIXED_WIDTH ) ) ) + vert_first = TRUE; + else if ( Tilwin_Get_Window_Option( winp, FIXED_WIDTH ) && + (! Tilwin_Get_Window_Option( winp, FIXED_HEIGHT ) ) ) + vert_first = FALSE; + else + vert_first = Tilwin_Get_Global_Option(PRORATE_VERTICALLY_FIRST); + + center = Tilwin_Get_Center(winp); + + if ( vert_first ) + { + if ( pt.y > center.y ) + rect = Tilwin_Stretch_Top_Bottom( winp, rect, siz ); + else + rect = Tilwin_Stretch_Bottom_Top( winp, rect, siz ); + if ( pt.x > center.x ) + rect = Tilwin_Stretch_Left_Right( winp, rect, siz ); + else + rect = Tilwin_Stretch_Right_Left( winp, rect, siz ); + } + else + { + if ( pt.x > center.x ) + rect = Tilwin_Stretch_Left_Right( winp, rect, siz ); + else + rect = Tilwin_Stretch_Right_Left( winp, rect, siz ); + if ( pt.y > center.y ) + rect = Tilwin_Stretch_Top_Bottom( winp, rect, siz ); + else + rect = Tilwin_Stretch_Bottom_Top( winp, rect, siz ); + } + + return rect; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +bool Tilwin_Enlarge_Nearest( twinp, pt, siz ) + Tilwinp twinp; + TWPoint pt; + Size siz; +{ + Tilwin *winp = (Tilwin *) twinp; + TWRectangle rect; + Size stretch_siz; + TWPoint center; + bool result; + + siz.width = siz.width & (~1); + siz.height = siz.height & (~1); + + if ( ( siz.width == Tilwin_Get_Size(winp).width ) && + ( siz.height == Tilwin_Get_Size(winp).height ) ) + return TRUE; + + rect = Tilwin_Get_Rectangle(winp); + + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + { + global_excursion( ALLOW_AUTOMATIC_SHRINK, FALSE, + { + rect = Tilwin_Stretch_Nearest( winp, rect, siz, pt ); + } ) + if ( Tilwin_Get_Global_Option(ALLOW_AUTOMATIC_SHRINK) ) + { + rect = Tilwin_Stretch_Nearest( winp, rect, siz, pt ); + } + } ) + if ( Tilwin_Get_Global_Option(PREFER_CLOSE_TO_SHRINK) && + Tilwin_Get_Global_Option(ALLOW_AUTOMATIC_CLOSE) ) + { + rect = Tilwin_Stretch_Nearest( winp, rect, siz, pt ); + } + + Tilwin_Calc_Location_Size( center, stretch_siz, rect ); + + if ( ( Tilwin_Get_Window_Option( winp, FIXED_SIZE ) || + Tilwin_Get_Window_Option( winp, FIXED_HEIGHT ) ) && + ( stretch_siz.height != siz.height ) ) + return FALSE; + if ( ( Tilwin_Get_Window_Option( winp, FIXED_SIZE ) || + Tilwin_Get_Window_Option( winp, FIXED_WIDTH ) ) && + ( stretch_siz.width != siz.width ) ) + return FALSE; + + global_excursion( ENABLE_GRAVITY, FALSE, + { + result = Tilwin_Open( (Tilwinp)winp, center, stretch_siz ); + } ) + + return result; +} + +/* ------------------------------------------------------------ */ + +bool Tilwin_Enlarge_Farthest( twinp, pt, siz ) + Tilwinp twinp; + TWPoint pt; + Size siz; +{ + Tilwin *winp = (Tilwin *)twinp; + TWRectangle rect; + Size stretch_siz; + TWPoint center; + bool result; + + siz.width = siz.width & (~1); + siz.height = siz.height & (~1); + + if ( ( siz.width == Tilwin_Get_Size(winp).width ) && + ( siz.height == Tilwin_Get_Size(winp).height ) ) + return TRUE; + + rect = Tilwin_Get_Rectangle(winp); + + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + { + global_excursion( ALLOW_AUTOMATIC_SHRINK, FALSE, + { + rect = Tilwin_Stretch_Farthest( winp, rect, siz, pt ); + } ) + if ( Tilwin_Get_Global_Option(ALLOW_AUTOMATIC_SHRINK) ) + { + rect = Tilwin_Stretch_Farthest( winp, rect, siz, pt ); + } + } ) + if ( Tilwin_Get_Global_Option(PREFER_CLOSE_TO_SHRINK) && + Tilwin_Get_Global_Option(ALLOW_AUTOMATIC_CLOSE) ) + { + rect = Tilwin_Stretch_Farthest( winp, rect, siz, pt ); + } + + Tilwin_Calc_Location_Size( center, stretch_siz, rect ); + + if ( ( Tilwin_Get_Window_Option( winp, FIXED_SIZE ) || + Tilwin_Get_Window_Option( winp, FIXED_HEIGHT ) ) && + ( stretch_siz.height != siz.height ) ) + return FALSE; + if ( ( Tilwin_Get_Window_Option( winp, FIXED_SIZE ) || + Tilwin_Get_Window_Option( winp, FIXED_WIDTH ) ) && + ( stretch_siz.width != siz.width ) ) + return FALSE; + + + global_excursion( ENABLE_GRAVITY, FALSE, + { + result = Tilwin_Open( (Tilwinp)winp, center, stretch_siz ); + } ) + + return result; +} + +/* ------------------------------------------------------------ */ + +void Tilwin_Enlarge_Nearest_In_Area( winp, rect, pt, siz ) + Tilwin *winp; + TWRectangle rect; + TWPoint pt; + Size siz; +{ + TWRectangle old_desktop_rect; + + old_desktop_rect = desktop_rect; + + if ( rect.left_x > desktop_rect.left_x ) + desktop_rect.left_x = rect.left_x; + if ( rect.right_x < desktop_rect.right_x ) + desktop_rect.right_x = rect.right_x; + if ( rect.top_y > desktop_rect.top_y ) + desktop_rect.top_y = rect.top_y; + if ( rect.bottom_y < desktop_rect.bottom_y ) + desktop_rect.bottom_y = rect.bottom_y; + + Tilwin_Enlarge_Nearest( (Tilwinp)winp, pt, siz ); + + desktop_rect = old_desktop_rect; +} + +/* ------------------------------------------------------------ */ + +void Tilwin_Enlarge_Farthest_In_Area( winp, rect, pt, siz ) + Tilwin *winp; + TWRectangle rect; + TWPoint pt; + Size siz; +{ + TWRectangle old_desktop_rect; + + old_desktop_rect = desktop_rect; + + if ( rect.left_x > desktop_rect.left_x ) + desktop_rect.left_x = rect.left_x; + if ( rect.right_x < desktop_rect.right_x ) + desktop_rect.right_x = rect.right_x; + if ( rect.top_y > desktop_rect.top_y ) + desktop_rect.top_y = rect.top_y; + if ( rect.bottom_y < desktop_rect.bottom_y ) + desktop_rect.bottom_y = rect.bottom_y; + + Tilwin_Enlarge_Farthest( (Tilwinp)winp, pt, siz ); + + desktop_rect = old_desktop_rect; +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +#define grid_mult 2 +#define grid_min 3 + +/* ------------------------------------------------------------ */ + +static bool Tilwin_Open_Grid_Nearest( winp, rect, pt, siz ) + Tilwin *winp; + TWRectangle rect; + TWPoint pt; + Size siz; +{ + int i, j; + int gran_top, gran_bottom, gran_left, gran_right; + int max_top, max_bottom, max_left, max_right; + int diff_top, diff_bottom, diff_left, diff_right; + bool found, done; + TWPoint center; + TWPoint cur_center; + TWPoint best_pt; + TWPoint max_pt; + int dcur; + int dmin; + int extra_x, extra_y; + TWRectangle max_rect; + bool better; + int num_closed; + int num_expensive; + int num_affected; + int stamp; + + stamp = State_Get_Timestamp(); + + num_closed = MUCHO_WINDOWS; + num_expensive = MUCHO_WINDOWS; + num_affected = MUCHO_WINDOWS; + + cur_center = Tilwin_Get_Center(winp); + + if ( Tilwin_Get_Window_Option(winp,FIXED_TOP_EDGE) ) + { + gran_top = 0; + gran_bottom = 0; + + Get_LeftX(max_rect) = Get_RightX(max_rect) = 0; + Get_TopY(max_rect) = Get_TopY(rect); + Get_BottomY(max_rect) = Get_TopY(rect) + (Get_Height(siz) - 1); + COMPUTE_CENTER(max_rect, max_pt); + Get_PtY(pt) = Get_PtY(max_pt); + + extra_y = 0; + } + else if ( Tilwin_Get_Window_Option(winp,FIXED_BOTTOM_EDGE) ) + { + gran_top = 0; + gran_bottom = 0; + + Get_LeftX(max_rect) = Get_RightX(max_rect) = 0; + Get_BottomY(max_rect) = Get_BottomY(rect); + Get_TopY(max_rect) = Get_BottomY(rect) - (Get_Height(siz) - 1); + COMPUTE_CENTER(max_rect, max_pt); + Get_PtY(pt) = Get_PtY(max_pt); + + extra_y = 0; + } + else + { + Get_LeftX(max_rect) = Get_RightX(max_rect) = 0; + Get_TopY(max_rect) = Get_TopY(rect); + Get_BottomY(max_rect) = Get_TopY(rect) + (Get_Height(siz) - 1); + COMPUTE_CENTER(max_rect, max_pt); + max_top = (int) Get_PtY(max_pt); + + Get_LeftX(max_rect) = Get_RightX(max_rect) = 0; + Get_BottomY(max_rect) = Get_BottomY(rect); + Get_TopY(max_rect) = Get_BottomY(rect) - (Get_Height(siz) - 1); + COMPUTE_CENTER(max_rect, max_pt); + max_bottom = (int) Get_PtY(max_pt); + + if ( pt.y < max_top ) + pt.y = max_top; + else if ( pt.y > max_bottom ) + pt.y = max_bottom; + diff_top = pt.y - max_top; + diff_bottom = max_bottom - pt.y; + + if ( diff_top == 0 ) + gran_top = 0; + else + { + gran_top = ( grid_mult * diff_top ) / siz.height; + if ( gran_top < grid_min ) gran_top = grid_min; + } + + if ( diff_bottom == 0 ) + gran_bottom = 0; + else + { + gran_bottom = ( grid_mult * diff_bottom ) / siz.height; + if ( gran_bottom < grid_min ) gran_bottom = grid_min; + } + extra_y = ( cur_center.y >= max_top ) && + ( cur_center.y <= max_bottom ); + } + + if ( Tilwin_Get_Window_Option(winp,FIXED_LEFT_EDGE) ) + { + gran_left = 0; + gran_right = 0; + + Get_TopY(max_rect) = Get_BottomY(max_rect) = 0; + Get_LeftX(max_rect) = Get_LeftX(rect); + Get_RightX(max_rect) = Get_LeftX(rect) + (Get_Width(siz) - 1); + COMPUTE_CENTER(max_rect, max_pt); + Get_PtX(pt) = Get_PtX(max_pt); + + extra_x = 0; + } + else if ( Tilwin_Get_Window_Option(winp,FIXED_RIGHT_EDGE) ) + { + gran_left = 0; + gran_right = 0; + + Get_TopY(max_rect) = Get_BottomY(max_rect) = 0; + Get_RightX(max_rect) = Get_RightX(rect); + Get_LeftX(max_rect) = Get_RightX(rect) - (Get_Width(siz) - 1); + COMPUTE_CENTER(max_rect, max_pt); + Get_PtX(pt) = Get_PtX(max_pt); + + extra_x = 0; + } + else + { + Get_TopY(max_rect) = Get_BottomY(max_rect) = 0; + Get_LeftX(max_rect) = Get_LeftX(rect); + Get_RightX(max_rect) = Get_LeftX(rect) + (Get_Width(siz) - 1); + COMPUTE_CENTER(max_rect, max_pt); + max_left = (int) Get_PtX(max_pt); + + Get_TopY(max_rect) = Get_BottomY(max_rect) = 0; + Get_RightX(max_rect) = Get_RightX(rect); + Get_LeftX(max_rect) = Get_RightX(rect) - (Get_Width(siz) - 1); + COMPUTE_CENTER(max_rect, max_pt); + max_right = (int) Get_PtX(max_pt); + + if ( pt.x < max_left ) + pt.x = max_left; + else if ( pt.x > max_right ) + pt.x = max_right; + diff_left = pt.x - max_left; + diff_right = max_right - pt.x; + + if ( diff_left == 0 ) + gran_left = 0; + else + { + gran_left = ( grid_mult * diff_left ) / siz.height; + if ( gran_left < grid_min ) gran_left = grid_min; + } + + if ( diff_right == 0 ) + gran_right = 0; + else + { + gran_right = ( grid_mult * diff_right ) / siz.height; + if ( gran_right < grid_min ) gran_right = grid_min; + } + extra_x = ( cur_center.x >= max_left ) && + ( cur_center.x <= max_right ); + } + + found = FALSE; + done = FALSE; + + for ( i = -gran_left; i <= (gran_right + extra_x); i++ ) + { + if ( done ) break; + if ( i < 0 ) + center.x = pt.x + ( ( i * diff_left ) / gran_left ); + else if ( i == 0 ) + center.x = pt.x; + else if ( i > gran_right ) + center.x = cur_center.x; + else + center.x = pt.x + ( ( i * diff_right ) / gran_right ); + + for ( j = -gran_top; j <= (gran_bottom + extra_y); j++ ) + { + if ( done ) break; + if ( j < 0 ) + center.y = pt.y + ( ( j * diff_top ) / gran_top ); + else if ( j == 0 ) + center.y = pt.y; + else if ( j > gran_bottom ) + center.y = cur_center.y; + else + center.y = pt.y + ( ( j * diff_bottom ) / gran_bottom ); + + dcur = ( (center.y - pt.y) * (center.y - pt.y) ) + + ( (center.x - pt.x) * (center.x - pt.x) ); + + if ( ( num_affected > 0 ) || ( dcur < dmin ) ) + { + better = found && ( dcur >= dmin ); + + MAKE_RECTANGLE( center, siz, rect ); + + if ( Trial_Improve_Open( winp, rect, stamp, better, + &num_closed, &num_expensive, &num_affected ) ) + { + found = TRUE; + best_pt = center; + dmin = dcur; + if ( Tilwin_Get_Global_Option( FIRST_FIT ) ) + done = TRUE; + } + } + } + } + + if ( found ) + return Tilwin_Open( (Tilwinp)winp, best_pt, siz ); + else + return FALSE; + +} + +/* ------------------------------------------------------------ */ + +static bool Tilwin_Open_Grid_Farthest( winp, rect, pt, siz ) + Tilwin *winp; + TWRectangle rect; + TWPoint pt; + Size siz; +{ + int i, j; + int gran_top, gran_bottom, gran_left, gran_right; + int max_top, max_bottom, max_left, max_right; + int diff_top, diff_bottom, diff_left, diff_right; + bool found, done; + TWPoint center; + TWPoint cur_center; + TWPoint best_pt; + TWPoint max_pt; + int dcur; + int dmax; + int extra_x, extra_y; + TWRectangle max_rect; + bool better; + int num_closed; + int num_expensive; + int num_affected; + int stamp; + + stamp = State_Get_Timestamp(); + + num_closed = MUCHO_WINDOWS; + num_expensive = MUCHO_WINDOWS; + num_affected = MUCHO_WINDOWS; + + cur_center = Tilwin_Get_Center(winp); + + if ( Tilwin_Get_Window_Option(winp,FIXED_TOP_EDGE) ) + { + gran_top = 0; + gran_bottom = 0; + + Get_LeftX(max_rect) = Get_RightX(max_rect) = 0; + Get_TopY(max_rect) = Get_TopY(rect); + Get_BottomY(max_rect) = Get_TopY(rect) + (Get_Height(siz) - 1); + COMPUTE_CENTER(max_rect, max_pt); + Get_PtY(pt) = Get_PtY(max_pt); + + extra_y = 0; + } + else if ( Tilwin_Get_Window_Option(winp,FIXED_BOTTOM_EDGE) ) + { + gran_top = 0; + gran_bottom = 0; + + Get_LeftX(max_rect) = Get_RightX(max_rect) = 0; + Get_BottomY(max_rect) = Get_BottomY(rect); + Get_TopY(max_rect) = Get_BottomY(rect) - (Get_Height(siz) - 1); + COMPUTE_CENTER(max_rect, max_pt); + Get_PtY(pt) = Get_PtY(max_pt); + + extra_y = 0; + } + else + { + Get_LeftX(max_rect) = Get_RightX(max_rect) = 0; + Get_TopY(max_rect) = Get_TopY(rect); + Get_BottomY(max_rect) = Get_TopY(rect) + (Get_Height(siz) - 1); + COMPUTE_CENTER(max_rect, max_pt); + max_top = (int) Get_PtY(max_pt); + + Get_LeftX(max_rect) = Get_RightX(max_rect) = 0; + Get_BottomY(max_rect) = Get_BottomY(rect); + Get_TopY(max_rect) = Get_BottomY(rect) - (Get_Height(siz) - 1); + COMPUTE_CENTER(max_rect, max_pt); + max_bottom = (int) Get_PtY(max_pt); + + if ( pt.y < max_top ) + pt.y = max_top; + else if ( pt.y > max_bottom ) + pt.y = max_bottom; + diff_top = pt.y - max_top; + diff_bottom = max_bottom - pt.y; + + if ( diff_top == 0 ) + gran_top = 0; + else + { + gran_top = ( grid_mult * diff_top ) / siz.height; + if ( gran_top < grid_min ) gran_top = grid_min; + } + + if ( diff_bottom == 0 ) + gran_bottom = 0; + else + { + gran_bottom = ( grid_mult * diff_bottom ) / siz.height; + if ( gran_bottom < grid_min ) gran_bottom = grid_min; + } + extra_y = ( cur_center.y >= max_top ) && + ( cur_center.y <= max_bottom ); + } + + if ( Tilwin_Get_Window_Option(winp,FIXED_LEFT_EDGE) ) + { + gran_left = 0; + gran_right = 0; + + Get_TopY(max_rect) = Get_BottomY(max_rect) = 0; + Get_LeftX(max_rect) = Get_LeftX(rect); + Get_RightX(max_rect) = Get_LeftX(rect) + (Get_Width(siz) - 1); + COMPUTE_CENTER(max_rect, max_pt); + Get_PtX(pt) = Get_PtX(max_pt); + + extra_x = 0; + } + else if ( Tilwin_Get_Window_Option(winp,FIXED_RIGHT_EDGE) ) + { + gran_left = 0; + gran_right = 0; + + Get_TopY(max_rect) = Get_BottomY(max_rect) = 0; + Get_RightX(max_rect) = Get_RightX(rect); + Get_LeftX(max_rect) = Get_RightX(rect) - (Get_Width(siz) - 1); + COMPUTE_CENTER(max_rect, max_pt); + Get_PtX(pt) = Get_PtX(max_pt); + + extra_x = 0; + } + else + { + Get_TopY(max_rect) = Get_BottomY(max_rect) = 0; + Get_LeftX(max_rect) = Get_LeftX(rect); + Get_RightX(max_rect) = Get_LeftX(rect) + (Get_Width(siz) - 1); + COMPUTE_CENTER(max_rect, max_pt); + max_left = (int) Get_PtX(max_pt); + + Get_TopY(max_rect) = Get_BottomY(max_rect) = 0; + Get_RightX(max_rect) = Get_RightX(rect); + Get_LeftX(max_rect) = Get_RightX(rect) - (Get_Width(siz) - 1); + COMPUTE_CENTER(max_rect, max_pt); + max_right = (int) Get_PtX(max_pt); + + if ( pt.x < max_left ) + pt.x = max_left; + else if ( pt.x > max_right ) + pt.x = max_right; + diff_left = pt.x - max_left; + diff_right = max_right - pt.x; + + if ( diff_left == 0 ) + gran_left = 0; + else + { + gran_left = ( grid_mult * diff_left ) / siz.height; + if ( gran_left < grid_min ) gran_left = grid_min; + } + + if ( diff_right == 0 ) + gran_right = 0; + else + { + gran_right = ( grid_mult * diff_right ) / siz.height; + if ( gran_right < grid_min ) gran_right = grid_min; + } + extra_x = ( cur_center.x >= max_left ) && + ( cur_center.x <= max_right ); + } + + found = FALSE; + done = FALSE; + + for ( i = -gran_left; i <= (gran_right + extra_x); i++ ) + { + if ( done ) break; + if ( i < 0 ) + center.x = pt.x + ( ( i * diff_left ) / gran_left ); + else if ( i == 0 ) + center.x = pt.x; + else if ( i > gran_right ) + center.x = cur_center.x; + else + center.x = pt.x + ( ( i * diff_right ) / gran_right ); + + for ( j = -gran_top; j <= (gran_bottom + extra_y); j++ ) + { + if ( done ) break; + if ( j < 0 ) + center.y = pt.y + ( ( j * diff_top ) / gran_top ); + else if ( j == 0 ) + center.y = pt.y; + else if ( j > gran_bottom ) + center.y = cur_center.y; + else + center.y = pt.y + ( ( j * diff_bottom ) / gran_bottom ); + + dcur = ( (center.y - pt.y) * (center.y - pt.y) ) + + ( (center.x - pt.x) * (center.x - pt.x) ); + + if ( ( num_affected > 0 ) || ( dcur > dmax ) ) + { + better = found && ( dcur <= dmax ); + + MAKE_RECTANGLE( center, siz, rect ); + + if ( Trial_Improve_Open( winp, rect, stamp, better, + &num_closed, &num_expensive, &num_affected ) ) + { + found = TRUE; + best_pt = center; + dmax = dcur; + if ( Tilwin_Get_Global_Option( FIRST_FIT ) ) + done = TRUE; + } + } + } + } + + if ( found ) + return Tilwin_Open( (Tilwinp)winp, best_pt, siz ); + else + return FALSE; + +} + +/* ------------------------------------------------------------ */ + +bool Tilwin_Open_Nearest_In_Area( twinp, rect, pt, siz ) + Tilwinp twinp; + TWRectangle rect; + TWPoint pt; + Size siz; +{ + Tilwin *winp = (Tilwin *)twinp; + bool result; + Size minsiz; + + if ( rect.top_y < desktop_rect.top_y ) + rect.top_y = desktop_rect.top_y; + if ( rect.bottom_y > desktop_rect.bottom_y ) + rect.bottom_y = desktop_rect.bottom_y; + if ( rect.left_x < desktop_rect.left_x ) + rect.left_x = desktop_rect.left_x; + if ( rect.right_x > desktop_rect.right_x ) + rect.right_x = desktop_rect.right_x; + + siz.width = siz.width & (~1); + siz.height = siz.height & (~1); + + minsiz = siz; + + if (! Tilwin_Get_Window_Option(winp,FIXED_SIZE) ) + { + if (! Tilwin_Get_Window_Option(winp,FIXED_WIDTH)) + minsiz.width = winp->min_size.width; + if (! Tilwin_Get_Window_Option(winp,FIXED_HEIGHT)) + minsiz.height = winp->min_size.height; + } + + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + { + global_excursion( ALLOW_AUTOMATIC_SHRINK, FALSE, + { + result = Tilwin_Open_Grid_Nearest( winp, rect, pt, siz ); + } ) + if ( (! result) && Tilwin_Get_Global_Option(ALLOW_AUTOMATIC_SHRINK) ) + result = Tilwin_Open_Grid_Nearest( winp, rect, pt, siz ); + } ) + + if (! result) + { + if ( Tilwin_Get_Global_Option(PREFER_CLOSE_TO_SHRINK) ) + { + if ( Tilwin_Get_Global_Option(ALLOW_AUTOMATIC_CLOSE) ) + result = Tilwin_Open_Grid_Nearest( winp, rect, pt, siz ); + + if ( (! result) && (! Same_Size(siz,minsiz)) ) + { + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + { + global_excursion( ALLOW_AUTOMATIC_SHRINK, FALSE, + { + result = Tilwin_Open_Grid_Nearest( winp, rect, pt, minsiz ); + } ) + if ( (! result) && Tilwin_Get_Global_Option(ALLOW_AUTOMATIC_SHRINK) ) + result = Tilwin_Open_Grid_Nearest( winp, rect, pt, minsiz ); + } ) + if ( result ) + Tilwin_Enlarge_Nearest_In_Area( winp, rect, pt, siz ); + } + } + else + { + if (! Same_Size(siz,minsiz)) + { + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + { + global_excursion( ALLOW_AUTOMATIC_SHRINK, FALSE, + { + result = Tilwin_Open_Grid_Nearest( winp, rect, pt, minsiz ); + } ) + if ( (! result) && Tilwin_Get_Global_Option(ALLOW_AUTOMATIC_SHRINK) ) + result = Tilwin_Open_Grid_Nearest( winp, rect, pt, minsiz ); + } ) + if ( result ) + Tilwin_Enlarge_Nearest_In_Area( winp, rect, pt, siz ); + } + + if ( (! result) && + Tilwin_Get_Global_Option(ALLOW_AUTOMATIC_CLOSE) ) + result = Tilwin_Open_Grid_Nearest( winp, rect, pt, siz ); + } + } + + if ( (! result) && (! Same_Size(siz,minsiz)) && + Tilwin_Get_Global_Option(ALLOW_AUTOMATIC_CLOSE) ) + { + result = Tilwin_Open_Grid_Nearest( winp, rect, pt, minsiz ); + if ( result ) + Tilwin_Enlarge_Nearest_In_Area( winp, rect, pt, siz ); + } + + if ( result ) + Tilwin_Slide_Nearest_In_Area( winp, rect, pt ); + + return result; + +} + +/* ------------------------------------------------------------ */ + +bool Tilwin_Open_Farthest_In_Area( twinp, rect, pt, siz ) + Tilwinp twinp; + TWRectangle rect; + TWPoint pt; + Size siz; +{ + Tilwin *winp = (Tilwin *)twinp; + bool result; + Size minsiz; + + if ( rect.top_y < desktop_rect.top_y ) + rect.top_y = desktop_rect.top_y; + if ( rect.bottom_y > desktop_rect.bottom_y ) + rect.bottom_y = desktop_rect.bottom_y; + if ( rect.left_x < desktop_rect.left_x ) + rect.left_x = desktop_rect.left_x; + if ( rect.right_x > desktop_rect.right_x ) + rect.right_x = desktop_rect.right_x; + + siz.width = siz.width & (~1); + siz.height = siz.height & (~1); + + minsiz = siz; + + if (! Tilwin_Get_Window_Option(winp,FIXED_SIZE) ) + { + if (! Tilwin_Get_Window_Option(winp,FIXED_WIDTH)) + minsiz.width = winp->min_size.width; + if (! Tilwin_Get_Window_Option(winp,FIXED_HEIGHT)) + minsiz.height = winp->min_size.height; + } + + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + { + global_excursion( ALLOW_AUTOMATIC_SHRINK, FALSE, + { + result = Tilwin_Open_Grid_Farthest( winp, rect, pt, siz ); + } ) + if ( (! result) && Tilwin_Get_Global_Option(ALLOW_AUTOMATIC_SHRINK) ) + result = Tilwin_Open_Grid_Farthest( winp, rect, pt, siz ); + } ) + + if (! result) + { + if ( Tilwin_Get_Global_Option(PREFER_CLOSE_TO_SHRINK) ) + { + if ( Tilwin_Get_Global_Option(ALLOW_AUTOMATIC_CLOSE) ) + result = Tilwin_Open_Grid_Farthest( winp, rect, pt, siz ); + + if ( (! result) && (! Same_Size(siz,minsiz)) ) + { + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + { + global_excursion( ALLOW_AUTOMATIC_SHRINK, FALSE, + { + result = Tilwin_Open_Grid_Farthest( winp, rect, pt, minsiz ); + } ) + if ( (! result) && Tilwin_Get_Global_Option(ALLOW_AUTOMATIC_SHRINK) ) + result = Tilwin_Open_Grid_Farthest( winp, rect, pt, minsiz ); + } ) + if ( result ) + Tilwin_Enlarge_Farthest_In_Area( winp, rect, pt, siz ); + } + } + else + { + if (! Same_Size(siz,minsiz)) + { + global_excursion( ALLOW_AUTOMATIC_CLOSE, FALSE, + { + global_excursion( ALLOW_AUTOMATIC_SHRINK, FALSE, + { + result = Tilwin_Open_Grid_Farthest( winp, rect, pt, minsiz ); + } ) + if ( (! result) && Tilwin_Get_Global_Option(ALLOW_AUTOMATIC_SHRINK) ) + result = Tilwin_Open_Grid_Farthest( winp, rect, pt, minsiz ); + } ) + if ( result ) + Tilwin_Enlarge_Farthest_In_Area( winp, rect, pt, siz ); + } + + if ( (! result) && + Tilwin_Get_Global_Option(ALLOW_AUTOMATIC_CLOSE) ) + result = Tilwin_Open_Grid_Farthest( winp, rect, pt, siz ); + } + } + + if ( (! result) && (! Same_Size(siz,minsiz)) && + Tilwin_Get_Global_Option(ALLOW_AUTOMATIC_CLOSE) ) + { + result = Tilwin_Open_Grid_Farthest( winp, rect, pt, minsiz ); + if ( result ) + Tilwin_Enlarge_Farthest_In_Area( winp, rect, pt, siz ); + } + + if ( result ) + Tilwin_Slide_Farthest_In_Area( winp, rect, pt ); + + return result; + +} + +/* ------------------------------------------------------------ */ + +bool Tilwin_Open_Best_In_Area( twinp, rect, siz ) + Tilwinp twinp; + TWRectangle rect; + Size siz; +{ + return Tilwin_Open_Farthest_In_Area( twinp, rect, + desktop_center, siz ); +} diff --git a/twin_undo.c b/twin_undo.c new file mode 100644 index 0000000..273b27f --- /dev/null +++ b/twin_undo.c @@ -0,0 +1,99 @@ +#ifndef lint +static char sccs_id[] = "@(#)twin_undo.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" +#include "twinD.h" +#include "state.h" +#include "win.h" + +static void +Tilwin_Do_Undo() +{ + Tilwin *winp; + WinpHandle handle; + + /* close windows which were opened by the previous + * operation + */ + handle = State_Gen_Just_Opened_Windows(); + while ((winp = State_Coerce(handle)) != WINP_NULL){ + Win_Close((Tilwin *)winp); + State_Next_Window(&handle); + } + + /* close all windows on that were modified by the last operation, they + * will be reopened at their old location and size later + */ + handle = State_Gen_Just_Modified_Windows(); + while ((winp = State_Coerce(handle)) != WINP_NULL) { + Win_Close((Tilwin *)winp); + State_Next_Window(&handle); + } + + /* swap the previous and current values of + * "important" twin fields and switch the Just_Opened + * and Just_Closed lists + */ + State_Undo(); + + /* reopen windows modified by the last operation at their old location and + * size + */ + handle = State_Gen_Just_Modified_Windows(); + while ((winp = State_Coerce(handle)) != WINP_NULL) { + Win_Open((Tilwin *)winp, Tilwin_Get_Rectangle(winp)); + State_Next_Window(&handle); + } + + /* open windows which were closed by the previous + * operation + */ + handle = State_Gen_Just_Opened_Windows(); + while ((winp = State_Coerce(handle)) != WINP_NULL) { + Win_Open((Tilwin *)winp, Tilwin_Get_Rectangle(winp)); + State_Next_Window(&handle); + } + +} + +void +Tilwin_Undo() +{ + if (State_Transaction_Depth() == 0) + Tilwin_Do_Undo(); + +} + +void Tilwin_Abort_Transaction() +{ + Tilwin_Do_Undo(); + State_Abort_Transaction(); +} + + + diff --git a/twin_util.c b/twin_util.c new file mode 100644 index 0000000..5043bbb --- /dev/null +++ b/twin_util.c @@ -0,0 +1,331 @@ +#ifndef lint +static char sccs_id[] = "@(#)twin_util.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" + +#include "twin.h" +#include "twinD.h" + +/* ------------------------------------------------------------ */ + +TWPoint Tilwin_Center_Of_Gravity() +{ + TWPoint center; + Tilwinp winp; + int knt = 0; + + center.x = 0; + center.y = 0; + + Tilwin_Gen_Open_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + center.x += Tilwin_Get_Center(winp).x; + center.y += Tilwin_Get_Center(winp).y; + knt++; + } + + if ( knt == 0 ) + return Tilwin_Get_Desktop_Center(); + + center.x = center.x / knt; + center.y = center.y / knt; + + return center; +} + +/* ------------------------------------------------------------ */ + +TWPoint Tilwin_Position_Ctr_Of_Gravity() +{ + TWPoint center; + Tilwinp winp; + int knt = 0; + + center.x = 0; + center.y = 0; + + Tilwin_Gen_Open_Windows(); + while ( (winp = Tilwin_Next_Window()) != WIN_NULL ) + { + center.x += Tilwin_Get_Position(winp).x; + center.y += Tilwin_Get_Position(winp).y; + knt++; + } + + if ( knt == 0 ) + return Tilwin_Get_Desktop_Center(); + + center.x = center.x / knt; + center.y = center.y / knt; + + return center; +} + +/* ------------------------------------------------------------ */ + +Size Tilwin_Checked_Size( winp, chksiz ) + Tilwinp winp; + Size chksiz; +{ + Size siz; + siz = Tilwin_Get_Size( winp ); + if ( (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + && (! Tilwin_Get_Window_Option( winp, FIXED_SIZE ) ) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_WIDTH ) ) + siz.width = chksiz.width; + if (! Tilwin_Get_Window_Option( winp, FIXED_HEIGHT ) ) + siz.height = chksiz.height; + } + return siz; +} + +/* ------------------------------------------------------------ */ + +Size Tilwin_Checked_Previous_Size( winp ) + Tilwinp winp; +{ + Size siz; + siz = Tilwin_Get_Size( winp ); + if ( (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + && (! Tilwin_Get_Window_Option( winp, FIXED_SIZE ) ) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_WIDTH ) ) + siz.width = Tilwin_Get_Previous_Size(winp).width; + if (! Tilwin_Get_Window_Option( winp, FIXED_HEIGHT ) ) + siz.height = Tilwin_Get_Previous_Size(winp).height; + } + return siz; +} + +/* ------------------------------------------------------------ */ + +Size Tilwin_Good_Size( winp, siz ) + Tilwinp winp; + Size siz; +{ + Size desired, minsiz; + float gwidth, gheight; + + siz = Tilwin_Get_Size( winp ); + if ( Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) + || Tilwin_Get_Window_Option( winp, FIXED_SIZE ) ) + return siz; + + desired = Tilwin_Get_Desired(winp); + minsiz = Tilwin_Get_Min(winp); + + if ( desired.width == minsiz.width ) + gwidth = 1; + else + gwidth = ( siz.width - minsiz.width ) / + ( desired.width - minsiz.width ); + + if ( desired.height == minsiz.height ) + gheight = 1; + else + gheight = ( siz.height - minsiz.height ) / + ( desired.height - minsiz.height ); + + if ( gwidth < gheight ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_HEIGHT ) ) + siz.height = minsiz.height + + gwidth * ( desired.height - minsiz.height ); + } + else if ( gwidth > gheight ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_WIDTH ) ) + siz.width = minsiz.width + + gheight * ( desired.width - minsiz.width ); + } + + return siz; +} + +/* ------------------------------------------------------------ */ + +Size Tilwin_Checked_Min_Size( winp ) + Tilwinp winp; +{ + Size siz; + siz = Tilwin_Get_Size( winp ); + if ( (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + && (! Tilwin_Get_Window_Option( winp, FIXED_SIZE ) ) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_WIDTH ) ) + siz.width = Tilwin_Get_Min(winp).width; + if (! Tilwin_Get_Window_Option( winp, FIXED_HEIGHT ) ) + siz.height = Tilwin_Get_Min(winp).height; + } + return siz; +} + +/* ------------------------------------------------------------ */ + +Size Tilwin_Checked_Desired_Size( winp ) + Tilwinp winp; +{ + Size siz; + siz = Tilwin_Get_Size( winp ); + if ( (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + && (! Tilwin_Get_Window_Option( winp, FIXED_SIZE ) ) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_WIDTH ) ) + siz.width = Tilwin_Get_Desired(winp).width; + if (! Tilwin_Get_Window_Option( winp, FIXED_HEIGHT ) ) + siz.height = Tilwin_Get_Desired(winp).height; + } + return siz; +} + +/* ------------------------------------------------------------ */ + +Size Tilwin_Checked_Good_Desired_Size( winp, good ) + Tilwinp winp; + float good; +{ + Size siz; + siz = Tilwin_Get_Size( winp ); + if ( (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + && (! Tilwin_Get_Window_Option( winp, FIXED_SIZE ) ) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_WIDTH ) ) + siz.width = good * Tilwin_Get_Desired(winp).width + + (1-good)* Tilwin_Get_Min(winp).width; + if (! Tilwin_Get_Window_Option( winp, FIXED_HEIGHT ) ) + siz.height = good * Tilwin_Get_Desired(winp).height + + (1-good)* Tilwin_Get_Min(winp).height; + } + return siz; +} + +/* ------------------------------------------------------------ */ + +Size Tilwin_Checked_Max_Size( winp ) + Tilwinp winp; +{ + Size siz; + siz = Tilwin_Get_Size( winp ); + if ( (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + && (! Tilwin_Get_Window_Option( winp, FIXED_SIZE ) ) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_WIDTH ) ) + siz.width = Tilwin_Get_Max( winp ).width; + if (! Tilwin_Get_Window_Option( winp, FIXED_HEIGHT ) ) + siz.height = Tilwin_Get_Max( winp ).height; + } + return siz; +} + +/* ------------------------------------------------------------ */ + +Size Tilwin_Checked_Good_Max_Size( winp, good ) + Tilwinp winp; + float good; +{ + Size siz; + siz = Tilwin_Get_Size( winp ); + if ( (! Tilwin_Get_Window_Option( winp, FIXED_COMPLETELY ) ) + && (! Tilwin_Get_Window_Option( winp, FIXED_SIZE ) ) ) + { + if (! Tilwin_Get_Window_Option( winp, FIXED_WIDTH ) ) + siz.width = good * Tilwin_Get_Max(winp).width + + (1-good)* Tilwin_Get_Desired(winp).width; + if (! Tilwin_Get_Window_Option( winp, FIXED_HEIGHT ) ) + siz.height = good * Tilwin_Get_Max(winp).height + + (1-good)* Tilwin_Get_Desired(winp).height; + } + return siz; +} + +/* ------------------------------------------------------------ */ + +void Tilwin_Slide_Vertly_Farthest( winp, pt ) + Tilwinp winp; + TWPoint pt; +{ + TWPoint center; + + center = Tilwin_Get_Center(winp); + pt.x = center.x; + + if ( center.y == pt.y ) + center.y = Tilwin_Get_Position(winp).y; + + if ( center.y < pt.y ) + pt.y = Tilwin_Get_Desktop_Rectangle().top_y; + else + pt.y = Tilwin_Get_Desktop_Rectangle().bottom_y; + + Tilwin_Slide_Nearest( winp, pt ); +} + +/* ------------------------------------------------------------ */ + +void Tilwin_Slide_Horizly_Farthest( winp, pt ) + Tilwinp winp; + TWPoint pt; +{ + TWPoint center; + + center = Tilwin_Get_Center(winp); + pt.y = center.y; + + if ( center.x == pt.x ) + center.x = Tilwin_Get_Position(winp).x; + + if ( center.x < pt.x ) + pt.x = Tilwin_Get_Desktop_Rectangle().left_x; + else + pt.x = Tilwin_Get_Desktop_Rectangle().right_x; + + Tilwin_Slide_Nearest( winp, pt ); +} + +/* ------------------------------------------------------------ */ + +void Tilwin_Slide_Vertly_Nearest( winp, pt ) + Tilwinp winp; + TWPoint pt; +{ + pt.x = Tilwin_Get_Center(winp).x; + Tilwin_Slide_Nearest( winp, pt ); +} + +/* ------------------------------------------------------------ */ + +void Tilwin_Slide_Horizly_Nearest( winp, pt ) + Tilwinp winp; + TWPoint pt; +{ + pt.y = Tilwin_Get_Center(winp).y; + Tilwin_Slide_Nearest( winp, pt ); +} + diff --git a/twinoptsP.h b/twinoptsP.h new file mode 100644 index 0000000..ca19486 --- /dev/null +++ b/twinoptsP.h @@ -0,0 +1,45 @@ +/* +static char sccs_id[] = "@(#)twinoptsP.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +typedef enum +{ + EXPENSIVE_TO_REDRAW, + FIXED_COMPLETELY, + FIXED_BOTTOM_EDGE, + FIXED_TOP_EDGE, + FIXED_LEFT_EDGE, + FIXED_RIGHT_EDGE, + FIXED_SIZE, + FIXED_HEIGHT, + FIXED_WIDTH, + REQUIRE_MANUAL_CLOSE, + SHRINK_BASED_ON_CURRENT_SIZE, + WEIGHTED_SHRINK, + LENGTH_WINDOW_OPTIONS /* always LAST in this list! */ +} Window_Options; diff --git a/twinoptsS.h b/twinoptsS.h new file mode 100644 index 0000000..2f555b1 --- /dev/null +++ b/twinoptsS.h @@ -0,0 +1,46 @@ +/* +static char sccs_id[] = "@(#)twinoptsS.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + + +char *(window_strs[(int)LENGTH_WINDOW_OPTIONS]) = { + + "expensiveToRedraw", + "fixedCompletely", + "fixedBottomEdge", + "fixedTopEdge", + "fixedLeftEdge", + "fixedRightEdge", + "fixedSize", + "fixedHeight", + "fixedWidth", + "requireManualClose", + "shrinkBasedOnCurrentSize", + "weightedShrink" }; + + diff --git a/userglob.c b/userglob.c new file mode 100644 index 0000000..d0f5810 --- /dev/null +++ b/userglob.c @@ -0,0 +1,40 @@ +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + + +#include "basetype.h" +#include "useroptsP.h" +#include "uservalsP.h" +#include "exploptsP.h" + +bool user_global_options[(int)LENGTH_USER_GLOBAL_OPTIONS]; + +int user_global_values[(int)LENGTH_USER_GLOBAL_VALUES]; + +bool explicit[(int)LENGTH_EXPLICIT_GLOBAL_OPTIONS]; + +void +userglobals_nil() +{ +} diff --git a/userglobD.h b/userglobD.h new file mode 100644 index 0000000..7a12bad --- /dev/null +++ b/userglobD.h @@ -0,0 +1,74 @@ +/* +static char sccs_id[] = "@(#)userglobD.h 5.5 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +#ifndef USERGLOBALS +#define USERGLOBALS +#endif + +#include "uservalsP.h" +#include "useroptsP.h" +#include "exploptsP.h" + +/* ------------------------------------------------------------ */ + +extern bool user_global_options[]; + +#define UserGlobals_Set_Option(opt,val) \ + user_global_options[(int)(opt)] = (val) + +#define UserGlobals_Get_Option(opt) \ + ( user_global_options[(int)(opt)] ) + +/* ------------------------------------------------------------ */ + +extern int user_global_values[]; + +#define UserGlobals_Set_Value(opt,val) \ + user_global_values[(int)(opt)] = (val) + +#define UserGlobals_Get_Value(opt) \ + ( user_global_values[(int)(opt)] ) + +#define BORDER_SIZE_VAL UserGlobals_Get_Value( BORDER_SIZE ) +#define GADGET_WIDTH_VAL UserGlobals_Get_Value( GADGET_WIDTH ) +#define OUTER_BORDER_LINEWIDTH_VAL UserGlobals_Get_Value( OUTER_BORDER_LINEWIDTH ) +#define INNER_BORDER_LINEWIDTH_VAL UserGlobals_Get_Value( INNER_BORDER_LINEWIDTH ) + +/* ------------------------------------------------------------ */ + +extern bool explicit[]; + +#define Explicit_Global_Get(opt) \ + ( explicit[(int)(opt)] ) + +#define Explicit_Global_Set(opt) \ + (explicit[(int)(opt)]) = TRUE + +#define Explicit_Global_Clear(opt) \ + (explicit[(int)(opt)]) = FALSE diff --git a/useropts.c b/useropts.c new file mode 100644 index 0000000..561756a --- /dev/null +++ b/useropts.c @@ -0,0 +1,240 @@ +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + + +#include "basetype.h" + +bool ACCEPT_NON_LISTENER_IN_BODY; +bool ACCEPT_NON_LISTENER_IN_BORDER; +bool ACCEPT_NON_LISTENER_IN_GADGET; +bool ACCEPT_NON_LISTENER_IN_HEADER; + +bool ALLOW_AGGRESIVE_REPOPULATION; + +bool ALLOW_ANY_SHRINK_ON_AUTO_REPOP; +bool ALLOW_ANY_SHRINK_ON_EXPL_REPOP; + +bool ALLOW_AUTOMATIC_SHRINK_BY_CLIENT; +bool ALLOW_AUTOMATIC_CLOSE_BY_CLIENT; + +bool ALLOW_LISTENER_TO_CLOSE; +bool ALLOW_LSNR_TO_CHANGE_BY_CLIENT; +bool ALLOW_LSNR_TO_CLOSE_BY_CLIENT; + +bool AUTO_DESIRED_ENLARGE; + +bool AUTO_PLACE_ON_ICON_OPEN; +bool AUTO_PLACE_ON_MENU_OPEN; +bool AUTO_PLACE_ON_UNSIZED_OPEN; + +bool AUTO_PRORATE; +bool AUTO_PRORATE_LOCALLY; + +bool AUTO_REPOPULATE_LAST; +bool AUTO_REPOPULATE_ON_AUTO_UNZOOM; +bool AUTO_REPOPULATE_ON_CLOSE; +bool AUTO_REPOP_ON_DESKTOP_RESIZE; +bool AUTO_REPOP_ON_EXPLICIT_UNZOOM; + +bool ALLOW_SHRINK_ON_AUTO_OPEN; +bool ALLOW_SHRINK_ON_CENTER_OPEN; +bool ALLOW_SHRINK_ON_CORNER_OPEN; +bool ALLOW_SHRINK_ON_RESIZE; + +bool BEST_FIT; + +bool BUTTON_MAKES_LISTENER_IN_BODY; +bool BUTTON_MAKES_LISTENER_IN_HEADER; + +bool CENTER_CURSOR_ON_MOVE; +bool CENTER_CURSOR_ON_RELOCATE; + +bool CLEAR_BODY_ON_REDRAW; + +bool CLOSE_IN_HEADER; +bool CLOSE_IN_CORNER_BORDER; +bool CLOSE_IN_SIDE_BORDER; +bool CLOSE_IN_MOVE_GADGET; +bool CLOSE_IN_ZOOM_GADGET; + +bool DISTINGUISH_CORNER_BORDERS; +bool DISTNGSH_CORNER_BORDERS_BY_INV; + +bool DRAW_INNER_BORDERS; +bool DRAW_OUTER_BORDERS; + +bool DRAW_X_ON_MOVE; +bool DRAW_X_ON_OPEN; +bool DRAW_X_ON_RESIZE; + +bool EXCHANGE_IN_HEADER; +bool EXCHANGE_IN_CORNER_BORDER; +bool EXCHANGE_IN_SIDE_BORDER; +bool EXCHANGE_IN_ZOOM_GADGET; + +bool EXCHANGE_SIZES_IF_POSSIBLE; + +bool FULL_SCREEN; + +Side ICON_PLACEMENT; + +bool INCL_BGRND_MENU_IN_WINDOW_MENU; + +bool KEY_MAKES_LISTENER_IN_BODY; +bool KEY_MAKES_LISTENER_IN_BORDER; +bool KEY_MAKES_LISTENER_IN_GADGET; +bool KEY_MAKES_LISTENER_IN_HEADER; + +bool FOCUS_FOLLOWS_CURSOR; + +bool LOCAL_AUTO_PRORATE_BIASED; +bool LOCAL_EXPLICIT_PRORATE_BIASED; + +bool MANAGER_MENU_IN_BODY; +bool MANAGER_MENU_IN_CORNER_BORDER; +bool MANAGER_MENU_IN_HEADER; +bool MANAGER_MENU_IN_ICON; +bool MANAGER_MENU_IN_SIDE_BORDER; + +bool MIDDLE_MENU; + +bool MOVE_CURSOR_ON_CLIENT_OPEN; +bool MOVE_CURSOR_ON_MANUAL_OPEN; +bool MOVE_CURSOR_TO_ICON_ON_CLOSE; + +bool MOVE_IN_HEADER; +bool MOVE_IN_CORNER_BORDER; +bool MOVE_IN_SIDE_BORDER; +bool MOVE_IN_ZOOM_GADGET; + +bool ONLY_REPOP_SINCE_ON_AUTO_UNZOOM; +bool ONLY_REPOPULATE_SINCE_ON_CLOSE; +bool ONLY_REPOP_SINCE_ON_EXPL_UNZOOM; + +bool PLACE_CSR_IN_BODY_NOT_GADGET; + +bool PLACE_CSR_GDGT_AFT_CL_AUTO_OPEN; +bool PLACE_CSR_GDGT_AFT_US_AUTO_OPEN; +bool PLACE_CSR_IN_GADGET_AFT_MAN_OPEN; + +bool PLACE_CSR_IN_GADGET_AFT_EXCHANGE; +bool PLACE_CSR_IN_GADGET_AFT_MOVE; + +bool PLACE_CSR_BACK_ON_CANCEL; + +bool PREFER_CL_TO_SHR_ON_AUTO_OPEN; +bool PREFER_CL_TO_SHR_ON_CENTER_OPEN; +bool PREFER_CL_TO_SHR_ON_CORNER_OPEN; +bool PREFER_CL_TO_SHR_ON_RESIZE; + +bool PREFER_PREV_POS_ON_AUTO_REPOP; +bool PREFER_PREV_POS_ON_EXPL_REPOP; + +bool PF_CTR_NBR_2_CLOSE_ON_OPEN; +bool PF_CTR_NBR_2_SHRINK_ON_OPEN; +bool PF_CTR_NBR_2_ANY_SHR_ON_OPEN; +bool PF_EDGE_NBR_2_CLOSE_ON_OPEN; +bool PF_EDGE_NBR_2_SHRINK_ON_OPEN; +bool PF_EDGE_NBR_2_ANY_SHR_ON_OPEN; + +bool PF_DTOP_2_CLOSE_ON_AUTO_OPEN; +bool PF_DTOP_2_SHRINK_ON_AUTO_OPEN; +bool PF_DTOP_2_ANY_SHR_ON_AUTO_OPEN; + +bool PREF_SLD_TO_CLOSE_ON_RESIZE; +bool PREF_SLD_TO_SHRINK_ON_RESIZE; +bool PREF_SLD_TO_ANY_SHR_ON_RESIZE; +bool PF_CTR_NBR_2_CLOSE_ON_RESIZE; +bool PF_CTR_NBR_2_SHRINK_ON_RESIZE; +bool PF_CTR_NBR_2_ANY_SHR_ON_RESIZE; +bool PF_EDGE_NBR_2_CLOSE_ON_RESIZE; +bool PF_EDGE_NBR_2_SHRINK_ON_RESIZE; +bool PF_EDGE_NBR_2_ANY_SHR_ON_RESIZE; + +bool PREFER_UNZOOM_TO_CLOSE; + +bool PRORATE_LOCALLY; + +bool REDRAW_IN_HEADER; +bool REDRAW_IN_CORNER_BORDER; +bool REDRAW_IN_SIDE_BORDER; +bool REDRAW_IN_MOVE_GADGET; +bool REDRAW_IN_ZOOM_GADGET; + +bool RELOCATE_IN_HEADER; +bool RELOCATE_IN_CORNER_BORDER; +bool RELOCATE_IN_SIDE_BORDER; +bool RELOCATE_IN_ZOOM_GADGET; + +bool REQUIRE_PREV_POS_ON_AUTO_REPOP; +bool REQUIRE_PREV_POS_ON_EXPL_REPOP; + +bool RESET_MAX_ON_INCREASE; +bool RESET_MAX_ON_SHRINK; + +bool RESET_MIN_ON_DECREASE; +bool RESET_MIN_ON_ENLARGE; +bool RESET_MIN_MAX_ON_UNSZD_MAN_OPEN; +bool RESET_TIED_ZOOMED_MIN_ON_ENLARGE; + +bool RESIZE_IN_HEADER; +bool RESIZE_IN_CORNER_BORDER; +bool RESIZE_IN_SIDE_BORDER; +bool RESIZE_IN_MOVE_GADGET; +bool RESIZE_IN_ZOOM_GADGET; + +bool SHOW_LISTENER_IN_BORDERS; +bool SHOW_LISTENER_IN_HEADER; +bool SHOW_FOCUS_IN_BORDERS; +bool SHOW_FOCUS_IN_HEADER; + +bool TREAT_MOVE_LIKE_RELOCATE; + +bool TRY_CTR_NBRHD_ON_OPEN; +bool TRY_EDGE_NEIGHBORHOOD_ON_OPEN; + +bool TRY_SLIDING_ON_RESIZE; +bool TRY_CTR_NBRHD_ON_RESIZE; +bool TRY_EDGE_NEIGHBORHOOD_ON_RESIZE; + +bool TRY_REPOP_AGAIN_AFT_AUTO_PRORATE; + +bool UNZOOM_TIED_LSNR_IF_NECESSARY; + +bool USE_CORNER_BORDERS; + +bool USE_ICONS; +bool USE_RTL_ICON; + +bool USER_MENU_IN_BODY; +bool USER_MENU_IN_HEADER; +bool USER_MENU_IN_SIDE_BORDER; +bool USER_MENU_IN_CORNER_BORDER; +bool USER_MENU_IN_ICON; + +bool ZOOM_IN_HEADER; +bool ZOOM_IN_CORNER_BORDER; +bool ZOOM_IN_SIDE_BORDER; + +bool ZOOM_ON_CREATE; diff --git a/useropts.h b/useropts.h new file mode 100644 index 0000000..f494faa --- /dev/null +++ b/useropts.h @@ -0,0 +1,251 @@ +/* +static char sccs_id[] = "@(#)useropts.h 5.6 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +#ifndef BASETYPE +#include "basetype.h" +#endif + +extern bool ACCEPT_NON_LISTENER_IN_BODY; +extern bool ACCEPT_NON_LISTENER_IN_BORDER; +extern bool ACCEPT_NON_LISTENER_IN_GADGET; +extern bool ACCEPT_NON_LISTENER_IN_HEADER; + +extern bool ALLOW_AGGRESIVE_REPOPULATION; + +extern bool ALLOW_ANY_SHRINK_ON_AUTO_REPOP; +extern bool ALLOW_ANY_SHRINK_ON_EXPL_REPOP; + +extern bool ALLOW_AUTOMATIC_SHRINK_BY_CLIENT; +extern bool ALLOW_AUTOMATIC_CLOSE_BY_CLIENT; + +extern bool ALLOW_LISTENER_TO_CLOSE; +extern bool ALLOW_LSNR_TO_CHANGE_BY_CLIENT; +extern bool ALLOW_LSNR_TO_CLOSE_BY_CLIENT; + +extern bool AUTO_DESIRED_ENLARGE; + +extern bool AUTO_PLACE_ON_ICON_OPEN; +extern bool AUTO_PLACE_ON_MENU_OPEN; +extern bool AUTO_PLACE_ON_UNSIZED_OPEN; + +extern bool AUTO_PRORATE; +extern bool AUTO_PRORATE_LOCALLY; + +extern bool AUTO_REPOPULATE_LAST; +extern bool AUTO_REPOPULATE_ON_AUTO_UNZOOM; +extern bool AUTO_REPOPULATE_ON_CLOSE; +extern bool AUTO_REPOP_ON_DESKTOP_RESIZE; +extern bool AUTO_REPOP_ON_EXPLICIT_UNZOOM; + +extern bool ALLOW_SHRINK_ON_AUTO_OPEN; +extern bool ALLOW_SHRINK_ON_CENTER_OPEN; +extern bool ALLOW_SHRINK_ON_CORNER_OPEN; +extern bool ALLOW_SHRINK_ON_RESIZE; + +extern bool BEST_FIT; + +extern bool BUTTON_MAKES_LISTENER_IN_BODY; +extern bool BUTTON_MAKES_LISTENER_IN_HEADER; + +extern bool CENTER_CURSOR_ON_MOVE; +extern bool CENTER_CURSOR_ON_RELOCATE; + +extern bool CLEAR_BODY_ON_REDRAW; + +extern bool CLOSE_IN_HEADER; +extern bool CLOSE_IN_CORNER_BORDER; +extern bool CLOSE_IN_SIDE_BORDER; +extern bool CLOSE_IN_MOVE_GADGET; +extern bool CLOSE_IN_ZOOM_GADGET; + +extern bool DISTINGUISH_CORNER_BORDERS; +extern bool DISTNGSH_CORNER_BORDERS_BY_INV; + +extern bool DRAW_INNER_BORDERS; +extern bool DRAW_OUTER_BORDERS; + +extern bool DRAW_X_ON_MOVE; +extern bool DRAW_X_ON_OPEN; +extern bool DRAW_X_ON_RESIZE; + +extern bool EXCHANGE_IN_HEADER; +extern bool EXCHANGE_IN_CORNER_BORDER; +extern bool EXCHANGE_IN_SIDE_BORDER; +extern bool EXCHANGE_IN_ZOOM_GADGET; + +extern bool EXCHANGE_SIZES_IF_POSSIBLE; + +extern bool FULL_SCREEN; + +extern Side ICON_PLACEMENT; + +extern bool INCL_BGRND_MENU_IN_WINDOW_MENU; + +extern bool KEY_MAKES_LISTENER_IN_BODY; +extern bool KEY_MAKES_LISTENER_IN_BORDER; +extern bool KEY_MAKES_LISTENER_IN_GADGET; +extern bool KEY_MAKES_LISTENER_IN_HEADER; + +extern bool FOCUS_FOLLOWS_CURSOR; + +extern bool LOCAL_AUTO_PRORATE_BIASED; +extern bool LOCAL_EXPLICIT_PRORATE_BIASED; + +extern bool MANAGER_MENU_IN_BODY; +extern bool MANAGER_MENU_IN_CORNER_BORDER; +extern bool MANAGER_MENU_IN_HEADER; +extern bool MANAGER_MENU_IN_ICON; +extern bool MANAGER_MENU_IN_SIDE_BORDER; + +extern bool MIDDLE_MENU; + +extern bool MOVE_CURSOR_ON_CLIENT_OPEN; +extern bool MOVE_CURSOR_ON_MANUAL_OPEN; +extern bool MOVE_CURSOR_TO_ICON_ON_CLOSE; + +extern bool MOVE_IN_HEADER; +extern bool MOVE_IN_CORNER_BORDER; +extern bool MOVE_IN_SIDE_BORDER; +extern bool MOVE_IN_ZOOM_GADGET; + +extern bool ONLY_REPOP_SINCE_ON_AUTO_UNZOOM; +extern bool ONLY_REPOPULATE_SINCE_ON_CLOSE; +extern bool ONLY_REPOP_SINCE_ON_EXPL_UNZOOM; + +extern bool PLACE_CSR_IN_BODY_NOT_GADGET; + +extern bool PLACE_CSR_GDGT_AFT_CL_AUTO_OPEN; +extern bool PLACE_CSR_GDGT_AFT_US_AUTO_OPEN; +extern bool PLACE_CSR_IN_GADGET_AFT_MAN_OPEN; + +extern bool PLACE_CSR_IN_GADGET_AFT_EXCHANGE; +extern bool PLACE_CSR_IN_GADGET_AFT_MOVE; + +extern bool PLACE_CSR_BACK_ON_CANCEL; + +extern bool PREFER_CL_TO_SHR_ON_AUTO_OPEN; +extern bool PREFER_CL_TO_SHR_ON_CENTER_OPEN; +extern bool PREFER_CL_TO_SHR_ON_CORNER_OPEN; +extern bool PREFER_CL_TO_SHR_ON_RESIZE; + +extern bool PREFER_PREV_POS_ON_AUTO_REPOP; +extern bool PREFER_PREV_POS_ON_EXPL_REPOP; + +extern bool PF_CTR_NBR_2_CLOSE_ON_OPEN; +extern bool PF_CTR_NBR_2_SHRINK_ON_OPEN; +extern bool PF_CTR_NBR_2_ANY_SHR_ON_OPEN; +extern bool PF_EDGE_NBR_2_CLOSE_ON_OPEN; +extern bool PF_EDGE_NBR_2_SHRINK_ON_OPEN; +extern bool PF_EDGE_NBR_2_ANY_SHR_ON_OPEN; + +extern bool PF_DTOP_2_CLOSE_ON_AUTO_OPEN; +extern bool PF_DTOP_2_SHRINK_ON_AUTO_OPEN; +extern bool PF_DTOP_2_ANY_SHR_ON_AUTO_OPEN; + +extern bool PREF_SLD_TO_CLOSE_ON_RESIZE; +extern bool PREF_SLD_TO_SHRINK_ON_RESIZE; +extern bool PREF_SLD_TO_ANY_SHR_ON_RESIZE; +extern bool PF_CTR_NBR_2_CLOSE_ON_RESIZE; +extern bool PF_CTR_NBR_2_SHRINK_ON_RESIZE; +extern bool PF_CTR_NBR_2_ANY_SHR_ON_RESIZE; +extern bool PF_EDGE_NBR_2_CLOSE_ON_RESIZE; +extern bool PF_EDGE_NBR_2_SHRINK_ON_RESIZE; +extern bool PF_EDGE_NBR_2_ANY_SHR_ON_RESIZE; + +extern bool PREFER_UNZOOM_TO_CLOSE; + +extern bool PRORATE_LOCALLY; + +extern bool REDRAW_IN_HEADER; +extern bool REDRAW_IN_CORNER_BORDER; +extern bool REDRAW_IN_SIDE_BORDER; +extern bool REDRAW_IN_MOVE_GADGET; +extern bool REDRAW_IN_ZOOM_GADGET; + +extern bool RELOCATE_IN_HEADER; +extern bool RELOCATE_IN_CORNER_BORDER; +extern bool RELOCATE_IN_SIDE_BORDER; +extern bool RELOCATE_IN_ZOOM_GADGET; + +extern bool REQUIRE_PREV_POS_ON_AUTO_REPOP; +extern bool REQUIRE_PREV_POS_ON_EXPL_REPOP; + +extern bool RESET_MAX_ON_INCREASE; +extern bool RESET_MAX_ON_SHRINK; + +extern bool RESET_MIN_ON_DECREASE; +extern bool RESET_MIN_ON_ENLARGE; +extern bool RESET_MIN_MAX_ON_UNSZD_MAN_OPEN; +extern bool RESET_TIED_ZOOMED_MIN_ON_ENLARGE; + +extern bool RESIZE_IN_HEADER; +extern bool RESIZE_IN_CORNER_BORDER; +extern bool RESIZE_IN_SIDE_BORDER; +extern bool RESIZE_IN_MOVE_GADGET; +extern bool RESIZE_IN_ZOOM_GADGET; + +extern bool SHOW_LISTENER_IN_BORDERS; +extern bool SHOW_LISTENER_IN_HEADER; +extern bool SHOW_FOCUS_IN_BORDERS; +extern bool SHOW_FOCUS_IN_HEADER; + +extern bool TREAT_MOVE_LIKE_RELOCATE; + +extern bool TRY_CTR_NBRHD_ON_OPEN; +extern bool TRY_EDGE_NEIGHBORHOOD_ON_OPEN; + +extern bool TRY_SLIDING_ON_RESIZE; +extern bool TRY_CTR_NBRHD_ON_RESIZE; +extern bool TRY_EDGE_NEIGHBORHOOD_ON_RESIZE; + +extern bool TRY_REPOP_AGAIN_AFT_AUTO_PRORATE; + +extern bool UNZOOM_TIED_LSNR_IF_NECESSARY; + +extern bool USE_CORNER_BORDERS; + +extern bool USE_ICONS; +extern bool USE_RTL_ICON; + +extern bool USER_MENU_IN_BODY; +extern bool USER_MENU_IN_HEADER; +extern bool USER_MENU_IN_SIDE_BORDER; +extern bool USER_MENU_IN_CORNER_BORDER; +extern bool USER_MENU_IN_ICON; + +extern bool ZOOM_IN_HEADER; +extern bool ZOOM_IN_CORNER_BORDER; +extern bool ZOOM_IN_SIDE_BORDER; + +extern bool ZOOM_ON_CREATE; + +#define Userwin_Get_Global_Option(opt) \ + ( opt ) + +#define Userwin_Set_Global_Option(opt,val) \ + ( (opt) = (val) ) diff --git a/useroptsP.h b/useroptsP.h new file mode 100644 index 0000000..116fe1c --- /dev/null +++ b/useroptsP.h @@ -0,0 +1,287 @@ +/* +static char sccs_id[] = "@(#)useroptsP.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +typedef enum { + + ACCEPT_NON_LISTENER_IN_BODY, + ACCEPT_NON_LISTENER_IN_BORDER, + ACCEPT_NON_LISTENER_IN_GADGET, + ACCEPT_NON_LISTENER_IN_HEADER, + + ALLOW_AGGRESSIVE_REPOPULATION, + + ALLOW_AUTO_SHRINK_ON_AUTO_REPOP, + ALLOW_AUTO_SHRINK_ON_EXPL_REPOP, + + ALLOW_AUTO_SHRINK_ON_EXCHANGE, + ALLOW_AUTO_CLOSE_ON_EXCHANGE, + + ALLOW_AUTOMATIC_SHRINK_BY_CLIENT, + ALLOW_AUTOMATIC_CLOSE_BY_CLIENT, + + ALLOW_LISTENER_TO_CLOSE, + ALLOW_LSNR_TO_CHANGE_BY_CLIENT, + ALLOW_LSNR_TO_CLOSE_BY_CLIENT, + + ALLOW_SHRINK_ON_AUTO_OPEN, + ALLOW_SHRINK_ON_CENTER_OPEN, + ALLOW_SHRINK_ON_CORNER_OPEN, + ALLOW_SHRINK_ON_RESIZE, + + AUTO_DESIRED_ENLARGE, + + AUTO_PLACE_ON_ICON_OPEN, + AUTO_PLACE_ON_MENU_OPEN, + AUTO_PLACE_ON_UNSIZED_OPEN, + + AUTO_PRORATE, + AUTO_PRORATE_LOCALLY, + + AUTO_REPOPULATE_LAST, + AUTO_REPOPULATE_ON_AUTO_UNZOOM, + AUTO_REPOPULATE_ON_CLOSE, + AUTO_REPOP_ON_DESKTOP_RESIZE, + AUTO_REPOP_ON_EXPLICIT_UNZOOM, + + BIASED_AUTO_PRORATE, + BIASED_EXPLICIT_PRORATE, + + BUTTON_MAKES_LISTENER_IN_BODY, + BUTTON_MAKES_LISTENER_IN_HEADER, + + CENTER_CURSOR_ON_MOVE, + CENTER_CURSOR_ON_RELOCATE, + + CLEAR_BODY_ON_REDRAW, + + CLOSE_IN_HEADER, + CLOSE_IN_CORNER_BORDER, + CLOSE_IN_SIDE_BORDER, + CLOSE_IN_MOVE_GADGET, + CLOSE_IN_ZOOM_GADGET, + + DESIRE_IN_HEADER, + DESIRE_IN_CORNER_BORDER, + DESIRE_IN_SIDE_BORDER, + DESIRE_IN_MOVE_GADGET, + DESIRE_IN_ZOOM_GADGET, + + DISTINGUISH_CORNER_BORDERS, + DISTNGSH_CORNER_BORDERS_BY_INV, + + DRAW_X_ON_MOVE, + DRAW_X_ON_OPEN, + DRAW_X_ON_RESIZE, + + ENABLE_AUTO_REPOP_DURING_LAYOUT, + ENABLE_AUTO_SIZING_DURING_LAYOUT, + + ENLARGE_IN_HEADER, + ENLARGE_IN_CORNER_BORDER, + ENLARGE_IN_SIDE_BORDER, + ENLARGE_IN_MOVE_GADGET, + ENLARGE_IN_ZOOM_GADGET, + + EXCHANGE_IN_HEADER, + EXCHANGE_IN_ICON, + EXCHANGE_IN_CORNER_BORDER, + EXCHANGE_IN_SIDE_BORDER, + EXCHANGE_IN_MOVE_GADGET, + EXCHANGE_IN_ZOOM_GADGET, + + FULL_SCREEN, + + INCL_BGRND_MENU_IN_WINDOW_MENU, + + KEY_MAKES_LISTENER_IN_BODY, + KEY_MAKES_LISTENER_IN_BORDER, + KEY_MAKES_LISTENER_IN_GADGET, + KEY_MAKES_LISTENER_IN_HEADER, + + FOCUS_FOLLOWS_CURSOR, + + MANAGER_MENU_IN_BODY, + MANAGER_MENU_IN_CORNER_BORDER, + MANAGER_MENU_IN_HEADER, + MANAGER_MENU_IN_ICON, + MANAGER_MENU_IN_SIDE_BORDER, + MANAGER_MENU_IN_MOVE_GADGET, + MANAGER_MENU_IN_ZOOM_GADGET, + + MIDDLE_MENU, + + MOVE_CURSOR_ON_CLIENT_OPEN, + MOVE_CURSOR_ON_MANUAL_OPEN, + MOVE_CURSOR_TO_ICON_ON_CLOSE, + + MOVE_IN_HEADER, + MOVE_IN_ICON, + MOVE_IN_CORNER_BORDER, + MOVE_IN_SIDE_BORDER, + MOVE_IN_MOVE_GADGET, + MOVE_IN_ZOOM_GADGET, + + ONLY_REPOP_SINCE_ON_AUTO_UNZOOM, + ONLY_REPOPULATE_SINCE_ON_CLOSE, + ONLY_REPOP_SINCE_ON_EXPL_UNZOOM, + + PLACE_CSR_IN_BODY_NOT_BORDER, + PLACE_CSR_IN_BODY_NOT_GADGET, + + PLACE_CSR_IN_BORDER_AFTER_RESIZE, + + PLACE_CSR_GDGT_AFT_CL_AUTO_OPEN, + PLACE_CSR_GDGT_AFT_US_AUTO_OPEN, + PLACE_CSR_IN_GADGET_AFT_MAN_OPEN, + + PLACE_CSR_IN_GADGET_AFT_EXCHANGE, + PLACE_CSR_IN_GADGET_AFT_MOVE, + + PLACE_CSR_IN_ICON_AFTER_CLOSE, + + PLACE_CSR_BACK_AFTER_MENU_OP, + PLACE_CSR_BACK_ON_CANCEL, + + PREFER_CL_TO_SHR_ON_AUTO_OPEN, + PREFER_CL_TO_SHR_ON_CENTER_OPEN, + PREFER_CL_TO_SHR_ON_CORNER_OPEN, + PREFER_CL_TO_SHR_ON_EXCHANGE, + PREFER_CL_TO_SHR_ON_RESIZE, + + PREFER_EXC_LOC_ON_ICONIZING, + PREFER_EXCHANGED_LOC_ON_OPENING, + + PREFER_PREV_POS_ON_AUTO_REPOP, + PREFER_PREV_POS_ON_EXPL_REPOP, + + PF_CTR_NBR_2_AUTO_CL_ON_OPEN, + PF_CTR_NBR_2_AUTO_SHR_ON_OPEN, + PF_CTR_NBR_2_SHRINK_ON_OPEN, + PF_EDGE_NBR_2_AUTO_CL_ON_OPEN, + PF_EDGE_NBR_2_AUTO_SHR_ON_OPEN, + PF_EDGE_NBR_2_SHRINK_ON_OPEN, + + PF_DTOP_2_AUTO_CL_ON_AUTO_OPEN, + PF_DTOP_2_AUTO_SHR_ON_AUTO_OPEN, + PF_DTOP_2_SHRINK_ON_AUTO_OPEN, + + PREF_SLD_TO_AUTO_CL_ON_RESIZE, + PREF_SLD_TO_AUTO_SHR_ON_RESIZE, + PREF_SLD_TO_SHRINK_ON_RESIZE, + PF_CTR_NBR_2_AUTO_CL_ON_RESIZE, + PF_CTR_NBR_2_AUTO_SHR_ON_RESIZE, + PF_CTR_NBR_2_SHRINK_ON_RESIZE, + PF_EDGE_NBR_2_AUTO_CL_ON_RESIZE, + PF_EDGE_NBR_2_AUTO_SHR_ON_RESIZE, + PF_EDGE_NBR_2_SHRINK_ON_RESIZE, + + PREFER_UNZOOM_TO_CLOSE, + + PRORATE_LOCALLY, + + REDRAW_IN_HEADER, + REDRAW_IN_ICON, + REDRAW_IN_CORNER_BORDER, + REDRAW_IN_SIDE_BORDER, + REDRAW_IN_MOVE_GADGET, + REDRAW_IN_ZOOM_GADGET, + + RELOCATE_IN_HEADER, + RELOCATE_IN_CORNER_BORDER, + RELOCATE_IN_SIDE_BORDER, + RELOCATE_IN_MOVE_GADGET, + RELOCATE_IN_ZOOM_GADGET, + + REPOPULATE_STRICTLY, + REPOPULATE_AUTO_CLOSED_ONLY, + + REQUIRE_PREV_POS_ON_AUTO_REPOP, + REQUIRE_PREV_POS_ON_EXPL_REPOP, + + RESET_MAX_ON_INCREASE, + RESET_MAX_ON_SHRINK, + + RESET_MIN_ON_DECREASE, + RESET_MIN_ON_ENLARGE, + RESET_MIN_MAX_ON_UNSZD_MAN_OPEN, + RESET_TIED_ZOOMED_MIN_ON_ENLARGE, + + RESET_ZOOM_MIN, + RESET_ZOOM_MIN_ALLOWS_DECREASE, + RESET_ZOOM_MIN_USES_DESIRE, + + RESIZE_IN_HEADER, + RESIZE_IN_CORNER_BORDER, + RESIZE_IN_SIDE_BORDER, + RESIZE_IN_MOVE_GADGET, + RESIZE_IN_ZOOM_GADGET, + + SHOW_LISTENER_IN_BORDERS, + SHOW_LISTENER_IN_HEADER, + SHOW_FOCUS_IN_BORDERS, + SHOW_FOCUS_IN_HEADER, + + TREAT_MOVE_LIKE_RELOCATE, + + TRY_CTR_NBRHD_ON_EXCHANGE, + + TRY_CTR_NBRHD_ON_OPEN, + TRY_EDGE_NEIGHBORHOOD_ON_OPEN, + + TRY_SLIDING_ON_RESIZE, + TRY_CTR_NBRHD_ON_RESIZE, + TRY_EDGE_NEIGHBORHOOD_ON_RESIZE, + + TRY_REPOP_AGAIN_AFT_AUTO_PRORATE, + + UNZOOM_TIED_LSNR_IF_NECESSARY, + + USE_CORNER_BORDERS, + + USE_ICON_AREA, + USE_ICONS, + USE_RTL_ICON, + + USER_MENU_IN_BODY, + USER_MENU_IN_HEADER, + USER_MENU_IN_SIDE_BORDER, + USER_MENU_IN_CORNER_BORDER, + USER_MENU_IN_ICON, + USER_MENU_IN_MOVE_GADGET, + USER_MENU_IN_ZOOM_GADGET, + + ZOOM_IN_HEADER, + ZOOM_IN_CORNER_BORDER, + ZOOM_IN_SIDE_BORDER, + ZOOM_IN_MOVE_GADGET, + ZOOM_IN_ZOOM_GADGET, + + ZOOM_ON_CREATE, + + LENGTH_USER_GLOBAL_OPTIONS +} User_Global_Options; diff --git a/useroptsS.h b/useroptsS.h new file mode 100644 index 0000000..f770124 --- /dev/null +++ b/useroptsS.h @@ -0,0 +1,285 @@ +/* +static char sccs_id[] = "@(#)useroptsS.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +char *(user_global_strs[(int)LENGTH_USER_GLOBAL_OPTIONS]) = { + + "acceptNonListenerInBody", + "acceptNonListenerInBorder", + "acceptNonListenerInGadget", + "acceptNonListenerInHeader", + + "allowAggressiveRepopulation", + + "allowAutomaticShrinkOnAutoRepopulate", + "allowAutomaticShrinkOnExplicitRepopulate", + + "allowAutomaticShrinkOnExchange", + "allowAutomaticCloseOnExchange", + + "allowAutomaticShrinkByClient", + "allowAutomaticCloseByClient", + + "allowListenerToClose", + "allowListenerToChangeByClient", + "allowListenerToCloseByClient", + + "allowShrinkOnAutoOpen", + "allowShrinkOnCenterOpen", + "allowShrinkOnCornerOpen", + "allowShrinkOnResize", + + "autoDesiredEnlarge", + + "autoPlaceOnIconOpen", + "autoPlaceOnMenuOpen", + "autoPlaceOnUnsizedOpen", + + "autoProrate", + "autoProrateLocally", + + "autoRepopulateLast", + "autoRepopulateOnAutoUnzoom", + "autoRepopulateOnClose", + "autoRepopulateOnDesktopResize", + "autoRepopulateOnExplicitUnzoom", + + "biasedAutoProrate", + "biasedExplicitProrate", + + "buttonMakesListenerInBody", + "buttonMakesListenerInHeader", + + "centerCursorOnMove", + "centerCursorOnRelocate", + + "clearBodyOnRedraw", + + "closeInHeader", + "closeInCornerBorder", + "closeInSideBorder", + "closeInMoveGadget", + "closeInZoomGadget", + + "desireInHeader", + "desireInCornerBorder", + "desireInSideBorder", + "desireInMoveGadget", + "desireInZoomGadget", + + "distinguishCornerBorders", + "distinguishCornerBordersByInverse", + + "drawXOnMove", + "drawXOnOpen", + "drawXOnResize", + + "enableAutoRepopulationDuringLayout", + "enableAutoSizingDuringLayout", + + "enlargeInHeader", + "enlargeInCornerBorder", + "enlargeInSideBorder", + "enlargeInMoveGadget", + "enlargeInZoomGadget", + + "exchangeInHeader", + "exchangeInIcon", + "exchangeInCornerBorder", + "exchangeInSideBorder", + "exchangeInMoveGadget", + "exchangeInZoomGadget", + + "fullScreen", + + "includeBackgroundMenuInWindowMenu", + + "keyMakesListenerInBody", + "keyMakesListenerInBorder", + "keyMakesListenerInGadget", + "keyMakesListenerInHeader", + + "focusFollowsCursor", + + "managerMenuInBody", + "managerMenuInCornerBorder", + "managerMenuInHeader", + "managerMenuInIcon", + "managerMenuInSideBorder", + "managerMenuInMoveGadget", + "managerMenuInZoomGadget", + + "middleMenu", + + "moveCursorOnClientOpen", + "moveCursorOnManualOpen", + "moveCursorToIconOnClose", + + "moveInHeader", + "moveInIcon", + "moveInCornerBorder", + "moveInSideBorder", + "moveInMoveGadget", + "moveInZoomGadget", + + "onlyRepopSinceOnAutoUnzoom", + "onlyRepopulateSinceOnClose", + "onlyRepopulateSinceOnExplicitUnzoom", + + "placeCursorInBodyInsteadOfBorder", + "placeCursorInBodyInsteadOfGadget", + + "placeCursorInBorderAfterResize", + + "placeCursorInGadgetAfterClientAutoOpen", + "placeCursorInGadgetAfterUserAutoOpen", + "placeCursorInGadgetAfterManualOpen", + + "placeCursorInGadgetAfterExchange", + "placeCursorInGadgetAfterMove", + + "placeCursorInIconAfterClose", + + "placeCursorBackAfterMenuOperation", + "placeCursorBackOnCancel", + + "preferCloseToShrinkOnAutoOpen", + "preferCloseToShrinkOnCenterOpen", + "preferCloseToShrinkOnCornerOpen", + "preferCloseToShrinkOnExchange", + "preferCloseToShrinkOnResize", + + "preferExchangedLocationOnIconizing", + "preferExchangedLocationOnOpening", + + "preferPreviousPositionOnAutoRepopulate", + "preferPreviousPositionOnExplicitRepopulate", + + "preferCenterNeighborhoodToAutomaticCloseOnOpen", + "preferCenterNeighborhoodToAutomaticShrinkOnOpen", + "preferCenterNeighborhoodToShrinkOnOpen", + "preferEdgeNeighborhoodToAutomaticCloseOnOpen", + "preferEdgeNeighborhoodToAutomaticShrinkOnOpen", + "preferEdgeNeighborhoodToShrinkOnOpen", + + "preferDesktopToAutomaticCloseOnAutoOpen", + "preferDesktopToAutomaticShrinkOnAutoOpen", + "preferDesktopToShrinkOnAutoOpen", + + "preferSlidingToAutomaticCloseOnResize", + "preferSlidingToAutomaticShrinkOnResize", + "preferSlidingToShrinkOnResize", + "preferCenterNeighborhoodToAutomaticCloseOnResize", + "preferCenterNeighborhoodToAutomaticShrinkOnResize", + "preferCenterNeighborhoodToShrinkOnResize", + "preferEdgeNeighborhoodToAutomaticCloseOnResize", + "preferEdgeNeighborhoodToAutomaticShrinkOnResize", + "preferEdgeNeighborhoodToShrinkOnResize", + + "preferUnzoomToClose", + + "prorateLocally", + + "redrawInHeader", + "redrawInIcon", + "redrawInCornerBorder", + "redrawInSideBorder", + "redrawInMoveGadget", + "redrawInZoomGadget", + + "relocateInHeader", + "relocateInCornerBorder", + "relocateInSideBorder", + "relocateInMoveGadget", + "relocateInZoomGadget", + + "repopulateStrictly", + "repopulateAutoClosedOnly", + + "requirePreviousPositionOnAutoRepopulate", + "requirePreviousPositionOnExplicitRepopulate", + + "resetMaxOnIncrease", + "resetMaxOnShrink", + + "resetMinOnDecrease", + "resetMinOnEnlarge", + "resetMinMaxOnUnsizedManualOpen", + "resetTiedZoomedMinOnEnlarge", + + "resetZoomMin", + "resetZoomMinAllowsDecrease", + "resetZoomMinUsesDesire", + + "resizeInHeader", + "resizeInCornerBorder", + "resizeInSideBorder", + "resizeInMoveGadget", + "resizeInZoomGadget", + + "showListenerInBorders", + "showListenerInHeader", + "showFocusInBorders", + "showFocusInHeader", + + "treatMoveLikeRelocate", + + "tryCenterNeighborhoodOnExchange", + + "tryCenterNeighborhoodOnOpen", + "tryEdgeNeighborhoodOnOpen", + + "trySlidingOnResize", + "tryCenterNeighborhoodOnResize", + "tryEdgeNeighborhoodOnResize", + + "tryRepopulateAgainAfterAutoProrate", + + "unzoomTiedListenerIfNecessary", + + "useCornerBorders", + + "useIconArea", + "useIcons", + "useRtlIcon", + + "userMenuInBody", + "userMenuInHeader", + "userMenuInSideBorder", + "userMenuInCornerBorder", + "userMenuInIcon", + "userMenuInMoveGadget", + "userMenuInZoomGadget", + + "zoomInHeader", + "zoomInCornerBorder", + "zoomInSideBorder", + "zoomInMoveGadget", + "zoomInZoomGadget", + + "zoomOnCreate" }; + + diff --git a/uservalsP.h b/uservalsP.h new file mode 100644 index 0000000..7748383 --- /dev/null +++ b/uservalsP.h @@ -0,0 +1,73 @@ +/* +static char sccs_id[] = "@(#)uservalsP.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +typedef enum +{ + Icon_None, + Icon_Top, Icon_Bottom, + Icon_Left, Icon_Right, + Icon_Middle +} Icon_Position; + + +typedef enum { + + ABS_MIN_WIDTH, + ABS_MIN_HEIGHT, + + RTL_LEFT_X, + RTL_TOP_Y, + + FULL_WIDTH, + FULL_HEIGHT, + + RTL_WIDTH, + RTL_HEIGHT, + + ICON_AREA_TOP, + ICON_AREA_BOTTOM, + ICON_AREA_LEFT, + ICON_AREA_RIGHT, + + BORDER_SIZE, + OUTER_BORDER_LINEWIDTH, + INNER_BORDER_LINEWIDTH, + + GADGET_WIDTH, + + GRAVITY, + + ICON_PLACEMENT, + SECONDARY_ICON_PLACEMENT, + + NEIGHBORHOOD_SHRINK_FACTOR, + + LENGTH_USER_GLOBAL_VALUES +} User_Global_Values; + diff --git a/uservalsS.h b/uservalsS.h new file mode 100644 index 0000000..b6f6a57 --- /dev/null +++ b/uservalsS.h @@ -0,0 +1,61 @@ +/* +static char sccs_id[] = "@(#)uservalsS.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +char *(user_global_value_strs[(int)LENGTH_USER_GLOBAL_VALUES]) = { + + "absMinWidth", + "absMinHeight", + + "rtlLeftX", + "rtlTopY", + + "fullWidth", + "fullHeight", + + "rtlWidth", + "rtlHeight", + + "iconAreaTop", + "iconAreaBottom", + "iconAreaLeft", + "iconAreaRight", + + "borderSize", + "outerBorderLinewidth", + "innerBorderLinewidth", + + "gadgetWidth", + + "gravity", + + "iconPlacement", + "secondaryIconPlacement", + + "neighborhoodShrinkFactor", + }; diff --git a/uwin.c b/uwin.c new file mode 100644 index 0000000..5a618f3 --- /dev/null +++ b/uwin.c @@ -0,0 +1,217 @@ +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" + +#include "uwinD.h" + +#include "region.h" + +bool user_defaults[(int)LENGTH_USER_WINDOW_OPTIONS]; + +/* ------------------------------------------------------------ */ + +void Userwin_Setup_Sizes( uwinp ) + Userwin *uwinp; +{ + if ( uwinp->zoomed ) + { + uwinp->zoom_min = Tilwin_Get_Min(uwinp->winp); + uwinp->zoom_size = Tilwin_Get_Desired(uwinp->winp); + } + else + { + uwinp->regular_min = Tilwin_Get_Min(uwinp->winp); + uwinp->regular_size = Tilwin_Get_Desired(uwinp->winp); + } +} + +/* ------------------------------------------------------------ */ + +void Userwin_Followup_Sizes( uwinp ) + Userwin *uwinp; +{ + if ( uwinp->zoomed ) + { + Tilwin_Set_Min( uwinp->winp, uwinp->zoom_min ); + Tilwin_Set_Desired( uwinp->winp, uwinp->zoom_size ); + } + else + { + Tilwin_Set_Min( uwinp->winp, uwinp->regular_min ); + Tilwin_Set_Desired( uwinp->winp, uwinp->regular_size ); + } +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void Userwin_Enforce_Client_Min( uwinp ) + Userwin *uwinp; +{ + Size max_size; + + if ( Userwin_Get_Window_Option( uwinp, + ENFORCE_CLIENT_MINIMUMS ) ) + { + Set_Max_Size( uwinp->regular_min, uwinp->regular_min, + uwinp->client_min ) + Set_Max_Size( uwinp->regular_size, uwinp->regular_size, + uwinp->client_min ) + Set_Max_Size( uwinp->zoom_min, uwinp->zoom_min, + uwinp->client_min ) + Set_Max_Size( uwinp->zoom_size, uwinp->zoom_size, + uwinp->client_min ) + Set_Max_Size( max_size, Tilwin_Get_Max( uwinp->winp ), + uwinp->client_min ) + Tilwin_Set_Max( uwinp->winp, max_size ); + } +} + +/* ------------------------------------------------------------ */ + +void Userwin_Enforce_Client_Max( uwinp ) + Userwin *uwinp; +{ + Size max_size; + + if ( Userwin_Get_Window_Option( uwinp, + ENFORCE_CLIENT_MAXIMUMS ) ) + { + Set_Min_Size( max_size, Tilwin_Get_Max( uwinp->winp ), + uwinp->client_max ) + Tilwin_Set_Max( uwinp->winp, max_size ); + Set_Min_Size( uwinp->regular_size, uwinp->regular_size, + uwinp->client_max ) + Set_Min_Size( uwinp->regular_min, uwinp->regular_min, + uwinp->client_max ) + Set_Min_Size( uwinp->zoom_size, uwinp->zoom_size, + uwinp->client_max ) + Set_Min_Size( uwinp->zoom_min, uwinp->zoom_min, + uwinp->client_max ) + } +} + +/* ------------------------------------------------------------ */ + +void Userwin_Enforce_Client_Sizes( uwinp ) + Userwin *uwinp; +{ + Userwin_Enforce_Client_Max( uwinp ); + Userwin_Enforce_Client_Min( uwinp ); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +static void Userwin_Client_Min_Max( uwinp ) + Userwin *uwinp; +{ + Size siz; + + uwinp->client_max = + Region_Adjust_Size( uwinp, uwinp->body_max ); + uwinp->client_min = + Region_Adjust_Size( uwinp, uwinp->body_min ); + + siz.width = UserGlobals_Get_Value( FULL_WIDTH ); + siz.height = UserGlobals_Get_Value( FULL_HEIGHT ); + Set_Min_Size( uwinp->client_max, + uwinp->client_max, siz ); + + siz.width = UserGlobals_Get_Value( ABS_MIN_WIDTH ); + siz.height = UserGlobals_Get_Value( ABS_MIN_HEIGHT ); + Set_Max_Size( uwinp->client_min, + uwinp->client_min, siz ); + + Set_Max_Size( uwinp->client_max, + uwinp->client_max, uwinp->client_min ); +} + +/* ------------------------------------------------------------ */ + +void Userwin_Body_Min( uwinp ) + Userwin *uwinp; +{ + Userwin_Client_Min_Max( uwinp ); + + Set_Max_Size( uwinp->client_max, + uwinp->client_max, uwinp->client_min ); +} + +/* ------------------------------------------------------------ */ + +void Userwin_Body_Max( uwinp ) + Userwin *uwinp; +{ + Userwin_Client_Min_Max( uwinp ); + + Set_Min_Size( uwinp->client_min, + uwinp->client_min, uwinp->client_max ); +} + +/* ------------------------------------------------------------ */ + +void Userwin_Body_Min_Max( uwinp ) + Userwin *uwinp; +{ + Userwin_Client_Min_Max( uwinp ); + + Set_Max_Size( uwinp->client_max, + uwinp->client_max, uwinp->client_min ); +} + +/* $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ */ + +void Userwin_Check_Sizes( uwinp ) + Userwin *uwinp; +{ + Size max_size; + + Set_Max_Size( max_size, uwinp->regular_min, uwinp->zoom_min ); + Set_Max_Size( max_size, max_size, Tilwin_Get_Max( uwinp->winp ) ); + Tilwin_Set_Max( uwinp->winp, max_size ); + + Set_Max_Size( uwinp->regular_size, uwinp->regular_size, + uwinp->regular_min ); + Set_Min_Size( uwinp->regular_size, uwinp->regular_size, + max_size ); + + Set_Max_Size( uwinp->zoom_min, uwinp->zoom_min, uwinp->regular_min ); + Set_Max_Size( uwinp->zoom_size, uwinp->zoom_size, uwinp->regular_size ); + + Set_Max_Size( uwinp->zoom_size, uwinp->zoom_size, uwinp->zoom_min ); + Set_Min_Size( uwinp->zoom_size, uwinp->zoom_size, max_size ); +} + +/* ------------------------------------------------------------ */ + +void Userwin_Bound_Size( uwinp ) + Userwin *uwinp; +{ + Size siz; + + siz = Tilwin_Get_Size( uwinp->winp ); + Set_Min_Size( siz, siz, Tilwin_Get_Max(uwinp->winp) ); + Set_Max_Size( siz, siz, Tilwin_Get_Min(uwinp->winp) ); + Tilwin_Set_Size( uwinp->winp, siz ); +} diff --git a/uwin.h b/uwin.h new file mode 100644 index 0000000..f74af20 --- /dev/null +++ b/uwin.h @@ -0,0 +1,11 @@ + +extern void Userwin_Setup_Sizes(); +extern void Userwin_Followup_Sizes(); +extern void Userwin_Enforce_Client_Min(); +extern void Userwin_Enforce_Client_Max(); +extern void Userwin_Enforce_Client_Sizes(); +extern void Userwin_Body_Min(); +extern void Userwin_Body_Max(); +extern void Userwin_Body_Min_Max(); +extern void Userwin_Check_Sizes(); +extern void Userwin_Bound_Size(); diff --git a/uwinD.h b/uwinD.h new file mode 100644 index 0000000..a1d51ce --- /dev/null +++ b/uwinD.h @@ -0,0 +1,234 @@ +/* +static char sccs_id[] = "@(#)uwinD.h 5.6 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#define USERWIN_DEFINE + +#ifndef USERWIN +#include "uwinP.h" +#endif + +#ifndef TILWIN_DEFINE +#include "twinD.h" +#endif + +#ifndef USERGLOBALS +#include "userglobD.h" +#endif + +#include "twin.h" + +/* ------------------------------------------------------------ */ + +#define GroupState -3 +#define NeverState -2 +#define NoState -1 +#define DontCareState 0 +#define NormalState 1 +#define ClientIconState 2 +#define IconicState 3 +#define InactiveState 4 +#define IgnoreState 5 + +#define Userwin_Allocate \ + ( allocate(Userwin,1) ) + +#define Userwin_Deallocate(uwinp) \ + free( uwinp ) + +#define Userwin_Get(winp) \ + ((Userwin *)(Tilwin_Get_Window_Id(winp))) + +#define Userwin_Get_Window_Option(uwinp,opt) \ + ( (uwinp)->options[(int)(opt)] ) + +#define Userwin_Set_Window_Option(uwinp,opt,val) \ + ((uwinp)->options[(int)(opt)]) = (val) + +#define Explicit_Window_Get(uwinp,opt) \ + ( (uwinp)->explicit[(int)(opt)] ) + +#define Explicit_Window_Set(uwinp,opt) \ + ((uwinp)->explicit[(int)(opt)]) = TRUE + +#define Explicit_Window_Clear(uwinp,opt) \ + ((uwinp)->explicit[(int)(opt)]) = FALSE + +/* ------------------------------------------------------------ */ + +extern Size abs_min_siz, abs_max_siz; + +#define Userwin_Check_Min(uwinp) \ + ( (! UserGlobals_Get_Option( RESET_MIN_ON_DECREASE ) ) ? \ + Tilwin_Get_Min( (uwinp)->winp ) : \ + Userwin_Get_Window_Option( (uwinp), ENFORCE_CLIENT_MINIMUMS ) ? \ + (uwinp)->client_min : abs_min_siz ) + +#define Userwin_Check_Max(uwinp) \ + ( (! UserGlobals_Get_Option( RESET_MAX_ON_INCREASE ) ) ? \ + Tilwin_Get_Max( (uwinp)->winp ) : \ + Userwin_Get_Window_Option( (uwinp), ENFORCE_CLIENT_MAXIMUMS ) ? \ + (uwinp)->client_max : abs_max_siz ) + +#define Userwin_Check_Center_Open(uwinp,pos) \ + Tilwin_Check_Corner_Open((uwinp)->winp,pos) + +#define Userwin_Check_Move(uwinp,posp,sizp) \ + Tilwin_Check_Center_Open((uwinp)->winp,posp,sizp) + +#define Userwin_Check_Corner_Open(uwinp,sposp,cposp,side) \ + Tilwin_Check_Corner_Open( (uwinp)->winp, sposp, cposp, side, \ + Userwin_Check_Min(uwinp), Userwin_Check_Max(uwinp) ) + +#define Userwin_Check_Edge_Resize(uwinp,posp,side) \ + Tilwin_Check_Resize((uwinp)->winp,posp,side, \ + Userwin_Check_Min(uwinp), Userwin_Check_Max(uwinp) ) + +#define Userwin_Check_Corner_Resize(uwinp,posp,side) \ + Tilwin_Check_Resize((uwinp)->winp,posp,side, \ + Userwin_Check_Min(uwinp), Userwin_Check_Max(uwinp) ) + +/* ------------------------------------------------------------ */ + +#define Userwin_Get_Center(uwinp) \ + Tilwin_Get_Center((uwinp)->winp) + +#define Userwin_Get_Size(uwinp) \ + Tilwin_Get_Size((uwinp)->winp) + +#define Userwin_Get_Rectangle(uwinp) \ + Tilwin_Get_Rectangle((uwinp)->winp) + +#define Userwin_Get_Previous_Rectangle(uwinp) \ + Tilwin_Get_Previous_Rectangle((uwinp)->winp) + +#define Userwin_Is_Open(uwinp) \ + Tilwin_Is_Open((uwinp)->winp) + +#define Userwin_Stayed_Still(uwinp) \ + ( (! Tilwin_Was_Just_Changed((uwinp)->winp)) || \ + (! Tilwin_Was_Actually_Modified((uwinp)->winp)) ) + +#define Userwin_Size_Changed(uwinp) \ + Tilwin_Size_Changed((uwinp)->winp) + +/* ------------------------------------------------------------ */ + +#define Userwin_Is_Iconic(uwinp) \ + Tilwin_Is_Open( (uwinp)->iconp ) + +#define Userwin_Check_Icon_Move(uwinp,posp,sizp) \ + Tilwin_Check_Center_Open((uwinp)->iconp,posp,sizp) + +#define Userwin_Get_Icon_Center(uwinp) \ + Tilwin_Get_Center((uwinp)->iconp) + +#define Userwin_Icon_Stayed_Still(uwinp) \ + ( (! Tilwin_Was_Just_Changed((uwinp)->iconp)) || \ + (! Tilwin_Was_Actually_Modified((uwinp)->iconp)) ) + +/* ------------------------------------------------------------ */ + +#define Userwin_Enable_Input(uwinp) \ + ((uwinp)->input_enabled) = TRUE + +#define Userwin_Disable_Input(uwinp) \ + ((uwinp)->input_enabled) = FALSE + +#define Userwin_Input_Enabled(uwinp) \ + ( ((uwinp) != UWIN_NULL) && ((uwinp)->input_enabled)) + +#define Userwin_Is_Zoomed(uwinp) \ + ( (uwinp)->zoomed ) + +#define Userwin_State(uwinp) \ + ( (uwinp)->client_state ) + +#define Userwin_Wm_State(uwinp) \ + ( (uwinp)->wm_state) + +#define Userwin_Startup_State(uwinp) \ + ( (uwinp)->startup_state) +#define Userwin_Group_Closed(uwinp) \ + ( (uwinp)->group_state != GroupState ) + +#define Userwin_Sized(uwinp) \ + ( (uwinp)->sized ) + +#define Userwin_Positioned(uwinp) \ + ( (uwinp)->positioned ) + +#define Userwin_Ever_Opened(uwinp) \ + ( (uwinp)->ever_opened ) + +#define Userwin_Laid_Out(uwinp) \ + ( (uwinp)->layout_found ) + +#define Userwin_Saving_State(uwinp) \ + ( (uwinp)->saving_state ) + +#define Userwin_Command_Effect(uwinp) \ + ( (uwinp)->soft_kill ) + +#define Userwin_Title(uwinp) \ + ( (uwinp)->title ) + +#define Userwin_Act_Created_Open(uwinp) \ + ( ( Userwin_Get_Window_Option( (uwinp), AUTO_OPEN_ON_CREATE ) ) || \ + ( UserGlobals_Get_Option(USE_ICONS) && \ + Userwin_Get_Window_Option( (uwinp), CLIENT_DRAWS_ICON ) ) ) + +#define Userwin_Creates_Draw_Iconic(uwinp) \ + ( (! Userwin_Get_Window_Option( (uwinp), AUTO_OPEN_ON_CREATE ) ) && \ + UserGlobals_Get_Option(USE_ICONS) && \ + Userwin_Get_Window_Option( (uwinp), CLIENT_DRAWS_ICON ) ) + +/* ------------------------------------------------------------ */ + +#define Userwin_Denies_Configure(uwinp) \ + ( ( ((uwinp)->messages) & (1L << 0) ) != 0 ) + +#define Userwin_Notes_Window_Moved(uwinp) \ + ( ( ((uwinp)->messages) & (1L << 1) ) != 0 ) + +#define Userwin_Bangs(uwinp) \ + ( ( ((uwinp)->messages) & (1L << 2) ) != 0 ) + +#define Userwin_Takes_Focus(uwinp) \ + ( ( (uwinp) != UWIN_NULL ) && \ + ( ( ((uwinp)->messages) & (1L << 3) ) != 0 ) ) + +#define Userwin_Deletes_Window(uwinp) \ + ( ( ((uwinp)->messages) & (1L << 4) ) != 0 ) + +#define Userwin_Notifies_Icon(uwinp) \ + ( ( ((uwinp)->messages) & (1L << 5) ) != 0 ) + +#define Userwin_Initially_Mapped(uwinp) \ + (uwinp)->initially_mapped + +#define Userwin_Initially_Icon_Mapped(uwinp) \ + (uwinp)->initially_icon_mapped diff --git a/uwinL.h b/uwinL.h new file mode 100644 index 0000000..662ff55 --- /dev/null +++ b/uwinL.h @@ -0,0 +1,153 @@ +/* +static char sccs_id[] = "@(#)uwinL.h 5.6 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#ifndef USERWIN_DEFINE +#include "uwinD.h" +#endif + +/* ------------------------------------------------------------ */ + +#define Userwin_Allows_Close(uwinp) \ + (! Tilwin_Get_Window_Option( (uwinp)->winp, REQUIRE_MANUAL_CLOSE ) ) + +#define Userwin_Dont_Close(uwinp) \ +{ \ + Tilwin_Set_Window_Option( (uwinp)->winp, REQUIRE_MANUAL_CLOSE, TRUE ); \ + Explicit_Window_Set( uwinp, EXPLICIT_REQUIRE_MANUAL_CLOSE ); \ + ( (uwinp)->regular_manual_close ) = TRUE; \ +} + +#define Userwin_Allow_Close(uwinp) \ +{ \ + Tilwin_Set_Window_Option( (uwinp)->winp, REQUIRE_MANUAL_CLOSE, FALSE ); \ + (uwinp)->regular_manual_close = FALSE; \ + Explicit_Window_Set( uwinp, EXPLICIT_REQUIRE_MANUAL_CLOSE ); \ +} + +/* ------------------------------------------------------------ */ + +#define Userwin_Allows_Change_Size(uwinp) \ + (! Tilwin_Get_Window_Option( (uwinp)->winp, FIXED_SIZE ) ) + +#define Userwin_Dont_Change_Size(uwinp) \ +{ \ + Tilwin_Set_Window_Option( (uwinp)->winp, FIXED_SIZE, TRUE ); \ + Explicit_Window_Set( uwinp, EXPLICIT_FIXED_SIZE ); \ +} + +#define Userwin_Allow_Change_Size(uwinp) \ +{ \ + Tilwin_Set_Window_Option( (uwinp)->winp, FIXED_SIZE, FALSE ); \ + Explicit_Window_Set( uwinp, EXPLICIT_FIXED_SIZE ); \ +} + +/* ------------------------------------------------------------ */ + +#define Userwin_Allows_Change_Width(uwinp) \ + (! Tilwin_Get_Window_Option( (uwinp)->winp, FIXED_WIDTH ) ) + +#define Userwin_Dont_Change_Width(uwinp) \ +{ \ + Tilwin_Set_Window_Option( (uwinp)->winp, FIXED_WIDTH, TRUE ); \ + Explicit_Window_Set( uwinp, EXPLICIT_FIXED_WIDTH ); \ +} + +#define Userwin_Allow_Change_Width(uwinp) \ +{ \ + Tilwin_Set_Window_Option( (uwinp)->winp, FIXED_WIDTH, FALSE ); \ + Explicit_Window_Set( uwinp, EXPLICIT_FIXED_WIDTH ); \ +} + +/* ------------------------------------------------------------ */ + +#define Userwin_Allows_Change_Height(uwinp) \ + (! Tilwin_Get_Window_Option( (uwinp)->winp, FIXED_HEIGHT ) ) + +#define Userwin_Dont_Change_Height(uwinp) \ + { \ + Tilwin_Set_Window_Option( (uwinp)->winp, FIXED_HEIGHT, TRUE ); \ + Explicit_Window_Set( uwinp, EXPLICIT_FIXED_HEIGHT ); \ +} + +#define Userwin_Allow_Change_Height(uwinp) \ +{ \ + Tilwin_Set_Window_Option( (uwinp)->winp, FIXED_HEIGHT, FALSE ); \ + Explicit_Window_Set( uwinp, EXPLICIT_FIXED_HEIGHT ); \ +} + +/* ------------------------------------------------------------ */ + +#define Userwin_Allows_Change(uwinp) \ + (! Tilwin_Get_Window_Option( (uwinp)->winp, FIXED_COMPLETELY ) ) + +#define Userwin_Dont_Change(uwinp) \ +{ \ + Tilwin_Set_Window_Option( (uwinp)->winp, FIXED_COMPLETELY, TRUE ); \ + Explicit_Window_Set( uwinp, EXPLICIT_FIXED_COMPLETELY ); \ +} + +#define Userwin_Allow_Change(uwinp) \ +{ \ + Tilwin_Set_Window_Option( (uwinp)->winp, FIXED_COMPLETELY, FALSE ); \ + Explicit_Window_Set( uwinp, EXPLICIT_FIXED_COMPLETELY ); \ +} + +/* ------------------------------------------------------------ */ + +#define Userwin_Tied_Listener(uwinp) \ + ( Userwin_Get_Window_Option( uwinp, LISTENER_TIED_TO_ZOOM ) ) + +#define Userwin_Dont_Tie_Listener(uwinp) \ +{ \ + Userwin_Set_Window_Option( uwinp, LISTENER_TIED_TO_ZOOM, FALSE ); \ + Explicit_Window_Set( uwinp, EXPLICIT_LISTENER_TIED_TO_ZOOM ); \ +} + +#define Userwin_Allow_Tie_Listener(uwinp) \ +{ \ + Userwin_Set_Window_Option( uwinp, LISTENER_TIED_TO_ZOOM, TRUE ); \ + Explicit_Window_Set( uwinp, EXPLICIT_LISTENER_TIED_TO_ZOOM ); \ +} + +/* ------------------------------------------------------------ */ + +#define Userwin_Tied_Desire(uwinp) \ + ( Userwin_Get_Window_Option( uwinp, ZOOM_TIED_TO_DESIRE ) ) + +#define Userwin_Dont_Tie_Desire(uwinp) \ +{ \ + Userwin_Set_Window_Option( uwinp, ZOOM_TIED_TO_DESIRE, FALSE ); \ + Explicit_Window_Set( uwinp, EXPLICIT_ZOOM_TIED_TO_DESIRE ); \ +} + +#define Userwin_Allow_Tie_Desire(uwinp) \ +{ \ + Userwin_Set_Window_Option( uwinp, ZOOM_TIED_TO_DESIRE, TRUE ); \ + Explicit_Window_Set( uwinp, EXPLICIT_ZOOM_TIED_TO_DESIRE ); \ +} + +/* ------------------------------------------------------------ */ diff --git a/uwinP.h b/uwinP.h new file mode 100644 index 0000000..75c9e3e --- /dev/null +++ b/uwinP.h @@ -0,0 +1,138 @@ +/* +static char sccs_id[] = "@(#)uwinP.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#define USERWIN + +#ifndef BASETYPE +#include "basetype.h" +#endif + +#ifndef REGION +#include "regionP.h" +#endif + +#ifndef TILWIN_DEFINE +#include "twinD.h" +#endif + +#include "uwinoptP.h" +#include "explwoptsP.h" + +#include "platformP.h" + +typedef struct str_userwin Userwin; + +#define UWIN_NULL (Userwin *)NULL + +struct str_userwin { + + Tilwinp winp; /* The body window */ + Tilwinp iconp; /* The icon window if not separate */ + + Region_Enum current_type; /* body, icon, or rtl */ + + int winnum; + pointer data; + + char *hostname; + char *res_class; + char *res_name; + char *wmname; + char *iconname; + char *command; + char *identity; + char *title; + + bool options[(int)LENGTH_USER_WINDOW_OPTIONS]; + bool explicit[(int)LENGTH_EXPLICIT_WINDOW_OPTIONS]; + + bool prepared; /* Has window been prepared */ + bool layout; /* Has attempt been made to lay it out? */ + bool layout_found; /* Has window been laid out? */ + bool positioned; /* Does window have a position */ + bool ever_opened; /* Has window ever been opened */ + bool sized; /* Does window have a size */ + bool listener; /* is window the listener */ + bool regular_manual_close; + /* whether manual close is req when not listener */ + bool icon_positioned; /* Does icon have a position */ + + bool focus; /* is window the focus */ + int client_state; /* window state set by client */ + int wm_state; /* window state set by wm */ + int startup_state; /* window state at startup */ + int group_state; /* old state when group iconized */ + + TimeStamp open_stamp; /* TimeStamp when the window was last opened */ + TimeStamp zoom_stamp; /* TimeStamp when the window was last zoomed */ + bool zoomed; /* is window currently zoomed */ + TWRectangle rezoom_rect; /* Holds the rectangles before (un)zoom */ + Size regular_min; /* Holds the min for when window is not zoomed */ + Size regular_size; /* Holds the size for when window is not zoomed */ + Size zoom_min; /* Holds the min for when window is zoomed */ + Size zoom_size; /* Holds the size for when window is zoomed */ + + bool prev_positioned; + bool prev_sized; + bool prev_zoomed; + int prev_group_state; + TWRectangle prev_rezoom_rect; + Size prev_min; + Size prev_max; + Size prev_desire; + TimeStamp undo_stamp; + + Size body_min; /* Holds the min set by the client */ + Size body_max; /* Holds the max set by the client */ + + Size client_min; /* Holds the adjusted min set by the client */ + Size client_max; /* Holds the adjusted max set by the client */ + + int header_height; + + bool input_enabled; /* can the window accept input */ + bool output_sent; /* Has output been sent since window was closed */ + bool saving_state; /* Client is saving state */ + bool soft_kill; /* soft kill was requested */ + + int connection; /* connection id */ + Userwin *group; /* group this window is part of */ + long messages; /* messages this client accepts */ + + TWRectangle icon_res_rect; /* Place for res in icon */ + TWRectangle icon_host_rect; /* Place for host in icon */ + TWRectangle icon_name_rect; /* Place for wm in icon */ + TWRectangle icon_body_rect; /* Place for body in icon */ + + bool initially_mapped; /* window initially mapped */ + bool initially_icon_mapped; /* window's client icon initially + mapped */ + + platform_fields /* platform-specific fields */ + +}; + diff --git a/uwinXD.h b/uwinXD.h new file mode 100644 index 0000000..42d6200 --- /dev/null +++ b/uwinXD.h @@ -0,0 +1,48 @@ +/* +static char sccs_id[] = "@(#)uwinXD.h 5.6 9/1/88 Siemens Corporate Research and Support, Inc."; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#ifndef USERWIN +#include "uwinP.h" +#endif + +#define Userwin_XParentWin(uwinp) uwinp->xframe.parent +#define Userwin_XTopBorder(uwinp) uwinp->xframe.top_border +#define Userwin_XLeftBorder(uwinp) uwinp->xframe.left_border +#define Userwin_XRightBorder(uwinp) uwinp->xframe.right_border +#define Userwin_XBottomBorder(uwinp) uwinp->xframe.bottom_border +#define Userwin_XTopLeftCorner(uwinp) (uwinp)->xframe.top_left +#define Userwin_XTopRightCorner(uwinp) (uwinp)->xframe.top_right +#define Userwin_XBottomLeftCorner(uwinp) (uwinp)->xframe.bottom_left +#define Userwin_XBottomRightCorner(uwinp) (uwinp)->xframe.bottom_right +#define Userwin_XHeader(uwinp) (uwinp)->xframe.header +#define Userwin_XZoomGadget(uwinp) (uwinp)->xframe.zoom_gadget +#define Userwin_XMoveGadget(uwinp) (uwinp)->xframe.move_gadget +#define Userwin_XClient(uwinp) (uwinp)->xframe.client +#define Userwin_XIcon(uwinp) (uwinp)->xframe.icon +#define Userwin_XClient_Icon(uwinp) (uwinp)->xframe.client_icon +#define Userwin_XTransient_For(uwinp) (uwinp)->xframe.transient_for +#define Userwin_Border_Width(uwinp) (uwinp)->border_width diff --git a/uwinoptP.h b/uwinoptP.h new file mode 100644 index 0000000..325c740 --- /dev/null +++ b/uwinoptP.h @@ -0,0 +1,122 @@ +/* +static char sccs_id[] = "@(#)uwinoptP.h 5.5 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +typedef enum { + + ACCEPT_BUTTON_IN_BODY, + ACCEPT_BUTTON_IN_HEADER, + ACCEPT_BUTTON_IN_ICON, + + ACCEPT_KEY_IN_BODY, + ACCEPT_KEY_IN_HEADER, + ACCEPT_KEY_IN_GADGET, + ACCEPT_KEY_IN_BORDER, + ACCEPT_KEY_IN_ICON, + + AGGRESSIVELY_REPOPULATE, + + ALLOW_SHRINK_ON_UNZOOM, + ALLOW_SHRINK_ON_AUTO_UNZOOM, + + ALLOW_ZOOM_CLOSE, + + AUTO_OPEN_ON_CREATE, + AUTO_OPEN_ON_WRITE, + + AUTO_PLACE_ON_CLIENT_OPEN, + + AUTO_RESATISFY_ON_RESET_MINMAX, + + CLIENT_DRAWS_ICON, + CLIENT_PROVIDES_HEADER, + + CONSIDER_FOR_REPOPULATION, + + ENFORCE_CLIENT_MINIMUMS, + ENFORCE_CLIENT_MAXIMUMS, + + LISTENER_TIED_TO_ZOOM, + + FORCE_SHRINK_ON_UNZOOM, + FORCE_SHRINK_ON_AUTO_UNZOOM, + + GLASS_CLIENT, + + ICON_DRAWN_BY_CLIENT, + + IGNORE_INITIAL_POSITION_HINTS, + IGNORE_INITIAL_SIZE_HINTS, + IGNORE_POSITION_HINTS, + IGNORE_SIZE_HINTS, + + INCLUDE_RES_CLASS_IN_TITLE, + INCLUDE_RES_CLASS_IN_ICON_TITLE, + INCLUDE_RES_NAME_IN_TITLE, + INCLUDE_RES_NAME_IN_ICON_TITLE, + INCLUDE_NAME_IN_TITLE, + INCLUDE_NAME_IN_ICON_TITLE, + INCLUDE_HOST_IN_TITLE, + INCLUDE_HOST_IN_ICON_TITLE, + + INCLUDE_TITLE_IN_HEADER, + INCLUDE_TITLE_IN_PIXMAP_ICON, + INCLUDE_TITLE_IN_CLIENT_ICON, + + INVERT_ICON_WHEN_PENDING, + + NOTE_LISTENER, + NOTE_LISTENER_INPUT, + NOTE_CLOSED_INPUT, + NOTE_OPEN_INPUT, + NOTE_CLOSED_OUTPUT, + NOTE_OPEN_OUTPUT, + + PREFER_PREVIOUS_ICON_POSITION, + PREFER_PREV_POS, + REQUIRE_PREVIOUS_ICON_POSITION, + REQUIRE_PREV_POS, + + SAVE_IN_LAYOUT, + + SHOW_ICON, + + USE_BORDERS, + USE_GADGETS, + USE_HEADER, + USE_MOVE_GADGET, + + ZOOM_FULL_EXPLICIT, + ZOOM_FULL_HEIGHT, + ZOOM_FULL_WIDTH, + + ZOOM_ON_OPEN, + + ZOOM_TIED_TO_DESIRE, + + LENGTH_USER_WINDOW_OPTIONS + } User_Window_Options; diff --git a/uwinoptS.h b/uwinoptS.h new file mode 100644 index 0000000..cbe3cab --- /dev/null +++ b/uwinoptS.h @@ -0,0 +1,122 @@ +/* +static char sccs_id[] = "@(#)uwinoptS.h 5.6 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + + +char *(user_window_strs[(int)LENGTH_USER_WINDOW_OPTIONS]) = { + + "acceptButtonInBody", + "acceptButtonInHeader", + "acceptButtonInIcon", + + "acceptKeyInBody", + "acceptKeyInHeader", + "acceptKeyInGadget", + "acceptKeyInBorder", + "acceptKeyInIcon", + + "aggressivelyRepopulate", + + "allowShrinkOnUnzoom", + "allowShrinkOnAutoUnzoom", + + "allowZoomClose", + + "autoOpenOnCreate", + "autoOpenOnWrite", + + "autoPlaceOnClientOpen", + + "autoResatisfyOnResetMinmax", + + "clientDrawsIcon", + "clientProvidesHeader", + + "considerForRepopulation", + + "enforceClientMinimums", + "enforceClientMaximums", + + "listenerTiedToZoom", + + "forceShrinkOnUnzoom", + "forceShrinkOnAutoUnzoom", + + "glassClient", + + "iconDrawnByClient", + + "ignoreInitialPositionHints", + "ignoreInitialSizeHints", + "ignorePositionHints", + "ignoreSizeHints", + + "includeResClassInTitle", + "includeResClassInIconTitle", + "includeResNameInTitle", + "includeResNameInIconTitle", + "includeNameInTitle", + "includeNameInIconTitle", + "includeHostInTitle", + "includeHostInIconTitle", + + "includeTitleInHeader", + "includeTitleInPixmapIcon", + "includeTitleInClientIcon", + + "invertIconWhenPending", + + "noteListener", + "noteListenerInput", + "noteClosedInput", + "noteOpenInput", + "noteClosedOutput", + "noteOpenOutput", + + "preferPreviousIconPosition", + "preferPreviousPosition", + "requirePreviousIconPosition", + "requirePreviousPosition", + + "saveInLayout", + + "showIcon", + + "useBorders", + "useGadgets", + "useHeader", + "useMoveGadget", + + "zoomFullExplicit", + "zoomFullHeight", + "zoomFullWidth", + + "zoomOnOpen", + + "zoomTiedToDesire" }; + + diff --git a/uwinstrP.h b/uwinstrP.h new file mode 100644 index 0000000..df16d38 --- /dev/null +++ b/uwinstrP.h @@ -0,0 +1,35 @@ +/* +static char sccs_id[] = "@(#)uwinstrP.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +typedef enum { + + ICON_PIXMAP_FILE, + + LENGTH_USER_WINDOW_STRINGS +} User_Window_Strings; + diff --git a/uwinstrS.h b/uwinstrS.h new file mode 100644 index 0000000..0708ca5 --- /dev/null +++ b/uwinstrS.h @@ -0,0 +1,31 @@ +/* +static char sccs_id[] = "@(#)uwinstrS.h 5.5 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +char *(user_window_string_strs[(int)LENGTH_USER_WINDOW_STRINGS]) = { + + "iconPixmapFile" }; + diff --git a/uwinvalP.h b/uwinvalP.h new file mode 100644 index 0000000..f14f160 --- /dev/null +++ b/uwinvalP.h @@ -0,0 +1,76 @@ +/* +static char sccs_id[] = "@(#)uwinvalP.h 5.4 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +typedef enum { + + HEADER_HEIGHT, + + ICON_WIDTH, + ICON_HEIGHT, + + ICON_BODY_TOP, + ICON_BODY_BOTTOM, + ICON_BODY_LEFT, + ICON_BODY_RIGHT, + + ICON_RES_TOP, + ICON_RES_BOTTOM, + ICON_RES_LEFT, + ICON_RES_RIGHT, + + ICON_HOST_TOP, + ICON_HOST_BOTTOM, + ICON_HOST_LEFT, + ICON_HOST_RIGHT, + + ICON_NAME_TOP, + ICON_NAME_BOTTOM, + ICON_NAME_LEFT, + ICON_NAME_RIGHT, + + CLIENT_MIN_WIDTH, + CLIENT_MIN_HEIGHT, + CLIENT_MAX_WIDTH, + CLIENT_MAX_HEIGHT, + + NORMAL_DESIRED_WIDTH, + NORMAL_DESIRED_HEIGHT, + ZOOM_DESIRED_WIDTH, + ZOOM_DESIRED_HEIGHT, + + USER_NORMAL_MIN_WIDTH, + USER_NORMAL_MIN_HEIGHT, + USER_ZOOM_MIN_WIDTH, + USER_ZOOM_MIN_HEIGHT, + + USER_MAX_WIDTH, + USER_MAX_HEIGHT, + + LENGTH_USER_WINDOW_VALUES +} User_Window_Values; + diff --git a/uwinvalS.h b/uwinvalS.h new file mode 100644 index 0000000..f17a2a6 --- /dev/null +++ b/uwinvalS.h @@ -0,0 +1,72 @@ +/* +static char sccs_id[] = "@(#)uwinvalS.h 5.5 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +char *(user_window_value_strs[(int)LENGTH_USER_WINDOW_VALUES]) = { + + "headerHeight", + + "iconWidth", + "iconHeight", + + "iconBodyTop", + "iconBodyBottom", + "iconBodyLeft", + "iconBodyRight", + + "iconResTop", + "iconResBottom", + "iconResLeft", + "iconResRight", + + "iconHostTop", + "iconHostBottom", + "iconHostLeft", + "iconHostRight", + + "iconNameTop", + "iconNameBottom", + "iconNameLeft", + "iconNameRight", + + "clientMinWidth", + "clientMinHeight", + "clientMaxWidth", + "clientMaxHeight", + + "normalDesiredWidth", + "normalDesiredHeight", + "zoomDesiredWidth", + "zoomDesiredHeight", + + "userNormalMinWidth", + "userNormalMinHeight", + "userZoomMinWidth", + "userZoomMinHeight", + + "userMaxWidth", + "userMaxHeight" }; + diff --git a/win.c b/win.c new file mode 100644 index 0000000..67fe2dc --- /dev/null +++ b/win.c @@ -0,0 +1,187 @@ +#ifndef lint +static char sccs_id[] = "@(#)win.c 5.3 9/1/88"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include "basetype.h" +#include "twinD.h" +#include "tile.h" +#include "tileD.h" +#include "state.h" +#include "gravity.h" + +void +Win_Open(winp, rect) + Tilwin *winp; + TWRectangle rect; +{ + TWPoint location; + Size size; + + Gravity_Insert_Edge(Get_LeftX(rect), Left); + Gravity_Insert_Edge(Get_RightX(rect), Right); + Gravity_Insert_Edge(Get_TopY(rect), Top); + Gravity_Insert_Edge(Get_BottomY(rect), Bottom); + + Tilwin_Get_Rectangle(winp) = rect; + COMPUTE_CENTER(rect, location); + Tilwin_Get_Center(winp) = location; + COMPUTE_SIZE(rect, size); + Tilwin_Get_Size(winp) = size; + + Tilwin_Get_Tile(winp) = Tile_Create(Get_LeftX(rect), + Get_TopY(rect), Get_RightX(rect), Get_BottomY(rect)); + Tile_Set_Win((Tile *) Tilwin_Get_Tile(winp), (pointer) winp); + +} + +void +Win_Shrink(winp, side, coord) + Tilwin *winp; + Side side; + Basetype coord; +{ + TWPoint location; + Size size; + + switch (side) { + case Top: + Gravity_Delete_Edge(Get_TopY(Tilwin_Get_Rectangle(winp)), Top); + Get_TopY(Tilwin_Get_Rectangle(winp)) = coord; + break; + case Bottom: + Gravity_Delete_Edge(Get_BottomY(Tilwin_Get_Rectangle(winp)), Bottom); + Get_BottomY(Tilwin_Get_Rectangle(winp)) = coord; + break; + case Left: + Gravity_Delete_Edge(Get_LeftX(Tilwin_Get_Rectangle(winp)), Left); + Get_LeftX(Tilwin_Get_Rectangle(winp)) = coord; + break; + case Right: + Gravity_Delete_Edge(Get_RightX(Tilwin_Get_Rectangle(winp)), Right); + Get_RightX(Tilwin_Get_Rectangle(winp)) = coord; + break; + } + + Gravity_Insert_Edge(coord, side); + + COMPUTE_CENTER(Tilwin_Get_Rectangle(winp), location); + Tilwin_Get_Center(winp) = location; + COMPUTE_SIZE(Tilwin_Get_Rectangle(winp), size); + Tilwin_Get_Size(winp) = size; + + Tile_Shrink(Tilwin_Get_Tile(winp), side, coord); + +} + +void +Win_Enlarge(winp, side, coord) + Tilwin *winp; + Side side; + Basetype coord; +{ + TWPoint location; + Size size; + + switch (side) { + case Top: + Gravity_Delete_Edge(Get_TopY(Tilwin_Get_Rectangle(winp)), Top); + Get_TopY(Tilwin_Get_Rectangle(winp)) = coord; + break; + case Bottom: + Gravity_Delete_Edge(Get_BottomY(Tilwin_Get_Rectangle(winp)), Bottom); + Get_BottomY(Tilwin_Get_Rectangle(winp)) = coord; + break; + case Left: + Gravity_Delete_Edge(Get_LeftX(Tilwin_Get_Rectangle(winp)), Left); + Get_LeftX(Tilwin_Get_Rectangle(winp)) = coord; + break; + case Right: + Gravity_Delete_Edge(Get_RightX(Tilwin_Get_Rectangle(winp)), Right); + Get_RightX(Tilwin_Get_Rectangle(winp)) = coord; + break; + } + + Gravity_Insert_Edge(coord, side); + + COMPUTE_CENTER(Tilwin_Get_Rectangle(winp), location); + Tilwin_Get_Center(winp) = location; + COMPUTE_SIZE(Tilwin_Get_Rectangle(winp), size); + Tilwin_Get_Size(winp) = size; + + Tile_Enlarge(Tilwin_Get_Tile(winp), side, coord); + +} + +void +Win_Close(winp) + Tilwin *winp; +{ + TWRectangle rect; + + rect = Tilwin_Get_Rectangle(winp); + + Gravity_Delete_Edge(Get_LeftX(rect), Left); + Gravity_Delete_Edge(Get_RightX(rect), Right); + Gravity_Delete_Edge(Get_TopY(rect), Top); + Gravity_Delete_Edge(Get_BottomY(rect), Bottom); + + Tile_Delete(Tilwin_Get_Tile(winp)); + Tilwin_Get_Tile(winp) = (Tilep) NULL; +} + +/* Add the window associated with the Solid 'tilep' + * to the Potentially Modified List + */ +void +Win_Add_List(tilep) + Tilep tilep; +{ + if (Tile_Get_Type((Tile *)tilep) == Solid) + State_Insert_Potentially_Modfd((Tilwin *)Tile_Get_Win((Tile *)tilep)); +} + +void +Win_Add_Modified(tilep) + Tilep tilep; +{ + if (Tile_Get_Type((Tile *)tilep) == Solid) + State_Insert_Just_Modified((Tilwin *)Tile_Get_Win((Tile *)tilep)); +} + +/* called by Tilwin_Is_Covered. If a space tile is handed to Win_Is_Covered, + * it sets the global flag no_space_tile_in_area to FALSE. + */ + +extern bool no_space_tile_in_area; + +void +Win_Is_Covered(tilep) + Tilep tilep; +{ + if (Tile_Get_Type((Tile *)tilep) == Space) + no_space_tile_in_area = FALSE; +} diff --git a/win.h b/win.h new file mode 100644 index 0000000..f2f548c --- /dev/null +++ b/win.h @@ -0,0 +1,37 @@ +/* +static char sccs_id[] = "@(#)win.h 5.6 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + + +extern void Win_Open(); +extern void Win_Close(); + +extern void Win_Shrink(); +extern void Win_Enlarge(); +extern void Win_Close(); +extern void Win_Add_List(); +extern void Win_Add_Modified(); +extern void Win_Is_Covered(); diff --git a/wsys.c b/wsys.c new file mode 100644 index 0000000..29e7ca6 --- /dev/null +++ b/wsys.c @@ -0,0 +1,293 @@ +#ifndef lint +static char sccs_id[] = "%W% %H%"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +/* This module is the window creation and mapping interface + * of Rtl to X-windows. + */ +#include "uwinD.h" +#include "uwinXD.h" +#include "manage.h" +#include "interf.h" + +#include +#include +#include + +#include "assoc.h" +#include "xio.h" +#include "control.h" + +#define NoState -1 +#define ClientIconState 2 +#define IgnoreState 5 + +#define CLIENT_SELECT /* def'd if you want StructNotify + * on Client Windows! + * (eliminates spurious events) */ + +#ifdef CLIENT_SELECT +#define notify StructureNotifyMask | +#define subnotify SubstructureNotifyMask | +#endif + +#ifndef CLIENT_SELECT +#define notify +#define subnotify +#endif + +/* ------------------------------------------------------------ */ + +int Wsys_Initial_Geometry( uwinp, x, y, width, height) + Userwin *uwinp; + int x, y, width, height; +{ + TWPoint pt; + Size size; + + pt.x = x; + pt.y = y; + size.width = width; + size.height = height; + + Manage_Initial_Geometry(uwinp, pt, size); +} + +/* ------------------------------------------------------------ */ + +/* Map a Decorated Client window, upon a MapRequest + * from the X-server. */ + +int Wsys_Map( uwinp ) + Userwin *uwinp; +{ + Interf_Client_Open(uwinp); +} + +/* ------------------------------------------------------------ */ + +/* Prepare a window to be opened + */ + +Userwin *Wsys_Prepare(client) + Window client; +{ + Userwin *uwinp; + XWindowChanges wc; + + uwinp = Manage_Create_Window(); /* create Rtl Tiled Win */ + Userwin_XClient(uwinp) = client; + Userwin_XClient_Icon(uwinp) = (Window) NULL; + Userwin_Border_Width(uwinp) = 0; + + Assoc_Put((char *) uwinp, client); + + uwinp->iconpix = None; + Property_Get_Window_Class(uwinp); + Property_Get_Title(uwinp); + Property_Get_Command_Line(uwinp); + Property_Get_Hostname(uwinp); + Property_Get_Icon_Title(uwinp); + Property_Get_Normal_Size_Hints(uwinp); + Property_Get_Wm_Hints(uwinp); + Property_Get_Wm_State(uwinp); + Property_Get_Dialogue_Parent(uwinp); + + if (Userwin_XTransient_For(uwinp) == None) + { + Assoc_AddDecorations(uwinp); + + wc.border_width = 0; /* Remove Client's border */ + XConfigureWindow(dpy, client, CWBorderWidth, &wc); + + XSelectInput(dpy, Userwin_XParentWin(uwinp), /* Parent event mask */ + subnotify + SubstructureRedirectMask | + FocusChangeMask | LeaveWindowMask | ExposureMask); + + XSelectInput(dpy, client, /* mask for Client events */ + notify + EnterWindowMask | PropertyChangeMask); + + Interf_Enable_Input(uwinp); + Control_Grab_Input(Userwin_XParentWin(uwinp)); + } + + return(uwinp); +} + +/* ------------------------------------------------------------ */ + +/* Create a Decorated client-window upon a CreateNotify + * from the X-server. */ + +int Wsys_Create( client, attrs) + Window client; + XWindowAttributes attrs; +{ + Userwin *uwinp; + + uwinp = Wsys_Prepare(client); + + if(Userwin_XTransient_For(uwinp) == None) + { + Userwin_Border_Width(uwinp) = attrs.border_width; + Wsys_Initial_Geometry( uwinp, attrs.x, attrs.y, + attrs.width, attrs.height ); + Property_Get_Geometry_Hints(uwinp); + } +} + +/* ------------------------------------------------------------ */ + +/* Create a Decorated client-window or client Icon, + * upon startup of Rtl under the X-server. */ + +int Wsys_Open( client, attrs ) + Window client; + XWindowAttributes attrs; +{ + Userwin *uwinp; + + uwinp = Wsys_Prepare(client); + + if(Userwin_XTransient_For(uwinp) == None) + { + Userwin_Border_Width(uwinp) = attrs.border_width; + + Userwin_Initially_Mapped(uwinp) = (attrs.map_state != IsUnmapped); + if (Userwin_XClient_Icon(uwinp) != (Window) NULL) + { + XWindowAttributes icon_attrs; + + XGetWindowAttributes(dpy, + Userwin_XClient_Icon(uwinp), + &icon_attrs); + + Userwin_Initially_Icon_Mapped(uwinp) = + (icon_attrs.map_state != IsUnmapped); + } + else + Userwin_Initially_Icon_Mapped(uwinp) = FALSE; + + Manage_Determine_Startup_State(uwinp); + + Wsys_Initial_Geometry(uwinp, attrs.x, attrs.y, + attrs.width, attrs.height); + + + if (Userwin_Startup_State(uwinp) != IgnoreState) + Manage_Startup_Open(uwinp); + else + Manage_Eliminate_Window(uwinp); + } +} + +/* ------------------------------------------------------------ */ + +static void +Wsys_Get_Startup_Parameters(w, icon, state) + Window w; + Window *icon; + int *state; +{ + XWMHints *ph; + + *state = NoState; + *icon = (Window) NULL; + + if ((ph = XGetWMHints(dpy, w)) != (XWMHints *) NULL ) + { + if (ph->flags & IconWindowHint) + { + *icon = ph->icon_window; + } + if (ph->flags & StateHint) + { + *state = ph->initial_state; + } + XFree( (char *) ph ); + } +} + +/* ------------------------------------------------------------ */ + + /* If any X-clients already exist, put them in Tiled Desktop */ + +void Wsys_Startup() +{ + Window parent; + Window *children; + Window icon; + Window w; + XWindowAttributes attrs; + unsigned int nchildren; + int state; + int ix; + + Assoc_Xid_InitTable(); + + if (XQueryTree(dpy, root, &root, &parent, &children, &nchildren)) + { + for (ix=0; ix < nchildren; ix++) + { + w = children[ix]; + Wsys_Get_Startup_Parameters(w, &icon, &state); + /* put icon in assoc table with window as data */ + if (icon != (Window) NULL) + Assoc_Xid_Put((XID)w, (XID) icon); + } + + for (ix=0; ix < nchildren; ix++) + { + w = children[ix]; + + XGetWindowAttributes(dpy, w, &attrs); + + if (attrs.override_redirect == False) + { + if (Assoc_Xid_Get((XID) w) == (XID) NULL) + Wsys_Open(w, attrs); + else + { + Assoc_Xid_Remove((XID) w); + XUnmapWindow(dpy, w); + } + } + } + Draw_Set_Background(); + + Interf_Client_Startup(); + } + + XFree(children); + XFlush(dpy); +} + + + + diff --git a/xerror.c b/xerror.c new file mode 100644 index 0000000..c2f32a9 --- /dev/null +++ b/xerror.c @@ -0,0 +1,67 @@ +#ifndef lint +static char sccs_id[] = "%W% %H%"; +#endif + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ +#include "copyright.h" + +#include +#include + +int errorStatus = False; +int xerror_forceCoreDump = False; + + +/* Handler for error events from Xlib procedures. + * Borrowed from clients/wm/errHndlr.c... + */ +int +Error_Handler(dpy, error) + Display *dpy; + XErrorEvent *error; +{ + char buffer[BUFSIZ]; + + + XGetErrorText(dpy, error->error_code, buffer, BUFSIZ); + + (void) fprintf(stderr, "RTL: X Error <%s>\n", buffer); + (void) fprintf(stderr, " Request Major code: %d\n", error->request_code); + (void) fprintf(stderr, " Request Minor code: %d\n", error->minor_code); + (void) fprintf(stderr, " ResourceId: %d\n", error->resourceid); + (void) fprintf(stderr, " Error Serial #%d\n", error->serial); + //(void) fprintf(stderr, " Current Serial #%d\n", dpy->request); + + errorStatus = True; + + if (xerror_forceCoreDump) { + int *foo = (int*) 0; + + fprintf (stderr, "Forcing core dump.\n"); + + *foo = 50; + } + + return 0; +} diff --git a/xio.h b/xio.h new file mode 100644 index 0000000..3e198f9 --- /dev/null +++ b/xio.h @@ -0,0 +1,42 @@ +/* +static char sccs_id[] = "@(#)xio.h 5.6 9/1/88"; +*/ + +/* + * Copyright 1988 by Siemens Research and Technology Laboratories, Princeton, NJ + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Siemens Research and Technology + * Laboratories not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior permission. + * + * + * SIEMENS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * SIEMENS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +/* defined in "input.c" + */ + +#ifndef STD_DEFS +#include "std_defs.h" +#endif + +extern Window root; +extern Display *dpy; +extern int scrn; +extern pointer stackp; +extern Window transient_plane; + + +