Пример #1
0
        public override void DrawRect(CGRect dirtyRect)
        {
            NSColorList colors = NSColorList.ColorListNamed("System");
            CGRect      rect   = Bounds;

            rect.Height = 12;
            var style = (NSMutableParagraphStyle)NSParagraphStyle.DefaultParagraphStyle.MutableCopy();

            style.Alignment = NSTextAlignment.Right;
            var attrs = new NSStringAttributes {
                Font            = NSFont.SystemFontOfSize(8),
                ForegroundColor = NSColor.LabelColor,
                ParagraphStyle  = style
            };

            foreach (NSString key in colors.AllKeys())
            {
                if (DrawColors)
                {
                    NSColor color = colors.ColorWithKey(key);
                    color.Set();
                    NSGraphics.RectFill(rect);
                }

                if (DrawTitles)
                {
                    key.DrawString(rect, attrs.Dictionary);
                }

                rect.Y += 12;
            }
        }
        public override NSTouchBarItem MakeItem(NSTouchBar touchBar, string identifier)
        {
            switch (Array.IndexOf(DefaultIdentifiers, identifier))
            {
            case 0:
            {
                var item = NSColorPickerTouchBarItem.CreateColorPicker(identifier, NSImage.ImageNamed(NSImageName.TouchBarColorPickerFill));
                item.ColorList  = NSColorList.ColorListNamed("Apple");
                item.ShowsAlpha = false;
                item.Activated += (_, __) =>
                {
                    var color = item.Color.UsingColorSpace(NSColorSpace.CalibratedRGB);
                    this.ColorSelected.Invoke(item, color);
                };
                return(item);
            }

            case 1:
            {
                var item = new NSCustomTouchBarItem(identifier);
                item.View = NSButton.CreateButton(NSImage.ImageNamed(NSImageName.TouchBarRecordStopTemplate), () => this.TurnOffRequested.Invoke(this, null));
                return(item);
            }

            default:
                return(null);
            }
        }
Пример #3
0
        /// <summary>Shared initialization code.</summary>
        private void Initialize()
        {
            var         cfg        = SingleInstanceApplication.Instance.GetConfiguration <INTV.LtoFlash.Model.Configuration>();
            var         colorsPath = System.IO.Path.Combine(cfg.ApplicationConfigurationPath, MenuColors);
            NSColorList colorList  = null;

            if (!System.IO.File.Exists(colorsPath))
            {
                // We haven't stashed the color list, so make one.
                colorList = new NSColorList(MenuColorPaletteName);
                var colors = INTV.LtoFlash.ViewModel.MenuLayoutViewModel.Colors;
                int i      = 0;
                foreach (var color in colors)
                {
                    colorList.InsertColor(color.ToColor(), color.ToString(), i);
                    ++i;
                }
                if (colorList.WriteToFile(colorsPath))
                {
                    // save it and mark read-only so users can't muck with it.
                    var attributes = System.IO.File.GetAttributes(colorsPath);
                    attributes |= System.IO.FileAttributes.ReadOnly;
                    System.IO.File.SetAttributes(colorsPath, attributes);
                }
            }
            else
            {
                // just in case, mark read-only
                var attributes = System.IO.File.GetAttributes(colorsPath);
                attributes |= System.IO.FileAttributes.ReadOnly;
                System.IO.File.SetAttributes(colorsPath, attributes);
            }

            // Load from read-only color list
            colorList = new NSColorList(MenuColorPaletteName, colorsPath);
            NSColorPanel.SetPickerStyle(NSColorPanelFlags.ColorList);
            NSColorPanel.SetPickerMode(NSColorPanelMode.ColorList);
            var panel = NSColorPanel.SharedColorPanel;

            panel.AttachColorList(colorList);
            foreach (var defaultColorList in NSColorList.AvailableColorLists)
            {
                ////System.Diagnostics.Debug.WriteLine(defaultColorList.Name + " RetainCount: " + defaultColorList.RetainCount);
#if __UNIFIED__
                // HACK See this bug report: https://bugzilla.xamarin.com/show_bug.cgi?id=45621
                // This keeps us from crashing hideously. The retain count behaves the same way in both MonoMac and Xamarin.Mac --
                // namely, it drops by *TWO* when detaching the color list. However, in Xamarin.Mac, without this extra retain,
                // we will CRASH HARD. Ick.
                defaultColorList.DangerousRetain();
#endif // __UNIFIED__
                panel.DetachColorList(defaultColorList);
                ////System.Diagnostics.Debug.WriteLine(defaultColorList.Name + " RetainCount: " + defaultColorList.RetainCount);
            }
            var button = panel.ContentView.FindChild <NSButton>();
            button.Enabled = false;
        }
Пример #4
0
        void Initialize()
        {
//			foreach (NSColorList cl in NSColorList.AvailableColorLists) {
//				Console.WriteLine("Color List: {0}", cl.Name);
//			}
            // Possible color list names - "Apple", "Crayons", "System" (causes crash), and "Web Safe Colors" (named by hex values);
            colorList = NSColorList.ColorListNamed("Crayons");
//			foreach (string c in colorList.AllKeys()) {
//				Console.WriteLine("Color: {0}", c);
//			}
        }
Пример #5
0
        public static NSColorPickerTouchBarItem CreateColorPicker(string identifier, string listName)
        {
            NSColorPickerTouchBarItem item;

            switch (listName)
            {
            case "Text":
                item = NSColorPickerTouchBarItem.CreateTextColorPicker(identifier);
                break;

            case "Stroke":
                item = NSColorPickerTouchBarItem.CreateStrokeColorPicker(identifier);
                break;

            default:
                item            = NSColorPickerTouchBarItem.CreateColorPicker(identifier, NSImage.ImageNamed(NSImageName.TouchBarColorPickerFill));
                item.ColorList  = NSColorList.ColorListNamed(listName);
                item.ShowsAlpha = true;
                break;
            }
            item.Activated += (sender, e) => OnColorChange(item.CustomizationLabel, item.Color);
            return(item);
        }
Пример #6
0
 void Initialize()
 {
     //			foreach (NSColorList cl in NSColorList.AvailableColorLists) {
     //				Console.WriteLine("Color List: {0}", cl.Name);
     //			}
     // Possible color list names - "Apple", "Crayons", "System" (causes crash), and "Web Safe Colors" (named by hex values);
     colorList = NSColorList.ColorListNamed("Crayons");
     //			foreach (string c in colorList.AllKeys()) {
     //				Console.WriteLine("Color: {0}", c);
     //			}
 }