Example #1
0
bool ActionBarIconDragDropTarget::dragContainer_DragLeave(const CEGUI::EventArgs& args)
{
    ActionBarIcon* actionBarIcon = parseIcon(args);
    if (actionBarIcon) {
        return handleDragLeave(args, actionBarIcon);
    }
    return true;
}
Example #2
0
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);
    }
}
Example #4
0
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:");
  }
}