En réponse à DarkWyrm <bpmagic@xxxxxxxxxxxxxxx>: > >Which of course is incompatible with the Dano/Zeta headers :^) > Not to be antagonistic, but it doesn't make much difference, anyway. > Dano/ > Zeta breaks binary compatibility with R5 because of how they are > defined. R5 > uses an enum with integer values. Dano uses global const char *'s. Our False: [revol@patrick /boot/home]$ grep 'B_[A-Z_]*COLOR = ' /Exp\ \ \ Nov-15-01/develop/headers/be/interface/InterfaceDefs.h B_PANEL_BACKGROUND_COLOR = 1, B_PANEL_TEXT_COLOR = 10, B_DOCUMENT_BACKGROUND_COLOR = 11, B_DOCUMENT_TEXT_COLOR = 12, B_CONTROL_BACKGROUND_COLOR = 13, B_CONTROL_TEXT_COLOR = 14, B_CONTROL_BORDER_COLOR = 15, B_CONTROL_HIGHLIGHT_COLOR = 16, B_NAVIGATION_BASE_COLOR = 4, B_NAVIGATION_PULSE_COLOR = 17, B_SHINE_COLOR = 18, B_SHADOW_COLOR = 19, B_MENU_BACKGROUND_COLOR = 2, B_MENU_SELECTED_BACKGROUND_COLOR = 6, B_MENU_ITEM_TEXT_COLOR = 7, B_MENU_SELECTED_ITEM_TEXT_COLOR = 8, B_MENU_SELECTED_BORDER_COLOR = 9, B_TOOLTIP_BACKGROUND_COLOR = 20, B_TOOLTIP_TEXT_COLOR = 21, B_SUCCESS_COLOR = 100, B_FAILURE_COLOR = 101, B_KEYBOARD_NAVIGATION_COLOR = B_NAVIGATION_BASE_COLOR, B_MENU_SELECTION_BACKGROUND_COLOR = B_MENU_SELECTED_BACKGROUND_COLOR, B_DESKTOP_COLOR = 5, B_WINDOW_TAB_COLOR = 3, B_RANDOM_COLOR = 0x80000000, It *both* has the string based ui_color() and the old one, but with new values. rgb_color ui_color(color_which which); rgb_color ui_color(const char* name); > new > values, while utilized by no one else at this point, will not break BC. False again :P > If > you want source compatibility with ui_color, it's probably going to take > a > little bit of playing around no matter what we do because of what Be did > with > Dano. I guess it's time for me to join BeUnited and write a standard. Sure. The string based version is unneed IMO but the int one should be kept compatible with Dano if possible. > > >François. > >P.S. how would I #ifdef such a thing ? can't #ifdef on enums > Probably #ifdef the whole enum definition would be the only way to go > AFAIK. enum isn't a preprocessor directive, it doesn't even see it. François.