static bool dock_init(WDock *dock, WWindow *parent, const WFitParams *fp) { WFitParams fp2=*fp; dock->pos=dock_param_pos.dflt; dock->grow=dock_param_grow.dflt; dock->is_auto=dock_param_is_auto.dflt; dock->brush=NULL; dock->dockapps=NULL; dock->min_w=1; dock->min_h=1; dock->max_w=1; dock->max_h=1; dock->arrange_called=FALSE; dock->save=TRUE; if(!window_init((WWindow*)dock, parent, &fp2, "WDock")) return FALSE; region_add_bindmap((WRegion*)dock, dock_bindmap); window_select_input(&(dock->win), IONCORE_EVENTMASK_CWINMGR); dock_brush_get(dock); LINK_ITEM(docks, dock, dock_next, dock_prev); return TRUE; }
bool infowin_init(WInfoWin *p, WWindow *parent, const WFitParams *fp, const char *style) { XSetWindowAttributes attr; if(!window_init(&(p->wwin), parent, fp)) return FALSE; p->buffer=ALLOC_N(char, INFOWIN_BUFFER_LEN); if(p->buffer==NULL) goto fail; p->buffer[0]='\0'; if(style==NULL) p->style=scopy("*"); else p->style=scopy(style); if(p->style==NULL) goto fail2; p->brush=NULL; gr_stylespec_init(&p->attr); infowin_updategr(p); if(p->brush==NULL) goto fail3; /* Enable save unders */ attr.save_under=True; XChangeWindowAttributes(ioncore_g.dpy, p->wwin.win, CWSaveUnder, &attr); window_select_input(&(p->wwin), IONCORE_EVENTMASK_NORMAL); return TRUE; fail3: gr_stylespec_unalloc(&p->attr); free(p->style); fail2: free(p->buffer); fail: window_deinit(&(p->wwin)); return FALSE; }
bool panehandle_init(WPaneHandle *pwin, WWindow *parent, const WFitParams *fp) { pwin->brush=NULL; pwin->bline=GR_BORDERLINE_NONE; pwin->splitfloat=NULL; if(!window_init(&(pwin->wwin), parent, fp)) return FALSE; panehandle_getbrush(pwin); if(pwin->brush==NULL){ GrBorderWidths bdw=GR_BORDER_WIDTHS_INIT; memcpy(&(pwin->bdw), &bdw, sizeof(bdw)); } window_select_input(&(pwin->wwin), IONCORE_EVENTMASK_NORMAL); return TRUE; }
bool menu_init(WMenu *menu, WWindow *par, const WFitParams *fp, const WMenuCreateParams *params) { Window win; int i; menu->entries=preprocess_menu(params->tab, &(menu->n_entries)); if(menu->entries==NULL){ warn(TR("Empty menu.")); return FALSE; } menu->tab=extl_ref_table(params->tab); menu->handler=extl_ref_fn(params->handler); menu->pmenu_mode=params->pmenu_mode; menu->big_mode=params->big_mode; /*menu->cycle_bindmap=NULL;*/ menu->last_fp=*fp; if(params->pmenu_mode){ menu->selected_entry=-1; }else{ menu->selected_entry=params->initial-1; if(menu->selected_entry<0) menu->selected_entry=0; if(params->initial > menu->n_entries) menu->selected_entry=0; } menu->max_entry_w=0; menu->entry_h=0; menu->brush=NULL; menu->entry_brush=NULL; menu->entry_spacing=0; menu->vis_entries=menu->n_entries; menu->first_entry=0; menu->submenu=NULL; menu->typeahead=NULL; menu->gm_kcb=0; menu->gm_state=0; if(!window_init((WWindow*)menu, par, fp)) goto fail; win=menu->win.win; if(!menu_init_gr(menu, region_rootwin_of((WRegion*)par), win)) goto fail2; init_attr(); menu_firstfit(menu, params->submenu_mode, &(params->refg)); window_select_input(&(menu->win), IONCORE_EVENTMASK_NORMAL); region_add_bindmap((WRegion*)menu, mod_menu_menu_bindmap); region_register((WRegion*)menu); return TRUE; fail2: window_deinit((WWindow*)menu); fail: extl_unref_table(menu->tab); extl_unref_fn(menu->handler); deinit_entries(menu); return FALSE; }