MUI's boopsi class provides an interface to standard, system style boopsi gadgets.
Source position: mui.pas line 1966
const MUIC_Boopsi: PChar = 'Boopsi.mui'; |
Since boopsis gadgetclass misses some important features needed for an automatic layout system like MUI, there are several problems with such an interface. MUI tries to solve these problems with some additional attributes.
Coming with release 3.x of the amiga operating system are some very nice boopsi gadgets such as "colorwheel.gadget" or "gradientslider.gadget". With MUI's boopsi class, you can use these gadgets just as if they were MUI objects.
You can talk to a MUIized boopsi object as if it was the boopsi object itself. MUI will pass through all attributes and try to be completely transparent. Additionally, if a boopsi object generates notification events via IDCMP_UPDATE, MUI turns them into MUI notification events. Thus, you can e.g. react on the change of WHEEL_Saturation in a MUI colorwheel boopsi gadget as on any other MUI attribute.
An example program "BoopsiDoor.c" is provided to show how this magic works.
Note: OS 3.0/3.1 colorwheel.gadget can accidently render itself one pixel too big, overwriting other parts of the window. As a workaround, MUI will subtract one from the width/height before passing it on to a colorwheel boopsi object.
rootclass | --> | Notify | --> | Area | --> | Gadget | --> | Boopsi |
_______________ Field _______________ | ___ Access ___ | _____ Type _____ | Short description |
---|---|---|---|
MUIA_Boopsi_Class | ISG | PIClass | Pointer to the (private) class you want to create a boopsi object from. |
MUIA_Boopsi_ClassID | ISG | PChar | Name of the Boopsi class you want to create an object of. |
MUIA_Boopsi_MaxHeight | ISG | LongWord | Maximal height for the boopsi gadget. |
MUIA_Boopsi_MaxWidth | ISG | LongWord | Maximal width for the boopsi gadget. |
MUIA_Boopsi_MinHeight | ISG | LongWord | Minimum Height for the boopsi gadget. |
MUIA_Boopsi_MinWidth | ISG | LongWord | Minimum Width for the boopsi gadget. |
MUIA_Boopsi_Object | __G | PObject_ | MUI returns when generating a BoopsiObject is a standard MUI object. |
MUIA_Boopsi_Remember | I__ | LongWord | Attributes must be remembered during dispose/regeneration. |
MUIA_Boopsi_Smart | I__ | BOOL (0/1) | Smart BOOPSI gadgets that allow resizing. |
MUIA_Boopsi_TagDrawInfo | ISG | LongWord | Tell MUI where to fill in a needed DrawInfo structure. |
MUIA_Boopsi_TagScreen | ISG | LongWord | Tell MUI where to fill in a needed Screen structure. |
MUIA_Boopsi_TagWindow | ISG | LongWord | Tell MUI where to fill in a needed Window structure. |
MUIA_Gadget_Gadget | __G | PGadget | Subclasses may obtain a pointer to the intuition gadget here. |
_______________ Field _______________ | ___ Access ___ | _____ Type _____ | Short description |
---|---|---|---|
MUIA_Background | IS_ | LongInt | Adjust the background for an object. |
MUIA_BottomEdge | __G | LongInt | Current position and dimension of an object. |
MUIA_ContextMenu | ISG | PObject_ | Specifies a context sensitive popup menu for the current object. |
MUIA_ContextMenuTrigger | __G | PObject_ | Allows reacting on context menus with notificaton. |
MUIA_ControlChar | ISG | PObject_ | Allows reacting on context menus with notificaton. |
MUIA_CycleChain | ISG | LongInt | Define cycle chain position. |
MUIA_Disabled | ISG | BOOL (0/1) | Disable or enable a gadget. |
MUIA_Draggable | ISG | BOOL (0/1) | Set this if you want the complete object to be dragable for Drag'n'Drop operations. |
MUIA_Dropable | ISG | BOOL (0/1) | Set as active Drag'n'Drop target. |
MUIA_FillArea | IS_ | BOOL (0/1) | Define if a custom class should clear the background. |
MUIA_FixHeight | I__ | LongInt | Give your object a fixed pixel height. |
MUIA_FixHeightTxt | I__ | PChar | Give your object a fixed pixel height given by a text height. |
MUIA_FixWidth | I__ | LongInt | Give your object a fixed pixel width. |
MUIA_FixWidthTxt | I__ | PChar | Give your object a fixed pixel width given by a text height. |
MUIA_Font | I_G | PTextFont | Give your object a fixed pixel width given by a text height. |
MUIA_Frame | I__ | LongInt | Define a frame for the current object. |
MUIA_FramePhantomHoriz | I__ | BOOL (0/1) | Do not draw horizontal frame border |
MUIA_FrameTitle | I__ | PChar | Text displayed centered in the top line of a frame. |
MUIA_Height | __G | PChar | Read current height of object. |
MUIA_HorizDisappear | ISG | LongInt | Priority for disappearing if parent is too small in height. |
MUIA_HorizWeight | ISG | SmallInt | Adjust the horizontal weight of an object. |
MUIA_InnerBottom | I_G | LongInt | Adjust the space between an object and its frame. |
MUIA_InnerLeft | I_G | LongInt | Adjust the space between an object and its frame. |
MUIA_InnerRight | I_G | LongInt | Adjust the space between an object and its frame. |
MUIA_InnerTop | I_G | LongInt | Adjust the space between an object and its frame. |
MUIA_InputMode | I__ | LongInt | Adjust the input mode for an object. |
MUIA_LeftEdge | __G | LongInt | Read current left edge of object. |
MUIA_MaxHeight | I__ | LongInt | Specify a maximum height for an object (in pixels). |
MUIA_MaxWidth | I__ | LongInt | Specify a maximum height for an object (in pixels). |
MUIA_Pressed | __G | BOOL (0/1) | Get if a Button is pressed or not. |
MUIA_RightEdge | __G | BOOL (0/1) | Read current right edge of object. |
MUIA_Selected | ISG | BOOL (0/1) | Selected state of object. |
MUIA_ShortHelp | ISG | PChar | Specify a string that is to be used as bubble help for this object. |
MUIA_ShowMe | ISG | BOOL (0/1) | Define if the object is visible or not. |
MUIA_ShowSelState | I__ | BOOL (0/1) | Reverse object frame if selected. |
MUIA_Timer | __G | LongInt | Define a Button repeatly firing. |
MUIA_TopEdge | __G | LongInt | Read current top edge of object. |
MUIA_VertDisappear | __G | LongInt | Priority for disappearing if parent is too small in width. |
MUIA_VertWeight | ISG | SmallInt | Adjust the vertical weight of an object. |
MUIA_Weight | I__ | SmallInt | Adjust the vertical and horizontal weight of an object in one call. |
MUIA_Width | __G | LongInt | Read current width of object. |
MUIA_Window | __G | PWindow | Get intuition window struct of the parent window. |
MUIA_WindowObject | __G | PObject_ | Get window object of the parent window. |
_______________ Field _______________ | ___ Access ___ | _____ Type _____ | Short description |
---|---|---|---|
MUIA_ApplicationObject | __G | PObject_ | Obtain a pointer to the application object that some gadget belongs |
MUIA_AppMessage | __G | PAppMessage | Listen to this field to get AppMessages (Icon dropped on the App window) |
MUIA_HelpLine | ISG | LongInt | Define a line in a help file specified with MUIA_Application_HelpFile |
MUIA_HelpNode | ISG | PChar | Define a node in a help file specified with MUIA_Application_HelpFile |
MUIA_NoNotify | _S_ | BOOL (0/1) | Prevent notification from being triggered on attribute set |
MUIA_ObjectID | ISG | LongWord | Identification for object on save/load |
MUIA_Parent | __G | PObject_ | Get a pointer to the parent object of the current object |
MUIA_Revision | __G | LongInt | Get the revision number of an objects class |
MUIA_UserData | ISG | LongWord | A general purpose value to fill in any kind of information |
MUIA_Version | __G | LongInt | Get the version number of an objects class |
_______________ Method _______________ | Short description |
---|---|
MUIM_AskMinMax | Ask minimum and maximum of the object. For custom classes only. |
MUIM_Cleanup | For custom classes only. |
MUIM_ContextMenuBuild | Allows dynamic creation of context menus. |
MUIM_ContextMenuChoice | Allows reacting on context menus in subclasses. |
MUIM_CreateBubble | Create a bubble message. |
MUIM_CreateShortHelp | Allows dynamic creation of help bubble texts. |
MUIM_DeleteBubble | Remove a bubble message. |
MUIM_DeleteShortHelp | Remove help bubble texts memory. |
MUIM_DragBegin | Inform an object that it has become the active destination of a drag'n'drop action. |
MUIM_DragDrop | Indicate that the user dropped something on the current object. |
MUIM_DragFinish | Indicate that an object is no longer the active destination object of a drag'n'drop action. |
MUIM_DragQuery | Determine if drag'n'drop is allowed. |
MUIM_DragReport | Object is still dragged around. |
MUIM_Draw | Ask the object to draw itself. For use in Custom classes only |
MUIM_DrawBackground | Draw the background of the object. |
MUIM_HandleEvent | This method is invoked whenever one of an event handlers trigger signals arrives. |
MUIM_HandleInput | Handle input messages. For custom classes only. |
MUIM_Hide | For custom classes only. |
MUIM_Setup | For custom classes only. |
MUIM_Show | For custom classes only. |
_______________ Method _______________ | Short description |
---|---|
MUIM_CallHook | Call a standard amiga callback hook |
MUIM_Export | Called on export object to dataspace |
MUIM_FindUData | Find a userdata in objects and childrens list and return the object |
MUIM_GetConfigItem | |
MUIM_GetUData | Find a userdata in objects and childrens list and return an attribute of the object |
MUIM_Import | Called on import object from dataspace |
MUIM_KillNotify | Kills previously given notifications on specific attributes |
MUIM_KillNotifyObj | |
MUIM_MultiSet | Set an attribute for multiple objects. |
MUIM_NoNotifySet | Acts like MUIM_Notify but doesn't trigger any notification |
MUIM_Notify | Add a notification event handler to an object |
MUIM_Set | Set an attribute to a value |
MUIM_SetAsString | Set a (text kind) attribute to a string. |
MUIM_SetUData | Find a userdata in objects and childrens list and set an attribute of the object |
MUIM_SetUDataOnce | This method performs like MUIM_SetUData, but stop at first found object. |
MUIM_WriteLong | This method simply writes a longword somewhere to memory. |
MUIM_WriteString | This method simply copies a string somewhere to memory. |