Area.mui
DESCRIPTION
Area.mui/Area.mui Area class is a super class for every other MUI class except windows and applications. It holds information about an objects current position, size and weight and manages frames, fonts and backgrounds. Additionally, area class handles the user input. By setting an objects MUIA_InputMode, you can make it behave like a button or like a toggle gadget. That's why MUI doesn't offer an extra button class. A button is simply a text object with a raised frame and a relverify input mode. Since especially group class is a subclass of area, you can create rather complex buttons consisting of many other display elements
MUIA_Background
(V4 ) [IS.], LONG, 0x8042545b
DESCRIPTION
Adjust the background for an object. Every MUI object has its own background setting. The background is displayed "behind" the actual object contents, e.g. behind a the text of a text object or behind the image of an image object. This attribute takes the same values as MUIA_Image_Spec, please refer to autodocs of image class for a complete description. An object without a specific background setting will inherit the pattern from its parent group ยน. The default background for a window and many other background patterns are adjustable with the preferences program. Only a few MUII_xxxxxxx tags make sense as background. Important are: MUII_ButtonBack: You have to set this when you create a button gadget. Thus, your button will be displayed in the users preferred style. MUII_TextBack: Set this when you create a text object with a TextFrame, e.g. some kind of status line. Do *not* use MUII_TextBack for simple text without frame (e.g. gadget labels). MUII_BACKGROUND MUII_SHADOW MUII_SHINE MUII_FILL MUII_SHADOWBACK MUII_SHADOWFILL MUII_SHADOWSHINE MUII_FILLBACK MUII_FILLSHINE MUII_SHINEBACK MUII_SHINEBACK2: One of MUI's predefined pattern. These are not configurable by the user and will always look the same
NOTE
Don't expect everyone's settings to look like yours. Test with different presets to make sure things always look right.
MUIA_BottomEdge
(V4 ) [..G], LONG, 0x8042e552
DESCRIPTION
You can use this to read the current position and dimension of an object, if you e.g. need it to pop up some requester below. Of course, this attribute is only valid when the parent window of the object is currently open
SEE ALSO
MUIA_BuiltinFont
(V22) [ISG], ULONG, 0x8042256f
DESCRIPTION
yet undocumented, please complain in mailinglist
SPECIAL INPUTS
MUIV_BuiltinFont_Inherit MUIV_BuiltinFont_Normal MUIV_BuiltinFont_List MUIV_BuiltinFont_Tiny MUIV_BuiltinFont_Fixed MUIV_BuiltinFont_Title MUIV_BuiltinFont_Big MUIV_BuiltinFont_Button MUIV_BuiltinFont_Slider MUIV_BuiltinFont_Gauge MUIV_BuiltinFont_Menu MUIV_BuiltinFont_Tab MUIV_BuiltinFont_Bubble MUIV_BuiltinFont_Huge MUIV_BuiltinFont_Last MUIV_BuiltinFont_Count
MUIA_ContextMenu
(V11) [ISG], MUIMenustrip *, 0x8042b704
DESCRIPTION
Specifies a context sensitive popup menu for the current object. For MUI, popup menus are nothing else but standard menus, so you must specify a pointer to a MUI menustrip object (e.g. something returned from MUI_MakeObject(MUIO_MenustripNM,...)) here. Whenever the user hits the RMB and the mouse is above the parent object, MUI will present the popup menu instead of the windows menu. Note: MUI will *not* dispose the MUIA_ContextMenu object when the object is disposed. You must take care of the menustrip object yourself. This is because menustrip objects in MUIA_ContextMenu do not actually "belong" to their parent objects, they're just a "reference". You are allowed to use a single menustrip object as MUIA_ContextMenu for different objects of the same window. Do *not* share with objects in other windows or with the default menu of a window or an application! If the user selects an item, the object will receive a MUIM_ContextMenuChoice method containing the selected menuitem object. If you build your menustrip tree with MUI_MakeObject(MUIO_MenustripNM,...), you will find the nm_UserData of your menu entry in muiUserData(msg->item). If you have control over methods because you are a subclass, you can immediately take approriate actions when receiving MUIM_ContextMenuChoice. If you dont have a subclass or dont override MUIM_ContextMenuChoice, the method will finally reach area class and will set the attribute MUIA_ContextMenuTrigger to the appropriate menuitem object. This allows you to react on context menu selections by simple notification and eliminates the need of writing a subclass just for this purpose. Subclasses are always the better solution though! There is also a possibility to dynamically create popup menus on the fly. See MUIM_ContextMenuBuild for details
NOTES
MUI uses the same tree-like technique as always (e.g. with drag&drop) to find out which context menu to use on a certain mouse position. This allows you to have a context menu for a group and different context menus for its children. The MUI preferences program makes use of that feature by allowing to control a single gadget or a whole page of gadgets with popup menus.
SEE ALSO
MUIA_ContextMenuTrigger
(V11) [..G], MUIMenuitem *, 0x8042a2c1
DESCRIPTION
Allows reacting on context menus with notificaton. When the MUIM_ContextMenuChoice method reaches area class because you did not override it in a subclass, it sets MUIA_ContextMenuTrigger to the received paremeter which is a pointer to the user-selected menuitem object. See MUIA_ContextMenu for details
SEE ALSO
MUIA_ControlChar
(V4 ) [ISG], char, 0x8042120b
DESCRIPTION
Pressing the control char will have the same effect as pressing return if the object was active. This can be used to create old style key shortcuts. Note: Using an uppercase control char will force the user to press shift
SEE ALSO
mui.h / KeyButton() macro
MUIA_CustomBackfill
(V11) [ISG], BOOL, 0x80420a63
DESCRIPTION
yet undocumented, please complain in mailinglist
MUIA_CustomFont
(V20) [ISG], STRPTR, 0x80423fc5
DESCRIPTION
Allows overriding the user-configured MUI fonts. Takes a MUI font spec string as input. The string may contain just the styling information, for example Noto Sans UI/20 - use Noto Sans UI font, size 20 Noto Sans UI/+10 - use Noto Sans UI font, with size + 10 points from the height of the Normal font /+10 - will use the user-defined Normal font, but with a size + 10 points larger //s - use Normal font, enable shadow //o - enable outline //g - enable glow (caution: slow!) //n - reset styles //u - underline //b - bold //i - italic //crrggbb - set text color to a RGB value //Crrggbb - set text outline color Noto Sans UI/+10/o/Cff0000 - use Noto Sans UI font, with size + 10 points from the height of the Normal font, with a red colored outline Setting MUIA_Font after MUIA_CustomFont overrides MUIA_CustomFont and vice versa
CAUTION
It is not advised to use MUIA_CustomFont, unless the font may be configured by the user or this is used in a fully custom-drawn Area subclass where the background is also controlled by the programmer and won't collide with user settings (think dark background and black text).
SEE ALSO
MUIA_CycleChain
(V11) [ISG], LONG, 0x80421ce7
DESCRIPTION
MUI 3 introduces a new keyboard cycle chain system. All you have to do is to set MUIA_CycleChain to 1 for every object that you want to have in your chain, MUI does the rest automatically. The old MUIM_Window_SetCycleChain will continue to work but is considered obsolete
SEE ALSO
MUIA_Disabled
(V4 ) [ISG], BOOL, 0x80423661
DESCRIPTION
Disable or enable a gadget. Setting this attribute causes a gadget to become disabled, it gets a ghost pattern and doesn't respond to user input any longer. Disabled gadgets cannot be activated with the TAB key. Using MUIA_Disable on a group of objects will disable all objects within that group
EXAMPLE
/* we have a radio button gadget with three */ /* entries, the third should enable a string gadget */ /* with additional parameters */ DoMethod(radio, MUIM_Notify, MUIA_Radio_Active, 0, string, 3, MUIM_Set, MUIA_Disabled, TRUE); DoMethod(radio, MUIM_Notify, MUIA_Radio_Active, 1, string, 3, MUIM_Set, MUIA_Disabled, TRUE); DoMethod(radio, MUIM_Notify, MUIA_Radio_Active, 2, string, 3, MUIM_Set, MUIA_Disabled, FALSE
MUIA_DoubleBuffer
(V20) [ISG], BOOL, 0x8042a9c7
DESCRIPTION
Setting this to TRUE will enable a doublebuffer for this objects MUIM_Draw method. When MUI is about draw an object with this attribute, it will maintain an extra struct MUI_RenderInfo which points to an offscreen bitmap. Just before calling MUIM_Draw, your objects normal muiRenderInfo(obj) pointer (which stores drawing attributes such as _rp(obj) for example) will be replaced by this buffered MUI_RenderInfo. Also, your object's coordinates (in _mleft(obj), _mtop(obj), etc) will be changed to point into the offscreen buffer. Your MUIM_Draw method can then render as it would normally, no need to change anything for the doublebuffer. When it is completed, MUI will blit the contents of the offscreen-bitmap into view and then restore your objects coordinates and MUI_RenderInfo pointers to their standard values
NOTES
This attribute is *ONLY* meant for your own subclasses of area class. Don't use on subclasses of Group.mui or on other classes not written by you. You must absolutely make sure to not render outside your objects bounding box, always stay between _mleft/_mtop/_mright/_bottom. Otherwise you will trash innocent memory since the offscreen bitmap may just be big enough and has no clipping enabled. Special care must be taken when your classes draw method interfaces other coordinates, like for example the mouse-position. You would have to substract _left/_top in MUIM_HandleEvent from imsg->MouseX/Y before storing the coordinates (ie make them relative to your objects origin) and then, when using them in your MUIM_Draw, add _left/_top(obj) again. This will ensure everything ends up at its place regardless if you use MUIA_DoubleBuffer or don't. IMPORTANT: MUI may also use different methods of double buffering, besides allocating new bitmap structures. It may for example decide to do nothing at all when it finds out, that the underlying intuition/layer libraries already implement buffering. You CANNOT make any assumptions about the double buffer, its bitmap, its coordinates, its lifetime or anything else. Your rendering code must work just as flawlessly with MUIA_DoubleBuffer, TRUE as with MUIA_DoubleBuffer, FALSE.
MUIA_DoubleClick
(V20) [..G], LONG, 0x8042f057
DESCRIPTION
yet undocumented, please complain in mailinglist
MUIA_Draggable
(V11) [ISG], BOOL, 0x80420b6e
DESCRIPTION
Set this if you want the complete object to be dragable for D&D operations
MUIA_Dropable
(V11) [ISG], BOOL, 0x8042fbce
DESCRIPTION
Only objects with this attribute set to TRUE will be asked if they want to become an active Drag & Drop destination at all. Though this attribute defaults to TRUE, this doesnt mean that every object automatically aceppts D&D actions, because the MUIM_DragQuery method is answered FALSE when it arrives at area class
SEE ALSO
MUIA_ExportID
(V4 ) [ISG], ULONG, 0x8042d76e (OBSOLETE)
DESCRIPTION
obsolete. see Notify.mui/MUIA_ObjectID
NOTE
This attribute was renamed to MUIA_ObjectID and moved to Notify.mui in muimaster.library V12.
SEE ALSO
Notify.mui/MUIA_ObjectID Application.mui/MUIM_Application_Save Application.mui/MUIM_Application_Load
MUIA_FillArea
(V4 ) [IS.], BOOL, 0x804294a3
DESCRIPTION
Set this to FALSE if you are a custom class and dont want area class to clear your background during the DoSuperMethod() in your draw method. Note that if you set this, your draw method is responsible for filling every pixel of your objects rectangle, otherwise some display trash will remain there
MUIA_FixHeight
(V4 ) [I..], LONG, 0x8042a92b
DESCRIPTION
Give your object a fixed pixel height. This tag is absolutely not needed in a general MUI application and only present for emergency situations. Please think twice before using it
EXAMPLE
/* create an 8x8 pixel rectangle with FILLPEN */ RectangleObject, MUIA_FixWidth , 8, MUIA_FixHeight , 8, MUIA_Background, MUII_FILL, End
SEE ALSO
MUIA_FixHeightTxt
(V4 ) [I..], STRPTR, 0x804276f2
DESCRIPTION
Give your object a fixed pixel height. The height will match the height of the given string. This tag is absolutely not needed in a general MUI application and only present for emergency situations. Please think twice before using it
EXAMPLE
/* create a fixed size rectangle with FILLPEN */ RectangleObject, MUIA_FixWidthTxt , "00:00:00", MUIA_FixHeightTxt, "\n\n", MUIA_Background , MUII_FILL, End
SEE ALSO
MUIA_FixWidth
(V4 ) [I..], LONG, 0x8042a3f1
DESCRIPTION
Give your object a fixed pixel width. This tag is absolutely not needed in a general MUI application and only present for emergency situations. Please think twice before using it
EXAMPLE
/* create an 8x8 pixel rectangle with FILLPEN */ RectangleObject, MUIA_FixWidth , 8, MUIA_FixHeight , 8, MUIA_Background, MUII_FILL, End
SEE ALSO
MUIA_FixWidthTxt
(V4 ) [I..], STRPTR, 0x8042d044
DESCRIPTION
Give your object a fixed pixel width. The width will match the width of the given string. This tag is absolutely not needed in a general MUI application and only present for emergency situations. Please think twice before using it
EXAMPLE
/* create a fixed size rectangle with FILLPEN */ RectangleObject, MUIA_FixWidthTxt , "00:00:00", MUIA_FixHeightTxt, "\n\n", MUIA_Background , MUII_FILL, End
SEE ALSO
MUIA_Floating
(V20) [ISG], BOOL, 0x80429753
DESCRIPTION
yet undocumented, please complain in mailinglist
MUIA_Font
(V4 ) [ISG], struct TextFont *, 0x8042be50
DESCRIPTION
Every MUI object can have its own font, just set it with this tag. Objects without an explicit font setting will inherit it from their parent group. You normally won't need to open a font yourself, just use one of the predefined values to get a font from the users preferences. You can also pass a struct TextFont * obtained by OpenFont(). You are responsible for freeing this font yourself after the object is disposed
EXAMPLE
/* since the text contains tabs, */ /* use the fixed width font for displaying */ msgread = FloattextObject, MUIA_Font, MUIV_Font_Fixed, ..., End
SPECIAL INPUTS
MUIV_Font_Inherit MUIV_Font_Normal MUIV_Font_List MUIV_Font_Tiny MUIV_Font_Fixed MUIV_Font_Title MUIV_Font_Big MUIV_Font_Button MUIV_Font_Slider MUIV_Font_Gauge MUIV_Font_Menu MUIV_Font_Tab MUIV_Font_Bubble MUIV_Font_Huge MUIV_Font_Last MUIV_Font_Count
MUIA_Frame
(V4 ) [I..], LONG, 0x8042ac64
DESCRIPTION
Define a frame for the current object. Since area class is a superclass for all elements in a window, you can assign frames to every object you wish. You don't adjust the style of your frame directly, instead you only specify a type: MUIV_Frame_Button for standard buttons with text in it. MUIV_Frame_ImageButton for small buttons with images, e.g. the arrows of a scrollbar. MUIV_Frame_Text for a text field, e.g. a status line display. MUIV_Frame_String for a string gadget. MUIV_Frame_ReadList for a read only list. MUIV_Frame_InputList for a list that handles input (has a cursor). MUIV_Frame_Prop for proportional gadgets. MUIV_Frame_Group for groups. How the frame is going to look is adjustable via the preferences program. Four spacing values belong to each frame that tell MUI how many pixels should be left free between the frame and its contents. These spacing values are also user adjustable as long as you don't override them with one of MUIA_InnerLeft, MUIA_InnerRight, MUIA_InnerTop, or MUIA_InnerBottom. Starting with version 20 of muimaster.library, you can also pass a pointer to a struct MUI_FrameSpec as MUIA_Frame. This allows the use of customized frames adjustable with the Frameadjust.mui custom class. Note that the pointer to the passed MUI_FrameSpec must remain valid until you overwrite MUIA_Frame with something different or dispose the object. A good place to keep the MUI_FrameSpec is the instance data of your custom class. Do not pass such pointers if your muimaster.library is version 19 or below
EXAMPLE
strobj = StringObject, MUIA_Frame, MUIV_Frame_String, End
NOTE
The first object in a window (MUIA_Window_RootObject) can *not* have a frame. If you need this you will have to create a dummy group with just one child.
SPECIAL INPUTS
MUIV_Frame_None MUIV_Frame_Button MUIV_Frame_ImageButton MUIV_Frame_Text MUIV_Frame_String MUIV_Frame_ReadList MUIV_Frame_InputList MUIV_Frame_Prop MUIV_Frame_Gauge MUIV_Frame_Group MUIV_Frame_PopUp MUIV_Frame_Virtual MUIV_Frame_Slider MUIV_Frame_SliderKnob MUIV_Frame_GaugeInner MUIV_Frame_Menudisplay MUIV_Frame_MenudisplayMenu MUIV_Frame_PropKnob MUIV_Frame_Window MUIV_Frame_Requester MUIV_Frame_Page MUIV_Frame_Register MUIV_Frame_GroupTitle MUIV_Frame_RegisterTitle MUIV_Frame_Count
SEE ALSO
MUIA_FrameDynamic
(V20) [ISG], BOOL, 0x804223c9
DESCRIPTION
yet undocumented, please complain in mailinglist
MUIA_FramePhantomHoriz
(V4 ) [I..], BOOL, 0x8042ed76
DESCRIPTION
Setting this to TRUE causes the specified frame to be a horizontal phantom frame. The frame will not appear but its vertical components (frame height, inner top and inner bottom spacing) will be used to calculate positions and dimensions (horizontal components are treated as 0). This is extremely useful for a correct labeling of objects. You would e.g. label a string gadget by using a text object with a phantom string frame. Thus, the label text will be always on the same vertical position as the string gadget text, no matter what spacing values the user configured
SEE ALSO
Label() macros in "mui.h
MUIA_FrameTitle
(V4 ) [I..], STRPTR, 0x8042d1c7
DESCRIPTION
This tag identifies a text string that will be displayed in the top line of a frame. This can come in handy if you want to name groups of objects. You may not use MUIA_FrameTitle without defining a MUIA_Frame
EXAMPLE
VGroup, MUIA_Frame , MUIV_Frame_Group, MUIA_FrameTitle, "Spacing
SEE ALSO
MUIA_FrameVisible
(V20) [ISG], BOOL, 0x80426498
DESCRIPTION
yet undocumented, please complain in mailinglist
MUIA_Height
(V4 ) [..G], LONG, 0x80423237
DESCRIPTION
You can use this to read the current position and dimension of an object, if you e.g. need it to pop up some requester below. Of course, this attribute is only valid when the parent window of the object is currently open
SEE ALSO
MUIA_HorizDisappear
(V11) [ISG], LONG, 0x80429615
DESCRIPTION
Objects with a disappear level disappear automatically when their parent window gets too small to display them. Use this for things that make your GUI look nicer (e.g. Imagery) but are not absolutely necessary. By using disappearing objects, you can make nice GUIs which still work on crappy 640x200 screens. You can give horizontal or vertical disappear levels to objects which are used for horizontal or vertical layout calculations respectively. Objects with a small disappear level disappear before objects with a big disappear level
EXAMPLE
// group with objects disappearing from right to left, // like a row of hotlink buttons in a browser: // creation: quickies = HGroup, End; // add a few buttons: for (i=0;i<20;i++) { char buf[256]; sprintf(buf,"Quicklink %ld",i); DoMethod(quickies,OM_ADDMEMBER,SimpleButton(buf)); } // set up the disappear levels, right one goes first int dis; Object *but; get(quickies,MUIA_Group_ChildCount,&dis); for (but=NULL;but=(Object *)DoMethod(quickies,MUIM_Group_GetChild,MUIV_Group_GetChild_Next,but);) { SetAttrs(but,MUIA_HorizDisappear,dis--,TAG_DONE
SEE ALSO
MUIA_VertDisappearMUIM_Group_GetChild
MUIA_HorizWeight
(V4 ) [ISG], WORD, 0x80426db9
DESCRIPTION
Adjust the horizontal weight of an object. Usually you can simply use MUIA_Weight instead of this tag but in some two-dimensional groups it may become handy to have different horizontal and vertical weights
SEE ALSO
MUIA_InnerBottom
(V4 ) [I.G], LONG, 0x8042f2c0
DESCRIPTION
Adjust the space between an object and its frame. Usually you shouldn't use this tag since you will override the users preferred default setting
SEE ALSO
MUIA_InnerLeft
(V4 ) [I.G], LONG, 0x804228f8
DESCRIPTION
Adjust the space between an object and its frame. Usually you shouldn't use this tag since you will override the users preferred default setting
SEE ALSO
MUIA_InnerRight
(V4 ) [I.G], LONG, 0x804297ff
DESCRIPTION
Adjust the space between an object and its frame. Usually you shouldn't use this tag since you will override the users preferred default setting
SEE ALSO
MUIA_InnerTop
(V4 ) [I.G], LONG, 0x80421eb6
DESCRIPTION
Adjust the space between an object and its frame. Usually you shouldn't use this tag since you will override the users preferred default setting
SEE ALSO
MUIA_InputMode
(V4 ) [I..], LONG, 0x8042fb04
DESCRIPTION
Adjust the input mode for an object. MUI has no distinct button class. Instead you can make every object (even groups) behave like a button by setting an input mode for them. Several input modes area available: MUIV_InputMode_None: No input, this is not a gadget. MUIV_InputMode_RelVerify: For buttons and similar stuff. MUIV_InputMode_Immediate: Used e.g. in a radio button object. MUIV_InputMode_Toggle: For things like checkmark gadgets. The input mode setting determines how a user action will trigger the attributes MUIA_Selected, MUIA_Pressed and MUIA_Timer. See their documentation for details
EXAMPLE
/* A traditional button, just a text object with */ /* a button frame and a relverify input mode: */ okbutton = TextObject, MUIA_Frame , MUIV_Frame_Button, MUIA_InputMode , MUIV_InputMode_RelVerify, MUIA_Text_Contents, "OK
SPECIAL INPUTS
MUIV_InputMode_None MUIV_InputMode_RelVerify MUIV_InputMode_Immediate MUIV_InputMode_Toggle
SEE ALSO
MUIA_LeftEdge
(V4 ) [..G], LONG, 0x8042bec6
DESCRIPTION
You can use this to read the current position and dimension of an object, if you e.g. need it to pop up some requester below. Of course, this attribute is only valid when the parent window of the object is currently open
SEE ALSO
MUIA_MaxHeight
(V11) [I..], LONG, 0x804293e4
DESCRIPTION
Specify a maximum height for an object (in pixels
SEE ALSO
MUIA_MaxWidth
(V11) [I..], LONG, 0x8042f112
DESCRIPTION
Specify a maximum width for an object (in pixels
SEE ALSO
MUIA_Pressed
(V4 ) [..G], BOOL, 0x80423535
DESCRIPTION
Learn if a button is pressed (or released). The MUIA_Pressed attribute of a gadget is triggered by some user action, depending on the input mode: MUIV_InputMode_RelVerify: - set when lmb is pressed. - cleared when lmb is released and the mouse is still over the gadget (otherwise it will be cleared too, but without triggering a notification event). MUIV_InputMode_Immediate: - undefined, use MUIA_Selected for this. MUIV_InputMode_Toggle: - undefined, use MUIA_Selected for this. Waiting for MUIA_Pressed getting FALSE is the usual way to react on button gadgets
EXAMPLE
DoMethod(btcancel,MUIM_Notify,MUIA_Pressed,FALSE, app,2,MUIM_Application_ReturnID,ID_CANCEL
SEE ALSO
MUIA_RightEdge
(V4 ) [..G], LONG, 0x8042ba82
DESCRIPTION
You can use this to read the current position and dimension of an object, if you e.g. need it to pop up some requester below. Of course, this attribute is only valid when the parent window of the object is currently open
SEE ALSO
MUIA_Selected
(V4 ) [ISG], BOOL, 0x8042654b
DESCRIPTION
Get and set the selected state of a gadget. This attribute can be triggered by the user clicking on the gadget (or using the keyboard), depending on the input mode: MUIV_InputMode_RelVerify: - set when lmb is pressed. - cleared when lmb is released. - cleared when the gadget is selected and the mouse leaves the gadget box. - set when the mouse reenters the gadget box. MUIV_InputMode_Immediate: - set when lmb is pressed. MUIV_InputMode_Toggle: - toggled when lmb is pressed. Of course you may set this attribute yourself, e.g. to adjust the state of a checkmark gadget. A selected gadget will display its border reverse and get the configured MUII_SelectedBack background. This can be avoided using the MUIA_ShowSelState tag
SEE ALSO
MUIA_ShortHelp
(V11) [ISG], STRPTR, 0x80428fe3
DESCRIPTION
Specify a string that is to be used as bubble help for this object
SEE ALSO
MUIA_ShowMe
(V4 ) [ISG], BOOL, 0x80429ba8
DESCRIPTION
Objects with this attribute set are not displayed. You can set MUIA_ShowMe at any time, causing objects to appear and to disappear immediately. A new layout is calculated whenever some objects are shown or hidden. When necessary, MUI will resize the parent window to make room for the new objects
NOTE
Currently, MUI does a complete window refresh after showing/hiding objects. This behaviour might get improved in the future.
MUIA_ShowSelState
(V4 ) [I..], BOOL, 0x8042caac
DESCRIPTION
Normally a gadget will reverse its frame and display the configured MUII_SelectetBack background pattern in its selected state. For some objects (e.g. checkmarks) this is not recommended and can be supressed by setting MUIA_ShowSelState to FALSE
SEE ALSO
MUIA_TextColor
(V22) [..G], ULONG, 0x8042dba6
DESCRIPTION
Returns the 00RRGBB color of the text associated with the object. Valid between MUIM_Setup and MUIM_Cleanup, otherwise returns 0. To account for prefs changes, it's best not to cache this value and to read it once per MUIM_Draw call
MUIA_Timer
(V4 ) [..G], LONG, 0x80426435
DESCRIPTION
MUIA_Timer gets triggered when a relverify button is pressed and (after a little delay) increases every INTUITICK as long as the mouse remains over the gadget. This makes it possible to have buttons repeatedly cause some actions, just like the arrow gadgets of a scrollbar
EXAMPLE
DoMethod(btmore,MUIM_Notify,MUIA_Timer,MUIV_EveryTime, app,2,MUIM_Application_ReturnID,ID_MORE); DoMethod(btless,MUIM_Notify,MUIA_Timer,MUIV_EveryTime, app,2,MUIM_Application_ReturnID,ID_LESS
SEE ALSO
MUIA_TopEdge
(V4 ) [..G], LONG, 0x8042509b
DESCRIPTION
You can use this to read the current position and dimension of an object, if you e.g. need it to pop up some requester below. Of course, this attribute is only valid when the parent window of the object is currently open
SEE ALSO
MUIA_Unicode
(V22) [I.G], BOOL, 0x8042e7d0
DESCRIPTION
Setting this to TRUE will treat strings displayed and/or edited by the class as UTF-8. Depending on user settings, the text will be rendered either using ttengine.library or by converting it back to system codepage at runtime. The strings returned by MUIA_String_Contents, etc will remain UTF-8 no matter which text rendering is used. This attribute can only be set at object's creation
MUIA_VertDisappear
(V11) [ISG], LONG, 0x8042d12f
DESCRIPTION
Objects with a disappear level disappear automatically when their parent window gets too small to display them. Use this for things that make your GUI look nicer (e.g. Imagery) but are not absolutely necessary. By using disappearing objects, you can make nice GUIs which still work on crappy 640x200 screens. You can give horizontal or vertical disappear levels to objects which are used for horizontal or vertical layout calculations respectively. Objects with a small disappear level disappear before objects with a big disappear level
SEE ALSO
MUIA_VertWeight
(V4 ) [ISG], WORD, 0x804298d0
DESCRIPTION
Adjust the vertical weight of an object. Usually you can simply use MUIA_Weight instead of this tag but in some two-dimensional groups it may become handy to have different horizontal and vertical weights
SEE ALSO
MUIA_Weight
(V4 ) [I..], WORD, 0x80421d1f
DESCRIPTION
This tag is a shorthand for MUIA_HorizWeight and MUIA_VertWeight, it sets both weights at once. The weight of an object determines how much room it will get during the layout process. Imagine you have a 100 pixel wide horizontal group with two string gadgets. Usually, each gadget will get half of the room and be 50 pixels wide. If you feel the left gadget is more important and should be bigger, you can give it a weight of 200 (and 100 for the right gadget). Because the left gadget is twice as "heavy" as the right gadget, it will become twice as big (about 66 pixel) as the right one (34 pixel). Of course giving weights only makes sense if the object is resizable. A MUIA_VertWeight for a (always fixed height) string gadget is useless. An object with a weight of 0 will always stay at its minimum size. By default, all objects have a weight of 100
EXAMPLE
HGroup, StringGadget, MUIA_Weight, 50, End, StringGadget, MUIA_Weight, 100, End, StringGadget, MUIA_Weight, 200, End, End
SEE ALSO
MUIA_Width
(V4 ) [..G], LONG, 0x8042b59c
DESCRIPTION
You can use this to read the current position and dimension of an object, if you e.g. need it to pop up some requester below. Of course, this attribute is only valid when the parent window of the object is currently open
SEE ALSO
MUIA_Window
(V4 ) [..G], struct Window *, 0x80421591
DESCRIPTION
This attribute can be used to get a pointer to the intuition window structure of the parent window ot the object. This pointer could e.g. be used in calls to asl.library. The result is only valid when the window is opened
SEE ALSO
MUIA_WindowObject
(V4 ) [..G], MUIWindow *, 0x8042669e
DESCRIPTION
You can obtain a pointer to the window object that some gadget belongs to by using this attribute. Useful mainly within callback hooks if you do not want to deal with global variables
SEE ALSO
MUIM_AskMinMax
MUIM_AskMinMax (V4 ) 0x80423874 [For use within custom classes only]
SYNOPSIS
DoMethod(obj,MUIM_AskMinMax,struct MUI_MinMax *MinMaxInfo);
DESCRIPTION
see developer documentation
MUIM_Backfill
MUIM_Backfill (V11) 0x80428d73
SYNOPSIS
DoMethod(obj,MUIM_Backfill,LONG left, LONG top, LONG right, LONG bottom, LONG xoffset, LONG yoffset, LONG brightness);
DESCRIPTION
yet undocumented, please complain in mailinglist
MUIM_CheckShortHelp
MUIM_CheckShortHelp (V20) 0x80423c79
SYNOPSIS
DoMethod(obj,MUIM_CheckShortHelp,STRPTR help, LONG mx, LONG my);
DESCRIPTION
yet undocumented, please complain in mailinglist
MUIM_Cleanup
MUIM_Cleanup (V4 ) 0x8042d985 [For use within custom classes only]
SYNOPSIS
DoMethod(obj,MUIM_Cleanup);
DESCRIPTION
see developer documentation
MUIM_CloseCustomFont
MUIM_CloseCustomFont (V22) 0x8042b27c [For use within custom classes only]
SYNOPSIS
DoMethod(obj,MUIM_CloseCustomFont,Boopsiobject *font);
DESCRIPTION
Closes a font object opened with MUIM_OpenCustomFont
SEE ALSO
MUIM_ContextMenuAdd
MUIM_ContextMenuAdd (V20) 0x8042df9e
SYNOPSIS
DoMethod(obj,MUIM_ContextMenuAdd,MUIMenustrip *menustrip, LONG mx, LONG my, LONG *mxp, LONG *myp);
DESCRIPTION
Add context menu items. In the subclass you override this method to add your own context menu item while your superclass can still insert its own items. This method replaces old MUIM_ContextMenuBuild method
INPUTS
menustrip - current context menu mx - current x position of mouse my - current y position of mouse mxp - pointer to current x position of mouse myp - pointer to current y position of mouse Since MUI does (unfortunately) not use relative coordinates at all, these two aren't relative either
RESULT
You add your menuitem objects to menutstrip
NOTES
This method is called only if MUIA_ContextMenu is set TRUE.
EXAMPLE
static size_t mContextMenuAdd(struct IClass *cl, Boopsiobject *obj, struct MUIP_ContextMenuAdd *msg) { APTR cm = MenuObject, MUIA_Menu_Title, "File operations", Child, MenuitemObject, MUIA_Menuitem_Title, "Copy file", End, Child, MenuitemObject, MUIA_Menuitem_Title, "Move file", End, End; if (cm) { DoMethod(msg->menustrip, OM_ADDMEMBER, cm); } return DoSuperMethodA(cl, obj, msg
SEE ALSO
MUIM_ContextMenuBuild
MUIM_ContextMenuBuild (V11) 0x80429d2e
SYNOPSIS
DoMethod(obj,MUIM_ContextMenuBuild,LONG mx, LONG my);
DESCRIPTION
OBSOLETE - USE MUIM_ContextMenuAdd in new code. old documentation: Allows dynamic creation of context menus. When MUI is about to show a new context menu, it does not simply use the MUIA_ContextMenu field of area class. Instead, it sends a MUIM_ContextMenuBuild to the object in question and uses the return value as the new menustrip object. When MUIM_ContextMenuBuild reaches area class, it just returns the contents of MUIA_ContextMenu so you needn't care about this method if you only have static, non-changing context menus. However, if your context menus depend on some internal states of your object or on the mouse position within your object, you have to build a subclass which overrides MUIM_ContextMenuBuild, creates a nice menustrip object and returns it
INPUTS
mx - current x position of mouse my - current y position of mouse Since MUI does (unfortunately) not use relative coordinates at all, these two aren't relative either
RESULT
If you return a pointer to a menustrip object, MUI will show it as popup menu. If you return the special value MUIV_ContextMenuBuild_Default, MUI will show the window's default menu instead. This is eg recommended for classes that only want popup menus on certain mouse positions. If you return NULL, nothing will happen. This is for compatibility for pre-MUI4 applications which used MUIM_ContextMenuBuild to detect the right mouse button. This is no longer recommended. With MUI4 and its event handlers, you can simply handle RMB just like LMB
NOTES
MUI will never dispose the object you return. You must take care of this yourself, e.g. by storing a pointer somewhere in your instance data and killing it on the next invocation of MUIM_ContextMenuBuild and on OM_DISPOSE. Even when implementing MUIM_ContextMenuBuild, you *must* set MUIA_ContextMenu of your object to something different from NULL. MUI will find out that your object actually has a popup menu by directly checking the contents of MUIA_ContextMenu in the instance data of area class due to speed reasons.
SEE ALSO
MUIM_ContextMenuChoice
MUIM_ContextMenuChoice (V11) 0x80420f0e
SYNOPSIS
DoMethod(obj,MUIM_ContextMenuChoice,MUIMenuitem *item);
DESCRIPTION
Allows reacting on context menus in subclasses. See MUIA_ContextMenu for details
SEE ALSO
MUIM_CreateBubble
MUIM_CreateBubble (V18) 0x80421c41
SYNOPSIS
DoMethod(obj,MUIM_CreateBubble,LONG x, LONG y, STRPTR txt, ULONG flags);
DESCRIPTION
Together with MUIM_DeleteBubble, this method provides an interface for MUIs bubble mechanism. Applications can use bubbles for their own purpose, e.g. for indicating error conditions on certain gadgets. MUIM_CreateBubble creates a bubble at the specified coordinates with the specified (textual) contents. It returns a bubble "handle" that has to be passed to MUIM_DeleteBubble when the bubble shall disappear. There's no limitation on the number of bubbles, you can create lots of them at a time if you wish. Also, these custom bubbles are completely independant of MUI's bubble help system and won't disappear automatically when the mouse is moved. Note that bubbles will only show up when the object in question is visible. Otherwise MUIM_CreateBubble returns NULL. You are responsible for deleting the bubble *before* the object get's invisible. Good place to remove a custom bubble is e.g. the MUIM_Hide method of your object
INPUTS
- x,y: window-relative coordinates of the bubble. - txt: custom text for the bubble. If you pass NULL here, MUI will query the object with MUIM_CreateShortHelp method for a text (like the automatic help system does). - flags: - MUIV_CreateBubble_DontHidePointer: prevents MUI from hiding the mouse pointer when displaying the help bubble. It is recommended that you always set this, unless your bubble is meant to disappear as soon as there is some user input
RESULT
This method returns a pointer to a (black box) bubble handle or NULL on failure. You have to pass the bubble handle to MUIM_DeleteBubble if you want to delete the bubble later
SEE ALSO
MUIM_CreateDragImage
MUIM_CreateDragImage (V18) 0x8042eb6f [For use within custom classes only]
SYNOPSIS
DoMethod(obj,MUIM_CreateDragImage,LONG touchx, LONG touchy, ULONG flags);
DESCRIPTION
yet undocumented, please complain in mailinglist
MUIM_CreateShortHelp
MUIM_CreateShortHelp (V11) 0x80428e93
SYNOPSIS
DoMethod(obj,MUIM_CreateShortHelp,LONG mx, LONG my);
DESCRIPTION
Allows dynamic creation of help bubble texts. When MUI is about to show a help bubble, it does not simply use the MUIA_ShortHelp field of area class. Instead, it sends a MUIM_CreateShortHelp to the object in question and uses the return value as text for the bubble. When MUIM_CreateShortHelp reaches area class, it just returns the contents of MUIA_ShortHelp, so you needn't care about this method if you only have static, non-changing help bubbles. However, if your help bubble texts depend on some internal states of your objects or on the mouse position within your objects, you have to create a subclass which overrides MUIM_CreateShortHelp, creates a custom text string and returns it. You can dynamically allocate memory here. MUI will call the method MUIM_DeleteShortHelp after the bubble has disappeared to give you a chance to free this memory again
INPUTS
mx - current x position of mouse my - current y position of mouse Since MUI does (unfortunately) not use relative coordinates at all, these two aren't relative either
RESULT
You must return a pointer to a string or NULL if you failed to create one. MUI will not show any bubble at all if you return NULL, so you can use this to selectively supply bubble help only on certain areas of your object
NOTES
This method is sent by MUI. Never send it yourself. MUI will not free the string you return. You must take care of this yourself, e.g. by using static text or by freeing anything you allocated in the following MUIM_DeleteShortHelp method. Even when overriding MUIM_CreateShortHelp, you *must* set MUIA_ShortHelp of your object to something different from NULL. MUI will find out that your object actually has a bubble help by directly checking the contents of MUIA_ShortHelp in the instance data of area class due to speed reasons.
EXAMPLE
Suggested use is something like obj = NewObject(..., MUIA_ShortHelp, TRUE, ...); and then override these methods in obj's class. ULONG MUIM_CreateShortHelp(...) { STRPTR help; int mx = msg->mx; int my = msg->my; mx -= _mleft(obj); // make coordinates relative my -= _mtop(obj); // no bubble at all if mouse is in a 10 pixel // wide x-region at the edge of the object. if (mx < 10 || mx > _mwidth(obj)-10) return(NULL); // allocate space for bubble text if (!(help=AllocVec(300,MEMF_ANY))) return(NULL); // fill help string with some dynamic text sprintf(help,"Yahoo... very dynamic... %ld %ld",mx,my); return(help); } ULONG MUIM_DeleteShortHelp(...) { FreeVec(msg->help); return(0
SEE ALSO
MUIM_DeleteBubble
MUIM_DeleteBubble (V18) 0x804211af
SYNOPSIS
DoMethod(obj,MUIM_DeleteBubble,APTR bubble);
DESCRIPTION
Together with MUIM_CreateBubble, this method provides an interface for MUIs bubble mechanism. Applications can use bubbles for their own purpose, e.g. for indicating error conditions on certain gadgets. MUIM_DeleteBubble deletes a bubble that was previously created with MUIM_CreateBubble. Not that bubbles have to be deleted before an object get's invisible
INPUTS
- bubble: pointer to black box bubble handle as returned by MUIM_CreateBubble
RESULT
The bubble will be removed. The return value is undefined
SEE ALSO
MUIM_DeleteDragImage
MUIM_DeleteDragImage (V18) 0x80423037 [For use within custom classes only]
SYNOPSIS
DoMethod(obj,MUIM_DeleteDragImage,struct MUI_DragImage *di);
DESCRIPTION
yet undocumented, please complain in mailinglist
MUIM_DeleteShortHelp
MUIM_DeleteShortHelp (V11) 0x8042d35a
SYNOPSIS
DoMethod(obj,MUIM_DeleteShortHelp,STRPTR help);
DESCRIPTION
Delete the string that MUIM_CreateShortHelp might have allocated. MUI will call this method if you returned a custom text in MUIM_CreateShortHelp when the bubble has disappeared. You can free memory that you allocated for the dynamic bubble text here
INPUTS
help - the STRPTR you previously returned in MUIM_CreateShortHelp
RESULT
return NULL in every case
SEE ALSO
MUIM_DoDrag
MUIM_DoDrag (V20) 0x804216bb
SYNOPSIS
DoMethod(obj,MUIM_DoDrag,LONG touchx, LONG touchy, ULONG flags);
DESCRIPTION
This method invokes MUI's drag & drop handling. Normally, MUI takes care about this itself when objects are specified as draggable. However, if you e.g. have a whole group of objects that should be dragged (like a toolbar) and just a small "handle" button to start this operation, you must use this method
INPUTS
touchx - x-distance between "click point" and object coordinates. using the special value 0x80000000 will make MUI use window->MouseX - _left(obj) touchy - y-distance between "click point" and object coordinates. using the special value 0x80000000 will make MUI use window->MouseY - _top(obj) flags - MUIV_DoDrag_Async to enable asynchronous dragging, default is synchronic dragging (input is disabled
EXAMPLE
Child, toolbar = HGroup, Child, draghandle = SimpleButton("dragme"), Child, SimpleButton("toolbutton1"), Child, SimpleButton("toolbutton2"), Child, SimpleButton("toolbutton3"), Child, SimpleButton("toolbutton4"), End, DoMethod(draghandle,MUIM_Notify,MUIA_Pressed,TRUE, toolbar,4,MUIM_DoDrag,0x80000000,0x80000000,MUIV_DoDrag_Async
SEE ALSO
MUIM_DragBegin
MUIM_DragBegin (V11) 0x8042c03a
SYNOPSIS
DoMethod(obj,MUIM_DragBegin,MUIArea *obj);
DESCRIPTION
Inform an object that it has become the active destination of a drag&drop action. An object will only receive this if it has responded positively to a previous MUIM_DragQuery
SEE ALSO
MUIM_DragDrop
MUIM_DragDrop (V11) 0x8042c555
SYNOPSIS
DoMethod(obj,MUIM_DragDrop,MUIArea *obj, LONG x, LONG y, ULONG qualifier);
DESCRIPTION
Indicate that the user dropped something on the current object
SEE ALSO
MUIM_DragEvent
MUIM_DragEvent (V20) 0x8042b774 [For use within custom classes only]
SYNOPSIS
DoMethod(obj,MUIM_DragEvent,struct Window *objwindow, Boopsiobject *obj, struct MUI_DragImage *di, struct IntuiMessage *imsg, LONG muikey, ULONG mouseptrtype, ULONG flags);
DESCRIPTION
yet undocumented, please complain in mailinglist
MUIM_DragFinish
MUIM_DragFinish (V11) 0x804251f0
SYNOPSIS
DoMethod(obj,MUIM_DragFinish,MUIArea *obj, LONG dropfollows);
DESCRIPTION
Indicate that an object is no longer the active destination object of a drag&drop action
SEE ALSO
MUIM_DragQuery
MUIM_DragQuery (V11) 0x80420261
SYNOPSIS
DoMethod(obj,MUIM_DragQuery,MUIArea *obj);
DESCRIPTION
MUI offers complete drag & drop capabilities for every object. If enabled, the user is able to grab an object, drag it around and drop it on another object. Currently, D&D is limited to single applications, i.e. you cannot take an object from one program and drop it into another one. D&D between different windows of the same application, however, is fine. MUI controls the D&D actions with a set of five methods: MUIM_DragQuery, MUIM_DragBegin, MUIM_DragReport, MUIM_DragDrop and MUIM_DragFinish. Basically things work this way: Lets assume the user has taken an object (called the source object) and is now starting to drag it around. During dragging, MUI will find out which object is currently under the mouse pointer and if it found one, send it the MUIM_DragQuery method. An object that receives MUIM_DragQuery can now determine it it wishes to accept drops from the source object or not. If it responds positively, the object will become the current destination object. Due to the nature of MUIs layout system, a specific x,y pair of coordinates cannot be bound to a specific object immediately. Instead, the coordinates belong to a whole tree of objects, for example some cycle gadget, its parent group, the parent group of the parent group and so on until the tree reaches the windows root object. To allow complete groups of objects to participate in D&D business, the MUIM_DragQuery is first sent to the deepest nested object (the cycle gadget in the example above). If this one doesn't respond, MUI sends a MUIM_DragQuery to its parent group and so on until it either finds some object which accepts the drop or reaches the end of the tree. If there is an accepting object, it will become the current destination. if there isn't, no destination will be set. Objects becoming active destinations of a drag process learn about their current state by receiving a MUIM_DragBegin method. This method, when reaching area class, e.g. draws a special frame around the object to indicate the current state to the user. The opposite of MUIM_DragBegin is MUIM_DragFinish and will be sent as soon as the object stops being destination of the drag process, i.e. because the user aborted the drag or moved out of the bounding box. MUIM_DragFinish will also be sent after a successful drop, you can rely on receiving a MUIM_DragFinish if you received a MUIM_DragBegin before. Furthermore, only one object will be between MUIM_DragBegin and MUIM_DragFinish at any time. Active destination objects (between MUIM_DragBegin and MUIM_DragFinish) receive MUIM_DragReport methods as long as the user moves the mouse within the object. MUIM_DragReport contains the mouse coordinates, so the object can update its display according to the position of the source object. A listview would e.g. indicate the insert position to give the user an idea where the source would be inserted in case of a drop. All the methods mentioned above are just interim messages that help visualizing the drag process. When the user actually decides to drop its source object, the current destination object (if any) receives a MUIM_DragDrop method and can perform whatever operation it thinks is suited to handle a D&D action from the source object. You probably have noticed that D&D is controlled by methods. This means that you need to write subclasses if you intend to use it. However, you needn't implement all the above mentioned things to reach your goal. In fact, MUIM_DragQuery and MUIM_DragDrop are enough for almost all D&D invocations. Here's a little example of how MUI implements D&D between objects of Pendisplay class. These few lines allow the user to take any Pendisplay (or subclasses from Pendisplay like e.g. Poppen class) and drop it onto another one: ULONG mDragQuery(cl,obj,struct MUIP_DragQuery *msg) { char *spec; /* refuse to be dropped on ourself */ if (msg->obj==obj) return(MUIV_DragQuery_Refuse); /* if the source object offers the attribute */ /* we want, show that we would accept it. */ if (get(msg->obj,MUIA_Pendisplay_Spec,&spec)) return(MUIV_DragQuery_Accept); /* refuse otherwise */ return(MUIV_DragQuery_Refuse); } ULONG mDragDrop(cl,obj,struct MUIP_DragDrop *msg) { char *spec; /* copy the attribute from the source object */ get(msg->obj,MUIA_Pendisplay_Spec,&spec); set(obj,MUIA_Pendisplay_Spec,spec); return(0
SEE ALSO
MUIM_DragReport
MUIM_DragReport (V11) 0x8042edad
SYNOPSIS
DoMethod(obj,MUIM_DragReport,MUIArea *obj, LONG x, LONG y, LONG update, ULONG qualifier);
DESCRIPTION
Interim messages from MOUSEMOVEs and INTUITICKs sent as long as an object is active destination of a drag&drop action
RESULT
Behaviour of the current drag and drop operation can be altered by returning one of the following values: - MUIV_DragReport_Abort Abort drag and drop operation. - MUIV_DragReport_Continue Continue drag and drop operation. This is the default return value. - MUIV_DragReport_Lock Lock the drag and drop operation over the actual target. - MUIV_DragReport_Refresh Ask MUI to redraw the drag image. This can be usefull if the target object does a visual feedback of the drag and drop operation (ie: MUI_Redraw() is called in MUIM_DragReport
SEE ALSO
MUIM_Draw
MUIM_Draw (V4 ) 0x80426f3f [For use within custom classes only]
SYNOPSIS
DoMethod(obj,MUIM_Draw,ULONG flags);
DESCRIPTION
see developer documentation
MUIM_DrawBackground
MUIM_DrawBackground (V11) 0x804238ca
SYNOPSIS
DoMethod(obj,MUIM_DrawBackground,LONG left, LONG top, LONG width, LONG height, LONG xoffset, LONG yoffset, LONG flags);
DESCRIPTION
If you decided to use MUIA_FillArea, FALSE for your custom class, i.e. if you care about background rendering yourself, you can use this method to draw a specific part of your objects background with the defined MUIA_Background
INPUTS
- left, top, right, bottom: rectangle to draw, be sure to add your objects _mleft and _mtop coordinates. - xoffset, yoffset: offset to use when background is a pattern. - flags: always set to 0 for now
RESULT
The result value of this method is currently undefined
SEE ALSO
MUIM_ExitResize
MUIM_ExitResize (V22) 0x80428431 [For use within custom classes only]
SYNOPSIS
DoMethod(obj,MUIM_ExitResize,);
DESCRIPTION
yet undocumented, please complain in mailinglist
MUIM_GoActive
MUIM_GoActive (V8 ) 0x8042491a [For use within custom classes only]
SYNOPSIS
DoMethod(obj,MUIM_GoActive,ULONG flags);
DESCRIPTION
yet undocumented, please complain in mailinglist
MUIM_GoInactive
MUIM_GoInactive (V8 ) 0x80422c0c [For use within custom classes only]
SYNOPSIS
DoMethod(obj,MUIM_GoInactive,ULONG flags);
DESCRIPTION
yet undocumented, please complain in mailinglist
MUIM_HandleEvent
MUIM_HandleEvent (V16) 0x80426d66 [For use within custom classes only]
SYNOPSIS
DoMethod(obj,MUIM_HandleEvent,struct IntuiMessage *imsg, LONG muikey, struct MUI_EventHandlerNode *ehn);
DESCRIPTION
This method is invoked whenever one of an event handlers trigger signals arrives. It's described in area class context but does not really belong here
INPUTS
imsg - pointer to a struct IntuiMessage that caused the event. note well that this may be NULL in which case you simply not parse imsg. muikey - if the imsg translates to a predefined keystroke, this parameter holds the corresponding MUIKEY_XXXX value. Otherwise it will be MUIKEY_NONE
RESULT
The result is a bitfield. Currently, only one bit is defined: - MUI_EventHandlerRC_Eat Set this if this event was for you and you want MUI to stop calling other event handlers in the chain. All other bits are reserved for future use and must be zero
NOTES
You must not rely on imsg being non-NULL, regardless whether muikey is set or unset.
SEE ALSO
window.mui/MUIM_Window_AddEventHandler
MUIM_HandleInput
MUIM_HandleInput (V4 ) 0x80422a1a [For use within custom classes only]
SYNOPSIS
DoMethod(obj,MUIM_HandleInput,struct IntuiMessage *imsg, LONG muikey);
DESCRIPTION
see developer documentation
MUIM_Hide
MUIM_Hide (V4 ) 0x8042f20f [For use within custom classes only]
SYNOPSIS
DoMethod(obj,MUIM_Hide);
DESCRIPTION
see developer documentation
MUIM_InitResize
MUIM_InitResize (V22) 0x804292bd [For use within custom classes only]
SYNOPSIS
DoMethod(obj,MUIM_InitResize,ULONG flags);
DESCRIPTION
yet undocumented, please complain in mailinglist
MUIM_Layout
MUIM_Layout (V4 ) 0x8042845b
SYNOPSIS
DoMethod(obj,MUIM_Layout,LONG left, LONG top, LONG width, LONG height, ULONG flags);
DESCRIPTION
yet undocumented, please complain in mailinglist
MUIM_OpenCustomFont
MUIM_OpenCustomFont (V22) 0x8042f3dc [For use within custom classes only]
SYNOPSIS
DoMethod(obj,MUIM_OpenCustomFont,STRPTR spec);
DESCRIPTION
Makes it possible for a Custom Class to render text using other fonts The font may be opened any time during object's life cycle, but may only be used after MUIM_Setup. Draw with MUIM_Text. The returned font object is owned by the object and will be automatically released in DISPOSE, unless explicitly closed by MUIM_CloseCustomFont
INPUTS
spec - font spec, see MUIA_CustomFont
EXAMPLE
in MUIM_Setup: // open a font 2 pixels higher than object's font Object *font = DoMethod(obj, MUIM_OpenCustomFont, "/+2"); in MUIM_Draw: // measure text bounds ULONG dim = DoMethod(font, MUIM_TextDim, "test", 4, NULL, 0); // draw the text DoMethod(font, MUIM_Text, _mleft(obj), _mtop(obj), dim >> 16, dim & 0xffff, "test", 4, NULL, 0); optionally: // dispose of the font DoMethod(obj, MUIM_CloseCustomFont, font
SEE ALSO
MUIM_Relayout
MUIM_Relayout (V22) 0x8042b381
SYNOPSIS
DoMethod(obj,MUIM_Relayout,ULONG flags);
DESCRIPTION
yet undocumented, please complain in mailinglist
MUIM_Setup
MUIM_Setup (V4 ) 0x80428354 [For use within custom classes only]
SYNOPSIS
DoMethod(obj,MUIM_Setup,struct MUI_RenderInfo *RenderInfo);
DESCRIPTION
see developer documentation
MUIM_Show
MUIM_Show (V4 ) 0x8042cc84 [For use within custom classes only]
SYNOPSIS
DoMethod(obj,MUIM_Show,struct LongRect *clip);
DESCRIPTION
see developer documentation
MUIM_Text
MUIM_Text (V20) 0x8042ee70 [For use within custom classes only]
SYNOPSIS
DoMethod(obj,MUIM_Text,LONG left,LONG top,LONG width,LONG height,STRPTR text,LONG len,STRPTR preparse,ULONG flags);
DESCRIPTION
This function is a preffered way to render text inside the object. It uses object's font and it's color (if not specified in the string itself). Expects the string to be UTF-8 if MUIA_Unicode is set
INPUTS
left - draw position in the RastPort top width - together with height sets the clipping bounds to render in height text - pointer to the text to draw, either in system codepage or UTF-8 if the object has MUIA_Unicode set len - length of the text to draw in bytes or -1 to render the whole text preparse - preparse string flags - MUST be 0 for time being
SEE ALSO
MUIM_TextDim
MUIM_TextDim (V20) 0x80422ad7 [For use within custom classes only]
SYNOPSIS
DoMethod(obj,MUIM_TextDim,STRPTR text,LONG len,STRPTR preparse,ULONG flags);
DESCRIPTION
Use this function to messure area which will be affected by text rendered with MUIM_Text method. It's return value contains two 16bit values: width and height: width = returnvalue & 0xffff; height = returnvalue >> 16; Expects the string to be UTF-8 if MUIA_Unicode is set
INPUTS
text - pointer to the text to draw, either in system codepage or UTF-8 if the object has MUIA_Unicode set len - length of the text to draw in bytes or -1 to render the whole text preparse - preparse string flags - MUST be 0 for time being
SEE ALSO
MUIM_UpdateConfig
MUIM_UpdateConfig (V20) 0x8042b0a9
SYNOPSIS
DoMethod(obj,MUIM_UpdateConfig,ULONG cfgid, LONG redrawcount, Boopsiobject *redrawobj[64], UBYTE redrawflags[64]);
DESCRIPTION
yet undocumented, please complain in mailinglist