Enlightenment CVS committal Author : kwo Project : e16 Module : e
Dir : e16/e/src Modified Files: aclass.c borders.c borders.h config.c container.c desktops.c dialog.c iclass.c iclass.h menus.c tclass.c text.c theme.c Log Message: Theme element fallback cleanups - don't create fallback classes before they are needed. - use of fallbacks was missing a number of places. - setting theme to "-" will run entirely on fallbacks. =================================================================== RCS file: /cvs/e/e16/e/src/aclass.c,v retrieving revision 1.50 retrieving revision 1.51 diff -u -3 -r1.50 -r1.51 --- aclass.c 30 Mar 2008 12:13:14 -0000 1.50 +++ aclass.c 22 Jun 2008 13:34:41 -0000 1.51 @@ -1125,28 +1125,6 @@ return match; } -static void -AclassSetupFallback(void) -{ - ActionClass *ac; - Action *aa; - - /* Create a default fallback actionclass for the fallback border */ - ac = ActionclassCreate("__FALLBACK_ACTION", 0); - - aa = ActionCreate(EVENT_MOUSE_DOWN, 1, 0, 0, 1, 0, NULL, NULL); - ActionclassAddAction(ac, aa); - ActionAddTo(aa, "wop * mo ptr"); - - aa = ActionCreate(EVENT_MOUSE_DOWN, 1, 0, 0, 2, 0, NULL, NULL); - ActionclassAddAction(ac, aa); - ActionAddTo(aa, "wop * close"); - - aa = ActionCreate(EVENT_MOUSE_DOWN, 1, 0, 0, 3, 0, NULL, NULL); - ActionclassAddAction(ac, aa); - ActionAddTo(aa, "wop * sz ptr"); -} - /* * Actions module */ @@ -1157,7 +1135,6 @@ switch (sig) { case ESIGNAL_INIT: - AclassSetupFallback(); AclassConfigLoadConfig("bindings.cfg"); AclassConfigLoadUser(); break; =================================================================== RCS file: /cvs/e/e16/e/src/borders.c,v retrieving revision 1.308 retrieving revision 1.309 diff -u -3 -r1.308 -r1.309 --- borders.c 10 May 2008 23:22:31 -0000 1.308 +++ borders.c 22 Jun 2008 13:34:41 -0000 1.309 @@ -48,6 +48,7 @@ static void BorderDestroy(Border * b); static void BorderWinpartHandleEvents(Win win, XEvent * ev, void *prm); static void BorderFrameHandleEvents(Win win, XEvent * ev, void *prm); +static Border *BorderGetFallback(void); static void BorderWinpartRealise(EWin * ewin, int i) @@ -452,7 +453,7 @@ b = BorderFind("DEFAULT"); if (!b) - b = BorderFind("__FALLBACK_BORDER"); + b = BorderGetFallback(); done: ewin->normal_border = ewin->border = b; @@ -661,6 +662,8 @@ Border * BorderFind(const char *name) { + if (!name) + return NULL; return (Border *) ecore_list_find(border_list, _BorderMatchName, name); } @@ -1206,6 +1209,9 @@ Border *b; b = BorderCreate("__FILLER"); + if (!b) + return b; + b->throwaway = 1; b->border.left = left; @@ -1213,6 +1219,8 @@ b->border.top = top; b->border.bottom = bottom; + ImageclassGetBlack(); /* Creates the __BLACK ImageClass */ + if (top) BorderWinpartAdd(b, "__BLACK", NULL, NULL, NULL, 1, FLAG_BUTTON, 0, 1, 99999, 1, 99999, @@ -1247,8 +1255,38 @@ return (Border **) ecore_list_items_get(border_list, pnum); } -void -BordersSetupFallback(void) +static ActionClass * +BorderGetFallbackAclass(void) +{ + ActionClass *ac; + Action *aa; + + ac = ActionclassFind("__fb_bd_ac"); + if (ac) + return ac; + + /* Create fallback actionclass for the fallback border */ + ac = ActionclassCreate("__fb_bd_ac", 0); + if (!ac) + return ac; + + aa = ActionCreate(EVENT_MOUSE_DOWN, 1, 0, 0, 1, 0, NULL, NULL); + ActionclassAddAction(ac, aa); + ActionAddTo(aa, "wop * mo ptr"); + + aa = ActionCreate(EVENT_MOUSE_DOWN, 1, 0, 0, 2, 0, NULL, NULL); + ActionclassAddAction(ac, aa); + ActionAddTo(aa, "wop * close"); + + aa = ActionCreate(EVENT_MOUSE_DOWN, 1, 0, 0, 3, 0, NULL, NULL); + ActionclassAddAction(ac, aa); + ActionAddTo(aa, "wop * sz ptr"); + + return ac; +} + +static Border * +BorderGetFallback(void) { /* * This function creates simple internal data members to be used in @@ -1257,29 +1295,35 @@ * least E won't barf on us then. */ Border *b; - ImageClass *ic; ActionClass *ac; - ac = ActionclassFind("__FALLBACK_ACTION"); - ic = ImageclassFind("__FALLBACK_ICLASS", 0); + b = BorderFind("__fb_bd"); + if (b) + return b; - /* create a fallback border in case no border is found */ - b = BorderCreate("__FALLBACK_BORDER"); + ac = BorderGetFallbackAclass(); /* Creates the fallback ac */ + + /* Create fallback border */ + b = BorderCreate("__fb_bd"); + if (!b) + return b; b->border.left = 8; b->border.right = 8; b->border.top = 8; b->border.bottom = 8; - BorderWinpartAdd(b, "__FALLBACK_ICLASS", "__FALLBACK_ACTION", NULL, NULL, + BorderWinpartAdd(b, "__fb_ic", "__fb_bd_ac", NULL, NULL, 1, FLAG_BUTTON, 0, 8, 99999, 8, 99999, -1, 0, 0, 0, 0, -1, 1024, -1, 0, 7, 1); - BorderWinpartAdd(b, "__FALLBACK_ICLASS", "__FALLBACK_ACTION", NULL, NULL, + BorderWinpartAdd(b, "__fb_ic", "__fb_bd_ac", NULL, NULL, 1, FLAG_BUTTON, 0, 8, 99999, 8, 99999, -1, 0, 0, 1024, -8, -1, 1024, -1, 1024, -1, 1); - BorderWinpartAdd(b, "__FALLBACK_ICLASS", "__FALLBACK_ACTION", NULL, NULL, + BorderWinpartAdd(b, "__fb_ic", "__fb_bd_ac", NULL, NULL, 1, FLAG_BUTTON, 0, 8, 99999, 8, 99999, -1, 0, 0, 0, 8, -1, 0, 7, 1024, -9, 1); - BorderWinpartAdd(b, "__FALLBACK_ICLASS", "__FALLBACK_ACTION", NULL, NULL, + BorderWinpartAdd(b, "__fb_ic", "__fb_bd_ac", NULL, NULL, 1, FLAG_BUTTON, 0, 8, 99999, 8, 99999, -1, 1024, -8, 0, 8, -1, 1024, -1, 1024, -9, 1); + + return b; } =================================================================== RCS file: /cvs/e/e16/e/src/borders.h,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- borders.h 10 May 2008 23:22:31 -0000 1.15 +++ borders.h 22 Jun 2008 13:34:41 -0000 1.16 @@ -101,6 +101,5 @@ void BordersForeach(void (*func) (Border * b, void *data), void *data); Border **BordersGetList(int *pnum); -void BordersSetupFallback(void); #endif /* _BORDERS_H_ */ =================================================================== RCS file: /cvs/e/e16/e/src/config.c,v retrieving revision 1.162 retrieving revision 1.163 diff -u -3 -r1.162 -r1.163 --- config.c 24 Mar 2008 11:12:39 -0000 1.162 +++ config.c 22 Jun 2008 13:34:41 -0000 1.163 @@ -619,8 +619,5 @@ /* Font mappings no longer needed */ FontConfigUnload(); - /* Loose ends... */ - BordersSetupFallback(); - return 0; } =================================================================== RCS file: /cvs/e/e16/e/src/container.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -3 -r1.22 -r1.23 --- container.c 24 Mar 2008 11:12:39 -0000 1.22 +++ container.c 22 Jun 2008 13:34:42 -0000 1.23 @@ -531,7 +531,7 @@ static void ContainerDrawScroll(Container * ct) { - ImageClass *ic; + ImageClass *ic, *ic_sbb; EImageBorder *pad; int arrow_mode = ct->arrow_side; int bs, bw, bx; @@ -543,13 +543,13 @@ if (ct->h < 2 * ct->arrow_thickness + ct->knob_length) arrow_mode = 3; /* No arrows */ - ic = ImageclassFind("ICONBOX_SCROLLBAR_BASE_VERTICAL", 0); - pad = ImageclassGetPadding(ic); + ic_sbb = ImageclassFind("ICONBOX_SCROLLBAR_BASE_VERTICAL", 1); + pad = ImageclassGetPadding(ic_sbb); if (arrow_mode < 3) bs = ct->h - (ct->arrow_thickness * 2); else bs = ct->h; - if (ic) + if (pad) bs -= pad->top + pad->bottom; bw = (ct->h * bs) / ct->max; if (bs < 1) @@ -559,7 +559,7 @@ if (bw < 1) bw = 1; bx = ((ct->pos * bs) / ct->max); - if (ic) + if (pad) bx += pad->top; if ((ct->scrollbar_hide) && (bw == bs)) goto do_hide_sb; @@ -686,15 +686,13 @@ } } - ic = ImageclassFind("ICONBOX_SCROLLBAR_BASE_VERTICAL", 0); - if (ic) - ImageclassApply(ic, ct->scroll_win, 0, 0, STATE_NORMAL, ST_ICONBOX); + ImageclassApply(ic_sbb, ct->scroll_win, 0, 0, STATE_NORMAL, ST_ICONBOX); EMoveResizeWindow(ct->scrollbar_win, (ct->scroll_thickness - ct->bar_thickness) / 2, bx, ct->bar_thickness, bw); - ic = ImageclassFind("ICONBOX_SCROLLBAR_KNOB_VERTICAL", 0); + ic = ImageclassFind("ICONBOX_SCROLLBAR_KNOB_VERTICAL", 1); if (ic) { state = STATE_NORMAL; @@ -728,7 +726,7 @@ if (arrow_mode < 3) { - ic = ImageclassFind("ICONBOX_ARROW_UP", 0); + ic = ImageclassFind("ICONBOX_ARROW_UP", 1); if (ic) { state = STATE_NORMAL; @@ -739,7 +737,7 @@ ImageclassApply(ic, ct->arrow1_win, 0, 0, state, ST_ICONBOX); } - ic = ImageclassFind("ICONBOX_ARROW_DOWN", 0); + ic = ImageclassFind("ICONBOX_ARROW_DOWN", 1); if (ic) { state = STATE_NORMAL; @@ -756,13 +754,13 @@ if (ct->w < 2 * ct->arrow_thickness + ct->knob_length) arrow_mode = 3; /* No arrows */ - ic = ImageclassFind("ICONBOX_SCROLLBAR_BASE_HORIZONTAL", 0); - pad = ImageclassGetPadding(ic); + ic_sbb = ImageclassFind("ICONBOX_SCROLLBAR_BASE_HORIZONTAL", 1); + pad = ImageclassGetPadding(ic_sbb); if (arrow_mode < 3) bs = ct->w - (ct->arrow_thickness * 2); else bs = ct->w; - if (ic) + if (pad) bs -= pad->left + pad->right; bw = (ct->w * bs) / ct->max; if (bs < 1) @@ -772,7 +770,7 @@ if (bw < 1) bw = 1; bx = ((ct->pos * bs) / ct->max); - if (ic) + if (pad) bx += pad->left; if ((ct->scrollbar_hide) && (bw == bs)) goto do_hide_sb; @@ -902,11 +900,9 @@ (ct->scroll_thickness - ct->bar_thickness) / 2, bw, ct->bar_thickness); - ic = ImageclassFind("ICONBOX_SCROLLBAR_BASE_HORIZONTAL", 0); - if (ic) - ImageclassApply(ic, ct->scroll_win, 0, 0, STATE_NORMAL, ST_ICONBOX); + ImageclassApply(ic_sbb, ct->scroll_win, 0, 0, STATE_NORMAL, ST_ICONBOX); - ic = ImageclassFind("ICONBOX_SCROLLBAR_KNOB_HORIZONTAL", 0); + ic = ImageclassFind("ICONBOX_SCROLLBAR_KNOB_HORIZONTAL", 1); if (ic) { state = STATE_NORMAL; @@ -940,7 +936,7 @@ if (arrow_mode < 3) { - ic = ImageclassFind("ICONBOX_ARROW_LEFT", 0); + ic = ImageclassFind("ICONBOX_ARROW_LEFT", 1); if (ic) { state = STATE_NORMAL; @@ -951,7 +947,7 @@ ImageclassApply(ic, ct->arrow1_win, 0, 0, state, ST_ICONBOX); } - ic = ImageclassFind("ICONBOX_ARROW_RIGHT", 0); + ic = ImageclassFind("ICONBOX_ARROW_RIGHT", 1); if (ic) { state = STATE_NORMAL; @@ -1297,7 +1293,7 @@ Container *ct = (Container *) prm; static int px, py, pos0; int bs, dp; - ImageClass *ic; + ImageClass *ic_sbb; EImageBorder *pad; switch (ev->type) @@ -1333,10 +1329,10 @@ if (ct->orientation) { - ic = ImageclassFind("ICONBOX_SCROLLBAR_BASE_VERTICAL", 0); - pad = ImageclassGetPadding(ic); + ic_sbb = ImageclassFind("ICONBOX_SCROLLBAR_BASE_VERTICAL", 1); + pad = ImageclassGetPadding(ic_sbb); bs = ct->h - (ct->arrow_thickness * 2); - if (ic) + if (pad) bs -= pad->top + pad->bottom; if (bs < 1) bs = 1; @@ -1344,10 +1340,10 @@ } else { - ic = ImageclassFind("ICONBOX_SCROLLBAR_BASE_HORIZONTAL", 0); - pad = ImageclassGetPadding(ic); + ic_sbb = ImageclassFind("ICONBOX_SCROLLBAR_BASE_HORIZONTAL", 1); + pad = ImageclassGetPadding(ic_sbb); bs = ct->w - (ct->arrow_thickness * 2); - if (ic) + if (pad) bs -= pad->left + pad->right; if (bs < 1) bs = 1; =================================================================== RCS file: /cvs/e/e16/e/src/desktops.c,v retrieving revision 1.290 retrieving revision 1.291 diff -u -3 -r1.290 -r1.291 --- desktops.c 5 Jun 2008 17:42:59 -0000 1.290 +++ desktops.c 22 Jun 2008 13:34:42 -0000 1.291 @@ -2204,9 +2204,8 @@ if (!called) { - ic = ImageclassFind("SETTINGS_DESKTOP_AREA", 0); - if (ic) - ImageclassApply(ic, win, 0, 0, STATE_NORMAL, ST_SOLID); + ic = ImageclassFind("SETTINGS_DESKTOP_AREA", 1); + ImageclassApply(ic, win, 0, 0, STATE_NORMAL, ST_SOLID); for (i = 0; i < ENLIGHTENMENT_CONF_NUM_DESKTOPS; i++) wins[i] = 0; called = 1; @@ -2231,9 +2230,8 @@ } else { - ic = ImageclassFind("SETTINGS_DESKTOP_AREA", 0); - if (ic) - ImageclassApply(ic, wins[i], 0, 0, STATE_NORMAL, ST_SOLID); + ic = ImageclassFind("SETTINGS_DESKTOP_AREA", 1); + ImageclassApply(ic, wins[i], 0, 0, STATE_NORMAL, ST_SOLID); } } } @@ -2445,11 +2443,11 @@ { ImageClass *ic; - ic = ImageclassFind("SETTINGS_AREA_AREA", 0); + ic = ImageclassFind("SETTINGS_AREA_AREA", 1); ImageclassApply(ic, win, 0, 0, STATE_NORMAL, ST_SOLID); awin = ECreateWindow(win, 0, 0, 18, 14, 0); - ic = ImageclassFind("SETTINGS_AREADESK_AREA", 0); + ic = ImageclassFind("SETTINGS_AREADESK_AREA", 1); ImageclassApply(ic, awin, 0, 0, STATE_NORMAL, ST_SOLID); called = 1; =================================================================== RCS file: /cvs/e/e16/e/src/dialog.c,v retrieving revision 1.201 retrieving revision 1.202 diff -u -3 -r1.201 -r1.202 --- dialog.c 10 May 2008 23:15:32 -0000 1.201 +++ dialog.c 22 Jun 2008 13:34:42 -0000 1.202 @@ -939,7 +939,7 @@ static void DialogRealizeItem(Dialog * d, DItem * di) { - const char *def = NULL; + const char *iclass, *tclass; int iw = 0, ih = 0; int register_win_callback; EImage *im; @@ -949,43 +949,60 @@ return; di->realized = 1; + iclass = tclass = NULL; if (di->type == DITEM_BUTTON) { - def = "DIALOG_WIDGET_BUTTON"; + iclass = "DIALOG_WIDGET_BUTTON"; + tclass = iclass; } else if (di->type == DITEM_CHECKBUTTON) { - def = "DIALOG_WIDGET_CHECK_BUTTON"; + iclass = "DIALOG_WIDGET_CHECK_BUTTON"; + tclass = iclass; } else if (di->type == DITEM_TEXT) { - def = "DIALOG_WIDGET_TEXT"; + tclass = "DIALOG_WIDGET_TEXT"; } else if (di->type == DITEM_SEPARATOR) { - def = "DIALOG_WIDGET_SEPARATOR"; + iclass = "DIALOG_WIDGET_SEPARATOR"; } - else if (di->type == DITEM_TABLE) + else if (di->type == DITEM_RADIOBUTTON) { - def = "DIALOG_WIDGET_TABLE"; + iclass = "DIALOG_WIDGET_RADIO_BUTTON"; + tclass = iclass; } - else if (di->type == DITEM_RADIOBUTTON) +#if 0 + else if (di->type == DITEM_SLIDER) { - def = "DIALOG_WIDGET_RADIO_BUTTON"; + iclass = NULL; } +#endif else if (di->type == DITEM_AREA) { - def = "DIALOG_WIDGET_AREA"; + iclass = "DIALOG_WIDGET_AREA"; } - else + + if (!di->iclass && iclass) { - def = "DIALOG_WIDGET_BUTTON"; + di->iclass = ImageclassAlloc(iclass, 1); + if (!di->iclass) + { + di->type = DITEM_NONE; + return; + } } - if (!di->iclass) - di->iclass = ImageclassAlloc(def, 1); - if (!di->tclass) - di->tclass = TextclassAlloc(def, 1); + if (!di->tclass && tclass) + { + di->tclass = TextclassAlloc(tclass, 1); + if (!di->tclass) + { + di->type = DITEM_NONE; + return; + } + } if (di->type == DITEM_TABLE) { @@ -1713,7 +1730,7 @@ draw_text: di->state = state; - if (!di->text) + if (!di->text || !di->tclass) break; if (!d->redraw) EXCopyAreaTiled(d->pmm_bg.pmap, None, WinGetPmap(d->win), =================================================================== RCS file: /cvs/e/e16/e/src/iclass.c,v retrieving revision 1.137 retrieving revision 1.138 diff -u -3 -r1.137 -r1.138 --- iclass.c 5 Jun 2008 08:55:20 -0000 1.137 +++ iclass.c 22 Jun 2008 13:34:42 -0000 1.138 @@ -84,6 +84,8 @@ static Ecore_List *iclass_list = NULL; +static ImageClass *ImageclassGetFallback(void); + #ifdef ENABLE_THEME_TRANSPARENCY static EImageColorModifier *icm = NULL; @@ -422,10 +424,10 @@ if (ic || !fallback) return ic; - ic = (ImageClass *) ecore_list_find(iclass_list, _ImageclassMatchName, - "__FALLBACK_ICLASS"); - - return ic; +#if 0 + Eprintf("%s: Get fallback (%s)\n", __func__, name); +#endif + return ImageclassGetFallback(); } #define ISTATE_SET_STATE(which, fallback) \ @@ -1313,13 +1315,19 @@ } } -static void -ImageclassSetupFallback(void) +static ImageClass * +ImageclassGetFallback(void) { ImageClass *ic; - /* create a fallback imageclass in case no imageclass can be found */ - ic = ImageclassCreate("__FALLBACK_ICLASS"); + ic = ImageclassFind("__fb_ic", 0); + if (ic) + return ic; + + /* Create fallback imageclass */ + ic = ImageclassCreate("__fb_ic"); + if (!ic) + return ic; ic->norm.normal = ImagestateCreate(NULL); ImagestateColorsSetGray(ic->norm.normal, 255, 255, 160, 0, 0); @@ -1348,20 +1356,36 @@ SET_COLOR(&(ic->active.clicked->bg), 230, 190, 210); ic->active.clicked->bevelstyle = BEVEL_AMIGA; - ic->padding.left = 8; - ic->padding.right = 8; - ic->padding.top = 8; - ic->padding.bottom = 8; + ic->padding.left = 4; + ic->padding.right = 4; + ic->padding.top = 4; + ic->padding.bottom = 4; ImageclassPopulate(ic); + return ic; +} + +ImageClass * +ImageclassGetBlack(void) +{ + ImageClass *ic; + + ic = ImageclassFind("__BLACK", 0); + if (ic) + return ic; + /* Create all black image class for filler borders */ ic = ImageclassCreate("__BLACK"); + if (!ic) + return ic; ic->norm.normal = ImagestateCreate(NULL); ImagestateColorsSetGray(ic->norm.normal, 0, 0, 0, 0, 0); ImageclassPopulate(ic); + + return ic; } /* @@ -1369,17 +1393,6 @@ */ static void -ImageclassSighan(int sig, void *prm __UNUSED__) -{ - switch (sig) - { - case ESIGNAL_INIT: - ImageclassSetupFallback(); - break; - } -} - -static void ImageclassIpc(const char *params) { char param1[1024]; @@ -1549,7 +1562,7 @@ static const IpcItem ImageclassIpcArray[] = { { ImageclassIpc, - "imageclass", NULL, + "imageclass", "ic", "List imageclasses, apply an imageclass", NULL} , @@ -1562,7 +1575,7 @@ extern const EModule ModImageclass; const EModule ModImageclass = { "imageclass", "ic", - ImageclassSighan, + NULL, {N_IPC_FUNCS, ImageclassIpcArray} , {0, NULL} =================================================================== RCS file: /cvs/e/e16/e/src/iclass.h,v retrieving revision 1.19 retrieving revision 1.20 diff -u -3 -r1.19 -r1.20 --- iclass.h 3 Feb 2008 16:52:38 -0000 1.19 +++ iclass.h 22 Jun 2008 13:34:42 -0000 1.20 @@ -109,6 +109,7 @@ ImageState *ImageclassGetImageState(ImageClass * ic, int state, int active, int sticky); ImageClass *ImageclassCreateSimple(const char *name, const char *image); +ImageClass *ImageclassGetBlack(void); EImage *ImageclassGetImage(ImageClass * ic, int active, int sticky, int state); void ImageclassApplySimple(ImageClass * ic, Win win, =================================================================== RCS file: /cvs/e/e16/e/src/menus.c,v retrieving revision 1.302 retrieving revision 1.303 diff -u -3 -r1.302 -r1.303 --- menus.c 5 Jun 2008 08:55:21 -0000 1.302 +++ menus.c 22 Jun 2008 13:34:42 -0000 1.303 @@ -378,13 +378,6 @@ m->ref_count++; } -static void -MenuStyleSetName(MenuStyle * ms, const char *name) -{ - Efree(ms->name); - ms->name = Estrdup(name); -} - static MenuStyle * MenuStyleCreate(const char *name) { @@ -398,8 +391,8 @@ menu_style_list = ecore_list_new(); ecore_list_prepend(menu_style_list, ms); + ms->name = Estrdup(name); ms->iconpos = ICON_LEFT; - MenuStyleSetName(ms, name); return ms; } @@ -437,8 +430,28 @@ MenuStyle * MenuStyleFind(const char *name) { - return (MenuStyle *) ecore_list_find(menu_style_list, _MenuStyleMatchName, - name); + MenuStyle *ms; + + ms = (MenuStyle *) ecore_list_find(menu_style_list, _MenuStyleMatchName, + name); + if (ms) + return ms; + + ms = (MenuStyle *) ecore_list_find(menu_style_list, _MenuStyleMatchName, + "__fb_ms"); + if (ms) + return ms; + + ms = MenuStyleCreate("__fb_ms"); + if (!ms) + return ms; + + ms->tclass = TextclassFind(NULL, 1); + ms->bg_iclass = ImageclassFind(NULL, 1); + ms->item_iclass = ImageclassFind(NULL, 1); + ms->sub_iclass = ImageclassFind(NULL, 1); + + return ms; } void @@ -1930,7 +1943,7 @@ sscanf(p3, "%s %n", s3, &len); ic = NULL; if (strcmp("NULL", s3)) - ic = ImageclassFind(s3, 0); + ic = ImageclassFind(s3, 1); mm = MenuFind(s2, NULL); mi = MenuItemCreate(p3 + len, ic, NULL, mm); MenuAddItem(m, mi); =================================================================== RCS file: /cvs/e/e16/e/src/tclass.c,v retrieving revision 1.60 retrieving revision 1.61 diff -u -3 -r1.60 -r1.61 --- tclass.c 23 Feb 2008 12:13:28 -0000 1.60 +++ tclass.c 22 Jun 2008 13:34:42 -0000 1.61 @@ -33,6 +33,8 @@ static Ecore_List *tclass_list = NULL; +static TextClass *TextclassGetFallback(void); + static char * TextstateFontLookup(const char *name) { @@ -229,10 +231,10 @@ if (tc || !fallback) return tc; - tc = (TextClass *) ecore_list_find(tclass_list, _TextclassMatchName, - "__FALLBACK_TCLASS"); - - return tc; +#if 0 + Eprintf("%s: Get fallback (%s)\n", __func__, name); +#endif + return TextclassGetFallback(); } int @@ -369,28 +371,32 @@ return err; } -/* - * Textclass Module - */ - -static void -TextclassSighan(int sig, void *prm __UNUSED__) +static TextClass * +TextclassGetFallback(void) { TextClass *tc; - switch (sig) - { - case ESIGNAL_INIT: - /* create a fallback textclass in case no textclass is found */ - tc = TextclassCreate("__FALLBACK_TCLASS"); - tc->norm.normal = - TextstateCreate("-*-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*"); - SET_COLOR(&(tc->norm.normal->fg_col), 0, 0, 0); - TextclassPopulate(tc); - break; - } + tc = TextclassFind("__fb_tc", 0); + if (tc) + return tc; + + /* Create fallback textclass */ + tc = TextclassCreate("__fb_tc"); + if (!tc) + return tc; + + tc->norm.normal = + TextstateCreate("-*-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*"); + SET_COLOR(&(tc->norm.normal->fg_col), 0, 0, 0); + TextclassPopulate(tc); + + return tc; } +/* + * Textclass Module + */ + static void TextclassIpc(const char *params) { @@ -513,7 +519,7 @@ static const IpcItem TextclassIpcArray[] = { { TextclassIpc, - "textclass", NULL, + "textclass", "tc", "List textclasses, apply a textclass", NULL} , @@ -526,7 +532,7 @@ extern const EModule ModTextclass; const EModule ModTextclass = { "textclass", "tc", - TextclassSighan, + NULL, {N_IPC_FUNCS, TextclassIpcArray} , {0, NULL} =================================================================== RCS file: /cvs/e/e16/e/src/text.c,v retrieving revision 1.99 retrieving revision 1.100 diff -u -3 -r1.99 -r1.100 --- text.c 23 Mar 2008 11:54:24 -0000 1.99 +++ text.c 22 Jun 2008 13:34:42 -0000 1.100 @@ -179,6 +179,9 @@ TextState * TextclassGetTextState(TextClass * tclass, int state, int active, int sticky) { + if (!tclass) + return NULL; + if (active) { if (!sticky) =================================================================== RCS file: /cvs/e/e16/e/src/theme.c,v retrieving revision 1.70 retrieving revision 1.71 diff -u -3 -r1.70 -r1.71 --- theme.c 16 Jun 2008 21:22:41 -0000 1.70 +++ theme.c 22 Jun 2008 13:34:42 -0000 1.71 @@ -373,7 +373,8 @@ return ret; } - ret = ThemeGetDefault(); + if (strcmp(theme, "-")) + ret = ThemeGetDefault(); #if ENABLE_THEME_SANITY_CHECKING badtheme = Estrdup(theme); #endif @@ -427,7 +428,7 @@ Conf.theme.name = (theme) ? fullfileof(theme) : NULL; Efree(Mode.theme.path); - Mode.theme.path = theme; + Mode.theme.path = (theme) ? theme : Estrdup("-"); } static void ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs