/* Copyright 1996 Acorn Computers Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __colpicker_h #define __colpicker_h /* SWIs */ #ifndef ColourPicker_RegisterModel #define ColourPicker_RegisterModel 0x047700 #define ColourPicker_DeregisterModel 0x047701 #define ColourPicker_OpenDialogue 0x047702 #define ColourPicker_CloseDialogue 0x047703 #define ColourPicker_UpdateDialogue 0x047704 #define ColourPicker_ReadDialogue 0x047705 #define ColourPicker_SetColour 0x047706 #define ColourPicker_HelpReply 0x047707 #define ColourPicker_ModelSWI 0x047708 #endif /* Various ColourPicker related structs (broken up into strange lumps for convenience ***********/ typedef struct { char nought; /* = 0 */ char blue; char green; char red; int extension_size; } ColourDescriptorHeader; typedef struct { unsigned int flags; char *title; int x; int reserved0; /* = 0x80000000 */ int reserved1; /* = 0x7fffffff */ int y; int reserved2; /* = 0 */ int reserved3; /* = 0 */ ColourDescriptorHeader descriptor_hdr; } ColourPickerHeader; typedef struct { unsigned int model; /* This extension caters fully for only three models */ union { struct { int red; /* % */ int green; /* % */ int blue; /* % */ } rgb; struct { int cyan; /* % */ int magenta; /* % */ int yellow; /* % */ int key; /* % */ } cmyk; struct { int hue; /* angle (degrees) */ int saturation; /* % */ int value; /* % */ } hsv; char bytes[16]; int words[4]; } data; } ColourModelData; typedef struct { ColourPickerHeader hdr; ColourModelData ext; } ColourPickerExtended; typedef struct { ColourDescriptorHeader hdr; ColourModelData ext; } ColourDescriptorBlock; /* ColourPicker dialogue types *****************************************************************/ #define ColourPickerType_Normal 0x00000000 #define ColourPickerType_Menu 0x00000001 #define ColourPickerType_Toolbox 0x00000002 #define ColourPickerType_SubMenu 0x00000003 /* ColourPicker flags (OpenDialogue) ***********************************************************/ #define ColourPickerFlags_IncludeNoneButton 0x00000001 #define ColourPickerFlags_SelectNoneButton 0x00000002 #define ColourPickerFlags_ChangeInfoExceptDrag 0x00000004 #define ColourPickerFlags_AllChangeInfo 0x00000008 #define ColourPickerFlags_IgnoreHelpRequest 0x00000010 /* ColourPicker flags (UpdateDialogue) *********************************************************/ #define ColourPicker_Update_IncludeNoneButton 0x00000001 #define ColourPicker_Update_SelectNoneButton 0x00000002 #define ColourPicker_Update_WhenChangeInfo 0x00000004 #define ColourPicker_Update_VisibleSize 0x00000008 #define ColourPicker_Update_Reserved 0x00000010 #define ColourPicker_Update_WindowTitle 0x00000020 #define ColourPicker_Update_RGBSetting 0x00000040 #define ColourPicker_Update_ModelAndSetting 0x00000080 /* Messages ************************************************************************************/ #define colourpicker_MPICKERCHOICE 0x00047700 #define colourpicker_MCOLOURCHANGED 0x00047701 #define colourpicker_MCLOSEDIALOGUEREQUEST 0x00047702 #define colourpicker_MOPENPARENTREQUEST 0x00047703 typedef struct { int dialogue_handle; int flags; struct { ColourDescriptorHeader hdr; struct { unsigned int model; /* This extension caters fully for only three models */ union { struct { int red; /* % */ int green; /* % */ int blue; /* % */ } rgb; struct { int cyan; /* % */ int magenta; /* % */ int yellow; /* % */ int key; /* % */ } cmyk; struct { int hue; /* angle (degrees) */ int saturation; /* % */ int value; /* % */ } hsv; char bytes[256-sizeof(wimp_MsgHdr)-sizeof(ColourDescriptorHeader)-sizeof(int)]; int words[(256-sizeof(wimp_MsgHdr)-sizeof(ColourDescriptorHeader)-sizeof(int))/4]; } data; } colour_model; } colour_descriptor_block; } colourpicker_PickerChoice, colourpicker_ColourChanged; typedef struct { int dialogue_handle; } colourpicker_CloseDialogueRequest, colourpicker_OpenParentRequest; typedef struct { wimp_MsgHdr hdr; colourpicker_ColourChanged message; } ColourPicker_ColourChanged_Event; typedef struct { wimp_MsgHdr hdr; colourpicker_PickerChoice message; } ColourPicker_PickerChoice_Event; typedef struct { wimp_MsgHdr hdr; colourpicker_CloseDialogueRequest message; } ColourPicker_CloseDialogueRequest_Event; typedef struct { wimp_MsgHdr hdr; colourpicker_OpenParentRequest message; } ColourPicker_OpenParentRequest_Event; #endif