Difference between revisions of "User:Ericb"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Directories in vcl)
(Directories in vcl)
Line 53: Line 53:
  
 
'''[[Content of aqua]]'''
 
'''[[Content of aqua]]'''
 
inc -> specific includes (188 files)
 
 
The list :
 
 
eric@patate:~/OpenOffice.org/vcl/aqua/source/window$ eric@patate:~/OpenOffice.org/vcl/inc$ llsls -l
 
total 1896
 
-rw-r--r--    1 eric    eric        3418 2005-01-13 18:24 abstdlg.hxx
 
 
-rw-r--r--    1 eric    eric        3014 2000-09-19 12:23 accel.h
 
 
-rw-r--r--    1 eric    eric        5815 2005-01-13 18:25 accel.hxx
 
 
[...cut : too much files ...]
 
 
-rw-r--r--    1 eric    eric        2902 2003-12-01 14:02 windata.hxx
 
 
-rw-r--r--    1 eric    eric        15974 2005-03-18 18:50 window.h
 
 
-rw-r--r--    1 eric    eric        51257 2005-03-29 14:55 window.hxx
 
 
-rw-r--r--    1 eric    eric        13774 2005-03-29 16:36 wintypes.hxx
 
 
-rw-r--r--    1 eric    eric        5156 2005-01-13 18:57 wrkwin.hxx
 
 
-rw-r--r--    1 eric    eric        4290 2004-01-06 14:08 xconnection.hxx
 
 
 
source -> all the Mac specific sources 
 
 
[IMHO continue to use this dir can be a good thing ;-) ]
 
 
source -->  app
 
|-> gdi
 
|-> src
 
-->window
 
 
vcl/aqua/source/app
 
 
eric@patate:~/OpenOffice.org/vcl/aqua/source/app$ ls -l
 
total 64
 
drwxr-sr-x    2 eric    eric        4096 2005-07-15 23:32 CVS
 
 
-rw-r--r--    1 eric    eric        3469 2005-01-13 18:24 makefile.mk
 
 
-rw-r--r--    1 eric    eric        3168 2004-01-06 13:42 saldata.cxx
 
 
-rw-r--r--    1 eric    eric        13790 2004-01-06 13:43 salinst.cxx
 
 
-rw-r--r--    1 eric    eric        2966 2004-10-28 18:23 salmain.cxx
 
 
-rw-r--r--    1 eric    eric        3922 2004-01-06 13:43 salsound.cxx
 
 
-rw-r--r--    1 eric    eric        3136 2004-01-06 13:44 salsys.cxx
 
 
-rw-r--r--    1 eric    eric        3106 2004-01-06 13:44 saltimer.cxx
 
 
-rw-r--r--    1 eric    eric        12206 2001-03-19 17:31 VCLApplication.m
 
 
-rw-r--r--    1 eric    eric        2965 2001-03-07 05:39 VCLAutoreleasePool.m
 
 
-rw-r--r--    1 eric    eric        3071 2000-12-16 03:43 VCLEvent.m
 
 
vcl/aqua/source/gdi  [ gdi means graphical device interface, a Windows standard for representating graphical objects and transmitting them to output devices, such as monitors and printers said google]
 
 
eric@patate:~/OpenOffice.org/vcl/aqua/source/gdi$ ls -l
 
total 256
 
drwxr-sr-x    2 eric    eric        4096 2005-07-15 23:32 CVS
 
 
-rw-r--r--    1 eric    eric        3605 2005-01-13 18:24 makefile.mk
 
 
-rw-r--r--    1 eric    eric        57470 2004-03-30 15:41 salatsuifontutils.cxx
 
 
-rw-r--r--    1 eric    eric        13906 2004-01-06 13:45 salbmp.cxx
 
 
-rwxr-xr-x    1 eric    eric        26958 2004-01-06 13:46 salcolorutils.cxx
 
 
-rw-r--r--    1 eric    eric        12171 2004-03-30 15:41 salfontutils.cxx
 
 
-rw-r--r--    1 eric    eric        40051 2004-01-06 13:46 salgdi.cxx
 
 
-rwxr-xr-x    1 eric    eric        17298 2004-01-06 13:47 salgdiutils.cxx
 
 
-rwxr-xr-x    1 eric    eric        5738 2004-01-06 13:47 salmathutils.cxx
 
 
-rw-r--r--    1 eric    eric        3642 2004-01-06 13:47 salogl.cxx
 
 
-rwxr-xr-x    1 eric    eric        19763 2004-01-06 13:47 salpixmaputils.cxx
 
 
-rw-r--r--    1 eric    eric        5588 2004-01-06 13:48 salprn.cxx
 
 
-rwxr-xr-x    1 eric    eric        5733 2004-01-06 13:48 salrectangleutils.cxx
 
 
-rw-r--r--    1 eric    eric        9355 2004-01-06 13:49 salvd.cxx
 
 
-rw-r--r--    1 eric    eric        5610 2002-08-27 13:37 VCLGraphics.m
 
 
 
Note  .m suffixes are for Objective-C files ( like .mm are for Obj-C++ )
 
 
eric@patate:~/OpenOffice.org/vcl/aqua/source/gdi$ eric@patate:~/OpenOffice.org/vcl/aqua/source/src$ ls -l
 
total 8
 
drwxr-sr-x    2 eric    eric        4096 2005-07-15 23:32 CVS
 
 
-rw-r--r--    1 eric    eric        2463 2000-09-18 19:05 makefile.mk
 
 
eric@patate:~/OpenOffice.org/vcl/aqua/source/src$ eric@patate:~/OpenOffice.org/vcl/aqua/source/window$ ls -l
 
total 44
 
