Difference between revisions of "User:Ericb"

From Apache OpenOffice Wiki
Jump to: navigation, search
Line 250: Line 250:
 
'''B1) "sal" includes family'''
 
'''B1) "sal" includes family'''
  
[[salatype.h]][[salatype.hxx]]
+
[[salatype.hxx]]
  
 
[[salctrlhandle.hxx]]
 
[[salctrlhandle.hxx]]

Revision as of 09:25, 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.

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

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


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

salgeom.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