Exemple #1
0
        ActionEvent ReadActionEvent()
        {
            byte expanded      = ReadByte();
            byte enabled       = ReadByte();
            byte withDialog    = ReadByte();
            byte dialogOptions = ReadByte();

            try
            {
                string text = ReadFourByteString();
                string eventName;

                if (text == "TEXT")
                {
                    eventName = ReadString();
                }
                else if (text == "long")
                {
                    eventName = ReadFourByteString();
                }
                else
                {
                    Console.WriteLine("Unknown text: " + text);
                    return(null);
                }

                var actionEvent = _map.Lookup(eventName);
                // actionEvent.EventForDisplay = ReadString();
                string tmp = ReadString();
                actionEvent.EventForDisplay = Abbreviations.GetUppercased(eventName);

                DebugOutput.Dump("EventName: " + eventName);

                actionEvent.HasDescriptor = (ReadInt32() != 0);
                if (!actionEvent.HasDescriptor)
                {
                    DebugOutput.Dump("HasDescriptor: " + actionEvent.HasDescriptor);
                    actionEvent.IsEnabled = (enabled == 0) ? false : true;
                    return(actionEvent);
                }

                if (PreSix == false)
                {
                    string classID = ReadUnicodeString();
                    DebugOutput.Dump("ClassID: " + classID);

                    string classID2 = ReadTokenOrString();
                    DebugOutput.Dump("ClassID2: " + classID2);
                }

                actionEvent.NumberOfItems = ReadInt32();
                DebugOutput.Dump("NumberOfItems: " + actionEvent.NumberOfItems);

                actionEvent           = actionEvent.Parse(this);
                actionEvent.IsEnabled = (enabled == 0) ? false : true;

                return(actionEvent);
            }
            catch (GimpSharpException e)
            {
                Console.WriteLine("-------------> Parsing failed");
                return(null);
            }
        }
Exemple #2
0
        public Parameter ReadItem()
        {
            string key;

            if (PreSix)
            {
                key = ReadFourByteString();
            }
            else
            {
                key = ReadTokenOrString();
            }

            string type = ReadFourByteString();

            DebugOutput.Dump("key: {0} ({1})", key, type);

            Parameter parameter = null;

            switch (type)
            {
            case "alis":
                parameter = new AliasParameter();
                break;

            case "UntF":
                parameter = new DoubleParameter(true);
                break;

            case "bool":
                parameter = new BoolParameter();
                break;

            case "doub":
                parameter = new DoubleParameter(false);
                break;

            case "enum":
                parameter = new EnumParameter();
                break;

            case "obj":
                parameter = new ReferenceParameter();
                break;

            case "VlLs":
                parameter = new ListParameter();
                break;

            case "long":
                parameter = new LongParameter();
                break;

            case "Pth":
                parameter = new PathParameter();
                break;

            case "TEXT":
                parameter = new TextParameter();
                break;

            case "ObAr":
                parameter = new ObArParameter();
                break;

            case "Objc":
                parameter = new ObjcParameter();
                break;

            case "tdta":
                parameter = new RawDataParameter();
                break;

            case "type":
                parameter = new TypeParameter();
                break;

            default:
                Console.WriteLine("ReadItem: type {0} unknown!", type);
                throw new GimpSharpException();
            }

            DebugOutput.Level++;
            parameter.Parse(this);
            DebugOutput.Level--;
            parameter.Name = key;

            return(parameter);
        }
Exemple #3
0
        public override void Parse(ActionParser parser)
        {
            if (parser.PreSix)
            {
                _classID2 = parser.ReadTokenOrString();
                DebugOutput.Dump("ClassID2: " + _classID2);

                int numberOfItems = parser.ReadInt32();
                DebugOutput.Dump("NumberOfItems: " + numberOfItems);
            }
            else
            {
                int numberOfItems = parser.ReadInt32();
                DebugOutput.Dump("NumberOfItems: " + numberOfItems);

                _classID = parser.ReadUnicodeString();
                DebugOutput.Dump("ClassID: " + _classID);

                _classID2 = parser.ReadTokenOrString();
                DebugOutput.Dump("ClassID2: " + _classID2);
            }

            int numberOfFields = parser.ReadInt32();

            DebugOutput.Dump("NumberOfFields: " + numberOfFields);

            for (int i = 0; i < numberOfFields; i++)
            {
                string key  = parser.ReadTokenOrString();
                string type = parser.ReadFourByteString();
                _units = parser.ReadFourByteString();

                DebugOutput.Dump("key: {0} ({1}) {2}", key, type, _units);

                int numberOfItems = parser.ReadInt32();
                DebugOutput.Dump("NumberOfItems2: " + numberOfItems);

                switch (type)
                {
                case "UnFl":
                    for (int j = 0; j < numberOfItems; j++)
                    {
                        double val = parser.ReadDouble();

                        Coordinate <double> c;
                        if (i == 0)
                        {
                            c = new Coordinate <double>();
                            _value.Add(c);
                            c.X = val;
                        }
                        else
                        {
                            _value[j].Y = val;
                        }
                    }
                    break;

                default:
                    Console.WriteLine("ObAr:Unknown type: " + type);
                    break;
                }
            }
        }