예제 #1
0
        protected override void ReadProperties(ObjectReader reader, XmlElement elem)
        {
            Gtk.StockItem stockItem = Gtk.StockItem.Zero;
            bool          use_stock = (bool)GladeUtils.ExtractProperty(elem, "use_stock", false);

            if (use_stock)
            {
                string label = (string)GladeUtils.GetProperty(elem, "label", "");
                stockItem = Gtk.Stock.Lookup(label);
                if (stockItem.Label != null)
                {
                    GladeUtils.ExtractProperty(elem, "label", "");
                }
            }
            base.ReadProperties(reader, elem);

            if (stockItem.StockId != null)
            {
                Image = "stock:" + stockItem.StockId;
            }
            if (stockItem.Keyval != 0)
            {
                Accelerator = Gtk.Accelerator.Name(stockItem.Keyval, stockItem.Modifier);
            }
        }
예제 #2
0
        public override void Read(ObjectReader reader, XmlElement element)
        {
            object cp = GladeUtils.ExtractProperty(element, "CurrentPage", 0);

            base.Read(reader, element);
            notebook.CurrentPage = (int)cp;
        }
예제 #3
0
        protected override XmlElement WriteProperties(ObjectWriter writer)
        {
            XmlElement elem = base.WriteProperties(writer);

            if (imageInfo != null)
            {
                if (writer.Format == FileFormat.Glade)
                {
                    // The generated pixbuf property doesn't have a valid value, it needs to be replaced.
                    GladeUtils.ExtractProperty(elem, "pixbuf", "");
                    switch (imageInfo.Source)
                    {
                    case ImageSource.File:
                        GladeUtils.SetProperty(elem, "pixbuf", imageInfo.Name);
                        break;

                    case ImageSource.Theme:
                        GladeUtils.SetProperty(elem, "stock", imageInfo.Name);
                        GladeUtils.SetProperty(elem, "icon_size", ((int)imageInfo.ThemeIconSize).ToString());
                        break;

                    default:
                        throw new System.NotSupportedException("Image source not supported by Glade.");
                    }
                }
            }
            return(elem);
        }
예제 #4
0
        protected virtual void ReadProperties(ObjectReader reader, XmlElement elem)
        {
            if (Wrapped != null)
            {
                // There is already an instance. Load the default values.
                this.ClassDescriptor.ResetInstance(Wrapped);
                Signals.Clear();
            }

            if (reader.Format == FileFormat.Native)
            {
                WidgetUtils.Read(this, elem);
            }
            else
            {
                GladeUtils.ImportWidget(this, elem);
            }

            string uid = elem.GetAttribute("undoId");

            if (uid.Length > 0)
            {
                UndoId = uid;
            }
            oldName = Wrapped.Name;
        }
예제 #5
0
        protected override XmlElement WriteProperties(ObjectWriter writer)
        {
            XmlElement elem = base.WriteProperties(writer);

            if (type != ButtonType.StockItem && imageInfo != null)
            {
                if (writer.Format == FileFormat.Glade)
                {
                    switch (imageInfo.Source)
                    {
                    case ImageSource.File:
                        GladeUtils.SetProperty(elem, "icon", imageInfo.Name);
                        break;

                    case ImageSource.Theme:
                        GladeUtils.SetProperty(elem, "stock_id", imageInfo.Name);
                        break;

                    default:
                        throw new System.NotSupportedException("Image source not supported by Glade.");
                    }
                }
            }
            return(elem);
        }
예제 #6
0
        protected override void ReadProperties(ObjectReader reader, XmlElement elem)
        {
            // ButtonIconSize is stored as IconSize
            GladeUtils.RenameProperty(elem, "IconSize", "ButtonIconSize");

            base.ReadProperties(reader, elem);
            toolbarInfo = elem ["node"];
        }
        protected override XmlElement WriteChild(ObjectWriter writer, Widget wrapper)
        {
            XmlElement child_elem = base.WriteChild(writer, wrapper);

            if (wrapper.Wrapped == frame.LabelWidget)
            {
                GladeUtils.SetChildProperty(child_elem, "type", "label_item");
            }
            return(child_elem);
        }
예제 #8
0
        protected override XmlElement WriteProperties(ObjectWriter writer)
        {
            XmlElement elem = base.WriteProperties(writer);

            if (Type == ButtonType.StockItem)
            {
                GladeUtils.SetProperty(elem, "label", stockId);
            }
            return(elem);
        }
예제 #9
0
        protected override XmlElement WriteChild(ObjectWriter writer, Widget wrapper)
        {
            XmlElement child_elem = base.WriteChild(writer, wrapper);

            if (tabs.Contains(wrapper.Wrapped))
            {
                GladeUtils.SetChildProperty(child_elem, "type", "tab");
            }
            return(child_elem);
        }
        protected override XmlElement WriteProperties(ObjectWriter writer)
        {
            XmlElement elem  = base.WriteProperties(writer);
            string     group = GroupManager.GladeGroupName(Wrapped);

            if (group != Wrapped.Name)
            {
                GladeUtils.SetProperty(elem, "group", group);
            }
            return(elem);
        }
예제 #11
0
 protected override ObjectWrapper ReadChild(ObjectReader reader, XmlElement child_elem)
 {
     if ((string)GladeUtils.GetChildProperty(child_elem, "type", "") == "label_item")
     {
         ObjectWrapper wrapper = reader.ReadObject(child_elem["widget"]);
         frame.LabelWidget = (Gtk.Widget)wrapper.Wrapped;
         return(wrapper);
     }
     else
     {
         return(base.ReadChild(reader, child_elem));
     }
 }
