/***************** Create/Destroy MyBackgroundConfig *****************/ MyBackgroundConfig *CreateMyBackgroundConfig () { MyBackgroundConfig *config = (MyBackgroundConfig *) safemalloc (sizeof (MyBackgroundConfig)); config->name = NULL; config->flags = 0; config->data = NULL; init_asgeometry (&(config->cut)); config->tint = NULL; init_asgeometry (&(config->scale)); config->pad = NULL; config->next = NULL; return config; }
static void InitWinListConfig (ASModuleConfig *asm_config, Bool free_resources) { WinListConfig *config = AS_WINLIST_CONFIG(asm_config); if( config ) { if( free_resources ) { int i ; destroy_string(&(config->UnfocusedStyle)); destroy_string(&(config->FocusedStyle)); destroy_string(&(config->StickyStyle)); destroy_string(&(config->UrgentStyle)); for (i = 0; i < MAX_MOUSE_BUTTONS; ++i) if (config->Action[i]) destroy_string_list(config->Action[i],0); #define FREE_COLLIDES(type) do { \ destroy_string_list(&(config->type##Collides[0]),config->type##Collides_nitems); \ if( config->type##Collides_wrexp ) { \ for( i = 0 ; i < config->type##Collides_nitems ; ++i ) destroy_wild_reg_exp(config->type##Collides_wrexp[i]); \ free( config->type##Collides_wrexp ); \ }}while(0) if( config->NoCollides_nitems > 0 ) FREE_COLLIDES(No); if( config->AllowCollides_nitems > 0 ) FREE_COLLIDES(Allow); } // memset( config, 0x00, sizeof(WinListConfig)); config->flags = WINLIST_ShowIcon|WINLIST_ScaleIconToTextHeight ; init_asgeometry (&(config->Geometry)); config->gravity = StaticGravity; config->MaxRows = 1; config->UseName = ASN_Name; config->Align = ALIGN_CENTER; config->HSpacing = DEFAULT_TBAR_HSPACING; config->VSpacing = DEFAULT_TBAR_VSPACING; config->FBevel = config->UBevel = config->SBevel = DEFAULT_TBAR_HILITE ; config->IconAlign = NO_ALIGN ; config->IconLocation = 0 ; config->ShowHints = WINLIST_DEFAULT_ShowHints ; if( !free_resources ) { config->NoCollides = safecalloc(2, sizeof(char*)); ; config->NoCollides[0] = mystrdup(CLASS_PAGER); config->NoCollides[1] = mystrdup(CLASS_WHARF); config->NoCollides_nitems = 2 ; } config->NoCollidesSpacing = 1 ; } }