|
1 AppArc 1.2.118 |
|
2 -------------- |
|
3 Released by MattM |
|
4 |
|
5 Upgraded to new E32TOOLS and E32TOOLP |
|
6 |
|
7 Updated bld.inf file to add support to support testcode, and corrected |
|
8 controlpanel .def file exports. |
|
9 |
|
10 This release is not BC or SC due to: |
|
11 |
|
12 the fix for EDNATHE-488DCR (increase in the size of a class, as a fix for |
|
13 potential recurring panics) |
|
14 |
|
15 EDNATHE-464JPQ has breaks SC and BC |
|
16 |
|
17 Fixed: |
|
18 ER5 deferred defects |
|
19 EDN761578 Recent Files list has gone |
|
20 EDNBWHE-45UCS4 Need to reset shell after changing "text/html" mapping |
|
21 EDNATHE-462DBT Control panel DLLs are not unloaded |
|
22 EDNATHE-488DCR Recogniser names restricted to 12 characters |
|
23 EDNATHE-464JPQ CApaAppInfoFile classes create temporary RFs connections |
|
24 EDN779965 Dangerous code in CApaFsMonitor::Start() |
|
25 |
|
26 |
|
27 |
|
28 AppArc 1.2.117 |
|
29 -------------- |
|
30 Released by SimonC on 09 July 1999 |
|
31 |
|
32 Binary and source compatible with 116 |
|
33 |
|
34 Fixed EDNDMAY-49CDSX "Need to remove call to deprecated function" |
|
35 Various changes to MNT to remove all references to narrow releasables. |
|
36 |
|
37 No test code run due to the lack of changes |
|
38 |
|
39 Apparc 1.2.116 |
|
40 -------------- |
|
41 Re-released for automated build process |
|
42 |
|
43 AppArc 1.2.114 |
|
44 -------------- |
|
45 Built by SimonC on 10 Feb 1999 |
|
46 |
|
47 Fixed EDN557946 "CApaFsMonitor uses the wrong form of RFs::NotifyChangeCancel" |
|
48 |
|
49 AppArc 1.2.113 |
|
50 -------------- |
|
51 Built by MattM on 29 Jan 1999 |
|
52 |
|
53 Fixed |
|
54 Not found error after installing application |
|
55 |
|
56 AppArc 1.2.112 |
|
57 -------------- |
|
58 Built by MattM on 19 Jan 1999 |
|
59 |
|
60 Fixed |
|
61 EDN062791 Default app can be wrong |
|
62 EDN923095 RDL recognisers didn't work immediately after installation |
|
63 EDN173648 Problem with RApaLsSession::AppForDataType |
|
64 |
|
65 AppArc 1.2.111 |
|
66 -------------- |
|
67 Built by MattM on 13 Jan 1999 |
|
68 |
|
69 Fixed |
|
70 EDN537499 Panic attempting to view directory with unknown App file |
|
71 EDN116503 CApaProcess::SetMainDocFileName does not allow clearing of the file name |
|
72 |
|
73 AppArc 1.2.110 |
|
74 -------------- |
|
75 Built by MattM on |
|
76 |
|
77 Changed priority of AppArc server to EPriorityAbsoluteForeground |
|
78 Changed scanning active object from CIdle to CPeriodic, with a small pause |
|
79 between each scanning unit (to allow lower priority threads a lookin) |
|
80 |
|
81 Fixed |
|
82 EDN736553 Machine completely* locks up |
|
83 EDN851148 Panic on Startup which locks the machine |
|
84 |
|
85 AppArc 1.2.109 |
|
86 -------------- |
|
87 Built by MattM on 5 December 1998 |
|
88 |
|
89 Changed priority of AppArc server to nearer priority of EIKSRV. |
|
90 |
|
91 Fixed |
|
92 EDN833327 MRU list doesn't work if the C:\system\data directory doesn't exist. |
|
93 EDN060924 Deleting mru.dat stops the mru-list coming up |
|
94 EDN349934 Recent files does not work if there's no c:\System\Data\ directory |
|
95 EDN572427 "mru.dat" should be "Mru.dat" |
|
96 EDN951003 Recently used files list is case-sensitive |
|
97 EDN969635 DataType may not be reported correctly |
|
98 |
|
99 AppArc 1.2.108 |
|
100 -------------- |
|
101 Built by MattM on 26 November 1998 |
|
102 |
|
103 SW1-427 IsProgram() return value can be incorrect |
|
104 SW1-400 AppArc doesn't handle even-numbered tailend lengths correctly. |
|
105 SW1-413 Shell is too slow |
|
106 SW1-455 Apparc is too hard to fetch |
|
107 |
|
108 AppArc 1.2.107 |
|
109 -------------- |
|
110 Built by MattM on 12 November 1998 |
|
111 |
|
112 Added Base addresses for all new DLL's |
|
113 |
|
114 EPOC Software Problems |
|
115 SW1-329 AppArc doesn't set TailEnd length. |
|
116 SW1-330 RECAPP doesn't recognize narrow build documents on wide build machines |
|
117 SW1-195 APSEXE.DLL WINS base address clashes with that of EIKSRV.DLL |
|
118 SW1-306 Missing #defines |
|
119 SW1-287 #defines should be replaced by literal descriptors |
|
120 |
|
121 AppArc 1.2.106 |
|
122 -------------- |
|
123 Built by MattM on 30 October 1998 |
|
124 |
|
125 Deb/rel and unicode Uid release. |
|
126 |
|
127 UID fest from AppArc is here: |
|
128 |
|
129 Control panel items: |
|
130 uid 0x10000297 |
|
131 unicodeuid 0x10003A34 |
|
132 |
|
133 Applications |
|
134 uid 0x1000006c |
|
135 unicodeuid 0x100039CE |
|
136 |
|
137 Application data files |
|
138 uid 0x1000006d |
|
139 unicodeuid 0x10003A12 |
|
140 |
|
141 Recognizers |
|
142 uid 0x1000013E |
|
143 unicodeuid 0x10003A37 |
|
144 |
|
145 AIF files |
|
146 uid 0x1000006a |
|
147 unicodeuid 0x10003A38 |
|
148 |
|
149 AppArc 1.2.105 |
|
150 -------------- |
|
151 Built by MattM on 28 October 1998 |
|
152 |
|
153 Moved ApMime to EMIME project. |
|
154 |
|
155 AppArc 1.2.104 |
|
156 -------------- |
|
157 Built by MattM on 19 October 1998 |
|
158 |
|
159 Breaks BC for UNICODE build users of CApaCommandLine::TailEnd. Previously this |
|
160 had a TDes16 interface, now it has a TDes8 interface in both builds. This |
|
161 reflects the intended usage, the passing of binary data to applications. |
|
162 |
|
163 The client interface to RApaLsSession now attempts reconnection if the server |
|
164 terminates during an open session. |
|
165 |
|
166 AppArc server now uses the new fileserver notification to minimise |
|
167 rescanning of drives, and the new fileserver read functions to read |
|
168 the first few bytes from a file when identifying it's type. |
|
169 |
|
170 AppArc 1.2.103 |
|
171 -------------- |
|
172 Built by MattM on 24 September 1998 |
|
173 |
|
174 This is a BETA release |
|
175 |
|
176 This build breaks BC for the new exports in build 100+ |
|
177 |
|
178 Optimisations made to TDataType to enable Shell to perform cached lookup |
|
179 on UID'd types without resorting to server calls. |
|
180 |
|
181 AppArc 1.2.102 |
|
182 -------------- |
|
183 Built by MattM on 21 August 1998 |
|
184 |
|
185 ONLY FOR USE BY APPS EG (and friends) |
|
186 |
|
187 This build breaks BC with the new exports added for build 101. |
|
188 |
|
189 Source compatability is maintained. |
|
190 |
|
191 Completed implementation of new server interface as per document |
|
192 R:\apparc\dspec\Server API.rtf, please refer to that document for documentation. |
|
193 |
|
194 This build of AppArc is intended for use by development Shells 060+ |
|
195 |
|
196 AppArc 1.2.101 |
|
197 -------------- |
|
198 Built by MattM on 28 July 1998 |
|
199 |
|
200 Release valids on a clean drive |
|
201 |
|
202 This build is of BETA status, pending a design review of the AppArc server and Shell. |
|
203 |
|
204 The export in RApaLsSession UpdateDataRecognizerList() is likely to be removed in the |
|
205 future. |
|
206 |
|
207 1) Added Data type support to AIF files |
|
208 The following exports are new for R5: |
|
209 |
|
210 class CApaAppInfoFileReader |
|
211 void DataTypesSupportedL(CArrayFix<TDataTypeWithPriority>& aTypeList) const; |
|
212 |
|
213 class CApaAppInfoFileWriter : public CApaAppInfoFile void AddDataTypeL(const |
|
214 TDataTypeWithPriority& aTypePriority); |
|
215 |
|
216 Supported data types are stored in Application AIF files (which are fully data |
|
217 compatible with R1 AIF files) along with a concept of "Priority" this is used |
|
218 for resolving the current preferred handler of a data type, in the absence of |
|
219 any user preferences. |
|
220 |
|
221 Data type priorities are defined in APMSTD.H and are: |
|
222 |
|
223 KDataTypePriorityUserSpecified |
|
224 KDataTypePriorityHigh |
|
225 KDataTypePriorityNormal |
|
226 KDataTypePriorityLow |
|
227 KDataTypePriorityLastResort |
|
228 |
|
229 Note, it's not legal for applications to specify KDataTypePriorityUserSpecified |
|
230 in their AIF file, as this can't be overridden, and contrary to all the |
|
231 available evidence, the user DOES know best. |
|
232 |
|
233 Extended test code to cope with new stuff |
|
234 |
|
235 2) Added Data Type to application map to APMIME |
|
236 |
|
237 The following (interesting) exports have been added compared to the APMIME |
|
238 release in 100: (this isn't an all inclusive list, it's just the ones that are |
|
239 of interest to AppArc clients) |
|
240 |
|
241 class CTypeStoreManager |
|
242 static CTypeStoreManager* NewL(RFs& aFs); |
|
243 // Persistence |
|
244 void StoreL(); |
|
245 void RestoreL(); |
|
246 void InternalizeL(RReadStream& aStream); |
|
247 void ExternalizeL(RWriteStream& aStream) const; |
|
248 // Enquiry |
|
249 void GetAppByDataType(const TDataType& aDataType, TUid& aUid) const; |
|
250 void GetDataTypesByAppL(TUid aUid, CArrayFix<TDataType>* aTypeArray) const; |
|
251 const CArrayFixFlat<TMappingDataTypeToApp>& MappingArray() const; |
|
252 // Management |
|
253 void InsertDataMappingL(const TDataType& aDataType, TDataTypePriority aPriority, TUid aUid); |
|
254 TBool InsertIfHigherL(const TDataType& aDataType, TDataTypePriority aPriority, TUid aUid); |
|
255 void DeleteDataMapping(const TDataType& aDataType); |
|
256 |
|
257 These can be used to query and amend the list of application/data type associations. |
|
258 |
|
259 3) Added TDataTypeWithPriority and priority utilities. |
|
260 |
|
261 For use in 1) and 2) |
|
262 |
|
263 4) Fixed T_SERV debug panics |
|
264 |
|
265 5) Added MIME type recognition to the AppArc Server, the following exports are |
|
266 new: |
|
267 class RApaLsSession |
|
268 TInt UpdateDataRecognizerList(); |
|
269 TInt RecognizeData(const TDesC& aName, const TDesC8& aBuffer, TDataRecognitionResult& aDataType); |
|
270 TInt RecognizeSpecificData(const TDesC& aName, const TDesC8& aBuffer, const TDataType& aDataType, TBool& aResult); |
|
271 |
|
272 The Shell is responsible for ensuring the AppArc server is kept up to date with |
|
273 respect of the recognizer list - clients shouldn't need to call |
|
274 UpdateRecognizerList(), which due to the scanning efforts involved has a heavy |
|
275 overhead. |
|
276 |
|
277 RecognizeData and RecognizeSpecificData will provide mime type information to |
|
278 the client, based on the information supplied - the client must open the file if |
|
279 this is appropriate. |
|
280 |
|
281 6) Added application launching to the AppArc server. |
|
282 |
|
283 This marks a change in the architecure of document launching. It is strongly |
|
284 recommended that launchers of applications use these new server calls to broker |
|
285 all their application launching. |
|
286 |
|
287 There is also a slight change in the way recognizers use UID's, from now the |
|
288 following is true: |
|
289 |
|
290 The 2nd Uid if a TUidType indicates the protocol used to launch the application. |
|
291 This protocol must be uniquely implemented by a recognizer in a .RDL file, |
|
292 derived from CApaRecognizerType, currently supported protocols are: |
|
293 The EIKON App protocol (KUidApp) |
|
294 The OPL protocol (KUidOplApp) released by the OPL runtime |
|
295 |
|
296 It's anticipated that Java will release an additional recognizer for Java |
|
297 applications (KUidJavaApp) |
|
298 |
|
299 The 2nd Uid contained within an EPOC store file is used for type identification, |
|
300 and is mapped on to a "TDataType" that can also handle internet standard MIME |
|
301 types. |
|
302 |
|
303 Thus a CApaRecognizerType file can now expect to be called with a document file |
|
304 name, but a TUidType that is different to the TUidType within that file (this is |
|
305 to support the launching of, say, Agenda files by an OPL or Java based Agenda |
|
306 file viewer) |
|
307 |
|
308 If no mime type mapping is available the CApaRecognizerType list will be called |
|
309 as for ER1 releases, this is to fully support compatibility with ER1 style 3rd |
|
310 party recognizers. |
|
311 |
|
312 The following exports are of interest: |
|
313 class RApaLsSession |
|
314 TInt AppForDataType(const TDataType& aDataType, TUid& aAppUid); |
|
315 This returns the binding of application to DataType in aAppUid, if there is no |
|
316 binding then the current "default" handler is returned. If there is no handler |
|
317 a NULL uid is returned. |
|
318 |
|
319 TInt StartDocument(const TDesC& aFileName, TThreadId& aId); |
|
320 This starts the document file of aFileName and returns the TThreadId of the |
|
321 process. The effect is the same as performing a RecognizeData on the file, |
|
322 followed by a call to the next documented method. |
|
323 |
|
324 TInt StartDocument(const TDesC& aFileName, const TDataType& aDataType, TThreadId& aId); |
|
325 This launches an application with a known data type, this is useful to clients |
|
326 that already have data type information and wish to take advantage of this, and |
|
327 avoid the overhead of performing a recognition on the file. This uses the |
|
328 current "preferred" handler of the data type, this may be specified by the user. |
|
329 If another application is desired this must be chosen explictily using the |
|
330 following method. If no binding can be found for the data type the old style |
|
331 recognition by the .RDL recognizers will be performed, if this doesn't get a |
|
332 match KErrNotSupported will be returned. |
|
333 |
|
334 TInt StartDocument(const TDesC& aFileName, TUid aAppUid, TThreadId& aId); |
|
335 This launches the filename with the supplied application. |
|
336 |
|
337 7) Added Application icons to AppArc server, the relevant export here is: |
|
338 class RApaLsSession |
|
339 TInt GetAppIcon(TUid aAppUid, TInt aSize, CApaMaskedBitmap& aAppBitmap); |
|
340 Size is a number between 0 and 2 inclusive, representing the smallest to largest |
|
341 icons for the application. The actual size of these icons is dependent on the |
|
342 implementation, no scaling is performed. Fully featured EPOC apps can be expected |
|
343 to supply 24,32 and 48 pixel icons on 1/2 VGA. |
|
344 |
|
345 8) Added test code, and less interesting utility functions for all the above. |
|
346 |
|
347 9) Added batch files for running test code - runtest.bat on MARM and runtestw [var] |
|
348 under WINS, these live in \apparc\tdata\ |
|
349 |
|
350 10) Moved down to E32TOOLS 088 due to a defect in DEFMAKE |
|
351 |
|
352 All WINS variants pass tests |
|
353 All MARM varinats pass tests, with the exception of |
|
354 |
|
355 T_PRO and T_OOM which fail on MARM unicode |
|
356 |
|
357 These failures do not constitute a regression from AppArc 100 |
|
358 |
|
359 AppArc 1.2.100 |
|
360 ============== |
|
361 Built by MattM on 3/7/98 |
|
362 |
|
363 Jumped from 086 to 100 release to allow space for platform 4 revisions |
|
364 |
|
365 Changed interface in APMIME to "Data" in place of "Mime" allowing for greater |
|
366 flexibility in use of "mime" types. Retained name for DLL to ensure binary |
|
367 compatibility. |
|
368 |
|
369 Fixed defect in APMFNDR as for APFFNDR - wins REL and UREL mime recognizer |
|
370 loading did not work |
|
371 |
|
372 Updated ROM build files |
|
373 |
|
374 AppArc 1.1.86 |
|
375 ============= |
|
376 Built by MattM on 29/6/98 |
|
377 |
|
378 Release valids on a clean drive. |
|
379 |
|
380 Removed incorrect mime getrel methods |
|
381 Fixed rom building scripts |
|
382 |
|
383 Fixes: |
|
384 SW1-544 WINS rel & urel recognisers don't work |
|
385 |
|
386 All 4 WINS and 4 MARM variants released and tested. |
|
387 |
|
388 The following tests pass on all variants: |
|
389 |
|
390 T_CMDLN, T_FILE, T_MDR, T_WGNAM, ICONTOOL |
|
391 |
|
392 The following tests have the documented failure conditions: |
|
393 |
|
394 T_MRU fails test 07 line 248 on all MARM variants (passes on WINS) |
|
395 T_OOM fails KERN-EXEC 3 on MARM Unicode variants (passes WINS and MARM narrow) |
|
396 T_SERV fails on all debug variants WINS and MARM (passes on release variants) |
|
397 T_PRO fails KERN-EXEC 3 on MARM Unicode variants (passes WINS and MARM narrow) |
|
398 |
|
399 None of these failures is a regression from AppArc 1.1.85 |
|
400 |
|
401 AppArc 1.1.85 |
|
402 ============= |
|
403 |
|
404 Identical to 084 without MIME releases |
|
405 |
|
406 AppArc 1.1.84 |
|
407 ============= |
|
408 Built on 22/5/98 by MattM |
|
409 |
|
410 Changes following code review |
|
411 |
|
412 AppArc 1.1.83 |
|
413 ============= |
|
414 Built on 18/5/98 by MattM |
|
415 |
|
416 Added MIME type recognition |
|
417 |
|
418 Fixed AppArc DLL loading to allow unloading of AppArc DLLs due to deletion or |
|
419 updating, however due to EPOC32 defect SW1-46 this remains broken, however as of |
|
420 this release it's possible to unload recognizer DLL's by removing the DLL, then |
|
421 waiting sufficient time for the Shell recognizer scanner to update it's list, |
|
422 then 1 second later the AppArc server list will be updated. |
|
423 [an easy way is to Open/close a CF card door, this forces a full rescan] |
|
424 |
|
425 Fixed some VC5 warnings |
|
426 |
|
427 Fixed |
|
428 SW1-957 Missing leave in AppArc |
|
429 |
|
430 Apparc 1.0.82 |
|
431 ============= |
|
432 |
|
433 Added extra support for Recent Files list for OPL apps. |
|
434 |
|
435 |
|
436 Apparc 1.0.80 |
|
437 ============= |
|
438 20/02/98 by Natascha |
|
439 |
|
440 Uses: apparc.dll: E32[120] ; F32[090] ; Store[043] ; GDI[057] |
|
441 |
|
442 apgrfx.dll: Fntstore[046] ; Fbserv[075] ; Bitgdi[062] ; Wserv[094] |
|
443 |
|
444 Mimestor[002] |
|
445 |
|
446 Tools: E32Tools[082] ; E32Utils[014] ; GCCTOOLS[113]; GDITOOLS[039] |
|
447 EIKTOOLS[123] |
|
448 |
|
449 1) Rebuilt using correct Unicode components. |
|
450 |
|
451 Apparc 1.0.79 |
|
452 ============= |
|
453 19/02/98 by Natascha |
|
454 |
|
455 Uses: apparc.dll: E32[119] ; F32[089] ; Store[043] ; GDI[053] |
|
456 |
|
457 apgrfx.dll: Fntstore[043] ; Fbserv[075] ; Bitgdi[058] ; Wserv[090] |
|
458 |
|
459 Tools: E32Tools[082] ; E32Utils[014] ; GCCTOOLS[113]; GDITOOLS[039] |
|
460 EIKTOOLS[123] |
|
461 |
|
462 Made the following changes as a result of code review (by CharlesW). |
|
463 |
|
464 1) Changed CApaFileRecognizer::DoRecognizeAllApps() to |
|
465 DoRecognizeAllAppsL() since it is a leaving function. |
|
466 |
|
467 2) Use the more efficient InsertL() function to copy one array to |
|
468 another rather than AppendL() in a for loop. |
|
469 |
|
470 3) In CApaFileRecognizer::InsertAppIntoListL() the priority is now |
|
471 based primarily on the mime type priority, not an average of the app |
|
472 and mime type priorities. |
|
473 |
|
474 4) Put the mimestor manager on the Cleanup stack in |
|
475 CApaDataTypeRecognizer functions. |
|
476 |
|
477 5) Made the CApaFileRecognizerData class definition and member data |
|
478 private to CApaFileRecognizer. |
|
479 |
|
480 |
|
481 Apparc 1.0.78 |
|
482 ============= |
|
483 02/02/98 by Natascha |
|
484 |
|
485 Uses: apparc.dll: E32[119] ; F32[089] ; Store[043] ; GDI[053] |
|
486 |
|
487 apgrfx.dll: Fntstore[043] ; Fbserv[075] ; Bitgdi[058] ; Wserv[090] |
|
488 |
|
489 Tools: E32Tools[082] ; E32Utils[014] ; GCCTOOLS[113]; GDITOOLS[039] |
|
490 EIKTOOLS[123] |
|
491 |
|
492 Includes UNICODE release of all components. |
|
493 |
|
494 1) Changed over to new build system splitting mnt.cmd into ebld.bat |
|
495 and mnt.cmd and using makmake etc... |
|
496 |
|
497 2) Defect fix SW1-516: to speed up drawing of control panel moved the DLL loading into |
|
498 CApaSystemControl::CreateL() from CApaSystemControl::ConstructL() |
|
499 which was being called to build up the list of available controls. |
|
500 Added member data iUidType and iFullPath. This also means that OOM |
|
501 is less likely when bringing up the control panel. |
|
502 |
|
503 3) Defect fix SW1-451: in CApaScanningAppFinder::FindAllAppsL() set |
|
504 iDriveList=NULL after deleting it (spotted by MartinB). |
|
505 |
|
506 4) Defect fix SW1-566: in CApaScanningAppFinder destructor now delete |
|
507 iFileList. |
|
508 |
|
509 5) Defect fix SW1-620: in CApaScanningControlFinder::NextL() iFileIndex |
|
510 was only being reset to 0 if there was a drive in between which |
|
511 failed GetFileListL(); if 2 consecutive drives both had controls it |
|
512 was hit and miss whether all those on the second drive would be |
|
513 correctly picked up since it only started scanning the file list at |
|
514 the iFileIndex value at which the drive before had finished. Fix is |
|
515 to set iFileIndex=0 at the same time as deleting iFileList. |
|
516 |
|
517 6) Extension to recognizer scheme: added class CApaUidlessRecognizerType |
|
518 which is there to recognize files that the uid-based recognizers |
|
519 fail to recognize. This means that CApaFileRecognizer class now has |
|
520 a new private member *iData (before only 1 pointer so store all the |
|
521 new data in the one pointer to keep things BC) - iData contains |
|
522 iFileRecognizerList and iUidlessFileRecognizerList, and a list of |
|
523 mime types and supporting apps. |
|
524 |
|
525 CApaFileRecognizer::RecognizeFileL() now works by calling the |
|
526 uid-based recognizers as usual, if none of them recognize the file |
|
527 call all uidless recognizers, which can each add |
|
528 MIME types to the list, then picks the highest priority MIME type and |
|
529 finds the best app capable of handling that MIME type, if no apps are |
|
530 found to support the best MIME type keep going through the list until |
|
531 the best app is found, then call the uid based recognizer passing in the |
|
532 uid of the app. |
|
533 |
|
534 Various other functions for clients to call through |
|
535 CApaFileRecognizer class: |
|
536 |
|
537 RecognizeAllMimeTypesL() - for file |
|
538 RecognizeAllAppsL() - for file |
|
539 RecognizeBestAppL() - for file |
|
540 RecognizeAllAppsByMimeType() - for MIME type. |
|
541 |
|
542 Test code added to T_FILE to test some of the uidless recognizer |
|
543 functionality. |
|
544 |
|
545 7) Recognizer loading code changed to support the new uidless |
|
546 recognizers - in CApaScanningFileRecognizer class. |
|
547 |
|
548 8) A new uidless recognizer CApaDataTypeRecognizer which gets MIME |
|
549 types from the mimestor manager and apps from the mimestor manager |
|
550 and aif files. |
|
551 |
|
552 9) UNICODE releases for all components. |
|
553 |
|
554 10) CApaAppInfoFileReader and CApaAppInfoFileWriter classes changed to support |
|
555 the ability to specify supported MIME types in AIF files. |
|
556 |
|
557 |
|
558 AppArc 1.0.077 |
|
559 ============== |
|
560 |
|
561 22/07/97 by IanH |
|
562 |
|
563 Uses: apparc.dll: E32[107] ; F32[074] ; Store[043] ; GDI[053] |
|
564 |
|
565 apgrfx.dll: Fntstore[043] ; Fbserv[066] ; Bitgdi[058] ; Wserv[085] |
|
566 |
|
567 Tools: E32Tools[067] ; E32Utils[018] ; GCCTOOLS[113] |
|
568 |
|
569 General: |
|
570 |
|
571 Binary compatible with 065 - 076, but extends API (see 3) |
|
572 |
|
573 1) MNT no longer fetches non-existant WSERV MARMUD releasables (spotted by Natascha). |
|
574 |
|
575 2) MNT getdef extended to get WINS control.def's |
|
576 |
|
577 3) Two inline methods added to CApaDoorBase to get and set the already present protected member data iSource. |
|
578 This is not a 1.01 change, more a platform improvement for the initial benefit of Nautilus. |
|
579 |
|
580 public: |
|
581 inline TUid Source()const; |
|
582 inline void SetSource(TUid aSource); |
|
583 protected: |
|
584 TUid iSource; // foreign representation of a translated door (eg MS Word doc) |
|
585 |
|
586 4) Testcode T_MDR extended to test the above. |
|
587 |
|
588 |
|
589 |
|
590 AppArc 1.0.076 |
|
591 ============== |
|
592 |
|
593 16/07/97 by IanH |
|
594 |
|
595 Uses: apparc.dll: E32[107] ; F32[074] ; Store[043] ; GDI[053] |
|
596 |
|
597 apgrfx.dll: Fntstore[043] ; Fbserv[066] ; Bitgdi[058] ; Wserv[085] |
|
598 |
|
599 Tools: E32Tools[067] ; E32Utils[018] ; GCCTOOLS[113] |
|
600 |
|
601 General: |
|
602 |
|
603 Binary compatible with 065 - 075 |
|
604 |
|
605 ) Fixes CSW3-1386: Overriding of ROM apps doesnt work - the in ROM versions are still loaded instead of those in RAM. The fix ensures that the correct dll is loaded, but does not cache the new AIF data. |
|
606 |
|
607 ) Fixes SW1-122: OPL programs don't run when copied from one disk to another. This was another manifestation of the above defect, and the fix carries the same proviso (though in this case it's meaningless as the data is the same - it was just copied between discs). |
|
608 |
|
609 ) The above fixes left a couple of slight problems, and these have been noted in a new defect report SW1-134. |
|
610 |
|
611 |
|
612 |
|
613 AppArc 1.0.075 |
|
614 ============== |
|
615 |
|
616 10/07/97 by IanH |
|
617 |
|
618 Uses: apparc.dll: E32[107] ; F32[074] ; Store[043] ; GDI[053] |
|
619 |
|
620 apgrfx.dll: Fntstore[043] ; Fbserv[066] ; Bitgdi[058] ; Wserv[085] |
|
621 |
|
622 Tools: E32Tools[067] ; E32Utils[018] ; GCCTOOLS[113] |
|
623 |
|
624 General: |
|
625 |
|
626 Binary compatible with 065 - 074 |
|
627 |
|
628 ) Fixes SW3-1520 (showstopper): Apparc sometimes paniced if a document file was corrupt. Now it always leaves KErrCorrupt |
|
629 |
|
630 ) Fixes CSW3-1680: Some code was taking the address of temporary TPtrC's returned from CApaCommandLine members. This was causing CApaLsSession::StartApp() to fail strangely in some circumstances, eg when trying to open the help database from EasyFax. |
|
631 |
|
632 ) Fixes SW1-63: Synchronising agenda entries that countain embedded objects could lose the embedded objects entirely if the entry had been edited in eg Schedule+. Not any more though... |
|
633 |
|
634 ) MNT VALID extended as per orders. |
|
635 |
|
636 |
|
637 |
|
638 AppArc 1.0.074 |
|
639 ============== |
|
640 |
|
641 4/06/97 by IanH |
|
642 |
|
643 Uses: apparc.dll: E32[107] ; F32[074] ; Store[043] ; GDI[053] |
|
644 |
|
645 apgrfx.dll: Fntstore[043] ; Fbserv[066] ; Bitgdi[058] ; Wserv[085] |
|
646 |
|
647 Tools: E32Tools[067] ; E32Utils[018] ; GCCTOOLS[113] |
|
648 |
|
649 General: |
|
650 |
|
651 Binary compatible with 065 - 073 |
|
652 |
|
653 ) Fixes SW3-1277: AIF's of plug=in controls were not being loaded, leaving all controls with default captions and icons. A showstopper for Babel. |
|
654 |
|
655 ) MNT getrel tweaked. |
|
656 |
|
657 |
|
658 |
|
659 AppArc 1.0.073 |
|
660 ============== |
|
661 |
|
662 2/06/97 by IanH |
|
663 |
|
664 Uses: apparc.dll: E32[107] ; F32[074] ; Store[043] ; GDI[053] |
|
665 |
|
666 apgrfx.dll: Fntstore[043] ; Fbserv[066] ; Bitgdi[058] ; Wserv[085] |
|
667 |
|
668 Tools: E32Tools[067] ; E32Utils[018] ; GCCTOOLS[113] |
|
669 |
|
670 General: |
|
671 |
|
672 Binary compatible with 065 - 072 |
|
673 |
|
674 ) Fixes SW3-1041: MNT now unsets all environmental variables it uses |
|
675 |
|
676 ) Fixes SW3-1048: CApaAppList::UpdateL() does not increment iUpdateCounter. At last the extras bar updates properly. |
|
677 |
|
678 |
|
679 |
|
680 |
|
681 |
|
682 |
|
683 AppArc 1.0.072 |
|
684 ============== |
|
685 |
|
686 27/05/97 by IanH |
|
687 |
|
688 Uses: apparc.dll: E32[107] ; F32[074] ; Store[043] ; GDI[053] |
|
689 |
|
690 apgrfx.dll: Fntstore[043] ; Fbserv[066] ; Bitgdi[058] ; Wserv[085] |
|
691 |
|
692 Tools: E32Tools[067] ; E32Utils[018] ; GCCTOOLS[113] |
|
693 |
|
694 General: |
|
695 |
|
696 Binary compatible with 065 - 071 |
|
697 |
|
698 ) Fixed SW3-950: CApaApplication:GenerateFileName() will PANIC with <long-name>(100) by increasing a temp descriptors length by 4 bytes |
|
699 |
|
700 ) Fixed SW3-1002: App list not always marked changed when it should be. Now it is. |
|
701 |
|
702 |
|
703 |
|
704 AppArc 1.0.071 |
|
705 ============== |
|
706 |
|
707 27/05/97 by IanH |
|
708 |
|
709 Uses: apparc.dll: E32[107] ; F32[074] ; Store[043] ; GDI[053] |
|
710 |
|
711 apgrfx.dll: Fntstore[043] ; Fbserv[066] ; Bitgdi[058] ; Wserv[085] |
|
712 |
|
713 Tools: E32Tools[067] ; E32Utils[018] ; GCCTOOLS[113] |
|
714 |
|
715 General: |
|
716 |
|
717 Binary compatible with 065 - 070 |
|
718 |
|
719 ) Upgraded to C-001 level dependancies. |
|
720 |
|
721 ) Eradicated all "taking address of temporary" warnings caused by passing &_L("") descriptors into TParse::Set() by creating temporary variables of type TPtrC. |
|
722 |
|
723 ) Checked that all major mnt commands work properly. |
|
724 |
|
725 ) App list server version number incremented (I forgot to do this in the last release) |
|
726 |
|
727 ) Fixed SW3-125: Changes to AIF files weren't being picked up by the cached app list. |
|
728 The list now caches the time stamp of each app's AIF - if this changes between scans then the data is re-read. |
|
729 If the AIF disappears, the icons & caption are reset to the defaults. |
|
730 |
|
731 ) Fixed SW-5483: Password protected documents not handled gracefully under WINC. |
|
732 Model doors tried to restore encrypted documents without decrypting them first, leading to death. |
|
733 Now encrypted docs are not restored, instead their container stores are just kept kicking about, ready to be written out again. |
|
734 This will allow Nautilus' Agenda synchronizer to deal with passworded memos tidily. |
|
735 |
|
736 |
|
737 |
|
738 |
|
739 AppArc 1.0.070 |
|
740 ============== |
|
741 |
|
742 23/05/97 by IanH |
|
743 |
|
744 Uses: apparc.dll: E32[105] ; F32[072] ; Store[042] ; GDI[051] |
|
745 |
|
746 apgrfx.dll: Fntstore[042] ; Fbserv[063] ; Bitgdi[056] ; Wserv[083] |
|
747 |
|
748 Tools: E32Tools[066] ; E32Utils[014] ; GCCTOOLS[113] |
|
749 |
|
750 General: |
|
751 |
|
752 Binary compatible with 065 - 069 |
|
753 |
|
754 ) Fixed a defect in the recognizer list where in copying recognizers from one list to another the wrong extension was being appended to recognizer dll names and so they were failing to load. |
|
755 Involved adding one line of code that parsed in the absent .RDL extension. (spotted by Bill) |
|
756 |
|
757 |
|
758 |
|
759 AppArc 1.0.069 |
|
760 ============== |
|
761 |
|
762 21/05/97 by IanH |
|
763 |
|
764 Uses: apparc.dll: E32[105] ; F32[072] ; Store[042] ; GDI[051] |
|
765 |
|
766 apgrfx.dll: Fntstore[042] ; Fbserv[063] ; Bitgdi[056] ; Wserv[083] |
|
767 |
|
768 Tools: E32Tools[066] ; E32Utils[014] ; GCCTOOLS[113] |
|
769 |
|
770 General: |
|
771 |
|
772 Binary compatible with 065 - 068 |
|
773 |
|
774 ) The data cached by the recognizer list to avoid calls to RLibrary wasn't actually being taken advantage of, meaning that the Shell couldn't atke advantage of these methods. |
|
775 The cached data is now used whereever possible (spotted by Bill). |
|
776 Changes made to CApaScanningFileRecognizer::operator[] and CApaScanningFileRecognizer::RecognizerListLC() |
|
777 |
|
778 |
|
779 |
|
780 |
|
781 |
|
782 |
|
783 |
|
784 AppArc 1.0.068 |
|
785 ============== |
|
786 |
|
787 21/05/97 by IanH |
|
788 |
|
789 Uses: apparc.dll: E32[105] ; F32[072] ; Store[042] ; GDI[051] |
|
790 |
|
791 apgrfx.dll: Fntstore[042] ; Fbserv[063] ; Bitgdi[056] ; Wserv[083] |
|
792 |
|
793 Tools: E32Tools[066] ; E32Utils[014] ; GCCTOOLS[113] |
|
794 |
|
795 General: |
|
796 |
|
797 Binary compatible with 065 - 067 |
|
798 |
|
799 ) SW3-305 fixed: CApaAppList::Update() and Purge() fixed so that overriding of built-in apps works properly. |
|
800 |
|
801 ) Loading/unloading/overriding of file recognizer dlls fixed. This has necessitated a couple of API changes: |
|
802 |
|
803 Two new exported methods on CApaFileRecognizerType - Lock() and Unlock(). |
|
804 When CApaFileRecognizer::RecognizeFileL() is called and a particular type recognizer returned, this object should be Lock()'ed immediately, and should only be Unlock()'ed when you've finished using it. |
|
805 This will ensure the dll is not unloaded while you are using it. This change in usage will only affect the Shell. |
|
806 |
|
807 The protected method IMPORT_C TInt CApaFileRecognizer::RemoveFileRecognizerType(const CApaFileRecognizerType* aFileRecognizerType) added to allow recognizers to be removed from the list before their dll's are unloaded. |
|
808 |
|
809 |
|
810 |
|
811 |
|
812 |
|
813 |
|
814 |
|
815 AppArc 1.0.067 |
|
816 ============== |
|
817 |
|
818 19/05/97 by IanH |
|
819 |
|
820 Uses: apparc.dll: E32[105] ; F32[072] ; Store[042] ; GDI[051] |
|
821 |
|
822 apgrfx.dll: Fntstore[042] ; Fbserv[063] ; Bitgdi[056] ; Wserv[083] |
|
823 |
|
824 Tools: E32Tools[066] ; E32Utils[014] ; GCCTOOLS[113] |
|
825 |
|
826 General: |
|
827 |
|
828 Binary compatible with 065 and 066 |
|
829 |
|
830 From Neil: |
|
831 |
|
832 ) Fixed SW3-347: EXEs don't die properly when killed by the shell - all memory is now freed. |
|
833 |
|
834 ) Fixed SW3-362: TApaTask::EndTask(TTimeIntervalMicroSeconds32 aDelay, TRequestStatus& aStatus) is flawed. |
|
835 It loses its two parameters, and no longer waits to see if an app responds to the shutdown message, offering to kill it if it does not. |
|
836 This behaviour was flawed because so apps where taking longer than the time limit to save their doc's before exiting, and so where being mistakenly identified as hung and were being shot. |
|
837 Changes made to the .def and .frx files to remove the parameters - only Eikon need rebuild. |
|
838 |
|
839 From Ian: |
|
840 |
|
841 ) Optimisations of CApaDoor::SetFormatToIcon() code have brought a 100% speed increase for both creating and restoring doors. |
|
842 The changes included using the app list server to avoid scanning the filesystem when possible, and cutting down my use of AIF files (they are now loaded once instead of twice). |
|
843 |
|
844 ) Fixed SW3-373: CreateControl should be CreateControlL(). control def & frz files altered accordingly. |
|
845 |
|
846 ) Fixed SW3-424: AppListServer version numbers incorrect. |
|
847 |
|
848 ) CApaScanningFileRecognizer now caches recognizers uid, drive and name so that this information can be returned to callers in other threads (the alternative, using RLibrary, will not work in this case). |
|
849 This fix facilitates the Shell's use of this class. |
|
850 |
|
851 ) "Profile" testcode added that profiles various aspects of apparc. |
|
852 |
|
853 |
|
854 |
|
855 |
|
856 |
|
857 |
|
858 |
|
859 AppArc 1.0.066 |
|
860 ============== |
|
861 |
|
862 15/05/97 by IanH |
|
863 |
|
864 Uses: apparc.dll: E32[105] ; F32[072] ; Store[042] ; GDI[051] |
|
865 |
|
866 apgrfx.dll: Fntstore[042] ; Fbserv[063] ; Bitgdi[056] ; Wserv[083] |
|
867 |
|
868 Tools: E32Tools[066] ; E32Utils[014] ; GCCTOOLS[113] |
|
869 |
|
870 General: |
|
871 |
|
872 Binary compatible with 065 |
|
873 |
|
874 From Neil: |
|
875 |
|
876 ) Fix for SW-5164 - Bombs leaping to the foreground when tasking between apps. |
|
877 BC change involving moving the new window to the front before sending the old window to the back when switching tasks. |
|
878 |
|
879 From Ian: |
|
880 |
|
881 ) Introduction of 3 new classes, and accompanying testcode :-) |
|
882 The technology for making the shell's control panel dynamically extensible is now in place. |
|
883 Extensions come in the form of plug-in dll's who's API must conform to control.def/frx (released in ctwns*.* and ctmarm*.*). |
|
884 This means a method of the form: |
|
885 |
|
886 EXPORT_C void CreateControl(const TDesC& aPath) |
|
887 {} |
|
888 |
|
889 This first export must be a method that creates the control and runs it asynchronously. |
|
890 The path passed in is the full path of the control's dll - this could be useful for loading resources etc. |
|
891 There is no base class for these controls - implementors may write them as they wish. |
|
892 |
|
893 The plug-in control dll's must reside in \system\controls\ on any local drive. |
|
894 They should have a ".ctl" extension and a UID2 of KUidSystemControlDll (defined in apgctl.h). |
|
895 Their UID3 should uniquely identify that particular control. |
|
896 The system for loading these dll's means that dll's in ROM can be overridden by dll's in RAM and on local media - this means that the standard controls in the shell may be replaced by whizzier versions in the future. |
|
897 |
|
898 Each control dll may have an accompanying AIF file. |
|
899 If present, this file should contain the controls icon (1 icon 48x48 pixels), and it's caption in multiple languages. The other sections of AIF files are ignored for the purposes of controls. |
|
900 If a control doesn't have an accompanying AIF file, its caption defaults to the dll name and a default icon is used (this icon need not be the same as that for unrecognised files). |
|
901 |
|
902 AppArc provides classes to automate loading and caching these plug-in controls: |
|
903 CApaSystemControl (apgctl.h) is a wrapper for a plug-in extension to the shell's control panel. It represents a loaded control dll, and also caches the dll's icon and caption. |
|
904 CApaSystemControlList (apgctl.h) holds a linked list of CApaSystemControl's. It also manages rescanning of the filesystem to locate new controls. |
|
905 CApaScanningControlFinder (apfctlf.h) carries out the actual scanning, and it is here that the directory structure for control dll's is mandated |
|
906 |
|
907 One minimal sample control has been supplied in testcode: m_ctrl.mak |
|
908 |
|
909 |
|
910 |
|
911 |
|
912 AppArc 1.0.065 |
|
913 ============== |
|
914 |
|
915 14/05/97 by IanH |
|
916 |
|
917 Uses: |
|
918 |
|
919 apparc.dll: E32[105] ; F32[072] ; Store[042] ; GDI[051] |
|
920 |
|
921 apgrfx.dll: Fntstore[042] ; Fbserv[063] ; Bitgdi[056] ; Wserv[083] |
|
922 |
|
923 Tools: E32Tools[066] ; E32Utils[014] ; GCCTOOLS[113] |
|
924 |
|
925 General: |
|
926 |
|
927 ***** Do not touch this apparc until there's a new WPENG to go with it!!!!!!!! ***** |
|
928 |
|
929 Not quite binary compatible with 058 - 061 and 064, but almost nobody will notice (see 5) |
|
930 |
|
931 1) Moved up to C0 level dependancies. |
|
932 |
|
933 2) App's aifdata no longer released - this is now released with AifTool but in time will migrate to the apps themselves. |
|
934 |
|
935 3) Fixed SW3-71 - IMPORT_C static TInt NewThread() removed from apsserv.h as the method didn't actually exist. |
|
936 |
|
937 4) Fixed SW-5359 - Drives are now scanned in the order y:->a: then z:, ensuring that removable/substed drives are scanned before the RAM drive, and that ROM is scanned last. |
|
938 Remote drives are not scanned. |
|
939 This means that files in RAM or ROM can be overridden by plugging in a CF card - a good last ditch escape route. |
|
940 |
|
941 5) Fixed SW-5220 - CApaModelDoor needed a DetachFromStore(), otherwise an embedded store was being left open when its host was destroyed, causing panics in Nautilus. |
|
942 CApaModelDoor now overrides virtual CPicture::DetachFromStore(), but this shouldn't affect anyone because CApaModelDoor has a NewL() and it's c'tor is private and not exported. |
|
943 This fix involved adding one new export to apparc.dll - done in a BC fashion. |
|
944 It also meant adding one new virtual function to CApaModelHeader: |
|
945 |
|
946 virtual void DetachFromStoreL(CPicture::TDetach /*aDegree*/)=0; |
|
947 |
|
948 This means that anyone who used this class must recompile against this new apparc - a grep of r: suggests that this will only be WPENG and Nautilus. |
|
949 |
|
950 grep -dli-w CApaModelHeader r:\*.cpv r:\*.inv r:\*.h_v |
|
951 |
|
952 File R:\APPARC\APPARC\APAMDR.CPV: |
|
953 File R:\APPARC\TSRC\T_MDR.CPV: |
|
954 File R:\NAOLEIFS\AGNSYSRC\E32MODEL.CPV: |
|
955 File R:\NAOLEIFS\AGNSYSRC\E32RICHT.CPV: |
|
956 File R:\NAOLEIFS\WRDSRC\EWORD.CPV: |
|
957 File R:\NAUTILUS\SCWORD\EWORD.CPV: |
|
958 File R:\WORD\WPENG\WNGDOOR.CPV: |
|
959 File R:\APPARC\INC\APAMDR.H_V: |
|
960 File R:\NAOLEIFS\AGNSYSRC\E32MODEL.H_V: |
|
961 File R:\NAOLEIFS\WRDSRC\MODELDH.H_V: |
|
962 File R:\NAOLEIFS\WRDSRC\MODELHD.H_V: |
|
963 File R:\WORD\INC\WNGDOOR.H_V: |
|
964 |
|
965 Implementors of this class (ie WPENG) should provide this new method with a body that, if necessary, passes the call on to the model that they contain. This will ensure that all users of the store have a chance to tidily get rid of any dependance on the store before it disappears. |
|
966 In the case of WPENG this will mean either adding a DetachFromStoreL() method to CWordModel that propagates the call to its text component, or making this call directly on the text from the header. |
|
967 Nautilus, the only other team affected, will need to do no more than rebuild against the new apparc and WPENG. |
|
968 |
|
969 6) .map files for all arm dll's are now pvcsed along with the dll's themselves |
|
970 |
|
971 |
|
972 |
|
973 |
|
974 |
|
975 |
|
976 |
|
977 AppArc.064 |
|
978 ========== |
|
979 |
|
980 07/05/97 by IanH |
|
981 |
|
982 Uses: |
|
983 |
|
984 apparc.dll: E32[099+] ; F32[069+] ; Store[042+] ; GDI[048+] |
|
985 |
|
986 apgrfx.dll: Fntstore[038+] ; Fbserv[057+] ; Bitgdi[055+] ; Wserv[080+] |
|
987 |
|
988 Tools: E32Tools[063] ; E32Utils[012] ; GDITOOLS[034] ; GCCTOOLS[113] |
|
989 |
|
990 General: |
|
991 |
|
992 ) Binary compatible with 058 - 062. |
|
993 |
|
994 ) replaces bad 063 |
|
995 |
|
996 |
|
997 AppArc.063 |
|
998 ========== |
|
999 |
|
1000 07/05/97 by IanH |
|
1001 |
|
1002 Uses: |
|
1003 |
|
1004 apparc.dll: E32[099+] ; F32[069+] ; Store[042+] ; GDI[048+] |
|
1005 |
|
1006 apgrfx.dll: Fntstore[038+] ; Fbserv[057+] ; Bitgdi[055+] ; Wserv[080+] |
|
1007 |
|
1008 Tools: E32Tools[063] ; E32Utils[012] ; GDITOOLS[034] ; GCCTOOLS[113] |
|
1009 |
|
1010 General: |
|
1011 |
|
1012 ) Binary compatible with 058 - 062. |
|
1013 |
|
1014 ) Fixed SW-5063 - apps being orphaned if their doc's failed to construct. |
|
1015 |
|
1016 ) Following three public methods added to CApaScanningFileRecognizer: |
|
1017 |
|
1018 IMPORT_C void SetRecognizerL(const TRecognizer& aRecognizer); |
|
1019 IMPORT_C TRecognizer operator[](TInt aIndex)const; |
|
1020 IMPORT_C TInt UpdateCounter()const; |
|
1021 |
|
1022 These additions have been approved by the BC police and have been implemented in a BC fashion. |
|
1023 They are required by the Shell so that it can keep it's two recognizers in sync with one another without undue work and allocing. |
|
1024 |
|
1025 SetRecognizerL() will return silently if a recognizer of that UID is already present in the list, but will leave if it doesn't exist on disc or has incorrect UID's etc. |
|
1026 |
|
1027 ) T_File testcode expanded to test the above |
|
1028 |
|
1029 |
|
1030 |
|
1031 AppArc.062 |
|
1032 ========== |
|
1033 |
|
1034 02/05/97 by IanH |
|
1035 |
|
1036 Uses: |
|
1037 |
|
1038 apparc.dll: E32[099+] ; F32[069+] ; Store[042+] ; GDI[048+] |
|
1039 |
|
1040 apgrfx.dll: Fntstore[038+] ; Fbserv[057+] ; Bitgdi[055+] ; Wserv[080+] |
|
1041 |
|
1042 Tools: E32Tools[063] ; E32Utils[012] ; GDITOOLS[034] ; GCCTOOLS[113] |
|
1043 |
|
1044 General: |
|
1045 |
|
1046 ) Binary compatible with 058 - 061. |
|
1047 |
|
1048 ) Fix to CApaDoor::NewL() that was not always deleting the doc it took ownership of in OOM conditions. |
|
1049 |
|
1050 ) Texted's .AIF updated such that it's caption is now "Program" |
|
1051 |
|
1052 ) The spec of CApaAppFinder::FindAppL(const TDesC& aFileName,TUid aFileUid)=0 has changed (SDK team take note!): |
|
1053 |
|
1054 - if a valid full path has been passed in as aFileName, that is returned. |
|
1055 |
|
1056 Otherwise, |
|
1057 |
|
1058 - if aFileUid is not KNullUid all drives are scanned for a file matching aFileUid and aFileName's extension (.APP is used if no extension is specified) ie. if aFileUid is supplied aFileName is ignored except for the extension |
|
1059 - if aFileUid is KNullUid a file matching aFileName is searched for |
|
1060 |
|
1061 This means that an app can have it's dll and directory renamed (eg system\apps\word\word.app -> system\apps\oldword\oldWord.app) and word documents will still be associated with it because association is now by UID in the first instance. |
|
1062 |
|
1063 ) Testcode updated. |
|
1064 |
|
1065 |
|
1066 |
|
1067 |
|
1068 |
|
1069 AppArc.059 |
|
1070 ========== |
|
1071 |
|
1072 29/04/97 by IanH |
|
1073 |
|
1074 Uses: |
|
1075 |
|
1076 apparc.dll: E32[099+] ; F32[069+] ; Store[042+] ; GDI[048+] |
|
1077 |
|
1078 apgrfx.dll: Fntstore[038+] ; Fbserv[057+] ; Bitgdi[055+] ; Wserv[080+] |
|
1079 |
|
1080 Tools: E32Tools[063] ; E32Utils[012] ; GDITOOLS[034] ; GCCTOOLS[113] |
|
1081 |
|
1082 General: |
|
1083 |
|
1084 ) Binary compatible with 058. Source compatible unless you used KApfTempPath in apfdef.h |
|
1085 |
|
1086 ) KApfTempPath now hidden in a static method Apfile::TempPath(), added in a BC manner. |
|
1087 |
|
1088 ) Defect in TApaAppCapability::InternalizeL() that was causing the iIsHidden flag to always be set to false fixed (spotted by Bill). |
|
1089 |
|
1090 ) 2nd UID of KSharedLibraryUid [0x1000008d] added to apparc.dll, apgrfx.dll, apfile.dll and apserv.dll (SW-3947) |
|
1091 |
|
1092 ) CApaAppListServer::NewL() no longer panics if you try to create a second instance - it now leaves KErrAlreadyExists (SW-4338) |
|
1093 |
|
1094 ) CApaScanningAppFinder::FindAppL() does not now confuse files and directories, and only recognizes apps with \system\apps\ in their path (SW-4325) |
|
1095 |
|
1096 ) Server-side support for RApaLsSession::GetAppCapability() and StartApp() added - they no longer return KErrNotSupported. |
|
1097 |
|
1098 ) Apparc no longer releases the default AIF file (appdata.zip) - this will now be released by Eikon. |
|
1099 |
|
1100 |
|
1101 |
|
1102 |
|
1103 |
|
1104 |
|
1105 |
|
1106 AppArc.058 |
|
1107 ========== |
|
1108 |
|
1109 22/04/97 by IanH |
|
1110 |
|
1111 Uses: |
|
1112 |
|
1113 apparc.dll: E32[098] ; F32[069] ; Store[042] ; GDI[049] |
|
1114 |
|
1115 apgrfx.dll: Fntstore[038] ; Fbserv[055] ; Bitgdi[054] ; Wserv[079] |
|
1116 |
|
1117 Tools: E32Tools[063] ; E32Utils[011] ; GDITOOLS[032] ; GCCTOOLS[113] |
|
1118 |
|
1119 General: |
|
1120 |
|
1121 1) Not binary compatible with previous releases. This release freezes the API. |
|
1122 |
|
1123 ) Takes new components as above |
|
1124 |
|
1125 ) TBool TApaAppCapability::iAppIsHidden added to AIF files. The extensability system for capabilities means that old AIF files are still valid - they will just default to a false value for this new flag. |
|
1126 If this flag is set true then the app should not be shown in the Shell (eg in the extra's bar). (requested by Kevin Dempsey) |
|
1127 |
|
1128 ) CApaDocument::ValidatePasswordL()const added. Apps that support passwording should override the default implementation and check the password, leaving KErrLocked if the password is set but not successfully entered. (suggested by DW) |
|
1129 |
|
1130 ) CApaDoor::DocumentL(TBool aCheckPassword=EFalse) gains the aCheckPassword parameter. |
|
1131 If aCheckPassword is set to ETrue and the document is in memory, any password will be checked before a handle to the doc is returned. |
|
1132 If the document has to be restored the password will always be checked, irrespective of this parameter's value. |
|
1133 |
|
1134 ) TRunContext removed from CApaApplication, along with virtual method DocumentRunContext(). |
|
1135 It has been replaced by a pv method Capability() that should return a cached version of the information held in the AIF file (an implementation of this method will be provided at the Eikon level). |
|
1136 |
|
1137 == sell App::Capability() and PreDocConstruct() to Eikon |
|
1138 |
|
1139 ) CApaDoor's c'tor now checks that the document passed in supports embedding, leaving KErrNotSupported if it does not. |
|
1140 |
|
1141 ) When CApaDoor restores a glass door but SetFormatToGlassL() fails, the door now sets itself iconic unless the error returned was KErrNoMemory, which is propagated. |
|
1142 |
|
1143 ) TFileName iFullFileName removed - RLibrary::FileName() is now used instead. |
|
1144 |
|
1145 ) RApaLsSession::GetAppCapability() added - stubbed for now. |
|
1146 |
|
1147 ) CApaMaskedBitmap c'tor provided and made private to sabotage derivation. |
|
1148 |
|
1149 ) CApaWindowGroupName member data made private. |
|
1150 |
|
1151 ) CApaFileRecognizerType::RunL() now returns the TThreadId of the main thread started so that observers can log onto clients threads etc. (requested by HowardP) |
|
1152 |
|
1153 ) Taken over releasing the app's .AIF files from Bill - Apparc now pvcs's the necessary bitmaps etc. |
|
1154 |
|
1155 ) enum CApaFileRecognizerType::TFileType renamed TRecognizedType. Some values have been renamed: |
|
1156 EApp -> EProgram |
|
1157 ENotDocOrApp -> EOtherFile |
|
1158 |
|
1159 Type() method added to CApaFileRecognizerType that returns the TRecognizedType of the current file. |
|
1160 |
|
1161 ) TUid CApaFileRecognizerType::FileType() renamed TypeUid() |
|
1162 |
|
1163 ) TApaAppCapability::CopyCapability() made void. |
|
1164 CApaFileRecognizerType::Capability() made void. |
|
1165 CApaAppData::Capability() made void. |
|
1166 CApaAppInfoFileReader::Capability() made void. |
|
1167 |
|
1168 ) CApaAppListServer no longer takes ownership of the app list and recognizer passed into its c'tor |
|
1169 |
|
1170 ) UpdateList() withdrawn from the Xxx API to avoid nasty re-entrance problems in the app list. |
|
1171 |
|
1172 ) The max filename length for recognizer dll's is now limited to 12 characters (not including path or extension). |
|
1173 This is defined as KApaMaxRecognizerNameLength in apaflrec.h |
|
1174 |
|
1175 ) CRecognizerArray* RecognizerListLC()const and SetRecognizersFromList(const CRecognizerArray& aList) added to CApaScanningFileRecognizer so that multiple recognizers can be kept up-to-date without them all needing to rescan. |
|
1176 |
|
1177 ) The exe recognizer now recognizes all files with a 1st UID of KExecutableImageUid (defined in e32uid.h). It runs them as exe's on ARM, but loads them as dll's under WINS (exe's dont work under WINS). |
|
1178 UID[2] values are no longer used for exe's - KUidExe, KUidExeNonFile and KUidExeDoc have been withdrawn. |
|
1179 |
|
1180 Changes as a result of AndrewT's API review: |
|
1181 |
|
1182 ) CApaDll, and it's containing header apadll.h, made private - no longer released |
|
1183 |
|
1184 ) MApaAppFinder becomes CApaAppFinder - better design, as the object can be deleted through this interface |
|
1185 MApaAppLocator becomes CApaAppLocator for similar reasons... |
|
1186 |
|
1187 ) As a result CApaAppFinder becomes CApaScanningAppFinder |
|
1188 |
|
1189 ) CApaApplication::OpenIniFileLC(RFs& aFs) becomes pure virtual to avoid dangerous policy decisions on file locations. |
|
1190 An implementation will be provided by Eikon :-) |
|
1191 |
|
1192 ) Reserved some virtual methods in CApaApplication and CApaDocument |
|
1193 |
|
1194 ) KIniFileDrive removed from apadef.h along with KIniFileExtension and KAppInfoFileExtension |
|
1195 |
|
1196 ) TApaDocCleanupItem (apacln.h) has changed slightly - it's now even easier to but CApaDocument-derived classes on the cleanup stack: |
|
1197 |
|
1198 TApaDocCleanupItem cleanup(iApaProcess,doc); |
|
1199 CleanupStack::PushL(cleanup); |
|
1200 // do stuff... |
|
1201 CleanupStack::Pop(); |
|
1202 |
|
1203 ) The following definitions moved from apadef.h to a new header apfdef.h: |
|
1204 KAppFileExtension |
|
1205 KAppInfoFileExtension |
|
1206 KIniFileExtension |
|
1207 KIniFileDrive |
|
1208 |
|
1209 |
|
1210 |
|
1211 |
|
1212 AppArc.056 |
|
1213 ========== |
|
1214 |
|
1215 07/04/97 by IanH |
|
1216 |
|
1217 Uses: |
|
1218 |
|
1219 apparc.dll: E32[097] ; F32[067] ; Store[041] ; GDI[047] |
|
1220 |
|
1221 apgrfx.dll: Fntstore[038] ; Fbserv[053] ; Bitgdi[053] ; Wserv[078] |
|
1222 |
|
1223 Tools: E32Tools[060] ; E32Utils[010] ; GDITOOLS[031] ; GCCTOOLS[113] |
|
1224 |
|
1225 General: |
|
1226 |
|
1227 1) Not binary compatible with previous releases. |
|
1228 |
|
1229 ) CApaMaskedBitmap::NewL() made static (spotted by Bill) |
|
1230 |
|
1231 ) As suggested by Geert, the protected interfaces of all public classes have been reviewed. |
|
1232 The following classes no longer have protected interfaces, meaning that they lose some exported functions and can no longer be derived from: |
|
1233 |
|
1234 CApaDoor |
|
1235 CApaModelDoor |
|
1236 CApaAppFinder |
|
1237 CApaIconFileReader / Writer (these classes have also been renamed... see below) |
|
1238 |
|
1239 ) CApaAppListServer startup changed. The server now runs in the callers thread, and takes ownership of the applist and file recognizer passed to it. |
|
1240 Any shell should have code similar to the following in it's construction routine (eg in CShlModel::NewL()): |
|
1241 |
|
1242 CApaAppFinder* appFinder=CApaAppFinder::NewL(fs); |
|
1243 appList = CApaAppList::NewL(fs,appFinder); // takes ownership of appFinder |
|
1244 fileRecognizer = CApfFileRecognizer::NewL(fs,appList,aAppStarter); |
|
1245 appListServer = CApaAppListServer::NewL(appList,fileRecognizer); // takes ownership of appList and fileRecognizer |
|
1246 |
|
1247 ) Icon files have been renamed to application info files - they now contain information previously encoded into the app UID. |
|
1248 The old .ICN file format is no longer supported - new .AIF files for all apps will be forthcoming. |
|
1249 The capabilities are defined by the following class in apgicnfl.h: |
|
1250 |
|
1251 class TApaAppCapability |
|
1252 { |
|
1253 public: |
|
1254 TBool iCannotRunAsMainApp; |
|
1255 TBool iIsEmbeddable; |
|
1256 TBool iSupportsNewFile; |
|
1257 }; |
|
1258 typedef TPckgBuf<TApaAppCapability> TApaAppCapabilityBuf; |
|
1259 |
|
1260 New methods of the app info file reader and writer (previously icon file reader/writer) get and set the capability: |
|
1261 |
|
1262 TInt CApaAppInfoFileReader::Capability(TDes8& aInfo)const |
|
1263 TInt CApaAppInfoFileWriter::SetCapability(TDes8& aInfo)const |
|
1264 |
|
1265 Both methods should be used in conjunction with the TApaAppCapabilityBuf buffer as follows: |
|
1266 |
|
1267 // set some capabilities |
|
1268 TApaAppCapability capability; |
|
1269 capability.iIsEmbeddable = ETrue; |
|
1270 capability.iSupportsNewFile = EFalse; |
|
1271 TApaAppCapabilityBuf buf(capability); |
|
1272 TInt ret = writer->SetCapability(buf); |
|
1273 |
|
1274 // check the capability |
|
1275 TApaAppCapabilityBuf buf; |
|
1276 TInt ret = reader->Capability(buf); |
|
1277 TApaAppCapability capability=buf(); |
|
1278 |
|
1279 ) There have been various API changes to support this: |
|
1280 - The CApaIconFileXxx classes become CApaAppInfoFileXxx |
|
1281 - KIconFileExtension becomes KAppInfoFileExtension and is now defined as ".AIF" |
|
1282 - KUidAppIcon is renamed KUidAppInfoFile, but retains the same value. |
|
1283 - some classes have gained Capability(TDes& ) methods, into which you should pass a TApaAppCapabilityBuf as described above. |
|
1284 - CApaApplication::OpenIconFileLC() becomes OpenAppInfoFileLC() |
|
1285 - MApaAppLocator::GetAppCapabilityByUid(TDes8& aCapabilityBuf,TUid aAppUid)=0 added |
|
1286 |
|
1287 ) All apps should now have the same UID[1] - KUidApp. All other app UID values have been withdrawn. |
|
1288 As a result CApaDll::IsAppUid() has been withdrawn. |
|
1289 |
|
1290 ) EIKAPP.DEF, the def file used by apps when linking, has been renamed APP.DEF and is now reeased by apparc into epoc32\release\wins. |
|
1291 The link section of all apps should now contain /def:"\Epoc32\Release\Wins\app.def" unless they have any other exports apart from those specified app.def |
|
1292 A matching app.frz has been released into \Epoc32\Release\Marm\ - this is only a guide however. |
|
1293 Each app should produce it's own set of 4 ARM .frz files (one for each build) because ARM .frz files encode the dll name and build in their first line. |
|
1294 |
|
1295 ) There are two new releasables dfwns and dfarm that should be fetched to \epoc32\release\wins\ and \epoc32\release\marm\ respectively. They contain the .def files for apps and recognizers. |
|
1296 |
|
1297 From Neil: |
|
1298 |
|
1299 ) CApaTask::SwitchOpenFile() and SwitchCreateFile() now check the window group name for busy and not supported flags, returning an error if the request cannot be completed. |
|
1300 A few chnages have been made to CApaWindowGroupName to support this |
|
1301 |
|
1302 |
|
1303 |
|
1304 |
|
1305 |
|
1306 |
|
1307 |
|
1308 |
|
1309 |
|
1310 AppArc.055 |
|
1311 ========== |
|
1312 |
|
1313 06/04/97 by IanH |
|
1314 |
|
1315 Uses: |
|
1316 |
|
1317 apparc.dll: E32[096] ; F32[065] ; Store[040] ; GDI[046] |
|
1318 |
|
1319 apgrfx.dll: Fntstore[037] ; Fbserv[052] ; Bitgdi[051] ; Wserv[076] |
|
1320 |
|
1321 Tools: E32Tools[057] ; E32Utils[009] ; GDITOOLS[031] ; GCCTOOLS[113] |
|
1322 |
|
1323 General: |
|
1324 |
|
1325 1) Not binary compatible with previous releases. |
|
1326 |
|
1327 From Neil: |
|
1328 |
|
1329 ) RestartAfterBackup() and Set...() removed from CApaWindowGroupName API as these services are now handled remotely. |
|
1330 |
|
1331 ) RespondsToSwitchFilesEvent() and Set...() added to CApaWindowGroupName - an app (eg OPL) can unset this flag to inform the shell that it does not support switch files and that a new instance should be created for each new launching of the app. |
|
1332 |
|
1333 ) RespondsToShutdownEvent() and Set...() added to CApaWindowGroupName - an app (eg OPL) can set this flag to inform any shell that it needs to be killed, not closed. |
|
1334 |
|
1335 ) TApaTask::KillTask() added to kill tasks that dont respond to "shutdown" messages |
|
1336 |
|
1337 ) T_wgnam extended to test above CApaWindowGroupName changes. |
|
1338 |
|
1339 From Ian: |
|
1340 |
|
1341 ) Fixes to a couple of header files such that all referenced classes are now defined prior to their use, rather than relying on someone else doing it some time before including that header. |
|
1342 |
|
1343 ) CApaAppList now behaves sensibly if an app's icon file is corrupt or empty - it loads icons from the default icon file rather than leaving. |
|
1344 |
|
1345 ) CApaIconFileReader::NewL() added to complement NewLC() |
|
1346 |
|
1347 ) Extra "name" builds added to all .mak files to make binary compatable releases easier (suggested by Geert) |
|
1348 |
|
1349 ) Temporarily iconic doors now persist the correct glass door size even if the embedded doc is edited (defect spotted by MartinH SW-2195) |
|
1350 |
|
1351 ) Base address of 0x43700000 set for apserv.dll (ommission spotted by MartinB) |
|
1352 |
|
1353 ) All RApaLsSession methods now implemented except for UpdateList() and StartApp(), which still return KErrNotSupported. |
|
1354 |
|
1355 |
|
1356 |
|
1357 |
|
1358 |
|
1359 |
|
1360 |
|
1361 AppArc.053 |
|
1362 ========== |
|
1363 |
|
1364 30/03/97 by IanH |
|
1365 |
|
1366 Uses: |
|
1367 |
|
1368 apparc.dll: E32[095] ; F32[063] ; Store[039] ; GDI[046] |
|
1369 |
|
1370 apgrfx.dll: Fntstore[037] ; Fbserv[051] ; Bitgdi[051] ; Wserv[075] |
|
1371 |
|
1372 Tools: E32Tools[056] ; E32Utils[009] ; GDITOOLS[031] ; GCCTOOLS[113] |
|
1373 |
|
1374 General: |
|
1375 |
|
1376 1) Not binary compatible |
|
1377 |
|
1378 From Neil: |
|
1379 |
|
1380 ) CApaCommandLine::New(HBufC*) added. |
|
1381 |
|
1382 ) Untrapped leave defect fix to CApaTaskList |
|
1383 |
|
1384 From Ian: |
|
1385 |
|
1386 ) OOM testcode T_OOM added. A couple of OOM fixes have arisen from this. |
|
1387 |
|
1388 ) Fix to CApaAppFinder such that it ignores more F32 errors rather than stopping a search prematurely without good reason (spotted by Simon while using his floppy drive) |
|
1389 |
|
1390 ) The API of RApaLsSession (apgcli.h) is now complete, though some methods are not yet implemented server-side. |
|
1391 This class represents a session with the app list server. |
|
1392 The app list server provides system-wide access to any shell's cached list of applications. |
|
1393 When the shell is started it will create a CApaAppList - after doing this it should start a server, passing in the handle to it's list. |
|
1394 The server shares the Shell's heap and accesses the list as required. |
|
1395 If the shell does not set up the server all client attempts to connect will fail. Among other things, this will mean that "Embed object" dialogs will not work. |
|
1396 |
|
1397 ) TApaAlServStarter::StartInThread(CApaAppList* aAppList,CApaFileRecognizer* aFileRecognizer) now takes the CApaFileRecognizer* as an extra parameter. |
|
1398 For you can pass in a null recognizer handle if you wish, though that will mean that clients wont be able to start apps using the app list server. |
|
1399 |
|
1400 ) Americanized some argument names in header files on request of MartinT (eg aRecogniser -> aRecognizer) |
|
1401 |
|
1402 ) static TInt CApaApplication::GenerateFileName(RFs& aFs,TFileName& aRootName) added - some code taken from Shell. |
|
1403 The root name passed should consist of drive,path,and root filename. |
|
1404 The path is created if it doesn't already exist, and then if the root filename is already in use a new name is generated: |
|
1405 eg "c:\Documents\Name.ext" |
|
1406 "c:\Documents\name(01).ext" |
|
1407 aRootName is set to equal the new full name. |
|
1408 KErrArgument is returned if not all components of aRootname are present, and KErrOverflow is returned if the generated filename becomes too long. |
|
1409 |
|
1410 ) The definition of "non-filebased" has been tightened somewhat to mean "cannot create new files" ie an app that doesn't want to appear on the Shell's "New file" list. |
|
1411 |
|
1412 ) |
|
1413 |
|
1414 |
|
1415 |
|
1416 |
|
1417 |
|
1418 |
|
1419 |
|
1420 |
|
1421 AppArc.052 |
|
1422 ========== |
|
1423 |
|
1424 24/03/97 by IanH |
|
1425 |
|
1426 Uses: |
|
1427 |
|
1428 apparc.dll: E32[093] ; F32[061] ; Store[037] ; GDI[044] |
|
1429 |
|
1430 apgrfx.dll: Fntstore[036] ; Fbserv[050] ; Bitgdi[050] ; Wserv[074] |
|
1431 |
|
1432 Tools: E32Tools[053] ; E32Utils[009] ; GDITOOLS[031] ; GCCTOOLS[113] |
|
1433 |
|
1434 General: |
|
1435 |
|
1436 1) Not binary compatible |
|
1437 |
|
1438 From Ian: |
|
1439 |
|
1440 ) The pure virtual method CApaDocument::IsEmptyL(CStreamStore) becomes IsEmpty()const. |
|
1441 It becomes const, ceases to leave and no longer takes a store as a parameter - on Restore() doc's should internalize enough data such that they know whether or not they have any content. (suggested by Delma) |
|
1442 |
|
1443 ) Added new dll apserv - released as a part of the apgrfx releasables. It provides server access to a cached list of apps available on the machine. Nobody bar Eikon will want to use it. |
|
1444 More details to follow |
|
1445 |
|
1446 ) Added CApaDoor::AppUidL() that returns the UID of the app associated with the embedded doc (requested by DavidA) |
|
1447 |
|
1448 ) Icon files no longer stretch icons to the required size when they're requested. |
|
1449 A call to CApaIconFileReader::CreateMaskedBitmapL() will now returned the largest available bitmap that isn't larger than the requested size. |
|
1450 If all available icons are larger than the size requested, the smallest available icon is scaled down and returned. |
|
1451 |
|
1452 |
|
1453 |
|
1454 |
|
1455 |
|
1456 AppArc.050 |
|
1457 ========== |
|
1458 |
|
1459 19/03/97 by IanH |
|
1460 |
|
1461 Uses: |
|
1462 |
|
1463 apparc.dll: E32[093] ; F32[061] ; Store[037] ; GDI[044] |
|
1464 |
|
1465 apgrfx.dll: Fntstore[036] ; Fbserv[050] ; Bitgdi[050] ; Wserv[074] |
|
1466 |
|
1467 Tools: E32Tools[053] ; E32Utils[009] ; GDITOOLS[031] ; GCCTOOLS[113] |
|
1468 |
|
1469 General: |
|
1470 |
|
1471 1) Binary compatible with 049 |
|
1472 |
|
1473 From Ian: |
|
1474 |
|
1475 2) Defect fix to CApaDoor::ExternalizeStateStream() - temporarily iconic doors now remember their glass size correctly after multiple Store()'s (spotted by DavidA) |
|
1476 |
|
1477 |
|
1478 |
|
1479 |
|
1480 |
|
1481 |
|
1482 |
|
1483 AppArc.049 |
|
1484 ========== |
|
1485 |
|
1486 11/3/97 by IanH |
|
1487 |
|
1488 Uses: |
|
1489 |
|
1490 apparc.dll: E32[093] ; F32[061] ; Store[037] ; GDI[044] |
|
1491 |
|
1492 apgrfx.dll: Fntstore[036] ; Fbserv[050] ; Bitgdi[050] ; Wserv[074] |
|
1493 |
|
1494 Tools: E32Tools[053] ; E32Utils[009] ; GDITOOLS[031] ; GCCTOOLS[113] |
|
1495 |
|
1496 General: |
|
1497 |
|
1498 1) Not binary compatible with previous releases |
|
1499 |
|
1500 From Ian: |
|
1501 |
|
1502 2) Defect fix to dodgy ASSERT in CApaDoor::DetachFromStore() (spotted by DavidA) |
|
1503 |
|
1504 ) CApaDocument::EditL() now takes an extra parameter: TBool aReadOnly. |
|
1505 If aReadOnly is true, the embedded doc should be opened in read-only mode - ie navigation of the document should be allowed, but it should not be possible to change the content. |
|
1506 This parameter defaults to EFalse. |
|
1507 |
|
1508 ) Agenda defects SW-479 and SW-520 fixed - glass doors now correctly persist their size if they are temporarily made iconic |
|
1509 |
|
1510 ) CApaDoor::SetFormatToTemporaryIcon() now takes a TBool parameter which allows it to be toggled on and off. The default parameter is ETrue |
|
1511 If a door is in iconic mode, SetFormatToTemporaryIcon(ETrue) has no effect - it stays iconic. |
|
1512 If a door is glass, SetFormatToTemporaryIcon(ETrue) temporarily makes it iconic, but when persisted the door will persist glass door settings. |
|
1513 SetFormatToTemporaryIcon(EFalse) only has an effect if the door is currently ETemporarilyIconic. In this case the door is returned to EGlassDoor format. |
|
1514 |
|
1515 ) TApaPictureFactory::SetIconSize() added. |
|
1516 If called, this causes all doors restored by the factory to have their iconic size set as specified instead of using the persisted value. |
|
1517 This fixes SW-1026 - doors being pasted from one app to another end up with the door size of the old app, even though this is often different to the default icon size in the new app. |
|
1518 |
|
1519 From Neil: |
|
1520 |
|
1521 ) TApaWindowGroupName becomes CApaWindowGroupName, using an HBufC to provide support for long filenames. |
|
1522 This will fix showstopper defect SW-1488 |
|
1523 |
|
1524 Consequent changes to this class are: |
|
1525 |
|
1526 The static FindByXxx() functions no longer return an instance of the class. |
|
1527 Use the NewL() or NewLC() variant which takes a window group id (returned by the FindByXxx() function), to initialize a window group name or the new exported function ConstructFromWgIdL() for an existing instance of the class |
|
1528 |
|
1529 SetCaption() becomes SetCaptionL() and likewise: SetDocName() becomes SetDocNameL(); |
|
1530 |
|
1531 |
|
1532 |
|
1533 AppArc.048 |
|
1534 ========== |
|
1535 |
|
1536 11/3/97 by DavidW |
|
1537 |
|
1538 Uses: |
|
1539 |
|
1540 apparc.dll: E32[090] ; F32[060] ; Store[037] ; GDI[044] |
|
1541 |
|
1542 apgrfx.dll: Fntstore[036] ; Fbserv[049] ; Bitgdi[049] ; Wserv[073] |
|
1543 |
|
1544 Tools: E32Tools[051] ; E32Utils[008] ; GDITOOLS[030] ; GCCTOOLS[113] |
|
1545 |
|
1546 General: |
|
1547 |
|
1548 1) Not binary compatible |
|
1549 |
|
1550 2) Provided a VALID verb for MNT.CMD, to check that the (Arm Rel and |
|
1551 Arm Deb) releaseables are completely rebuildable from the network |
|
1552 |
|
1553 3) Three new functions added to TApaTask: |
|
1554 |
|
1555 IMPORT_C TInt SwitchOpenFile(const TDesC& aFilename); |
|
1556 IMPORT_C TInt SwitchCreateFile(const TDesC& aFilename); |
|
1557 IMPORT_C TInt SendMessage(TUid aUid, const TDesC& aParams); |
|
1558 |
|
1559 4) The above implemented by means of new Uid values |
|
1560 |
|
1561 const TUid KUidApaMessageSwitchOpenFile={0x10000163}; |
|
1562 const TUid KUidApaMessageSwitchCreateFile={0x10000164}; |
|
1563 |
|
1564 5) I have broken the Unicode build, since SendMessage wants to call |
|
1565 an RWsSession function taking a TDesC8& as a parameter. I'll leave |
|
1566 this for someone else to fix |
|
1567 |
|
1568 6) Fixed the FindApp(TUid) and CycleTasks() functions to TApaTaskList |
|
1569 to be EXPORTed |
|
1570 |
|
1571 From Ian: |
|
1572 --------- |
|
1573 7) On Kevin's suggestion, introduced a new TFormat type for CApaDoorBase, namely ETemporarilyIconic |
|
1574 |
|
1575 8) New virtual function SetFormatToTemporaryIconL() in CApaDoor, with the effect that |
|
1576 // if the door is currently iconic do nothing |
|
1577 // if the door is glass switch it's format to iconic, but ensure that when externalized the format will be persisted as glass |
|
1578 |
|
1579 |
|
1580 |
|
1581 |
|
1582 |
|
1583 AppArc.047 |
|
1584 ========== |
|
1585 |
|
1586 10/3/97 by IanH |
|
1587 |
|
1588 Uses: |
|
1589 |
|
1590 apparc.dll: E32[090] ; F32[060] ; Store[037] ; GDI[044] |
|
1591 |
|
1592 apgrfx.dll: Fntstore[036] ; Fbserv[049] ; Bitgdi[049] ; Wserv[073] |
|
1593 |
|
1594 Tools: E32Tools[051] ; E32Utils[008] ; GDITOOLS[030] ; GCCTOOLS[113] |
|
1595 |
|
1596 General: |
|
1597 |
|
1598 1) Not binary compatible |
|
1599 |
|
1600 2) Takes new F32, GDI, GCC |
|
1601 |
|
1602 ) CApaDocument::EditL() no longer takes a store as a parameter. On restoration documents should hang onto the store handle for future reference, only nulling it if DetachFromStore() is called (this will be called before the doc is stored). |
|
1603 |
|
1604 ) The OPL recogniser (formerly known as recint.rdl) is no longer released by apparc. |
|
1605 It will now be released as a part of OPL - .iby's should change to reflect this but no changes to mnt getbld's should be required as all apparc's recognisers are packaged in one releasable. |
|
1606 |
|
1607 ) Default implementation of CApaDocument::GlassDoorL() now panics instead of returning null. Should aid debugging. (suggested by MartinB) |
|
1608 |
|
1609 ) TUid iSource added to CApaDoorBase for use by converters. |
|
1610 It stores the foreign representation of a translated door (eg MS Word doc), and is KNullUid if the door was not created by converting from a foreign file. |
|
1611 |
|
1612 From Bill: |
|
1613 |
|
1614 ) CApaAppList::UpdateL() changed such that it only increments the "UpdateCounter" if the apps present have changed. |
|
1615 This will stop the Shell ExtrasBar from re-drawing itself every time a file is created / deleted, etc. |
|
1616 |
|
1617 ) TApaTaskList::FindApp(TUid) and TApaTaskList::CycleTasks() added (merged by NeilD) |
|
1618 |
|
1619 |
|
1620 |
|
1621 |
|
1622 |
|
1623 |
|
1624 |
|
1625 |
|
1626 |
|
1627 |
|
1628 AppArc.046 |
|
1629 ========== |
|
1630 |
|
1631 4/3/97 by IanH |
|
1632 |
|
1633 Uses: |
|
1634 |
|
1635 apparc.dll: E32[090] ; F32[060] ; Store[036] ; GDI[043] |
|
1636 |
|
1637 apgrfx.dll: Fntstore[036] ; Fbserv[049] ; Bitgdi[049] ; Wserv[073] |
|
1638 |
|
1639 Tools: E32Tools[051] ; E32Utils[008] ; GDITOOLS[030] ; GCCTOOLS[111] |
|
1640 |
|
1641 General: |
|
1642 |
|
1643 1) Binary compatible with 045 |
|
1644 |
|
1645 ) Fixed access violation defect in CApaDoor::SetFormatToGlass() (spotted by MartinD) |
|
1646 |
|
1647 |
|
1648 |
|
1649 |
|
1650 |
|
1651 |
|
1652 |
|
1653 AppArc.045 |
|
1654 ========== |
|
1655 |
|
1656 3/3/97 by IanH |
|
1657 |
|
1658 Uses: |
|
1659 |
|
1660 apparc.dll: E32[090] ; F32[058] ; Store[036] ; GDI[043] |
|
1661 |
|
1662 apgrfx.dll: Fntstore[036] ; Fbserv[049] ; Bitgdi[049] ; Wserv[073] |
|
1663 |
|
1664 Tools: E32Tools[051] ; E32Utils[008] ; GDITOOLS[030] ; GCCTOOLS[111] |
|
1665 |
|
1666 General: |
|
1667 |
|
1668 1) Not binary compatible with 044 |
|
1669 |
|
1670 ) updated to new components as above |
|
1671 |
|
1672 ) CApaAppFinder's constructor now takes it's RFs& as const (suggested by Simon) |
|
1673 |
|
1674 ) CApaDocument::GlassPictureL() no longer takes a store as a parameter. |
|
1675 The doc will either be newly created or will be RestoreL()'ed before GlassPictureL() is called - so CApaDocument::RestoreL() must restore the doc to a state from which it can draw itself as a glass door (if it supports this form of display). |
|
1676 |
|
1677 ) CApaDoor::DocumentL() and SetFormatToGlassL() no longer take a store as a parameter |
|
1678 |
|
1679 ) CApaDoor::SetFormatToIconL() no longer takes a size as a parameter - the size is passed in on construction and persisted. |
|
1680 An iconic door's Capability() states that it does not support scaling (ie changing its size) so that form will not allow the user to drag icons to different sizes. |
|
1681 Despite this the icons size may still be altered through calls to SetSizeInTwips() and SetSizeInPixels(). |
|
1682 |
|
1683 ) Embedded documents in doors are now put in their own embedded store inside the door. (Thanks to Charles, AndrewT and Geert for help with this) |
|
1684 This means that doors can be copied without having to load up the document they contain, giving speed and memory gains. |
|
1685 A consequence of this is that even if a main document is encrypted, any embedded documents will remain unencrypted. |
|
1686 Embedded documents may be encrypted in their own right, but they do not inherit any protection from container documents. |
|
1687 This should be stressed in user documentation. |
|
1688 |
|
1689 ) Representation of doors as icons improved - they now make better use of the different sizes of icon available. |
|
1690 |
|
1691 ) If an app supports embedding (eg it has a rich text component) it should ensure that it overrides CApaDocument::DetachFromStore and propagates the call to all embedded objects. |
|
1692 |
|
1693 ) CApaIconFileReader::NewLC() now accepts KNullUid instead of a valid uid for the icon file, and doesn't check the type in this case. |
|
1694 |
|
1695 ) MApaAppFinder gains two more pure virtual methods that return the temp file path and the full filename of the default icon file, centralizing access to the two pieces of info. |
|
1696 |
|
1697 ) CApaProcess::NewL() no longer takes a temp path as a parameter. This path is now defined in apffndr.h and need not be defined anywhere else. |
|
1698 |
|
1699 ) CApaModelDoor now stores and restores it's format and size such that it can be understood by a CApaDoor and vice versa. |
|
1700 |
|
1701 ) Class CApaDoorBase introduced, which CApaModelDoor and CApaDoor inherit from. |
|
1702 The enum TFormat that was scoped by CApaDoor is now scoped by CApaDoorBase. |
|
1703 The method CApaDoor::GetFormat() moves to CApaDoorBase and changes name to Format(). |
|
1704 |
|
1705 ) The UID typing scheme for app dll's has been extended slightly. |
|
1706 The general layout for an app dll's uid type has not been changed, and is: |
|
1707 |
|
1708 UID[0] = PE File |
|
1709 UID[1] = Type of app |
|
1710 UID[2] = particular app id |
|
1711 |
|
1712 The types of app have been extended to specify whether or not an app is file-based, and are now as follows: |
|
1713 |
|
1714 KUidApp 0x1000006c - file-base, non-embeddable app (eg Agenda) |
|
1715 KUidAppNonFile 0x1000014a - non-file based non-embeddable app (eg Calculator) |
|
1716 KUidAppEmbeddable 0x1000006e - file-based embeddable and main app (eg Word) |
|
1717 KUidAppEmbeddableNonFile 0x1000014b - non-file-based main and embeddable app (no eg) |
|
1718 KUidAppEmbeddableOnly 0x1000006f - app is embeddable only, cannot run as a main app (therefore non-filebased by definition) |
|
1719 |
|
1720 File-based apps are document centric and create lots of files (eg word), while non-file-based apps aren't and don't (eg calculator). |
|
1721 All app writers must choose the UID that best suits their app - see Ian if you're unsure. |
|
1722 This change will allow the shell to list only file-based apps in it's "Create new file" dialog. |
|
1723 This has involved a couple of UID name changes (though the meaning of the UIDs reamins the same) |
|
1724 |
|
1725 KUidAppDll becomes KUidApp |
|
1726 KUidAppAndEmbeddedApp becomes KUidAppEmbeddable |
|
1727 |
|
1728 ) A third file recogniser dll added: RECEXE.DLL, the exe recogniser. This recognises files with the following uid layout: |
|
1729 |
|
1730 For exe's: |
|
1731 |
|
1732 UID[0] = PE File |
|
1733 UID[1] = Type of exe |
|
1734 UID[2] = particular exe id |
|
1735 |
|
1736 The types of exe mirror the types of app, and are as follows: |
|
1737 |
|
1738 KUidExe 0x10000070 |
|
1739 KUidExeNonFile 0x1000014C |
|
1740 |
|
1741 For doc's associated with exe's: |
|
1742 |
|
1743 UID[0] = Store type |
|
1744 UID[1] = KUidExeDoc 0x10000071 |
|
1745 UID[2] = id of associated exe |
|
1746 |
|
1747 ) File recogniser dlls now have a .rdl extension (Recognizer DLl) and live in \system\recogs NB this means mnt getrel's will have to change to get the recognisers down into this directory |
|
1748 |
|
1749 ) Changes to CApaFileRecognizerType: |
|
1750 RecognizeFileL() becomes concrete and a pure virtual method DoRecognizeFileL() is added. |
|
1751 TUid iFileType is added - by default this is set to UID[1] of the recognized file - it's type |
|
1752 TUid iAppUid is now the UID of the associated app - by default this is set to UID[2] of the recognized file. |
|
1753 There are now inline methods to return these two UID's. |
|
1754 Pure virtual method Capability() added - this returns a TCapability class detailing whether the recognised file is a program, and, if so, whether it is file-based and whether it is embeddable. |
|
1755 |
|
1756 ) CApaDocument::DetachFromStoreL() now takes a CPicture::TDetach as a parameter. |
|
1757 This will be one of EDetachFull and EDetachDraw. |
|
1758 For EDetachFull you should ensure that you internalize all data that you require to fully store yourself later, and null any references to containing stores. |
|
1759 For EDetachDraw you should ensure that you have internalized enough info to draw yourself, nothing more, and that you null any references to containing stores. |
|
1760 If an app doesn't support drawing as a glass door it wont have to do anything in the case of EDetachDraw (except that nulling of stores). |
|
1761 |
|
1762 From Neil: |
|
1763 |
|
1764 ) TApaCommandLine class heavily revamped. |
|
1765 It's now called CApaCommandLine, and gains methods for setting each component of the command line separately. |
|
1766 |
|
1767 ) Implementors of MApaAppStarter::StartAppL(const CApaCommandLine& aCommandLine) should note that it must now take ownership of the command line and protect it and destroy it appropriately. |
|
1768 |
|
1769 |
|
1770 |
|
1771 |
|
1772 |
|
1773 |
|
1774 |
|
1775 |
|
1776 AppArc.043 |
|
1777 ========== |
|
1778 |
|
1779 13/2/97 by IanH |
|
1780 |
|
1781 Uses: |
|
1782 |
|
1783 apparc.dll: E32[086] ; F32[050] ; Store[035] ; GDI[042] |
|
1784 |
|
1785 apgrfx.dll: Fntstore[035] ; Fbserv[045] ; Bitgdi[045] ; Wserv[065] |
|
1786 |
|
1787 Tools: E32Tools[050] ; E32Utils[005] ; GDITOOLS[028] ; GCCTOOLS[111] |
|
1788 |
|
1789 General: |
|
1790 |
|
1791 1) Not binary compatible with 042 |
|
1792 |
|
1793 ) updated to new components as above |
|
1794 |
|
1795 2) A large-scale re-organisation of code has taken place. |
|
1796 AppArc is now split into 3 major dll's plus multiple plug-in app recognisers. |
|
1797 Of all the changes, the highlights include: |
|
1798 |
|
1799 The file recogniser base classes now live in apparc.dll and can be found in apaflrec.h, not apgflrec.h as was previously the case. |
|
1800 |
|
1801 TApaAppIdentifier, TApaAppEntry and TApaAppFinderBase now live in a new header apaid.h in apparc.dll |
|
1802 |
|
1803 Apgrfx.h becomes apgdoor.h as it defines CApaDoor |
|
1804 |
|
1805 TApaAppFinderBase becomes MApaAppFinder, and gains member functions to find all available apps as well as finding a particular one. |
|
1806 |
|
1807 TApaAppFinder becomes CApaAppFinder. It now lives in apfile.dll and encasulates all the search logic that depends on any particular file system structure (ie system\apps etc). |
|
1808 |
|
1809 CApaAppList now takes a MApaAppFinder as a parameter to its constructor, using this to build its list of available apps. It takes ownership of the app finder supplied. |
|
1810 |
|
1811 A couple of mixins gain virtual inline destructors. This allows derived objects to be deleted through these interfaces. |
|
1812 |
|
1813 Names defined for a few previously anonymous CBase-derived classes. |
|
1814 |
|
1815 apgrfx.h becomes apgdoor.h |
|
1816 |
|
1817 CApaModelHeader::AppId() made const (suggested by Duncan) |
|
1818 |
|
1819 Class CApaScanningFileRecogniser added - this is a concrete implementation of CApaFileRecogniser that scans the system for plug-in app recogniser dlls (eg interpreted app recogniser, exe recogniser, apparc app recogniser). |
|
1820 Plug-in app recognisers are searched for in \system\libs\ on all non-remote drives. |
|
1821 Plug-in dlls should have the following UIDS: |
|
1822 UID[0] = [dll build] |
|
1823 UID[1] = KUidAppRecognizer (={0x1000013E}) |
|
1824 UID[2] = [uid of the particular dll] (eg KUidInterpreterExe for the exe interpreter) |
|
1825 A plug-in's first exported function should be a parameterless constructor that returns a pointer to full constructed object of base type CApaFileRecogniserType. |
|
1826 |
|
1827 A concrete implementation of MApaAppLocator, CApaAppLocatorProxy, is also provided (for the sole use of CApaScanningFileRecogniser). This class implements GetAppEntryByUid(TUid) by scanning the system for an app dll that has the matching UID. |
|
1828 |
|
1829 App dll's should now once again export their constructor as their ordinal 1 method. The dummy 1st export is no longer required due to changes in the shell to bring it into line with the rest of the world. (Sorry for the hassle). |
|
1830 |
|
1831 |
|
1832 Testcode: |
|
1833 |
|
1834 T_FILE testcode added that tests the built-in app finder, and also CApaScanningFileRecogniser. |
|
1835 |
|
1836 T_PRO expanded to test classes CApaAppList and CApaAppData that previously had no testcode. |
|
1837 |
|
1838 |
|
1839 |
|
1840 |
|
1841 AppArc.042 |
|
1842 ========== |
|
1843 |
|
1844 12/2/97 by IanH |
|
1845 |
|
1846 Uses: |
|
1847 |
|
1848 apparc.dll: E32[086] ; F32[050] ; Store[035] ; GDI[042] |
|
1849 |
|
1850 apgrfx.dll: Fntstore[035] ; Fbserv[045] ; Bitgdi[045] ; Wserv[065] |
|
1851 |
|
1852 Tools: E32Tools[050] ; E32Utils[005] ; GDITOOLS[028] ; GCCTOOLS[111] |
|
1853 |
|
1854 General: |
|
1855 |
|
1856 1) Binary compatible with 041 |
|
1857 |
|
1858 2) Regressed to GCCTOOLS 111 |
|
1859 |
|
1860 3) Interpreted app starter re-written (by Howard) |
|
1861 |
|
1862 4) Defect fix to command line to remove trailing space from full command line (by Neil) |
|
1863 |
|
1864 Notes for Glass-door enabled apps and SDK: |
|
1865 |
|
1866 Having just written a glass door add-on for TOPBUT1 I thought it might be worth more carefully defining a couple of the methods in the CPicture interface: |
|
1867 |
|
1868 The "Current size" of a picture is calculated from the original size taking cropping and scale factor into account. |
|
1869 |
|
1870 The value of "Crop" is relative to the *original* size of the picture. |
|
1871 |
|
1872 |
|
1873 |
|
1874 |
|
1875 |
|
1876 |
|
1877 |
|
1878 AppArc.041 |
|
1879 ========== |
|
1880 |
|
1881 7/2/97 by IanH |
|
1882 |
|
1883 Uses: |
|
1884 |
|
1885 apparc.dll: E32[086] ; F32[050] ; Store[035] ; GDI[042] |
|
1886 |
|
1887 apgrfx.dll: Fntstore[035] ; Fbserv[045] ; Bitgdi[045] ; Wserv[065] |
|
1888 |
|
1889 Tools: E32Tools[050] ; E32Utils[005] ; GDITOOLS[028] ; GCCTOOLS[112] |
|
1890 |
|
1891 General: |
|
1892 |
|
1893 1) Not build compatible with 040 |
|
1894 |
|
1895 ) Apps must now export their constructor as the ordinal 2 function of their app dll. |
|
1896 Changes will be made to the Eikon .def file to support this, but all apps should add the following line to their project to ensure that they have a first exported function as well as a second: |
|
1897 |
|
1898 __FIRST_EXPORT |
|
1899 |
|
1900 ) Defect fix in command line classes by Neil |
|
1901 |
|
1902 |
|
1903 |
|
1904 |
|
1905 AppArc.040 |
|
1906 ========== |
|
1907 |
|
1908 6/2/97 by IanH |
|
1909 |
|
1910 Uses: |
|
1911 |
|
1912 apparc.dll: E32[086] ; F32[050] ; Store[035] ; GDI[042] |
|
1913 |
|
1914 apgrfx.dll: Fntstore[035] ; Fbserv[045] ; Bitgdi[045] ; Wserv[065] |
|
1915 |
|
1916 Tools: E32Tools[050] ; E32Utils[005] ; GDITOOLS[028] ; GCCTOOLS[112] |
|
1917 |
|
1918 General: |
|
1919 |
|
1920 1) Binary compatible with 039 |
|
1921 |
|
1922 ) Changes made to CApaAppData such that if an application doesnt have an icon file it's dll name is used as a caption and the default icon is used as it's icon. Previously apps without icon files weren't being detected by the shell at all. |
|
1923 |
|
1924 |
|
1925 |
|
1926 |
|
1927 |
|
1928 |
|
1929 |
|
1930 |
|
1931 AppArc.039 |
|
1932 ========== |
|
1933 |
|
1934 5/2/97 by IanH |
|
1935 |
|
1936 Uses: |
|
1937 |
|
1938 apparc.dll: E32[086] ; F32[050] ; Store[035] ; GDI[042] |
|
1939 |
|
1940 apgrfx.dll: Fntstore[035] ; Fbserv[045] ; Bitgdi[045] ; Wserv[065] |
|
1941 |
|
1942 Tools: E32Tools[050] ; E32Utils[005] ; GDITOOLS[028] ; GCCTOOLS[112] |
|
1943 |
|
1944 General: |
|
1945 |
|
1946 1) Not binary compatible with 038 |
|
1947 |
|
1948 ) apgrfx.dll now has its base address set to avoid conflicts (spotted by MartinB) |
|
1949 |
|
1950 ) MApaDocContainer renamed MApaEmbeddedDocObserver, and an extra exit mode "EEmpty" added. If an embedded document has no content it should return EEmpty when it exits, and the container can then choose not to insert it if it doesnt want to. |
|
1951 |
|
1952 ) Defect in CApaDoor::RestoreDoc() fixed (spotted by DavidA) |
|
1953 |
|
1954 From Bill: |
|
1955 |
|
1956 ) Rewrite of the file recogniser module, and new classes CApaAppList and CApaAppData that cache a list of all apps available on the system. No testcode for this stuff yet... |
|
1957 |
|
1958 ) The interpreted app recogniser is now completely perplexed and will have to be rewritten (Howard?) |
|
1959 |
|
1960 From Neil: |
|
1961 |
|
1962 ) Relocated the TApaCommandLine class from Eikon to Apparch. This class encapsulates the command line and is formatted as follows: |
|
1963 |
|
1964 <app name><space>command byte><doc name><space><tail end> |
|
1965 |
|
1966 app name and doc name may conatain spaces if surrounded by quotes. Embedded quotes in these names is not supported. |
|
1967 |
|
1968 Various accessor functions exist to extract the various components of the command line, and setter functions will be added soon (for now you must construct the command line in a descriptor and call Set()) |
|
1969 |
|
1970 This class will be used to start all apps. This has involved some API changes to the file recognizer classes. |
|
1971 |
|
1972 New class TApaWindowGroupName to encapsulate the window group name of applications. Set and get functions exist for all components. |
|
1973 |
|
1974 The window group name stores the caption name, document name, application uid, and several "status bits" for apps to mark themselves as System (will not be closed for backup), Busy, that there document name is not actually a file (eg Platypus) and whether the app wishes to be restarted after a backup (mainly for use by OPL programs but will be ignored in version 1 anyway!) |
|
1975 |
|
1976 Test code for TApaWindowGroupName in T_WGNAM.* |
|
1977 |
|
1978 |
|
1979 |
|
1980 |
|
1981 |
|
1982 |
|
1983 AppArc.038 |
|
1984 ========== |
|
1985 |
|
1986 3/2/97 by IanH |
|
1987 |
|
1988 Uses: |
|
1989 |
|
1990 apparc.dll: E32[086] ; F32[050] ; Store[035] ; GDI[042] |
|
1991 |
|
1992 apgrfx.dll: Fntstore[035] ; Fbserv[045] ; Bitgdi[045] ; Wserv[065] |
|
1993 |
|
1994 Tools: E32Tools[050] ; E32Utils[005] ; GDITOOLS[028] ; GCCTOOLS[112] |
|
1995 |
|
1996 General: |
|
1997 |
|
1998 1) Not binary compatible with 037 |
|
1999 |
|
2000 2) Takes the new gdi etc. |
|
2001 |
|
2002 3) CApaProcess::NewL() now takes a TApaAppFinderBase by & instead of as a *, and no longer defaults this parameter to NULL. |
|
2003 The default search algorithm will now be provided in Eikon and must be passed in each time on construction of a process. |
|
2004 Nb CApaProcess takes ownership of the TApaAppFinderBase passed in, which should be allocated on the heap. |
|
2005 |
|
2006 |
|
2007 |
|
2008 |
|
2009 |
|
2010 |
|
2011 |
|
2012 |
|
2013 |
|
2014 AppArc.037 |
|
2015 ========== |
|
2016 |
|
2017 31/1/97 by IanH |
|
2018 |
|
2019 Uses: |
|
2020 |
|
2021 apparc.dll: E32[086] ; F32[050] ; Store[033] ; GDI[041] |
|
2022 |
|
2023 apgrfx.dll: Fntstore[034] ; Fbserv[044] ; Bitgdi[044] ; Wserv[064] |
|
2024 |
|
2025 Tools: E32Tools[050] ; E32Utils[005] ; GDITOOLS[028] ; GCCTOOLS[111] |
|
2026 |
|
2027 General |
|
2028 |
|
2029 1) Not binary compatible with 036 |
|
2030 |
|
2031 ) App dlls are no longer Gate()'ed on loading. |
|
2032 This means that __DECLARE_APP_DLL_UID should no longer be declared in each app's code and that the ordinal one function of an app dll should now be the constructor (this was previously the ordinal 2 function). |
|
2033 |
|
2034 ) Missing exports added to many file recogniser methods |
|
2035 |
|
2036 |
|
2037 |
|
2038 |
|
2039 |
|
2040 |
|
2041 |
|
2042 AppArc.036 |
|
2043 ========== |
|
2044 |
|
2045 27/1/97 by IanH |
|
2046 |
|
2047 Uses: |
|
2048 |
|
2049 apparc.dll: E32[086] ; F32[050] ; Store[033] ; GDI[041] |
|
2050 |
|
2051 apgrfx.dll: Fntstore[034] ; Fbserv[044] ; Bitgdi[044] ; Wserv[064] |
|
2052 |
|
2053 Tools: E32Tools[050] ; E32Utils[005] ; GDITOOLS[028] ; GCCTOOLS[111] |
|
2054 |
|
2055 General |
|
2056 |
|
2057 1) Not binary compatible with 035 |
|
2058 |
|
2059 ) apgrfx.dll now links to wserv |
|
2060 |
|
2061 ) Icon files no longer store iRequiresNewDocName, which as a result no longer has an accessor (change from Bill) |
|
2062 |
|
2063 ) New modules: |
|
2064 |
|
2065 ApgTask.h - the task and task list classes (formerly in Eikon) |
|
2066 |
|
2067 ApgFlrec.h - the file recogniser classes (formerly in Shell) |
|
2068 |
|
2069 ApgApp.h - the app recogniser for app arc apps (formerly in Shell) |
|
2070 |
|
2071 ApgInt.h - the app recogniser for interpreted apps (formerly in Shell) |
|
2072 |
|
2073 The above modules have no testcode as yet... |
|
2074 |
|
2075 |
|
2076 |
|
2077 |
|
2078 |
|
2079 |
|
2080 |
|
2081 AppArc.035 |
|
2082 ========== |
|
2083 |
|
2084 27/1/97 by IanH |
|
2085 |
|
2086 Uses: E32[085] ; F32[049] ; Store[033] ; GDI[041] ; Fntstore[034] ; Fbserv[044] ; Bitgdi[044] |
|
2087 |
|
2088 Tools: E32Tools[050] ; E32Utils[005] ; GDITOOLS[028] ; GCCTOOLS[111] |
|
2089 |
|
2090 General |
|
2091 |
|
2092 1) Not binary compatible with 034 |
|
2093 |
|
2094 3) There will be at least one more non-binary compatible release this week before the B5 freeze. |
|
2095 |
|
2096 Changes |
|
2097 |
|
2098 4) Further re-arrangement of code between the two dll's. CApaDoor is now entirely in apgrfx.dll, and no longer has a CApaDoorBase baseclass. |
|
2099 |
|
2100 5) A new module apamdr added for the benefit of Nautilus-type converters. |
|
2101 It contains a concrete CApaModelDoor that contains a CApaModelHeader. |
|
2102 Concrete implementations of the header must be provided for all application models that wish to support embedding and have their embedded documents translated by Nautilus. |
|
2103 The persistant format of a CApaEmbeddedDoor is compatible with that of a CApaDoor to the extent that either can be internalized by the other safely. |
|
2104 A factory class must be provided for each implementation of the header. |
|
2105 |
|
2106 ) In the interests of encapsulation CApaDocument::Capability() now returns a CApaDocument::TCapability instead of a TUint (suggested by Duncan). |
|
2107 |
|
2108 ) CApaProcess::MainDocFileName() and TempFilePath() now return TPtrC instead of const TDesC* (suggested by Brendan) |
|
2109 |
|
2110 ) If a glass door is passworded it will now be automatically iconified on restoration and the user will only be prompted for a password when they directly interact with it. |
|
2111 |
|
2112 ) const TUid KUidSecurityStream={268435661} is now defined in apparc.h - this is the uid that should be used for the security stream for passworded documents. |
|
2113 |
|
2114 ) The persistant format of CApaDoors has changed, so any apps that support embedding will find that their file formats have changed also... |
|
2115 |
|
2116 |
|
2117 |
|
2118 |
|
2119 |
|
2120 |
|
2121 AppArc.034 |
|
2122 ========== |
|
2123 |
|
2124 20/1/97 by IanH |
|
2125 |
|
2126 Uses: E32[085] ; F32[049] ; Store[033] ; GDI[041] ; Fntstore[034] ; Fbserv[044] ; Bitgdi[044] |
|
2127 |
|
2128 Tools: E32Tools[050] ; E32Utils[005] ; GDITOOLS[028] ; GCCTOOLS[111] |
|
2129 |
|
2130 General |
|
2131 |
|
2132 1) Not binary compatible with 033 |
|
2133 |
|
2134 2) Takes new E32 etc. |
|
2135 |
|
2136 ) The search algorithm for locating app dll's has changed. An app dll is now searched for in \system\apps\appname\appname.app on all drives until one is located. Files of the correct name can optionally have their uids checked. This new algorithm should significantly speed up loading of documents. |
|
2137 |
|
2138 ) CApaProcess now takes a TApaAppFinderBase* as a parameter of its NewL() instead of a search path. This base class efines an API for access to a method in which any search algorithm required could be implemented. This parameter defaults to NULL, and if no finder is passed in a default one is used that implements the above behaviour. A substitute finder should only be passed in if eg a different directory structure is implemented on a future machine. CApaProcess takes ownership of any app finder passed in. |
|
2139 |
|
2140 ) As a result of the search code moving CApaDll no longer has a FindAppDll() method. |
|
2141 |
|
2142 ) CApaDoor gains a NewL to complement its NewLC (requested by SimonC) |
|
2143 |
|
2144 ) inline const TDesC* TempFilePath()const added to CApaProcess (requested by SimonC) |
|
2145 |
|
2146 ) CApaProcess::OpenNewDocumentL() now takes a CStreamDictionary*& as an extra parameter - this is read in from the file that is opened (error spotted by Kevin). |
|
2147 |
|
2148 ) ReadRootStreamL() and OpenNewDocumentL() take a TUint aFileMode as additional parameters. aFileMode indicates the mode in which the file should be opened. For most use this should be set to EFileShareExclusive|EFileWrite, while EFileShareExclusive|EFileRead should be used if the file is to be opened read only. These methods no longer try to open files with write access, retrying with read-only access if this fails. If you require this behaviour you'll have to do it yourself by trapping calls to these methods. |
|
2149 |
|
2150 ) The following CApaProcess methods are now static: |
|
2151 |
|
2152 static CStreamDictionary* ReadRootStreamLC(RFs& ,CFileStore*& ,const TDesC& ,TUint ) |
|
2153 static void WriteRootStreamL(CFileStore& ,CStreamDictionary& ,const CApaApplication& ) |
|
2154 static TApaAppIdentifier ReadAppIdentifierL(const CStreamStore& ,const CStreamDictionary& ) |
|
2155 static void WriteAppIdentifierL(CStreamStore& ,CStreamDictionary& ,const TApaAppIdentifier& ) |
|
2156 |
|
2157 Note that ReadRootStreamL() now takes an RFs& and WriteRootStreamL() has been overloaded with a version that takes a correctly constructed TApaAppIdentifier instead of a CApaApplication& |
|
2158 |
|
2159 ) Access violation defect in ~CApaProcess() fixed (spotted by MartinB) |
|
2160 |
|
2161 ) The plan for passworded documents: |
|
2162 |
|
2163 When a document's RestoreL() is called and it begins to restore, the first thing it should do is check to see whether its store contains an appropriate password stream. |
|
2164 If it does then this means the store is passworded, so prompt the user to enter the password (EikProcess should provide a method that pops up this dialog for you). |
|
2165 If the password is entered correctly then continue restoration. |
|
2166 If the password is wrong, RestoreL() should leave KErrLocked. |
|
2167 |
|
2168 ) CApaDoor::RestoreL() will not leave if a *glass* door's RestoreL() leaves with KErrLocked. |
|
2169 Instead it TRAP's the leave and iconises the document without restoring it. |
|
2170 In this way the user can try to open the document again later if they want to view it. |
|
2171 |
|
2172 ) CApaDocument::CanDrawGlass() becomes Capability() - this returns a set of flags (defined in CApaDocument) as follows: |
|
2173 |
|
2174 enum { |
|
2175 ECanDrawGlass =0x01, |
|
2176 ECanPrint =0x02 |
|
2177 }; |
|
2178 |
|
2179 By default this method returns 0 (ie the doc can do nothing) - return any combination of the above flags if you feel more daring |
|
2180 |
|
2181 ) CApaApplication::OpenIconFileLC() is now pure virtual - an implementation will be supplied by Eikon's CEikDocument |
|
2182 |
|
2183 |
|
2184 |
|
2185 |
|
2186 |
|
2187 AppArc.033 |
|
2188 ========== |
|
2189 |
|
2190 10/1/97 by IanH |
|
2191 |
|
2192 Uses: E32[082] ; F32[046] ; Store[032] ; GDI[040] ; Fntstore[033] ; Fbserv[043] ; Bitgdi[043] |
|
2193 |
|
2194 Tools: E32Tools[049] ; E32Utils[004] ; GDITOOLS[028] ; GCCTOOLS[111] |
|
2195 |
|
2196 General |
|
2197 |
|
2198 1) Not binary compatible with 032 |
|
2199 |
|
2200 2) Takes new GDI etc |
|
2201 |
|
2202 3) Definitions for KIconFileExtension, KIniFileExtension and KAppFileExtension are now publicised in apparc.h |
|
2203 |
|
2204 4) Ini files now always live on drive c: |
|
2205 |
|
2206 |
|
2207 CApaApplication changes: |
|
2208 |
|
2209 5) OpenIconFileL() and OpenIniFileL() become LC and const |
|
2210 |
|
2211 6) New method: |
|
2212 |
|
2213 TFileName AppFullName()const; |
|
2214 |
|
2215 This should return the full path and name of the app - by default the dll name & location is returned but this method may be over-ridden by eg OPL to return another location. (requested by Howard) |
|
2216 |
|
2217 |
|
2218 CApaDocument changes: |
|
2219 |
|
2220 7) CApaDocument::CreateFileStoreLC() has changed its specification. Previously it returned a stream dictionary and took a store by reference. The first thing any caller did after calling this function was to write the rootstream of the file to make it valid and then destroy the stream dictionary. The WriteRootStream() step has now been moved inside CreateFileStoreLC(), meaning that it now returns a CFileStore* instead of taking one by reference. One new line of code should be added at the end of applications' CreateFileStore() implementations: |
|
2221 |
|
2222 iApaProcess->WriteRootStreamL(*store,*streamDic,*Application()); |
|
2223 |
|
2224 This will ensure that CreateFileStoreLC() now returns a fully constructed and initialised file store (on the cleanup stack). |
|
2225 |
|
2226 |
|
2227 CApaProcess changes: |
|
2228 |
|
2229 8) MainDocFileName() becomes const |
|
2230 |
|
2231 9) SetMainDocFileNameL(const TDesC&) loses the L - it can no longer leave, though it will panic if a filename larger than a TFileName is passed in. |
|
2232 |
|
2233 10) SetMainDocument(CApaDocument* aDocument) added. It panics if aDocument has not already been added using AddNewDocument() or OpenNewDocument() |
|
2234 |
|
2235 11) ImportNewDocumentL() becomes |
|
2236 |
|
2237 CApaDocument* OpenNewDocumentL(CFileStore*& aStore,const TDesC& aDocFullFileName) |
|
2238 |
|
2239 It now returns the opened store via a parameter taken by reference. |
|
2240 |
|
2241 12) SaveToDirectFileStoreL() withdrawn - this method will now be provided by Eikon. |
|
2242 |
|
2243 13) NewMainDocumentL() and OpenMainDocumentL() have been withdrawn. A combination of Open/AddNewDocument() and SetMainDocument() should now be used. Combined with the above changes this in fact gives Eikon and applications much more flexibility in creating and opening documents. |
|
2244 |
|
2245 Replacing a typical call to OpenMainDocumentL(), the following calls should take place: |
|
2246 |
|
2247 // open the document |
|
2248 CFileStore* store = NULL; |
|
2249 CApaDocument* doc = apaProcess->OpenNewDocumentL(store,filePath); |
|
2250 // set it as the main document |
|
2251 apaProcess->SetMainDocument(doc); |
|
2252 apaProcess->SetMainDocFileName(filePath); |
|
2253 |
|
2254 Replacing a typical call to NewMainDocumentL(), the following calls should take place: |
|
2255 |
|
2256 // create a new document |
|
2257 CApaDocument* doc = apaProcess->AddNewDocumentL(dllname); |
|
2258 apaProcess->SetMainDocument(doc); |
|
2259 // create the store and initialise it |
|
2260 CFileStore* store = doc->CreateFileStoreLC(apaProcess->FsSession(),filePath); |
|
2261 apaProcess->SetMainDocFileName(filePath); |
|
2262 // initialise the document with factory settings |
|
2263 doc->NewDocumentL(); |
|
2264 |
|
2265 |
|
2266 CApaDoor changes: |
|
2267 |
|
2268 14) If there is no caption in an application's icn file the Caption() in a containing CApaDoor is now set to a zero length descriptor instead of "UNKNOWN". This should be detectyed at a higher level and some locale specific message substituted. |
|
2269 |
|
2270 15) Default icon size should now be passed in to CApaDoor::NewL() - it is no longer hard-coded to TSize(500,500) |
|
2271 |
|
2272 |
|
2273 |
|
2274 |
|
2275 AppArc.032 |
|
2276 ========== |
|
2277 |
|
2278 19/12/96 by IanH |
|
2279 |
|
2280 Uses: E32[076] ; F32[042] ; Store[030] ; GDI[039] ; Fntstore[032] ; Fbserv[039] ; Bitgdi[041] |
|
2281 |
|
2282 Tools: E32Tools[048] ; E32Utils[004] ; GDITOOLS[027] ; GCCTOOLS[111] |
|
2283 |
|
2284 1) Binary compatible with 030 and 031 (B4 level) |
|
2285 |
|
2286 2) NewMainDocumentL() altered slightly such that the filename is correctly set before NewDocumentL() is called on the newly creaed document. This allows some speed optimisations in Word. |
|
2287 |
|
2288 |
|
2289 |
|
2290 |
|
2291 AppArc.031 |
|
2292 ========== |
|
2293 |
|
2294 17/12/96 by IanH |
|
2295 |
|
2296 Uses: E32[076] ; F32[042] ; Store[030] ; GDI[039] ; Fntstore[032] ; Fbserv[039] ; Bitgdi[041] |
|
2297 |
|
2298 Tools: E32Tools[048] ; E32Utils[004] ; GDITOOLS[027] ; GCCTOOLS[111] |
|
2299 |
|
2300 1) Binary compatible with 030 |
|
2301 |
|
2302 2) As per the spec team decision the icons representing embedded objects are no longer resizable by dragging. |
|
2303 |
|
2304 This effect is slightly weird because when the icon is highlighted it has the blobby marquee around it which somewhat implies that you can drag its extent. |
|
2305 However, if you try to drag one of the blobs you immediately launch the embedded application - not exactly intuitive. |
|
2306 Maybe two different types of marquee are required, one to indicate dragableness and the other just focus (but this falls down when you consider using shift-drag to crop). |
|
2307 |
|
2308 |
|
2309 |
|
2310 AppArc.030 |
|
2311 ========== |
|
2312 |
|
2313 13/12/96 by IanH |
|
2314 |
|
2315 Uses: E32[076] ; F32[042] ; Store[030] ; GDI[039] ; Fntstore[032] ; Fbserv[039] ; Bitgdi[041] |
|
2316 |
|
2317 Tools: E32Tools[048] ; E32Utils[004] ; GDITOOLS[027] ; GCCTOOLS[111] |
|
2318 |
|
2319 1) Binary compatible with 029 |
|
2320 |
|
2321 Changes to CApaProcess: |
|
2322 |
|
2323 ) SaveToDirectFileStoreL() now creates any temporary file on the same drive as the target document to ensure that RFs::Replace() works. |
|
2324 |
|
2325 ) SaveToDirectFileStoreL() now checks that the store passed in is non-null and of the right type. |
|
2326 |
|
2327 ) NewMainDocumentL() code re-arranged so that it is now rollback-robust (thanks Duncan). This fixes HA-383 |
|
2328 |
|
2329 |
|
2330 |
|
2331 |
|
2332 AppArc.028 |
|
2333 ========== |
|
2334 |
|
2335 05/12/96 by IanH |
|
2336 |
|
2337 Uses: E32[076] ; F32[042] ; Store[030] ; GDI[039] ; Fntstore[032] ; Fbserv[039] ; Bitgdi[041] |
|
2338 |
|
2339 Tools: E32Tools[048] ; E32Utils[004] ; GDITOOLS[027] ; GCCTOOLS[111] |
|
2340 |
|
2341 1) B4 release. This is not compatible with the previous release. |
|
2342 |
|
2343 Changes: |
|
2344 |
|
2345 ) CApaDoor::SetFormatToGlassL() no longer takes a TSize as a parameter. The embedded document is now relied upon to initially size itself sensibly and from then on to remember any changes in scaling and cropping. |
|
2346 |
|
2347 ) Subtle chagnes to iconic doors - they are now scalable but not cropable. |
|
2348 |
|
2349 ) Any concept of document file extensions has been removed from application architecture, in line with current thinking: |
|
2350 |
|
2351 CApaApplication::DocFileExtension() withdrawn, and extensions are no longer appended to filenames. App dll's, icon files and ini files retain their extensions. |
|
2352 |
|
2353 |
|
2354 |
|
2355 AppArc.027 |
|
2356 ========== |
|
2357 |
|
2358 03/12/96 by IanH |
|
2359 |
|
2360 Uses: E32[075] ; F32[042] ; Store[030] ; GDI[039] ; Fntstore[032] ; Fbserv[039] ; Bitgdi[041] |
|
2361 |
|
2362 Tools: E32Tools[048] ; E32Utils[004] ; GDITOOLS[027] ; GCCTOOLS[111] |
|
2363 |
|
2364 1) B4 release |
|
2365 |
|
2366 Changes: |
|
2367 |
|
2368 ) inline CApaDoor::GetFormat()const added that returns one of CApaDoor::EIconic or CApaDoor::EGlassDoor depending upon the door's current format. |
|
2369 |
|
2370 ) Iconic door code re-written to (hopefully) solve the problems of resizing etc. |
|
2371 |
|
2372 ) CApaApplication::OpenIniFileLC() is now implemented to return a CDictionaryStore (see Store release notes for details of this class). The path of the ini file is determined to be the same as that of the app dll unless the app dll is in ROM in which case the same path is used except on drive c: |
|
2373 CDictionaryStore should be treated as a temporary object - all the time it exists the file is open, so the object should be destroyed as soon as it is finished with to ensure that other processes are not unnecessarily blocked from using the file. |
|
2374 |
|
2375 Here is some example code for using an ini file in a (possibly) typical scenario: |
|
2376 |
|
2377 // |
|
2378 // open an app's ini file |
|
2379 CDictionaryStore* iniFile = Application()->OpenIniFileL(TheFs); |
|
2380 CleanupStack::PushL(iniFile); |
|
2381 // |
|
2382 // read the required data stream out of the file |
|
2383 RDictionaryReadStream readStream; |
|
2384 readStream.OpenL(*iniFile,aDataStreamUid); |
|
2385 TLotsOfData data; |
|
2386 readStream>> data; |
|
2387 readStream.Close(); |
|
2388 // |
|
2389 // close the ini file |
|
2390 CleanupStack::PopAndDestroy(); // iniFile |
|
2391 iniFile = NULL; |
|
2392 // |
|
2393 // |
|
2394 // ... |
|
2395 // do loads of stuff (eg launch a dialog) that uses the data read in |
|
2396 // ... |
|
2397 // |
|
2398 // |
|
2399 // if the data has changed as a result of "doing stuff" then re-write it to the ini file |
|
2400 CDictionaryStore* iniFile = Application()->OpenIniFileL(TheFs); |
|
2401 CleanupStack::PushL(iniFile); |
|
2402 // |
|
2403 // write the new data |
|
2404 RDictionaryWriteStream writeStream; |
|
2405 writeStream.AssignL(*iniFile,aDataStreamUid); |
|
2406 writeStream<< data; |
|
2407 writeStream.CommitL(); |
|
2408 writeStream.Close(); |
|
2409 // |
|
2410 // commit the store safely and close it again |
|
2411 if (iniFile->Commit()!=KErrNone) |
|
2412 iniFile->RevertL(); // try to restore the store to it's previous state if things go wrong |
|
2413 CleanupStack::PopAndDestroy(); // iniFile |
|
2414 iniFile = NULL; |
|
2415 // |
|
2416 |
|
2417 |
|
2418 AppArc.026 |
|
2419 ========== |
|
2420 |
|
2421 27/11/96 by IanH |
|
2422 |
|
2423 Uses: E32[074] ; F32[041] ; Store[029] ; GDI[038] ; Fntstore[031] ; Fbserv[038] ; Bitgdi[040] |
|
2424 |
|
2425 Tools: E32Tools[046] ; E32Utils[003] ; GDITOOLS[027] ; GCCTOOLS[111] |
|
2426 |
|
2427 1) Takes new GDI etc., and new gditools (all bitmaps have to be reconverted). |
|
2428 |
|
2429 Changes: |
|
2430 |
|
2431 ) RDebug::Print()'s removed from the apparc dll |
|
2432 |
|
2433 ) CApaDoor::DetachFromStoreL() added to completely restore the embedded document. |
|
2434 |
|
2435 ) CApaDocument::DetachFromStoreL(const CStreamStore& aStore) added. This does nothing by default - an app should supply an imlementation if they support deferred loading. In this case the action of this method should be to load in any data not yet internalized from the store, but not to overwrite any data already in memory. |
|
2436 |
|
2437 |
|
2438 AppArc.025 |
|
2439 ========== |
|
2440 |
|
2441 22/11/96 by IanH |
|
2442 |
|
2443 Uses: E32[074] ; F32[040] ; Store[029] ; GDI[037] ; Fntstore[030] ; Fbserv[037] ; Bitgdi[039] |
|
2444 |
|
2445 Tools: E32Tools[046] ; E32Utils[003] ; GDITOOLS[026] ; GCCTOOLS[111] |
|
2446 |
|
2447 1) Binary compatible defect fix release for Agenda and Data |
|
2448 |
|
2449 2) No new components taken |
|
2450 |
|
2451 Changes: |
|
2452 |
|
2453 ) Files are now opened writable if this is possible, only defaulting to read-only if opening as writable fails. This allows documents based in permanent file stores to be edited :-) (Spotted by Kev) |
|
2454 |
|
2455 |
|
2456 AppArc.024 |
|
2457 ========== |
|
2458 |
|
2459 19/11/96 by IanH |
|
2460 |
|
2461 Uses: E32[074] ; F32[040] ; Store[029] ; GDI[037] ; Fntstore[030] ; Fbserv[037] ; Bitgdi[039] |
|
2462 |
|
2463 Tools: E32Tools[046] ; E32Utils[003] ; GDITOOLS[026] ; GCCTOOLS[111] |
|
2464 |
|
2465 1) This release is being made primarily to allow work to proceed on OPL |
|
2466 |
|
2467 2) No new components taken |
|
2468 |
|
2469 Changes: |
|
2470 |
|
2471 ) Some files have changed name: |
|
2472 AppIcnfl.* -> ApaIcnfl.* |
|
2473 AppPriv.h -> ApaDll.h |
|
2474 AppStd.h -> ApaStd.h |
|
2475 AppUtil.cpp -> ApaStd.cpp |
|
2476 |
|
2477 ) CApaIconFileWriter::AddIconL(CApaMaskedBitmap& aIcon) added. |
|
2478 |
|
2479 ) TAppCaption becomes TApaAppCaption |
|
2480 |
|
2481 |
|
2482 AppArc.023 |
|
2483 ========== |
|
2484 |
|
2485 15/11/96 by IanH |
|
2486 |
|
2487 Uses: E32[074] ; F32[040] ; Store[029] ; GDI[037] ; Fntstore[030] ; Fbserv[037] ; Bitgdi[039] |
|
2488 |
|
2489 Tools: E32Tools[046] ; E32Utils[003] ; GDITOOLS[026] ; GCCTOOLS[111] |
|
2490 |
|
2491 2) This release reinstates all the testcode that was dropped in the change to the new directory structure. |
|
2492 |
|
2493 3) The base address for the AppArc dll is now set as 0x40000000 in line with MartinB's revised suggestion. |
|
2494 |
|
2495 4) AppArc.dll now supports typesafe linking with uid KApparcDllUid = 0x100000DE |
|
2496 |
|
2497 5) New releasable appdata that contains the default icn file (see below). It should be fetched into: |
|
2498 \Epoc32\Release\Wins\Rel\Z\System\Data |
|
2499 \Epoc32\Release\Wins\Deb\Z\System\Data |
|
2500 \Epoc32\Release\Marm |
|
2501 |
|
2502 and the following line should be placed in .oby files: |
|
2503 |
|
2504 data=\Epoc32\Release\Marm\default.icn System\Data\default.icn |
|
2505 |
|
2506 |
|
2507 Changes: |
|
2508 |
|
2509 ) CApaDoor now has access to a default icon file which it uses if it can't locate the correct icon file (eg the app used to embed an object was on a CF card). This means that apps no longer *require* the existance of an icon file to be embeddable |
|
2510 |
|
2511 ) The persistant format of *glass* doors has changed , so files containing such doors will be incompatible with previous versions of apparc. |
|
2512 |
|
2513 ) TDesC* CApaDoor::Caption() added that returns the name of the app with which the embedded object is associated. |
|
2514 |
|
2515 ) CApaApplication::IniFileUid() and IconFileUid() have been withdrawn as they were of no use and made no sense. |
|
2516 |
|
2517 ) CApaDocument::HasChanged() is now pure virtual, and CApaDocument no longer has a TBool iChanged as member data. This keeps apparc policy independant as different apps will want to implement this function in different ways. Eikon may supply a default implemenation... |
|
2518 |
|
2519 ) CApaDoor* NewLC(CApaDocument& aDoc,...) no longer takes a CApaProcess as a parameter as it can get at this pointer via the aDoc parameter. |
|
2520 |
|
2521 ) CApaProcess::WriteRootStreamL() now takes a const CApaApplication& instead of a CApaDocument. This app should be the application used to create the main doc in the file being written. |
|
2522 |
|
2523 ) CApaProcess::SaveToDirectFileStoreL() has changed in the same way as WriteRootStreamL() |
|
2524 |
|
2525 ) Extra type checking of document added to CApaProcess::ReadRootStreamL(). This method now leaves KErrCorrupt if the file is not of the correct type. |
|
2526 |
|
2527 ) TApaPictureFactory now takes a MGraphicsDeviceMap* on construction |
|
2528 |
|
2529 ) CApaApplication::OpenIconFileLC() now just OpenIconFileL() because this call was often being trapped and the C caused aggro. |
|
2530 |
|
2531 ) Some CApaDoor methods that took a TSize as a parameter now take a const TSize& instead |
|
2532 |
|
2533 Defect Fixes: |
|
2534 |
|
2535 ) The correct UID for the icon file is now used in CApaApplication::OpenIconFileLC() |
|
2536 |
|
2537 ) CApaApplication::Dll() now const |
|
2538 |
|
2539 ) Resizing of embedded icons should now work properly. |
|
2540 |
|
2541 ) CApaProcess::ReadRootStreamLC() now opens the store in read only mode (so files can be read from ROM). If you wish to make your CFileStore writable call CFileStore::File().ChangeMode(EFileShareExclusive|EFileWrite) to get exclusive write access. (Spotted by Duncan) |
|
2542 |
|
2543 Test Code: |
|
2544 |
|
2545 ) T_Pro extended to test the embedding subsystem when some required app dlls and/or icn files are not present. |
|
2546 |
|
2547 |
|
2548 |
|
2549 AppArc.020 |
|
2550 ========== |
|
2551 |
|
2552 3/11/96 by DavidW |
|
2553 |
|
2554 Uses: E32Tools[045] ; E32[072] ; F32[038] ; Store[028] ; GDI[036] ; Fntstore[030] ; Fbserv[036] ; Bitgdi[039] |
|
2555 |
|
2556 1) Fixed an infinite loop defect in CApaProcess::FindAppInListL() which |
|
2557 meant that a second app couldn't be added to a process |
|
2558 |
|
2559 |
|
2560 AppArc.019 |
|
2561 ========== |
|
2562 |
|
2563 31/10/96 by DavidW |
|
2564 |
|
2565 Uses: E32Tools[045] ; E32[072] ; F32[038] ; Store[028] ; GDI[036] ; Fntstore[030] ; Fbserv[036] ; Bitgdi[039] |
|
2566 |
|
2567 1) Upgraded to E32[072] et al. Rebuilt the Wins Release and Debug |
|
2568 variants, and the Gcc Release variant. Test code not rebuilt! |
|
2569 Relying on Eikon's test code for now |
|
2570 |
|
2571 2) As suggested by Julian, provided CApaProcess with a public |
|
2572 accessor function FsSession() which returns a reference to the RFs |
|
2573 held inside CApaProcess property |
|
2574 |
|
2575 3) Fixed MNT GETSRC not to impose a version number if none has been |
|
2576 given from the command line |
|
2577 |
|
2578 4) Fixed MNT GETBLD to only run the MAKEWORK and GETTOOLS once, |
|
2579 instead of twice |
|
2580 |
|
2581 |
|
2582 AppArc.018 |
|
2583 ========== |
|
2584 |
|
2585 29/10/96 by DavidW |
|
2586 |
|
2587 Uses: E32Tools[045] ; E32[071] ; F32[037] ; Store[027] ; GDI[035] ; Fntstore[029] ; Fbserv[035] ; Bitgdi[038] |
|
2588 |
|
2589 1) Moved up to Store[027], and therefore dropped Apparc's copy of |
|
2590 the CStreamDictionary class |
|
2591 |
|
2592 2) Also moved up to F32[037] |
|
2593 |
|
2594 3) CApaProcess::NewMainDocumentL() now supports being called with a |
|
2595 zero-length filename, in which case the function no longer attempts |
|
2596 to create a file of this name, but returns NULL for the CFileStore* |
|
2597 handle; this supports applications that don't create files |
|
2598 |
|
2599 4) Made the MainDocFileName() function of CApaProcess simply return |
|
2600 a const TDesC*, instead of going to the overhead of calling the Des() |
|
2601 function on the internal HBuf variable; this is also important for |
|
2602 applications that don't create files (since otherwise the function |
|
2603 involved creating a TPtr from the NULL pointer) |
|
2604 |
|
2605 5) The above changes mean that the iMainDoc and iMainDocFileName |
|
2606 data members of CApaProcess can revert to being private (previously I |
|
2607 had patched the INCC release component of AppArc 017 to make them |
|
2608 public, else Eikon couldn't work) |
|
2609 |
|
2610 6) Fixed a series of latent fatalities by altering code like |
|
2611 delete iMainDocFileName; |
|
2612 iMainDocFileName = xxx.AllocL(); |
|
2613 to insert the line |
|
2614 iMainDocFileName = NULL; |
|
2615 in between the delete and the AllocL() |
|
2616 |
|
2617 7) Fixed a defect pointed out by MartinD and Jezar in that the |
|
2618 ReadRootStreamLC() function was always opening the file in read mode |
|
2619 only, which is fine for Direct stores but not for Permanent |
|
2620 ("re-writable") ones; note that some decision will need to be taken |
|
2621 shortly on how to cope with read-only data files |
|
2622 |
|
2623 8) As suggested by MartinB & Duncan, changed the Changed() function |
|
2624 in CApaDocument to be virtual and const, and renamed it to |
|
2625 HasChanged(); the default implementation remains to return the value |
|
2626 of the iChanged member data, but some applications may prefer to |
|
2627 implement change tracking in a more sophisticated manner |
|
2628 |
|
2629 9) As suggested by MartinB, altered the StoreL() function of |
|
2630 CApaDocument to be const, since Store is a const operation. At the |
|
2631 same time, applied const to various other CApaDocument functions |
|
2632 |
|
2633 10) Added UNLOCK and LOCK verbs to MNT.CMD. |
|
2634 |
|
2635 |
|
2636 AppArc.017 |
|
2637 ========== |
|
2638 |
|
2639 18/10/96 by IanH |
|
2640 |
|
2641 Uses: E32Tools[045] ; E32[071] ; F32[036] ; Store[026] ; GDI[035] ; Fntstore[029] ; Fbserv[035] ; Bitgdi[038] |
|
2642 |
|
2643 ARM release size: |
|
2644 |
|
2645 apparc.dll 18,108 |
|
2646 |
|
2647 General |
|
2648 ======= |
|
2649 |
|
2650 ) Not binary compatible with previous release |
|
2651 |
|
2652 |
|
2653 Changes |
|
2654 ======= |
|
2655 |
|
2656 Changes to CApaProcess: |
|
2657 |
|
2658 ) At the request of MartinB all member data is now private and accessor functions have been supplied as required. |
|
2659 |
|
2660 ) DestroyDocumentL() no longer takes the CApaDocument* by reference (and consequently no longer sets it to null). |
|
2661 |
|
2662 Changes to CApaDocument: |
|
2663 |
|
2664 ) At the request of MartinB iChanged is now protected and has an inline accessor function Changed() |
|
2665 |
|
2666 General changes: |
|
2667 |
|
2668 ) Fixed mnt getrel so it no longer does mad stuff (thanks Julian) |
|
2669 |
|
2670 ) Extended the embedding testcode slightly |
|
2671 |
|
2672 |
|
2673 Still To Come |
|
2674 ============= |
|
2675 |
|
2676 ) .ini files (with visited document lists) |
|
2677 |