예제 #12
0
 protected override ObjectWrapper ReadChild(ObjectReader reader, XmlElement child_elem)
 {
     if ((string)GladeUtils.GetChildProperty(child_elem, "type", "") == "tab")
     {
         ObjectWrapper wrapper = reader.ReadObject(child_elem["widget"]);
         Gtk.Widget    widget  = (Gtk.Widget)wrapper.Wrapped;
         notebook.SetTabLabel(notebook.GetNthPage(notebook.NPages - 1), widget);
         tabs.Add(widget);
         return(wrapper);
     }
     else
     {
         return(base.ReadChild(reader, child_elem));
     }
 }
예제 #13
0
 protected virtual XmlElement WriteProperties(ObjectWriter writer)
 {
     if (writer.Format == FileFormat.Native)
     {
         XmlElement elem = WidgetUtils.Write(this, writer.XmlDocument);
         if (writer.CreateUndoInfo)
         {
             elem.SetAttribute("undoId", UndoId);
         }
         return(elem);
     }
     else
     {
         XmlElement elem = GladeUtils.ExportWidget(this, writer.XmlDocument);
         GladeUtils.ExtractProperty(elem, "name", "");
         return(elem);
     }
 }
        protected override XmlElement WriteProperties(ObjectWriter writer)
        {
            XmlElement elem = base.WriteProperties(writer);

            if (writer.Format == FileFormat.Native)
            {
                // The style is already stored in ButtonStyle
                GladeUtils.ExtractProperty(elem, "ToolbarStyle", "");
                if (toolbarInfo != null)
                {
                    elem.AppendChild(writer.XmlDocument.ImportNode(toolbarInfo, true));
                }
                else
                {
                    elem.AppendChild(actionTree.Write(writer.XmlDocument, writer.Format));
                }
            }
            return(elem);
        }
예제 #15
0
        protected override void ReadProperties(ObjectReader reader, XmlElement elem)
        {
            int history = (int)GladeUtils.ExtractProperty(elem, "history", -1);

            base.ReadProperties(reader, elem);

            // Fiddle with things to make the optionmenu resize itself correctly
            Gtk.Widget menu = optionmenu.Menu;
            optionmenu.Menu = new Gtk.Menu();
            optionmenu.Menu = menu;

            if (history != -1)
            {
                Active = history;
            }
            else
            {
                Active = 0;
            }
        }
        protected override void ReadProperties(ObjectReader reader, XmlElement elem)
        {
            string group  = (string)GladeUtils.ExtractProperty(elem, "group", "");
            bool   active = (bool)GladeUtils.ExtractProperty(elem, "active", false);

            base.ReadProperties(reader, elem);

            if (group != "")
            {
                Group = group;
            }
            else
            {
                Group = Wrapped.Name;
            }
            if (active)
            {
                ((Gtk.RadioMenuItem)Wrapped).Active = true;
            }
        }
예제 #17
0
        protected override void ReadProperties(ObjectReader reader, XmlElement elem)
        {
            if (reader.Format == FileFormat.Glade)
            {
                string file     = (string)GladeUtils.ExtractProperty(elem, "pixbuf", "");
                string stock    = (string)GladeUtils.ExtractProperty(elem, "stock", "");
                string iconSize = (string)GladeUtils.ExtractProperty(elem, "icon_size", "");
                base.ReadProperties(reader, elem);

                if (stock != null && stock.Length > 0)
                {
                    Pixbuf = ImageInfo.FromTheme(stock, (Gtk.IconSize) int.Parse(iconSize));
                }
                else if (file != null && file != "")
                {
                    Pixbuf = ImageInfo.FromFile(file);
                }
            }
            else
            {
                base.ReadProperties(reader, elem);
            }
        }
예제 #18
0
        protected override void ReadProperties(ObjectReader reader, XmlElement elem)
        {
            if (reader.Format == FileFormat.Glade)
            {
                string icon = (string)GladeUtils.ExtractProperty(elem, "icon", "");
                stockId = (string)GladeUtils.ExtractProperty(elem, "stock_id", "");
                label   = (string)GladeUtils.ExtractProperty(elem, "label", "");
                base.ReadProperties(reader, elem);

                if (stockId != null && stockId.Length > 0)
                {
                    Type = ButtonType.StockItem;
                }
                else if (icon != null && icon != "")
                {
                    imageInfo = ImageInfo.FromFile(icon);
                    Type      = ButtonType.TextAndIcon;
                }
            }
            else
            {
                base.ReadProperties(reader, elem);
            }
        }
예제 #19
0
        protected override XmlElement WriteProperties(ObjectWriter writer)
        {
            XmlElement elem = base.WriteProperties(writer);

            if (writer.Format == FileFormat.Native)
            {
                // The style and icon size is already stored in ButtonStyle and ButtonIconSize
                GladeUtils.ExtractProperty(elem, "ToolbarStyle", "");
                GladeUtils.ExtractProperty(elem, "IconSize", "");

                // Store ButtonIconSize as IconSize, for backwards compat
                GladeUtils.RenameProperty(elem, "ButtonIconSize", "IconSize");

                if (toolbarInfo != null)
                {
                    elem.AppendChild(writer.XmlDocument.ImportNode(toolbarInfo, true));
                }
                else
                {
                    elem.AppendChild(actionTree.Write(writer.XmlDocument, writer.Format));
                }
            }
            return(elem);
        }