/** Parse a spacer tray component. */ void ParseSpacer(const TokenNode *tp, TrayType *tray) { TrayComponentType *cp; int width; int height; char *str; Assert(tp); Assert(tray); /* Get the width. */ str = FindAttribute(tp->attributes, WIDTH_ATTRIBUTE); if(str) { width = ParseUnsigned(tp, str); } else { width = 0; } /* Get the height. */ str = FindAttribute(tp->attributes, HEIGHT_ATTRIBUTE); if(str) { height = ParseUnsigned(tp, str); } else { height = 0; } /* Create the spacer. */ cp = CreateSpacer(width, height); if(JLIKELY(cp)) { AddTrayComponent(tray, cp); } }
/** Parse a clock tray component. */ void ParseClock(const TokenNode *tp, TrayType *tray) { TrayComponentType *cp; const char *format; const char *zone; const char *temp; int width, height; Assert(tp); Assert(tray); format = FindAttribute(tp->attributes, "format"); zone = FindAttribute(tp->attributes, "zone"); temp = FindAttribute(tp->attributes, WIDTH_ATTRIBUTE); if(temp) { width = ParseUnsigned(tp, temp); } else { width = 0; } temp = FindAttribute(tp->attributes, HEIGHT_ATTRIBUTE); if(temp) { height = ParseUnsigned(tp, temp); } else { height = 0; } cp = CreateClock(format, zone, width, height); if(JLIKELY(cp)) { ParseTrayComponentActions(tp, cp, AddClockAction); AddTrayComponent(tray, cp); } }
/** Parse a swallow tray component. */ void ParseSwallow(const TokenNode *tp, TrayType *tray) { TrayComponentType *cp; const char *name; const char *temp; int width, height; Assert(tp); Assert(tray); name = FindAttribute(tp->attributes, NAME_ATTRIBUTE); if(name == NULL) { name = tp->value; } temp = FindAttribute(tp->attributes, WIDTH_ATTRIBUTE); if(temp) { width = ParseUnsigned(tp, temp); } else { width = 0; } temp = FindAttribute(tp->attributes, HEIGHT_ATTRIBUTE); if(temp) { height = ParseUnsigned(tp, temp); } else { height = 0; } cp = CreateSwallow(name, tp->value, width, height); if(cp) { AddTrayComponent(tray, cp); } }
/** Parse a task list tray component. */ void ParseTaskList(const TokenNode *tp, TrayType *tray) { TrayComponentType *cp; const char *temp; char border; Assert(tp); Assert(tray); temp = FindAttribute(tp->attributes, BORDER_ATTRIBUTE); if(temp && !strcmp(temp, FALSE_VALUE)) { border = 0; } else { border = 1; } cp = CreateTaskBar(border); AddTrayComponent(tray, cp); temp = FindAttribute(tp->attributes, MAX_WIDTH_ATTRIBUTE); if(temp) { SetMaxTaskBarItemWidth(cp, temp); } }
/** Parse a task list tray component. */ void ParseTaskList(const TokenNode *tp, TrayType *tray) { TrayComponentType *cp; const char *temp; Assert(tp); Assert(tray); cp = CreateTaskBar(); AddTrayComponent(tray, cp); temp = FindAttribute(tp->attributes, "maxwidth"); if(temp) { SetMaxTaskBarItemWidth(cp, temp); } }
/** Parse a pager tray component. */ void ParsePager(const TokenNode *tp, TrayType *tray) { TrayComponentType *cp; const char *temp; int labeled; Assert(tp); Assert(tray); labeled = 0; temp = FindAttribute(tp->attributes, LABELED_ATTRIBUTE); if(temp && !strcmp(temp, TRUE_VALUE)) { labeled = 1; } cp = CreatePager(labeled); AddTrayComponent(tray, cp); }
/** Parse a button tray component. */ void ParseTrayButton(const TokenNode *tp, TrayType *tray) { TrayComponentType *cp; const char *icon; const char *label; const char *popup; const char *temp; unsigned int width, height; char border; Assert(tp); Assert(tray); icon = FindAttribute(tp->attributes, ICON_ATTRIBUTE); label = FindAttribute(tp->attributes, LABEL_ATTRIBUTE); popup = FindAttribute(tp->attributes, POPUP_ATTRIBUTE); temp = FindAttribute(tp->attributes, BORDER_ATTRIBUTE); if(temp && !strcmp(temp, FALSE_VALUE)) { border = 0; } else { border = 1; } temp = FindAttribute(tp->attributes, WIDTH_ATTRIBUTE); if(temp) { width = ParseUnsigned(tp, temp); } else { width = 0; } temp = FindAttribute(tp->attributes, HEIGHT_ATTRIBUTE); if(temp) { height = ParseUnsigned(tp, temp); } else { height = 0; } cp = CreateTrayButton(icon, label, tp->value, popup, width, height, border); if(JLIKELY(cp)) { AddTrayComponent(tray, cp); } }
/** Parse a clock tray component. */ void ParseClock(const TokenNode *tp, TrayType *tray) { TrayComponentType *cp; const char *format; const char *zone; const char *command; const char *temp; int width, height; Assert(tp); Assert(tray); format = FindAttribute(tp->attributes, FORMAT_ATTRIBUTE); zone = FindAttribute(tp->attributes, ZONE_ATTRIBUTE); if(tp->value && strlen(tp->value) > 0) { command = tp->value; } else { command = NULL; } temp = FindAttribute(tp->attributes, WIDTH_ATTRIBUTE); if(temp) { width = ParseUnsigned(tp, temp); } else { width = 0; } temp = FindAttribute(tp->attributes, HEIGHT_ATTRIBUTE); if(temp) { height = ParseUnsigned(tp, temp); } else { height = 0; } cp = CreateClock(format, zone, command, width, height); if(JLIKELY(cp)) { AddTrayComponent(tray, cp); } }
/** Parse a dock tray component. */ void ParseDock(const TokenNode *tp, TrayType *tray) { TrayComponentType *cp; int width; char *str; Assert(tp); Assert(tray); str = FindAttribute(tp->attributes, WIDTH_ATTRIBUTE); if(str) { width = ParseUnsigned(tp, str); } else { width = 0; } cp = CreateDock(width); if(JLIKELY(cp)) { AddTrayComponent(tray, cp); } }
/** Parse a button tray component. */ void ParseTrayButton(const TokenNode *tp, TrayType *tray) { TrayComponentType *cp; const char *icon; const char *label; const char *popup; const char *temp; unsigned int width, height; Assert(tp); Assert(tray); icon = FindAttribute(tp->attributes, ICON_ATTRIBUTE); label = FindAttribute(tp->attributes, LABEL_ATTRIBUTE); popup = FindAttribute(tp->attributes, "popup"); temp = FindAttribute(tp->attributes, WIDTH_ATTRIBUTE); if(temp) { width = ParseUnsigned(tp, temp); } else { width = 0; } temp = FindAttribute(tp->attributes, HEIGHT_ATTRIBUTE); if(temp) { height = ParseUnsigned(tp, temp); } else { height = 0; } cp = CreateTrayButton(icon, label, popup, width, height); if(JLIKELY(cp)) { AddTrayComponent(tray, cp); ParseTrayComponentActions(tp, cp, AddTrayButtonAction); } }