drwxr-sr-x    2 eric    eric        4096 2005-07-15 23:32 CVS
 
 
-rw-r--r--    1 eric    eric        3176 2005-01-13 18:24 makefile.mk
 
 
-rw-r--r--    1 eric    eric        10023 2004-01-06 13:49 salframe.cxx
 
 
-rw-r--r--    1 eric    eric        5516 2004-01-06 13:50 salobj.cxx
 
 
-rw-r--r--    1 eric    eric        3497 2002-08-27 13:57 VCLView.m
 
 
-rw-r--r--    1 eric    eric        10703 2002-08-27 13:58 VCLWindow.m
 
  
  

Revision as of 22:47, 14 February 2006

Sort of documentation about VCL around Mac OS X port

Do we really need to understand how it works ?  ;-)

vcl content :

ls -laR | wc -l

  1750

-> Uff 1750 files to analyse  :-/

Directories in vcl

aqua  : Begun by (probably) P. luby and Ed Peterlin. actually in ruin, but full of ideas to investigate. The most important part of needed changes for native version (3.0) will be done inside aqua dir inc : does contain all vcl relative includes [PART1]

prj  : Does contain build.lst and d.lst build.lst give us dependencies : probably a lot for vcl, build 98th module over ~148. Everything graphical depends in vcl. qa : does contain all quality assurancy stuff source : the most important :-) Depending on the OS and the architecture, binaries are built or not.

qa does contain all quality assurancy stuff

source : the most important :-)

Depending on the OS and the architecture, binaries are built or not.

test : I never seen this directory before today...interesting

unx : this directory does contain all unixes stuff. We have to understand what is inside to implement aqua port

win : no interest for us :-) In fact, interesting if Carbon is used.

workben : Does contain a toy called "svdem". svdem is a binary, used for new implementations. For example, actual aqua development uses svdem intensively, to verify all important properties we need :

- display a window first ( al least ... :) )

- display a point

- trace a line

- trace an area

- superpose two areas doing some important graphical operations, (like xor),

- display a character

- display a menu.

- intercept events correctly

- do not freeze because bad event loops

Apart : exact sense of hedabu ? -> [FIXME] looks like a hash list of available includes is build while products are delivered in every module... not sure


Content of aqua


Content of vcl/inc

Notes :

1)

<name_a/name_b.h> means you can find name_b.h in name_a module (exactly in name_a/inc). this header file, once name_a module is build, is copied in the solver in solver/680/build_type/inc/name_a. Verify first here is very usefull when some functions are not defined, and the build broken ;-)

2) suffix .h (for C calls or first version ?) or .hxx (C++ )

A) Family of includes :

Looking more closely at the list brings to the fore (expression from dictionnary ;-) ) that include names are informatives. Most of the time, the name gives the function/role. What is interesting is the files with name begining with "sal". sal means System Abstraction Layer + include's function (or explicit name).

Partial list, for example :

salatypes.hxx

salbmp.hxx

salctrlhandle.hxx

salctype.hxx

salframe.hxx

salgdi.hxx

salgeom.hxx ... salmenu salnativewidgets ...etc

Other important families are "sv" and "uno" or "win" (window) prefixed. sal family will be analysed apart.

B)Includes of includes

Some includes are more important than other. To proof this, just have a look is sufficient : some are always needed, and some more rarely.

To verify, a simple test to do in vcl/inc :

egrep -H "#include" ./* | wc -l gives me 681 lines ! And some of them are the same...

To know more, the precedent command line can be modified to make appear the numerous call to the same includes files.


egrep -H "#include" ./* | cut -d"#" -f2 | sort > liste.txt

The content of liste.txt is explicit : dllapi.h, sv.h and some other are very important, while some other includes are only one or two times used. We can see too that vos includes are numerous, even if vos is deprecated**

[**see ]


I'm nearly sure that a complete analyze of just this result will give us a lot of informations.

I propose to change the order of analyse starting with dllapi.h and sv.h.


[to be continued]

B1) "sal" includes family

salatype.hxx

salctrlhandle.hxx

salctype.hxx

salframe.hxx

salgdi.hxx

salgeom.hxx

salgtype.hxx

B2) Classicals includes

file : abstdlg.hxx [ means abstract dialog ]

This includes does contain the following classes definitions:

[FIXME]  : choose a precise presentation template for classes


VclAbstractDialog,

VclAbstractTerminateDialog,

VclAbstractRefreshableDialog,

VclAbstractDialogFactory,


uses <tools/solar.h> , <tools/string.hxx> +

"dllapi.h"

Note  : dllapi.h is very intersting because when we have to find (for example) a library suffix, SAL_DLLEXTENSSION can replace all suffixes (every OS's and archs). Just includes sal/config.h does it !


Classes :

Window -> what ? [FIXME] ResId -> what ?

Does contain the prototype of VclAbstractDialog, inherit of VCL_DLLPUBLIC


file : dllapi.h [ dll for dynamic linked library ] Uses : <sal/config.h> and >sal/types/h> includes : VCL_DLLPUBLIC macro


file : accel.h [ means accelerator ]

Classes :

Accelerator { } ImplAccelEntry { public members :

Names

mnId maKeyCode mpAccel mpAutoAccel mbEnabled }

function / returns / parameters

ImplGetKeyCode / void / KeyFuncType eFunc, ref rCode1 , ref rCode2, ref rCode3

file : accel.hxx

Uses : <sv.h> , "dllapi.h" ,<tools/resid.hxx>, <<tools/rc.hxx>


Classes:

ImplAccelData; ImplAccelEntry;


[to be continued :-) ]


--Ericb 15:00, 22 Jul 2005 (EDT)

Personal tools