bool mod_dock_init() { if(!ioncore_register_regclass(&CLASSDESCR(WDock), (WRegionLoadCreateFn*)dock_load)){ return FALSE; } if(!mod_dock_register_exports()){ ioncore_unregister_regclass(&CLASSDESCR(WDock)); return FALSE; } dock_bindmap=ioncore_alloc_bindmap("WDock", NULL); if(dock_bindmap==NULL){ warn("Unable to allocate dock bindmap."); mod_dock_unregister_exports(); ioncore_unregister_regclass(&CLASSDESCR(WDock)); } extl_read_config("cfg_dock", NULL, TRUE); hook_add(clientwin_do_manage_alt, (WHookDummy*)clientwin_do_manage_hook); return TRUE; }
void mod_statusbar_deinit() { hook_remove(clientwin_do_manage_alt, (WHookDummy*)clientwin_do_manage_hook); if(mod_statusbar_statusbar_bindmap!=NULL){ ioncore_free_bindmap("WStatusBar", mod_statusbar_statusbar_bindmap); mod_statusbar_statusbar_bindmap=NULL; } ioncore_unregister_regclass(&CLASSDESCR(WStatusBar)); mod_statusbar_unregister_exports(); }
void mod_tiling_deinit() { mod_tiling_unregister_exports(); ioncore_unregister_regclass(&CLASSDESCR(WTiling)); if(mod_tiling_tiling_bindmap!=NULL){ ioncore_free_bindmap("WTiling", mod_tiling_tiling_bindmap); mod_tiling_tiling_bindmap=NULL; } if(tiling_placement_alt!=NULL){ destroy_obj((Obj*)tiling_placement_alt); tiling_placement_alt=NULL; } }
void mod_dock_deinit() { WDock *dock; ioncore_unregister_regclass(&CLASSDESCR(WDock)); hook_remove(clientwin_do_manage_alt, (WHookDummy*)clientwin_do_manage_hook); dock=docks; while(dock!=NULL){ WDock *next=dock->dock_next; destroy_obj((Obj*)dock); dock=next; } mod_dock_unregister_exports(); if(dock_bindmap!=NULL){ ioncore_free_bindmap("WDock", dock_bindmap); dock_bindmap=NULL; } }