## 4.1 Frame

Frames are the most commonly used container widgets. The primiary purpose of frames is to serve as containers for grouping other widgets together.

A frame may have an optional textual/image lable or both, in which case it appears as a labeled frame with the label displayed at the top (left, center or right) of the frame window.

A frame may have an optional docking handle. The docking handle may be display at either the left or right or top of the frame window.

### Widget Info

Symbolic widget type | EZ_WIDGET_FRAME
Default class name | "Frame"
Default instance name | "frame"

### Widget Interface Routines

`int EZ_OnFrameDragHandle(EZ_Widget *widget, int x, int y);`

return 1 if point (x,y) is on the drag handle.

`void EZ_HighlightFrameDragHandle(EZ_Widget *widget, int onoff);`

turn the highlight on the drag handle on or off.

`int EZ_DetachFrame(EZ_Widget *widget, int x, int y);`

detach an internal frame or menubar from its parent.

`int EZ_DockFrame(EZ_Widget *widget, int force);`

try dock a detached frame.

`int EZ_XYIsAtCorner(int x,int y,int w,int h);`

returns 1 if point (x,y) is on the corner of a detached frame.

`int EZ_FrameIsDetached(EZ_Widget *widget);`

returns 1 if frame is detached.

### Screenshot

### Resources

Config_Option | ResourceName | DefaultValue
EZ_CLASS | class | `"Frame"`
EZ_NAME | name | `"frame"`

EZ_X | x |
EZ_Y | y |
EZ_WIDTH | width |
EZ_HEIGHT | height |

EZ_LOCATION | location |
EZ_SIZE | size |
EZ_GEOMETRY | geometry |

EZ_WIDTH_HINT | widthHint |
EZ_HEIGHT_HINT | heightHint |
EZ_SIZE_HINT | sizeHint |

EZ_BORDER_WIDTH | borderWidth | `0`
EZ_BORDER_TYPE | borderType | `none`
EZ_FOCUS_PAD | focusPad | `0`

EZ_PADX | padx | `8`
EZ_PADY | pady | `6`
EZ_IPADX | iPadx | `0`
EZ_IPADY | iPady | `0`

EZ_EXPAND | expand | `false`
EZ_PROPAGATE | propagate | `true`
EZ_TRANSIENT | transient | `false`

EZ_ORIENTATION | orientation | `horizontal`
EZ_FILL_MODE | fillMode | `fillNone`
EZ_SIDE | side | `center`

EZ_FONT_ID | fontID | `3`
EZ_FONT_NAME | fontName | `"*Bold*"`
EZ_LABEL_STRING | labelString | `null`
EZ_LABEL_POSITION | labelPosition | `center`
EZ_JUSTIFICATION | justification | `left`
EZ_TEXT_LINE_LENGTH | textLineLength | `30`

EZ_INTERIOR_BORDER | interiorBorder | `"1 groove"`
EZ_CURSOR | cursor | `"XC_left_ptr"`
EZ_BUBBLE_STRING | bubbleString | `null`

EZ_DESTROY_CALLBACK | N/A | `null null`
EZ_EVENT_HANDLER | N/A | `null null`

EZ_PIXMAP_FILE | pixmapFile | `null`
EZ_IMAGE_FILE | imageFile | `null`
EZ_BITMAP_DATA | N/A | `null`
EZ_PIXMAP_DATA | N/A | `null`
EZ_X_PIXMAP | N/A | `none`
EZ_LABELPIXMAP | N/A | `null`
EZ_RAW_RGB_DATA | N/A | `null`
EZ_SHAPED_WINDOW | shapedWindow | `false`
EZ_SHAPE_FILE | shapeFile | `NULL`
EZ_SHAPE_PIXMAP | N/A | `NULL`

EZ_FOREGROUND | foreground | `"black"`
EZ_BACKGROUND | background | `"gray74`
EZ_BG_IMAGE_FILE | bgImageFile | `null`
EZ_BG_PIXMAP | N/A | `none`

EZ_DRAG_HANDLE | dragHandle | `none`
EZ_DOCKABLE | dockable | `false`
EZ_CLIENT_PTR_DATA | N/A | `null`
EZ_CLIENT_INT_DATA | clientIntData | `0`

EZ_DND_DRAG_CURSOR | dndDragCursor | `none`
EZ_DND_BUBBLE_STRING | dndBubbleString | `null`

EZ_BACKING_STORE | backingStore | `false`

EZ_GRID_CELL_GEOMETRY | gridCellGeometry |
EZ_GRID_CELL_PLACEMENT | gridCellPlacement |
EZ_GRID_CONSTRAINS | gridConstrains |
EZ_GRID_ROW_CONSTRAINS | gridRowConstrains |
EZ_GRID_COLUMN_CONSTRAINS | gridColumnConstrains |

EZ_WMHINTS | wmHints | `0`
EZ_WM_WINDOW_NAME | wmWindowName |
EZ_WM_INITIAL_STATE | wmInitialState | `normalState`
EZ_WM_ICON_NAME | wmIconName |
EZ_WM_ICON_XPM_FILE | wmIconXpmFile |
EZ_WM_ICON_PIXMAP | wmIconPixmap |
EZ_WM_ICON_LOCATION | wmIconLocation |
EZ_WM_LOCATION_HINT | wmLocation |
EZ_WM_SIZE_HINT | wmSizeHint |
EZ_WM_MIN_SIZE_HINT | wmMinSizeHint |
EZ_WM_MAX_SIZE_HINT | wmMaxSizeHint |

HTML Documentation Maintainance:`Arturo Espinosa <arturo@nuclecu.unam.mx>`