summaryrefslogtreecommitdiff
path: root/themes/theme2_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'themes/theme2_main.c')
-rw-r--r--themes/theme2_main.c170
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);