bool ActionBarIconDragDropTarget::dragContainer_DragLeave(const CEGUI::EventArgs& args) { ActionBarIcon* actionBarIcon = parseIcon(args); if (actionBarIcon) { return handleDragLeave(args, actionBarIcon); } return true; }
void readDTIcons(void) { FILE *fp; AppRec app; char *name, *directory, *fname, *icon, *push_action, *drop_action, *xp, *yp; char s[MAXAPPSTRINGLEN]; int i, p, x, y; XtAppAddActions(app_context, icon_actions, XtNumber(icon_actions)); trans = XtParseTranslationTable(icon_translations); dticons_blocked = False; if (stat(resources.dticon_file, &dticons_stats) || !(fp = fopen(resources.dticon_file, "r"))) { dticons_readable = False; error(getAnyShell(), "Cannot read desktop icons from", resources.dticon_file); return; } dticons_readable = True; for (i=0; (p = parseIcon(fp, &name, &directory, &fname, &icon, &push_action, &drop_action, &xp, &yp)) > 0; i++) { dtIcons = (DTIconRec **) XTREALLOC(dtIcons, (i+1) * sizeof(DTIconRec *)); app.name = XtNewString(strparse(s, name, "\\:")); app.directory = XtNewString(strparse(s, directory, "\\:")); app.fname = XtNewString(strparse(s, fname, "\\:")); app.icon = XtNewString(strparse(s, icon, "\\:")); app.push_action = XtNewString(strparse(s, push_action, "\\:")); app.drop_action = XtNewString(strparse(s, drop_action, "\\:")); app.objType = getObjectType(app.push_action); app.remove_file = False; if ((x = atoi(strparse(s, xp, "\\:"))) < 0) x += winInfo.rootWidth - DTICONWIDTH; if ((y = atoi(strparse(s, yp, "\\:"))) < 0) y += winInfo.rootHeight - DTICONHEIGHT; dtIcons[i] = createDTIcon(getAnyShell(), &app, x, y); dtIcons[i]->save = True; displayDTIcon(dtIcons[i]); } if (p == -1) error(getAnyShell(), "Error reading desktop icons from", resources.dticon_file); n_dtIcons = i; if (fclose(fp)) sysError(getAnyShell(), "Error reading desktop icons:"); }
void StereotypeDefinitionParser::parseFile() { for (;;) { Token token = readNextToken(); if (token.type() == Token::TokenEndOfInput) break; else if (token.type() != Token::TokenKeyword || token.subtype() == KEYWORD_ICON) parseIcon(); else if (token.type() != Token::TokenKeyword || token.subtype() == KEYWORD_TOOLBAR) parseToolbar(); else throw StereotypeDefinitionParserError(QStringLiteral("Expected 'icon' or 'toolbar'."), token.sourcePos()); token = d->m_scanner->read(); if (token.type() == Token::TokenOperator && token.subtype() == OPERATOR_PERIOD) break; else if (token.type() != Token::TokenOperator || token.subtype() != OPERATOR_SEMICOLON) d->m_scanner->unread(token); } }
void updateIconDisplay(void) { struct stat cur; Boolean reread = False; if (dticons_blocked) return; if (resources.check_application_files) if (dticons_readable) reread = stat(resources.dticon_file, &cur) || cur.st_ctime > dticons_stats.st_ctime || cur.st_mtime > dticons_stats.st_mtime; else reread = !stat(resources.dticon_file, &cur); if (reread) { FILE *fp; AppRec *app; char *name, *directory, *fname, *icon, *push_action, *drop_action, *xp, *yp; char *nname, *ndirectory, *nfname, *nicon, *npush_action, *ndrop_action; char s[MAXAPPSTRINGLEN]; int i, j, p, x, y; zzz(); dticons_readable = !stat(resources.dticon_file, &dticons_stats); if (!(fp = fopen(resources.dticon_file, "r"))) { dticons_readable = False; error(getAnyShell(), "Cannot read desktop icons from", resources.dticon_file); i = 0; goto remove; } /* update existing icons/append new ones */ for (i=0; (p = parseIcon(fp, &name, &directory, &fname, &icon, &push_action, &drop_action, &xp, &yp)) > 0; i++) { if ((x = atoi(strparse(s, xp, "\\:"))) < 0) x += winInfo.rootWidth - DTICONWIDTH; if ((y = atoi(strparse(s, yp, "\\:"))) < 0) y += winInfo.rootHeight - DTICONHEIGHT; nname = XtNewString(strparse(s, name, "\\:")); ndirectory = XtNewString(strparse(s, directory, "\\:")); nfname = XtNewString(strparse(s, fname, "\\:")); nicon = XtNewString(strparse(s, icon, "\\:")); npush_action = XtNewString(strparse(s, push_action, "\\:")); ndrop_action = XtNewString(strparse(s, drop_action, "\\:")); if (i < n_dtIcons) { DTIconRec *dticon = dtIcons[i]; app = &dticon->app; if (!(x != dticon->x || y != dticon->y || strcmp(nname, app->name) || strcmp(ndirectory, app->directory) || strcmp(nfname, app->fname) || strcmp(nicon, app->icon) || strcmp(npush_action, app->push_action) || strcmp(ndrop_action, app->drop_action))) { XTFREE(nname); XTFREE(ndirectory); XTFREE(nfname); XTFREE(nicon); XTFREE(npush_action); XTFREE(ndrop_action); continue; } XtDestroyWidget(dticon->app.form); if (dticon->label_mask != None) freePixmap(dticon->label_mask); if (dticon->drop_pixmap != None) freePixmap(dticon->drop_pixmap); freeApplicationResources(&dticon->app); } else { dtIcons = (DTIconRec **) XTREALLOC(dtIcons, (i+1) * sizeof(DTIconRec *)); dtIcons[i] = (DTIconRec *) XtMalloc(sizeof(DTIconRec)); } app = &dtIcons[i]->app; app->name = nname; app->directory = ndirectory; app->fname = nfname; app->icon = nicon; app->push_action = npush_action; app->drop_action = ndrop_action; app->objType = getObjectType(app->push_action); app->remove_file = False; dtIcons[i]->x = x; dtIcons[i]->y = y; readApplicationIcon(getAnyShell(), app, ERR_POPUP); dtIcons[i]->label_mask = None; dtIcons[i]->drop_pixmap = None; dtIcons[i]->moved = False; dtIcons[i]->save = True; displayDTIcon(dtIcons[i]); } remove: /* remove any remaining icons */ for (j = i; j < n_dtIcons; j++) { DTIconRec *dticon = dtIcons[j]; XtDestroyWidget(dticon->shell); freeApplicationResources(&dticon->app); if (dticon->label_mask != None) freePixmap(dticon->label_mask); if (dticon->drop_pixmap != None) freePixmap(dticon->drop_pixmap); XTFREE(dticon); } if (i < n_dtIcons) dtIcons = (DTIconRec **) XTREALLOC(dtIcons, i * sizeof(DTIconRec *)); n_dtIcons = i; wakeUp(); if (dticons_readable && p == -1) error(getAnyShell(), "Error reading desktop icons from", resources.dticon_file); if (dticons_readable && fclose(fp)) sysError(getAnyShell(), "Error reading desktop icons:"); } }