Hi again!
I couldn't help myself and I've started coding

I've modified gui.c so that this is correct as far as I can tell. After some trial and error I have figured out that I must also modify conf.c, and platform.h.
I have modified platform.h so that the function 'kbd_set_alt_mode_key_mask' is defined for my camera by including my camera in the CAMERA_MULTIPART definition. I have modified conf.c as following:
original:
303 static void conf_change_alt_mode_button() {
304 #if defined(CAMERA_s2is) || defined(CAMERA_s3is) || defined(CAMERA_g7)
305 kbd_set_alt_mode_key_mask(conf.alt_mode_button);
306 #else
307 conf.alt_mode_button = KEY_PRINT;
308 #endif
309 }
new version:
303 static void conf_change_alt_mode_button() {
304 kbd_set_alt_mode_key_mask(conf.alt_mode_button);
305 }
But when compiling, this fails and returns:
>> Entering to core
gui.c -> gui.o
-> main.elf
gui.o: In function `gui_alt_mode_button_enum':
gui.c:(.text+0x4dc): undefined reference to `kbd_set_alt_mode_key_mask'
gui.o: In function `card_break_proc':
gui.c:(.text+0xaee): undefined reference to `create_partitions'
gui.o: In function `gui_menuproc_swap_patitons':
gui.c:(.text+0xb1a): undefined reference to `get_part_count'
gui.c:(.text+0xb32): undefined reference to `swap_partitions'
conf.o: In function `conf_change_alt_mode_button':
conf.c:(.text+0x13c): undefined reference to `kbd_set_alt_mode_key_mask'
collect2: ld returned 1 exit status
D:\Dokumenter\aasmund\CHDK\gcc\bin\gmake[1]: *** [main.elf] Error 1
gmake: *** [all-recursive] Error 1

It seems for every failing function call i fix, four new ones appear. Does anyone have a good idea of what is going on? Is there any documentation from the people who implemented this on the G7 and the S2 / S3? I will spend some more time on it, and I'll let you know if I discover something.
I believe there may also be something in kbd.c that I'm missing... I found some references to conf.alt_mode_button in kbd.c, but as far as I can tell, these just open the menu when the alt button defined in gui.c via conf.c is pressed.
I know this is a lot of code, but a little help would be nice:)
Thank you all very much:)
Aasmund.