]> git.street.me.uk Git - andy/viking.git/blobdiff - HACKING
Fix compiler warnings generated with gcc4.6 in vikgpslayer.c
[andy/viking.git] / HACKING
diff --git a/HACKING b/HACKING
index 6fdb36dc3f975f1227f2458a35df82a653a586df..8240ba198cee79db71acbd1ae8c8c2da65f094cf 100644 (file)
--- a/HACKING
+++ b/HACKING
@@ -1,3 +1,16 @@
+This file is meant to summarize the Viking development policies.
+
+
+Clean commits
+=============
+
+Commits/patches should be as fine-grained as possible (and no finer). Every
+distinct change should be in its own commit and every commit should be a
+meaningful change on its own.
+
+Coding style
+============
+
 Naming:
 A "module" is a .c file.
 
@@ -7,7 +20,15 @@ Both are followed by the module name. Unless of course the function is static, i
 
 All (well, practically all) global constants and macros start with "VIK_" and then the module name.
 
-----
+Technical notices
+=================
+
+In order to activate reference documentation, you have to specify the following configure command line:
+$ ./configure --enable-gtk-doc --enable-gtk-doc-html
+
+Then, cd to doc/reference and launch make command.
+
+---
 
 The layers panel holds all the layers. Layers connect to the layers panel via what I call "interfaces" which are really just a 
 structure of function pointers and pointers to other bits such as icons. viklayer.c switches between the layers like 
@@ -21,3 +42,10 @@ object-oriented language.
 
 "xmpp" and "ympp" are really misnomers, as they only represent the Meters Per Pixel in UTM mode. Otherwise they are an artificial
 zooming system. In expedia mode it represents the "Alti", in Google mode it represents 2^(scale), e.g. 2^0 = 1, 2^8 = 256.
+
+---
+Implementing a MapSource
+
+VikMapSource is the "interface", the really base class of the MapSource tree.
+In order to implement a MapSource, you have to prefer to derive from VikMapSourceDefault, a less abstract class, adding a property based implementation for some aspects of the VikMapSource interface.
+Then, you have to provide implementation for coord_to_mapcoord, mapcoord_to_center_coord and download methods.