*
* Copyright (c) Tuomo Valkonen 1999-2007.
*
- * Ion is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
+ * See the included file LICENSE for details.
*/
#include <string.h>
/*{{{ Brush creation and releasing */
+#define MATCHES(S, A) (gr_stylespec_score(&(S), A)>0)
+#define MATCHES2(S, A1, A2) (gr_stylespec_score2(&(S), A1, A2)>0)
+
+#define ENSURE_INITSPEC(S, NM) \
+ if((S).attrs==NULL) gr_stylespec_load(&(S), NM);
+
+
static GrStyleSpec tabframe_spec=GR_STYLESPEC_INIT;
static GrStyleSpec tabinfo_spec=GR_STYLESPEC_INIT;
static GrStyleSpec tabmenuentry_spec=GR_STYLESPEC_INIT;
uint tmp=0;
uint tbf=1, lrf=1;
uint pad=bd->pad;
+ uint spc=style->spacing;
switch(bd->sides){
case DEBORDER_TB:
break;
}
+ /* Ridge/groove styles use 'padding' for the spacing between the
+ * 'highlight' and 'shadow' portions of the border, and 'spacing'
+ * between the border and contents. Inlaid style also uses 'spacing'
+ * between the contents and the border, and padding as its outer
+ * component. Elevated style does not use spacing.
+ */
switch(bd->style){
case DEBORDER_RIDGE:
case DEBORDER_GROOVE:
- tmp=bd->sh+bd->hl;
- bdw->top=tbf*tmp+pad; bdw->bottom=tbf*tmp+pad;
- bdw->left=lrf*tmp+pad; bdw->right=lrf*tmp+pad;
+ tmp=bd->sh+bd->hl+pad;
+ bdw->top=tbf*tmp+spc; bdw->bottom=tbf*tmp+spc;
+ bdw->left=lrf*tmp+spc; bdw->right=lrf*tmp+spc;
break;
case DEBORDER_INLAID:
- tmp=bd->sh; bdw->top=tbf*tmp+pad; bdw->left=lrf*tmp+pad;
- tmp=bd->hl; bdw->bottom=tbf*tmp+pad; bdw->right=lrf*tmp+pad;
+ tmp=bd->sh+pad; bdw->top=tbf*tmp+spc; bdw->left=lrf*tmp+spc;
+ tmp=bd->hl+pad; bdw->bottom=tbf*tmp+spc; bdw->right=lrf*tmp+spc;
break;
case DEBORDER_ELEVATED:
default:
{
DEStyle *style=brush->d;
while(style!=NULL){
- if(extl_table_get(style->data_table, 's', type, key, data))
+ if(extl_table_get(style->extras_table, 's', type, key, data))
return TRUE;
style=style->based_on;
}