diff options
Diffstat (limited to 'themes/theme2_main.c')
-rw-r--r-- | themes/theme2_main.c | 170 |
1 files changed, 168 insertions, 2 deletions
diff --git a/themes/theme2_main.c b/themes/theme2_main.c index e9f84c7703..68c48ac5be 100644 --- a/themes/theme2_main.c +++ b/themes/theme2_main.c @@ -30,6 +30,8 @@ theme_read_config () cf->buttonconfig[i][j][k].button_padding.right=1; cf->buttonconfig[i][j][k].button_padding.top=1; cf->buttonconfig[i][j][k].button_padding.bottom=1; + cf->buttonconfig[i][j][k].min_w=0; + cf->buttonconfig[i][j][k].min_h=0; cf->buttonconfig[i][j][k].border.filename=NULL; cf->buttonconfig[i][j][k].border.image=NULL; cf->buttonconfig[i][j][k].background.filename=NULL; @@ -39,6 +41,18 @@ theme_read_config () } } } + cf->windowconfig.window_padding.left=1; + cf->windowconfig.window_padding.right=1; + cf->windowconfig.window_padding.top=1; + cf->windowconfig.window_padding.bottom=1; + cf->windowconfig.min_w=0; + cf->windowconfig.min_h=0; + cf->windowconfig.border.filename=NULL; + cf->windowconfig.border.image=NULL; + cf->windowconfig.background.filename=NULL; + cf->windowconfig.background.image=NULL; + cf->windowconfig.number_of_decorations=0; + cf->windowconfig.decoration=NULL; if (!f) { fprintf(stderr,"THEME ERROR: No config file found. Looked for %s\n",s); @@ -46,7 +60,6 @@ theme_read_config () } while(fgets(s,2048,f)) { - printf("%s",s); if (s[0]!='#') { ss[0]=0; @@ -62,6 +75,12 @@ theme_read_config () cf->buttonconfig[a][b][c].button_padding.top=k; cf->buttonconfig[a][b][c].button_padding.bottom=l; } + else if (!strcmp(ss,"minimums")) + { + sscanf(s,"%*s %*i %*i %*i %*s %i %i",&i,&j); + cf->buttonconfig[a][b][c].min_w=i; + cf->buttonconfig[a][b][c].min_h=j; + } else if (!strcmp(ss,"background")) { sscanf(s,"%*s %*i %*i %*i %*s %s",ss); @@ -128,7 +147,6 @@ theme_read_config () else if (!strcmp(ss,"border")) { sscanf(s,"%*s %*i %*i %*i %*s %*s %i %i %i %i",&i,&j,&k,&l); - printf("%i %i %i * %i %i %i %i\n",a,b,c,i,j,k,l); cf->buttonconfig[a][b][c].border.border.left=i; cf->buttonconfig[a][b][c].border.border.right=j; cf->buttonconfig[a][b][c].border.border.top=k; @@ -194,6 +212,154 @@ theme_read_config () } } } + else if (!strcmp(ss,"window")) + { + sscanf(s,"%*s %s",ss); + if (!strcmp(ss,"padding")) + { + sscanf(s,"%*s %*s %i %i %i %i",&i,&j,&k,&l); + cf->windowconfig.window_padding.left=i; + cf->windowconfig.window_padding.right=j; + cf->windowconfig.window_padding.top=k; + cf->windowconfig.window_padding.bottom=l; + } + else if (!strcmp(ss,"minimums")) + { + sscanf(s,"%*s %*s %i %i",&i,&j); + cf->windowconfig.min_w=i; + cf->windowconfig.min_h=j; + } + else if (!strcmp(ss,"background")) + { + sscanf(s,"%*s %*s %s",ss); + if (!strcmp(ss,"image")) + { + sscanf(s,"%*s %*s %*s %s",ss); + snprintf(s,2048,"%s/themes/%s",h,ss); + cf->windowconfig.background.filename=strdup(s); + cf->windowconfig.background.image= + gdk_imlib_load_image(cf->windowconfig.background.filename); + if (!cf->windowconfig.background.image) + { + fprintf(stderr,"ERROR: Cannot load %s\n",cf->windowconfig.background.filename); + exit(1); + } + } + else if (!strcmp(ss,"color")) + { + sscanf(s,"%*s %*s %*s %i %i %i",&i,&j,&k); + cf->windowconfig.background.color.r=i; + cf->windowconfig.background.color.g=j; + cf->windowconfig.background.color.b=k; + cf->windowconfig.background.color.pixel= + gdk_imlib_best_color_match(&i,&j,&k); + } + else if (!strcmp(ss,"border")) + { + sscanf(s,"%*s %*s %*s %i %i %i %i",&i,&j,&k,&l); + cf->windowconfig.background.border.left=i; + cf->windowconfig.background.border.right=j; + cf->windowconfig.background.border.top=k; + cf->windowconfig.background.border.bottom=l; + if (cf->windowconfig.background.image) + gdk_imlib_set_image_border(cf->windowconfig.background.image, + &cf->windowconfig.background.border); + } + else if (!strcmp(ss,"scale")) + { + sscanf(s,"%*s %*s %*s %i",&i); + cf->windowconfig.background.scale_to_fit=i; + } + else if (!strcmp(ss,"parent_tile")) + { + sscanf(s,"%*s %*s %*s %i",&i); + cf->windowconfig.background.tile_relative_to_parent=i; + } + } + else if (!strcmp(ss,"border")) + { + sscanf(s,"%*s %*s %s",ss); + if (!strcmp(ss,"image")) + { + sscanf(s,"%*s %*s %*s %s",ss); + snprintf(s,2048,"%s/themes/%s",h,ss); + cf->windowconfig.border.filename=strdup(s); + cf->windowconfig.border.image= + gdk_imlib_load_image(cf->windowconfig.border.filename); + if (!cf->windowconfig.border.image) + { + fprintf(stderr,"ERROR: Cannot load %s\n",cf->windowconfig.border.filename); + exit(1); + } + } + else if (!strcmp(ss,"border")) + { + sscanf(s,"%*s %*s %*s %i %i %i %i",&i,&j,&k,&l); + cf->windowconfig.border.border.left=i; + cf->windowconfig.border.border.right=j; + cf->windowconfig.border.border.top=k; + cf->windowconfig.border.border.bottom=l; + if (cf->windowconfig.border.image) + gdk_imlib_set_image_border(cf->windowconfig.border.image, + &cf->windowconfig.border.border); + } + } + else if (!strcmp(ss,"decoration")) + { + sscanf(s,"%*s %*s %s",ss); + if (!strcmp(ss,"image")) + { + sscanf(s,"%*s %*s %*s %s",ss); + snprintf(s,2048,"%s/themes/%s",h,ss); + cf->windowconfig.number_of_decorations++; + cf->windowconfig.decoration=realloc + (cf->windowconfig.decoration, + cf->windowconfig.number_of_decorations* + sizeof(ThemeButtonDecoration)); + cf->windowconfig.decoration + [cf->windowconfig.number_of_decorations-1] + .filename=strdup(s); + cf->windowconfig.decoration[cf->windowconfig.number_of_decorations-1].image= + gdk_imlib_load_image(cf->windowconfig.decoration + [cf->windowconfig.number_of_decorations-1].filename); + if (!cf->windowconfig.decoration + [cf->windowconfig.number_of_decorations-1] + .image) + { + fprintf(stderr,"ERROR: Cannot load %s\n",cf->windowconfig.decoration[cf->windowconfig.number_of_decorations-1].filename); + exit(1); + } + } + else if (!strcmp(ss,"coords")) + { + sscanf(s,"%*s %*s %*s %i %i %i %i %i %i %i %i",&i,&j,&k,&l,&m,&n,&o,&p); + cf->windowconfig.decoration + [cf->windowconfig.number_of_decorations-1] + .xrel=i; + cf->windowconfig.decoration + [cf->windowconfig.number_of_decorations-1] + .yrel=j; + cf->windowconfig.decoration + [cf->windowconfig.number_of_decorations-1] + .xabs=k; + cf->windowconfig.decoration + [cf->windowconfig.number_of_decorations-1] + .yabs=l; + cf->windowconfig.decoration + [cf->windowconfig.number_of_decorations-1] + .x2rel=m; + cf->windowconfig.decoration + [cf->windowconfig.number_of_decorations-1] + .y2rel=n; + cf->windowconfig.decoration + [cf->windowconfig.number_of_decorations-1] + .x2abs=o; + cf->windowconfig.decoration + [cf->windowconfig.number_of_decorations-1] + .y2abs=p; + } + } + } } } fclose(f); |