walther@econ.vu.nl (Walther Schoonenberg/10000) (01/14/91)
I want to write a kind of spreadsheet program for my Archie (not exactly a spreadsheet appliaction but a spreadsheet window is *included* in this appl) in ANSI C. I'm wondering what is the best way to program a lot of spreadsheet cells in a window. First I thought a lot about writable icons but I think it is not good programming to include hundreds of writable icons in a window. It would make the program very slow (and it's a bit anti-social). The best solution I 'invented' is this: draw a grid in a window and let the user select a cell. Make there a writable icon which will be deleted if the user selects a different cell where a new writable icon is created, etc. The only minor drawback of this is that you have to draw all other cell contents with MOVE en PRINT equivalents. Is the best way to do this? Do you know a better solution? If so, please email me. ============================================================================== Walther Schoonenberg Vakgroep Econometrie Faculteit der Econonomische Wetenschappen en Econometrie * * * * * Vrije Universiteit * * * * De Boelelaan 1105 * * * * * 1081 HV Amsterdam * * * * The Netherlands * * * * * (020) 5483609 walther@econ.vu.nl ============================================================================== Disclaimer : The views expressed above are those of the author alone and may not represent the views of the University. ==============================================================================
x51@nikhefh.nikhef.nl (Excursiecommissie) (01/16/91)
In article <734@.econ.vu.nl> you write: > > I want to write a kind of spreadsheet program for my Archie (not exactly a >spreadsheet appliaction but a spreadsheet window is *included* in this appl) >in ANSI C. I'm wondering what is the best way to program a lot of spreadsheet >cells in a window. First I thought a lot about writable icons but I think >it is not good programming to include hundreds of writable icons in a >window. It would make the program very slow (and it's a bit anti-social). The approach used in most spreadsheet programs (i.e. Excel, Works) is to use a separate input 'window', the input bar, on top of the screen, just below the menu-bar. This could ofcourse be moved above the icon bar on the Archimedes. In this way you have only one writeable icon, and you only have to update the cells' contents with a move and print(f) command. What's wrong with the move and print option, surely it's one of the fastest ways of doing it? Oh, and another thing: If at all possible, make the width of the cells variable with the mouse, (Also the standard Mac way), instead of typing in character- widths, (the standard dos way). Axel
maumg@warwick.ac.uk (Pop Mobility Freak) (01/18/91)
Here is a little a application I wrote after being feed up of how long it took applications to read in the names of all the fonts I have upon start up. What the application does is to intercept any calls to the SWI Font_ListFonts (this is done intercepting the SWI decoding and checking for this SWI. I know this is unpleasant but I cannot find any other ways to do it as there does not seem to be a Font Manager Vector to intercept (unlike most the other modules, Draw, ColourTrans, etc), is there one Acorn which is undocumented, or any other way to it for that matter?) and instead of reading the fontlist from disc it is read from a prepared list in memory. How it works in is the UUEncoded file below there is a basic program and some documentation. You have to set the system variable Font$Path and then run the basic program. This will generate a module in the current directory called TurbFntLst. To improve the speed of the font list reading simply load the module. Then whenever a list of fonts is tried to be read the path is checked and if it the one the module "knows" about then the list is returned from memory otherwise the call is passed onto the font manager for processing. Yours, Pop Mobility Freak __________________________________CUT HERE______________________________\O CUT HERE /O Filetype: &DDC table !"#$%&'()*+,-./0123456789:;<=>? @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ begin 644 TurbFntArc M&O]296%D364 @20SA(%0S , #$627W:XQD& !"____G+,:Y0, 0"D (a M'"B0"IHT<T"T>4.F#ILR"L.L*9.0#AJ(<LJ$(9/&S1D0;\R L C1S!LW=-@@a MI,,"A$DY(,* .)/&3ADW(."$L<A"@9TT<NC4"<.&31X0'>?0"8.2:9DW=>:Xa M !'$S=$Q1-E4? ,BX\:1%UV>3+D2!(HY=<:@B9GPSD4W"L+ @:,2*YTT)Q,Ja M#1,41!TX*6)F1(JRC)PQ9>#0*4,FIIO&:422%(M2IT408LIT_.@5<L6+"DY"a M%+'&S9L[;D2,Y#IY8<.'8&_&IDQ6*=*$&87*<</8I9PW;12662CG:)@YH>>^a MF=.;#M?,F[MJ;&SF=W".<\9,32(YK,G*.]="]RC]*T(0ING,%JT@XY@W9]P@a M["WF:&N&#B&2Q#D9:]';.1W'7&-CL>;=6&TP%<89AKD0$$$#4<'5&%XM-IMKa M^8' G'J3V<%7&F&( 9L18Y$ 17BKS991''4 U9ME:"B PDL@E(%'&&W0!5%]a M() !E8@0C5'7&M&=%!,((9"(4D(<N>=<<8$QU=A^7=7!7UA"')?&& K \=L9a M<N!(&%CG-5G&&$_F,540"N$'FW\/-49%'7*(801*3-AV1QK_9:9A	!=F49a M"HQ!9T8H]>@BFF\4-]44:>1H% ALO/'5?:_IQU54$*5!QU0&080A;&'4X5R"a M=\&9AP(;?@:1AW* ""0(2M)A(HK.S>8A&W5TJMX=QX'@EFR89@AL0A1JM!@9a M"I1A4W$C1:I?6*-VFE!'GH*HTH!FI;'C45(TP82E9+04KA16@@13N%2D048>a M*4R5!52LH@$5&XWYB55&9CB48H(3:4CGM#O-]IUZ";JQH&$ AH'F4$4=5>E&a MO0T+5U31671>M6RA-^%%8ZPA%DR> I@@&1!)B=2O?+*A81G#I2@775ONA)<;a MR%E4\&0')\17RA[R&2*I;%@$U1EKD734GO\Y\005F'7:74D(*LB@' H@Y,8)a MZDV,,AD./@@A547;6P?2("0! AJ ZD?1LF0FY"5\809G1AA 36KT;V>C,:G:a M(9G!L&D*G#$4HHM!Y%;!<W#E;(,@"&%J3@\=AU%BC:K'U%%BG)V0259.^4:7a M;9@!1!UKN."P"\#*L6?(+HPAE=@0&G3>W&"*>5Y'L\%1AXA;]@@<WCBIG"#Ga M)654QJ3OP>%M8\%6ZE%<"9D&@EI\,>CS8"=33;+FC\7M$I_64EJ&&>I9B;U'a MC,D+541'<:K 9(W3B1A((ND45$(AK3QF'E"!R6EP@KNZ^2PATON(VL24+(XLa M*VQC$\B\Z#2'GD3P@FEC"E7FX+<RK H:_U1U<F)&;G13<F, @5"3% ,!;.a M$!=3H2H $+[__\Z+$SD P ! - "B00 ^$#Q!4ZL@18\0-G2ERQ@2DT*%@a MDC!N0 29@X9-F3P@E&"L$T8.R!@Y<L0(Z %(P29AUI0!,28,&S9S0-!Y T).a MF3!D0)AYXS!GFC9MRI!)$X;.S*%R0!"=":<DG31CZK I":(J'30!400I",6Ja M5#,ZT<P<\X;,S#MA<M*)62:C&3EOVF@D8F3*G#MIJ,@) P>$&)!37("P@U%Ca M23)T LH@$)#'@74@8 0TLD">S#QSRD0& $6"O+BAVXCQ^"6-FS2CM420YQ/Ha M4(=>P0(@T^#TG-2KRP1TXX#V3S*WZ<P)B">!O#EA[ @'(*@ N(",* .P1*$;a M"-_ 6;N&'1"4AC9A\'Q)_F5.&CUE2H#H <*$#!CX ZK*,*?JF/@@!"B@@/3%a M4$-^ - R@C<TM05@?V'\)]\*(*"G'GONP5="0+YHA\P%?Z7Q!19?B ';?"#$a M (//*1X0T#2:,<-!7:LM]49**K((@@RX!"0.12,86,8.!:X8HLRY! 0/!3Ha M,621*1X)P@R: : /!6X\F:.4,ZP4 &4!># !NRQD<8<="27$WTFT("?2@T$a M@$$!X<0I0I@L3."=<;8114=N<=K0@#J&U6&&&67(L6$ 0-R@0A)HB<"#$7Z2a M4-97/HB H@B:4J%61D7(@5=4,(! J4.6-H4&"'6X$5ID 2@1 8-B&(JHHCS6a M(&@ 5!R!3"8@B/#$%%](<9P5)2'+A@@LB' J':E^Q6RMAR9: @LRZ,H"#"S,a M (N(+# 0G*Y?>&1&V=\M:@7(5![:PD_D*NJN76EBX9\!<X0)QH6R/L5"3V0a MX*ZU<<I!9YQ\A&G( WNB5H9J'L4)20;Q!+M1>*[AV$9;6I4A0IR:6#".5'#0a M44(/,<CP;8HT@( (CW&2XD" 3YS,EEN+NJ) @%"<K%D N% 0(!,GUPP"A1!*a M&*<P83)3P!9Q6H/!@ .^43+55IL<)SAAJC/%#B"T(/;89)=M]MEHIZWVVFO'a M2<\$8#?!L4<@J 54HG'Z<Q#5 9811QU!"5@JWX07#@+83O"$IEE D>'3;PT(a M@ 1A?L-^(#CT6'XYH>#D,1K5]ET9E-I$ 5"XX\O)X $0E3^=^ !FN&:39P7a M#K81LYL)W56FHUX&Y )PH(3KEPL8FAQV8#53[0."/46BR?]'DTULU(T1&1Y%a MY3OP)K1.N.6P5SAW&5]<10?=G,<]ODZPT;V]ZC $07SX&Y/1\1=JL5%8[>K;a M3W?^A7E?Y'2P-[Z!;T"#8Y[M0. &GK %*=>;PPL &#DB_&!^"%2@X<#60!"$a M*"=SJ ,<X/ &.3B%-P)P0@4P*+C(86&%WWL= B,G!A@:4(8M% ;*", .T3 a M!?6[G_DB)@! H(!X.1&0"!*RD#<\BPEG<HH<1+""7FA& (J(0.%$=P8W1(X2a M$ #B^/!7!OU%SA-'C&$=DAB@)2I$#$[T$Q31E"@J]D)) D!%"Y X(!'$P 7Xa M 0$*J!B,2)" !35@00QBD((5B" %=KRB++1(."YZ40"\X*$QOA8VMGGRDZ ,a MI=DB!XW.!9%NF6.*[DAGNIL)1P#:, '87"/%_USM#FKQB0<!DY.2S,0MKD0Aa M.1+@@LQ%SATD*!R:VF &V,DA!C,( 0OV( <8M$ .-&#!,VG0A\CA(YF5=!S5a MJCDN/Y7+#6%(2@,&( #YA#,J WIF.7$S+\:PH0["&0 #3% X-H@SGC*8YY_Fa M=2Y[K=,"&2C<QNPPSAFP8 2:&0 ($DJXA8XSFQ!=IPI&H$S 4$T$6!C6%YY'a M!V3)05D?&P -P,DW?S+3F="4)C6MB4UMQH";Z_2!!A3Z!CO8X3<!@L,8;$J#a M=2)! <4$G0S6*0664FV9S130,Z,YS6I>,YO;[.8 N $GC(TGMP:@0E@@ ,-a M!LAY5TC"8LHPAIUHCPR.^]UR!F &CKYSG#%@P;!"] 5@.FB=<-@IX5;#MX66a M00QR6*<>.K#%?TJ56XC%R!C ,@!"=+6B/<7K0\=:5K.B5:W2:6L)3P?7U*W3a M$8+E&V&I9EC$KA,33AV02Z,:H*G*U*HU%6H?O+!.45!F *R0@ O\A88OH%.=a M ["%IM3(QF ]*UIHB.0Z@4%)OEERG<J @@OV"IB^LM5!9DT?" !SDP8Y) RNa M,<Q@W#!9G?#D*S,95H/<LDYJ((&% 1HK?O8;2 6"#9=8614<\/*?W_QNEVF8a MWDWFX()U>F,!+H@L>RF+#B@43@R$HV6BDK*4IBQO<V ;@I_P@I/QYG(F)BBKa MA-M[)A"<X0T9:_ Y)$!%^ R4>0K4Q35M$Y^+/>&Q8N=G\RU8S\MAP &H P!a M(,!)43KYR5 >6P,(H $/@.V43\G=Z'B7$5=.F00M )M/# L"#4>D#+<\,8)[a MJ4N_NH4W!' !4F6'3C9,&0>Q-1X=7BK5F%:5I@'-ZI2%8%?K.K:VW.*NB-PLa M' (P80->U:Q8R3IE*Z26:JL=4&L32P PY#E LX4I56=ZS8#JEK<$4(.2'P*Va M*+OZU6TC@!\T +;C16\MU+.>&["'-P(@@@$NL+7RIBP)#RASS[3MB9^I>=-Na M$H 3!:2:4^(@Z3;5(+RU+L-,TH"6 9?AFK\3S91-05'5>H3: J*S3:8,BPL2a M;MK5EL$-L.U!;9>YVV] $[A?-65=E!O3Y\:<4J=,# L3+M1]'O6I_7LZ-L %a M-%UQ6%!,AX(TS.29K)HP1LZ@E!1,V1E*QD:384WRDK=@RN*(@9C?4(>KN.' a M:U2*>^NM.1&J5[*K<@V:Y%"'MI;.55-FAY+M >'(EK8!!0# 9?D&55'?-J]9a M%>_BQK &9;?L?0TN@ +^K>G,QA/JFBD !2!]\$/WA%M;>&87D.Z!'[/6ZX_5a M)K=P4KU)^Z@ @XPT6.7.@KA$9=*"*H ,CM#8\)V=[QC7(-@:-_.:W"1CI(TKa M4(6*=!X8.YR&)R<Y[8YT(S"AGV3@<VV7+<^%@[@GHE%(1M8(^:G+)"C;C+P<a ML@X%RA1 "Q!&G6L+0(:E/Q793J\JU)LM];E0W>JREVO6W< !9=8!PWN79S61a MCH?+,_WYX^36YCF+=$$8SJ+1YY;?03""I1: $9^6BJBRSW>Q_H2_^2F )3Y?a M=M$K>]2E'\-NQ>L3.JB>5>Z!+AYD?*^'?*B3=:!@>ZH 89N&=+3@>P/2= EWa M6X%&?*?G>@986LJ'=+[ =0("?E)5@4B'#$9P8=6#:8-16N'5.1RG.2NV*DV1a M%BUV@$@G#4Z@=WTF=RO8.=?3(' $CNA;#V .C/W@NZ%=-S@@0$"@HBF3>9Ga M#O<U6"<X(+H'3YY%$[7A%.I59JY"!U%Q%WEQ>,^$=/"@A.+S53DH!^:G#S9Pa M;%;8A&D7 UU ;VA20ML6&4E&?RT5>LEF6U5E:OKG!?R7>G*P>@&((ZXG<[%'a M@P;@ )1A !@P<B8WB5#6 8@ BX -JZD8!X1%#>6$8T1(F4F%SPA!K_T76]Fa MB2SP0V;&84SA%)9H ];W>_;GA\R&4P8 !"%P;+5(>C25,MUD $HP!3M8C)WCa M*2W68FCP!G< E*0!%,P!/)U%'#@$4E1%&DQ$R%BB53@;L9(;VX&>7C1<JY1a M!@UF %YP A>&%7A5@=E$?B9@!$, ?_IB &@P!*#WALJ65W$84"/0 C0PAZ=Ga M!*+17J*H<U[8<UQFB7) 'X/%CE\W?'DE5D9@!/"70 ("-D6 !UX8(9KS!'"0a M*-=CB7P0;0-B(F. 5Q+Y4'Q%(B:B.5038D0A'28$ EBP9B#P Y9H"!12=OI(a M3C?F$^LQ9+J3)D9FB9" C^_F-^SW3"I"A_;&;4)!E$56%):H"7J(:2]'-57Qa M&ZT!DXHW7G'A!B>@.7/ $QZA.<\8C?+%:&6&AZ1 C-](;YMX![_$$^E5C1$Ra M$V^ %L_R!7-$!\^R' ;@"A^0C^,44''H4". VMG +A@AO &4 ^E&08@#.DGa M!EL9@=K6&F;0&@Z1*+:$A\Q@./[TDPZUF ^5,H]I#91#.&/0!AD13XSYE%"Ya M;6C!>@+X7)<"%@8 #FYWDDPY(+IY!D-)3U]AB>I@ADPHAO5(#WMT5U_' EDAa M*G5!!\<Y4%_Q!?:$3Y;H#V176'!76_Z8+8)R BPBX0CBGT44L1R!%,@&!@Qa M!Q]S !*0 A<&FVI!=<:53N1S/?2"+LEY !PP 2Y0G-D)* =@ ND'%#_)+<35a MG^IT -;46#^95]7I$PZ1H/5D$]YY #H0GF^'AN3Y4.;9 = !,PYGCW!F)IQa M $ZPHB3:$QBE+P> !>G'GDKDGL5R+,EB$_4I!A H(),9@I6Y@]DV$XPA!TP1a M'!G';P? !L-3?WX35;:(6\ H7E)YEJC'%C39<-53!%@P!$4 !51@=2AJ!U*@a M4';P<NC6$_Z(D6'Y*D)Q(S/G&DM1$UK801NC2T%8&[QQ (#067N8%'%@I<MFa M>OR3C1GA$=$A' >@"#+*?AEU )1@DGJV$'L7ATXHD(M:AWZZ8;/C5BCJ"1K@a M I/%5FL@H?^Y:P%J4 > "OSDD^P7H04UH++PFGQ3I$VHADA:;[AI/4$!'4D!a M K<*%@? "S<X6)LI( /V!@4V!R62!]F)'NC$<? T2VB1EE/I$!6"$422*%U!a M8'+%B2AJ#.YD: \J4.72G9 *#0^ JONYJL0*J=HPB[+E.-!76ZE935VPFBA*a M#O@J(*>YKS3* G'XKR.P$@?@#I(YG%+E4-B$HOB@ A?6K$%%KEYY&-4*KMC:a M @0/,XG!LVEADX(L C ,;()KY80&2JOQ9KR!K 2MKK/H:3]F4L"B[(H43a MF_LC535JFV'9@CHAJNA$J@B@ A8[6!S'E1HKK1R;'-8:KHF% #2P!&Z8F"Q@a M9J.I)7R3;9IC!G;*I7;)A;6$9IKC>':& #Y0 <'6F=P&FF=;,B"+!.E*-:?)a M?ER+MD\"LE+PL&_:A!F% %RPM*J%L>,*K7(UK1U[K7B# &:@JWC+A\%':L\Da M WTPB%XJKKDFIF1JIFB* ' PJTP'?!/X9]<$=3-P5=V$ 'I NI.[KFY0!ZJ1a M*%_0E]FY' A " :WJQ#;JRJS@DEZ;]8C'0T'J" !J,8:%V'K)R#K"$_ IFYJa MI!#UJUNJ.*)1IT0R'P?!IW8X<X *LI@ N_EJJ(B*?[^H3:N+3:TK"H0ZN>8+a M>XD:B P'7XWZ$](!LJQ@. Y:JU2))B!K"S):LA*[5 @ ##5KBH$[E:U"!MD)a MLLK@ ,.%IP^, -1 1/LJNSA&B]7M=Y0LP6+LPCKKRB+#I<V(+QZL&+%&P@@a M#X6FE2XK%!2\P6[0P2#+#\VWGL]'P.H+L E@ (S%K#%,9PZ<' V0 ! 0KT/1a MP ^< !I@H&SQ@]G)JD=, B!\LT [PC"@L"M!3#6[<P9;4SJ[L$>, R=,I+^Ka MPB; &PD@!,$I("U+-5%,K>QQ7,*1 $R0PX:6>8'FCUUL!>1+L)1[NI:KNJQ[a MQ&#@+?77A_.[?\P#-HZ:OPF@:D=,!\#6E=)*'@G@!^I9J(R,OJF+N4>,"%?<a MB_C7;$<L"89CL *B:-[E90G "921 *:P 2[PK-'*N%+KL7B3 + PJ7M'Q@F@a M"TV0M7NWMR7CM3%)<]J+(T$('2!!!D11EF8KFFA[Q,1@AIF6;KESQ,[0R?#[a MR;?UBZ*< -APMQ'H4>WYEX$YF!^3 .) >%+(-YD3O/3V%2VFMN,:;LAS8&)+a M),N1 .Q0S(M<N;H5EI'\%#?22SG1?ZHG<X?1K9&1 /9P;7-YA5/[L0H )2Aa M H@B908TJ#4 I 3@P2Z%Y9E?SSSC2@[X4!@ H<\_L5C/!FZK"A23M 0:*a MS-C)TB2- C9$-0?40@H@ [:<H=?)H=OIKB3- WHLU'_37,20,CC E;D<0I@a M!$\]()8CU51MU3" U;5'TEH TB)]UFI#TF0@2Q(=<5]Q.KMFK/7RUJ J<R=&a MTFZ P;8ZUV"A 'B0?D,M9,A97,>Z(0H@" 8:H4RM (Q@.%T](,1% E6D&0I@a M"=5%-=>E E(TJI@UFC]V65#TK2@<MEHK%%T%A*=$^15/:8X@'88%&%@!E)4a M-SA&TKZ P;-;NW)PNY_)8PJ #$'-U3@4()0M#1*L8P"L -Q0 &NG .:@ .U a M,EJC /!P, J@#Y2Q $NV)X#*8PO@ "* W":#(N)]-/,5'PVP !A BI 4@CQa M1G'D$(&9*$SP!G<3%"*0!;_S,0L@ CZ@ E+0!$7@*@HQ$TP$1T\41>(* X!4a M*E7@*ME[X/%-!_,M!_5]W^G- D/P*)'" Q*>X'1DX?;]9IFR(@?!*0CQ*<[8a M!$N0!N7UX7*DX(FU &VH @].IS NWS)^X:FX $!@ 15S B)@+$ !>6K"WTI@a M ;EMBKN-NVKB,^E-!050#^GM!<OZ*\XU9.UL9,PB4$2&)M>RY+;KY$9V+2V@a M(N B+F+>Y+U=YNF-!D%\#@Q$NTS.V[E; CYPYB# ".FMCQ6C"-Q2 RDP#&MNa MYT^>WGPPBQ5# N)= CM #&[2+,'B<0M@"&DDV-A9E!-"'ZF HS^OR:#GQ2Ra M$@L "18=("& H5.YMA((:Y4 OA)'ZO>YD6Q(0N@"3HP('+>Z 8A2*]NWDD#a M(!1B(5.<(?&!GWR^ *2@!7Q3,4/>&"RG.7W9$V\0AC/]O?"5VF *K1[F07DQa M$WTZ$Q$]61L'>720[>[*WZ[@C0+B['0:A.Q![,8N'WE)KO:C2PX#,>23.2[ a MW[BP 'QS'0L@# DP(,V0WLQP %R\ M@#1G0#W.NVX9>YCUPYND-#@>S .J0a MW?2P 'L"'?F[ /X Y" @Y%,0'9"'91_# @0 _\0+"=OO ?>$!2.)L&R L/@a M!Z_N2#>?\XW> P@ 2'P\B) 4E20!R'YW@M!\TQ@\W+C/QX#]!QP,/M$&0R@a M&7OR&?S& #HP 2JP!$60!5%"!6GE!$^ WS0!$!/!!;P]6'/(R P!4%@!460a M]E)0!4Z0]D#O!!W@]F+O+2K !$\0!)0S\_*-)GK/ "_D]R#0,BKP+$/0%(DOa 7!AS ^-?&XTK/$ X!$6.0^&QP,/\ &H Sa a end