tools/adflib: build only host variant which is used by Sam440 target
[AROS.git] / workbench / network / stacks / AROSTCP / MUI.MiamiPanel / Classes / muimiamipanel_class_mgroup.c
blob3d487ca5ccf68d38d1e0e1ce4bfc1b9d2487414e
2 #include <proto/intuition.h>
3 #include <proto/muimaster.h>
4 #include <proto/utility.h>
6 #include <libraries/mui.h>
7 #include <libraries/gadtools.h>
9 #include "muimiamipanel_intern.h"
10 #include "muimiamipanel_locale.h"
12 #include <mui/TheBar_mcc.h>
14 /***********************************************************************/
16 struct MiamiPanelMGroupClass_DATA
18 Object *ifGroup;
19 Object *ifList;
20 Object *bar;
21 Object *scrollBar;
23 struct MPS_TinyPrefs prefs;
25 ULONG layout;
27 #ifdef __MORPHOS__
28 struct MUI_EventHandlerNode eh;
29 struct Window *win;
30 #endif
32 ULONG flags;
35 enum
37 FLG_Visible = 1<<0,
38 FLG_BWin = 1<<1,
39 FLG_Handler = 1<<2,
40 FLG_Special = 1<<3,
41 FLG_Border = 1<<4,
44 /***********************************************************************/
46 enum
48 B_SHOW = 0,
49 B_HIDE = 1,
50 B_QUIT = 2,
53 UBYTE *pics[] =
55 "Show",
56 "Hide",
57 "Quit",
58 NULL
61 static ULONG buttonsIDs[] =
63 MSG_Button_Show, MSG_Button_Show_Help,
64 MSG_Button_Hide, MSG_Button_Hide_Help,
65 MSG_Button_Quit, MSG_Button_Quit_Help
68 static struct MUIS_TheBar_Button buttons[] =
70 {0, B_SHOW},
71 {1, B_HIDE},
72 {2, B_QUIT},
73 {MUIV_TheBar_End},
76 static struct MiamiPanelBase_intern *MiamiPanelBaseIntern;
78 static ULONG
79 MUIPC_MGroup__OM_NEW(struct IClass *CLASS,Object *self,struct opSet *message)
81 struct TagItem *attrs = message->ops_AttrList;
82 Object *ifGroup, *ifList;
83 struct MPS_Prefs *prefs = (struct MPS_Prefs *)GetTagData(MPA_Prefs,NULL,attrs);
84 ULONG show = GetTagData(MPA_Show,MIAMIPANELV_Init_Flags_Control,attrs);
86 if (self = (Object *)DoSuperNewTags
88 CLASS, self, NULL,
90 MUIA_Group_Horiz, !(prefs->layout & MPV_Layout_Horiz),
91 Child, ifGroup = ScrollgroupObject,
92 MUIA_ShortHelp, __(MSG_IFGroup_Help),
93 MUIA_CycleChain, TRUE,
94 MUIA_Scrollgroup_FreeHoriz, FALSE,
95 MUIA_Scrollgroup_UseWinBorder, TRUE,
96 MUIA_Scrollgroup_Contents, (ifList = NewObject(MiamiPanelBaseIntern->mpb_ifGroupClass->mcc_Class, NULL,
97 MPA_Prefs, prefs,
98 MPA_Show, show,
99 TAG_DONE)),
100 End,
101 TAG_MORE, attrs))
103 struct MiamiPanelMGroupClass_DATA *data = INST_DATA(CLASS,self);
105 data->ifGroup = ifGroup;
106 data->ifList = ifList;
108 if ((show & MIAMIPANELV_Init_Flags_Control) &&
109 (data->bar = TheBarVirtObject,
110 MUIA_Group_Horiz, prefs->layout & MPV_Layout_Horiz,
111 MUIA_TheBar_ViewMode, prefs->viewMode,
112 MUIA_TheBar_LabelPos, prefs->labelPos,
113 MUIA_TheBar_BarPos, prefs->barLayout,
114 MUIA_TheBar_Borderless, prefs->btflags & MPV_BTFlags_Borderless,
115 MUIA_TheBar_Raised, prefs->btflags & MPV_BTFlags_Raised,
116 MUIA_TheBar_Sunny, prefs->btflags & MPV_BTFlags_Sunny,
117 MUIA_TheBar_Scaled, prefs->btflags & MPV_BTFlags_Scaled,
118 MUIA_TheBar_EnableKeys, prefs->btflags & MPV_BTFlags_Underscore,
119 MUIA_TheBar_DragBar, prefs->btflags & MPV_BTFlags_DragBar,
120 MUIA_TheBar_Frame, prefs->btflags & MPV_BTFlags_Frame,
121 MUIA_TheBar_Buttons, buttons,
122 MUIA_TheBar_PicsDrawer, "Miami:Libs/Pics",
123 MUIA_TheBar_Pics, pics,
124 End))
126 DoSuperMethod(CLASS,self,OM_ADDMEMBER,(ULONG)data->bar);
128 if (prefs->layout & (MPV_Layout_Left|MPV_Layout_PureTop))
129 DoSuperMethod(CLASS,self,MUIM_Group_Sort,(ULONG)data->bar,(ULONG)data->ifGroup,NULL);
131 DoMethod(data->bar,MUIM_TheBar_DoOnButton,B_SHOW,MUIM_Notify,
132 MUIA_Pressed,FALSE,MUIV_Notify_Application,2,MPM_Miami,MPV_Miami_Show);
134 DoMethod(data->bar,MUIM_TheBar_DoOnButton,B_HIDE,MUIM_Notify,
135 MUIA_Pressed,FALSE,MUIV_Notify_Application,2,MPM_Miami,MPV_Miami_Hide);
137 DoMethod(data->bar,MUIM_TheBar_DoOnButton,B_QUIT,MUIM_Notify,
138 MUIA_Pressed,FALSE,MUIV_Notify_Application,2,MPM_Miami,MPV_Miami_Quit);
141 get(data->ifGroup,MUIA_Scrollgroup_VertBar,&data->scrollBar);
142 if (prefs->flags & MPV_Flags_BWin)
144 data->flags |= FLG_BWin;
145 set(data->scrollBar,MUIA_ShowMe,FALSE);
148 CopyMem(prefs,&data->prefs,sizeof(data->prefs));
151 return (ULONG)self;
154 /***********************************************************************/
156 static ULONG
157 MUIPC_MGroup__MUIM_Setup(struct IClass *CLASS,Object *self,Msg message)
159 struct MiamiPanelMGroupClass_DATA *data = INST_DATA(CLASS,self);
161 if (!DoSuperMethodA(CLASS,self,(Msg)message)) return FALSE;
162 set(_win(self),MUIA_Window_DefaultObject,data->ifGroup);
164 return TRUE;
167 /***********************************************************************/
169 #ifdef __MORPHOS__
171 static ULONG
172 isMouseOnBorder(struct Window *window)
174 if (window->MouseX<0 || window->MouseY<0 || window->MouseX>window->Width-1 || window->MouseY>window->Height-1) return FALSE;
176 if (window->MouseY>0 && window->MouseY < window->BorderTop) return TRUE;
177 if (window->MouseY>window->Height-window->BorderBottom-1 && window->MouseY<window->Height) return TRUE;
179 if (window->MouseX>0 && window->MouseX<window->BorderLeft) return TRUE;
180 if (window->MouseX>window->Width-window->BorderRight-1 && window->MouseX<window->Width) return TRUE;
182 return FALSE;
185 M_HOOK(trans,struct Window *window,struct TransparencyMessage *message)
187 struct MiamiPanelMGroupClass_DATA *data = hook->h_Data;
188 struct Rectangle rect;
189 ULONG b;
191 /* use transp only when window is active */
192 if (!(window->Flags & WFLG_WINDOWACTIVE)) return 0;
194 /* use transp only when pointer NOT on border */
195 if (isMouseOnBorder(window)) return 0;
197 b = (data->flags & FLG_BWin) ? 1 : 0;
199 /* make top border transparent */
200 rect.MinX = 0;
201 rect.MinY = 0;
202 rect.MaxX = window->Width - 1;
203 rect.MaxY = window->BorderTop + b;
205 OrRectRegion(message->Region,&rect);
207 /* left border */
208 rect.MinX = 0;
209 rect.MinY = window->BorderTop;
210 rect.MaxX = window->BorderLeft - 1 + b;
211 rect.MaxY = window->Height - window->BorderBottom - 1;
213 OrRectRegion(message->Region,&rect);
215 /* right border */
216 rect.MinX = window->Width - window->BorderRight - b;
217 rect.MinY = window->BorderTop;
218 rect.MaxX = window->Width - 1;
219 rect.MaxY = window->Height - window->BorderBottom - 1;
221 OrRectRegion(message->Region,&rect);
223 /* bottom border */
224 rect.MinX = 0;
225 rect.MinY = window->Height - window->BorderBottom - b;
226 rect.MaxX = window->Width - 1;
227 rect.MaxY = window->Height - 1;
229 OrRectRegion(message->Region,&rect);
231 return 0;
234 static void
235 switchTransparency(struct IClass *CLASS,Object *self,struct MiamiPanelMGroupClass_DATA *data,ULONG use)
237 struct TagItem tags[] = {{TRANSPCONTROL_REGIONHOOK,0},{TAG_DONE,0}};
239 if (use)
241 if (!(data->flags & FLG_Handler))
243 trans_hook.h_Data = data;
245 tags[0].ti_Data = (ULONG)&trans_hook;
246 TransparencyControl(data->win,TRANSPCONTROLMETHOD_INSTALLREGIONHOOK,tags);
248 memset(&data->eh,0,sizeof(data->eh));
249 data->eh.ehn_Class = CLASS;
250 data->eh.ehn_Object = self;
251 data->eh.ehn_Events = IDCMP_INTUITICKS;
252 DoMethod(_win(self),MUIM_Window_AddEventHandler,(ULONG)&data->eh);
254 data->flags |= FLG_Handler;
257 else
259 if (MiamiPanelMGroupClass_DATA->flags & FLG_Handler)
261 DoMethod(_win(self),MUIM_Window_RemEventHandler,(ULONG)&data->eh);
263 TransparencyControl(data->win,TRANSPCONTROLMETHOD_INSTALLREGIONHOOK,tags);
265 data->flags &= ~FLG_Handler;
270 static ULONG
271 MUIPC_MGroup__MUIM_Show(struct IClass *CLASS,Object *self,Msg message)
273 struct MiamiPanelMGroupClass_DATA *data = INST_DATA(CLASS,self);
275 if (!DoSuperMethodA(CLASS,self,(Msg)message)) return FALSE;
277 get(_win(self),MUIA_Window_Window,&data->win);
278 data->flags |= FLG_Visible;
280 switchTransparency(CLASS,self,data,data->prefs.flags & MPV_Flags_UseTransparency);
282 return TRUE;
285 static ULONG
286 MUIPC_MGroup__MUIM_Hide(struct IClass *CLASS,Object *self,Msg message)
288 struct MiamiPanelMGroupClass_DATA *data = INST_DATA(CLASS,self);
290 switchTransparency(CLASS,self,data,FALSE);
292 data->flags &= ~FLG_Visible;
294 return DoSuperMethodA(CLASS,self,(Msg)message);
297 static ULONG
298 MUIPC_MGroup__MUIM_HandleEvent(struct IClass *CLASS,Object *self,struct MUIP_HandleEvent *message)
300 struct MiamiPanelMGroupClass_DATA *data = INST_DATA(CLASS,self);
302 if (data->flags & FLG_Handler)
304 ULONG b;
306 if (!BOOLSAME(b = isMouseOnBorder(data->win),data->flags & FLG_Border))
308 if (b) data->flags |= FLG_Border;
309 else data->flags &= ~FLG_Border;
311 TransparencyControl(data->win,TRANSPCONTROLMETHOD_UPDATETRANSPARENCY,NULL);
315 return 0;
317 #endif
319 /***********************************************************************/
321 static ULONG
322 MUIPC_MGroup__OM_SET(struct IClass *CLASS,Object *self,struct opSet *message)
324 struct MiamiPanelMGroupClass_DATA *data = INST_DATA(CLASS,self);
325 register struct TagItem *tag;
326 struct TagItem *tstate;
327 #ifdef __MORPHOS__
328 register ULONG res, win = FALSE;
329 #endif
331 for (tstate = message->ops_AttrList; tag = NextTagItem(&tstate); )
333 register ULONG tidata = tag->ti_Data;
335 switch(tag->ti_Tag)
337 case MPA_Prefs:
338 if (memcmp(&data->prefs,PREFS(tidata),sizeof(data->prefs)))
340 if (data->bar)
342 ULONG layoutChanged = data->prefs.layout!=PREFS(tidata)->layout;
344 if (layoutChanged)
346 DoSuperMethod(CLASS,self,MUIM_Group_InitChange);
348 SetSuperAttrs(CLASS,self,MUIA_Group_Horiz,!(PREFS(tidata)->layout & MPV_Layout_Horiz),TAG_DONE);
350 if (PREFS(tidata)->layout & (MPV_Layout_Left|MPV_Layout_PureTop))
351 DoSuperMethod(CLASS,self,MUIM_Group_Sort,(ULONG)data->bar,(ULONG)data->ifGroup,NULL);
352 else DoSuperMethod(CLASS,self,MUIM_Group_Sort,(ULONG)data->ifGroup,(ULONG)data->bar,NULL);
355 if (layoutChanged || memcmp(&data->prefs.barLayout,&PREFS(tidata)->barLayout,sizeof(ULONG)*4))
357 DoMethod(data->bar,MUIM_Group_InitChange);
359 SetAttrs(data->bar,MUIA_Group_Horiz, PREFS(tidata)->layout & MPV_Layout_Horiz,
360 MUIA_TheBar_BarPos, PREFS(tidata)->barLayout,
361 MUIA_TheBar_ViewMode, PREFS(tidata)->viewMode,
362 MUIA_TheBar_LabelPos, PREFS(tidata)->labelPos,
363 MUIA_TheBar_Borderless, PREFS(tidata)->btflags & MPV_BTFlags_Borderless,
364 MUIA_TheBar_Sunny, PREFS(tidata)->btflags & MPV_BTFlags_Sunny,
365 MUIA_TheBar_Raised, PREFS(tidata)->btflags & MPV_BTFlags_Raised,
366 MUIA_TheBar_Scaled, PREFS(tidata)->btflags & MPV_BTFlags_Scaled,
367 MUIA_TheBar_EnableKeys, PREFS(tidata)->btflags & MPV_BTFlags_Underscore,
368 MUIA_TheBar_Frame, PREFS(tidata)->btflags & MPV_BTFlags_Frame,
369 MUIA_TheBar_DragBar, PREFS(tidata)->btflags & MPV_BTFlags_DragBar,
370 TAG_DONE);
372 DoMethod(data->bar,MUIM_Group_ExitChange);
375 if (layoutChanged) DoSuperMethod(CLASS,self,MUIM_Group_ExitChange);
378 if (PREFS(tidata)->flags & MPV_Flags_BWin) data->flags |= FLG_BWin;
379 else data->flags &= ~FLG_BWin;
381 #ifdef __MORPHOS__
382 if ((data->flags & FLG_Visible) && !BOOLSAME(PREFS(tidata)->flags & MPV_Flags_UseTransparency,data->prefs.flags & MPV_Flags_UseTransparency))
383 if (PREFS(tidata)->flags & MPV_Flags_UseTransparency) win = TRUE;
384 else switchTransparency(CLASS,self,data,FALSE);
385 #endif
387 CopyMem(PREFS(tidata),&data->prefs,sizeof(data->prefs));
389 break;
391 case MPA_Bar:
392 set(data->scrollBar,MUIA_ShowMe,tidata);
393 break;
397 #ifdef __MORPHOS__
398 res = DoSuperMethodA(CLASS,self,(Msg)message);
400 if (win)
402 DoMethod(_app(self),MUIM_Application_PushMethod,(ULONG)_win(self),3,MUIM_Set,MUIA_Window_Open,FALSE);
403 DoMethod(_app(self),MUIM_Application_PushMethod,(ULONG)_win(self),3,MUIM_Set,MUIA_Window_Open,TRUE);
404 DoMethod(_app(self),MUIM_Application_PushMethod,(ULONG)_win(self),3,MUIM_Set,MUIA_Window_Activate,TRUE);
405 DoMethod(_app(self),MUIM_Application_PushMethod,(ULONG)self,1,MPM_MGroup_UpdateTransparency);
408 return res;
409 #else
410 return DoSuperMethodA(CLASS,self,(Msg)message);
411 #endif
414 /***********************************************************************/
415 #define DD_FACT 5
417 static ULONG
418 MUIPC_MGroup__MUIM_DragQuery(struct IClass *CLASS,Object *self,struct MUIP_DragQuery *message)
420 struct MiamiPanelMGroupClass_DATA *data = INST_DATA(CLASS,self);
422 if (message->obj!=data->bar) return MUIV_DragQuery_Refuse;
424 return MUIV_DragQuery_Accept;
427 /***********************************************************************/
429 static ULONG
430 MUIPC_MGroup__MUIM_DragBegin(struct IClass *CLASS,Object *self,Msg message)
432 struct MiamiPanelMGroupClass_DATA *data = INST_DATA(CLASS,self);
434 data->layout = data->prefs.layout;
435 set(data->ifList,MPA_SkipBar,TRUE);
437 return 0;
440 /***********************************************************************/
442 static ULONG
443 MUIPC_MGroup__MUIM_DragReport(struct IClass *CLASS,Object *self,struct MUIP_DragReport *message)
445 struct MiamiPanelMGroupClass_DATA *data = INST_DATA(CLASS,self);
446 ULONG layout;
447 LONG x, y, l, t, r, b, w, h;
449 if (!message->update) return MUIV_DragReport_Refresh;
451 x = message->x;
452 y = message->y;
454 l = _mleft(self);
455 t = _mtop(self);
456 r = _mright(self);
457 b = _mbottom(self);
459 w = _mwidth(self)/DD_FACT;
460 h = _mheight(self)/DD_FACT;
462 layout = 0;
464 switch (data->prefs.layout)
466 case MPV_Layout_Left:
467 if (x<l+w) layout = MPV_Layout_Left;
468 else if (y<t+h) layout = MPV_Layout_Top;
469 else if (y>b-h) layout = MPV_Layout_Bottom;
470 else if (x>r-w) layout = MPV_Layout_Right;
471 break;
473 case MPV_Layout_Right:
474 if (x>r-w) layout = MPV_Layout_Right;
475 else if (y<t+h) layout = MPV_Layout_Top;
476 else if (y>b-h) layout = MPV_Layout_Bottom;
477 else if (x<l+w) layout = MPV_Layout_Left;
478 break;
480 case MPV_Layout_Top:
481 if (y<t+h) layout = MPV_Layout_Top;
482 else if (y>b-h) layout = MPV_Layout_Bottom;
483 else if (x<l+w) layout = MPV_Layout_Left;
484 else if (x>r-w) layout = MPV_Layout_Right;
485 else data->layout = 0;
486 break;
488 case MPV_Layout_Bottom:
489 if (y>b-h) layout = MPV_Layout_Bottom;
490 else if (y<t+h) layout = MPV_Layout_Top;
491 else if (x<l+w) layout = MPV_Layout_Left;
492 else if (x>r-w) layout = MPV_Layout_Right;
493 else data->layout = 0;
494 break;
497 if (!layout) return MUIV_DragReport_Abort;
499 if (data->prefs.layout!=layout)
501 set(data->bar,MUIA_TheBar_Limbo,TRUE);
502 DoSuperMethod(CLASS,self,MUIM_Group_InitChange);
504 SetSuperAttrs(CLASS,self,MUIA_Group_Horiz,!(layout & MPV_Layout_Horiz),TAG_DONE);
505 set(data->bar,MUIA_Group_Horiz,layout & MPV_Layout_Horiz);
507 if (layout & (MPV_Layout_Left|MPV_Layout_PureTop))
508 DoSuperMethod(CLASS,self,MUIM_Group_Sort,(ULONG)data->bar,(ULONG)data->ifGroup,NULL);
509 else DoSuperMethod(CLASS,self,MUIM_Group_Sort,(ULONG)data->ifGroup,(ULONG)data->bar,NULL);
511 DoSuperMethod(CLASS,self,MUIM_Group_ExitChange);
512 set(data->bar,MUIA_TheBar_Limbo,FALSE);
514 if (!BOOLSAME(data->prefs.layout & MPV_Layout_Horiz,layout & MPV_Layout_Horiz))
515 data->flags |= FLG_Special;
516 data->prefs.layout = layout;
518 return MUIV_DragReport_Abort;
521 return MUIV_DragReport_Continue;
524 /***********************************************************************/
526 static ULONG
527 MUIPC_MGroup__MUIM_DragFinish(struct IClass *CLASS,Object *self,struct MUIP_DragFinish *message)
529 struct MiamiPanelMGroupClass_DATA *data = INST_DATA(CLASS,self);
531 if (data->flags & FLG_Special)
533 DoSuperMethod(CLASS,self,MUIM_Group_InitChange);
534 DoSuperMethod(CLASS,self,MUIM_Group_ExitChange);
535 data->flags &= ~FLG_Special;
538 return 0;
541 /***********************************************************************/
543 static ULONG
544 MUIPC_MGroup__MUIM_DragDrop(struct IClass *CLASS,Object *self,struct MUIP_DragDrop *message)
546 struct MiamiPanelMGroupClass_DATA *data = INST_DATA(CLASS,self);
548 if (data->prefs.layout!=data->layout)
550 struct MPS_Prefs prefs, *p;
551 Object *app = _app(self);
553 get(app,MPA_Prefs,&p);
554 CopyMem(p,&prefs,sizeof(prefs));
555 prefs.layout = data->prefs.layout;
556 SetAttrs(app,MPA_Prefs,(ULONG)&prefs,MPA_OneWay,TRUE,MPA_NoIfList,TRUE,TAG_DONE);
559 set(data->ifList,MPA_SkipBar,FALSE);
561 return 0;
564 /***********************************************************************/
566 static ULONG
567 MUIPC_MGroup__MPM_MGroup_GrabIFList(struct IClass *CLASS,Object *self,Msg message)
569 struct MiamiPanelMGroupClass_DATA *data = INST_DATA(CLASS,self);
571 return DoMethod(data->ifList,MPM_IfGroup_GrabIFList);
574 /***********************************************************************/
576 #ifdef __MORPHOS__
577 static ULONG
578 MUIPC_MGroup__MPM_MGroup_UpdateTransparency(struct IClass *CLASS,Object *self,Msg message)
580 struct MiamiPanelMGroupClass_DATA *data = INST_DATA(CLASS,self);
582 TransparencyControl(data->win,TRANSPCONTROLMETHOD_UPDATETRANSPARENCY,NULL);
583 return 0;
585 #endif
587 /***********************************************************************/
589 BOOPSI_DISPATCHER(IPTR, MUIPC_MGroup_Dispatcher, CLASS, self, message)
591 switch(message->MethodID)
593 case OM_NEW: return MUIPC_MGroup__OM_NEW(CLASS,self,(APTR)message);
594 case OM_SET: return MUIPC_MGroup__OM_SET(CLASS,self,(APTR)message);
595 case MUIM_Setup: return MUIPC_MGroup__MUIM_Setup(CLASS,self,(APTR)message);
597 #ifdef __MORPHOS__
598 case MUIM_Show: return MUIPC_MGroup__MUIM_Show(CLASS,self,(APTR)message);
599 case MUIM_Hide: return MUIPC_MGroup__MUIM_Hide(CLASS,self,(APTR)message);
600 case MUIM_HandleEvent: return MUIPC_MGroup__MUIM_HandleEvent(CLASS,self,(APTR)message);
601 #endif
603 case MUIM_DragQuery: return MUIPC_MGroup__MUIM_DragQuery(CLASS,self,(APTR)message);
604 case MUIM_DragBegin: return MUIPC_MGroup__MUIM_DragBegin(CLASS,self,(APTR)message);
605 case MUIM_DragDrop: return MUIPC_MGroup__MUIM_DragDrop(CLASS,self,(APTR)message);
606 case MUIM_DragReport: return MUIPC_MGroup__MUIM_DragReport(CLASS,self,(APTR)message);
607 case MUIM_DragFinish: return MUIPC_MGroup__MUIM_DragFinish(CLASS,self,(APTR)message);
609 case MPM_MGroup_GrabIFList: return MUIPC_MGroup__MPM_MGroup_GrabIFList(CLASS,self,(APTR)message);
610 #ifdef __MORPHOS__
611 case MPM_MGroup_UpdateTransparency: return MUIPC_MGroup__MPM_MGroup_UpdateTransparency(CLASS,self,(APTR)message);
612 #endif
614 default: return DoSuperMethodA(CLASS,self,message);
616 return 0;
618 BOOPSI_DISPATCHER_END
620 /***********************************************************************/
622 ULONG
623 MUIPC_MGroup_ClassInit(struct MiamiPanelBase_intern *MiamiPanelBase)
625 MiamiPanelBaseIntern = MiamiPanelBase;
626 if (MiamiPanelBaseIntern->mpb_mgroupClass = MUI_CreateCustomClass(NULL, MUIC_Group, NULL, sizeof(struct MiamiPanelMGroupClass_DATA), MUIPC_MGroup_Dispatcher))
628 localizeButtonsBar(buttons,buttonsIDs);
630 return TRUE;
633 return FALSE;
636 /***********************************************************************/